Type
CONTRACT
Validation date
2025-05-19 19:53:44 UTC
Fee
0 UCO

Code (949 B)

@version 1

condition triggered_by: transaction, on: refund(secret, secret_signature), as: [
  previous_public_key: (
    previous_address = Chain.get_previous_address()
    Chain.get_genesis_address(previous_address) == 0x00002075E9FB5329C7F5149802EB75F925D79B5FEC5BFCF09DC81993CB9C39FEAF5D
  ),
  timestamp: timestamp >= 1747691580
]

actions triggered_by: transaction, on: refund(secret, secret_signature) do
  Contract.set_type "transfer"
  # Send back the token to the user address
  Contract.add_uco_transfer to: 0x00000C27FF313EE00BB2D681B794A581BD605C38F1D2BDEEAB8597A83AA0E3552E7F, amount: 361745.63441717

  Contract.set_code """
  @version 1

  export fun info() do
    [
      evm_pool: 0xd5ca9f76495b853a5054814a10b6365ee8ed745b,
      ae_pool: 0x00002075E9FB5329C7F5149802EB75F925D79B5FEC5BFCF09DC81993CB9C39FEAF5D,
      status: 2 # REFUNDED
    ]
  end

  export fun get_secret() do
    [
      secret: 0x#{secret},
      secret_signature: [
        r: 0x#{secret_signature.r},
        s: 0x#{secret_signature.s},
        v: #{secret_signature.v}
      ]
    ]
  end
  """
end

condition triggered_by: transaction, on: reveal_secret(secret, secret_signature, _evm_contract), as: [
  previous_public_key: (
    # Transaction is not yet validated so we need to use previous address
    # to get the genesis address
    previous_address = Chain.get_previous_address()
    Chain.get_genesis_address(previous_address) == 0x00002075E9FB5329C7F5149802EB75F925D79B5FEC5BFCF09DC81993CB9C39FEAF5D
  ),
  timestamp: transaction.timestamp < 1747691580,
  content: Crypto.hash(String.to_hex(secret)) == 0x48103BD2CB0177214A429550CD00C2C41B3B6E7185CFF0E7151A253C0EE8F633
]

actions triggered_by: transaction, on: reveal_secret(secret, secret_signature, evm_contract) do
  Contract.set_type "transfer"
      Contract.add_uco_transfer to: 0x00002075E9FB5329C7F5149802EB75F925D79B5FEC5BFCF09DC81993CB9C39FEAF5D, amount: 361745.63441717
  # Transfer fee is less than the minimum decimals


  Contract.set_code """
  @version 1

  export fun info() do
    [
      evm_contract: #{evm_contract},
      evm_pool: 0xd5ca9f76495b853a5054814a10b6365ee8ed745b,
      ae_pool: 0x00002075E9FB5329C7F5149802EB75F925D79B5FEC5BFCF09DC81993CB9C39FEAF5D,
      status: 1 # WITHDRAWN
    ]
  end

  export fun get_secret() do
    [
      secret: 0x#{secret},
      secret_signature: [
        r: 0x#{secret_signature.r},
        s: 0x#{secret_signature.s},
        v: #{secret_signature.v}
      ]
    ]
  end
  """
end

export fun info() do
  [
    evm_pool: 0xd5ca9f76495b853a5054814a10b6365ee8ed745b,
    ae_pool: 0x00002075E9FB5329C7F5149802EB75F925D79B5FEC5BFCF09DC81993CB9C39FEAF5D,
    status: 0 # PENDING
  ]
end

export fun get_htlc_data() do
  [
    amount: 361745.63441717,
    end_time: 1747691580,
    secret_hash: 0x48103BD2CB0177214A429550CD00C2C41B3B6E7185CFF0E7151A253C0EE8F633,
    secret_hash_signature: [
      r: 0x399232A1B2BFCEA68697C33861B5517F920B645CE6A3B7DD05663E4F6FAB70CF,
      s: 0x756B59A78ACFBEEA8B764D6BE015D305F3873E763D04EDC14F338EF9F858C4E2,
      v: 27
    ]
  ]
end

Content (0 B)

State (0 B)

Movements (0)

Ownerships (1)

  • Secret shared with 1 key

    Encoded secret

    401ED6E1C6B5D4A8A596E21FEF3AA99120927AC69E2DE2E44F486960B3C410216C85AF023FE350AB972CBE2D722FDB801D724D2B9E126A0C9E1F635C

    Authorized keys

    • 000122A6CD9ED07E46835D6E88E5BD0BEE84C3F5E5DBF8E916AD9B2EC912C44AFEC2

Contract recipients (0)

Inputs (0)

Contract inputs (0)

Unspent outputs (1)

Proofs and signatures

Previous public key

0001CFC215AF09C8139C6B22E590B72D1DC3E5DB10776502A4E46315A667AC600132

Previous signature

EE58E0BA92BD45821DD5C87970DB72E7AA9D7423B8F758E9F5EC1C3A73F7CA707B71066DAF1FCBCAFCA5288740CCA1C47F796114BDEF45328E2BF7B9CD5FD501

Origin signature

304402201AAF2173C6EC670CF69B7C6261E17FA37DC40AB6EAA5ABA3C5B2AC8B1A0D81AB02207A74ACF7053355762BB8954DC40DC1EAD06C018C9A00F13AF3DABCF9D2B5CCDA

Proof of work

010204381A52EBD2F6410A3C6ABB75B71BC8009E937682BB4BA1937D507E4CA134E52DAD90CF428B5929B1D607134987B4816C6D6B4AEBF3CF00C7D1A5F9F886DC562A

Proof of integrity

000DE27B95787557C6D2FB4F8F89E22A9AC3D97B4A34B7DB8B43C7BF1B42A08A3B

Coordinator signature

574783DB8F039DDF0FD485667566F37A5920F28792A01FD29D11C19924007B7CBCF2D22B736AC3D3C3B60ADC55C50BB2D20DC9691E9BDAFA8CAB593D60563206

Validator #1 public key

00012E30765FFC72AF99D9420F389600BD6517D9BC763BE7B9FF74AE63814F42E8BA

Validator #1 signature

51BE5217670E861CB0D60FC65BA5B837BF61C5F7E9219446C2F7F807758B32E1333949A8CD478CCC7BB4C75A1D3BEB86EB10351ED68BFB72A0E1BEEF7ED6360E

Validator #2 public key

000105B4FDF46B9FE90C30A471DCE4D296CCCDC27242C6CDA6E48622F4330C646100

Validator #2 signature

DFC947E3E9FCD25713BD35357CA705FD719C47FCA23368EAC97A726C744D5CC6F5313D1CC02E26EA5C67B459A526B9191479C0D75DA3EFC846ED6FADF6F9EF0F