Type
CONTRACT
Validation date
2023-11-17 22:04:34 UTC
Fee
0 UCO

Code (870 B)

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

end

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

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: 15
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 < 1700265840,
  content: Crypto.hash(String.to_hex(secret)) == 0x45BD96F0D1A3AEA8F4424233687882A8AE06079D2CBCB3062769A7B4BAF88D37
]

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: 14.955
  Contract.add_uco_transfer to: 0x0000749d250560bf06c079832e0e9a24509b1e440a45c33bd9448b41b6a056fc6201, amount: 0.045

  Contract.set_code next_code
end

export fun get_htlc_data() do
  [
    amount: 14.955,
    end_time: 1700265840,
    secret_hash: 0x45BD96F0D1A3AEA8F4424233687882A8AE06079D2CBCB3062769A7B4BAF88D37,
    secret_hash_signature: [
      r: 0x7B1BB010CA6F68837FBBA0BF14DE615FC957B969149EDF251154A5BD2BF70522,
      s: 0x40E01B3BC8DAB3EFA37E3FD823FC43939510D29CCDBCF87F5F442B1B46820F6D,
      v: 27
    ]
  ]
end

Content (0 B)

State (0 B)

Movements (0)

Ownerships (1)

  • Secret shared with 1 key

    Encoded secret

    A5106CABC9892686BFEE839ACAB6C2F476E7D485D54E43108F5733080F6562A8D4A7298058E5497A4604C97A7E5AF4186A49E24F2D48FE98A3EF3F6E

    Authorized keys

    • 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F

Contract recipients (0)

Inputs (0)

Contract inputs (0)

Unspent outputs (1)

Proofs and signatures

Previous public key

0001F8750547944C36A60E70DACE155715FE1350A8F1556D3AF26E3D577F69DA69C6

Previous signature

86EE6B69D8D187EB161A94F228B748E640134F360AA78711E12ADAD5E598CF8F27052C42A1884EDB7E73A197B2845034B9C456CFBA043DBAEE513DB391F6CE0D

Origin signature

3046022100FA05887F54BC8D0942A61508C97509767A3CD40CC3EC5E932D3072CEE2E373DA0221008EE43320CEA2C0382961AAAFDB2D478151D28D4A5EC294DDD301E743EE83D021

Proof of work

010104AB672F1E69B064D192819F1797C1926F158DBA8F3924AC732B4C4D70D0C8EA0A0D6506E5896C9C2524D2BE26CB5016287E1816A597C408008BA36FCB154A7765

Proof of integrity

009CAAFCECDB8314814BB4C00E1D391DDC6BC0DECF174551FC743194CD71E80737

Coordinator signature

807AA2E8B7F5F4FFC40BB416ECABD52537B9B6A5B59072BD5DC1CF067FD6D915C1517E94750E4D7A1498D2479EB11BA34539C608BB28C8A8BE3FAB081108270D

Validator #1 public key

0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3

Validator #1 signature

105EDBEDF3A952F077B3706AADFEE90C49B009D49FCF1E4D10BE63BFCC3E3AC71075982A8AD0E2F6380B605AC04DC18369B4B18FA7607858FC1C722E16059D09

Validator #2 public key

00011B58ED42235461734EAF253BD97A80B92899ABCC3BE680D44B6825DD2A88A947

Validator #2 signature

E1B99E4B292790A3C932362918DC9F4CAB6121EF0C80547350C634A9763E1D3FE3ECDBC10E57B5492B27E541F5C51BCAF7032AC849476BB7B8C8D99DA5CC7900