Type
CONTRACT
Validation date
2023-11-21 16:24:40 UTC
Fee
0 UCO

Code (865 B)

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

end

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

actions triggered_by: transaction, on: refund() do
  Contract.set_type "transfer"
# Send back the token to the user address
Contract.add_uco_transfer to: 0x0000647409F94DE9798EA91E049B9AABA07B8CF3570A22056513B3437091C04B6807, 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 < 1700591040,
  content: Crypto.hash(String.to_hex(secret)) == 0x48CBA3BBA465A785D7F44CE0805E09748AEA9EE151F7C55CEDBF8E22FC5E8CD3
]

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: 1700591040,
    secret_hash: 0x48CBA3BBA465A785D7F44CE0805E09748AEA9EE151F7C55CEDBF8E22FC5E8CD3,
    secret_hash_signature: [
      r: 0xC0A342CA399D44C8F9A8C4D296662B2C2C8B5EE409DD4518EF741EAD73CDA135,
      s: 0x042D96682254F9063FDD94D0AE5CE9333A8B0B3E1A2152845E10C4B64D42B445,
      v: 28
    ]
  ]
end

Content (0 B)

State (0 B)

Movements (0)

Ownerships (1)

  • Secret shared with 1 key

    Encoded secret

    E75461804EF0C64F0CEFDA7E5D37D31F385B22913B6A89F67A2DAC18E1831F6CDE7DE6A0D6960235E65877391187F0220032E52910403C626A59386F

    Authorized keys

    • 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F

Contract recipients (0)

Inputs (0)

Contract inputs (0)

Unspent outputs (1)

Proofs and signatures

Previous public key

00010556239411CC9CFCC8F1A685D67E8B130A4854E7EEED5D51FC45B24DDFBA21DA

Previous signature

BF4CEE466BC7A19A093A15C704B4DDFB4390E578EA1D91F70737E5F17CCCDF93B5D7837E7A3AD9A5FC5FE4CE08E917E61054954F6452D5418E7608E49E9F520A

Origin signature

30440220029CC3378D0D57E6773F28D56CDE8241FAE4AF304A0B2D1E6C4F64DA917273D8022013B47C4F67E7AC585DF9F173F5B6E9E64D106986E314AD8173A9B39D1FE6FAB6

Proof of work

010204D6052E0C6CA9244CDE5F3D664296BDFBA0090B330404C3C16B098758F27965DFEC0D3F25D1365F389C2B6C516195552F8779DEE0796C8C33F1A9C0404F4E3381

Proof of integrity

00D3DDA93A4CCA761D0D5E6ADDB37C941AFC3AB669DC5A2BA4AA2ED81ADE9A4844

Coordinator signature

E0940DF4E6C12696D70CAA251300D4B59B23C6634B3697C5B17B7A9CCC1336DAA927B49FB314113B2DF8D0E96A95F4C19175FB6E61C0B3F5F06CD198AD08D204

Validator #1 public key

00011B58ED42235461734EAF253BD97A80B92899ABCC3BE680D44B6825DD2A88A947

Validator #1 signature

CBFE9A2340EA5F41F6846EAA6C6D45387D95357366A7E973D53A8B93552CCF16BE23301B994A95293D9B0AC31F0E9A17721C1268D6E4780BA7D30B8E45384809

Validator #2 public key

0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3

Validator #2 signature

9785E894F3F894045F6111FCD72F8928D6ADDFDA99186C27740683BC03BE12C0EABF2E9AC9CDD91FC48E46B8C524EF4D97917003278306D8DFABE809A1DA8C03