@version 1
condition triggered_by: transaction, on: set_secret_hash(_secret_hash, _secret_hash_signature, _end_time), 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
)
]
actions triggered_by: transaction, on: set_secret_hash(secret_hash, secret_hash_signature, end_time) do
next_code = """
@version 1
# Automate the refunding after the given timestamp
actions triggered_by: datetime, at: #{end_time} do
Contract.set_type "transfer"
# Send back the token to the user address
Contract.add_uco_transfer to: 0x0000E5CD95E09CDF727819B93A9D848A01BFD4EC140AF169E2979997C302D6848AA3, amount: 100
Contract.set_code ""
end
condition triggered_by: transaction, on: refund(), as: [
timestamp: timestamp >= #{end_time}
]
actions triggered_by: transaction, on: refund() do
Contract.set_type "transfer"
# Send back the token to the user address
Contract.add_uco_transfer to: 0x0000E5CD95E09CDF727819B93A9D848A01BFD4EC140AF169E2979997C302D6848AA3, amount: 100
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 < #{end_time},
content: Crypto.hash(String.to_hex(secret)) == 0x#{secret_hash}
]
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: 99.7
Contract.add_uco_transfer to: 0x0000749d250560bf06c079832e0e9a24509b1e440a45c33bd9448b41b6a056fc6201, amount: 0.3
Contract.set_code next_code
end
export fun get_htlc_data() do
[
amount: 99.7,
end_time: #{end_time},
secret_hash: 0x#{secret_hash},
secret_hash_signature: [
r: 0x#{secret_hash_signature.r},
s: 0x#{secret_hash_signature.s},
v: #{secret_hash_signature.v}
]
]
end
"""
Contract.set_code next_code
end
Content (0 B)
State (0 B)
-
Secret shared with 1 key
Encoded secret
C73E26A4396C7E624792AF93BF7D4C878EF1FEB3582C1E2CC8D056CC3CDBA459B96E8BA6071C381AE5DA33195BEB3C7C92DB15749C0AC6133AC912A4
Authorized keys
- 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F
Contract recipients (0)
Inputs (0)
Contract inputs (0)
Unspent outputs (1)
-
From 00000A60...2BB2At 2023-12-14 09:32:29 UTCAmount 0.4350899 UCO
Previous public key
0001CD8FEB22C066AE3BA5A6FF8A366D7D94CF0774381CC0C5A95C6C2C26359593B6
Previous signature
E7D93DA3230267A2466DF5EA0587CA5DB8CD928F5CC15740318CF2303EA7A4E4788087BD7276811C9598B27F5ADF6C3D9F5A31E2158DCFA808BCD4541EE1BB0D
Origin signature
304402207457FD78108B42AB2AD1B836C35860A5CD4A89B0EB1684605C608635D92F7B740220771D0337DD6CB05C570A35458DE5E47F8DC2E89F8CB27EFF68DF5D944B39E0C7
Proof of work
010104AB41291F847A601055AEDD1AF24FF76FA970D6441E2DCA3818A8319B004C96B27B8FEB1DA31A044BA0A4800B4353359735719EBB3A05F98393A9CC599C3FAFD6
Proof of integrity
00E0EFA635F190D97D3EF395FCF59F566E6D971E216027824F7D5E2E2613D235A2
Coordinator signature
E70D5DFEEF29B07A9A54C1861CFBC079B9A9ED5A2AA762E03FE9B214331C9D8BADDB264D550638EA8B21A20C24B84FD672AB47DFFD9EAC53B01D2458B552B506
Validator #1 public key
0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3
Validator #1 signature
B0E71FA9192B86721215976247EEF3EB9D0624B38666DDD2B8E451DA6F72194E174D58426DA25005F35CB2F52BFA5E290D523B7282309AED1038C6E2FD55D004
Validator #2 public key
000151C124A6211CD402FD1CFE560C5DB51ED0CBEF44B09B21A41206028E7E5942BF
Validator #2 signature
EB99B575523BC7E3B18D7B996C7CB9F3C14B297F2745FF7E0630F7136A23F77F19522D9FBC2223D32E7A1DA6378C2E0B41A2EF6095385B7E7F54E995B465720C