@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) == 0x000018D60115ECE0C7558A46B4693749BF6BEAB524FDDCCF9B10B910619E4EE08801
)
]
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: 1701457920 do
Contract.set_type "transfer"
# Send back UCO to bridge pool
Contract.add_uco_transfer to: 0x000018D60115ECE0C7558A46B4693749BF6BEAB524FDDCCF9B10B910619E4EE08801, amount: 10.945
Contract.set_code ""
end
condition triggered_by: transaction, on: refund(), as: [
timestamp: timestamp >= 1701457920
]
actions triggered_by: transaction, on: refund() do
Contract.set_type "transfer"
# Send back UCO to bridge pool
Contract.add_uco_transfer to: 0x000018D60115ECE0C7558A46B4693749BF6BEAB524FDDCCF9B10B910619E4EE08801, amount: 10.945
Contract.set_code ""
end
condition triggered_by: transaction, on: reveal_secret(secret), as: [
content: Crypto.hash(String.to_hex(secret)) == 0x65389FBB66AFFE1F340BCD843DE2E0152FF961632E9388F002674091730B0519,
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_uco_transfer to: 0x00000074711AC67E712F33FA34FCB3388738F232362F4852D06A08AC62818DF8426A, amount: 10.912165
Contract.add_uco_transfer to: 0x0000749d250560bf06c079832e0e9a24509b1e440a45c33bd9448b41b6a056fc6201, amount: 0.032835
Contract.set_code ""
end
"""
Contract.set_code next_code
end
Content (0 B)
State (0 B)
-
Secret shared with 1 key
Encoded secret
588CE54984B7878F04694B3A45951D7E974F8EC8AA8F42BFA32D9CC2DA1D68433E9BAFF856F87EB5EE42A1CC459DAAF9719E36120AC4BA89A7F1F6DF
Authorized keys
- 00017877BCF4122095926A49489009649603AB129822A19EF9D573B8FD714911ED7F
-
Resolved 000011F8...3C94request_funds
[ 1701457920, 10.945, "00000074711ac67e712f33fa34fcb3388738f232362f4852d06a08ac62818df8426a", "65389fbb66affe1f340bcd843de2e0152ff961632e9388f002674091730b0519", "0xa253bd0a1a6807178455bfc6cb67da298168ae8c1953ddda2679b98ce71e60fc", "0xb7e970b699254cd8d3b22932e3ea72c12cafc900", 80001 ]
Inputs (0)
Contract inputs (0)
Unspent outputs (1)
-
From 0000F3D2...C5E8At 2023-12-01 17:13:46 UTCAmount 0.26166106 UCO
Previous public key
000165D834CF2021DFC0532DE62373397299B647506C410D238238CBD7F3F873C534
Previous signature
37BE78F5C7C063A1CA64479798F4EE38B55B16A3650ED83B3B82EA12C693EF2A63B6265B4036943BB80E91C31DA5A923E1A771853475920F47C0C08EDB0D900A
Origin signature
3044022000A4F1032141A99808B857E56892769DDC20F829D60F24D6500F87F8FE276FDB0220314BAEE104B15FA424EC0079E8A63E7C86C39A2C14ABDE9310BA9A21E0AFF7B0
Proof of work
010104AB41291F847A601055AEDD1AF24FF76FA970D6441E2DCA3818A8319B004C96B27B8FEB1DA31A044BA0A4800B4353359735719EBB3A05F98393A9CC599C3FAFD6
Proof of integrity
0080CD48D5DD8EF5615655C6D8DC71C9F8E691087DDC0CC32D88A3D8AB3AA8915B
Coordinator signature
6FFA4EA0A322ADB61445A73F77DF8F28FC5C16F45556253A3A2B2767ACB26900BC2C59EC12DBF6633E70BEAED8470277F96C9C0548870E210C5F90DD2C51820A
Validator #1 public key
0001B0A94804BF8ECC9897075C6207FF63EF4D339F57A0349888E6B77CD47DB53EF3
Validator #1 signature
477A28434F7B35BED8E9AF1B2CD01B759A695632B24C0AEEAAABD78CC0AA113FA82C725B89637A435C92C3B47FD64981DD34044C27B9EBAB74F4736CF9955106
Validator #2 public key
000151C124A6211CD402FD1CFE560C5DB51ED0CBEF44B09B21A41206028E7E5942BF
Validator #2 signature
6C16CB2AF5F769887979BA462B678C9F615864229052B7E99A8CE28B28F17132FA4E5D8866042FB325885920FFD562DB74D790A0F441402A9A5A45BE8D4AF60C