Merge branch '0xProject:development' into development
This commit is contained in:
commit
62795ee718
61
.github/workflows/ci.yml
vendored
61
.github/workflows/ci.yml
vendored
@ -83,28 +83,30 @@ jobs:
|
||||
-p @0x/order-utils \
|
||||
-m --serial -c test:ci
|
||||
|
||||
# NOTE: disabled as ZRXToken.sol did not compile with the latest forge.
|
||||
# TODO: re-enable once the issue is resolved.
|
||||
- name: Run Forge build for erc20
|
||||
working-directory: contracts/erc20
|
||||
run: |
|
||||
forge --version
|
||||
forge build --sizes
|
||||
forge build --sizes --skip ZRXToken
|
||||
|
||||
- name: Run Forge tests for erc20
|
||||
working-directory: contracts/erc20
|
||||
run: |
|
||||
forge test -vvv --gas-report
|
||||
# - name: Run Forge tests for erc20
|
||||
# working-directory: contracts/erc20
|
||||
# run: |
|
||||
# forge test -vvv --gas-report
|
||||
|
||||
- name: Run Forge coverage for erc20
|
||||
working-directory: contracts/erc20
|
||||
run: |
|
||||
forge coverage --report summary --report lcov
|
||||
# - name: Run Forge coverage for erc20
|
||||
# working-directory: contracts/erc20
|
||||
# run: |
|
||||
# forge coverage --report summary --report lcov
|
||||
|
||||
- name: Upload the coverage report to Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
base-path: ./contracts/erc20/
|
||||
path-to-lcov: ./contracts/erc20/lcov.info
|
||||
# - name: Upload the coverage report to Coveralls
|
||||
# uses: coverallsapp/github-action@master
|
||||
# with:
|
||||
# github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# base-path: ./contracts/erc20/
|
||||
# path-to-lcov: ./contracts/erc20/lcov.info
|
||||
|
||||
- name: Run Forge build for zero-ex
|
||||
working-directory: contracts/zero-ex
|
||||
@ -142,19 +144,20 @@ jobs:
|
||||
forge --version
|
||||
forge build --sizes
|
||||
|
||||
- name: Run Forge tests on governance contracts
|
||||
working-directory: ./contracts/governance
|
||||
run: |
|
||||
forge test -vvv --gas-report
|
||||
# TODO: re-enable once the issue is resolved.
|
||||
# - name: Run Forge tests on governance contracts
|
||||
# working-directory: ./contracts/governance
|
||||
# run: |
|
||||
# forge test -vvv --gas-report
|
||||
|
||||
- name: Run Forge coverage on governance contracts
|
||||
working-directory: ./contracts/governance
|
||||
run: |
|
||||
forge coverage --report lcov
|
||||
# - name: Run Forge coverage on governance contracts
|
||||
# working-directory: ./contracts/governance
|
||||
# run: |
|
||||
# forge coverage --report lcov
|
||||
|
||||
- name: Upload the coverage report to Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
base-path: ./contracts/governance/
|
||||
path-to-lcov: ./contracts/governance/lcov.info
|
||||
# - name: Upload the coverage report to Coveralls
|
||||
# uses: coverallsapp/github-action@master
|
||||
# with:
|
||||
# github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# base-path: ./contracts/governance/
|
||||
# path-to-lcov: ./contracts/governance/lcov.info
|
||||
|
30
.github/workflows/publish.yml
vendored
30
.github/workflows/publish.yml
vendored
@ -14,6 +14,8 @@ on:
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
PublishBranch: publish/${{github.ref_name }}-${{ github.run_id }}-${{ github.run_number }}
|
||||
steps:
|
||||
- name: 'check successful status'
|
||||
run: |
|
||||
@ -38,6 +40,10 @@ jobs:
|
||||
run: |
|
||||
git config --global user.email "github-actions@github.com"
|
||||
git config --global user.name "Github Actions"
|
||||
- name: 'Checkout new branch'
|
||||
run: |
|
||||
git checkout -b $PublishBranch
|
||||
git push -u origin $PublishBranch
|
||||
- name: 'install dependencies'
|
||||
run: |
|
||||
yarn -D
|
||||
@ -49,9 +55,23 @@ jobs:
|
||||
NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
PUBLISH_PRERELEASE: ${{ github.event.inputs.prerelease }}
|
||||
- name: 'merge into main branch'
|
||||
if: github.event.inputs.prerelease == '' # unless it's a prerelease
|
||||
- name: 'Create PR to merge into ref branch'
|
||||
run: |
|
||||
git checkout main && \
|
||||
git merge ${{ github.ref }} && \
|
||||
git push
|
||||
gh pr create \
|
||||
-B ${{ github.ref_name }} \
|
||||
-H $PublishBranch \
|
||||
--title "Publish: CHANGELOG and Package Version Updates into ${{ github.ref_name }}" \
|
||||
--body "Syncing CHANGELOG and package version updates from publish action ${{github.run_id}}-${{github.run_number}} into ${{ github.ref_name}} branch" \
|
||||
--reviewer ${{ github.actor }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
- name: 'Create PR to merge ref branch into main'
|
||||
run: |
|
||||
gh pr create \
|
||||
-B main \
|
||||
-H ${{ github.ref_name }} \
|
||||
--title "Publish: Sync ${{ github.ref_name }} into main " \
|
||||
--body "Syncing ${{ github.ref_name }} back into main after publish action. NOTE: this PR should be merged after CHANGELOG and package version updates have been merged into ${{ github.ref_name }}" \
|
||||
--reviewer ${{ github.actor }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"timestamp": 1700094997,
|
||||
"version": "4.0.14",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1693346928,
|
||||
"version": "4.0.13",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1692368658,
|
||||
"version": "4.0.12",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1691617396,
|
||||
"version": "4.0.11",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689974915,
|
||||
"version": "4.0.10",
|
||||
|
@ -5,6 +5,22 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v4.0.14 - _November 16, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.0.13 - _August 29, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.0.12 - _August 18, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.0.11 - _August 9, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.0.10 - _July 21, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-erc20",
|
||||
"version": "4.0.10",
|
||||
"version": "4.0.14",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -24,7 +24,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol",
|
||||
"devDependencies": {
|
||||
"@0x/contracts-utils": "^4.8.48",
|
||||
"@0x/contracts-utils": "^4.8.52",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"typedoc": "~0.16.11"
|
||||
},
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"timestamp": 1700094997,
|
||||
"version": "5.4.60",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1693346928,
|
||||
"version": "5.4.59",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1692368658,
|
||||
"version": "5.4.58",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1691617396,
|
||||
"version": "5.4.57",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689974915,
|
||||
"version": "5.4.56",
|
||||
|
@ -5,6 +5,22 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v5.4.60 - _November 16, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v5.4.59 - _August 29, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v5.4.58 - _August 18, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v5.4.57 - _August 9, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v5.4.56 - _July 21, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-test-utils",
|
||||
"version": "5.4.56",
|
||||
"version": "5.4.60",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -41,7 +41,7 @@
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.36",
|
||||
"@0x/base-contract": "^7.0.0",
|
||||
"@0x/contract-addresses": "^8.9.0",
|
||||
"@0x/contract-addresses": "^8.13.0",
|
||||
"@0x/dev-utils": "^5.0.2",
|
||||
"@0x/json-schemas": "^6.4.4",
|
||||
"@0x/order-utils": "^10.4.28",
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"timestamp": 1700094997,
|
||||
"version": "1.4.54",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1693346928,
|
||||
"version": "1.4.53",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1692368658,
|
||||
"version": "1.4.52",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1691617396,
|
||||
"version": "1.4.51",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689974915,
|
||||
"version": "1.4.50",
|
||||
|
@ -5,6 +5,22 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v1.4.54 - _November 16, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v1.4.53 - _August 29, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v1.4.52 - _August 18, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v1.4.51 - _August 9, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v1.4.50 - _July 21, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-treasury",
|
||||
"version": "1.4.50",
|
||||
"version": "1.4.54",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -46,12 +46,12 @@
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/treasury",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.8.5",
|
||||
"@0x/contract-addresses": "^8.9.0",
|
||||
"@0x/contract-addresses": "^8.13.0",
|
||||
"@0x/contracts-asset-proxy": "^3.7.19",
|
||||
"@0x/contracts-erc20": "3.3.57",
|
||||
"@0x/contracts-gen": "^2.0.50",
|
||||
"@0x/contracts-staking": "^2.0.45",
|
||||
"@0x/contracts-test-utils": "^5.4.56",
|
||||
"@0x/contracts-test-utils": "^5.4.60",
|
||||
"@0x/sol-compiler": "^4.8.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@types/isomorphic-fetch": "^0.0.35",
|
||||
@ -73,7 +73,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^7.0.0",
|
||||
"@0x/protocol-utils": "^11.22.4",
|
||||
"@0x/protocol-utils": "^11.24.2",
|
||||
"@0x/subproviders": "^8.0.1",
|
||||
"@0x/types": "^3.3.7",
|
||||
"@0x/typescript-typings": "^5.3.1",
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"timestamp": 1700094997,
|
||||
"version": "4.8.52",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1693346928,
|
||||
"version": "4.8.51",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1692368658,
|
||||
"version": "4.8.50",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1691617396,
|
||||
"version": "4.8.49",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689974915,
|
||||
"version": "4.8.48",
|
||||
|
@ -5,6 +5,22 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v4.8.52 - _November 16, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.8.51 - _August 29, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.8.50 - _August 18, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.8.49 - _August 9, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.8.48 - _July 21, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-utils",
|
||||
"version": "4.8.48",
|
||||
"version": "4.8.52",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -45,7 +45,7 @@
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.8.5",
|
||||
"@0x/contracts-gen": "^2.0.50",
|
||||
"@0x/contracts-test-utils": "^5.4.56",
|
||||
"@0x/contracts-test-utils": "^5.4.60",
|
||||
"@0x/dev-utils": "^5.0.2",
|
||||
"@0x/order-utils": "^10.4.28",
|
||||
"@0x/sol-compiler": "^4.8.2",
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"version": "0.49.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Allowlist Sepolia in AbstractBridgeAdapter"
|
||||
}
|
||||
],
|
||||
"timestamp": 1700094997
|
||||
},
|
||||
{
|
||||
"version": "0.48.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add VelodromeV2 support on Base"
|
||||
}
|
||||
],
|
||||
"timestamp": 1693346928
|
||||
},
|
||||
{
|
||||
"version": "0.47.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add MaverickV1 support on Ethereum, BSC, and Base"
|
||||
}
|
||||
],
|
||||
"timestamp": 1692368658
|
||||
},
|
||||
{
|
||||
"version": "0.46.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add VelodromeV2 support on Optimism"
|
||||
}
|
||||
],
|
||||
"timestamp": 1691617396
|
||||
},
|
||||
{
|
||||
"timestamp": 1689974915,
|
||||
"version": "0.45.1",
|
||||
|
@ -5,6 +5,22 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v0.49.0 - _November 16, 2023_
|
||||
|
||||
* Allowlist Sepolia in AbstractBridgeAdapter
|
||||
|
||||
## v0.48.0 - _August 29, 2023_
|
||||
|
||||
* Add VelodromeV2 support on Base
|
||||
|
||||
## v0.47.0 - _August 18, 2023_
|
||||
|
||||
* Add MaverickV1 support on Ethereum, BSC, and Base
|
||||
|
||||
## v0.46.0 - _August 9, 2023_
|
||||
|
||||
* Add VelodromeV2 support on Optimism
|
||||
|
||||
## v0.45.1 - _July 21, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -23,12 +23,14 @@ abstract contract AbstractBridgeAdapter is IBridgeAdapter {
|
||||
assembly {
|
||||
chainId := chainid()
|
||||
}
|
||||
// Skip chain id validation on Ganache (1337), Anvil (31337), Goerli (5), Mumbai (80001), Base Goerli (84531)
|
||||
// Skip chain id validation on Ganache (1337), Anvil (31337), Goerli (5), Mumbai (80001), Base Goerli (84531),
|
||||
// Sepolia (11155111)
|
||||
bool skipValidation = (chainId == 1337 ||
|
||||
chainId == 31337 ||
|
||||
chainId == 5 ||
|
||||
chainId == 80001 ||
|
||||
chainId == 84531);
|
||||
chainId == 84531 ||
|
||||
chainId == 11155111);
|
||||
|
||||
if (chainId != expectedChainId && !skipValidation) {
|
||||
revert(string(abi.encodePacked(expectedChainName, "BridgeAdapter.constructor: wrong chain ID")));
|
||||
|
@ -22,6 +22,7 @@ import "./mixins/MixinDodo.sol";
|
||||
import "./mixins/MixinDodoV2.sol";
|
||||
import "./mixins/MixinKyberDmm.sol";
|
||||
import "./mixins/MixinKyberElastic.sol";
|
||||
import "./mixins/MixinMaverickV1.sol";
|
||||
import "./mixins/MixinMooniswap.sol";
|
||||
import "./mixins/MixinNerve.sol";
|
||||
import "./mixins/MixinUniswapV2.sol";
|
||||
@ -36,6 +37,7 @@ contract BSCBridgeAdapter is
|
||||
MixinDodoV2,
|
||||
MixinKyberDmm,
|
||||
MixinKyberElastic,
|
||||
MixinMaverickV1,
|
||||
MixinMooniswap,
|
||||
MixinNerve,
|
||||
MixinUniswapV2,
|
||||
@ -103,6 +105,11 @@ contract BSCBridgeAdapter is
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeWOOFi(sellToken, buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.MAVERICKV1) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeMaverickV1(sellToken, buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.UNKNOWN) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
|
@ -22,7 +22,9 @@ import "./mixins/MixinUniswapV2.sol";
|
||||
import "./mixins/MixinBalancerV2Batch.sol";
|
||||
import "./mixins/MixinCurve.sol";
|
||||
import "./mixins/MixinCurveV2.sol";
|
||||
import "./mixins/MixinMaverickV1.sol";
|
||||
import "./mixins/MixinSolidly.sol";
|
||||
import "./mixins/MixinVelodromeV2.sol";
|
||||
|
||||
contract BaseBridgeAdapter is
|
||||
AbstractBridgeAdapter(8453, "Base"),
|
||||
@ -31,7 +33,9 @@ contract BaseBridgeAdapter is
|
||||
MixinBalancerV2Batch,
|
||||
MixinCurve,
|
||||
MixinCurveV2,
|
||||
MixinSolidly
|
||||
MixinMaverickV1,
|
||||
MixinSolidly,
|
||||
MixinVelodromeV2
|
||||
{
|
||||
constructor(IEtherToken weth) public MixinCurve(weth) {}
|
||||
|
||||
@ -73,6 +77,16 @@ contract BaseBridgeAdapter is
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeBalancerV2Batch(sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.MAVERICKV1) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeMaverickV1(sellToken, buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.VELODROMEV2) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeVelodromeV2(sellToken, sellAmount, order.bridgeData);
|
||||
}
|
||||
emit BridgeFill(order.source, sellToken, buyToken, sellAmount, boughtAmount);
|
||||
}
|
||||
|
@ -57,4 +57,6 @@ library BridgeProtocols {
|
||||
uint128 internal constant KYBERELASTIC = 33;
|
||||
uint128 internal constant BARTER = 34;
|
||||
uint128 internal constant TRADERJOEV2 = 35;
|
||||
uint128 internal constant VELODROMEV2 = 36;
|
||||
uint128 internal constant MAVERICKV1 = 37;
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ import "./mixins/MixinKyberDmm.sol";
|
||||
import "./mixins/MixinKyberElastic.sol";
|
||||
import "./mixins/MixinLido.sol";
|
||||
import "./mixins/MixinMakerPSM.sol";
|
||||
import "./mixins/MixinMaverickV1.sol";
|
||||
import "./mixins/MixinNerve.sol";
|
||||
import "./mixins/MixinSynthetix.sol";
|
||||
import "./mixins/MixinUniswap.sol";
|
||||
@ -56,6 +57,7 @@ contract EthereumBridgeAdapter is
|
||||
MixinKyberElastic,
|
||||
MixinLido,
|
||||
MixinMakerPSM,
|
||||
MixinMaverickV1,
|
||||
MixinNerve,
|
||||
MixinSynthetix,
|
||||
MixinUniswap,
|
||||
@ -175,6 +177,11 @@ contract EthereumBridgeAdapter is
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeBarter(sellToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.MAVERICKV1) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeMaverickV1(sellToken, buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.UNKNOWN) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
|
@ -26,6 +26,7 @@ import "./mixins/MixinNerve.sol";
|
||||
import "./mixins/MixinSolidly.sol";
|
||||
import "./mixins/MixinSynthetix.sol";
|
||||
import "./mixins/MixinUniswapV3.sol";
|
||||
import "./mixins/MixinVelodromeV2.sol";
|
||||
import "./mixins/MixinWOOFi.sol";
|
||||
import "./mixins/MixinZeroExBridge.sol";
|
||||
|
||||
@ -39,6 +40,7 @@ contract OptimismBridgeAdapter is
|
||||
MixinNerve,
|
||||
MixinSynthetix,
|
||||
MixinUniswapV3,
|
||||
MixinVelodromeV2,
|
||||
MixinSolidly,
|
||||
MixinWOOFi,
|
||||
MixinZeroExBridge
|
||||
@ -109,6 +111,11 @@ contract OptimismBridgeAdapter is
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeKyberElastic(sellToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.VELODROMEV2) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeVelodromeV2(sellToken, sellAmount, order.bridgeData);
|
||||
}
|
||||
|
||||
emit BridgeFill(order.source, sellToken, buyToken, sellAmount, boughtAmount);
|
||||
|
@ -0,0 +1,63 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
Copyright 2023 ZeroEx Intl.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
pragma solidity ^0.6.5;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "@0x/contracts-erc20/src/v06/LibERC20TokenV06.sol";
|
||||
import "@0x/contracts-erc20/src/IERC20Token.sol";
|
||||
|
||||
interface IMaverickV1Router {
|
||||
struct ExactInputSingleParams {
|
||||
address tokenIn;
|
||||
address tokenOut;
|
||||
address pool;
|
||||
address recipient;
|
||||
uint256 deadline;
|
||||
uint256 amountIn;
|
||||
uint256 amountOutMinimum;
|
||||
uint256 sqrtPriceLimitD18;
|
||||
}
|
||||
|
||||
function exactInputSingle(ExactInputSingleParams calldata params) external payable returns (uint256 amountOut);
|
||||
}
|
||||
|
||||
contract MixinMaverickV1 {
|
||||
using LibERC20TokenV06 for IERC20Token;
|
||||
|
||||
function _tradeMaverickV1(
|
||||
IERC20Token sellToken,
|
||||
IERC20Token buyToken,
|
||||
uint256 sellAmount,
|
||||
bytes memory bridgeData
|
||||
) internal returns (uint256 boughtAmount) {
|
||||
(IMaverickV1Router router, address pool) = abi.decode(bridgeData, (IMaverickV1Router, address));
|
||||
|
||||
// Grant the MaverickV1 router an allowance to sell the sellToken
|
||||
sellToken.approveIfBelow(address(router), sellAmount);
|
||||
|
||||
boughtAmount = router.exactInputSingle(
|
||||
IMaverickV1Router.ExactInputSingleParams({
|
||||
tokenIn: address(sellToken),
|
||||
tokenOut: address(buyToken),
|
||||
pool: pool,
|
||||
recipient: address(this),
|
||||
deadline: block.timestamp,
|
||||
amountIn: sellAmount,
|
||||
amountOutMinimum: 1,
|
||||
sqrtPriceLimitD18: 0
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
Copyright 2023 ZeroEx Intl.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
pragma solidity ^0.6.5;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "@0x/contracts-erc20/src/v06/LibERC20TokenV06.sol";
|
||||
import "@0x/contracts-erc20/src/IERC20Token.sol";
|
||||
|
||||
interface IVelodromeV2Router {
|
||||
struct Route {
|
||||
address from;
|
||||
address to;
|
||||
bool stable;
|
||||
address factory;
|
||||
}
|
||||
|
||||
/// @notice Swap one token for another
|
||||
/// @param amountIn Amount of token in
|
||||
/// @param amountOutMin Minimum amount of desired token received
|
||||
/// @param routes Array of trade routes used in the swap
|
||||
/// @param to Recipient of the tokens received
|
||||
/// @param deadline Deadline to receive tokens
|
||||
/// @return amounts Array of amounts returned per route
|
||||
function swapExactTokensForTokens(
|
||||
uint256 amountIn,
|
||||
uint256 amountOutMin,
|
||||
Route[] calldata routes,
|
||||
address to,
|
||||
uint256 deadline
|
||||
) external returns (uint256[] memory amounts);
|
||||
}
|
||||
|
||||
contract MixinVelodromeV2 {
|
||||
using LibERC20TokenV06 for IERC20Token;
|
||||
|
||||
function _tradeVelodromeV2(
|
||||
IERC20Token sellToken,
|
||||
uint256 sellAmount,
|
||||
bytes memory bridgeData
|
||||
) internal returns (uint256 boughtAmount) {
|
||||
(IVelodromeV2Router router, IVelodromeV2Router.Route[] memory routes) = abi.decode(
|
||||
bridgeData,
|
||||
(IVelodromeV2Router, IVelodromeV2Router.Route[])
|
||||
);
|
||||
sellToken.approveIfBelow(address(router), sellAmount);
|
||||
|
||||
uint256[] memory amounts = router.swapExactTokensForTokens(
|
||||
sellAmount,
|
||||
1,
|
||||
routes,
|
||||
address(this),
|
||||
block.timestamp + 1
|
||||
);
|
||||
|
||||
return amounts[amounts.length - 1];
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-zero-ex",
|
||||
"version": "0.45.1",
|
||||
"version": "0.49.0",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -51,10 +51,10 @@
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/zero-ex",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.8.5",
|
||||
"@0x/contract-addresses": "^8.9.0",
|
||||
"@0x/contract-addresses": "^8.13.0",
|
||||
"@0x/contracts-erc20": "^3.3.57",
|
||||
"@0x/contracts-gen": "^2.0.50",
|
||||
"@0x/contracts-test-utils": "^5.4.56",
|
||||
"@0x/contracts-test-utils": "^5.4.60",
|
||||
"@0x/dev-utils": "^5.0.2",
|
||||
"@0x/order-utils": "^10.4.28",
|
||||
"@0x/sol-compiler": "^4.8.2",
|
||||
@ -80,7 +80,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^7.0.0",
|
||||
"@0x/protocol-utils": "^11.22.4",
|
||||
"@0x/protocol-utils": "^11.24.2",
|
||||
"@0x/subproviders": "^8.0.1",
|
||||
"@0x/types": "^3.3.7",
|
||||
"@0x/typescript-typings": "^5.3.1",
|
||||
|
@ -32,4 +32,8 @@ contract BSCBridgeAdapterTest is Test {
|
||||
function testSupportsUniswapV3() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.UNISWAPV3) << 128)));
|
||||
}
|
||||
|
||||
function testSupportMaverickV1() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.MAVERICKV1) << 128)));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,47 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
Copyright 2023 ZeroEx Intl.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
pragma solidity ^0.6.5;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "forge-std/Test.sol";
|
||||
import "../../../contracts/src/transformers/bridges/BaseBridgeAdapter.sol";
|
||||
import "../../../contracts/src/transformers/bridges/BridgeProtocols.sol";
|
||||
|
||||
contract BaseBridgeAdapterTest is Test {
|
||||
address constant WETH = 0x4200000000000000000000000000000000000006;
|
||||
|
||||
BaseBridgeAdapter private adapter;
|
||||
|
||||
function setUp() public {
|
||||
vm.chainId(8453);
|
||||
adapter = new BaseBridgeAdapter(IEtherToken(WETH));
|
||||
}
|
||||
|
||||
function testSupportsUniswapV3() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.UNISWAPV3) << 128)));
|
||||
}
|
||||
|
||||
function testSupportMaverickV1() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.MAVERICKV1) << 128)));
|
||||
}
|
||||
|
||||
function testSupportSolidly() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.SOLIDLY) << 128)));
|
||||
}
|
||||
|
||||
function testSupportVelodromeV2() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.VELODROMEV2) << 128)));
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
Copyright 2023 ZeroEx Intl.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
pragma solidity ^0.6.5;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "forge-std/Test.sol";
|
||||
import "../../../contracts/src/transformers/bridges/EthereumBridgeAdapter.sol";
|
||||
import "../../../contracts/src/transformers/bridges/BridgeProtocols.sol";
|
||||
|
||||
contract EthereumBridgeAdapterTest is Test {
|
||||
address constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
|
||||
|
||||
EthereumBridgeAdapter private adapter;
|
||||
|
||||
function setUp() public {
|
||||
vm.chainId(1);
|
||||
adapter = new EthereumBridgeAdapter(IEtherToken(WETH));
|
||||
}
|
||||
|
||||
function testSupportsUniswapV3() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.UNISWAPV3) << 128)));
|
||||
}
|
||||
|
||||
function testSupportMaverickV1() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.MAVERICKV1) << 128)));
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
Copyright 2023 ZeroEx Intl.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
pragma solidity ^0.6.5;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "forge-std/Test.sol";
|
||||
import "../../../contracts/src/transformers/bridges/OptimismBridgeAdapter.sol";
|
||||
import "../../../contracts/src/transformers/bridges/BridgeProtocols.sol";
|
||||
|
||||
contract OptimismBridgeAdapterTest is Test {
|
||||
address constant WETH = 0x4200000000000000000000000000000000000006;
|
||||
|
||||
OptimismBridgeAdapter private adapter;
|
||||
|
||||
function setUp() public {
|
||||
vm.chainId(10);
|
||||
adapter = new OptimismBridgeAdapter(IEtherToken(WETH));
|
||||
}
|
||||
|
||||
function testSupportVelodromeV2() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.VELODROMEV2) << 128)));
|
||||
}
|
||||
}
|
@ -66,3 +66,8 @@ Note: Some addresses have changed across various networks
|
||||
Avalanche, `0xdef1c0ded9bec7f1a1670819833240f027b25eff <https://snowtrace.io/address/0xdef1c0ded9bec7f1a1670819833240f027b25eff>`__
|
||||
Fantom, `0xdef189deaef76e379df891899eb5a00a94cbc250 <https://ftmscan.com/address/0xdef189deaef76e379df891899eb5a00a94cbc250>`__
|
||||
Celo, `0xdef1c0ded9bec7f1a1670819833240f027b25eff <https://explorer.celo.org/address/0xdef1c0ded9bec7f1a1670819833240f027b25eff>`__
|
||||
Arbitrum, `0xdef1c0ded9bec7f1a1670819833240f027b25eff <https://arbiscan.io/address/0xdef1c0ded9bec7f1a1670819833240f027b25eff>`__
|
||||
Base, `0xdef1c0ded9bec7f1a1670819833240f027b25eff <https://basescan.org/address/0xdef1c0ded9bec7f1a1670819833240f027b25eff>`__
|
||||
zkEVM, `0xdef1c0ded9bec7f1a1670819833240f027b25eff <https://zkevm.polygonscan.com/address/0xdef1c0ded9bec7f1a1670819833240f027b25eff>`__
|
||||
Sepolia, `0xdef1c0ded9bec7f1a1670819833240f027b25eff <https://sepolia.etherscan.io/address/0xdef1c0ded9bec7f1a1670819833240f027b25eff>`__
|
||||
Mumbai, `0xf471d32cb40837bf24529fcf17418fc1a4807626 <https://mumbai.polygonscan.com/address/0xf471d32cb40837bf24529fcf17418fc1a4807626>`__
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"version": "8.13.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add Sepolia addresses"
|
||||
}
|
||||
],
|
||||
"timestamp": 1700094997
|
||||
},
|
||||
{
|
||||
"version": "8.12.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add VelodromeV2 support on Base"
|
||||
}
|
||||
],
|
||||
"timestamp": 1693346928
|
||||
},
|
||||
{
|
||||
"version": "8.11.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add MaverickV1 support on Ethereum, BSC, and Base"
|
||||
}
|
||||
],
|
||||
"timestamp": 1692368658
|
||||
},
|
||||
{
|
||||
"version": "8.10.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add VelodromeV2 support on Optimism"
|
||||
}
|
||||
],
|
||||
"timestamp": 1691617396
|
||||
},
|
||||
{
|
||||
"version": "8.9.0",
|
||||
"changes": [
|
||||
|
@ -6,6 +6,18 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v8.13.0 - _November 16, 2023_
|
||||
|
||||
* Add Sepolia addresses
|
||||
## v8.12.0 - _August 29, 2023_
|
||||
|
||||
* Add VelodromeV2 support on Base
|
||||
## v8.11.0 - _August 18, 2023_
|
||||
|
||||
* Add MaverickV1 support on Ethereum, BSC, and Base
|
||||
## v8.10.0 - _August 9, 2023_
|
||||
|
||||
* Add VelodromeV2 support on Optimism
|
||||
## v8.9.0 - _July 21, 2023_
|
||||
|
||||
* Add Uniswap V3 router v2 support in Base FillQuoteTransformer
|
||||
|
@ -18,7 +18,7 @@
|
||||
"wethTransformer": "0xb2bc06a4efb20fc6553a69dbfa49b7be938034a7",
|
||||
"payTakerTransformer": "0xea500d073652336a58846ada15c25f2c6d2d241f",
|
||||
"affiliateFeeTransformer": "0x8146cbbe327364b13d0699f2ced39c637f92501a",
|
||||
"fillQuoteTransformer": "0x21c3bee93fad436dedd29f971dc4fdf82f3e3a3a",
|
||||
"fillQuoteTransformer": "0x2fd08c1f9fc8406c1d7e3a799a13883a7e7949f0",
|
||||
"positiveSlippageFeeTransformer": "0x818a4a855bfeb16c305cb65e8d4fb239a308bc48"
|
||||
}
|
||||
},
|
||||
@ -64,7 +64,7 @@
|
||||
"wethTransformer": "0xac3d95668c092e895cd83a9cbafe9c7d9906471f",
|
||||
"payTakerTransformer": "0x7e788f3a3e39cdd1944ba111fafc5fb7e59b5e90",
|
||||
"affiliateFeeTransformer": "0x043300d113de0c64684ab89c56a45cd94c7ef54c",
|
||||
"fillQuoteTransformer": "0xa9c57c539690d4e1439411f648ead5b121b34a23",
|
||||
"fillQuoteTransformer": "0x6073f12fc63bcc64bd4fed5d44aa1035e37d68ee",
|
||||
"positiveSlippageFeeTransformer": "0x6ff35e8cbaf56d8a8f6bf9963b902a4576243030"
|
||||
}
|
||||
},
|
||||
@ -225,7 +225,7 @@
|
||||
"wethTransformer": "0x02ce7af6520e2862f961f5d7eda746642865179c",
|
||||
"payTakerTransformer": "0xa6c3ca183a67fcb4299fb4199c12ca74874ca489",
|
||||
"affiliateFeeTransformer": "0x3102aea537ecb6f164550b094663c82a8c53a972",
|
||||
"fillQuoteTransformer": "0xd140adb61d4e3e3978d4f32ac6b92240ff6e3a6e",
|
||||
"fillQuoteTransformer": "0x521f3184ab27abde4a34e744a908b1a08dc8ef91",
|
||||
"positiveSlippageFeeTransformer": "0x9a4947d3fb77a7afc2c9cd6714bbae96dddde059"
|
||||
}
|
||||
},
|
||||
@ -271,8 +271,31 @@
|
||||
"wethTransformer": "0x63186ea36e78ecbf0128e448362f1b81e9bf7412",
|
||||
"payTakerTransformer": "0x5cc22a0e06ea11097c612a962e63674b90e96099",
|
||||
"affiliateFeeTransformer": "0x9e52d8b32d835206d09810c310593bcc77264066",
|
||||
"fillQuoteTransformer": "0x98b159db76c820dc877782f199e287a97420b1d2",
|
||||
"fillQuoteTransformer": "0x2c46d57bb5af87a13a51dd5b62ba7d3bc7e12e9c",
|
||||
"positiveSlippageFeeTransformer": "0xf98a130d3b4029c70e6d93098cb82a003421341e"
|
||||
}
|
||||
},
|
||||
"11155111": {
|
||||
"zrxToken": "0x0000000000000000000000000000000000000000",
|
||||
"etherToken": "0xfff9976782d46cc05630d1f6ebab18b2324d6b14",
|
||||
"zeroExGovernor": "0x5c1f7772ce24d942b85e9b6576f7b5ef70686f5a",
|
||||
"zrxVault": "0x0000000000000000000000000000000000000000",
|
||||
"staking": "0x0000000000000000000000000000000000000000",
|
||||
"stakingProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeSampler": "0x0000000000000000000000000000000000000000",
|
||||
"exchangeProxyGovernor": "0x5c1f7772ce24d942b85e9b6576f7b5ef70686f5a",
|
||||
"exchangeProxy": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
|
||||
"exchangeProxyTransformerDeployer": "0x58bca53ebba1aaf25f0edcd8dad6421872fe20b2",
|
||||
"exchangeProxyFlashWallet": "0xdb6f1920a889355780af7570773609bd8cb1f498",
|
||||
"exchangeProxyLiquidityProviderSandbox": "0x0000000000000000000000000000000000000000",
|
||||
"zrxTreasury": "0x0000000000000000000000000000000000000000",
|
||||
"transformers": {
|
||||
"wethTransformer": "0xf98a130d3b4029c70e6d93098cb82a003421341e",
|
||||
"payTakerTransformer": "0x44e0f3975e95387f3866dd7cab1f51050394a3d1",
|
||||
"affiliateFeeTransformer": "0x5cc22a0e06ea11097c612a962e63674b90e96099",
|
||||
"fillQuoteTransformer": "0x63186ea36e78ecbf0128e448362f1b81e9bf7412",
|
||||
"positiveSlippageFeeTransformer": "0x9e52d8b32d835206d09810c310593bcc77264066"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contract-addresses",
|
||||
"version": "8.9.0",
|
||||
"version": "8.13.0",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
|
@ -1,20 +1,16 @@
|
||||
import addresses from '../addresses.json';
|
||||
|
||||
export interface ContractAddresses {
|
||||
zrxToken: string;
|
||||
etherToken: string;
|
||||
zeroExGovernor: string;
|
||||
zrxVault: string;
|
||||
staking: string;
|
||||
stakingProxy: string;
|
||||
erc20BridgeProxy: string;
|
||||
erc20BridgeSampler: string;
|
||||
exchangeProxyGovernor: string;
|
||||
etherToken: string;
|
||||
exchangeProxy: string;
|
||||
exchangeProxyTransformerDeployer: string;
|
||||
exchangeProxyFlashWallet: string;
|
||||
exchangeProxyGovernor: string;
|
||||
exchangeProxyLiquidityProviderSandbox: string;
|
||||
zrxTreasury: string;
|
||||
exchangeProxyTransformerDeployer: string;
|
||||
staking: string;
|
||||
stakingProxy: string;
|
||||
transformers: {
|
||||
wethTransformer: string;
|
||||
payTakerTransformer: string;
|
||||
@ -22,21 +18,33 @@ export interface ContractAddresses {
|
||||
affiliateFeeTransformer: string;
|
||||
positiveSlippageFeeTransformer: string;
|
||||
};
|
||||
zeroExGovernor: string;
|
||||
zrxToken: string;
|
||||
zrxTreasury: string;
|
||||
zrxVault: string;
|
||||
}
|
||||
|
||||
export enum ChainId {
|
||||
Mainnet = 1,
|
||||
Goerli = 5,
|
||||
Ganache = 1337,
|
||||
Optimism = 10,
|
||||
BSC = 56,
|
||||
Polygon = 137,
|
||||
PolygonMumbai = 80001,
|
||||
Avalanche = 43114,
|
||||
Fantom = 250,
|
||||
Celo = 42220,
|
||||
Optimism = 10,
|
||||
Arbitrum = 42161,
|
||||
Ganache = 1337,
|
||||
Base = 8453,
|
||||
Arbitrum = 42161,
|
||||
Avalanche = 43114,
|
||||
Celo = 42220,
|
||||
PolygonMumbai = 80001,
|
||||
Sepolia = 11155111
|
||||
}
|
||||
|
||||
/**
|
||||
* Narrow a JavaScript number to a Chain ID.
|
||||
*/
|
||||
export function isChainId(chainId: number): chainId is ChainId {
|
||||
return Object.values(ChainId).includes(chainId);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2,7 +2,7 @@ import * as chai from 'chai';
|
||||
import { bufferToHex, rlphash } from 'ethereumjs-util';
|
||||
import 'mocha';
|
||||
|
||||
import { ChainId, getContractAddressesForChainOrThrow } from '../src';
|
||||
import { ChainId, getContractAddressesForChainOrThrow, isChainId } from '../src';
|
||||
|
||||
const expect = chai.expect;
|
||||
|
||||
@ -68,3 +68,12 @@ describe('addresses.json sanity test', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("isChainId", () => {
|
||||
it("should return true for existing chain ids", () => {
|
||||
expect(isChainId(1)).to.be.true;
|
||||
});
|
||||
it("should return false for non-existing chain ids", () => {
|
||||
expect(isChainId(666)).to.be.false;
|
||||
});
|
||||
});
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"timestamp": 1700094997,
|
||||
"version": "13.23.8",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1693346928,
|
||||
"version": "13.23.7",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1692368658,
|
||||
"version": "13.23.6",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1691617396,
|
||||
"version": "13.23.5",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689974915,
|
||||
"version": "13.23.4",
|
||||
|
@ -6,6 +6,18 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v13.23.8 - _November 16, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v13.23.7 - _August 29, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v13.23.6 - _August 18, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v13.23.5 - _August 9, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v13.23.4 - _July 21, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contract-wrappers",
|
||||
"version": "13.23.4",
|
||||
"version": "13.23.8",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -59,7 +59,7 @@
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.36",
|
||||
"@0x/base-contract": "^7.0.0",
|
||||
"@0x/contract-addresses": "^8.9.0",
|
||||
"@0x/contract-addresses": "^8.13.0",
|
||||
"@0x/json-schemas": "^6.4.4",
|
||||
"@0x/types": "^3.3.7",
|
||||
"@0x/utils": "^7.0.0",
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"timestamp": 1700094997,
|
||||
"version": "11.24.2",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1693346928,
|
||||
"version": "11.24.1",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "11.24.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add MaverickV1 support on Ethereum, BSC, and Base"
|
||||
}
|
||||
],
|
||||
"timestamp": 1692368658
|
||||
},
|
||||
{
|
||||
"version": "11.23.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add VelodromeV2 support on Optimism"
|
||||
}
|
||||
],
|
||||
"timestamp": 1691617396
|
||||
},
|
||||
{
|
||||
"timestamp": 1689974915,
|
||||
"version": "11.22.4",
|
||||
|
@ -6,6 +6,18 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## v11.24.2 - _November 16, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v11.24.1 - _August 29, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v11.24.0 - _August 18, 2023_
|
||||
|
||||
* Add MaverickV1 support on Ethereum, BSC, and Base
|
||||
## v11.23.0 - _August 9, 2023_
|
||||
|
||||
* Add VelodromeV2 support on Optimism
|
||||
## v11.22.4 - _July 21, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/protocol-utils",
|
||||
"version": "11.22.4",
|
||||
"version": "11.24.2",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -62,8 +62,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.36",
|
||||
"@0x/contract-addresses": "^8.9.0",
|
||||
"@0x/contract-wrappers": "^13.23.4",
|
||||
"@0x/contract-addresses": "^8.13.0",
|
||||
"@0x/contract-wrappers": "^13.23.8",
|
||||
"@0x/json-schemas": "^6.4.4",
|
||||
"@0x/subproviders": "^8.0.1",
|
||||
"@0x/utils": "^7.0.0",
|
||||
|
@ -166,6 +166,8 @@ export enum BridgeProtocol {
|
||||
KyberElastic,
|
||||
Barter,
|
||||
TraderJoeV2,
|
||||
VelodromeV2,
|
||||
MaverickV1,
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user