Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 18 additions & 14 deletions .github/workflows/bytecode.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@ on:
pull_request:
paths:
- "src/**"
- "artifacts/runtime_bytecode.hex"
- "artifacts/deployment_bytecode.hex"
- "artifacts/native_deployment.hex"
- "artifacts/native_runtime.hex"
- "artifacts/erc20_deployment.hex"
- "artifacts/erc20_runtime.hex"
push:
paths:
- "src/**"
- "artifacts/runtime_bytecode.hex"
- "artifacts/deployment_bytecode.hex"
- "artifacts/native_deployment.hex"
- "artifacts/native_runtime.hex"
- "artifacts/erc20_deployment.hex"
- "artifacts/erc20_runtime.hex"
workflow_dispatch:

jobs:
Expand Down Expand Up @@ -66,16 +70,16 @@ jobs:

if echo "$CHANGED_FILES" | grep -qE '^src/'; then
echo "Detected changes in src/."
if echo "$CHANGED_FILES" | grep -qE '^artifacts/deployment_bytecode\.hex$'; then
echo "artifacts/deployment_bytecode.hex changed as expected."
else
echo "::error title=Bytecode not updated::Changes in src/ require an updated artifacts/deployment_bytecode.hex."
exit 1
fi
if echo "$CHANGED_FILES" | grep -qE '^artifacts/runtime_bytecode\.hex$'; then
echo "artifacts/runtime_bytecode.hex changed as expected."
else
echo "::error title=Bytecode not updated::Changes in src/ require an updated artifacts/runtime_bytecode.hex."
MISSING=()
for f in native_deployment native_runtime erc20_deployment erc20_runtime; do
if echo "$CHANGED_FILES" | grep -qE "^artifacts/${f}\\.hex$"; then
echo "artifacts/${f}.hex changed as expected."
else
MISSING+=("artifacts/${f}.hex")
fi
done
if [[ ${#MISSING[@]} -gt 0 ]]; then
echo "::error title=Bytecode not updated::Changes in src/ require updated artifacts: ${MISSING[*]}"
exit 1
fi
else
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Compiler files
cache/
!out/Escrow.sol/Escrow.json
out/
!out/EscrowNative.sol/
!out/EscrowNative.sol/EscrowNative.json
!out/EscrowERC20.sol/
!out/EscrowERC20.sol/EscrowERC20.json

# Ignores development broadcast logs
!/broadcast
Expand Down
1 change: 0 additions & 1 deletion artifacts/deployment_bytecode.hex

This file was deleted.

1 change: 1 addition & 0 deletions artifacts/erc20_deployment.hex

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions artifacts/erc20_runtime.hex

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions artifacts/native_deployment.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0x60e0601f611e4e38819003918201601f19168301916001600160401b038311848410176101205780849260809460405283398101031261011c578051906001600160a01b038216820361011c576020810151606060408301519201519260a05260c0523360805280151580610113575b6100c1575b604051611d19908161013582396080518181816101560152818161040f015281816105d40152610686015260a0518181816103070152610626015260c0518181816102e5015261038d0152f35b8181018082116100ff5734036100f057805f5560025560015561010061ff001960075416176007555f80610074565b63201c04ab60e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b5081151561006f565b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c8063046f7da2146101445780631aa7c0ec1461013f57806323a8b41a1461013a5780632feef2ec14610135578063308657d71461013057806333ee5f351461012b5780633ccfd60b146101265780633d2691bc146101215780635a4fd6451461011c57806364c9ec6f1461011757806380f323a71461011257806381972d001461010d5780638677ab23146101085780638bd03d0a14610103578063a65e2cfd146100fe578063cb766a56146100f9578063d415b3f9146100f4578063f3a504f2146100ef5763fe03a460146100ea575f80fd5b6107a7565b610782565b610765565b610741565b610672565b610655565b610611565b6105c2565b6105a5565b6104e7565b6104cb565b6104af565b6103ef565b6103d2565b6103b0565b610376565b6101cb565b6101a3565b3461019f575f36600319011261019f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610190576007805460ff19169055005b63618bbdd560e01b5f5260045ffd5b5f80fd5b3461019f575f36600319011261019f576003546040516001600160a01b039091168152602090f35b3461019f57604036600319011261019f5760043567ffffffffffffffff811161019f57806004019060c0600319823603011261019f5761021760243561021184806107c4565b90610934565b61022a61022483806107c4565b90610aa4565b602482019161026b61026761023f85876107c4565b61024f60448697939701896107c4565b60a48701979161025f898c6107c4565b949093610bad565b1590565b610367576102676102b491608461028b61028588806107c4565b90610bd4565b9161025f60648201966102ab6102a1898c6107c4565b959094018b6107c4565b9290918b6107c4565b610358576102676102c86102ce92856107c4565b90610c35565b610349576102e26102679161032c936107c4565b907f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091610d05565b61033a57610338610f20565b005b633cff557560e11b5f5260045ffd5b632b96f51360e01b5f5260045ffd5b637b374dd160e01b5f5260045ffd5b63c89e37db60e01b5f5260045ffd5b3461019f575f36600319011261019f5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461019f575f36600319011261019f57602060ff600754166040519015158152f35b3461019f575f36600319011261019f576020600454604051908152f35b3461019f575f36600319011261019f5760ff60075460081c16156104a0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361019057610445610f86565b61044d610fbd565b61046461ff0019600754166007555f6001555f8055565b8015610491575f80808093335af161047a610852565b501561048257005b63b12d13eb60e01b5f5260045ffd5b6353cd7f7960e01b5f5260045ffd5b636af784dd60e11b5f5260045ffd5b3461019f575f36600319011261019f5760206040516101008152f35b3461019f575f36600319011261019f5760205f54604051908152f35b5f36600319011261019f57600454801515908161059b575b50610568575b60075460ff8160081c16156104a05760ff16610559576105236108c7565b61054a575f5460011c341061053b5761033834610fcf565b63e92c469f60e01b5f5260045ffd5b63129f78e960e11b5f5260045ffd5b632479328960e01b5f5260045ffd5b6005545f54818101809111610596575f5560065490810180911161059657600655610591610f86565b610505565b61087c565b905042115f6104ff565b3461019f575f36600319011261019f576020600554604051908152f35b3461019f575f36600319011261019f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610190576007805460ff19166001179055005b3461019f575f36600319011261019f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461019f575f36600319011261019f576020600154604051908152f35b604036600319011261019f576004356024357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036101905760075460081c60ff16610732578115610723578015610714576106d781836108ba565b3403610705576106ec826106f1935f55600255565b600155565b61033861010061ff00196007541617600755565b63201c04ab60e01b5f5260045ffd5b63932ca0a360e01b5f5260045ffd5b63ea1083a760e01b5f5260045ffd5b635adf638760e01b5f5260045ffd5b3461019f575f36600319011261019f57602061075b6108c7565b6040519015158152f35b3461019f575f36600319011261019f576020600254604051908152f35b3461019f575f36600319011261019f57602060ff60075460081c166040519015158152f35b3461019f575f36600319011261019f576020600654604051908152f35b903590601e198136030182121561019f570180359067ffffffffffffffff821161019f5760200191813603831361019f57565b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f1916820167ffffffffffffffff81118382101761083157604052565b6107f7565b67ffffffffffffffff811161083157601f01601f191660200190565b3d15610877573d9061086b61086683610836565b61080b565b9182523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b906001820180921161059657565b906015820180921161059657565b600101908160011161059657565b9190820180921161059657565b60045480151590816108d7575090565b905042111590565b60011981019190821161059657565b5f1981019190821161059657565b9190820391821161059657565b92919261091861086683610836565b938285528282011161019f57815f926020928387013784010152565b9061094861026760075460ff9060081c1690565b6104a0576003546001600160a01b03163314801590610a08575b6109f9574383116109ea5761010061097a84436108fc565b116109db57824080156109cc57610992368385610909565b60208151910120036109bd576109a791610ff7565b036109ae57565b63048a12f560e11b5f5260045ffd5b63ff28378760e01b5f5260045ffd5b63bfc9f0d360e01b5f5260045ffd5b63c42a018560e01b5f5260045ffd5b63058968cf60e41b5f5260045ffd5b6337b5f20360e21b5f5260045ffd5b50610a146102676108c7565b610962565b634e487b7160e01b5f52603260045260245ffd5b9015610a365790565b610a19565b90821015610a36570190565b60ff60f6199116019060ff821161059657565b60ff607f199116019060ff821161059657565b60ff60bf199116019060ff821161059657565b60ff60b6199116019060ff821161059657565b60ff166001019060ff821161059657565b905f600360fe1b6001600160f81b0319610acf610ac18587610a2d565b356001600160f81b03191690565b1610610b9e57601f60fb1b6001600160f81b0319610af0610ac18587610a2d565b1610610b955780610b2a610b24610b1f610b1a610b14610ac1610b3097898b610a3b565b60f81c90565b610a47565b610a93565b60ff1690565b906108ba565b905b5f5b60048110610b805750600560fd1b906001600160f81b031990610b5d90610ac190859087610a3b565b1603610b7157610b6c90610890565b013590565b633954003560e11b5f5260045ffd5b91610b8e60019183866110a7565b9201610b34565b50600190610b32565b63c0098bd960e01b5f5260045ffd5b610bc3610bcb92939495610bd198973691610909565b923691610909565b9061122f565b90565b90610bdf81836113e9565b905f5b60058110610c205750600560fd1b906001600160f81b031990610c0790849086610a3b565b351603610b715760018101811161059657016001013590565b91610c2e60019183866110a7565b9201610be2565b5f9082151580610ce9575b610ce0575b60c060ff610c5a610b14610ac1868887610a3b565b1610610cd157610b14610ac182858560f860ff610c84610b14610ac1839b60019d610cae9c610a3b565b1610610cc85780610b2a610b24610b1f610b1a610b14610ac1610ca897898b610a3b565b91610a3b565b1603610cb957600190565b63e9dd8a9d60e01b5f5260045ffd5b610ca890610890565b631bd5dcf760e31b5f5260045ffd5b60019150610c45565b50608060ff610cfe610b14610ac18786610a2d565b1610610c40565b90916003905f84151580610f04575b610ebc575b60c060ff610d2e610b14610ac1858a8a610a3b565b1610610cd1578060f860ff610d4d610b14610ac1610d73968b8b610a3b565b1610610eb35760ff610d6c610b1f610b1a610b14610ac1868c8c610a3b565b16906108ba565b915f905b808210610e9c575050609460ff610d95610b14610ac1868989610a3b565b1603610e8d576001600160a01b03168282016001013560601c03610e7e57610dbc9061089e565b91610dce610b14610ac1858486610a3b565b925f9260ff851694608086105f14610dff5750505050505b03610df057600190565b6355e97b0d60e01b5f5260045ffd5b90919293946080145f14610e185750505050505f610de6565b610b24610e2791939293610a5a565b915f935b838510610e3c575050505050610de6565b9091929394610e4d60019160081b90565b610e72610b24610b14610ac1610e6b8b610e668b610890565b6108ba565b8789610a3b565b17950193929190610e2b565b63c0ee95bb60e01b5f5260045ffd5b63e6c4247b60e01b5f5260045ffd5b9092610eab60019187876110a7565b930190610d77565b60ff6001610d6c565b509050610ecf610b14610ac18585610a2d565b6001919060ff16808303610ee65750600491610d19565b600203610ef557600591610d19565b636fc3daa360e11b5f5260045ffd5b50608060ff610f19610b14610ac18989610a2d565b1610610d14565b6005545f548101809111610596576001548101809111610596575f808080936003546001600160601b0360a01b8116600355826005558260045561ff0019600754166007558260015582805560018060a01b03165af1610f7e610852565b501561048257565b610f8e6108c7565b610fae576001600160601b0360a01b600354166003555f6005555f600455565b639cbc1de160e01b5f5260045ffd5b60015460025481018091116105965790565b336001600160601b0360a01b600354161760035561012c420180421161059657600455600555565b61100182826113e9565b915f5b60088110611092575061101e610b14610ac1858486610a3b565b925f9260ff851694608086105f1461103857505050505090565b6110499193949550610b2490610a5a565b915f935b83851061105c57505050505090565b909192939461106d60019160081b90565b611086610b24610b14610ac1610e6b8b610e668b610890565b1795019392919061104d565b926110a060019183856110a7565b9301611004565b919080821015611202576110c2610b14610ac1848487610a3b565b9060ff821660808110156110dd57505050610bd19150610890565b91929160b8811015611105575050610bd19250610b246110ff610b2a92610890565b92610a5a565b90929060c081101561117b5750610b2461112191949394610a80565b915f935f915b84831061114257505050610bd19291610e66610e6692610890565b90919461115160019160081b90565b611171610b24610b14610ac161116a8b610e668b610890565b8888610a3b565b1795019190611127565b90929060f811156111a15750610bd19250610b2461119b610b2a92610890565b92610a6d565b9291610b246111af91610a47565b915f935f915b8483106111d057505050610bd19291610e66610e6692610890565b9091946111df60019160081b90565b6111f8610b24610b14610ac161116a8b610e668b610890565b17950191906111b5565b6318d76ae160e11b5f5260045ffd5b805115610a365760200190565b908151811015610a36570160200190565b919390929190600360fe1b6001600160f81b0319611250610ac18689610a2d565b16106113da57601f60fb1b6001600160f81b0319611271610ac18689610a2d565b16106113d057611295611290610b24610b1a610b14610ac1888b610a2d565b6108ac565b9492905b945f5b8282106112ae57505050505050505f90565b6112cc6112c5836112c036878a610909565b611546565b90936108ba565b96825160208401200361136e57600360fe1b6113086112fb6112ed85611211565b516001600160f81b03191690565b6001600160f81b03191690565b1061136e578590846001601f60fb1b6113266112fb6112ed88611211565b10156113b2575b61133781866116ed565b60118103611379575061134994611878565b94911561136e5784156113625793915b9195909361129c565b50505050505050600190565b505050505050505f90565b9093506002141590506113a65784879261139294611732565b94911561136e578415611362579391611359565b50505050505050505f90565b506113cb611290610b24610b1a610b146112ed89611211565b61132d565b6001949290611299565b63ebb47d1d60e01b5f5260045ffd5b5f600360fe1b6001600160f81b0319611405610ac18686610a2d565b1610610b9e57601f60fb1b6001600160f81b0319611426610ac18686610a2d565b16106114f85780610b2a610b24610b1f610b1a610b14610ac161144a978a8a610a3b565b905b61a5bd461480156114ed575b611463575b50905090565b5f5b600381106114d85750600360fe1b6114846112fb610ac1858786610a3b565b10610b9e57601f60fb1b61149f6112fb610ac1858786610a3b565b106114c857610b24610b1f610b1a610b14610ac1866114c198610b2a97610a3b565b805f61145d565b506114d39150610890565b6114c1565b916114e660019185846110a7565b9201611465565b5061a5bf4614611458565b5060019061144c565b60409061150d8261080b565b6001815291601f1901366020840137565b9061152b61086683610836565b828152809261153c601f1991610836565b0190602036910137565b80518210156112025761155f610b146112ed848461121e565b9160ff8316608081101561159857505050611578611501565b9060f81b6001600160f81b0319165f1a61159182611211565b5390600190565b919392909160b88110156116025750610b246115b391610a5a565b906115bd8261151e565b935f5b8381106115d357505050610bd1906108ac565b806115ef6112ed6115e9600194610e6688610890565b8561121e565b5f1a6115fb828961121e565b53016115c0565b60c011156116a057610b2461161691610a80565b5f915f5b828110611672575061162b8361151e565b945f5b8481106116455750505090610e66610bd1926108ac565b8061165f6112ed6115e9600194610e6689610e668a610890565b5f1a61166b828a61121e565b530161162e565b9260019060081b611698610b24610b146112ed61169289610e6689610890565b8b61121e565b17930161161a565b50916116ac838261198d565b926116b68461151e565b915f5b8581106116c7575050509190565b806116da6112ed6115e9600194876108ba565b5f1a6116e6828761121e565b53016116b9565b5f92915b815181101561171857611704818361198d565b8101809111610596576001909301926116f1565b5050565b908160011b918083046002149015171561059657565b839492916117408183611546565b939061175f6020611756610b146112ed85611211565b16151591611aba565b9788911561180157506117739051876108ba565b61177d825161171c565b14611792575b505050505050505f905f905f90565b868660019282516117ef575b5050506117ac575b80611783565b6117bf926117b9916108ba565b90611546565b50602081519101209060208151910120146117dd57808080806117a6565b6117e89151906108ba565b6001915f90565b6117f99350611c25565b86865f61179e565b611812939495965061026792611c25565b61186b57611823926117b9916108ba565b50908151602081145f1461184b57506020611843920151925b51906108ba565b916001929190565b801561185f5760206118439301209261183c565b505050505f905f905f90565b50505050505f905f905f90565b91909293611886825161171c565b8510156119305750610b146112ed6118a8926118a28760011c90565b9061121e565b600184166119275760041c600f16915b905f925b60ff8116841061190757506118d19250611546565b50805180156118fc5761184391602082036118f25760209150015191610890565b6020012091610890565b5050505f905f905f90565b9091600161191b82610b2a60ff948761198d565b940193929190506118bc565b600f16916118b8565b9290509392935f915b601083106119735761194b9250611546565b50602081519101209060208151910120145f1461196a57600191905f90565b5f915081908190565b9061198481610b2a6001938561198d565b92019190611939565b908151811015611202576119a7610b146112ed838561121e565b9160ff831660808110156119be5750505050600190565b60b88110156119d957505050610b24610b1f610bd192610a5a565b60c0811015611a45575091610b246119f091610a80565b905f925f915b838310611a0d5750505090610e66610bd1926108ac565b909193611a1c60019160081b90565b611a3b610b24610b146112ed611a358a610e6689610890565b8861121e565b17940191906119f6565b60f81115611a5e575050610b24610b1f610bd192610a6d565b91610b24611a6b91610a47565b905f925f915b838310611a885750505090610e66610bd1926108ac565b909193611a9760019160081b90565b611ab0610b24610b146112ed611a358a610e6689610890565b1794019190611a71565b90815115611c2357611ad1610b146112ed84611211565b6010811615611ba057611af4611aef611aea855161171c565b6108ee565b61151e565b9060f81b600f60f81b165f1a611b0982611211565b5360015b8351811015611b9b5780611b48611b38611b2f610b146112ed6001968a61121e565b60041c600f1690565b60f81b6001600160f81b03191690565b611b61611b57611aea8461171c565b915f1a918561121e565b53611b88600f611b77610b146112ed858a61121e565b1660f81b6001600160f81b03191690565b611b94611b578361171c565b5301611b0d565b509150565b50611bb6611aef611bb1845161171c565b6108df565b60015b8351811015611b9b5780611bdb611b38611b2f610b146112ed6001968a61121e565b611bef611b57611bea846108ee565b61171c565b53611c05600f611b77610b146112ed858a61121e565b611c1c611b57611c17611bea856108ee565b610890565b5301611bb9565b565b919091611c338251846108ba565b611c3d825161171c565b10611cdc575f5b8251811015611cd357611c60611c5a82866108ba565b60011690565b611cb557611c89611b2f610b146112ed611c83611c7d868a6108ba565b60011c90565b8661121e565b60ff611c9e610b24610b146112ed868961121e565b911603611cad57600101611c44565b505050505f90565b600f611ccd610b146112ed611c83611c7d868a6108ba565b16611c89565b50505050600190565b5050505f9056fea2646970667358221220551b080203e39849c48692aeaf0c14462bab43e541853bdf873a521ef4a4fef064736f6c634300081e0033
Loading