Merge branch '0xProject:development' into patch-1
This commit is contained in:
commit
f51189c64b
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 }}
|
||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -84,6 +84,9 @@ TODO.md
|
||||
# IDE file
|
||||
.vscode
|
||||
.idea
|
||||
*~
|
||||
.\#*
|
||||
\#*\#
|
||||
|
||||
# generated contract artifacts/
|
||||
generated-artifacts/
|
||||
|
@ -1,4 +1,49 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689791426,
|
||||
"version": "4.0.9",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1683749017,
|
||||
"version": "4.0.8",
|
||||
|
@ -5,6 +5,26 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
|
||||
## v4.0.9 - _July 19, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.0.8 - _May 10, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-erc20",
|
||||
"version": "4.0.8",
|
||||
"version": "4.0.13",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -24,7 +24,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol",
|
||||
"devDependencies": {
|
||||
"@0x/contracts-utils": "^4.8.46",
|
||||
"@0x/contracts-utils": "^4.8.51",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"typedoc": "~0.16.11"
|
||||
},
|
||||
|
@ -1,4 +1,49 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689791426,
|
||||
"version": "5.4.55",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1683749017,
|
||||
"version": "5.4.54",
|
||||
|
@ -5,6 +5,26 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
|
||||
## v5.4.55 - _July 19, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v5.4.54 - _May 10, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-test-utils",
|
||||
"version": "5.4.54",
|
||||
"version": "5.4.59",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -41,7 +41,7 @@
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.36",
|
||||
"@0x/base-contract": "^7.0.0",
|
||||
"@0x/contract-addresses": "^8.7.0",
|
||||
"@0x/contract-addresses": "^8.12.0",
|
||||
"@0x/dev-utils": "^5.0.2",
|
||||
"@0x/json-schemas": "^6.4.4",
|
||||
"@0x/order-utils": "^10.4.28",
|
||||
|
@ -1,4 +1,49 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689791426,
|
||||
"version": "1.4.49",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1683749017,
|
||||
"version": "1.4.48",
|
||||
|
@ -5,6 +5,26 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
|
||||
## v1.4.49 - _July 19, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v1.4.48 - _May 10, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-treasury",
|
||||
"version": "1.4.48",
|
||||
"version": "1.4.53",
|
||||
"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.7.0",
|
||||
"@0x/contract-addresses": "^8.12.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.54",
|
||||
"@0x/contracts-test-utils": "^5.4.59",
|
||||
"@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.2",
|
||||
"@0x/protocol-utils": "^11.24.1",
|
||||
"@0x/subproviders": "^8.0.1",
|
||||
"@0x/types": "^3.3.7",
|
||||
"@0x/typescript-typings": "^5.3.1",
|
||||
|
@ -1,4 +1,49 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689791426,
|
||||
"version": "4.8.47",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1683749017,
|
||||
"version": "4.8.46",
|
||||
|
@ -5,6 +5,26 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
|
||||
## v4.8.47 - _July 19, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
||||
## v4.8.46 - _May 10, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-utils",
|
||||
"version": "4.8.46",
|
||||
"version": "4.8.51",
|
||||
"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.54",
|
||||
"@0x/contracts-test-utils": "^5.4.59",
|
||||
"@0x/dev-utils": "^5.0.2",
|
||||
"@0x/order-utils": "^10.4.28",
|
||||
"@0x/sol-compiler": "^4.8.2",
|
||||
|
@ -1,4 +1,40 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "0.45.0",
|
||||
"changes": [
|
||||
@ -7,8 +43,15 @@
|
||||
},
|
||||
{
|
||||
"note": "Remove Shell and MStable support"
|
||||
},
|
||||
{
|
||||
"note": "Add Base Mainnet and Goerli BridgeAdapters"
|
||||
},
|
||||
{
|
||||
"note": "Add Uniswap V3 support on Avalanche and BSC"
|
||||
}
|
||||
]
|
||||
],
|
||||
"timestamp": 1689791426
|
||||
},
|
||||
{
|
||||
"version": "0.44.0",
|
||||
|
@ -5,6 +5,29 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
|
||||
## v0.45.0 - _July 19, 2023_
|
||||
|
||||
* Remove Bancor V1 support
|
||||
* Remove Shell and MStable support
|
||||
* Add Base Mainnet and Goerli BridgeAdapters
|
||||
* Add Uniswap V3 support on Avalanche and BSC
|
||||
|
||||
## v0.44.0 - _May 10, 2023_
|
||||
|
||||
* Add Trader Joe V2 MixIn to Arbitrum
|
||||
|
@ -115,6 +115,8 @@
|
||||
"./contracts/src/transformers/bridges/ArbitrumBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/AvalancheBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/BSCBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/BaseBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/BaseGoerliBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/BridgeProtocols.sol",
|
||||
"./contracts/src/transformers/bridges/CeloBridgeAdapter.sol",
|
||||
"./contracts/src/transformers/bridges/EthereumBridgeAdapter.sol",
|
||||
|
@ -28,6 +28,7 @@ import "./mixins/MixinNerve.sol";
|
||||
import "./mixins/MixinPlatypus.sol";
|
||||
import "./mixins/MixinTraderJoeV2.sol";
|
||||
import "./mixins/MixinUniswapV2.sol";
|
||||
import "./mixins/MixinUniswapV3.sol";
|
||||
import "./mixins/MixinWOOFi.sol";
|
||||
import "./mixins/MixinZeroExBridge.sol";
|
||||
|
||||
@ -44,6 +45,7 @@ contract AvalancheBridgeAdapter is
|
||||
MixinPlatypus,
|
||||
MixinTraderJoeV2,
|
||||
MixinUniswapV2,
|
||||
MixinUniswapV3,
|
||||
MixinWOOFi,
|
||||
MixinZeroExBridge
|
||||
{
|
||||
@ -72,6 +74,11 @@ contract AvalancheBridgeAdapter is
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV2(buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.UNISWAPV3) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV3(sellToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.NERVE) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
|
@ -22,9 +22,11 @@ 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";
|
||||
import "./mixins/MixinUniswapV3.sol";
|
||||
import "./mixins/MixinWOOFi.sol";
|
||||
import "./mixins/MixinZeroExBridge.sol";
|
||||
|
||||
@ -35,9 +37,11 @@ contract BSCBridgeAdapter is
|
||||
MixinDodoV2,
|
||||
MixinKyberDmm,
|
||||
MixinKyberElastic,
|
||||
MixinMaverickV1,
|
||||
MixinMooniswap,
|
||||
MixinNerve,
|
||||
MixinUniswapV2,
|
||||
MixinUniswapV3,
|
||||
MixinWOOFi,
|
||||
MixinZeroExBridge
|
||||
{
|
||||
@ -61,6 +65,11 @@ contract BSCBridgeAdapter is
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV2(buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.UNISWAPV3) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV3(sellToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.MOONISWAP) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
@ -96,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);
|
||||
|
@ -0,0 +1,93 @@
|
||||
// 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 "./AbstractBridgeAdapter.sol";
|
||||
import "./BridgeProtocols.sol";
|
||||
import "./mixins/MixinUniswapV3.sol";
|
||||
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"),
|
||||
MixinUniswapV3,
|
||||
MixinUniswapV2,
|
||||
MixinBalancerV2Batch,
|
||||
MixinCurve,
|
||||
MixinCurveV2,
|
||||
MixinMaverickV1,
|
||||
MixinSolidly,
|
||||
MixinVelodromeV2
|
||||
{
|
||||
constructor(IEtherToken weth) public MixinCurve(weth) {}
|
||||
|
||||
function _trade(
|
||||
BridgeOrder memory order,
|
||||
IERC20Token sellToken,
|
||||
IERC20Token buyToken,
|
||||
uint256 sellAmount,
|
||||
bool dryRun
|
||||
) internal override returns (uint256 boughtAmount, bool supportedSource) {
|
||||
uint128 protocolId = uint128(uint256(order.source) >> 128);
|
||||
if (protocolId == BridgeProtocols.CURVE) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeCurve(sellToken, buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.CURVEV2) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeCurveV2(sellToken, buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.UNISWAPV3) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV3(sellToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.UNISWAPV2) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV2(buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.SOLIDLY) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeSolidly(sellToken, buyToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.BALANCERV2BATCH) {
|
||||
if (dryRun) {
|
||||
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);
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
// 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 "./AbstractBridgeAdapter.sol";
|
||||
import "./BridgeProtocols.sol";
|
||||
import "./mixins/MixinUniswapV3.sol";
|
||||
import "./mixins/MixinUniswapV2.sol";
|
||||
|
||||
contract BaseGoerliBridgeAdapter is AbstractBridgeAdapter(84531, "Base Goerli"), MixinUniswapV3, MixinUniswapV2 {
|
||||
function _trade(
|
||||
BridgeOrder memory order,
|
||||
IERC20Token sellToken,
|
||||
IERC20Token buyToken,
|
||||
uint256 sellAmount,
|
||||
bool dryRun
|
||||
) internal override returns (uint256 boughtAmount, bool supportedSource) {
|
||||
uint128 protocolId = uint128(uint256(order.source) >> 128);
|
||||
if (protocolId == BridgeProtocols.UNISWAPV3) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV3(sellToken, sellAmount, order.bridgeData);
|
||||
} else if (protocolId == BridgeProtocols.UNISWAPV2) {
|
||||
if (dryRun) {
|
||||
return (0, true);
|
||||
}
|
||||
boughtAmount = _tradeUniswapV2(buyToken, 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
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
@ -31,6 +31,18 @@ interface IUniswapV3Router {
|
||||
function exactInput(ExactInputParams memory params) external payable returns (uint256 amountOut);
|
||||
}
|
||||
|
||||
// https://github.com/Uniswap/swap-router-contracts/blob/main/contracts/interfaces/IV3SwapRouter.sol
|
||||
interface IUniswapV3Router2 {
|
||||
struct ExactInputParams {
|
||||
bytes path;
|
||||
address recipient;
|
||||
uint256 amountIn;
|
||||
uint256 amountOutMinimum;
|
||||
}
|
||||
|
||||
function exactInput(ExactInputParams memory params) external payable returns (uint256 amountOut);
|
||||
}
|
||||
|
||||
contract MixinUniswapV3 {
|
||||
using LibERC20TokenV06 for IERC20Token;
|
||||
|
||||
@ -39,12 +51,13 @@ contract MixinUniswapV3 {
|
||||
uint256 sellAmount,
|
||||
bytes memory bridgeData
|
||||
) internal returns (uint256 boughtAmount) {
|
||||
(IUniswapV3Router router, bytes memory path) = abi.decode(bridgeData, (IUniswapV3Router, bytes));
|
||||
(address router, bytes memory path, uint256 routerVersion) = abi.decode(bridgeData, (address, bytes, uint256));
|
||||
|
||||
// Grant the Uniswap router an allowance to sell the sell token.
|
||||
sellToken.approveIfBelow(address(router), sellAmount);
|
||||
sellToken.approveIfBelow(router, sellAmount);
|
||||
|
||||
boughtAmount = router.exactInput(
|
||||
if (routerVersion != 2) {
|
||||
boughtAmount = IUniswapV3Router(router).exactInput(
|
||||
IUniswapV3Router.ExactInputParams({
|
||||
path: path,
|
||||
recipient: address(this),
|
||||
@ -53,5 +66,15 @@ contract MixinUniswapV3 {
|
||||
amountOutMinimum: 1
|
||||
})
|
||||
);
|
||||
} else {
|
||||
boughtAmount = IUniswapV3Router2(router).exactInput(
|
||||
IUniswapV3Router2.ExactInputParams({
|
||||
path: path,
|
||||
recipient: address(this),
|
||||
amountIn: sellAmount,
|
||||
amountOutMinimum: 1
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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.44.0",
|
||||
"version": "0.48.0",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -36,9 +36,9 @@
|
||||
"typechain": "typechain --target=ethers-v5 --out-dir='typechain-wrappers' './foundry-artifacts/**/*.json'"
|
||||
},
|
||||
"config": {
|
||||
"publicInterfaceContracts": "IZeroEx,ZeroEx,FullMigration,InitialMigration,IFlashWallet,IERC20Transformer,IOwnableFeature,ISimpleFunctionRegistryFeature,ITransformERC20Feature,FillQuoteTransformer,PayTakerTransformer,PositiveSlippageFeeTransformer,WethTransformer,OwnableFeature,SimpleFunctionRegistryFeature,TransformERC20Feature,AffiliateFeeTransformer,MetaTransactionsFeature,LogMetadataTransformer,LiquidityProviderFeature,ILiquidityProviderFeature,NativeOrdersFeature,INativeOrdersFeature,FeeCollectorController,FeeCollector,CurveLiquidityProvider,BatchFillNativeOrdersFeature,IBatchFillNativeOrdersFeature,MultiplexFeature,IMultiplexFeature,OtcOrdersFeature,IOtcOrdersFeature,AvalancheBridgeAdapter,BSCBridgeAdapter,CeloBridgeAdapter,EthereumBridgeAdapter,FantomBridgeAdapter,OptimismBridgeAdapter,PolygonBridgeAdapter,MetaTransactionsFeatureV2",
|
||||
"publicInterfaceContracts": "IZeroEx,ZeroEx,FullMigration,InitialMigration,IFlashWallet,IERC20Transformer,IOwnableFeature,ISimpleFunctionRegistryFeature,ITransformERC20Feature,FillQuoteTransformer,PayTakerTransformer,PositiveSlippageFeeTransformer,WethTransformer,OwnableFeature,SimpleFunctionRegistryFeature,TransformERC20Feature,AffiliateFeeTransformer,MetaTransactionsFeature,LogMetadataTransformer,LiquidityProviderFeature,ILiquidityProviderFeature,NativeOrdersFeature,INativeOrdersFeature,FeeCollectorController,FeeCollector,CurveLiquidityProvider,BatchFillNativeOrdersFeature,IBatchFillNativeOrdersFeature,MultiplexFeature,IMultiplexFeature,OtcOrdersFeature,IOtcOrdersFeature,AvalancheBridgeAdapter,BaseGoerliBridgeAdapter,BaseBridgeAdapter,BSCBridgeAdapter,CeloBridgeAdapter,EthereumBridgeAdapter,FantomBridgeAdapter,OptimismBridgeAdapter,PolygonBridgeAdapter,MetaTransactionsFeatureV2",
|
||||
"abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually.",
|
||||
"abis": "./test/generated-artifacts/@(AbstractBridgeAdapter|AffiliateFeeTransformer|ArbitrumBridgeAdapter|AvalancheBridgeAdapter|BSCBridgeAdapter|BatchFillNativeOrdersFeature|BootstrapFeature|BridgeProtocols|CeloBridgeAdapter|CurveLiquidityProvider|ERC1155OrdersFeature|ERC165Feature|ERC721OrdersFeature|EthereumBridgeAdapter|FantomBridgeAdapter|FeeCollector|FeeCollectorController|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinERC1155Spender|FixinERC721Spender|FixinProtocolFees|FixinReentrancyGuard|FixinTokenSpender|FlashWallet|FullMigration|FundRecoveryFeature|IBatchFillNativeOrdersFeature|IBootstrapFeature|IBridgeAdapter|IERC1155OrdersFeature|IERC1155Token|IERC165Feature|IERC20Bridge|IERC20Transformer|IERC721OrdersFeature|IERC721Token|IFeature|IFeeRecipient|IFlashWallet|IFundRecoveryFeature|ILiquidityProvider|ILiquidityProviderFeature|ILiquidityProviderSandbox|IMetaTransactionsFeature|IMetaTransactionsFeatureV2|IMooniswapPool|IMultiplexFeature|INativeOrdersEvents|INativeOrdersFeature|IOtcOrdersFeature|IOwnableFeature|IPancakeSwapFeature|IPropertyValidator|ISimpleFunctionRegistryFeature|IStaking|ITakerCallback|ITestSimpleFunctionRegistryFeature|ITokenSpenderFeature|ITransformERC20Feature|IUniswapFeature|IUniswapV2Pair|IUniswapV3Feature|IUniswapV3Pool|IZeroEx|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC1155OrdersStorage|LibERC20Transformer|LibERC721OrdersStorage|LibFeeCollector|LibLiquidityProviderRichErrors|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibNFTOrder|LibNFTOrdersRichErrors|LibNativeOrder|LibNativeOrdersRichErrors|LibNativeOrdersStorage|LibOtcOrdersStorage|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibReentrancyGuardStorage|LibSignature|LibSignatureRichErrors|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|LiquidityProviderFeature|LiquidityProviderSandbox|LogMetadataTransformer|MetaTransactionsFeature|MetaTransactionsFeatureV2|MixinAaveV2|MixinBalancer|MixinBalancerV2Batch|MixinBancorV3|MixinCompound|MixinCryptoCom|MixinCurve|MixinCurveV2|MixinDodo|MixinDodoV2|MixinGMX|MixinKyberDmm|MixinLido|MixinMakerPSM|MixinMooniswap|MixinNerve|MixinPlatypus|MixinSolidly|MixinSynthetix|MixinUniswap|MixinUniswapV2|MixinUniswapV3|MixinZeroExBridge|MooniswapLiquidityProvider|MultiplexFeature|MultiplexLiquidityProvider|MultiplexOtc|MultiplexRfq|MultiplexTransformERC20|MultiplexUniswapV2|MultiplexUniswapV3|NFTOrders|NativeOrdersCancellation|NativeOrdersFeature|NativeOrdersInfo|NativeOrdersProtocolFees|NativeOrdersSettlement|OptimismBridgeAdapter|OtcOrdersFeature|OwnableFeature|PancakeSwapFeature|PayTakerTransformer|PermissionlessTransformerDeployer|PolygonBridgeAdapter|PositiveSlippageFeeTransformer|SimpleFunctionRegistryFeature|TestCurve|TestDelegateCaller|TestFeeCollectorController|TestFeeRecipient|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFixinProtocolFees|TestFixinTokenSpender|TestFullMigration|TestInitialMigration|TestLibNativeOrder|TestLibSignature|TestLiquidityProvider|TestMetaTransactionsNativeOrdersFeature|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC1155Token|TestMintableERC20Token|TestMintableERC721Token|TestMooniswap|TestNFTOrderPresigner|TestNativeOrdersFeature|TestNoEthRecipient|TestOrderSignerRegistryWithContractWallet|TestPermissionlessTransformerDeployerSuicidal|TestPermissionlessTransformerDeployerTransformer|TestPropertyValidator|TestRfqOriginRegistration|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestStaking|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestUniswapV2Factory|TestUniswapV2Pool|TestUniswapV3Factory|TestUniswapV3Feature|TestUniswapV3Pool|TestWeth|TestWethTransformerHost|TransformERC20Feature|Transformer|TransformerDeployer|UniswapFeature|UniswapV3Feature|WethTransformer|ZeroEx|ZeroExOptimized).json"
|
||||
"abis": "./test/generated-artifacts/@(AbstractBridgeAdapter|AffiliateFeeTransformer|ArbitrumBridgeAdapter|AvalancheBridgeAdapter|BSCBridgeAdapter|BaseBridgeAdapter|BaseGoerliBridgeAdapter|BatchFillNativeOrdersFeature|BootstrapFeature|BridgeProtocols|CeloBridgeAdapter|CurveLiquidityProvider|ERC1155OrdersFeature|ERC165Feature|ERC721OrdersFeature|EthereumBridgeAdapter|FantomBridgeAdapter|FeeCollector|FeeCollectorController|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinERC1155Spender|FixinERC721Spender|FixinProtocolFees|FixinReentrancyGuard|FixinTokenSpender|FlashWallet|FullMigration|FundRecoveryFeature|IBatchFillNativeOrdersFeature|IBootstrapFeature|IBridgeAdapter|IERC1155OrdersFeature|IERC1155Token|IERC165Feature|IERC20Bridge|IERC20Transformer|IERC721OrdersFeature|IERC721Token|IFeature|IFeeRecipient|IFlashWallet|IFundRecoveryFeature|ILiquidityProvider|ILiquidityProviderFeature|ILiquidityProviderSandbox|IMetaTransactionsFeature|IMetaTransactionsFeatureV2|IMooniswapPool|IMultiplexFeature|INativeOrdersEvents|INativeOrdersFeature|IOtcOrdersFeature|IOwnableFeature|IPancakeSwapFeature|IPropertyValidator|ISimpleFunctionRegistryFeature|IStaking|ITakerCallback|ITestSimpleFunctionRegistryFeature|ITokenSpenderFeature|ITransformERC20Feature|IUniswapFeature|IUniswapV2Pair|IUniswapV3Feature|IUniswapV3Pool|IZeroEx|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC1155OrdersStorage|LibERC20Transformer|LibERC721OrdersStorage|LibFeeCollector|LibLiquidityProviderRichErrors|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibNFTOrder|LibNFTOrdersRichErrors|LibNativeOrder|LibNativeOrdersRichErrors|LibNativeOrdersStorage|LibOtcOrdersStorage|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibReentrancyGuardStorage|LibSignature|LibSignatureRichErrors|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|LiquidityProviderFeature|LiquidityProviderSandbox|LogMetadataTransformer|MetaTransactionsFeature|MetaTransactionsFeatureV2|MixinAaveV2|MixinBalancer|MixinBalancerV2Batch|MixinBancorV3|MixinCompound|MixinCryptoCom|MixinCurve|MixinCurveV2|MixinDodo|MixinDodoV2|MixinGMX|MixinKyberDmm|MixinLido|MixinMakerPSM|MixinMooniswap|MixinNerve|MixinPlatypus|MixinSolidly|MixinSynthetix|MixinUniswap|MixinUniswapV2|MixinUniswapV3|MixinZeroExBridge|MooniswapLiquidityProvider|MultiplexFeature|MultiplexLiquidityProvider|MultiplexOtc|MultiplexRfq|MultiplexTransformERC20|MultiplexUniswapV2|MultiplexUniswapV3|NFTOrders|NativeOrdersCancellation|NativeOrdersFeature|NativeOrdersInfo|NativeOrdersProtocolFees|NativeOrdersSettlement|OptimismBridgeAdapter|OtcOrdersFeature|OwnableFeature|PancakeSwapFeature|PayTakerTransformer|PermissionlessTransformerDeployer|PolygonBridgeAdapter|PositiveSlippageFeeTransformer|SimpleFunctionRegistryFeature|TestCurve|TestDelegateCaller|TestFeeCollectorController|TestFeeRecipient|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFixinProtocolFees|TestFixinTokenSpender|TestFullMigration|TestInitialMigration|TestLibNativeOrder|TestLibSignature|TestLiquidityProvider|TestMetaTransactionsNativeOrdersFeature|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC1155Token|TestMintableERC20Token|TestMintableERC721Token|TestMooniswap|TestNFTOrderPresigner|TestNativeOrdersFeature|TestNoEthRecipient|TestOrderSignerRegistryWithContractWallet|TestPermissionlessTransformerDeployerSuicidal|TestPermissionlessTransformerDeployerTransformer|TestPropertyValidator|TestRfqOriginRegistration|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestStaking|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestUniswapV2Factory|TestUniswapV2Pool|TestUniswapV3Factory|TestUniswapV3Feature|TestUniswapV3Pool|TestWeth|TestWethTransformerHost|TransformERC20Feature|Transformer|TransformerDeployer|UniswapFeature|UniswapV3Feature|WethTransformer|ZeroEx|ZeroExOptimized).json"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -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.7.0",
|
||||
"@0x/contract-addresses": "^8.12.0",
|
||||
"@0x/contracts-erc20": "^3.3.57",
|
||||
"@0x/contracts-gen": "^2.0.50",
|
||||
"@0x/contracts-test-utils": "^5.4.54",
|
||||
"@0x/contracts-test-utils": "^5.4.59",
|
||||
"@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.2",
|
||||
"@0x/protocol-utils": "^11.24.1",
|
||||
"@0x/subproviders": "^8.0.1",
|
||||
"@0x/types": "^3.3.7",
|
||||
"@0x/typescript-typings": "^5.3.1",
|
||||
|
@ -7,6 +7,8 @@ import { ContractArtifact } from 'ethereum-types';
|
||||
|
||||
import * as AffiliateFeeTransformer from '../generated-artifacts/AffiliateFeeTransformer.json';
|
||||
import * as AvalancheBridgeAdapter from '../generated-artifacts/AvalancheBridgeAdapter.json';
|
||||
import * as BaseBridgeAdapter from '../generated-artifacts/BaseBridgeAdapter.json';
|
||||
import * as BaseGoerliBridgeAdapter from '../generated-artifacts/BaseGoerliBridgeAdapter.json';
|
||||
import * as BatchFillNativeOrdersFeature from '../generated-artifacts/BatchFillNativeOrdersFeature.json';
|
||||
import * as BSCBridgeAdapter from '../generated-artifacts/BSCBridgeAdapter.json';
|
||||
import * as CeloBridgeAdapter from '../generated-artifacts/CeloBridgeAdapter.json';
|
||||
@ -79,6 +81,8 @@ export const artifacts = {
|
||||
OtcOrdersFeature: OtcOrdersFeature as ContractArtifact,
|
||||
IOtcOrdersFeature: IOtcOrdersFeature as ContractArtifact,
|
||||
AvalancheBridgeAdapter: AvalancheBridgeAdapter as ContractArtifact,
|
||||
BaseGoerliBridgeAdapter: BaseGoerliBridgeAdapter as ContractArtifact,
|
||||
BaseBridgeAdapter: BaseBridgeAdapter as ContractArtifact,
|
||||
BSCBridgeAdapter: BSCBridgeAdapter as ContractArtifact,
|
||||
CeloBridgeAdapter: CeloBridgeAdapter as ContractArtifact,
|
||||
EthereumBridgeAdapter: EthereumBridgeAdapter as ContractArtifact,
|
||||
|
@ -6,6 +6,8 @@
|
||||
export * from '../generated-wrappers/affiliate_fee_transformer';
|
||||
export * from '../generated-wrappers/avalanche_bridge_adapter';
|
||||
export * from '../generated-wrappers/b_s_c_bridge_adapter';
|
||||
export * from '../generated-wrappers/base_bridge_adapter';
|
||||
export * from '../generated-wrappers/base_goerli_bridge_adapter';
|
||||
export * from '../generated-wrappers/batch_fill_native_orders_feature';
|
||||
export * from '../generated-wrappers/celo_bridge_adapter';
|
||||
export * from '../generated-wrappers/curve_liquidity_provider';
|
||||
|
@ -9,6 +9,8 @@ import * as AbstractBridgeAdapter from '../test/generated-artifacts/AbstractBrid
|
||||
import * as AffiliateFeeTransformer from '../test/generated-artifacts/AffiliateFeeTransformer.json';
|
||||
import * as ArbitrumBridgeAdapter from '../test/generated-artifacts/ArbitrumBridgeAdapter.json';
|
||||
import * as AvalancheBridgeAdapter from '../test/generated-artifacts/AvalancheBridgeAdapter.json';
|
||||
import * as BaseBridgeAdapter from '../test/generated-artifacts/BaseBridgeAdapter.json';
|
||||
import * as BaseGoerliBridgeAdapter from '../test/generated-artifacts/BaseGoerliBridgeAdapter.json';
|
||||
import * as BatchFillNativeOrdersFeature from '../test/generated-artifacts/BatchFillNativeOrdersFeature.json';
|
||||
import * as BootstrapFeature from '../test/generated-artifacts/BootstrapFeature.json';
|
||||
import * as BridgeProtocols from '../test/generated-artifacts/BridgeProtocols.json';
|
||||
@ -319,6 +321,8 @@ export const artifacts = {
|
||||
ArbitrumBridgeAdapter: ArbitrumBridgeAdapter as ContractArtifact,
|
||||
AvalancheBridgeAdapter: AvalancheBridgeAdapter as ContractArtifact,
|
||||
BSCBridgeAdapter: BSCBridgeAdapter as ContractArtifact,
|
||||
BaseBridgeAdapter: BaseBridgeAdapter as ContractArtifact,
|
||||
BaseGoerliBridgeAdapter: BaseGoerliBridgeAdapter as ContractArtifact,
|
||||
BridgeProtocols: BridgeProtocols as ContractArtifact,
|
||||
CeloBridgeAdapter: CeloBridgeAdapter as ContractArtifact,
|
||||
EthereumBridgeAdapter: EthereumBridgeAdapter as ContractArtifact,
|
||||
|
@ -8,6 +8,8 @@ export * from '../test/generated-wrappers/affiliate_fee_transformer';
|
||||
export * from '../test/generated-wrappers/arbitrum_bridge_adapter';
|
||||
export * from '../test/generated-wrappers/avalanche_bridge_adapter';
|
||||
export * from '../test/generated-wrappers/b_s_c_bridge_adapter';
|
||||
export * from '../test/generated-wrappers/base_bridge_adapter';
|
||||
export * from '../test/generated-wrappers/base_goerli_bridge_adapter';
|
||||
export * from '../test/generated-wrappers/batch_fill_native_orders_feature';
|
||||
export * from '../test/generated-wrappers/bootstrap_feature';
|
||||
export * from '../test/generated-wrappers/bridge_protocols';
|
||||
|
@ -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/AvalancheBridgeAdapter.sol";
|
||||
import "../../../contracts/src/transformers/bridges/BridgeProtocols.sol";
|
||||
|
||||
contract AvalancheBridgeAdapterTest is Test {
|
||||
address constant WAVAX = 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7;
|
||||
|
||||
AvalancheBridgeAdapter private adapter;
|
||||
|
||||
function setUp() public {
|
||||
vm.chainId(43114);
|
||||
adapter = new AvalancheBridgeAdapter(IEtherToken(WAVAX));
|
||||
}
|
||||
|
||||
function testSupportsUniswapV3() public {
|
||||
assertTrue(adapter.isSupportedSource(bytes32(uint256(BridgeProtocols.UNISWAPV3) << 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/BSCBridgeAdapter.sol";
|
||||
import "../../../contracts/src/transformers/bridges/BridgeProtocols.sol";
|
||||
|
||||
contract BSCBridgeAdapterTest is Test {
|
||||
address constant WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
|
||||
|
||||
BSCBridgeAdapter private adapter;
|
||||
|
||||
function setUp() public {
|
||||
vm.chainId(56);
|
||||
adapter = new BSCBridgeAdapter(IEtherToken(WBNB));
|
||||
}
|
||||
|
||||
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)));
|
||||
}
|
||||
}
|
@ -6,6 +6,8 @@
|
||||
"generated-artifacts/AffiliateFeeTransformer.json",
|
||||
"generated-artifacts/AvalancheBridgeAdapter.json",
|
||||
"generated-artifacts/BSCBridgeAdapter.json",
|
||||
"generated-artifacts/BaseBridgeAdapter.json",
|
||||
"generated-artifacts/BaseGoerliBridgeAdapter.json",
|
||||
"generated-artifacts/BatchFillNativeOrdersFeature.json",
|
||||
"generated-artifacts/CeloBridgeAdapter.json",
|
||||
"generated-artifacts/CurveLiquidityProvider.json",
|
||||
@ -48,6 +50,8 @@
|
||||
"test/generated-artifacts/ArbitrumBridgeAdapter.json",
|
||||
"test/generated-artifacts/AvalancheBridgeAdapter.json",
|
||||
"test/generated-artifacts/BSCBridgeAdapter.json",
|
||||
"test/generated-artifacts/BaseBridgeAdapter.json",
|
||||
"test/generated-artifacts/BaseGoerliBridgeAdapter.json",
|
||||
"test/generated-artifacts/BatchFillNativeOrdersFeature.json",
|
||||
"test/generated-artifacts/BootstrapFeature.json",
|
||||
"test/generated-artifacts/BridgeProtocols.json",
|
||||
|
@ -15,6 +15,7 @@ Create an ERC721Order
|
||||
The following code snippet shows how to construct a basic ERC721 sell order in JavaScript. In the following example, the seller indicates that they would like to receive ether by providing the sentinel value `0xeee...`` as the `erc20Token`.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
const { ERC721Order, NFTOrder } = require("@0x/protocol-utils");
|
||||
const utils = require("@0x/utils");
|
||||
|
||||
@ -48,6 +49,7 @@ The following code snippet shows how to construct a basic ERC721 sell order in J
|
||||
An ERC721 sell order can be created similarly. Note that buy orders must use WETH instead of ether, because the ERC20 `transferFrom` functionality is needed to execute a buy order.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
const { ERC721Order, NFTOrder } = require("@0x/protocol-utils");
|
||||
const utils = require("@0x/utils");
|
||||
|
||||
@ -97,6 +99,7 @@ Fees are paid by the **buyer**, denominated in the asset paid by the buyer, and
|
||||
The following code snippet shows how to create an ERC721 order with a single fee. Multiple fees can be specified by providing multiple fee objects in the order fees field.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
const { ERC721Order, NFTOrder } = require("@0x/protocol-utils");
|
||||
const utils = require("@0x/utils");
|
||||
|
||||
@ -130,6 +133,7 @@ The following code snippet shows how to create an ERC721 order with a single fee
|
||||
In 0x V4, it is possible to create a bid for any NFT in a particular collection. The following code snippet shows how to create an order to buy any CryptoCoven $WITCH.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
const { ERC721Order, NFTOrder } = require("@0x/protocol-utils");
|
||||
const utils = require("@0x/utils");
|
||||
|
||||
@ -169,6 +173,7 @@ Off-chain orders must be signed by the order maker to be filled. For on-chain or
|
||||
Signing an order with a private key is easy: the `ERC721Order` and `ERC1155Order` classes from `@0x/protocol-utils` expose a `getSignatureWithKey` function that take a 0x-prefixed private key string.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
const { ERC721Order, NFTOrder, SignatureType } = require("@0x/protocol-utils");
|
||||
const utils = require("@0x/utils");
|
||||
|
||||
@ -196,6 +201,7 @@ Signing an order with a private key is easy: the `ERC721Order` and `ERC1155Order
|
||||
**Signing with ethers**
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
const { ERC721Order, NFTOrder, SignatureType } = require("@0x/protocol-utils");
|
||||
const utils = require("@0x/utils");
|
||||
const { ethers } = require("ethers");
|
||||
@ -243,6 +249,7 @@ Signing an order with a private key is easy: the `ERC721Order` and `ERC1155Order
|
||||
Orders can be simultaneously "signed" and listed on-chain using the `preSignERC721Order` or `preSignERC1155Order` functions. Orders can only be signed by the maker address specified in the order.
|
||||
|
||||
.. code-block:: solidity
|
||||
|
||||
/// @dev Approves an ERC721 order on-chain. After pre-signing
|
||||
/// the order, the `PRESIGNED` signature type will become
|
||||
/// valid for that order and signer.
|
||||
@ -260,6 +267,7 @@ Orders can be simultaneously "signed" and listed on-chain using the `preSignERC7
|
||||
If an order has been pre-signed, it can be filled by providing a “null” signature with the PRESIGNED signature type (see `LibSignature.sol <https://github.com/0xProject/protocol/blob/refactor/nft-orders/contracts/zero-ex/contracts/src/features/libs/LibSignature.sol#L42-L61>`_):
|
||||
|
||||
.. code-block:: solidity
|
||||
|
||||
LibSignature.Signature({
|
||||
signatureType: LibSignature.SignatureType.PRESIGNED,
|
||||
v: uint8(0),
|
||||
@ -270,6 +278,7 @@ If an order has been pre-signed, it can be filled by providing a “null” sign
|
||||
The pre-sign functions emit the entire order as an event, so that the order is easily indexable by subgraphs and thus easily indexable by subgraphs and thus easily discoverable without the need for an off-chain database.
|
||||
|
||||
.. code-block:: solidity
|
||||
|
||||
/// @dev Emitted when an `ERC721Order` is pre-signed.
|
||||
/// Contains all the fields of the order.
|
||||
event ERC721OrderPreSigned(
|
||||
@ -311,6 +320,7 @@ Filling an ERC721 Order
|
||||
The basic functions used for filling NFT orders are the following:
|
||||
|
||||
.. code-block:: solidity
|
||||
|
||||
/// @dev Sells an ERC721 asset to fill the given order.
|
||||
/// @param buyOrder The ERC721 buy order.
|
||||
/// @param signature The order signature from the maker.
|
||||
@ -407,6 +417,7 @@ Cancelling an ERC721 Order
|
||||
All orders, whether off-chain or on-chain, can only be cancelled on-chain. The following contract functions are used to cancel individual ERC721 and ERC1155 orders.
|
||||
|
||||
.. code-block:: solidity
|
||||
|
||||
/// @dev Cancel a single ERC721 order by its nonce. The caller
|
||||
/// should be the maker of the order. Silently succeeds if
|
||||
/// an order with the same nonce has already been filled or
|
||||
@ -427,6 +438,7 @@ Note that if there are multiple outstanding orders with the same nonce, calling
|
||||
The following functions can be used to cancel multiple orders.
|
||||
|
||||
.. code-block:: solidity
|
||||
|
||||
/// @dev Cancel multiple ERC721 orders by their nonces. The caller
|
||||
/// should be the maker of the orders. Silently succeeds if
|
||||
/// an order with the same nonce has already been filled or
|
||||
|
@ -1,4 +1,52 @@
|
||||
[
|
||||
{
|
||||
"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": [
|
||||
{
|
||||
"note": "Add Uniswap V3 router v2 support in Base FillQuoteTransformer"
|
||||
}
|
||||
],
|
||||
"timestamp": 1689974915
|
||||
},
|
||||
{
|
||||
"version": "8.8.0",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Add Base mainnet addresses"
|
||||
},
|
||||
{
|
||||
"note": "Add UniswapV3 support in Avalanche and BSC FillQuoteTransformers"
|
||||
}
|
||||
],
|
||||
"timestamp": 1689791426
|
||||
},
|
||||
{
|
||||
"version": "8.7.0",
|
||||
"changes": [
|
||||
|
@ -6,6 +6,22 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
## v8.8.0 - _July 19, 2023_
|
||||
|
||||
* Add Base mainnet addresses
|
||||
* Add UniswapV3 support in Avalanche and BSC FillQuoteTransformers
|
||||
## v8.7.0 - _May 10, 2023_
|
||||
|
||||
* Add Trader Joe V2 MixIn to Arbitrum
|
||||
|
@ -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": "0x43d10801db01c28093265ef9b77d532e553fa578",
|
||||
"fillQuoteTransformer": "0x6073f12fc63bcc64bd4fed5d44aa1035e37d68ee",
|
||||
"positiveSlippageFeeTransformer": "0x6ff35e8cbaf56d8a8f6bf9963b902a4576243030"
|
||||
}
|
||||
},
|
||||
@ -156,7 +156,7 @@
|
||||
"wethTransformer": "0x9b8b52391071d71cd4ad1e61d7f273268fa34c6c",
|
||||
"payTakerTransformer": "0xb9a4c32547bc3cdc2ee2fb13cc1a0717dac9888f",
|
||||
"affiliateFeeTransformer": "0x105679f99d668001370b4621ad8648ac570c860f",
|
||||
"fillQuoteTransformer": "0x886e4f97d7e06ab66dba574a7a861046dcf7ae4f",
|
||||
"fillQuoteTransformer": "0x463fe1a80acb62ce1e4f0a4f7b83df674c2cce2c",
|
||||
"positiveSlippageFeeTransformer": "0xadbfdc58a24b6dbc16f21541800f43dd6e282250"
|
||||
}
|
||||
},
|
||||
@ -225,7 +225,7 @@
|
||||
"wethTransformer": "0x02ce7af6520e2862f961f5d7eda746642865179c",
|
||||
"payTakerTransformer": "0xa6c3ca183a67fcb4299fb4199c12ca74874ca489",
|
||||
"affiliateFeeTransformer": "0x3102aea537ecb6f164550b094663c82a8c53a972",
|
||||
"fillQuoteTransformer": "0xd140adb61d4e3e3978d4f32ac6b92240ff6e3a6e",
|
||||
"fillQuoteTransformer": "0x521f3184ab27abde4a34e744a908b1a08dc8ef91",
|
||||
"positiveSlippageFeeTransformer": "0x9a4947d3fb77a7afc2c9cd6714bbae96dddde059"
|
||||
}
|
||||
},
|
||||
@ -251,5 +251,28 @@
|
||||
"fillQuoteTransformer": "0x4a8815c2fc605e3b01aee52aade4d096c4e862c6",
|
||||
"positiveSlippageFeeTransformer": "0x20f935b037e8490d8027f2751f9452725eee01ad"
|
||||
}
|
||||
},
|
||||
"8453": {
|
||||
"zrxToken": "0x0000000000000000000000000000000000000000",
|
||||
"etherToken": "0x4200000000000000000000000000000000000006",
|
||||
"zeroExGovernor": "0xecc4f2a8e0fd933623b2ea4ad84bffd12cb1286c",
|
||||
"zrxVault": "0x0000000000000000000000000000000000000000",
|
||||
"staking": "0x0000000000000000000000000000000000000000",
|
||||
"stakingProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeProxy": "0x0000000000000000000000000000000000000000",
|
||||
"erc20BridgeSampler": "0x0000000000000000000000000000000000000000",
|
||||
"exchangeProxyGovernor": "0xecc4f2a8e0fd933623b2ea4ad84bffd12cb1286c",
|
||||
"exchangeProxy": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
|
||||
"exchangeProxyTransformerDeployer": "0x58bca53ebba1aaf25f0edcd8dad6421872fe20b2",
|
||||
"exchangeProxyFlashWallet": "0xdb6f1920a889355780af7570773609bd8cb1f498",
|
||||
"exchangeProxyLiquidityProviderSandbox": "0x0000000000000000000000000000000000000000",
|
||||
"zrxTreasury": "0x0000000000000000000000000000000000000000",
|
||||
"transformers": {
|
||||
"wethTransformer": "0x63186ea36e78ecbf0128e448362f1b81e9bf7412",
|
||||
"payTakerTransformer": "0x5cc22a0e06ea11097c612a962e63674b90e96099",
|
||||
"affiliateFeeTransformer": "0x9e52d8b32d835206d09810c310593bcc77264066",
|
||||
"fillQuoteTransformer": "0x2c46d57bb5af87a13a51dd5b62ba7d3bc7e12e9c",
|
||||
"positiveSlippageFeeTransformer": "0xf98a130d3b4029c70e6d93098cb82a003421341e"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contract-addresses",
|
||||
"version": "8.7.0",
|
||||
"version": "8.12.0",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
|
@ -36,6 +36,7 @@ export enum ChainId {
|
||||
Celo = 42220,
|
||||
Optimism = 10,
|
||||
Arbitrum = 42161,
|
||||
Base = 8453,
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,4 +1,49 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689791426,
|
||||
"version": "13.23.3",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1683749017,
|
||||
"version": "13.23.2",
|
||||
|
@ -6,6 +6,21 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
## v13.23.3 - _July 19, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v13.23.2 - _May 10, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contract-wrappers",
|
||||
"version": "13.23.2",
|
||||
"version": "13.23.7",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -59,7 +59,7 @@
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.36",
|
||||
"@0x/base-contract": "^7.0.0",
|
||||
"@0x/contract-addresses": "^8.7.0",
|
||||
"@0x/contract-addresses": "^8.12.0",
|
||||
"@0x/json-schemas": "^6.4.4",
|
||||
"@0x/types": "^3.3.7",
|
||||
"@0x/utils": "^7.0.0",
|
||||
|
@ -1,4 +1,49 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1689791426,
|
||||
"version": "11.22.3",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Dependencies updated"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"timestamp": 1683749017,
|
||||
"version": "11.22.2",
|
||||
|
@ -6,6 +6,21 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
CHANGELOG
|
||||
|
||||
## 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
|
||||
## v11.22.3 - _July 19, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
## v11.22.2 - _May 10, 2023_
|
||||
|
||||
* Dependencies updated
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/protocol-utils",
|
||||
"version": "11.22.2",
|
||||
"version": "11.24.1",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@ -62,8 +62,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.36",
|
||||
"@0x/contract-addresses": "^8.7.0",
|
||||
"@0x/contract-wrappers": "^13.23.2",
|
||||
"@0x/contract-addresses": "^8.12.0",
|
||||
"@0x/contract-wrappers": "^13.23.7",
|
||||
"@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