@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: 1701733080 do
Contract.set_type "transfer"
# Burn the non withdrawed tokens
Contract.add_token_transfer to: 0x00000000000000000000000000000000000000000000000000000000000000000000, amount: 0.199, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.set_code ""
end
condition triggered_by: transaction, on: refund(), as: [
timestamp: timestamp >= 1701733080
]
actions triggered_by: transaction, on: refund() do
Contract.set_type "transfer"
# Burn the non withdrawed tokens
Contract.add_token_transfer to: 0x00000000000000000000000000000000000000000000000000000000000000000000, amount: 0.199, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.set_code ""
end
condition triggered_by: transaction, on: reveal_secret(secret), as: [
content: Crypto.hash(String.to_hex(secret)) == 0x04E1AF7D9789FF375541DFAC66037F09306D75BE591E05E570C61FD7A091A257,
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: 0x0000129AF01BF97FAF922F0B21EF32A708A760AE670D4F426C398CB3DF2C6F8AFF6B, amount: 0.198403, token_address: 0x00003DF600E329199BF3EE8FBE2B8223413D70BCDD97E15089E6A74D94DE3F1173B4
Contract.add_token_transfer to: 0x0000749d250560bf06c079832e0e9a24509b1e440a45c33bd9448b41b6a056fc6201, amount: 5.97e-4, 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
C6E74EA0896196A219D1F1FF2B00489B7354554DBD2130F1F549CD17370F7EF6FE644FA940DDDAB427B3F9A87073CFC0D9D265A6747BD8C434D8F928
Authorized keys
- 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F
-
Resolved 0000A359...A264request_funds
[ 1701733080, 0.199, "0000129af01bf97faf922f0b21ef32a708a760ae670d4f426c398cb3df2c6f8aff6b", "04e1af7d9789ff375541dfac66037f09306d75be591e05e570c61fd7a091a257", "0x7e20130d2fd6cf51d3f143763ec8637987385c38340d5f4be6f06a0c12f8f5ec", "0xa7b3d5976a760356bc8088822a93733b935fad09", 11155111 ]
Inputs (0)
Contract inputs (0)
Unspent outputs (1)
-
From 0000D6C1...E7CFAt 2023-12-04 21:39:50 UTCAmount 0.37082842 UCO
Previous public key
00010E4FF038679D5FAA60EE149307F96AB8CD5488B6915E328B7A1254D960D8CC72
Previous signature
8C159AA283BF4EFFF60CFB83DED2913907DEDDBF16A00A09C105717359739E33684A98F9D683B952FE948E23158C9D438AED4BF163F0F74DAFC4D7FB1AE63C06
Origin signature
3045022100C3FDBBB77B232B9B47A3B720ED1CD5E27178BABB7E7400151300905B7C6391AE0220199EA06DD950D8459DA2BFE9498F12FEFBB8CC64E3A40CCA1ED498B425ACC68C
Proof of work
010104AB41291F847A601055AEDD1AF24FF76FA970D6441E2DCA3818A8319B004C96B27B8FEB1DA31A044BA0A4800B4353359735719EBB3A05F98393A9CC599C3FAFD6
Proof of integrity
0001E9DAA783629DF4F64AFF859BE982B295F639FC0595FF7D79E4C3B366837A93
Coordinator signature
779524D7A36C69B374D87ACDA9720B78319078BCE73601852F7A501EC69FAA04EB4BE7215D4CA1F71817453BA6497E96152B49516B4618942909F0AC2A5E3108
Validator #1 public key
0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3
Validator #1 signature
E7E953FCBF155F0FD32E39BAC0D1A3D08EBE7E3A865D77E9DFFCA8D39838FCA8661C1239269A2E90CB3FFC91E273DF6FF788D4807D8AA5EAC6A5A4B8382E9400
Validator #2 public key
000151C124A6211CD402FD1CFE560C5DB51ED0CBEF44B09B21A41206028E7E5942BF
Validator #2 signature
DD68AD92FE3356FEB744238476969985ACF860C0532C5ADF57E6E0B49AF08591F56EF9AEB4717B75AE4AFE673D85B7A71411DABA5DF41FDDB077EA5F77E3AB00