Skip to content

Commit b670d26

Browse files
authored
feat: commit artifacts (#106)
1 parent 87d32cd commit b670d26

File tree

12 files changed

+65
-6
lines changed

12 files changed

+65
-6
lines changed

.env.template

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
# ===========================================
44
# Set to true in CI environments
55
CI=false
6-
6+
# Foundry configuration for OpenZeppelin Lib
7+
FOUNDRY_OUT=artifacts
78
# ===========================================
89
# DEPLOYMENT CONFIGURATION
910
# ===========================================
@@ -41,4 +42,4 @@ RECIPIENT_ADDRESS=
4142
# ===========================================
4243
# ADMIN CONFIGURATION
4344
# ===========================================
44-
NEW_DEFAULT_ADMIN=
45+
NEW_DEFAULT_ADMIN=

.github/workflows/deploy.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ jobs:
3030
runs-on: ubuntu-latest
3131
env:
3232
CI: true
33+
FOUNDRY_OUT: artifacts
3334
permissions:
3435
contents: write # Required to commit deployment files.
3536
environment: ${{ inputs.network }}

.github/workflows/main.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ concurrency:
1717

1818
env:
1919
FOUNDRY_PROFILE: ci
20+
FOUNDRY_OUT: artifacts
2021

2122
jobs:
2223
build-and-test:
@@ -40,7 +41,7 @@ jobs:
4041
run: forge fmt --check
4142

4243
- name: Run Forge build
43-
run: forge build && forge build './src' --sizes
44+
run: forge clean && forge build && forge build './src' --sizes
4445

4546
- name: Run Foundry coverage
4647
env:
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Verify Build Artifacts
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- 'src/**/*.sol'
7+
- '.github/workflows/verify-artifacts.yml'
8+
9+
env:
10+
FOUNDRY_PROFILE: ci
11+
12+
jobs:
13+
verify-artifacts:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
with:
20+
submodules: recursive
21+
22+
- name: Install Foundry
23+
uses: foundry-rs/foundry-toolchain@v1
24+
with:
25+
version: stable
26+
cache: true
27+
28+
- name: Build contracts
29+
run: forge build
30+
31+
- name: Check artifacts are up to date
32+
run: |
33+
if ! git diff --quiet HEAD -- artifacts/; then
34+
echo "❌ Build artifacts in artifacts/ directory are not up to date!"
35+
echo ""
36+
git diff --name-only HEAD -- artifacts/
37+
echo ""
38+
echo "Please run 'forge build' locally and commit the updated artifacts."
39+
exit 1
40+
fi
41+
echo "✅ Build artifacts are up to date!"

.gitignore

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Compiler files
22
cache/
3-
out/
43

54
# Ignores development broadcast logs
65
!/broadcast
@@ -19,3 +18,13 @@ broadcast/*/*/run-*.json
1918
/coverage
2019
lcov.info
2120
lcov.src.info
21+
22+
# Ignore all artifacts except some files.
23+
!/artifacts/
24+
/artifacts/**
25+
!/artifacts/*IexecLayerZeroBridge.sol
26+
!/artifacts/*IexecLayerZeroBridge.sol/*
27+
!/artifacts/*RLCCrosschainToken.sol
28+
!/artifacts/*RLCCrosschainToken.sol/*
29+
!/artifacts/*RLCLiquidityUnifier.sol
30+
!/artifacts/*RLCLiquidityUnifier.sol/*
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"abi":[{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseOutboundTransfers","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpauseOutboundTransfers","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"OperationNotAllowed","inputs":[{"name":"message","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"pause()":"8456cb59","pauseOutboundTransfers()":"86843aa1","unpause()":"3f4ba83a","unpauseOutboundTransfers()":"1657c3b8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"OperationNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseOutboundTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseOutboundTransfers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"pause()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"},\"pauseOutboundTransfers()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"},\"unpause()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"},\"unpauseOutboundTransfers()\":{\"details\":\"Should only be callable by authorized accounts: PAUSER_ROLE.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"pause()\":{\"notice\":\"Pauses the contract, disabling `_credit` & `_debit` functions.\"},\"pauseOutboundTransfers()\":{\"notice\":\"Pauses only the `_debit` function, allowing `_credit` to still work.\"},\"unpause()\":{\"notice\":\"Unpauses the contract, re-enabling previously disabled functions (`_credit` & `_debit`).\"},\"unpauseOutboundTransfers()\":{\"notice\":\"Unpauses the `_debit` function, allowing outbound transfers again.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IIexecLayerZeroBridge.sol\":\"IIexecLayerZeroBridge\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@createx/contracts/=lib/createx/src/\",\":@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/\",\":@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/\",\":@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/\",\":@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/\",\":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/\",\":@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/\",\":@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/\",\":@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":createx/=lib/createx/src/\",\":devtools/=lib/devtools/packages/toolbox-foundry/src/\",\":ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":layerzero-v1/=lib/layerzero-v1/contracts/\",\":layerzero-v2/=lib/layerzero-v2/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/\",\":rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/\",\":solady/=lib/createx/lib/solady/\",\":solidity-bytes-utils/=lib/solidity-bytes-utils/\"]},\"sources\":{\"src/interfaces/IIexecLayerZeroBridge.sol\":{\"keccak256\":\"0x970b8202b88c17d02f048bdd4d7a48a99dfce8c935df7bc9997dbb4788613a77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8a83809f4a060d53937dc4c066c9d791e8e41ba4f732566382494bd8abafed5e\",\"dweb:/ipfs/QmTGqx1WrJPEbujozYHttaivxSAqFFbbM1PLEFNAVLspTZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.23+commit.f704f362"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"message","type":"string"}],"type":"error","name":"OperationNotAllowed"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pauseOutboundTransfers"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpauseOutboundTransfers"}],"devdoc":{"kind":"dev","methods":{"pause()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."},"pauseOutboundTransfers()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."},"unpause()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."},"unpauseOutboundTransfers()":{"details":"Should only be callable by authorized accounts: PAUSER_ROLE."}},"version":1},"userdoc":{"kind":"user","methods":{"pause()":{"notice":"Pauses the contract, disabling `_credit` & `_debit` functions."},"pauseOutboundTransfers()":{"notice":"Pauses only the `_debit` function, allowing `_credit` to still work."},"unpause()":{"notice":"Unpauses the contract, re-enabling previously disabled functions (`_credit` & `_debit`)."},"unpauseOutboundTransfers()":{"notice":"Unpauses the `_debit` function, allowing outbound transfers again."}},"version":1}},"settings":{"remappings":["@createx/contracts/=lib/createx/src/","@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib/","@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol/","@layerzerolabs/lz-evm-v1-0.7/=lib/layerzero-v1/","@layerzerolabs/oapp-evm-upgradeable/=lib/devtools/packages/oapp-evm-upgradeable/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@layerzerolabs/oft-evm-upgradeable/=lib/devtools/packages/oft-evm-upgradeable/","@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/","@layerzerolabs/test-devtools-evm-foundry/=lib/devtools/packages/test-devtools-evm-foundry/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","createx/=lib/createx/src/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/solidity-bytes-utils/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","layerzero-v1/=lib/layerzero-v1/contracts/","layerzero-v2/=lib/layerzero-v2/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/createx/lib/openzeppelin-contracts/contracts/","rlc-faucet-contract/=lib/rlc-faucet-contract/contracts/","solady/=lib/createx/lib/solady/","solidity-bytes-utils/=lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IIexecLayerZeroBridge.sol":"IIexecLayerZeroBridge"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/interfaces/IIexecLayerZeroBridge.sol":{"keccak256":"0x970b8202b88c17d02f048bdd4d7a48a99dfce8c935df7bc9997dbb4788613a77","urls":["bzz-raw://8a83809f4a060d53937dc4c066c9d791e8e41ba4f732566382494bd8abafed5e","dweb:/ipfs/QmTGqx1WrJPEbujozYHttaivxSAqFFbbM1PLEFNAVLspTZ"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/interfaces/IIexecLayerZeroBridge.sol","id":88307,"exportedSymbols":{"IIexecLayerZeroBridge":[88306]},"nodeType":"SourceUnit","src":"39:979:192","nodes":[{"id":88285,"nodeType":"PragmaDirective","src":"39:24:192","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":88306,"nodeType":"ContractDefinition","src":"65:952:192","nodes":[{"id":88289,"nodeType":"ErrorDefinition","src":"103:42:192","nodes":[],"errorSelector":"67f2b6d3","name":"OperationNotAllowed","nameLocation":"109:19:192","parameters":{"id":88288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":88287,"mutability":"mutable","name":"message","nameLocation":"136:7:192","nodeType":"VariableDeclaration","scope":88289,"src":"129:14:192","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":88286,"name":"string","nodeType":"ElementaryTypeName","src":"129:6:192","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"128:16:192"}},{"id":88293,"nodeType":"FunctionDefinition","src":"318:26:192","nodes":[],"documentation":{"id":88290,"nodeType":"StructuredDocumentation","src":"151:162:192","text":" @notice Pauses the contract, disabling `_credit` & `_debit` functions.\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"8456cb59","implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"327:5:192","parameters":{"id":88291,"nodeType":"ParameterList","parameters":[],"src":"332:2:192"},"returnParameters":{"id":88292,"nodeType":"ParameterList","parameters":[],"src":"343:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":88297,"nodeType":"FunctionDefinition","src":"543:28:192","nodes":[],"documentation":{"id":88294,"nodeType":"StructuredDocumentation","src":"350:188:192","text":" @notice Unpauses the contract, re-enabling previously disabled functions (`_credit` & `_debit`).\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"3f4ba83a","implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"552:7:192","parameters":{"id":88295,"nodeType":"ParameterList","parameters":[],"src":"559:2:192"},"returnParameters":{"id":88296,"nodeType":"ParameterList","parameters":[],"src":"570:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":88301,"nodeType":"FunctionDefinition","src":"750:43:192","nodes":[],"documentation":{"id":88298,"nodeType":"StructuredDocumentation","src":"577:168:192","text":" @notice Pauses only the `_debit` function, allowing `_credit` to still work.\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"86843aa1","implemented":false,"kind":"function","modifiers":[],"name":"pauseOutboundTransfers","nameLocation":"759:22:192","parameters":{"id":88299,"nodeType":"ParameterList","parameters":[],"src":"781:2:192"},"returnParameters":{"id":88300,"nodeType":"ParameterList","parameters":[],"src":"792:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":88305,"nodeType":"FunctionDefinition","src":"970:45:192","nodes":[],"documentation":{"id":88302,"nodeType":"StructuredDocumentation","src":"799:166:192","text":" @notice Unpauses the `_debit` function, allowing outbound transfers again.\n @dev Should only be callable by authorized accounts: PAUSER_ROLE."},"functionSelector":"1657c3b8","implemented":false,"kind":"function","modifiers":[],"name":"unpauseOutboundTransfers","nameLocation":"979:24:192","parameters":{"id":88303,"nodeType":"ParameterList","parameters":[],"src":"1003:2:192"},"returnParameters":{"id":88304,"nodeType":"ParameterList","parameters":[],"src":"1014:0:192"},"scope":88306,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IIexecLayerZeroBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[88306],"name":"IIexecLayerZeroBridge","nameLocation":"75:21:192","scope":88307,"usedErrors":[88289],"usedEvents":[]}],"license":"Apache-2.0"},"id":192}

0 commit comments

Comments
 (0)