Type
CONTRACT
Validation date
2023-11-14 10:18:55 UTC
Fee
0 UCO

Code (869 B)

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

end

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

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

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: 1699964280,
    secret_hash: 0x96D47AED695D768E22D69CB1A9CB01A1A5602E97143B71D702AD2B349C183234,
    secret_hash_signature: [
      r: 0x254DBA9DCD86EBFED685072E8F2F708FA49E921AA2552AB1E5409D8F35AFEA39,
      s: 0x67D287C339A6FF277546CEBE6A6D5F8A7D588262B06887AD3FB187FB3DF254A6,
      v: 27
    ]
  ]
end

Content (0 B)

State (0 B)

Movements (0)

Ownerships (1)

  • Secret shared with 1 key

    Encoded secret

    B0EBCD930D01B9119960D027365E5526C55191358810DA203DE841E4758619EBE5124D4E36A2C56E164BC10BCEED3DAAD75C2E6FE70B1285A485E9A0

    Authorized keys

    • 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F

Contract recipients (0)

Inputs (0)

Contract inputs (0)

Unspent outputs (1)

Proofs and signatures

Previous public key

000153FD3F6244DF2ACD7FB5DC2BD2D09189A174B4D4D8EC79B0DE493B03A6901553

Previous signature

1A7565179DBCE4F70153ED3D009F3FE7DBEF6DD797B1974385AD789118C91CAFEFF3ACD86203AE825D59BEDF0EF6D6CD760EA5C7C5F6479832FD0208A3344206

Origin signature

3046022100CF7DB9C8ADE605B89C241D5A454CE9BAE33677BF45DB604FA756D23175A863F50221009C62697A2C725523356D6FB1722AC13B25E0A3A33BA7EB96F92CBDD32AE64380

Proof of work

010204E9BB401A767B0C92D5DB139379AAB18E1B449B455F49E3A44F3466B2D38E59F0516B79493A528A95E5A74CF46F79CF12DEB73293458F6A4403D2B3E57D697347

Proof of integrity

00B2B4E11BEECD9D62677FE42A459492F771DA024829C6716D0CB741ED4CC19E6F

Coordinator signature

9953EDCDC2B8DE26A89FAB593409AD0D253BB6BEFA215E980FF71760079921C627EA1862E22ED8088DE959D5E02582F0B1D1B5CB747528308EA537E21042E106

Validator #1 public key

0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3

Validator #1 signature

AC1A90203F564041602CB53C649DEB12EFD0A8CF9924E2EF75D13FD57BA86BF3D98BA4FC961E5A6A278F46EF416C829E607CC5A9AF1AA420B220E0AC17041806

Validator #2 public key

00011B58ED42235461734EAF253BD97A80B92899ABCC3BE680D44B6825DD2A88A947

Validator #2 signature

CA4B99E4A222C65E0D1DDD2477799D10B28E11A3D46E615D6D66A1DADD72A85B404D99DBE666827E6BAD9B2A78787126BFA57365E2FA2C13E79D78CDF328DA0A