Type
CONTRACT
Validation date
2023-11-15 21:19:45 UTC
Fee
0 UCO

Code (863 B)

@version 1
# Automate the refunding after the given timestamp
actions triggered_by: datetime, at: 1700090340 do
  Contract.set_type "transfer"
# Send back the token to the user address
Contract.add_uco_transfer to: 0x000078C6AEE0997812C830BDF529D774C0C010BE6A0337E21D7CCA88E644DD93295A, amount: 1
Contract.set_code ""

end

condition triggered_by: transaction, on: refund(), as: [
  timestamp: timestamp >= 1700090340
]

actions triggered_by: transaction, on: refund() do
  Contract.set_type "transfer"
# Send back the token to the user address
Contract.add_uco_transfer to: 0x000078C6AEE0997812C830BDF529D774C0C010BE6A0337E21D7CCA88E644DD93295A, amount: 1
Contract.set_code ""

end

condition triggered_by: transaction, on: reveal_secret(secret, secret_signature), 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) == 0x000018D60115ECE0C7558A46B4693749BF6BEAB524FDDCCF9B10B910619E4EE08801
),
  timestamp: transaction.timestamp < 1700090340,
  content: Crypto.hash(String.to_hex(secret)) == 0x256452D13709798F70170EC3D9371FD2A377ED5C2A80C46C1A325D654435D709
]

actions triggered_by: transaction, on: reveal_secret(secret, secret_signature) do
  next_code = """
  @version 1

  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

  """

  Contract.set_type "transfer"
  Contract.add_uco_transfer to: 0x000018D60115ECE0C7558A46B4693749BF6BEAB524FDDCCF9B10B910619E4EE08801, amount: 0.997
  Contract.add_uco_transfer to: 0x0000749d250560bf06c079832e0e9a24509b1e440a45c33bd9448b41b6a056fc6201, amount: 0.003

  Contract.set_code next_code
end

export fun get_htlc_data() do
  [
    amount: 0.997,
    end_time: 1700090340,
    secret_hash: 0x256452D13709798F70170EC3D9371FD2A377ED5C2A80C46C1A325D654435D709,
    secret_hash_signature: [
      r: 0x72E96ABCEE049F0BA34F2A66FA9D7D2AD3667859E29BF6B6EEA3CCDA345BD946,
      s: 0x71FBF1CB7A22E1332F8031AD22B1CC2A3136C83D48B45A73885A64763D44D39A,
      v: 28
    ]
  ]
end

Content (0 B)

State (0 B)

Movements (0)

Ownerships (1)

  • Secret shared with 1 key

    Encoded secret

    2B5BA202481F8D74E0CD85231BC8DA947B985ED1A9779060AB9CFDBF4B8B1043998730742BA411006B1DE01119DD4E82D52B0CD642B396DB9D555B1A

    Authorized keys

    • 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F

Contract recipients (0)

Inputs (0)

Contract inputs (0)

Unspent outputs (1)

Proofs and signatures

Previous public key

0001257475B653005677DDCD6F9D352B1F87FF951CEA13FE914BE89903DB272903BA

Previous signature

9622BDBC68067F8AC92A92A3AB5D1DFF49F06386AD38B4317248A76E4F2E9682C62DBEE38F47B621D030308B22D58BC238E716FB07530F9F3606F230FC9B150C

Origin signature

304502204FBC070AE16837C3FA28EA9BC763AD137C213C4D2E5A06867C7D47E9E2BE6A8B022100E0A1691C11BB5DD06B7BEFE8C591454FF9D0325B9B8531F97C86BEEF8E5A30B8

Proof of work

01020451684966573439C38DA99334546FBBDE4A6D96A50B4A4ECBB6572CDBED023F079607407E254421D1779525D11C60D55684F0B403B93B95823554E29D1E2CDB16

Proof of integrity

00D144E8DDB4A8A6251846EE60C4FEECC12D0660F883694B8C58497CBA6857447A

Coordinator signature

B4743EED79CCDAD66CC87ABAE9988C7C1A5E45407B1C85B930C3D004F4DC644F87F4C560A1904EA484E6FCBD00C702B15BC97C839655CC285D67144E8CECAA0D

Validator #1 public key

0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3

Validator #1 signature

5395103D0D38980BADD094E6131BE535B70ACFBAC3618035F9537DF53986C73DE361880E01D117A38063A110CCA2268EA00FDC516B5908FDD42C9BB01F982805

Validator #2 public key

00011B58ED42235461734EAF253BD97A80B92899ABCC3BE680D44B6825DD2A88A947

Validator #2 signature

D9FE17D45AD23FA711367669D107C846582DC01EABC5EF591F99D605FADF85A32BDE96C6DBEAF6DE3536D51488C62FF413FF78F6FA9C4AFB8EDC055FB2533602