Compare commits

...

13 Commits

Author SHA1 Message Date
Github Actions
bde3d6dc6a Publish
- @0x/contracts-asset-proxy@3.7.13
 - @0x/contracts-broker@1.1.31
 - @0x/contracts-coordinator@3.1.32
 - @0x/contracts-dev-utils@1.3.30
 - @0x/contracts-erc1155@2.1.31
 - @0x/contracts-erc20@3.3.10
 - @0x/contracts-erc721@3.1.31
 - @0x/contracts-exchange-forwarder@4.2.32
 - @0x/contracts-exchange-libs@4.3.31
 - @0x/contracts-exchange@3.2.32
 - @0x/contracts-extensions@6.2.26
 - @0x/contracts-integrations@2.7.46
 - @0x/contracts-multisig@4.1.32
 - @0x/contracts-staking@2.0.39
 - @0x/contracts-test-utils@5.4.2
 - @0x/contracts-treasury@1.1.8
 - @0x/contracts-utils@4.7.10
 - @0x/contracts-zero-ex@0.24.1
 - @0x/asset-swapper@6.16.0
 - @0x/contract-addresses@6.3.0
 - @0x/contract-wrappers-test@12.2.47
 - @0x/contract-wrappers@13.16.3
 - @0x/migrations@8.0.8
 - @0x/order-utils@10.4.23
 - @0x/protocol-utils@1.6.2
2021-05-25 12:13:43 +00:00
Github Actions
56550a6acc Updated CHANGELOGS & MD docs 2021-05-25 12:13:38 +00:00
Kim Persson
e51b83accc Polygon support (#240)
* feat: Polygon deployed

* Updated polygon FQT address

* feat: add SushiSwap on Polygon WIP

* fix: add Matic as a native token

* refactor: import valueByChainId from token-metadata to consolidate impl

* refactor: use same gas schedule fn for all uni v2 clones

* feat: Add QuickSwap Polygon integration

* fix: add Polygon tokens to initial TokenAdjacencyGraph

* feat: ComethSwap Polygon integration

* feat: Add Curve, Dfyn, mStable for Polygon

* fix: temporarily private publish contract-addresses, token-metadata

* feat: Add DODO V2 support for polygon, stability pool on mainnet, bsc

* chore: fix linting

* fix: incorrect Curve Polygon gas schedule

Co-authored-by: Jacob Evans <jacob@dekz.net>

* refator: consolidate Polygon token addresses in POLYGON_TOKENS

* feat: Polygon DODO V1 integration

* fix: remove dependency on @0x/token-metadata

* chore: remove private publish dependencies and add changelog entry

Co-authored-by: Jacob Evans <jacob@dekz.net>
Co-authored-by: Romain Butteaud <romain.butteaud@gmail.com>
2021-05-25 13:40:52 +02:00
Github Actions
d5ae971f1c Publish
- @0x/contracts-asset-proxy@3.7.12
 - @0x/contracts-broker@1.1.30
 - @0x/contracts-coordinator@3.1.31
 - @0x/contracts-dev-utils@1.3.29
 - @0x/contracts-erc1155@2.1.30
 - @0x/contracts-erc20@3.3.9
 - @0x/contracts-erc721@3.1.30
 - @0x/contracts-exchange-forwarder@4.2.31
 - @0x/contracts-exchange-libs@4.3.30
 - @0x/contracts-exchange@3.2.31
 - @0x/contracts-extensions@6.2.25
 - @0x/contracts-integrations@2.7.45
 - @0x/contracts-multisig@4.1.31
 - @0x/contracts-staking@2.0.38
 - @0x/contracts-test-utils@5.4.1
 - @0x/contracts-treasury@1.1.7
 - @0x/contracts-utils@4.7.9
 - @0x/contracts-zero-ex@0.24.0
 - @0x/asset-swapper@6.15.0
 - @0x/contract-addresses@6.2.0
 - @0x/contract-wrappers-test@12.2.46
 - @0x/contract-wrappers@13.16.2
 - @0x/migrations@8.0.7
 - @0x/order-utils@10.4.22
 - @0x/protocol-utils@1.6.1
2021-05-21 12:37:26 +00:00
Github Actions
5a2f5f9a42 Updated CHANGELOGS & MD docs 2021-05-21 12:37:22 +00:00
Jacob Evans
75a3b70cef chore: Temporarily disable a LiquidityProvider (#248) 2021-05-21 22:08:55 +10:00
Jacob Evans
803cf65ba1 fix: Deploy FQT for KyberDmm/Mstable (#247) 2021-05-19 08:34:26 +10:00
Jacob Evans
5d3947b838 fix prettier 2021-05-18 09:10:29 +10:00
mzhu25
4397a59008 Add Huobi Token to liquidity provider tokens (#246) 2021-05-17 15:21:53 -07:00
Jacob Evans
966d54c935 fix: KyberDmm (#236)
* fix: KyberDmm

* fix: pass buyToken to kyberDmm and require that path ends with buyToken

* Pass BigNumber down to FastABI

* Address Feedback

Co-authored-by: Kim Persson <kimpersson88@gmail.com>
2021-05-18 08:12:28 +10:00
Romain Butteaud
234ddb495d fix: mStable USD Sampler and Mixin fix (#238)
* fix: mStable USD Sampler and Mixin fix

* chore: adding mBTC (mStable) pool

* fix linter
2021-05-16 19:43:06 -07:00
mzhu25
a744acc7bc Add special selectors to selector collision test (#243) 2021-05-14 10:50:58 -07:00
Lawrence Forman
27c624633c fix repo scripts that use PKG= env var (#242)
Co-authored-by: Lawrence Forman <me@merklejerk.com>
2021-05-12 18:53:06 -04:00
98 changed files with 1524 additions and 352 deletions

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "3.7.13",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "3.7.12",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "3.7.11", "version": "3.7.11",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v3.7.13 - _May 25, 2021_
* Dependencies updated
## v3.7.12 - _May 21, 2021_
* Dependencies updated
## v3.7.11 - _May 5, 2021_ ## v3.7.11 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-asset-proxy", "name": "@0x/contracts-asset-proxy",
"version": "3.7.11", "version": "3.7.13",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -52,10 +52,10 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contract-wrappers": "^13.16.1", "@0x/contract-wrappers": "^13.16.3",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
@@ -80,11 +80,11 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contracts-erc1155": "^2.1.29", "@0x/contracts-erc1155": "^2.1.31",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-erc721": "^3.1.29", "@0x/contracts-erc721": "^3.1.31",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "1.1.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "1.1.30",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "1.1.29", "version": "1.1.29",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v1.1.31 - _May 25, 2021_
* Dependencies updated
## v1.1.30 - _May 21, 2021_
* Dependencies updated
## v1.1.29 - _May 5, 2021_ ## v1.1.29 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-broker", "name": "@0x/contracts-broker",
"version": "1.1.29", "version": "1.1.31",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -52,14 +52,14 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-erc721": "^3.1.29", "@0x/contracts-erc721": "^3.1.31",
"@0x/contracts-exchange": "^3.2.30", "@0x/contracts-exchange": "^3.2.32",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
@@ -85,7 +85,7 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",
"ethereum-types": "^3.5.0" "ethereum-types": "^3.5.0"

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "3.1.32",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "3.1.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "3.1.30", "version": "3.1.30",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v3.1.32 - _May 25, 2021_
* Dependencies updated
## v3.1.31 - _May 21, 2021_
* Dependencies updated
## v3.1.30 - _May 5, 2021_ ## v3.1.30 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-coordinator", "name": "@0x/contracts-coordinator",
"version": "3.1.30", "version": "3.1.32",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -53,12 +53,12 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-dev-utils": "^1.3.28", "@0x/contracts-dev-utils": "^1.3.30",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
@@ -84,10 +84,10 @@
"dependencies": { "dependencies": {
"@0x/assert": "^3.0.27", "@0x/assert": "^3.0.27",
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contracts-exchange": "^3.2.30", "@0x/contracts-exchange": "^3.2.32",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/json-schemas": "^6.1.3", "@0x/json-schemas": "^6.1.3",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "1.3.30",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "1.3.29",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "1.3.28", "version": "1.3.28",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v1.3.30 - _May 25, 2021_
* Dependencies updated
## v1.3.29 - _May 21, 2021_
* Dependencies updated
## v1.3.28 - _May 5, 2021_ ## v1.3.28 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-dev-utils", "name": "@0x/contracts-dev-utils",
"version": "1.3.28", "version": "1.3.30",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -43,10 +43,10 @@
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/assert": "^3.0.27", "@0x/assert": "^3.0.27",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "2.1.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "2.1.30",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "2.1.29", "version": "2.1.29",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v2.1.31 - _May 25, 2021_
* Dependencies updated
## v2.1.30 - _May 21, 2021_
* Dependencies updated
## v2.1.29 - _May 5, 2021_ ## v2.1.29 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-erc1155", "name": "@0x/contracts-erc1155",
"version": "2.1.29", "version": "2.1.31",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -54,7 +54,7 @@
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
@@ -81,7 +81,7 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",
"@0x/web3-wrapper": "^7.5.3", "@0x/web3-wrapper": "^7.5.3",
"lodash": "^4.17.11" "lodash": "^4.17.11"

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "3.3.10",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "3.3.9",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "3.3.8", "version": "3.3.8",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v3.3.10 - _May 25, 2021_
* Dependencies updated
## v3.3.9 - _May 21, 2021_
* Dependencies updated
## v3.3.8 - _May 5, 2021_ ## v3.3.8 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-erc20", "name": "@0x/contracts-erc20",
"version": "3.3.8", "version": "3.3.10",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -53,8 +53,8 @@
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "3.1.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "3.1.30",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "3.1.29", "version": "3.1.29",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v3.1.31 - _May 25, 2021_
* Dependencies updated
## v3.1.30 - _May 21, 2021_
* Dependencies updated
## v3.1.29 - _May 5, 2021_ ## v3.1.29 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-erc721", "name": "@0x/contracts-erc721",
"version": "3.1.29", "version": "3.1.31",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -54,8 +54,8 @@
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "4.2.32",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "4.2.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "4.2.30", "version": "4.2.30",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v4.2.32 - _May 25, 2021_
* Dependencies updated
## v4.2.31 - _May 21, 2021_
* Dependencies updated
## v4.2.30 - _May 5, 2021_ ## v4.2.30 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-exchange-forwarder", "name": "@0x/contracts-exchange-forwarder",
"version": "4.2.30", "version": "4.2.32",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -53,18 +53,18 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-dev-utils": "^1.3.28", "@0x/contracts-dev-utils": "^1.3.30",
"@0x/contracts-erc1155": "^2.1.29", "@0x/contracts-erc1155": "^2.1.31",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-erc721": "^3.1.29", "@0x/contracts-erc721": "^3.1.31",
"@0x/contracts-exchange": "^3.2.30", "@0x/contracts-exchange": "^3.2.32",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "4.3.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "4.3.30",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "4.3.29", "version": "4.3.29",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v4.3.31 - _May 25, 2021_
* Dependencies updated
## v4.3.30 - _May 21, 2021_
* Dependencies updated
## v4.3.29 - _May 5, 2021_ ## v4.3.29 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-exchange-libs", "name": "@0x/contracts-exchange-libs",
"version": "4.3.29", "version": "4.3.31",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -81,9 +81,9 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "3.2.32",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "3.2.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "3.2.30", "version": "3.2.30",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v3.2.32 - _May 25, 2021_
* Dependencies updated
## v3.2.31 - _May 21, 2021_
* Dependencies updated
## v3.2.30 - _May 5, 2021_ ## v3.2.30 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-exchange", "name": "@0x/contracts-exchange",
"version": "3.2.30", "version": "3.2.32",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -53,13 +53,13 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-multisig": "^4.1.30", "@0x/contracts-multisig": "^4.1.32",
"@0x/contracts-staking": "^2.0.37", "@0x/contracts-staking": "^2.0.39",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
@@ -89,11 +89,11 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contracts-dev-utils": "^1.3.28", "@0x/contracts-dev-utils": "^1.3.30",
"@0x/contracts-erc1155": "^2.1.29", "@0x/contracts-erc1155": "^2.1.31",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-erc721": "^3.1.29", "@0x/contracts-erc721": "^3.1.31",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",
"lodash": "^4.17.11" "lodash": "^4.17.11"
}, },

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "6.2.26",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "6.2.25",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "6.2.24", "version": "6.2.24",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v6.2.26 - _May 25, 2021_
* Dependencies updated
## v6.2.25 - _May 21, 2021_
* Dependencies updated
## v6.2.24 - _May 5, 2021_ ## v6.2.24 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-extensions", "name": "@0x/contracts-extensions",
"version": "6.2.24", "version": "6.2.26",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -53,16 +53,16 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-dev-utils": "^1.3.28", "@0x/contracts-dev-utils": "^1.3.30",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-erc721": "^3.1.29", "@0x/contracts-erc721": "^3.1.31",
"@0x/contracts-exchange": "^3.2.30", "@0x/contracts-exchange": "^3.2.32",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
@@ -91,7 +91,7 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",
"ethereum-types": "^3.5.0" "ethereum-types": "^3.5.0"
}, },

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-integrations", "name": "@0x/contracts-integrations",
"version": "2.7.44", "version": "2.7.46",
"private": true, "private": true,
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
@@ -53,21 +53,21 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contract-wrappers": "^13.16.1", "@0x/contract-wrappers": "^13.16.3",
"@0x/contracts-broker": "^1.1.29", "@0x/contracts-broker": "^1.1.31",
"@0x/contracts-coordinator": "^3.1.30", "@0x/contracts-coordinator": "^3.1.32",
"@0x/contracts-dev-utils": "^1.3.28", "@0x/contracts-dev-utils": "^1.3.30",
"@0x/contracts-exchange-forwarder": "^4.2.30", "@0x/contracts-exchange-forwarder": "^4.2.32",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/contracts-extensions": "^6.2.24", "@0x/contracts-extensions": "^6.2.26",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/coordinator-server": "^1.0.5", "@0x/coordinator-server": "^1.0.5",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/migrations": "^8.0.6", "@0x/migrations": "^8.0.8",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/protocol-utils": "^1.6.0", "@0x/protocol-utils": "^1.6.2",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
"@0x/web3-wrapper": "^7.5.3", "@0x/web3-wrapper": "^7.5.3",
@@ -93,17 +93,17 @@
"typescript": "4.2.2" "typescript": "4.2.2"
}, },
"dependencies": { "dependencies": {
"@0x/asset-swapper": "^6.14.0", "@0x/asset-swapper": "^6.16.0",
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-erc1155": "^2.1.29", "@0x/contracts-erc1155": "^2.1.31",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-erc721": "^3.1.29", "@0x/contracts-erc721": "^3.1.31",
"@0x/contracts-exchange": "^3.2.30", "@0x/contracts-exchange": "^3.2.32",
"@0x/contracts-multisig": "^4.1.30", "@0x/contracts-multisig": "^4.1.32",
"@0x/contracts-staking": "^2.0.37", "@0x/contracts-staking": "^2.0.39",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-zero-ex": "^0.23.0", "@0x/contracts-zero-ex": "^0.24.1",
"@0x/subproviders": "^6.5.3", "@0x/subproviders": "^6.5.3",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "4.1.32",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "4.1.31",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "4.1.30", "version": "4.1.30",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v4.1.32 - _May 25, 2021_
* Dependencies updated
## v4.1.31 - _May 21, 2021_
* Dependencies updated
## v4.1.30 - _May 5, 2021_ ## v4.1.30 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-multisig", "name": "@0x/contracts-multisig",
"version": "4.1.30", "version": "4.1.32",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -50,11 +50,11 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/multisig", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/multisig",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "2.0.39",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "2.0.38",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"version": "2.0.37", "version": "2.0.37",
"changes": [ "changes": [

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v2.0.39 - _May 25, 2021_
* Dependencies updated
## v2.0.38 - _May 21, 2021_
* Dependencies updated
## v2.0.37 - _May 5, 2021_ ## v2.0.37 - _May 5, 2021_
* Patch epoch finalization issue (#221) * Patch epoch finalization issue (#221)

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-staking", "name": "@0x/contracts-staking",
"version": "2.0.37", "version": "2.0.39",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -54,14 +54,14 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-dev-utils": "^1.3.28", "@0x/contracts-dev-utils": "^1.3.30",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
@@ -88,7 +88,7 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",
"ethereum-types": "^3.5.0", "ethereum-types": "^3.5.0",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "5.4.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "5.4.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"version": "5.4.0", "version": "5.4.0",
"changes": [ "changes": [

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v5.4.2 - _May 25, 2021_
* Dependencies updated
## v5.4.1 - _May 21, 2021_
* Dependencies updated
## v5.4.0 - _May 5, 2021_ ## v5.4.0 - _May 5, 2021_
* Set default ganache gas limit to 100e6 (#197) * Set default ganache gas limit to 100e6 (#197)

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-test-utils", "name": "@0x/contracts-test-utils",
"version": "5.4.0", "version": "5.4.2",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -44,10 +44,10 @@
"dependencies": { "dependencies": {
"@0x/assert": "^3.0.27", "@0x/assert": "^3.0.27",
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/json-schemas": "^6.1.3", "@0x/json-schemas": "^6.1.3",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/sol-coverage": "^4.0.37", "@0x/sol-coverage": "^4.0.37",
"@0x/sol-profiler": "^4.1.27", "@0x/sol-profiler": "^4.1.27",
"@0x/sol-trace": "^3.0.37", "@0x/sol-trace": "^3.0.37",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "1.1.8",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "1.1.7",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "1.1.6", "version": "1.1.6",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v1.1.8 - _May 25, 2021_
* Dependencies updated
## v1.1.7 - _May 21, 2021_
* Dependencies updated
## v1.1.6 - _May 5, 2021_ ## v1.1.6 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-treasury", "name": "@0x/contracts-treasury",
"version": "1.1.6", "version": "1.1.8",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -47,12 +47,12 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/treasury", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/treasury",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-staking": "^2.0.37", "@0x/contracts-staking": "^2.0.39",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
@@ -73,7 +73,7 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/protocol-utils": "^1.6.0", "@0x/protocol-utils": "^1.6.2",
"@0x/subproviders": "^6.5.3", "@0x/subproviders": "^6.5.3",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "4.7.10",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "4.7.9",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "4.7.8", "version": "4.7.8",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v4.7.10 - _May 25, 2021_
* Dependencies updated
## v4.7.9 - _May 21, 2021_
* Dependencies updated
## v4.7.8 - _May 5, 2021_ ## v4.7.8 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-utils", "name": "@0x/contracts-utils",
"version": "4.7.8", "version": "4.7.10",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -52,9 +52,9 @@
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",

View File

@@ -1,4 +1,23 @@
[ [
{
"timestamp": 1621944788,
"version": "0.24.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"version": "0.24.0",
"changes": [
{
"note": "Add special selectors to selector collision test",
"pr": 243
}
],
"timestamp": 1621600614
},
{ {
"version": "0.23.0", "version": "0.23.0",
"changes": [ "changes": [

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v0.24.1 - _May 25, 2021_
* Dependencies updated
## v0.24.0 - _May 21, 2021_
* Add special selectors to selector collision test (#243)
## v0.23.0 - _May 5, 2021_ ## v0.23.0 - _May 5, 2021_
* Added ETH support to `MixinCurve` (#220) * Added ETH support to `MixinCurve` (#220)

View File

@@ -31,6 +31,7 @@ import "./mixins/MixinCryptoCom.sol";
import "./mixins/MixinDodo.sol"; import "./mixins/MixinDodo.sol";
import "./mixins/MixinDodoV2.sol"; import "./mixins/MixinDodoV2.sol";
import "./mixins/MixinKyber.sol"; import "./mixins/MixinKyber.sol";
import "./mixins/MixinKyberDmm.sol";
import "./mixins/MixinMakerPSM.sol"; import "./mixins/MixinMakerPSM.sol";
import "./mixins/MixinMooniswap.sol"; import "./mixins/MixinMooniswap.sol";
import "./mixins/MixinMStable.sol"; import "./mixins/MixinMStable.sol";
@@ -53,6 +54,7 @@ contract BridgeAdapter is
MixinDodo, MixinDodo,
MixinDodoV2, MixinDodoV2,
MixinKyber, MixinKyber,
MixinKyberDmm,
MixinMakerPSM, MixinMakerPSM,
MixinMooniswap, MixinMooniswap,
MixinMStable, MixinMStable,
@@ -217,6 +219,12 @@ contract BridgeAdapter is
sellAmount, sellAmount,
order.bridgeData order.bridgeData
); );
} else if (protocolId == BridgeProtocols.KYBERDMM) {
boughtAmount = _tradeKyberDmm(
buyToken,
sellAmount,
order.bridgeData
);
} else { } else {
boughtAmount = _tradeZeroExBridge( boughtAmount = _tradeZeroExBridge(
sellToken, sellToken,

View File

@@ -46,4 +46,5 @@ library BridgeProtocols {
uint128 internal constant MAKERPSM = 16; uint128 internal constant MAKERPSM = 16;
uint128 internal constant BALANCERV2 = 17; uint128 internal constant BALANCERV2 = 17;
uint128 internal constant UNISWAPV3 = 18; uint128 internal constant UNISWAPV3 = 18;
uint128 internal constant KYBERDMM = 19;
} }

View File

@@ -0,0 +1,94 @@
// SPDX-License-Identifier: Apache-2.0
/*
Copyright 2021 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/contracts/src/v06/LibERC20TokenV06.sol";
import "@0x/contracts-erc20/contracts/src/v06/IERC20TokenV06.sol";
import "../IBridgeAdapter.sol";
/*
KyberDmm Router
*/
interface IKyberDmmRouter {
/// @dev Swaps an exact amount of input tokens for as many output tokens as possible, along the route determined by the path.
/// The first element of path is the input token, the last is the output token, and any intermediate elements represent
/// intermediate pairs to trade through (if, for example, a direct pair does not exist).
/// @param amountIn The amount of input tokens to send.
/// @param amountOutMin The minimum amount of output tokens that must be received for the transaction not to revert.
/// @param pools An array of pool addresses. pools.length must be >= 1.
/// @param path An array of token addresses. path.length must be >= 2. Pools for each consecutive pair of addresses must exist and have liquidity.
/// @param to Recipient of the output tokens.
/// @param deadline Unix timestamp after which the transaction will revert.
/// @return amounts The input token amount and all subsequent output token amounts.
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata pools,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
}
contract MixinKyberDmm {
using LibERC20TokenV06 for IERC20TokenV06;
function _tradeKyberDmm(
IERC20TokenV06 buyToken,
uint256 sellAmount,
bytes memory bridgeData
)
internal
returns (uint256 boughtAmount)
{
address router;
address[] memory pools;
address[] memory path;
(router, pools, path) = abi.decode(bridgeData, (address, address[], address[]));
require(pools.length >= 1, "MixinKyberDmm/POOLS_LENGTH_MUST_BE_AT_LEAST_ONE");
require(path.length == pools.length + 1, "MixinKyberDmm/ARRAY_LENGTH_MISMATCH");
require(
path[path.length - 1] == address(buyToken),
"MixinKyberDmm/LAST_ELEMENT_OF_PATH_MUST_MATCH_OUTPUT_TOKEN"
);
// Grant the KyberDmm router an allowance to sell the first token.
IERC20TokenV06(path[0]).approveIfBelow(address(router), sellAmount);
uint[] memory amounts = IKyberDmmRouter(router).swapExactTokensForTokens(
// Sell all tokens we hold.
sellAmount,
// Minimum buy amount.
1,
pools,
// Convert to `buyToken` along this path.
path,
// Recipient is `this`.
address(this),
// Expires after this block.
block.timestamp
);
return amounts[amounts.length-1];
}
}

View File

@@ -31,6 +31,7 @@ interface IMStable {
IERC20TokenV06 sellToken, IERC20TokenV06 sellToken,
IERC20TokenV06 buyToken, IERC20TokenV06 buyToken,
uint256 sellAmount, uint256 sellAmount,
uint256 minBoughtAmount,
address recipient address recipient
) )
external external
@@ -59,6 +60,8 @@ contract MixinMStable {
sellToken, sellToken,
buyToken, buyToken,
sellAmount, sellAmount,
// Minimum buy amount.
1,
address(this) address(this)
); );
} }

View File

@@ -69,7 +69,7 @@ contract MixinUniswapV2 {
assembly { path := _path } assembly { path := _path }
} }
require(path.length >= 2, "MixinUniswapV3/PATH_LENGTH_MUST_BE_AT_LEAST_TWO"); require(path.length >= 2, "MixinUniswapV2/PATH_LENGTH_MUST_BE_AT_LEAST_TWO");
require( require(
path[path.length - 1] == buyToken, path[path.length - 1] == buyToken,
"MixinUniswapV2/LAST_ELEMENT_OF_PATH_MUST_MATCH_OUTPUT_TOKEN" "MixinUniswapV2/LAST_ELEMENT_OF_PATH_MUST_MATCH_OUTPUT_TOKEN"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contracts-zero-ex", "name": "@0x/contracts-zero-ex",
"version": "0.23.0", "version": "0.24.1",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -43,7 +43,7 @@
"config": { "config": {
"publicInterfaceContracts": "IZeroEx,ZeroEx,FullMigration,InitialMigration,IFlashWallet,IERC20Transformer,IOwnableFeature,ISimpleFunctionRegistryFeature,ITransformERC20Feature,FillQuoteTransformer,PayTakerTransformer,PositiveSlippageFeeTransformer,WethTransformer,OwnableFeature,SimpleFunctionRegistryFeature,TransformERC20Feature,AffiliateFeeTransformer,MetaTransactionsFeature,LogMetadataTransformer,BridgeAdapter,LiquidityProviderFeature,ILiquidityProviderFeature,NativeOrdersFeature,INativeOrdersFeature,FeeCollectorController,FeeCollector,CurveLiquidityProvider,BatchFillNativeOrdersFeature,IBatchFillNativeOrdersFeature,MultiplexFeature,IMultiplexFeature", "publicInterfaceContracts": "IZeroEx,ZeroEx,FullMigration,InitialMigration,IFlashWallet,IERC20Transformer,IOwnableFeature,ISimpleFunctionRegistryFeature,ITransformERC20Feature,FillQuoteTransformer,PayTakerTransformer,PositiveSlippageFeeTransformer,WethTransformer,OwnableFeature,SimpleFunctionRegistryFeature,TransformERC20Feature,AffiliateFeeTransformer,MetaTransactionsFeature,LogMetadataTransformer,BridgeAdapter,LiquidityProviderFeature,ILiquidityProviderFeature,NativeOrdersFeature,INativeOrdersFeature,FeeCollectorController,FeeCollector,CurveLiquidityProvider,BatchFillNativeOrdersFeature,IBatchFillNativeOrdersFeature,MultiplexFeature,IMultiplexFeature",
"abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually.", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually.",
"abis": "./test/generated-artifacts/@(AffiliateFeeTransformer|BatchFillNativeOrdersFeature|BootstrapFeature|BridgeAdapter|BridgeProtocols|CurveLiquidityProvider|FeeCollector|FeeCollectorController|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinProtocolFees|FixinReentrancyGuard|FixinTokenSpender|FlashWallet|FullMigration|IBatchFillNativeOrdersFeature|IBootstrapFeature|IBridgeAdapter|IERC20Bridge|IERC20Transformer|IFeature|IFlashWallet|ILiquidityProvider|ILiquidityProviderFeature|ILiquidityProviderSandbox|IMetaTransactionsFeature|IMooniswapPool|IMultiplexFeature|INativeOrdersEvents|INativeOrdersFeature|IOwnableFeature|IPancakeSwapFeature|ISimpleFunctionRegistryFeature|IStaking|ITestSimpleFunctionRegistryFeature|ITokenSpenderFeature|ITransformERC20Feature|IUniswapFeature|IUniswapV2Pair|IZeroEx|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC20Transformer|LibFeeCollector|LibLiquidityProviderRichErrors|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibNativeOrder|LibNativeOrdersRichErrors|LibNativeOrdersStorage|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibReentrancyGuardStorage|LibSignature|LibSignatureRichErrors|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|LiquidityProviderFeature|LiquidityProviderSandbox|LogMetadataTransformer|MetaTransactionsFeature|MixinBalancer|MixinBalancerV2|MixinBancor|MixinCoFiX|MixinCryptoCom|MixinCurve|MixinDodo|MixinDodoV2|MixinKyber|MixinMStable|MixinMakerPSM|MixinMooniswap|MixinNerve|MixinOasis|MixinShell|MixinUniswap|MixinUniswapV2|MixinUniswapV3|MixinZeroExBridge|MooniswapLiquidityProvider|MultiplexFeature|NativeOrdersCancellation|NativeOrdersFeature|NativeOrdersInfo|NativeOrdersProtocolFees|NativeOrdersSettlement|OwnableFeature|PancakeSwapFeature|PayTakerTransformer|PermissionlessTransformerDeployer|PositiveSlippageFeeTransformer|SimpleFunctionRegistryFeature|TestBridge|TestCallTarget|TestCurve|TestDelegateCaller|TestFeeCollectorController|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFixinProtocolFees|TestFixinTokenSpender|TestFullMigration|TestInitialMigration|TestLibNativeOrder|TestLibSignature|TestLiquidityProvider|TestMetaTransactionsNativeOrdersFeature|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC20Token|TestMooniswap|TestNativeOrdersFeature|TestOrderSignerRegistryWithContractWallet|TestPermissionlessTransformerDeployerSuicidal|TestPermissionlessTransformerDeployerTransformer|TestRfqOriginRegistration|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestStaking|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestWeth|TestWethTransformerHost|TestZeroExFeature|TransformERC20Feature|Transformer|TransformerDeployer|UniswapFeature|WethTransformer|ZeroEx|ZeroExOptimized).json" "abis": "./test/generated-artifacts/@(AffiliateFeeTransformer|BatchFillNativeOrdersFeature|BootstrapFeature|BridgeAdapter|BridgeProtocols|CurveLiquidityProvider|FeeCollector|FeeCollectorController|FillQuoteTransformer|FixinCommon|FixinEIP712|FixinProtocolFees|FixinReentrancyGuard|FixinTokenSpender|FlashWallet|FullMigration|IBatchFillNativeOrdersFeature|IBootstrapFeature|IBridgeAdapter|IERC20Bridge|IERC20Transformer|IFeature|IFlashWallet|ILiquidityProvider|ILiquidityProviderFeature|ILiquidityProviderSandbox|IMetaTransactionsFeature|IMooniswapPool|IMultiplexFeature|INativeOrdersEvents|INativeOrdersFeature|IOwnableFeature|IPancakeSwapFeature|ISimpleFunctionRegistryFeature|IStaking|ITestSimpleFunctionRegistryFeature|ITokenSpenderFeature|ITransformERC20Feature|IUniswapFeature|IUniswapV2Pair|IZeroEx|InitialMigration|LibBootstrap|LibCommonRichErrors|LibERC20Transformer|LibFeeCollector|LibLiquidityProviderRichErrors|LibMetaTransactionsRichErrors|LibMetaTransactionsStorage|LibMigrate|LibNativeOrder|LibNativeOrdersRichErrors|LibNativeOrdersStorage|LibOwnableRichErrors|LibOwnableStorage|LibProxyRichErrors|LibProxyStorage|LibReentrancyGuardStorage|LibSignature|LibSignatureRichErrors|LibSimpleFunctionRegistryRichErrors|LibSimpleFunctionRegistryStorage|LibStorage|LibTransformERC20RichErrors|LibTransformERC20Storage|LibWalletRichErrors|LiquidityProviderFeature|LiquidityProviderSandbox|LogMetadataTransformer|MetaTransactionsFeature|MixinBalancer|MixinBalancerV2|MixinBancor|MixinCoFiX|MixinCryptoCom|MixinCurve|MixinDodo|MixinDodoV2|MixinKyber|MixinKyberDmm|MixinMStable|MixinMakerPSM|MixinMooniswap|MixinNerve|MixinOasis|MixinShell|MixinUniswap|MixinUniswapV2|MixinUniswapV3|MixinZeroExBridge|MooniswapLiquidityProvider|MultiplexFeature|NativeOrdersCancellation|NativeOrdersFeature|NativeOrdersInfo|NativeOrdersProtocolFees|NativeOrdersSettlement|OwnableFeature|PancakeSwapFeature|PayTakerTransformer|PermissionlessTransformerDeployer|PositiveSlippageFeeTransformer|SimpleFunctionRegistryFeature|TestBridge|TestCallTarget|TestCurve|TestDelegateCaller|TestFeeCollectorController|TestFillQuoteTransformerBridge|TestFillQuoteTransformerExchange|TestFillQuoteTransformerHost|TestFixinProtocolFees|TestFixinTokenSpender|TestFullMigration|TestInitialMigration|TestLibNativeOrder|TestLibSignature|TestLiquidityProvider|TestMetaTransactionsNativeOrdersFeature|TestMetaTransactionsTransformERC20Feature|TestMigrator|TestMintTokenERC20Transformer|TestMintableERC20Token|TestMooniswap|TestNativeOrdersFeature|TestOrderSignerRegistryWithContractWallet|TestPermissionlessTransformerDeployerSuicidal|TestPermissionlessTransformerDeployerTransformer|TestRfqOriginRegistration|TestSimpleFunctionRegistryFeatureImpl1|TestSimpleFunctionRegistryFeatureImpl2|TestStaking|TestTokenSpenderERC20Token|TestTransformERC20|TestTransformerBase|TestTransformerDeployerTransformer|TestTransformerHost|TestWeth|TestWethTransformerHost|TestZeroExFeature|TransformERC20Feature|Transformer|TransformerDeployer|UniswapFeature|WethTransformer|ZeroEx|ZeroExOptimized).json"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@@ -56,12 +56,12 @@
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/zero-ex", "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/zero-ex",
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",
@@ -83,7 +83,7 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/protocol-utils": "^1.6.0", "@0x/protocol-utils": "^1.6.2",
"@0x/subproviders": "^6.5.3", "@0x/subproviders": "^6.5.3",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",

View File

@@ -84,6 +84,7 @@ import * as MixinCurve from '../test/generated-artifacts/MixinCurve.json';
import * as MixinDodo from '../test/generated-artifacts/MixinDodo.json'; import * as MixinDodo from '../test/generated-artifacts/MixinDodo.json';
import * as MixinDodoV2 from '../test/generated-artifacts/MixinDodoV2.json'; import * as MixinDodoV2 from '../test/generated-artifacts/MixinDodoV2.json';
import * as MixinKyber from '../test/generated-artifacts/MixinKyber.json'; import * as MixinKyber from '../test/generated-artifacts/MixinKyber.json';
import * as MixinKyberDmm from '../test/generated-artifacts/MixinKyberDmm.json';
import * as MixinMakerPSM from '../test/generated-artifacts/MixinMakerPSM.json'; import * as MixinMakerPSM from '../test/generated-artifacts/MixinMakerPSM.json';
import * as MixinMooniswap from '../test/generated-artifacts/MixinMooniswap.json'; import * as MixinMooniswap from '../test/generated-artifacts/MixinMooniswap.json';
import * as MixinMStable from '../test/generated-artifacts/MixinMStable.json'; import * as MixinMStable from '../test/generated-artifacts/MixinMStable.json';
@@ -245,6 +246,7 @@ export const artifacts = {
MixinDodo: MixinDodo as ContractArtifact, MixinDodo: MixinDodo as ContractArtifact,
MixinDodoV2: MixinDodoV2 as ContractArtifact, MixinDodoV2: MixinDodoV2 as ContractArtifact,
MixinKyber: MixinKyber as ContractArtifact, MixinKyber: MixinKyber as ContractArtifact,
MixinKyberDmm: MixinKyberDmm as ContractArtifact,
MixinMStable: MixinMStable as ContractArtifact, MixinMStable: MixinMStable as ContractArtifact,
MixinMakerPSM: MixinMakerPSM as ContractArtifact, MixinMakerPSM: MixinMakerPSM as ContractArtifact,
MixinMooniswap: MixinMooniswap as ContractArtifact, MixinMooniswap: MixinMooniswap as ContractArtifact,

View File

@@ -3,9 +3,14 @@ import { MethodAbi } from 'ethereum-types';
import * as wrappers from '../../src/wrappers'; import * as wrappers from '../../src/wrappers';
// tslint:disable:no-string-literal
blockchainTests('Selector collision test', env => { blockchainTests('Selector collision test', env => {
it('Function selectors do not collide', () => { it('Function selectors do not collide', () => {
const selectorToSignature: { [selector: string]: string } = {}; const selectorToSignature: { [selector: string]: string } = {};
selectorToSignature['bca8c7b5'] = 'executeCall(address,bytes)'; // legacy allowance target
selectorToSignature['a9059cbb'] = 'transfer(address,uint256)'; // ERC20Token transfer
selectorToSignature['23b872dd'] = 'transferFrom(address,address,uint256)'; // ERC20Token transferFrom
for (const wrapper of Object.values(wrappers)) { for (const wrapper of Object.values(wrappers)) {
if (typeof wrapper === 'function') { if (typeof wrapper === 'function') {
const contract = new wrapper(constants.NULL_ADDRESS, env.provider, env.txDefaults); const contract = new wrapper(constants.NULL_ADDRESS, env.provider, env.txDefaults);

View File

@@ -82,6 +82,7 @@ export * from '../test/generated-wrappers/mixin_curve';
export * from '../test/generated-wrappers/mixin_dodo'; export * from '../test/generated-wrappers/mixin_dodo';
export * from '../test/generated-wrappers/mixin_dodo_v2'; export * from '../test/generated-wrappers/mixin_dodo_v2';
export * from '../test/generated-wrappers/mixin_kyber'; export * from '../test/generated-wrappers/mixin_kyber';
export * from '../test/generated-wrappers/mixin_kyber_dmm';
export * from '../test/generated-wrappers/mixin_m_stable'; export * from '../test/generated-wrappers/mixin_m_stable';
export * from '../test/generated-wrappers/mixin_maker_p_s_m'; export * from '../test/generated-wrappers/mixin_maker_p_s_m';
export * from '../test/generated-wrappers/mixin_mooniswap'; export * from '../test/generated-wrappers/mixin_mooniswap';

View File

@@ -113,6 +113,7 @@
"test/generated-artifacts/MixinDodo.json", "test/generated-artifacts/MixinDodo.json",
"test/generated-artifacts/MixinDodoV2.json", "test/generated-artifacts/MixinDodoV2.json",
"test/generated-artifacts/MixinKyber.json", "test/generated-artifacts/MixinKyber.json",
"test/generated-artifacts/MixinKyberDmm.json",
"test/generated-artifacts/MixinMStable.json", "test/generated-artifacts/MixinMStable.json",
"test/generated-artifacts/MixinMakerPSM.json", "test/generated-artifacts/MixinMakerPSM.json",
"test/generated-artifacts/MixinMooniswap.json", "test/generated-artifacts/MixinMooniswap.json",

View File

@@ -10,7 +10,7 @@
], ],
"scripts": { "scripts": {
"deps_versions:ci": "node ./node_modules/@0x/monorepo-scripts/lib/deps_versions.js", "deps_versions:ci": "node ./node_modules/@0x/monorepo-scripts/lib/deps_versions.js",
"fix": "wsrun --fast-exit --parallel --exclude-missing -c fix $PKG", "fix": "wsrun --fast-exit --parallel --exclude-missing -p $PKG -c fix",
"ganache": "ganache-cli -p 8545 --gasLimit 10000000 --networkId 50 -m \"${npm_package_config_mnemonic}\"", "ganache": "ganache-cli -p 8545 --gasLimit 10000000 --networkId 50 -m \"${npm_package_config_mnemonic}\"",
"prettier": "prettier --write '**/*.{ts,tsx,json,md}' --config .prettierrc", "prettier": "prettier --write '**/*.{ts,tsx,json,md}' --config .prettierrc",
"prettier:ci": "prettier --list-different '**/*.{ts,tsx,json,md}' --config .prettierrc", "prettier:ci": "prettier --list-different '**/*.{ts,tsx,json,md}' --config .prettierrc",
@@ -27,17 +27,17 @@
"install:all": "yarn install", "install:all": "yarn install",
"wsrun": "wsrun", "wsrun": "wsrun",
"lerna": "lerna", "lerna": "lerna",
"build": "lerna link && wsrun -r --stages --fast-exit --exclude-missing -c build $PKG", "build": "lerna link && wsrun -r --stages --fast-exit --exclude-missing -p $PKG -c build",
"build:ci": "lerna link && wsrun --fast-exit -r --stages --exclude-missing -c build:ci $PKG", "build:ci": "lerna link && wsrun --fast-exit -r --stages --exclude-missing -p $PKG -c build:ci",
"build:contracts": "lerna link && wsrun -p ${npm_package_config_contractsPackages} --fast-exit -r --stages --exclude-missing -c build", "build:contracts": "lerna link && wsrun -p ${npm_package_config_contractsPackages} --fast-exit -r --stages --exclude-missing -c build",
"build:ts": "tsc -b", "build:ts": "tsc -b",
"watch:ts": "tsc -b -w", "watch:ts": "tsc -b -w",
"clean": "wsrun --fast-exit -r --parallel --exclude-missing clean -c $PKG", "clean": "wsrun --fast-exit -r --parallel --exclude-missing -p $PKG -c clean",
"contracts:watch": "wsrun --parallel --exclude-missing watch -c $PKG", "contracts:watch": "wsrun --parallel --exclude-missing -p $PKG -c watch",
"remove_node_modules": "lerna clean --yes; rm -rf node_modules", "remove_node_modules": "lerna clean --yes; rm -rf node_modules",
"rebuild": "run-s clean build", "rebuild": "run-s clean build",
"test": "wsrun --fast-exit --serial --exclude-missing -p $(echo $(echo ${npm_package_config_contractsPackages} ${npm_package_config_nonContractPackages} | tr ' ' '\n' | sort | uniq) ${npm_package_config_ignoreTestsForPackages} | tr ' ' '\n' | sort | uniq -u | tr '\n' ' ') -c test", "test": "wsrun --fast-exit --serial --exclude-missing -p $(echo $(echo ${npm_package_config_contractsPackages} ${npm_package_config_nonContractPackages} | tr ' ' '\n' | sort | uniq) ${npm_package_config_ignoreTestsForPackages} | tr ' ' '\n' | sort | uniq -u | tr '\n' ' ') -c test",
"test:all": "wsrun --fast-exit --serial --exclude-missing -c test $PKG", "test:all": "wsrun --fast-exit --serial --exclude-missing -p $PKG -c test",
"test:contracts": "wsrun --serial -p $(echo ${npm_package_config_contractsPackages} ${npm_package_config_ignoreTestsForPackages} | tr ' ' '\n' | sort | uniq -u | tr '\n' ' ') --fast-exit --exclude-missing -c test", "test:contracts": "wsrun --serial -p $(echo ${npm_package_config_contractsPackages} ${npm_package_config_ignoreTestsForPackages} | tr ' ' '\n' | sort | uniq -u | tr '\n' ' ') --fast-exit --exclude-missing -c test",
"test:contracts:all": "wsrun --serial -p ${npm_package_config_contractsPackages} --fast-exit --exclude-missing -c test", "test:contracts:all": "wsrun --serial -p ${npm_package_config_contractsPackages} --fast-exit --exclude-missing -c test",
"generate_doc": "node ./node_modules/@0x/monorepo-scripts/lib/doc_generate.js --config ./doc-gen-config.json", "generate_doc": "node ./node_modules/@0x/monorepo-scripts/lib/doc_generate.js --config ./doc-gen-config.json",
@@ -45,7 +45,7 @@
"diff_md_docs:ci": "wsrun --exclude-missing -c diff_docs", "diff_md_docs:ci": "wsrun --exclude-missing -c diff_docs",
"test:generate_docs:circleci": "for i in ${npm_package_config_packagesWithDocPages}; do yarn generate_doc --package $i || break -1; done;", "test:generate_docs:circleci": "for i in ${npm_package_config_packagesWithDocPages}; do yarn generate_doc --package $i || break -1; done;",
"bundlewatch": "bundlewatch", "bundlewatch": "bundlewatch",
"lint": "wsrun --fast-exit --parallel --exclude-missing -c lint $PKG", "lint": "wsrun --fast-exit --parallel --exclude-missing -p $PKG -c lint",
"upgrade_org_deps": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js -p '@0x|ethereum-types'", "upgrade_org_deps": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js -p '@0x|ethereum-types'",
"upgrade_deps": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js", "upgrade_deps": "node node_modules/@0x/monorepo-scripts/lib/upgrade_deps.js",
"verdaccio": "docker run --rm -i -p 4873:4873 0xorg/verdaccio" "verdaccio": "docker run --rm -i -p 4873:4873 0xorg/verdaccio"

View File

@@ -1,4 +1,35 @@
[ [
{
"version": "6.16.0",
"changes": [
{
"note": "Add support for the Polygon chain",
"pr": 240
}
],
"timestamp": 1621944788
},
{
"version": "6.15.0",
"changes": [
{
"note": "Fix KyberDmm",
"pr": 236
},
{
"note": "Re-enable KyberDmm",
"pr": 247
},
{
"note": "Add Huobi Token to liquidity provider tokens",
"pr": 246
},
{
"note": "Temporarily disable specific LiquidityProvider"
}
],
"timestamp": 1621600614
},
{ {
"version": "6.14.0", "version": "6.14.0",
"changes": [ "changes": [

View File

@@ -5,6 +5,17 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v6.16.0 - _May 25, 2021_
* Add support for the Polygon chain (#240)
## v6.15.0 - _May 21, 2021_
* Fix KyberDmm (#236)
* Re-enable KyberDmm (#247)
* Add Huobi Token to liquidity provider tokens (#246)
* Temporarily disable specific LiquidityProvider
## v6.14.0 - _May 12, 2021_ ## v6.14.0 - _May 12, 2021_
* Add support for additional sources and intermediate tokens on Ropsten (#231) * Add support for additional sources and intermediate tokens on Ropsten (#231)

View File

@@ -28,6 +28,7 @@ import "./DODOSampler.sol";
import "./DODOV2Sampler.sol"; import "./DODOV2Sampler.sol";
import "./Eth2DaiSampler.sol"; import "./Eth2DaiSampler.sol";
import "./KyberSampler.sol"; import "./KyberSampler.sol";
import "./KyberDmmSampler.sol";
import "./LiquidityProviderSampler.sol"; import "./LiquidityProviderSampler.sol";
import "./MakerPSMSampler.sol"; import "./MakerPSMSampler.sol";
import "./MultiBridgeSampler.sol"; import "./MultiBridgeSampler.sol";
@@ -52,6 +53,7 @@ contract ERC20BridgeSampler is
DODOV2Sampler, DODOV2Sampler,
Eth2DaiSampler, Eth2DaiSampler,
KyberSampler, KyberSampler,
KyberDmmSampler,
LiquidityProviderSampler, LiquidityProviderSampler,
MakerPSMSampler, MakerPSMSampler,
MStableSampler, MStableSampler,

View File

@@ -0,0 +1,159 @@
// SPDX-License-Identifier: Apache-2.0
/*
Copyright 2020 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;
pragma experimental ABIEncoderV2;
interface IKyberDmmFactory {
function getPoolAtIndex(address token0, address token1, uint256 index)
external
view
returns (address);
}
interface IKyberDmmRouter {
function factory() external view returns (address);
function getAmountsOut(uint256 amountIn, address[] calldata pools, address[] calldata path)
external
view
returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata pools, address[] calldata path)
external
view
returns (uint256[] memory amounts);
}
contract KyberDmmSampler
{
/// @dev Gas limit for KyberDmm calls.
uint256 constant private KYBER_DMM_CALL_GAS = 150e3; // 150k
/// @dev Sample sell quotes from KyberDmm.
/// @param router Router to look up tokens and amounts
/// @param path Token route. Should be takerToken -> makerToken
/// @param takerTokenAmounts Taker token sell amount for each sample.
/// @return pools The pool addresses involved in the multi path trade
/// @return makerTokenAmounts Maker amounts bought at each taker token
/// amount.
function sampleSellsFromKyberDmm(
address router,
address[] memory path,
uint256[] memory takerTokenAmounts
)
public
view
returns (address[] memory pools, uint256[] memory makerTokenAmounts)
{
uint256 numSamples = takerTokenAmounts.length;
makerTokenAmounts = new uint256[](numSamples);
pools = _getKyberDmmPools(router, path);
if (pools.length == 0) {
return (pools, makerTokenAmounts);
}
for (uint256 i = 0; i < numSamples; i++) {
try
IKyberDmmRouter(router).getAmountsOut
{gas: KYBER_DMM_CALL_GAS}
(takerTokenAmounts[i], pools, path)
returns (uint256[] memory amounts)
{
makerTokenAmounts[i] = amounts[path.length - 1];
// Break early if there are 0 amounts
if (makerTokenAmounts[i] == 0) {
break;
}
} catch (bytes memory) {
// Swallow failures, leaving all results as zero.
break;
}
}
}
/// @dev Sample buy quotes from KyberDmm.
/// @param router Router to look up tokens and amounts
/// @param path Token route. Should be takerToken -> makerToken.
/// @param makerTokenAmounts Maker token buy amount for each sample.
/// @return pools The pool addresses involved in the multi path trade
/// @return takerTokenAmounts Taker amounts sold at each maker token
/// amount.
function sampleBuysFromKyberDmm(
address router,
address[] memory path,
uint256[] memory makerTokenAmounts
)
public
view
returns (address[] memory pools, uint256[] memory takerTokenAmounts)
{
uint256 numSamples = makerTokenAmounts.length;
takerTokenAmounts = new uint256[](numSamples);
pools = _getKyberDmmPools(router, path);
if (pools.length == 0) {
return (pools, takerTokenAmounts);
}
for (uint256 i = 0; i < numSamples; i++) {
try
IKyberDmmRouter(router).getAmountsIn
{gas: KYBER_DMM_CALL_GAS}
(makerTokenAmounts[i], pools, path)
returns (uint256[] memory amounts)
{
takerTokenAmounts[i] = amounts[0];
// Break early if there are 0 amounts
if (takerTokenAmounts[i] == 0) {
break;
}
} catch (bytes memory) {
// Swallow failures, leaving all results as zero.
break;
}
}
}
function _getKyberDmmPools(
address router,
address[] memory path
)
private
view
returns (address[] memory pools)
{
pools = new address[](path.length - 1);
IKyberDmmFactory factory = IKyberDmmFactory(IKyberDmmRouter(router).factory());
for (uint256 i = 0; i < pools.length; i++) {
// Currently only supporting the first pool found at the index
try
factory.getPoolAtIndex
{gas: KYBER_DMM_CALL_GAS}
(path[i], path[i + 1], 0)
returns (address pool)
{
pools[i] = pool;
} catch (bytes memory) {
return new address[](0);
}
}
}
}

View File

@@ -49,6 +49,7 @@ contract MStableSampler is
view view
returns (uint256[] memory makerTokenAmounts) returns (uint256[] memory makerTokenAmounts)
{ {
_assertValidPair(makerToken, takerToken);
// Initialize array of maker token amounts. // Initialize array of maker token amounts.
uint256 numSamples = takerTokenAmounts.length; uint256 numSamples = takerTokenAmounts.length;
makerTokenAmounts = new uint256[](numSamples); makerTokenAmounts = new uint256[](numSamples);
@@ -58,7 +59,7 @@ contract MStableSampler is
IMStable(router).getSwapOutput IMStable(router).getSwapOutput
{gas: DEFAULT_CALL_GAS} {gas: DEFAULT_CALL_GAS}
(takerToken, makerToken, takerTokenAmounts[i]) (takerToken, makerToken, takerTokenAmounts[i])
returns (bool, string memory, uint256 amount) returns (uint256 amount)
{ {
makerTokenAmounts[i] = amount; makerTokenAmounts[i] = amount;
// Break early if there are 0 amounts // Break early if there are 0 amounts

View File

@@ -29,5 +29,5 @@ interface IMStable {
) )
external external
view view
returns (bool, string memory, uint256 output); returns (uint256 swapOutput);
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/asset-swapper", "name": "@0x/asset-swapper",
"version": "6.14.0", "version": "6.16.0",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -39,7 +39,7 @@
"config": { "config": {
"publicInterfaceContracts": "ERC20BridgeSampler,BalanceChecker,FakeTaker", "publicInterfaceContracts": "ERC20BridgeSampler,BalanceChecker,FakeTaker",
"abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually.", "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually.",
"abis": "./test/generated-artifacts/@(ApproximateBuys|BalanceChecker|BalancerSampler|BalancerV2Sampler|BancorSampler|CurveSampler|DODOSampler|DODOV2Sampler|DummyLiquidityProvider|ERC20BridgeSampler|Eth2DaiSampler|FakeTaker|IBalancer|IBancor|ICurve|IEth2Dai|IKyberNetwork|IMStable|IMooniswap|IMultiBridge|IShell|ISmoothy|IUniswapExchangeQuotes|IUniswapV2Router01|KyberSampler|LiquidityProviderSampler|MStableSampler|MakerPSMSampler|MooniswapSampler|MultiBridgeSampler|NativeOrderSampler|SamplerUtils|ShellSampler|SmoothySampler|TestERC20BridgeSampler|TestNativeOrderSampler|TwoHopSampler|UniswapSampler|UniswapV2Sampler|UniswapV3Sampler|UtilitySampler).json", "abis": "./test/generated-artifacts/@(ApproximateBuys|BalanceChecker|BalancerSampler|BalancerV2Sampler|BancorSampler|CurveSampler|DODOSampler|DODOV2Sampler|DummyLiquidityProvider|ERC20BridgeSampler|Eth2DaiSampler|FakeTaker|IBalancer|IBancor|ICurve|IEth2Dai|IKyberNetwork|IMStable|IMooniswap|IMultiBridge|IShell|ISmoothy|IUniswapExchangeQuotes|IUniswapV2Router01|KyberDmmSampler|KyberSampler|LiquidityProviderSampler|MStableSampler|MakerPSMSampler|MooniswapSampler|MultiBridgeSampler|NativeOrderSampler|SamplerUtils|ShellSampler|SmoothySampler|TestERC20BridgeSampler|TestNativeOrderSampler|TwoHopSampler|UniswapSampler|UniswapV2Sampler|UniswapV3Sampler|UtilitySampler).json",
"postpublish": { "postpublish": {
"assets": [] "assets": []
} }
@@ -60,13 +60,13 @@
"dependencies": { "dependencies": {
"@0x/assert": "^3.0.27", "@0x/assert": "^3.0.27",
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contract-wrappers": "^13.16.1", "@0x/contract-wrappers": "^13.16.3",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-zero-ex": "^0.23.0", "@0x/contracts-zero-ex": "^0.24.1",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/json-schemas": "^6.1.3", "@0x/json-schemas": "^6.1.3",
"@0x/protocol-utils": "^1.6.0", "@0x/protocol-utils": "^1.6.2",
"@0x/quote-server": "^6.0.2", "@0x/quote-server": "^6.0.2",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",
@@ -93,14 +93,14 @@
}, },
"devDependencies": { "devDependencies": {
"@0x/abi-gen": "^5.6.0", "@0x/abi-gen": "^5.6.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-exchange": "^3.2.30", "@0x/contracts-exchange": "^3.2.32",
"@0x/contracts-exchange-libs": "^4.3.29", "@0x/contracts-exchange-libs": "^4.3.31",
"@0x/contracts-gen": "^2.0.38", "@0x/contracts-gen": "^2.0.38",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/mesh-rpc-client": "^9.4.2", "@0x/mesh-rpc-client": "^9.4.2",
"@0x/migrations": "^8.0.6", "@0x/migrations": "^8.0.8",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/subproviders": "^6.5.3", "@0x/subproviders": "^6.5.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",

View File

@@ -125,7 +125,7 @@ export class SwapQuoter {
{ block: BlockParamLiteral.Latest, overrides: defaultCodeOverrides }, { block: BlockParamLiteral.Latest, overrides: defaultCodeOverrides },
options.samplerOverrides, options.samplerOverrides,
); );
const fastAbi = new FastABI(ERC20BridgeSamplerContract.ABI() as MethodAbi[]); const fastAbi = new FastABI(ERC20BridgeSamplerContract.ABI() as MethodAbi[], { BigNumber });
const samplerContract = new ERC20BridgeSamplerContract( const samplerContract = new ERC20BridgeSamplerContract(
samplerAddress, samplerAddress,
this.provider, this.provider,

View File

@@ -7,20 +7,24 @@ import {
BELT_BSC_INFOS, BELT_BSC_INFOS,
CAFESWAP_ROUTER_BY_CHAIN_ID, CAFESWAP_ROUTER_BY_CHAIN_ID,
CHEESESWAP_ROUTER_BY_CHAIN_ID, CHEESESWAP_ROUTER_BY_CHAIN_ID,
COMETHSWAP_ROUTER_BY_CHAIN_ID,
COMPONENT_POOLS_BY_CHAIN_ID, COMPONENT_POOLS_BY_CHAIN_ID,
CRYPTO_COM_ROUTER_BY_CHAIN_ID, CRYPTO_COM_ROUTER_BY_CHAIN_ID,
CURVE_MAINNET_INFOS, CURVE_MAINNET_INFOS,
CURVE_POLYGON_INFOS,
DFYN_ROUTER_BY_CHAIN_ID,
ELLIPSIS_BSC_INFOS, ELLIPSIS_BSC_INFOS,
JULSWAP_ROUTER_BY_CHAIN_ID, JULSWAP_ROUTER_BY_CHAIN_ID,
KYBER_BANNED_RESERVES, KYBER_BANNED_RESERVES,
KYBER_BRIDGED_LIQUIDITY_PREFIX, KYBER_BRIDGED_LIQUIDITY_PREFIX,
KYBER_DMM_ROUTER_BY_CHAIN_ID,
MAX_DODOV2_POOLS_QUERIED, MAX_DODOV2_POOLS_QUERIED,
MAX_KYBER_RESERVES_QUERIED, MAX_KYBER_RESERVES_QUERIED,
MSTABLE_POOLS_BY_CHAIN_ID,
NERVE_BSC_INFOS, NERVE_BSC_INFOS,
NULL_ADDRESS, NULL_ADDRESS,
PANCAKESWAP_ROUTER_BY_CHAIN_ID, PANCAKESWAP_ROUTER_BY_CHAIN_ID,
PANCAKESWAPV2_ROUTER_BY_CHAIN_ID, PANCAKESWAPV2_ROUTER_BY_CHAIN_ID,
QUICKSWAP_ROUTER_BY_CHAIN_ID,
SADDLE_MAINNET_INFOS, SADDLE_MAINNET_INFOS,
SHELL_POOLS_BY_CHAIN_ID, SHELL_POOLS_BY_CHAIN_ID,
SMOOTHY_BSC_INFOS, SMOOTHY_BSC_INFOS,
@@ -87,17 +91,41 @@ export function getComponentForPair(chainId: ChainId, takerToken: string, makerT
} }
// tslint:disable completed-docs // tslint:disable completed-docs
export function getCurveInfosForPair(chainId: ChainId, takerToken: string, makerToken: string): CurveInfo[] { export function getMStableForPair(chainId: ChainId, takerToken: string, makerToken: string): string[] {
if (chainId !== ChainId.Mainnet) { if (chainId !== ChainId.Mainnet && chainId !== ChainId.Polygon) {
return []; return [];
} }
return Object.values(CURVE_MAINNET_INFOS).filter(c => return Object.values(MSTABLE_POOLS_BY_CHAIN_ID[chainId])
[makerToken, takerToken].every( .filter(c => [makerToken, takerToken].every(t => c.tokens.includes(t)))
t => .map(i => i.poolAddress);
(c.tokens.includes(t) && c.metaToken === undefined) || }
(c.tokens.includes(t) && c.metaToken !== undefined && [makerToken, takerToken].includes(c.metaToken)),
), // tslint:disable completed-docs
); export function getCurveInfosForPair(chainId: ChainId, takerToken: string, makerToken: string): CurveInfo[] {
switch (chainId) {
case ChainId.Mainnet:
return Object.values(CURVE_MAINNET_INFOS).filter(c =>
[makerToken, takerToken].every(
t =>
(c.tokens.includes(t) && c.metaToken === undefined) ||
(c.tokens.includes(t) &&
c.metaToken !== undefined &&
[makerToken, takerToken].includes(c.metaToken)),
),
);
case ChainId.Polygon:
return Object.values(CURVE_POLYGON_INFOS).filter(c =>
[makerToken, takerToken].every(
t =>
(c.tokens.includes(t) && c.metaToken === undefined) ||
(c.tokens.includes(t) &&
c.metaToken !== undefined &&
[makerToken, takerToken].includes(c.metaToken)),
),
);
default:
return [];
}
} }
export function getSwerveInfosForPair(chainId: ChainId, takerToken: string, makerToken: string): CurveInfo[] { export function getSwerveInfosForPair(chainId: ChainId, takerToken: string, makerToken: string): CurveInfo[] {
@@ -221,13 +249,15 @@ export function getShellLikeInfosForPair(
chainId: ChainId, chainId: ChainId,
takerToken: string, takerToken: string,
makerToken: string, makerToken: string,
source: ERC20BridgeSource.Shell | ERC20BridgeSource.Component, source: ERC20BridgeSource.Shell | ERC20BridgeSource.Component | ERC20BridgeSource.MStable,
): string[] { ): string[] {
switch (source) { switch (source) {
case ERC20BridgeSource.Shell: case ERC20BridgeSource.Shell:
return getShellsForPair(chainId, takerToken, makerToken); return getShellsForPair(chainId, takerToken, makerToken);
case ERC20BridgeSource.Component: case ERC20BridgeSource.Component:
return getComponentForPair(chainId, takerToken, makerToken); return getComponentForPair(chainId, takerToken, makerToken);
case ERC20BridgeSource.MStable:
return getMStableForPair(chainId, takerToken, makerToken);
default: default:
throw new Error(`Unknown Shell like source ${source}`); throw new Error(`Unknown Shell like source ${source}`);
} }
@@ -301,11 +331,13 @@ export function uniswapV2LikeRouterAddress(
| ERC20BridgeSource.PancakeSwap | ERC20BridgeSource.PancakeSwap
| ERC20BridgeSource.PancakeSwapV2 | ERC20BridgeSource.PancakeSwapV2
| ERC20BridgeSource.BakerySwap | ERC20BridgeSource.BakerySwap
| ERC20BridgeSource.KyberDmm
| ERC20BridgeSource.ApeSwap | ERC20BridgeSource.ApeSwap
| ERC20BridgeSource.CafeSwap | ERC20BridgeSource.CafeSwap
| ERC20BridgeSource.CheeseSwap | ERC20BridgeSource.CheeseSwap
| ERC20BridgeSource.JulSwap, | ERC20BridgeSource.JulSwap
| ERC20BridgeSource.QuickSwap
| ERC20BridgeSource.ComethSwap
| ERC20BridgeSource.Dfyn,
): string { ): string {
switch (source) { switch (source) {
case ERC20BridgeSource.UniswapV2: case ERC20BridgeSource.UniswapV2:
@@ -320,8 +352,6 @@ export function uniswapV2LikeRouterAddress(
return PANCAKESWAPV2_ROUTER_BY_CHAIN_ID[chainId]; return PANCAKESWAPV2_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.BakerySwap: case ERC20BridgeSource.BakerySwap:
return BAKERYSWAP_ROUTER_BY_CHAIN_ID[chainId]; return BAKERYSWAP_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.KyberDmm:
return KYBER_DMM_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.ApeSwap: case ERC20BridgeSource.ApeSwap:
return APESWAP_ROUTER_BY_CHAIN_ID[chainId]; return APESWAP_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.CafeSwap: case ERC20BridgeSource.CafeSwap:
@@ -330,6 +360,12 @@ export function uniswapV2LikeRouterAddress(
return CHEESESWAP_ROUTER_BY_CHAIN_ID[chainId]; return CHEESESWAP_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.JulSwap: case ERC20BridgeSource.JulSwap:
return JULSWAP_ROUTER_BY_CHAIN_ID[chainId]; return JULSWAP_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.QuickSwap:
return QUICKSWAP_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.ComethSwap:
return COMETHSWAP_ROUTER_BY_CHAIN_ID[chainId];
case ERC20BridgeSource.Dfyn:
return DFYN_ROUTER_BY_CHAIN_ID[chainId];
default: default:
throw new Error(`Unknown UniswapV2 like source ${source}`); throw new Error(`Unknown UniswapV2 like source ${source}`);
} }

View File

@@ -43,6 +43,7 @@ export const NULL_ADDRESS = '0x0000000000000000000000000000000000000000';
export const SAMPLER_ADDRESS = '0x5555555555555555555555555555555555555555'; export const SAMPLER_ADDRESS = '0x5555555555555555555555555555555555555555';
export const COMPARISON_PRICE_DECIMALS = 10; export const COMPARISON_PRICE_DECIMALS = 10;
// TODO(kimpers): Consolidate this implementation with the one in @0x/token-metadata
function valueByChainId<T>(rest: Partial<{ [key in ChainId]: T }>, defaultValue: T): { [key in ChainId]: T } { function valueByChainId<T>(rest: Partial<{ [key in ChainId]: T }>, defaultValue: T): { [key in ChainId]: T } {
// TODO I don't like this but iterating through enums is weird // TODO I don't like this but iterating through enums is weird
return { return {
@@ -52,6 +53,8 @@ function valueByChainId<T>(rest: Partial<{ [key in ChainId]: T }>, defaultValue:
[ChainId.Kovan]: defaultValue, [ChainId.Kovan]: defaultValue,
[ChainId.Ganache]: defaultValue, [ChainId.Ganache]: defaultValue,
[ChainId.BSC]: defaultValue, [ChainId.BSC]: defaultValue,
[ChainId.Polygon]: defaultValue,
[ChainId.PolygonMumbai]: defaultValue,
...(rest || {}), ...(rest || {}),
}; };
} }
@@ -124,8 +127,17 @@ export const SELL_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
ERC20BridgeSource.JulSwap, ERC20BridgeSource.JulSwap,
ERC20BridgeSource.LiquidityProvider, ERC20BridgeSource.LiquidityProvider,
]), ]),
[ChainId.Polygon]: new SourceFilters([
ERC20BridgeSource.SushiSwap,
ERC20BridgeSource.QuickSwap,
ERC20BridgeSource.ComethSwap,
ERC20BridgeSource.Dfyn,
ERC20BridgeSource.MStable,
ERC20BridgeSource.Curve,
ERC20BridgeSource.DodoV2,
ERC20BridgeSource.Dodo,
]),
}, },
new SourceFilters([]), new SourceFilters([]),
); );
@@ -197,6 +209,16 @@ export const BUY_SOURCE_FILTER_BY_CHAIN_ID = valueByChainId<SourceFilters>(
ERC20BridgeSource.JulSwap, ERC20BridgeSource.JulSwap,
ERC20BridgeSource.LiquidityProvider, ERC20BridgeSource.LiquidityProvider,
]), ]),
[ChainId.Polygon]: new SourceFilters([
ERC20BridgeSource.SushiSwap,
ERC20BridgeSource.QuickSwap,
ERC20BridgeSource.ComethSwap,
ERC20BridgeSource.Dfyn,
ERC20BridgeSource.MStable,
ERC20BridgeSource.Curve,
ERC20BridgeSource.DodoV2,
ERC20BridgeSource.Dodo,
]),
}, },
new SourceFilters([]), new SourceFilters([]),
); );
@@ -214,6 +236,7 @@ export const FEE_QUOTE_SOURCES_BY_CHAIN_ID = valueByChainId<ERC20BridgeSource[]>
[ChainId.Mainnet]: [ERC20BridgeSource.UniswapV2, ERC20BridgeSource.SushiSwap], [ChainId.Mainnet]: [ERC20BridgeSource.UniswapV2, ERC20BridgeSource.SushiSwap],
[ChainId.BSC]: [ERC20BridgeSource.PancakeSwap, ERC20BridgeSource.Mooniswap, ERC20BridgeSource.SushiSwap], [ChainId.BSC]: [ERC20BridgeSource.PancakeSwap, ERC20BridgeSource.Mooniswap, ERC20BridgeSource.SushiSwap],
[ChainId.Ropsten]: [ERC20BridgeSource.UniswapV2, ERC20BridgeSource.SushiSwap], [ChainId.Ropsten]: [ERC20BridgeSource.UniswapV2, ERC20BridgeSource.SushiSwap],
[ChainId.Polygon]: [ERC20BridgeSource.QuickSwap, ERC20BridgeSource.SushiSwap],
}, },
[], [],
); );
@@ -301,6 +324,7 @@ export const MAINNET_TOKENS = {
crETH: '0xcbc1065255cbc3ab41a6868c22d1f1c573ab89fd', crETH: '0xcbc1065255cbc3ab41a6868c22d1f1c573ab89fd',
ankrETH: '0xe95a203b1a91a908f9b9ce46459d101078c2c3cb', ankrETH: '0xe95a203b1a91a908f9b9ce46459d101078c2c3cb',
vETH: '0x898bad2774eb97cf6b94605677f43b41871410b1', vETH: '0x898bad2774eb97cf6b94605677f43b41871410b1',
HT: '0x6f259637dcD74C767781E37Bc6133cd6A68aa161',
// Mirror Protocol // Mirror Protocol
UST: '0xa47c8bf37f92abed4a126bda807a7b7498661acd', UST: '0xa47c8bf37f92abed4a126bda807a7b7498661acd',
MIR: '0x09a3ecafa817268f77be1283176b946c4ff2e608', MIR: '0x09a3ecafa817268f77be1283176b946c4ff2e608',
@@ -321,6 +345,18 @@ export const BSC_TOKENS = {
UST: '0x23396cf899ca06c4472205fc903bdb4de249d6fc', UST: '0x23396cf899ca06c4472205fc903bdb4de249d6fc',
}; };
export const POLYGON_TOKENS = {
DAI: '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063',
USDC: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
USDT: '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
amDAI: '0x27f8d03b3a2196956ed754badc28d73be8830a6e',
amUSDC: '0x1a13f4ca1d028320a707d99520abfefca3998b7f',
amUSDT: '0x60d55f02a771d515e077c9c2403a1ef324885cec',
WBTC: '0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6',
WMATIC: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270',
WETH: '0x7ceb23fd6bc0add59e62ac25578270cff1b9f619',
};
export const CURVE_POOLS = { export const CURVE_POOLS = {
compound: '0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56', // 0.Compound compound: '0xa2b47e3d5c44877cca798226b7b8118f9bfb7a56', // 0.Compound
// 1.USDT is dead // 1.USDT is dead
@@ -363,6 +399,10 @@ export const CURVE_POOLS = {
BUSD: '0x4807862aa8b2bf68830e4c8dc86d0e9a998e085a', BUSD: '0x4807862aa8b2bf68830e4c8dc86d0e9a998e085a',
}; };
export const CURVE_POLYGON_POOLS = {
aave: '0x445fe580ef8d70ff569ab36e80c647af338db351',
};
export const SWERVE_POOLS = { export const SWERVE_POOLS = {
y: '0x329239599afb305da0a2ec69c58f8a6697f9f88d', y: '0x329239599afb305da0a2ec69c58f8a6697f9f88d',
}; };
@@ -425,6 +465,14 @@ export const DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID = valueByChainId<string[]>(
'0xad6d458402f60fd3bd25163575031acdce07538d', // DAI '0xad6d458402f60fd3bd25163575031acdce07538d', // DAI
'0x07865c6e87b9f70255377e024ace6630c1eaa37f', // USDC '0x07865c6e87b9f70255377e024ace6630c1eaa37f', // USDC
], ],
[ChainId.Polygon]: [
POLYGON_TOKENS.WMATIC,
POLYGON_TOKENS.WETH,
POLYGON_TOKENS.USDC,
POLYGON_TOKENS.DAI,
POLYGON_TOKENS.USDT,
POLYGON_TOKENS.WBTC,
],
}, },
[], [],
); );
@@ -447,6 +495,9 @@ export const DEFAULT_TOKEN_ADJACENCY_GRAPH_BY_CHAIN_ID = valueByChainId<TokenAdj
[ChainId.BSC]: new TokenAdjacencyGraphBuilder({ [ChainId.BSC]: new TokenAdjacencyGraphBuilder({
default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.BSC], default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.BSC],
}).build(), }).build(),
[ChainId.Polygon]: new TokenAdjacencyGraphBuilder({
default: DEFAULT_INTERMEDIATE_TOKENS_BY_CHAIN_ID[ChainId.Polygon],
}).build(),
}, },
new TokenAdjacencyGraphBuilder({ default: [] }).build(), new TokenAdjacencyGraphBuilder({ default: [] }).build(),
); );
@@ -459,6 +510,7 @@ export const NATIVE_FEE_TOKEN_BY_CHAIN_ID = valueByChainId<string>(
[ChainId.Ropsten]: getContractAddressesForChainOrThrow(ChainId.Ropsten).etherToken, [ChainId.Ropsten]: getContractAddressesForChainOrThrow(ChainId.Ropsten).etherToken,
[ChainId.Rinkeby]: getContractAddressesForChainOrThrow(ChainId.Rinkeby).etherToken, [ChainId.Rinkeby]: getContractAddressesForChainOrThrow(ChainId.Rinkeby).etherToken,
[ChainId.Kovan]: getContractAddressesForChainOrThrow(ChainId.Kovan).etherToken, [ChainId.Kovan]: getContractAddressesForChainOrThrow(ChainId.Kovan).etherToken,
[ChainId.Polygon]: getContractAddressesForChainOrThrow(ChainId.Polygon).etherToken,
}, },
NULL_ADDRESS, NULL_ADDRESS,
); );
@@ -693,6 +745,19 @@ export const CURVE_MAINNET_INFOS: { [name: string]: CurveInfo } = {
}), }),
}; };
export const CURVE_POLYGON_INFOS: { [name: string]: CurveInfo } = {
['aave_exchangeunderlying']: createCurveExchangeUnderlyingPool({
tokens: [POLYGON_TOKENS.DAI, POLYGON_TOKENS.USDC, POLYGON_TOKENS.USDT],
pool: CURVE_POLYGON_POOLS.aave,
gasSchedule: 300e3,
}),
['aave_exchange']: createCurveExchangePool({
tokens: [POLYGON_TOKENS.amDAI, POLYGON_TOKENS.amUSDC, POLYGON_TOKENS.amUSDT],
pool: CURVE_POLYGON_POOLS.aave,
gasSchedule: 150e3,
}),
};
export const SWERVE_MAINNET_INFOS: { [name: string]: CurveInfo } = { export const SWERVE_MAINNET_INFOS: { [name: string]: CurveInfo } = {
[SWERVE_POOLS.y]: createCurveExchangePool({ [SWERVE_POOLS.y]: createCurveExchangePool({
tokens: [MAINNET_TOKENS.DAI, MAINNET_TOKENS.USDC, MAINNET_TOKENS.USDT, MAINNET_TOKENS.TUSD], tokens: [MAINNET_TOKENS.DAI, MAINNET_TOKENS.USDC, MAINNET_TOKENS.USDT, MAINNET_TOKENS.TUSD],
@@ -850,17 +915,21 @@ export const LIQUIDITY_PROVIDER_REGISTRY_BY_CHAIN_ID = valueByChainId<LiquidityP
[ChainId.Mainnet]: { [ChainId.Mainnet]: {
['0x1d0d407c5af8c86f0a6494de86e56ae21e46a951']: { ['0x1d0d407c5af8c86f0a6494de86e56ae21e46a951']: {
tokens: [ tokens: [
MAINNET_TOKENS.WETH, // Disabled temporarily as the swap function requires
MAINNET_TOKENS.USDC, // gas price to be provided. Making it difficult to get
MAINNET_TOKENS.USDT, // a gas estimate
MAINNET_TOKENS.WBTC, // MAINNET_TOKENS.WETH,
MAINNET_TOKENS.PAX, // MAINNET_TOKENS.USDC,
MAINNET_TOKENS.LINK, // MAINNET_TOKENS.USDT,
MAINNET_TOKENS.KNC, // MAINNET_TOKENS.WBTC,
MAINNET_TOKENS.MANA, // MAINNET_TOKENS.PAX,
MAINNET_TOKENS.DAI, // MAINNET_TOKENS.LINK,
MAINNET_TOKENS.BUSD, // MAINNET_TOKENS.KNC,
MAINNET_TOKENS.AAVE, // MAINNET_TOKENS.MANA,
// MAINNET_TOKENS.DAI,
// MAINNET_TOKENS.BUSD,
// MAINNET_TOKENS.AAVE,
// MAINNET_TOKENS.HT,
], ],
gasCost: (takerToken: string, makerToken: string) => gasCost: (takerToken: string, makerToken: string) =>
[takerToken, makerToken].includes(MAINNET_TOKENS.WETH) ? 160e3 : 280e3, [takerToken, makerToken].includes(MAINNET_TOKENS.WETH) ? 160e3 : 280e3,
@@ -891,6 +960,7 @@ export const SUSHISWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
[ChainId.Mainnet]: '0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f', [ChainId.Mainnet]: '0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f',
[ChainId.BSC]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506', [ChainId.BSC]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
[ChainId.Ropsten]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506', [ChainId.Ropsten]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
[ChainId.Polygon]: '0x1b02da8cb0d097eb8d57a175b88c7d8b47997506',
}, },
NULL_ADDRESS, NULL_ADDRESS,
); );
@@ -907,11 +977,39 @@ export const LINKSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
NULL_ADDRESS, NULL_ADDRESS,
); );
export const MSTABLE_ROUTER_BY_CHAIN_ID = valueByChainId<string>( export const MSTABLE_POOLS_BY_CHAIN_ID = valueByChainId(
{ {
[ChainId.Mainnet]: '0xe2f2a5c287993345a840db3b0845fbc70f5935a5', [ChainId.Mainnet]: {
mUSD: {
poolAddress: '0xe2f2a5c287993345a840db3b0845fbc70f5935a5',
tokens: [MAINNET_TOKENS.DAI, MAINNET_TOKENS.USDC, MAINNET_TOKENS.USDT],
},
mBTC: {
poolAddress: '0x945facb997494cc2570096c74b5f66a3507330a1',
tokens: [MAINNET_TOKENS.WBTC, MAINNET_TOKENS.RenBTC, MAINNET_TOKENS.sBTC],
},
},
[ChainId.Polygon]: {
mUSD: {
poolAddress: '0xe840b73e5287865eec17d250bfb1536704b43b21',
tokens: [POLYGON_TOKENS.DAI, POLYGON_TOKENS.USDC, POLYGON_TOKENS.USDT],
},
mBTC: {
poolAddress: NULL_ADDRESS,
tokens: [] as string[],
},
},
},
{
mUSD: {
poolAddress: NULL_ADDRESS,
tokens: [] as string[],
},
mBTC: {
poolAddress: NULL_ADDRESS,
tokens: [] as string[],
},
}, },
NULL_ADDRESS,
); );
export const OASIS_ROUTER_BY_CHAIN_ID = valueByChainId<string>( export const OASIS_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
@@ -923,7 +1021,7 @@ export const OASIS_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
export const KYBER_DMM_ROUTER_BY_CHAIN_ID = valueByChainId<string>( export const KYBER_DMM_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
{ {
[ChainId.Mainnet]: '0x12807818B584a3Fa65D38B6C25B13983fE888D6E', [ChainId.Mainnet]: '0x1c87257f5e8609940bc751a07bb085bb7f8cdbe6',
}, },
NULL_ADDRESS, NULL_ADDRESS,
); );
@@ -940,7 +1038,7 @@ export const MOONISWAP_REGISTRIES_BY_CHAIN_ID = valueByChainId(
[] as string[], [] as string[],
); );
export const DODO_CONFIG_BY_CHAIN_ID = valueByChainId( export const DODOV1_CONFIG_BY_CHAIN_ID = valueByChainId(
{ {
[ChainId.Mainnet]: { [ChainId.Mainnet]: {
helper: '0x533da777aedce766ceae696bf90f8541a4ba80eb', helper: '0x533da777aedce766ceae696bf90f8541a4ba80eb',
@@ -950,6 +1048,10 @@ export const DODO_CONFIG_BY_CHAIN_ID = valueByChainId(
helper: '0x0f859706aee7fcf61d5a8939e8cb9dbb6c1eda33', helper: '0x0f859706aee7fcf61d5a8939e8cb9dbb6c1eda33',
registry: '0xca459456a45e300aa7ef447dbb60f87cccb42828', registry: '0xca459456a45e300aa7ef447dbb60f87cccb42828',
}, },
[ChainId.Polygon]: {
helper: '0xdfaf9584f5d229a9dbe5978523317820a8897c5a',
registry: '0x357c5e9cfa8b834edcef7c7aabd8f9db09119d11',
},
}, },
{ helper: NULL_ADDRESS, registry: NULL_ADDRESS }, { helper: NULL_ADDRESS, registry: NULL_ADDRESS },
); );
@@ -959,10 +1061,17 @@ export const DODOV2_FACTORIES_BY_CHAIN_ID = valueByChainId<string[]>(
[ChainId.Mainnet]: [ [ChainId.Mainnet]: [
'0x6b4fa0bc61eddc928e0df9c7f01e407bfcd3e5ef', // Private Pool '0x6b4fa0bc61eddc928e0df9c7f01e407bfcd3e5ef', // Private Pool
'0x72d220ce168c4f361dd4dee5d826a01ad8598f6c', // Vending Machine '0x72d220ce168c4f361dd4dee5d826a01ad8598f6c', // Vending Machine
'0x6fddb76c93299d985f4d3fc7ac468f9a168577a4', // Stability Pool
], ],
[ChainId.BSC]: [ [ChainId.BSC]: [
'0xafe0a75dffb395eaabd0a7e1bbbd0b11f8609eef', // Private Pool '0xafe0a75dffb395eaabd0a7e1bbbd0b11f8609eef', // Private Pool
'0x790b4a80fb1094589a3c0efc8740aa9b0c1733fb', // Vending Machine '0x790b4a80fb1094589a3c0efc8740aa9b0c1733fb', // Vending Machine
'0x0fb9815938ad069bf90e14fe6c596c514bede767', // Stability Pool
],
[ChainId.Polygon]: [
'0x95e887adf9eaa22cc1c6e3cb7f07adc95b4b25a8', // Private Pool
'0x79887f65f83bdf15bcc8736b5e5bcdb48fb8fe13', // Vending Machine
'0x43c49f8dd240e1545f147211ec9f917376ac1e87', // Stability Pool
], ],
}, },
[] as string[], [] as string[],
@@ -1136,6 +1245,40 @@ export const JULSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
NULL_ADDRESS, NULL_ADDRESS,
); );
//
// Polygon
//
export const QUICKSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
{
[ChainId.Polygon]: '0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff',
},
NULL_ADDRESS,
);
export const COMETHSWAP_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
{
[ChainId.Polygon]: '0x93bcdc45f7e62f89a8e901dc4a0e2c6c427d9f25',
},
NULL_ADDRESS,
);
export const DFYN_ROUTER_BY_CHAIN_ID = valueByChainId<string>(
{
[ChainId.Polygon]: '0xa102072a4c07f06ec3b4900fdc4c7b80b6c57429',
},
NULL_ADDRESS,
);
const uniswapV2CloneGasSchedule = (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
};
/** /**
* Calculated gross gas cost of the underlying exchange. * Calculated gross gas cost of the underlying exchange.
* The cost of switching from one source to another, assuming * The cost of switching from one source to another, assuming
@@ -1169,46 +1312,14 @@ export const DEFAULT_GAS_SCHEDULE: Required<FeeSchedule> = {
[ERC20BridgeSource.Saddle]: fillData => (fillData as CurveFillData).pool.gasSchedule, [ERC20BridgeSource.Saddle]: fillData => (fillData as CurveFillData).pool.gasSchedule,
[ERC20BridgeSource.XSigma]: fillData => (fillData as CurveFillData).pool.gasSchedule, [ERC20BridgeSource.XSigma]: fillData => (fillData as CurveFillData).pool.gasSchedule,
[ERC20BridgeSource.MultiBridge]: () => 350e3, [ERC20BridgeSource.MultiBridge]: () => 350e3,
[ERC20BridgeSource.UniswapV2]: (fillData?: FillData) => { [ERC20BridgeSource.UniswapV2]: uniswapV2CloneGasSchedule,
// TODO: Different base cost if to/from ETH. [ERC20BridgeSource.SushiSwap]: uniswapV2CloneGasSchedule,
let gas = 90e3; [ERC20BridgeSource.CryptoCom]: uniswapV2CloneGasSchedule,
const path = (fillData as UniswapV2FillData).tokenAddressPath; [ERC20BridgeSource.Linkswap]: uniswapV2CloneGasSchedule,
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.SushiSwap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.CryptoCom]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.Linkswap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.Balancer]: () => 120e3, [ERC20BridgeSource.Balancer]: () => 120e3,
[ERC20BridgeSource.BalancerV2]: () => 100e3, [ERC20BridgeSource.BalancerV2]: () => 100e3,
[ERC20BridgeSource.Cream]: () => 120e3, [ERC20BridgeSource.Cream]: () => 120e3,
[ERC20BridgeSource.MStable]: () => 700e3, [ERC20BridgeSource.MStable]: () => 200e3,
[ERC20BridgeSource.MakerPsm]: (fillData?: FillData) => { [ERC20BridgeSource.MakerPsm]: (fillData?: FillData) => {
const psmFillData = fillData as MakerPsmFillData; const psmFillData = fillData as MakerPsmFillData;
return psmFillData.takerToken === psmFillData.gemTokenAddress ? 210e3 : 290e3; return psmFillData.takerToken === psmFillData.gemTokenAddress ? 210e3 : 290e3;
@@ -1250,72 +1361,6 @@ export const DEFAULT_GAS_SCHEDULE: Required<FeeSchedule> = {
} }
return gas; return gas;
}, },
//
// BSC
//
[ERC20BridgeSource.PancakeSwap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.PancakeSwapV2]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.BakerySwap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.ApeSwap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.CafeSwap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.CheeseSwap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.JulSwap]: (fillData?: FillData) => {
// TODO: Different base cost if to/from ETH.
let gas = 90e3;
const path = (fillData as UniswapV2FillData).tokenAddressPath;
if (path.length > 2) {
gas += (path.length - 2) * 60e3; // +60k for each hop.
}
return gas;
},
[ERC20BridgeSource.UniswapV3]: (fillData?: FillData) => { [ERC20BridgeSource.UniswapV3]: (fillData?: FillData) => {
let gas = 160e3; let gas = 160e3;
const path = (fillData as UniswapV3FillData).tokenAddressPath; const path = (fillData as UniswapV3FillData).tokenAddressPath;
@@ -1324,6 +1369,24 @@ export const DEFAULT_GAS_SCHEDULE: Required<FeeSchedule> = {
} }
return gas; return gas;
}, },
//
// BSC
//
[ERC20BridgeSource.PancakeSwap]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.PancakeSwapV2]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.BakerySwap]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.ApeSwap]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.CafeSwap]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.CheeseSwap]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.JulSwap]: uniswapV2CloneGasSchedule,
//
// Polygon
//
[ERC20BridgeSource.QuickSwap]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.ComethSwap]: uniswapV2CloneGasSchedule,
[ERC20BridgeSource.Dfyn]: uniswapV2CloneGasSchedule,
}; };
export const DEFAULT_FEE_SCHEDULE: Required<FeeSchedule> = { ...DEFAULT_GAS_SCHEDULE }; export const DEFAULT_FEE_SCHEDULE: Required<FeeSchedule> = { ...DEFAULT_GAS_SCHEDULE };

View File

@@ -16,6 +16,7 @@ import {
ERC20BridgeSource, ERC20BridgeSource,
FillData, FillData,
GenericRouterFillData, GenericRouterFillData,
KyberDmmFillData,
KyberFillData, KyberFillData,
LiquidityProviderFillData, LiquidityProviderFillData,
MakerPsmFillData, MakerPsmFillData,
@@ -99,8 +100,6 @@ export function getErc20BridgeSourceToBridgeSource(source: ERC20BridgeSource): s
return encodeBridgeSourceId(BridgeProtocol.Dodo, 'Dodo'); return encodeBridgeSourceId(BridgeProtocol.Dodo, 'Dodo');
case ERC20BridgeSource.Kyber: case ERC20BridgeSource.Kyber:
return encodeBridgeSourceId(BridgeProtocol.Kyber, 'Kyber'); return encodeBridgeSourceId(BridgeProtocol.Kyber, 'Kyber');
case ERC20BridgeSource.KyberDmm:
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'KyberDmm');
case ERC20BridgeSource.LiquidityProvider: case ERC20BridgeSource.LiquidityProvider:
// "LiquidityProvider" is too long to encode (17 characters). // "LiquidityProvider" is too long to encode (17 characters).
return encodeBridgeSourceId(BridgeProtocol.Unknown, 'LP'); return encodeBridgeSourceId(BridgeProtocol.Unknown, 'LP');
@@ -158,6 +157,14 @@ export function getErc20BridgeSourceToBridgeSource(source: ERC20BridgeSource): s
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'JulSwap'); return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'JulSwap');
case ERC20BridgeSource.UniswapV3: case ERC20BridgeSource.UniswapV3:
return encodeBridgeSourceId(BridgeProtocol.UniswapV3, 'UniswapV3'); return encodeBridgeSourceId(BridgeProtocol.UniswapV3, 'UniswapV3');
case ERC20BridgeSource.KyberDmm:
return encodeBridgeSourceId(BridgeProtocol.KyberDmm, 'KyberDmm');
case ERC20BridgeSource.QuickSwap:
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'QuickSwap');
case ERC20BridgeSource.ComethSwap:
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'ComethSwap');
case ERC20BridgeSource.Dfyn:
return encodeBridgeSourceId(BridgeProtocol.UniswapV2, 'Dfyn');
default: default:
throw new Error(AggregationError.NoBridgeForSource); throw new Error(AggregationError.NoBridgeForSource);
} }
@@ -217,11 +224,13 @@ export function createBridgeDataForBridgeOrder(order: OptimizedMarketBridgeOrder
case ERC20BridgeSource.PancakeSwap: case ERC20BridgeSource.PancakeSwap:
case ERC20BridgeSource.PancakeSwapV2: case ERC20BridgeSource.PancakeSwapV2:
case ERC20BridgeSource.BakerySwap: case ERC20BridgeSource.BakerySwap:
case ERC20BridgeSource.KyberDmm:
case ERC20BridgeSource.ApeSwap: case ERC20BridgeSource.ApeSwap:
case ERC20BridgeSource.CafeSwap: case ERC20BridgeSource.CafeSwap:
case ERC20BridgeSource.CheeseSwap: case ERC20BridgeSource.CheeseSwap:
case ERC20BridgeSource.JulSwap: case ERC20BridgeSource.JulSwap:
case ERC20BridgeSource.QuickSwap:
case ERC20BridgeSource.ComethSwap:
case ERC20BridgeSource.Dfyn:
const uniswapV2FillData = (order as OptimizedMarketBridgeOrder<UniswapV2FillData>).fillData; const uniswapV2FillData = (order as OptimizedMarketBridgeOrder<UniswapV2FillData>).fillData;
bridgeData = encoder.encode([uniswapV2FillData.router, uniswapV2FillData.tokenAddressPath]); bridgeData = encoder.encode([uniswapV2FillData.router, uniswapV2FillData.tokenAddressPath]);
break; break;
@@ -274,6 +283,14 @@ export function createBridgeDataForBridgeOrder(order: OptimizedMarketBridgeOrder
const uniswapV3FillData = (order as OptimizedMarketBridgeOrder<FinalUniswapV3FillData>).fillData; const uniswapV3FillData = (order as OptimizedMarketBridgeOrder<FinalUniswapV3FillData>).fillData;
bridgeData = encoder.encode([uniswapV3FillData.router, uniswapV3FillData.uniswapPath]); bridgeData = encoder.encode([uniswapV3FillData.router, uniswapV3FillData.uniswapPath]);
break; break;
case ERC20BridgeSource.KyberDmm:
const kyberDmmFillData = (order as OptimizedMarketBridgeOrder<KyberDmmFillData>).fillData;
bridgeData = encoder.encode([
kyberDmmFillData.router,
kyberDmmFillData.poolsPath,
kyberDmmFillData.tokenAddressPath,
]);
break;
default: default:
throw new Error(AggregationError.NoBridgeForSource); throw new Error(AggregationError.NoBridgeForSource);
} }
@@ -390,7 +407,6 @@ export const BRIDGE_ENCODERS: {
[ERC20BridgeSource.SushiSwap]: routerAddressPathEncoder, [ERC20BridgeSource.SushiSwap]: routerAddressPathEncoder,
[ERC20BridgeSource.CryptoCom]: routerAddressPathEncoder, [ERC20BridgeSource.CryptoCom]: routerAddressPathEncoder,
[ERC20BridgeSource.Linkswap]: routerAddressPathEncoder, [ERC20BridgeSource.Linkswap]: routerAddressPathEncoder,
[ERC20BridgeSource.KyberDmm]: routerAddressPathEncoder,
// BSC // BSC
[ERC20BridgeSource.PancakeSwap]: routerAddressPathEncoder, [ERC20BridgeSource.PancakeSwap]: routerAddressPathEncoder,
[ERC20BridgeSource.PancakeSwapV2]: routerAddressPathEncoder, [ERC20BridgeSource.PancakeSwapV2]: routerAddressPathEncoder,
@@ -399,6 +415,10 @@ export const BRIDGE_ENCODERS: {
[ERC20BridgeSource.CafeSwap]: routerAddressPathEncoder, [ERC20BridgeSource.CafeSwap]: routerAddressPathEncoder,
[ERC20BridgeSource.CheeseSwap]: routerAddressPathEncoder, [ERC20BridgeSource.CheeseSwap]: routerAddressPathEncoder,
[ERC20BridgeSource.JulSwap]: routerAddressPathEncoder, [ERC20BridgeSource.JulSwap]: routerAddressPathEncoder,
// Polygon
[ERC20BridgeSource.QuickSwap]: routerAddressPathEncoder,
[ERC20BridgeSource.ComethSwap]: routerAddressPathEncoder,
[ERC20BridgeSource.Dfyn]: routerAddressPathEncoder,
// Generic pools // Generic pools
[ERC20BridgeSource.Shell]: poolEncoder, [ERC20BridgeSource.Shell]: poolEncoder,
[ERC20BridgeSource.Component]: poolEncoder, [ERC20BridgeSource.Component]: poolEncoder,
@@ -415,6 +435,7 @@ export const BRIDGE_ENCODERS: {
{ name: 'router', type: 'address' }, { name: 'router', type: 'address' },
{ name: 'path', type: 'bytes' }, { name: 'path', type: 'bytes' },
]), ]),
[ERC20BridgeSource.KyberDmm]: AbiEncoder.create('(address,address[],address[])'),
}; };
function getFillTokenAmounts(fill: CollapsedFill, side: MarketOperation): [BigNumber, BigNumber] { function getFillTokenAmounts(fill: CollapsedFill, side: MarketOperation): [BigNumber, BigNumber] {

View File

@@ -20,16 +20,16 @@ import {
import { import {
BALANCER_V2_VAULT_ADDRESS_BY_CHAIN, BALANCER_V2_VAULT_ADDRESS_BY_CHAIN,
BANCOR_REGISTRY_BY_CHAIN_ID, BANCOR_REGISTRY_BY_CHAIN_ID,
DODO_CONFIG_BY_CHAIN_ID, DODOV1_CONFIG_BY_CHAIN_ID,
DODOV2_FACTORIES_BY_CHAIN_ID, DODOV2_FACTORIES_BY_CHAIN_ID,
KYBER_CONFIG_BY_CHAIN_ID, KYBER_CONFIG_BY_CHAIN_ID,
KYBER_DMM_ROUTER_BY_CHAIN_ID,
LINKSWAP_ROUTER_BY_CHAIN_ID, LINKSWAP_ROUTER_BY_CHAIN_ID,
LIQUIDITY_PROVIDER_REGISTRY_BY_CHAIN_ID, LIQUIDITY_PROVIDER_REGISTRY_BY_CHAIN_ID,
MAINNET_TOKENS, MAINNET_TOKENS,
MAKER_PSM_INFO_BY_CHAIN_ID, MAKER_PSM_INFO_BY_CHAIN_ID,
MAX_UINT256, MAX_UINT256,
MOONISWAP_REGISTRIES_BY_CHAIN_ID, MOONISWAP_REGISTRIES_BY_CHAIN_ID,
MSTABLE_ROUTER_BY_CHAIN_ID,
NATIVE_FEE_TOKEN_BY_CHAIN_ID, NATIVE_FEE_TOKEN_BY_CHAIN_ID,
NULL_ADDRESS, NULL_ADDRESS,
NULL_BYTES, NULL_BYTES,
@@ -57,6 +57,7 @@ import {
ERC20BridgeSource, ERC20BridgeSource,
GenericRouterFillData, GenericRouterFillData,
HopInfo, HopInfo,
KyberDmmFillData,
KyberFillData, KyberFillData,
KyberSamplerOpts, KyberSamplerOpts,
LiquidityProviderFillData, LiquidityProviderFillData,
@@ -237,6 +238,52 @@ export class SamplerOperations {
}); });
} }
public getKyberDmmSellQuotes(
router: string,
tokenAddressPath: string[],
takerFillAmounts: BigNumber[],
): SourceQuoteOperation<KyberDmmFillData> {
return new SamplerContractOperation({
source: ERC20BridgeSource.KyberDmm,
contract: this._samplerContract,
function: this._samplerContract.sampleSellsFromKyberDmm,
params: [router, tokenAddressPath, takerFillAmounts],
callback: (callResults: string, fillData: KyberDmmFillData): BigNumber[] => {
const [pools, samples] = this._samplerContract.getABIDecodedReturnData<[string[], BigNumber[]]>(
'sampleSellsFromKyberDmm',
callResults,
);
fillData.poolsPath = pools;
fillData.router = router;
fillData.tokenAddressPath = tokenAddressPath;
return samples;
},
});
}
public getKyberDmmBuyQuotes(
router: string,
tokenAddressPath: string[],
makerFillAmounts: BigNumber[],
): SourceQuoteOperation<KyberDmmFillData> {
return new SamplerContractOperation({
source: ERC20BridgeSource.KyberDmm,
contract: this._samplerContract,
function: this._samplerContract.sampleBuysFromKyberDmm,
params: [router, tokenAddressPath, makerFillAmounts],
callback: (callResults: string, fillData: KyberDmmFillData): BigNumber[] => {
const [pools, samples] = this._samplerContract.getABIDecodedReturnData<[string[], BigNumber[]]>(
'sampleBuysFromKyberDmm',
callResults,
);
fillData.poolsPath = pools;
fillData.router = router;
fillData.tokenAddressPath = tokenAddressPath;
return samples;
},
});
}
public getUniswapSellQuotes( public getUniswapSellQuotes(
router: string, router: string,
makerToken: string, makerToken: string,
@@ -1135,11 +1182,13 @@ export class SamplerOperations {
case ERC20BridgeSource.PancakeSwap: case ERC20BridgeSource.PancakeSwap:
case ERC20BridgeSource.PancakeSwapV2: case ERC20BridgeSource.PancakeSwapV2:
case ERC20BridgeSource.BakerySwap: case ERC20BridgeSource.BakerySwap:
case ERC20BridgeSource.KyberDmm:
case ERC20BridgeSource.ApeSwap: case ERC20BridgeSource.ApeSwap:
case ERC20BridgeSource.CafeSwap: case ERC20BridgeSource.CafeSwap:
case ERC20BridgeSource.CheeseSwap: case ERC20BridgeSource.CheeseSwap:
case ERC20BridgeSource.JulSwap: case ERC20BridgeSource.JulSwap:
case ERC20BridgeSource.QuickSwap:
case ERC20BridgeSource.ComethSwap:
case ERC20BridgeSource.Dfyn:
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source); const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
if (!isValidAddress(uniLikeRouter)) { if (!isValidAddress(uniLikeRouter)) {
return []; return [];
@@ -1148,6 +1197,16 @@ export class SamplerOperations {
[takerToken, makerToken], [takerToken, makerToken],
...intermediateTokens.map(t => [takerToken, t, makerToken]), ...intermediateTokens.map(t => [takerToken, t, makerToken]),
].map(path => this.getUniswapV2SellQuotes(uniLikeRouter, path, takerFillAmounts, source)); ].map(path => this.getUniswapV2SellQuotes(uniLikeRouter, path, takerFillAmounts, source));
case ERC20BridgeSource.KyberDmm:
const kyberDmmRouter = KYBER_DMM_ROUTER_BY_CHAIN_ID[this.chainId];
if (!isValidAddress(kyberDmmRouter)) {
return [];
}
return this.getKyberDmmSellQuotes(
kyberDmmRouter,
[takerToken, makerToken],
takerFillAmounts,
);
case ERC20BridgeSource.Kyber: case ERC20BridgeSource.Kyber:
return getKyberOffsets().map(offset => return getKyberOffsets().map(offset =>
this.getKyberSellQuotes( this.getKyberSellQuotes(
@@ -1204,14 +1263,9 @@ export class SamplerOperations {
), ),
); );
case ERC20BridgeSource.MStable: case ERC20BridgeSource.MStable:
return isValidAddress(MSTABLE_ROUTER_BY_CHAIN_ID[this.chainId]) return getShellLikeInfosForPair(this.chainId, takerToken, makerToken, source).map(pool =>
? this.getMStableSellQuotes( this.getMStableSellQuotes(pool, makerToken, takerToken, takerFillAmounts),
MSTABLE_ROUTER_BY_CHAIN_ID[this.chainId], );
makerToken,
takerToken,
takerFillAmounts,
)
: [];
case ERC20BridgeSource.Mooniswap: case ERC20BridgeSource.Mooniswap:
return [ return [
...MOONISWAP_REGISTRIES_BY_CHAIN_ID[this.chainId] ...MOONISWAP_REGISTRIES_BY_CHAIN_ID[this.chainId]
@@ -1272,11 +1326,11 @@ export class SamplerOperations {
), ),
); );
case ERC20BridgeSource.Dodo: case ERC20BridgeSource.Dodo:
if (!isValidAddress(DODO_CONFIG_BY_CHAIN_ID[this.chainId].registry)) { if (!isValidAddress(DODOV1_CONFIG_BY_CHAIN_ID[this.chainId].registry)) {
return []; return [];
} }
return this.getDODOSellQuotes( return this.getDODOSellQuotes(
DODO_CONFIG_BY_CHAIN_ID[this.chainId], DODOV1_CONFIG_BY_CHAIN_ID[this.chainId],
makerToken, makerToken,
takerToken, takerToken,
takerFillAmounts, takerFillAmounts,
@@ -1387,11 +1441,13 @@ export class SamplerOperations {
case ERC20BridgeSource.PancakeSwap: case ERC20BridgeSource.PancakeSwap:
case ERC20BridgeSource.PancakeSwapV2: case ERC20BridgeSource.PancakeSwapV2:
case ERC20BridgeSource.BakerySwap: case ERC20BridgeSource.BakerySwap:
case ERC20BridgeSource.KyberDmm:
case ERC20BridgeSource.ApeSwap: case ERC20BridgeSource.ApeSwap:
case ERC20BridgeSource.CafeSwap: case ERC20BridgeSource.CafeSwap:
case ERC20BridgeSource.CheeseSwap: case ERC20BridgeSource.CheeseSwap:
case ERC20BridgeSource.JulSwap: case ERC20BridgeSource.JulSwap:
case ERC20BridgeSource.QuickSwap:
case ERC20BridgeSource.ComethSwap:
case ERC20BridgeSource.Dfyn:
const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source); const uniLikeRouter = uniswapV2LikeRouterAddress(this.chainId, source);
if (!isValidAddress(uniLikeRouter)) { if (!isValidAddress(uniLikeRouter)) {
return []; return [];
@@ -1400,6 +1456,16 @@ export class SamplerOperations {
[takerToken, makerToken], [takerToken, makerToken],
...intermediateTokens.map(t => [takerToken, t, makerToken]), ...intermediateTokens.map(t => [takerToken, t, makerToken]),
].map(path => this.getUniswapV2BuyQuotes(uniLikeRouter, path, makerFillAmounts, source)); ].map(path => this.getUniswapV2BuyQuotes(uniLikeRouter, path, makerFillAmounts, source));
case ERC20BridgeSource.KyberDmm:
const kyberDmmRouter = KYBER_DMM_ROUTER_BY_CHAIN_ID[this.chainId];
if (!isValidAddress(kyberDmmRouter)) {
return [];
}
return this.getKyberDmmBuyQuotes(
kyberDmmRouter,
[takerToken, makerToken],
makerFillAmounts,
);
case ERC20BridgeSource.Kyber: case ERC20BridgeSource.Kyber:
return getKyberOffsets().map(offset => return getKyberOffsets().map(offset =>
this.getKyberBuyQuotes( this.getKyberBuyQuotes(
@@ -1456,14 +1522,9 @@ export class SamplerOperations {
), ),
); );
case ERC20BridgeSource.MStable: case ERC20BridgeSource.MStable:
return isValidAddress(MSTABLE_ROUTER_BY_CHAIN_ID[this.chainId]) return getShellLikeInfosForPair(this.chainId, takerToken, makerToken, source).map(pool =>
? this.getMStableBuyQuotes( this.getMStableBuyQuotes(pool, makerToken, takerToken, makerFillAmounts),
MSTABLE_ROUTER_BY_CHAIN_ID[this.chainId], );
makerToken,
takerToken,
makerFillAmounts,
)
: [];
case ERC20BridgeSource.Mooniswap: case ERC20BridgeSource.Mooniswap:
return [ return [
...MOONISWAP_REGISTRIES_BY_CHAIN_ID[this.chainId] ...MOONISWAP_REGISTRIES_BY_CHAIN_ID[this.chainId]
@@ -1523,11 +1584,11 @@ export class SamplerOperations {
), ),
); );
case ERC20BridgeSource.Dodo: case ERC20BridgeSource.Dodo:
if (!isValidAddress(DODO_CONFIG_BY_CHAIN_ID[this.chainId].registry)) { if (!isValidAddress(DODOV1_CONFIG_BY_CHAIN_ID[this.chainId].registry)) {
return []; return [];
} }
return this.getDODOBuyQuotes( return this.getDODOBuyQuotes(
DODO_CONFIG_BY_CHAIN_ID[this.chainId], DODOV1_CONFIG_BY_CHAIN_ID[this.chainId],
makerToken, makerToken,
takerToken, takerToken,
makerFillAmounts, makerFillAmounts,

View File

@@ -77,6 +77,10 @@ export enum ERC20BridgeSource {
CafeSwap = 'CafeSwap', CafeSwap = 'CafeSwap',
CheeseSwap = 'CheeseSwap', CheeseSwap = 'CheeseSwap',
JulSwap = 'JulSwap', JulSwap = 'JulSwap',
// Polygon only
QuickSwap = 'QuickSwap',
ComethSwap = 'ComethSwap',
Dfyn = 'Dfyn',
} }
export type SourcesWithPoolsCache = ERC20BridgeSource.Balancer | ERC20BridgeSource.BalancerV2 | ERC20BridgeSource.Cream; export type SourcesWithPoolsCache = ERC20BridgeSource.Balancer | ERC20BridgeSource.BalancerV2 | ERC20BridgeSource.Cream;
@@ -224,6 +228,10 @@ export interface UniswapV3FillData extends FillData {
pathAmounts: Array<{ uniswapPath: string; inputAmount: BigNumber }>; pathAmounts: Array<{ uniswapPath: string; inputAmount: BigNumber }>;
} }
export interface KyberDmmFillData extends UniswapV2FillData {
poolsPath: string[];
}
/** /**
* Represents a node on a fill path. * Represents a node on a fill path.
*/ */

View File

@@ -29,6 +29,7 @@ import * as IShell from '../test/generated-artifacts/IShell.json';
import * as ISmoothy from '../test/generated-artifacts/ISmoothy.json'; import * as ISmoothy from '../test/generated-artifacts/ISmoothy.json';
import * as IUniswapExchangeQuotes from '../test/generated-artifacts/IUniswapExchangeQuotes.json'; import * as IUniswapExchangeQuotes from '../test/generated-artifacts/IUniswapExchangeQuotes.json';
import * as IUniswapV2Router01 from '../test/generated-artifacts/IUniswapV2Router01.json'; import * as IUniswapV2Router01 from '../test/generated-artifacts/IUniswapV2Router01.json';
import * as KyberDmmSampler from '../test/generated-artifacts/KyberDmmSampler.json';
import * as KyberSampler from '../test/generated-artifacts/KyberSampler.json'; import * as KyberSampler from '../test/generated-artifacts/KyberSampler.json';
import * as LiquidityProviderSampler from '../test/generated-artifacts/LiquidityProviderSampler.json'; import * as LiquidityProviderSampler from '../test/generated-artifacts/LiquidityProviderSampler.json';
import * as MakerPSMSampler from '../test/generated-artifacts/MakerPSMSampler.json'; import * as MakerPSMSampler from '../test/generated-artifacts/MakerPSMSampler.json';
@@ -58,6 +59,7 @@ export const artifacts = {
ERC20BridgeSampler: ERC20BridgeSampler as ContractArtifact, ERC20BridgeSampler: ERC20BridgeSampler as ContractArtifact,
Eth2DaiSampler: Eth2DaiSampler as ContractArtifact, Eth2DaiSampler: Eth2DaiSampler as ContractArtifact,
FakeTaker: FakeTaker as ContractArtifact, FakeTaker: FakeTaker as ContractArtifact,
KyberDmmSampler: KyberDmmSampler as ContractArtifact,
KyberSampler: KyberSampler as ContractArtifact, KyberSampler: KyberSampler as ContractArtifact,
LiquidityProviderSampler: LiquidityProviderSampler as ContractArtifact, LiquidityProviderSampler: LiquidityProviderSampler as ContractArtifact,
MStableSampler: MStableSampler as ContractArtifact, MStableSampler: MStableSampler as ContractArtifact,

View File

@@ -395,7 +395,7 @@ describe('MarketOperationUtils tests', () => {
[ERC20BridgeSource.Uniswap]: { router: randomAddress() }, [ERC20BridgeSource.Uniswap]: { router: randomAddress() },
[ERC20BridgeSource.Eth2Dai]: { router: randomAddress() }, [ERC20BridgeSource.Eth2Dai]: { router: randomAddress() },
[ERC20BridgeSource.MakerPsm]: {}, [ERC20BridgeSource.MakerPsm]: {},
[ERC20BridgeSource.KyberDmm]: { tokenAddressPath: [] }, [ERC20BridgeSource.KyberDmm]: { tokenAddressPath: [], router: randomAddress(), poolsPath: [] },
}; };
const DEFAULT_OPS = { const DEFAULT_OPS = {

View File

@@ -27,6 +27,7 @@ export * from '../test/generated-wrappers/i_shell';
export * from '../test/generated-wrappers/i_smoothy'; export * from '../test/generated-wrappers/i_smoothy';
export * from '../test/generated-wrappers/i_uniswap_exchange_quotes'; export * from '../test/generated-wrappers/i_uniswap_exchange_quotes';
export * from '../test/generated-wrappers/i_uniswap_v2_router01'; export * from '../test/generated-wrappers/i_uniswap_v2_router01';
export * from '../test/generated-wrappers/kyber_dmm_sampler';
export * from '../test/generated-wrappers/kyber_sampler'; export * from '../test/generated-wrappers/kyber_sampler';
export * from '../test/generated-wrappers/liquidity_provider_sampler'; export * from '../test/generated-wrappers/liquidity_provider_sampler';
export * from '../test/generated-wrappers/m_stable_sampler'; export * from '../test/generated-wrappers/m_stable_sampler';

View File

@@ -30,6 +30,7 @@
"test/generated-artifacts/ISmoothy.json", "test/generated-artifacts/ISmoothy.json",
"test/generated-artifacts/IUniswapExchangeQuotes.json", "test/generated-artifacts/IUniswapExchangeQuotes.json",
"test/generated-artifacts/IUniswapV2Router01.json", "test/generated-artifacts/IUniswapV2Router01.json",
"test/generated-artifacts/KyberDmmSampler.json",
"test/generated-artifacts/KyberSampler.json", "test/generated-artifacts/KyberSampler.json",
"test/generated-artifacts/LiquidityProviderSampler.json", "test/generated-artifacts/LiquidityProviderSampler.json",
"test/generated-artifacts/MStableSampler.json", "test/generated-artifacts/MStableSampler.json",

View File

@@ -1,4 +1,24 @@
[ [
{
"version": "6.3.0",
"changes": [
{
"note": "Deployed contracts on `Polygon`",
"pr": 240
}
],
"timestamp": 1621944788
},
{
"version": "6.2.0",
"changes": [
{
"note": "Deployed FQT on mainnet and ropsten for `KyberDMM`",
"pr": 247
}
],
"timestamp": 1621600614
},
{ {
"version": "6.1.0", "version": "6.1.0",
"changes": [ "changes": [

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v6.3.0 - _May 25, 2021_
* Deployed contracts on `Polygon` (#240)
## v6.2.0 - _May 21, 2021_
* Deployed FQT on mainnet and ropsten for `KyberDMM` (#247)
## v6.1.0 - _May 5, 2021_ ## v6.1.0 - _May 5, 2021_
* Deployed FQT on mainnet and ropsten for `Balancer_V2` (#225) * Deployed FQT on mainnet and ropsten for `Balancer_V2` (#225)

View File

@@ -36,7 +36,7 @@
"wethTransformer": "0xb2bc06a4efb20fc6553a69dbfa49b7be938034a7", "wethTransformer": "0xb2bc06a4efb20fc6553a69dbfa49b7be938034a7",
"payTakerTransformer": "0x4638a7ebe75b911b995d0ec73a81e4f85f41f24e", "payTakerTransformer": "0x4638a7ebe75b911b995d0ec73a81e4f85f41f24e",
"affiliateFeeTransformer": "0xda6d9fc5998f550a094585cf9171f0e8ee3ac59f", "affiliateFeeTransformer": "0xda6d9fc5998f550a094585cf9171f0e8ee3ac59f",
"fillQuoteTransformer": "0x2bbb4abc672bc92821c99c7204afe8f25bdbc9e1", "fillQuoteTransformer": "0xd12a34076a4d9eac4cb82d87411d958641d0db9b",
"positiveSlippageFeeTransformer": "0xa9416ce1dbde8d331210c07b5c253d94ee4cc3fd" "positiveSlippageFeeTransformer": "0xa9416ce1dbde8d331210c07b5c253d94ee4cc3fd"
} }
}, },
@@ -77,7 +77,7 @@
"wethTransformer": "0x05ad19aa3826e0609a19568ffbd1dfe86c6c7184", "wethTransformer": "0x05ad19aa3826e0609a19568ffbd1dfe86c6c7184",
"payTakerTransformer": "0x6d0ebf2bcd9cc93ec553b60ad201943dcca4e291", "payTakerTransformer": "0x6d0ebf2bcd9cc93ec553b60ad201943dcca4e291",
"affiliateFeeTransformer": "0x6588256778ca4432fa43983ac685c45efb2379e2", "affiliateFeeTransformer": "0x6588256778ca4432fa43983ac685c45efb2379e2",
"fillQuoteTransformer": "0xb5c0603014989c4dc4feda01b7bc763953aff02a", "fillQuoteTransformer": "0xfdabf2a405034fd9034ddc51ba1189cbed6bd651",
"positiveSlippageFeeTransformer": "0x8b332f700fd37e71c5c5b26c4d78b5ca63dd33b2" "positiveSlippageFeeTransformer": "0x8b332f700fd37e71c5c5b26c4d78b5ca63dd33b2"
} }
}, },
@@ -244,5 +244,87 @@
"fillQuoteTransformer": "0x99356167edba8fbdc36959e3f5d0c43d1ba9c6db", "fillQuoteTransformer": "0x99356167edba8fbdc36959e3f5d0c43d1ba9c6db",
"positiveSlippageFeeTransformer": "0x45b3a72221e571017c0f0ec42189e11d149d0ace" "positiveSlippageFeeTransformer": "0x45b3a72221e571017c0f0ec42189e11d149d0ace"
} }
},
"137": {
"erc20Proxy": "0x0000000000000000000000000000000000000000",
"erc721Proxy": "0x0000000000000000000000000000000000000000",
"zrxToken": "0x0000000000000000000000000000000000000000",
"etherToken": "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270",
"exchangeV2": "0x0000000000000000000000000000000000000000",
"exchange": "0x0000000000000000000000000000000000000000",
"assetProxyOwner": "0x0000000000000000000000000000000000000000",
"zeroExGovernor": "0x0000000000000000000000000000000000000000",
"forwarder": "0x0000000000000000000000000000000000000000",
"coordinatorRegistry": "0x0000000000000000000000000000000000000000",
"coordinator": "0x0000000000000000000000000000000000000000",
"multiAssetProxy": "0x0000000000000000000000000000000000000000",
"staticCallProxy": "0x0000000000000000000000000000000000000000",
"erc1155Proxy": "0x0000000000000000000000000000000000000000",
"devUtils": "0x0000000000000000000000000000000000000000",
"zrxVault": "0x0000000000000000000000000000000000000000",
"staking": "0x0000000000000000000000000000000000000000",
"stakingProxy": "0x0000000000000000000000000000000000000000",
"erc20BridgeProxy": "0x0000000000000000000000000000000000000000",
"erc20BridgeSampler": "0x0000000000000000000000000000000000000000",
"chaiBridge": "0x0000000000000000000000000000000000000000",
"dydxBridge": "0x0000000000000000000000000000000000000000",
"godsUnchainedValidator": "0x0000000000000000000000000000000000000000",
"broker": "0x0000000000000000000000000000000000000000",
"chainlinkStopLimit": "0x0000000000000000000000000000000000000000",
"maximumGasPrice": "0x0000000000000000000000000000000000000000",
"dexForwarderBridge": "0x0000000000000000000000000000000000000000",
"exchangeProxyGovernor": "0x4d3e56c56a55d23fc7aa9a9ffad61631cf7d1ae6",
"exchangeProxy": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
"exchangeProxyTransformerDeployer": "0xe6d9207df11c55bce2f7a189ae95e3222d5484d3",
"exchangeProxyFlashWallet": "0xdb6f1920a889355780af7570773609bd8cb1f498",
"exchangeProxyLiquidityProviderSandbox": "0x4dd97080adf36103bd3db822f9d3c0e44890fd69",
"transformers": {
"wethTransformer": "0xe309d011cc6f189a3e8dcba85922715a019fed38",
"payTakerTransformer": "0x5ba7b9be86cda01cfbf56e0fb97184783be9dda1",
"affiliateFeeTransformer": "0xbed27284b42e5684e987169cf1da09c5d6c49fa8",
"fillQuoteTransformer": "0x2a0b60642d58ca819a6f3a3b4a6066be0df0486c",
"positiveSlippageFeeTransformer": "0x4cd8f1c0df4d40fcc1e073845d5f6f4ed5cc8dab"
}
},
"80001": {
"erc20Proxy": "0x0000000000000000000000000000000000000000",
"erc721Proxy": "0x0000000000000000000000000000000000000000",
"zrxToken": "0x0000000000000000000000000000000000000000",
"etherToken": "0x9c3c9283d3e44854697cd22d3faa240cfb032889",
"exchangeV2": "0x0000000000000000000000000000000000000000",
"exchange": "0x0000000000000000000000000000000000000000",
"assetProxyOwner": "0x0000000000000000000000000000000000000000",
"zeroExGovernor": "0x0000000000000000000000000000000000000000",
"forwarder": "0x0000000000000000000000000000000000000000",
"coordinatorRegistry": "0x0000000000000000000000000000000000000000",
"coordinator": "0x0000000000000000000000000000000000000000",
"multiAssetProxy": "0x0000000000000000000000000000000000000000",
"staticCallProxy": "0x0000000000000000000000000000000000000000",
"erc1155Proxy": "0x0000000000000000000000000000000000000000",
"devUtils": "0x0000000000000000000000000000000000000000",
"zrxVault": "0x0000000000000000000000000000000000000000",
"staking": "0x0000000000000000000000000000000000000000",
"stakingProxy": "0x0000000000000000000000000000000000000000",
"erc20BridgeProxy": "0x0000000000000000000000000000000000000000",
"erc20BridgeSampler": "0x0000000000000000000000000000000000000000",
"chaiBridge": "0x0000000000000000000000000000000000000000",
"dydxBridge": "0x0000000000000000000000000000000000000000",
"godsUnchainedValidator": "0x0000000000000000000000000000000000000000",
"broker": "0x0000000000000000000000000000000000000000",
"chainlinkStopLimit": "0x0000000000000000000000000000000000000000",
"maximumGasPrice": "0x0000000000000000000000000000000000000000",
"dexForwarderBridge": "0x0000000000000000000000000000000000000000",
"exchangeProxyGovernor": "0x4cf19577bcb5e784f315e952f97a6dc247f03140",
"exchangeProxy": "0xdef1c0ded9bec7f1a1670819833240f027b25eff",
"exchangeProxyTransformerDeployer": "0xa8220408bcb5b327875fd82145d379a83dfd7d61",
"exchangeProxyFlashWallet": "0xdb6f1920a889355780af7570773609bd8cb1f498",
"exchangeProxyLiquidityProviderSandbox": "0xe6f76f5090f8d64015113841a0c9bc5d14755d6f",
"transformers": {
"wethTransformer": "0x44a65ee6b33f70eda7b854abe8d81e925984c932",
"payTakerTransformer": "0x2f4868ed9cae9a4cdba063818dce19f411be4e75",
"affiliateFeeTransformer": "0x843c0ac5b1b373be51800c8f1caffe54cc29dd22",
"fillQuoteTransformer": "0x750cb81ee6d64e29e1e358ba155925000bf044d4",
"positiveSlippageFeeTransformer": "0x30aebc4c68effa70e21612b39b94299a8778d0cb"
}
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contract-addresses", "name": "@0x/contract-addresses",
"version": "6.1.0", "version": "6.3.0",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },

View File

@@ -49,6 +49,8 @@ export enum ChainId {
Kovan = 42, Kovan = 42,
Ganache = 1337, Ganache = 1337,
BSC = 56, BSC = 56,
Polygon = 137,
PolygonMumbai = 80001,
} }
/** /**

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contract-wrappers-test", "name": "@0x/contract-wrappers-test",
"version": "12.2.45", "version": "12.2.47",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -31,11 +31,11 @@
}, },
"homepage": "https://github.com/0xProject/protocol/tree/main/packages/contract-wrappers-test", "homepage": "https://github.com/0xProject/protocol/tree/main/packages/contract-wrappers-test",
"devDependencies": { "devDependencies": {
"@0x/contract-wrappers": "^13.16.1", "@0x/contract-wrappers": "^13.16.3",
"@0x/contracts-test-utils": "^5.4.0", "@0x/contracts-test-utils": "^5.4.2",
"@0x/dev-utils": "^4.2.7", "@0x/dev-utils": "^4.2.7",
"@0x/migrations": "^8.0.6", "@0x/migrations": "^8.0.8",
"@0x/order-utils": "^10.4.21", "@0x/order-utils": "^10.4.23",
"@0x/subproviders": "^6.5.3", "@0x/subproviders": "^6.5.3",
"@0x/ts-doc-gen": "^0.0.28", "@0x/ts-doc-gen": "^0.0.28",
"@0x/tslint-config": "^4.1.4", "@0x/tslint-config": "^4.1.4",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "13.16.3",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "13.16.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "13.16.1", "version": "13.16.1",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v13.16.3 - _May 25, 2021_
* Dependencies updated
## v13.16.2 - _May 21, 2021_
* Dependencies updated
## v13.16.1 - _May 5, 2021_ ## v13.16.1 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/contract-wrappers", "name": "@0x/contract-wrappers",
"version": "13.16.1", "version": "13.16.3",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -57,7 +57,7 @@
"dependencies": { "dependencies": {
"@0x/assert": "^3.0.27", "@0x/assert": "^3.0.27",
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/json-schemas": "^6.1.3", "@0x/json-schemas": "^6.1.3",
"@0x/types": "^3.3.3", "@0x/types": "^3.3.3",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "8.0.8",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "8.0.7",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "8.0.6", "version": "8.0.6",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v8.0.8 - _May 25, 2021_
* Dependencies updated
## v8.0.7 - _May 21, 2021_
* Dependencies updated
## v8.0.6 - _May 5, 2021_ ## v8.0.6 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/migrations", "name": "@0x/migrations",
"version": "8.0.6", "version": "8.0.8",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -68,20 +68,20 @@
}, },
"dependencies": { "dependencies": {
"@0x/base-contract": "^6.4.0", "@0x/base-contract": "^6.4.0",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contracts-asset-proxy": "^3.7.11", "@0x/contracts-asset-proxy": "^3.7.13",
"@0x/contracts-coordinator": "^3.1.30", "@0x/contracts-coordinator": "^3.1.32",
"@0x/contracts-dev-utils": "^1.3.28", "@0x/contracts-dev-utils": "^1.3.30",
"@0x/contracts-erc1155": "^2.1.29", "@0x/contracts-erc1155": "^2.1.31",
"@0x/contracts-erc20": "^3.3.8", "@0x/contracts-erc20": "^3.3.10",
"@0x/contracts-erc721": "^3.1.29", "@0x/contracts-erc721": "^3.1.31",
"@0x/contracts-exchange": "^3.2.30", "@0x/contracts-exchange": "^3.2.32",
"@0x/contracts-exchange-forwarder": "^4.2.30", "@0x/contracts-exchange-forwarder": "^4.2.32",
"@0x/contracts-extensions": "^6.2.24", "@0x/contracts-extensions": "^6.2.26",
"@0x/contracts-multisig": "^4.1.30", "@0x/contracts-multisig": "^4.1.32",
"@0x/contracts-staking": "^2.0.37", "@0x/contracts-staking": "^2.0.39",
"@0x/contracts-utils": "^4.7.8", "@0x/contracts-utils": "^4.7.10",
"@0x/contracts-zero-ex": "^0.23.0", "@0x/contracts-zero-ex": "^0.24.1",
"@0x/sol-compiler": "^4.7.3", "@0x/sol-compiler": "^4.7.3",
"@0x/subproviders": "^6.5.3", "@0x/subproviders": "^6.5.3",
"@0x/typescript-typings": "^5.2.0", "@0x/typescript-typings": "^5.2.0",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "10.4.23",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "10.4.22",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"timestamp": 1620214333, "timestamp": 1620214333,
"version": "10.4.21", "version": "10.4.21",

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v10.4.23 - _May 25, 2021_
* Dependencies updated
## v10.4.22 - _May 21, 2021_
* Dependencies updated
## v10.4.21 - _May 5, 2021_ ## v10.4.21 - _May 5, 2021_
* Dependencies updated * Dependencies updated

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/order-utils", "name": "@0x/order-utils",
"version": "10.4.21", "version": "10.4.23",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -69,8 +69,8 @@
}, },
"dependencies": { "dependencies": {
"@0x/assert": "^3.0.27", "@0x/assert": "^3.0.27",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contract-wrappers": "^13.16.1", "@0x/contract-wrappers": "^13.16.3",
"@0x/json-schemas": "^6.1.3", "@0x/json-schemas": "^6.1.3",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",
"@0x/web3-wrapper": "^7.5.3", "@0x/web3-wrapper": "^7.5.3",

View File

@@ -1,4 +1,22 @@
[ [
{
"timestamp": 1621944788,
"version": "1.6.2",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{
"timestamp": 1621600614,
"version": "1.6.1",
"changes": [
{
"note": "Dependencies updated"
}
]
},
{ {
"version": "1.6.0", "version": "1.6.0",
"changes": [ "changes": [

View File

@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG CHANGELOG
## v1.6.2 - _May 25, 2021_
* Dependencies updated
## v1.6.1 - _May 21, 2021_
* Dependencies updated
## v1.6.0 - _May 5, 2021_ ## v1.6.0 - _May 5, 2021_
* Add BalancerV2, remove Smoothy, Component and Saddle in BridgeProtocol enum (#206) * Add BalancerV2, remove Smoothy, Component and Saddle in BridgeProtocol enum (#206)

View File

@@ -1,6 +1,6 @@
{ {
"name": "@0x/protocol-utils", "name": "@0x/protocol-utils",
"version": "1.6.0", "version": "1.6.2",
"engines": { "engines": {
"node": ">=6.12" "node": ">=6.12"
}, },
@@ -63,8 +63,8 @@
}, },
"dependencies": { "dependencies": {
"@0x/assert": "^3.0.27", "@0x/assert": "^3.0.27",
"@0x/contract-addresses": "^6.1.0", "@0x/contract-addresses": "^6.3.0",
"@0x/contract-wrappers": "^13.16.1", "@0x/contract-wrappers": "^13.16.3",
"@0x/json-schemas": "^6.1.3", "@0x/json-schemas": "^6.1.3",
"@0x/subproviders": "^6.5.3", "@0x/subproviders": "^6.5.3",
"@0x/utils": "^6.4.3", "@0x/utils": "^6.4.3",

View File

@@ -128,6 +128,7 @@ export enum BridgeProtocol {
MakerPsm, MakerPsm,
BalancerV2, BalancerV2,
UniswapV3, UniswapV3,
KyberDmm,
} }
// tslint:enable: enum-naming // tslint:enable: enum-naming