@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: 1702140540 do
Contract.set_type "transfer"
# Burn the non withdrawed tokens
Contract.add_token_transfer to: 0x00000000000000000000000000000000000000000000000000000000000000000000, amount: 0.0122385, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.set_code ""
end
condition triggered_by: transaction, on: refund(), as: [
timestamp: timestamp >= 1702140540
]
actions triggered_by: transaction, on: refund() do
Contract.set_type "transfer"
# Burn the non withdrawed tokens
Contract.add_token_transfer to: 0x00000000000000000000000000000000000000000000000000000000000000000000, amount: 0.0122385, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.set_code ""
end
condition triggered_by: transaction, on: reveal_secret(secret), as: [
content: Crypto.hash(String.to_hex(secret)) == 0xA7B6FA2FD0E1CBC5880736942BB4D8469AA5FF3B8B409D5186382695D7205738,
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: 0x00007011C3312E6DD64C930A68B7B5F99AA6FC8FAC555DC1421BADB3091E3786B826, amount: 0.01220179, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.add_token_transfer to: 0x0000749d250560bf06c079832e0e9a24509b1e440a45c33bd9448b41b6a056fc6201, amount: 3.671e-5, 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
566A5E96BCE4F886F5B87B07E8D73294084A31F4496C80B2D1B4DDF69450C89F870A4D7142F397E9EEA01B325382BB24AF7CB23B43B7CD898B8C9CE7
Authorized keys
- 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F
-
Resolved 0000A28F...74E1request_funds
[ 1702140540, 0.0122385, "00007011c3312e6dd64c930a68b7b5f99aa6fc8fac555dc1421badb3091e3786b826", "a7b6fa2fd0e1cbc5880736942bb4d8469aa5ff3b8b409d5186382695d7205738", "0x951a54babffd61e4fee68b75a9f062a103eb79c0bc58935ffdffc404ebc57eee", "0x8b6da96c7979939d4767476feafeb2eb99d21d4a", 11155111 ]
Inputs (0)
Contract inputs (0)
Unspent outputs (1)
-
From 00000386...7884At 2023-12-09 14:51:33 UTCAmount 0.35256124 UCO
Previous public key
0001465CAE7C8EE484E3D02FBA5DB8DED56D843351063C169BC9BB495A6AA7A057A7
Previous signature
359EA9D174D926732690A1C411E55AC1C3C1A415B8B75D2EFA485AC3C1AC5E33A757B37FA6120B652C14308D2CB1C91351F3EF25E278A0AC6E7855A534139E00
Origin signature
3045022100C86E9FE6379CC1BA41300FA1584DDB18EF48850151CD445AE9EB7E02201E6FDF0220448990B301932F8990595619491563F31FEB954B229A486BCA1555D7E483FEE9
Proof of work
010104AB41291F847A601055AEDD1AF24FF76FA970D6441E2DCA3818A8319B004C96B27B8FEB1DA31A044BA0A4800B4353359735719EBB3A05F98393A9CC599C3FAFD6
Proof of integrity
001BAC1B6B3F3BB3AAD4E95CBEB54BA6BC5EE3E29B9017AC28B9580D3061FAC7A0
Coordinator signature
F95F2022C580E32254AEE3D16707DA1F8B8878078A65E82EAB475AA7A0C80A0E324AB2F5561879B2FFBB6F1670C39B5AB10EF63624AA75DE57AEE3D9BD888404
Validator #1 public key
000151C124A6211CD402FD1CFE560C5DB51ED0CBEF44B09B21A41206028E7E5942BF
Validator #1 signature
CFC986B46461914FB47E54D8E2CA73CA959AFE8F6DCEBDD5CF7511EE0041C48EFAA633147C213E7658407BF4D99722A5CD7C19263D7E06AA54CC7D0A5E95D809
Validator #2 public key
0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3
Validator #2 signature
38B99D8070C40AE3BB535DD95200F5A3B663EC43FB3502DBB21A45C71A1697EA7BD2208C4799F3708E1674E1801DAA5494DAB7E531E646EDAD68D4F61F998705