Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
54a6f32
Allow funds to be sent directly to domains
area Sep 11, 2024
03ff929
Wormhole Relayer WIP
area May 21, 2024
22b7f36
Add Shell contracts WIP
kronosapiens Jun 26, 2024
50a143f
Make bridging messages only valid on one chain
area Aug 6, 2024
6f84e36
Deploy colony shells
area Aug 8, 2024
b44876b
Track tokens received on foreign chain
area Aug 8, 2024
a67c1fc
Give pots ability to track tokens on other chains
area Aug 8, 2024
872f64d
Allow proxy colonies to pay funds
area Aug 9, 2024
316c93a
Arbitrary transactions through proxy colonies
area Aug 9, 2024
1e4499b
Remove ColonyNetworkShells
area Aug 9, 2024
fc6fe27
Multiple arbitrary transactions at once through shells
area Aug 9, 2024
5e7fc41
Shell -> Proxy
area Aug 9, 2024
a1cb961
Add hardhat deploy-proxy-network
area Aug 9, 2024
7765c23
Move bridge data setting functions to setup-bridging-contracts
area Aug 10, 2024
81dc27b
setup-bridging-contracts can handle multiple remote chains
area Aug 12, 2024
0172181
Add ability to call ProxyNetwork cross-chain; remove old cross-chain …
area Aug 27, 2024
61f8b84
Add docs
area Aug 27, 2024
5d32e55
Get coverage tests working with bridge both ways
area Aug 28, 2024
f49a909
Update storage-layouts for proxy contracts
area Aug 28, 2024
ef02f1b
Continue trying to get a green CircleCI build on branch
area Aug 28, 2024
227fd2d
Vaguely port chainid-based-behaviour tests (needs more work)
area Aug 28, 2024
fad615b
Streamline deployments for two chains
area Aug 29, 2024
749a8b8
ChainID tests still valid for Xdai and Arbitrum
area Aug 29, 2024
df09889
More bridging tests
area Aug 29, 2024
c5225bb
Continue tidying up proxy contracts
area Sep 2, 2024
e96d641
More proxy-colony permission tests
area Sep 3, 2024
dc1b4c2
Continue removing code from old cross-chain system
area Sep 3, 2024
88f271d
More proxy-colony permission tests (and others)
area Sep 4, 2024
d3dd2be
Allow funds to be sent directly to domains
area Sep 11, 2024
97e45ba
Respect reward pots for domain-level claims; add event
area Sep 16, 2024
bb6e6e2
First pass at cross-chain domain-level token swaps
area Sep 18, 2024
0cbc682
Fixes post-rebase
area Sep 19, 2024
301081f
Respect reward pots for domain-level claims; add event
area Sep 16, 2024
18ab587
Fix up build checks
area Sep 20, 2024
db22e3d
More tests for DomainTokenReceiver
area Sep 20, 2024
a9e4748
Extra tests, mostly around permissions
area Sep 20, 2024
256c6b8
Add metatransactions to ProxyColony
area Sep 20, 2024
63aa1af
Proxy-held to proxy-held token swapping
area Oct 1, 2024
2dfa168
Relayer actually uses destination chain to make decisions
area Oct 4, 2024
e58b7da
Post-rebase fixing
area Oct 16, 2024
bdeddca
Introduce increment/decrement funding pot for stack size reasons
area Oct 16, 2024
5c73456
Start using viaIR
area Oct 16, 2024
3a90ca2
OneTxPayment cross-chain support
area Oct 16, 2024
a06accb
Add events for Proxy Colony deployment
area Oct 21, 2024
6f79e08
Update docs post-rebase
area Nov 8, 2024
11b4968
Fixes post-rebase on fund-domains-directly
area Nov 8, 2024
fd43011
makeArbitraryTransactions to singular on ProxyColony
area Nov 21, 2024
b159419
Same-chain token swapping test
area Nov 22, 2024
fa17afc
More LiFi guards/tests
area Nov 25, 2024
42ba402
Guard against LiFi spending otherwise approved tokens
area Nov 26, 2024
f19ab86
For now, prevent proxy colony calling self
area Nov 27, 2024
b8d6c9f
Add Wormholescan API mock
area Nov 29, 2024
6f8b34a
Use reworked domain receiving logic
area Dec 16, 2024
bf75b32
Have colony emit ProxyColonyRequested as well
area Jan 7, 2025
b5f3ad3
Add VAA to operations endpoint for self-bridging scenarios
area Jan 9, 2025
fc5f28e
Fix function name changed after rebase
area Jan 13, 2025
83221c0
Add agent to ProxyColonyRequested
area Jan 13, 2025
272e053
Easy changes following review
area Jan 20, 2025
304b36d
Single LiFi function
area Jan 20, 2025
5f7108f
checkDomainTokenReceiverDeployed in line with previous PRs
area Jan 21, 2025
5a1cf70
Add common/mixins directory
area Jan 21, 2025
7d9a491
Fix spy for chains we don't pay for for dev
area Jan 22, 2025
4b79937
Track nonRewardPotTotals on proxy chains
area Jan 23, 2025
dabb45f
claimTokens -> claimColonyFunds for consistency
area Jan 24, 2025
6225cbc
Bump contract versions as using viaIR
area Jan 24, 2025
f8fbca4
Add multicall claim test
area Jan 29, 2025
f22a0c2
Try new ExtendedNonceManager
area Jan 30, 2025
cbd44ff
Post-rebase fixes
area Jan 30, 2025
8fdfba9
Fix makePaymentFundedFromDomain for multichain
area Jan 31, 2025
f3a1de6
Fees for cross-chain payouts
area Jan 31, 2025
370067c
PayoutClaimed should have chainId
area Feb 3, 2025
1653b8b
ExpenditurePayoutsSet should have chainId
area Feb 3, 2025
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
16 changes: 13 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,10 @@ step_compile_mock_spy: &step_compile_mock_spy
cd ./../.. && npx hardhat compile
cp ./packages/wormhole-relayer/config.example.js ./packages/wormhole-relayer/config.js
npx tsc
step_generate_wormhole_types: &step_generate_wormhole_types
run:
name: "Generate wormhole API types for mock endpoint"
command: sudo apt install default-jre && cd ./helpers/wormholescanMock && pnpm i && npm run generate-types

jobs:
build-checks:
Expand All @@ -83,10 +87,10 @@ jobs:
- run:
name: "Checking contract storage layout hasn't had additions made"
command: rm -rf .storage-layouts-normalized && npx hardhat storage-layout --update && npm run normalize:storageSlots && test -z "$(git status --porcelain)"
- <<: *step_compile_mock_spy
- run:
name: "Linting JavaScript"
command: pnpm run eslint
- <<: *step_compile_mock_spy
- run:
name: "Linting Solidity"
command: pnpm run solhint
Expand Down Expand Up @@ -319,6 +323,11 @@ jobs:
command: CHAIN_ID=100 pnpm run test:contracts:chainid:coverage
environment:
NODE_OPTIONS: --max-old-space-size=6144
- run:
name: "Running chainid tests for Arbitrum One"
command: CHAIN_ID=42161 pnpm run test:contracts:chainid:coverage
environment:
NODE_OPTIONS: --max-old-space-size=6144
- run:
name: "Running chainid tests with coverage for an unsupported network"
command: CHAIN_ID=777 pnpm run test:contracts:chainid:coverage
Expand All @@ -327,10 +336,10 @@ jobs:
- persist_to_workspace:
root: ./
paths:
- coverage-chainid-1
- coverage-chainid-5
- coverage-chainid-100
- coverage-chainid-42161
- coverage-chainid-777
- coverage-chainid-1
coverage-test-bridging:
<<: *job_common
resource_class: large
Expand All @@ -343,6 +352,7 @@ jobs:
- <<: *step_setup_global_packages
- <<: *step_install_lsof
- <<: *step_compile_mock_spy
- <<: *step_generate_wormhole_types
- run:
name: "Installing the safe-contracts dependencies"
command: cd ./lib/safe-contracts && pnpm i --ignore-scripts
Expand Down
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ keys/*
lib/*
packages/**/node_modules
scripts/mockGuardianSpy.js
helpers/wormholescanMock/dist/*
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
"error",
"ignorePackages",
{
"": "never",
"js": "never",
"jsx": "never",
"ts": "never",
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ coverage-extensions/
.pnpm-store
.storage-layouts
scripts/mockGuardianSpy.js
helpers/wormholescanMock/src/encodeMockVAA.js
3 changes: 2 additions & 1 deletion .soliumrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"error-reason": "error",
"max-len": "error",
"no-trailing-whitespace": "error",
"blank-lines": "error"
"blank-lines": "error",
"custom-errors": "off"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{
"storage": [
{
"contract": "contracts/bridging/ProxyColony.sol:ProxyColony",
"label": "authority",
"offset": 0,
"slot": "0",
"type": {
"encoding": "inplace",
"label": "contract DSAuthority",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColony.sol:ProxyColony",
"label": "owner",
"offset": 0,
"slot": "1",
"type": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColony.sol:ProxyColony",
"label": "resolver",
"offset": 0,
"slot": "2",
"type": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColony.sol:ProxyColony",
"label": "metatransactionNonces",
"offset": 0,
"slot": "3",
"type": {
"encoding": "mapping",
"key": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
{
"contract": "contracts/bridging/ProxyColony.sol:ProxyColony",
"label": "tokenBalances",
"offset": 0,
"slot": "4",
"type": {
"encoding": "mapping",
"key": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
{
"storage": [
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "authority",
"offset": 0,
"slot": "0",
"type": {
"encoding": "inplace",
"label": "contract DSAuthority",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "owner",
"offset": 0,
"slot": "1",
"type": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "resolver",
"offset": 0,
"slot": "2",
"type": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "colonyBridgeAddress",
"offset": 0,
"slot": "3",
"type": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "homeChainId",
"offset": 0,
"slot": "4",
"type": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
},
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "proxyColonyResolverAddress",
"offset": 0,
"slot": "5",
"type": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
},
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "proxyColonies",
"offset": 0,
"slot": "6",
"type": {
"encoding": "mapping",
"key": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"label": "mapping(address => bool)",
"numberOfBytes": "32",
"value": {
"encoding": "inplace",
"label": "bool",
"numberOfBytes": "1"
}
}
},
{
"contract": "contracts/bridging/ProxyColonyNetwork.sol:ProxyColonyNetwork",
"label": "domainTokenReceiverResolver",
"offset": 0,
"slot": "7",
"type": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
}
]
}
Loading