@version 1
condition triggered_by: transaction, on: provision(_evm_contract, _url), 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) == 0x000066706D704329CA8C2A4153991E2DDACC968622CA10217CA14952EB7ABB966C30
)
]
actions triggered_by: transaction, on: provision(evm_contract, url) do
next_code = """
@version 1
# Automate the refunding after the given timestamp
actions triggered_by: datetime, at: 1705222800 do
Contract.set_type "transfer"
# Burn the non withdrawed tokens
Contract.add_token_transfer to: 0x00000000000000000000000000000000000000000000000000000000000000000000, amount: 9.95e-4, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.set_code ""
end
condition triggered_by: transaction, on: refund(), as: [
timestamp: timestamp >= 1705222800
]
actions triggered_by: transaction, on: refund() do
Contract.set_type "transfer"
# Burn the non withdrawed tokens
Contract.add_token_transfer to: 0x00000000000000000000000000000000000000000000000000000000000000000000, amount: 9.95e-4, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.set_code ""
end
condition triggered_by: transaction, on: reveal_secret(secret), as: [
content: Crypto.hash(String.to_hex(secret)) == 0x51CCE57CBF395C8BC5C9C19067EF714BD1A50AD595B201C7A037A92754370649,
address: (
valid? = false
abi_data = Evm.abi_encode("status()")
tx = [to: "#{evm_contract}", data: "0x\#{abi_data}"]
request = [jsonrpc: "2.0", id: "1", method: "eth_call", params: [tx, "latest"]]
headers = ["Content-Type": "application/json"]
body = Json.to_string(request)
res = Http.request("#{url}", "POST", headers, body)
if res.status == 200 && Json.is_valid?(res.body) do
response = Json.parse(res.body)
result = Map.get(response, "result")
if result != nil do
decoded_abi = Evm.abi_decode("(uint)", result)
# Withdrawn status is 1
valid? = List.at(decoded_abi, 0) == 1
end
end
valid?
)
]
actions triggered_by: transaction, on: reveal_secret(secret) do
Contract.set_type "transfer"
Contract.add_token_transfer to: 0x00000728082646346C9BF3676ED7E29407BC1D2073286F694CB4E783ED9817552E80, amount: 9.9202e-4, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.add_token_transfer to: 0x0000749d250560bf06c079832e0e9a24509b1e440a45c33bd9448b41b6a056fc6201, amount: 2.98e-6, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.set_code ""
end
"""
Contract.set_code next_code
end
Content (0 B)
State (0 B)
-
Secret shared with 1 key
Encoded secret
7FD7A51B4CEF9580D656EAAD307DDBB4F64B08F1ABD29573A9E7F1769531253C0D48B12BF5B3548E0F9A35848BD285B74F8F24523FAEDE4DF2D15256
Authorized keys
- 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F
-
Resolved 00004630...0A4Arequest_funds
[ 1705222800, 9.95e-4, "00000728082646346c9bf3676ed7e29407bc1d2073286f694cb4e783ed9817552e80", "51cce57cbf395c8bc5c9c19067ef714bd1a50ad595b201c7a037a92754370649", "0x8e9b95b29c64197889188c3f4780e7228d7ff67311c94a4f5a8e206990c7f916", "0x44013e365ddc2c588b82e8275df1998d6ad0cedc", 11155111 ]
Inputs (0)
Contract inputs (0)
Unspent outputs (1)
-
From 0000D8DB...A51DAt 2024-01-14 07:02:15 UTCAmount 0.35724657 UCO
Previous public key
0001612EB1D623E2FC388A549A2685D78306D380C1A3FCC2DA34FB2C3C0737FABE44
Previous signature
EC9F14AF701CFF30046831927754FE04E6491A602F0923815060768FD7338ABA2C9FEA84B1BC1B68CEF291A43779EB729BF328AD9E6955A6C7F415A29B8FF404
Origin signature
304402205C2A40795F58F0DC54B95D7D0391FEFBB61A8EE5C3993A3A6D1680BED584986A0220359F720EC7C0F58C7CE84FBAFE776E4ACFC06B139738D825F5AF3F864EF7FEBC
Proof of work
010104AB41291F847A601055AEDD1AF24FF76FA970D6441E2DCA3818A8319B004C96B27B8FEB1DA31A044BA0A4800B4353359735719EBB3A05F98393A9CC599C3FAFD6
Proof of integrity
00BB0EFBD1199E348C693B88EE0DFD13BC8711A89CF1808B41FF7D3D0167160EFF
Coordinator signature
2D81D0A1675AD07D9F45D06B0B60A69260F5E8C4EFCFDC997DBBB119C6BFF5126DFBAA4F1779F9993D6792DA7DDF1DD3F7052FC291B7A251A25A383D6FE21E00
Validator #1 public key
0001B01EEF96BA7E95FC844D456CE8868F18864519FC9532E1751C2035FD044DD5D0
Validator #1 signature
239A74F93749D6326E0B27E9B6C8316999260A02932BEAE54EF15F979FBC2FDCEED5A701DF4A7D3E4D20CB1B6E251FCB88614F47D0266F9CBA1382337B57F600
Validator #2 public key
00011ED0B570D680BE5ECD58D2D121689DA73C46DCB38A01C6E10D06286040ADE30A
Validator #2 signature
055C1025D0A8FE766ABEABBC3CF5A377E8AA32B06DA2BB9B81ABDB3F358F879E4CE28253889AD56BCDCCD22110F845B467F86DB25BC006259D685F0489EFAF0D