Adding Nerve Mixin to Arbitrum Bridge Adapter [TKR-554] (#579)
* adding Nerve Mixin to Arbitrum Bridge Adapter * refactor bridgeAdapter to include currently deployed changes * remove duplicate DODOV2 * removing DODO V1 from Arbitrum Bridge Adapter * updating imports * fixing CI: ganache tests * Invalid caching configuration Co-authored-by: Noah Khamliche <0xnoah@Noahs-MacBook-Pro-2.local> Co-authored-by: Marcin Wolny <marcin@0xproject.com>
This commit is contained in:
parent
1fa093be64
commit
09419a7909
@ -3,7 +3,7 @@ version: 2.1
|
|||||||
parameters:
|
parameters:
|
||||||
cache_version:
|
cache_version:
|
||||||
type: string
|
type: string
|
||||||
default: v4
|
default: v5
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@ -18,7 +18,7 @@ jobs:
|
|||||||
- run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
|
- run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-feat/NerveMixinArbitrum
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
@ -33,46 +33,46 @@ jobs:
|
|||||||
- save_cache:
|
- save_cache:
|
||||||
key: cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
key: cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
paths:
|
paths:
|
||||||
- ~/project/contracts/erc20/node_modules
|
|
||||||
- ~/project/contracts/test-utils/node_modules
|
|
||||||
- ~/project/contracts/treasury/node_modules
|
|
||||||
- ~/project/contracts/utils/node_modules
|
|
||||||
- ~/project/contracts/zero-ex/node_modules
|
|
||||||
- ~/project/node_modules
|
- ~/project/node_modules
|
||||||
- ~/project/packages/asset-swapper/node_modules
|
|
||||||
- ~/project/packages/contract-addresses/node_modules
|
|
||||||
- ~/project/packages/contract-artifacts/node_modules
|
|
||||||
- ~/project/packages/contract-wrappers/node_modules
|
|
||||||
- ~/project/packages/protocol-utils/node_modules
|
|
||||||
- ~/.cache/yarn
|
- ~/.cache/yarn
|
||||||
- save_cache:
|
- save_cache:
|
||||||
key: lib-{{ .Environment.CIRCLE_BRANCH }}
|
key: lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
paths:
|
paths:
|
||||||
- ~/project/contracts/erc20/generated-artifacts/
|
- ~/project/contracts/erc20/generated-artifacts/
|
||||||
- ~/project/contracts/erc20/generated-wrappers/
|
- ~/project/contracts/erc20/generated-wrappers/
|
||||||
- ~/project/contracts/erc20/lib/
|
- ~/project/contracts/erc20/lib/
|
||||||
|
- ~/project/contracts/erc20/node_modules
|
||||||
- ~/project/contracts/erc20/test/generated-artifacts/
|
- ~/project/contracts/erc20/test/generated-artifacts/
|
||||||
- ~/project/contracts/erc20/test/generated-wrappers/
|
- ~/project/contracts/erc20/test/generated-wrappers/
|
||||||
- ~/project/contracts/test-utils/lib/
|
- ~/project/contracts/test-utils/lib/
|
||||||
|
- ~/project/contracts/test-utils/node_modules
|
||||||
- ~/project/contracts/treasury/generated-artifacts/
|
- ~/project/contracts/treasury/generated-artifacts/
|
||||||
- ~/project/contracts/treasury/generated-wrappers/
|
- ~/project/contracts/treasury/generated-wrappers/
|
||||||
- ~/project/contracts/treasury/lib/
|
- ~/project/contracts/treasury/lib/
|
||||||
|
- ~/project/contracts/treasury/node_modules
|
||||||
- ~/project/contracts/treasury/test/generated-artifacts/
|
- ~/project/contracts/treasury/test/generated-artifacts/
|
||||||
- ~/project/contracts/treasury/test/generated-wrappers/
|
- ~/project/contracts/treasury/test/generated-wrappers/
|
||||||
- ~/project/contracts/utils/generated-artifacts/
|
- ~/project/contracts/utils/generated-artifacts/
|
||||||
- ~/project/contracts/utils/generated-wrappers/
|
- ~/project/contracts/utils/generated-wrappers/
|
||||||
- ~/project/contracts/utils/lib/
|
- ~/project/contracts/utils/lib/
|
||||||
|
- ~/project/contracts/utils/node_modules
|
||||||
- ~/project/contracts/utils/test/generated-artifacts/
|
- ~/project/contracts/utils/test/generated-artifacts/
|
||||||
- ~/project/contracts/utils/test/generated-wrappers/
|
- ~/project/contracts/utils/test/generated-wrappers/
|
||||||
- ~/project/contracts/zero-ex/generated-artifacts/
|
- ~/project/contracts/zero-ex/generated-artifacts/
|
||||||
- ~/project/contracts/zero-ex/generated-wrappers/
|
- ~/project/contracts/zero-ex/generated-wrappers/
|
||||||
- ~/project/contracts/zero-ex/lib/
|
- ~/project/contracts/zero-ex/lib/
|
||||||
|
- ~/project/contracts/zero-ex/node_modules
|
||||||
- ~/project/contracts/zero-ex/test/generated-artifacts/
|
- ~/project/contracts/zero-ex/test/generated-artifacts/
|
||||||
- ~/project/contracts/zero-ex/test/generated-wrappers/
|
- ~/project/contracts/zero-ex/test/generated-wrappers/
|
||||||
|
- ~/project/packages/asset-swapper/node_modules
|
||||||
- ~/project/packages/contract-addresses/lib/
|
- ~/project/packages/contract-addresses/lib/
|
||||||
|
- ~/project/packages/contract-addresses/node_modules
|
||||||
- ~/project/packages/contract-artifacts/lib/
|
- ~/project/packages/contract-artifacts/lib/
|
||||||
|
- ~/project/packages/contract-artifacts/node_modules
|
||||||
- ~/project/packages/contract-wrappers/lib/
|
- ~/project/packages/contract-wrappers/lib/
|
||||||
|
- ~/project/packages/contract-wrappers/node_modules
|
||||||
- ~/project/packages/protocol-utils/lib/
|
- ~/project/packages/protocol-utils/lib/
|
||||||
|
- ~/project/packages/protocol-utils/node_modules
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: ~/repo/packages/abi-gen/test-cli/output
|
path: ~/repo/packages/abi-gen/test-cli/output
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
@ -88,7 +88,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run: yarn wsrun -p @0x/contracts-exchange -m --serial -c test:circleci
|
- run: yarn wsrun -p @0x/contracts-exchange -m --serial -c test:circleci
|
||||||
test-integrations-ganache:
|
test-integrations-ganache:
|
||||||
resource_class: xlarge
|
resource_class: xlarge
|
||||||
@ -101,7 +101,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run: yarn wsrun -p @0x/contracts-integrations -m --serial -c test:circleci
|
- run: yarn wsrun -p @0x/contracts-integrations -m --serial -c test:circleci
|
||||||
test-contracts-staking-ganache:
|
test-contracts-staking-ganache:
|
||||||
resource_class: xlarge
|
resource_class: xlarge
|
||||||
@ -112,7 +112,7 @@ jobs:
|
|||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run: yarn wsrun -p @0x/contracts-staking -m --serial -c test:circleci
|
- run: yarn wsrun -p @0x/contracts-staking -m --serial -c test:circleci
|
||||||
test-contracts-extra-ganache:
|
test-contracts-extra-ganache:
|
||||||
resource_class: xlarge
|
resource_class: xlarge
|
||||||
@ -125,7 +125,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}
|
- cache-{{ checksum "yarn.lock" }}
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run: yarn wsrun -p @0x/contracts-exchange-forwarder -p @0x/contracts-coordinator -m --serial -c test:circleci
|
- run: yarn wsrun -p @0x/contracts-exchange-forwarder -p @0x/contracts-coordinator -m --serial -c test:circleci
|
||||||
test-contracts-rest-ganache:
|
test-contracts-rest-ganache:
|
||||||
resource_class: xlarge
|
resource_class: xlarge
|
||||||
@ -143,7 +143,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run: |
|
- run: |
|
||||||
yarn wsrun \
|
yarn wsrun \
|
||||||
-p @0x/contracts-multisig \
|
-p @0x/contracts-multisig \
|
||||||
@ -173,7 +173,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run: git submodule update --init --recursive
|
- run: git submodule update --init --recursive
|
||||||
- run:
|
- run:
|
||||||
command: forge test
|
command: forge test
|
||||||
@ -198,7 +198,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run:
|
- run:
|
||||||
command: yarn test:publish:circleci
|
command: yarn test:publish:circleci
|
||||||
no_output_timeout: 1800
|
no_output_timeout: 1800
|
||||||
@ -214,7 +214,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run:
|
- run:
|
||||||
command: yarn test:generate_docs:circleci
|
command: yarn test:generate_docs:circleci
|
||||||
no_output_timeout: 1200
|
no_output_timeout: 1200
|
||||||
@ -230,7 +230,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run: yarn wsrun -p @0x/contracts-test-utils -m --serial -c test:circleci
|
- run: yarn wsrun -p @0x/contracts-test-utils -m --serial -c test:circleci
|
||||||
- run: yarn wsrun -p @0x/contract-addresses -m --serial -c test:circleci
|
- run: yarn wsrun -p @0x/contract-addresses -m --serial -c test:circleci
|
||||||
- run: yarn wsrun -p @0x/contract-artifacts -m --serial -c test:circleci
|
- run: yarn wsrun -p @0x/contract-artifacts -m --serial -c test:circleci
|
||||||
@ -257,7 +257,10 @@ jobs:
|
|||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
|
- restore_cache:
|
||||||
|
keys:
|
||||||
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- run:
|
- run:
|
||||||
command: yarn lerna run lint
|
command: yarn lerna run lint
|
||||||
- run:
|
- run:
|
||||||
@ -275,7 +278,7 @@ jobs:
|
|||||||
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
- cache-{{ checksum "yarn.lock" }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- lib-{{ .Environment.CIRCLE_BRANCH }}
|
- lib-{{ .Environment.CIRCLE_BRANCH }}-<< pipeline.parameters.cache_version >>
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
keys:
|
keys:
|
||||||
- coverage-contract-wrappers-test-{{ checksum "yarn.lock" }}
|
- coverage-contract-wrappers-test-{{ checksum "yarn.lock" }}
|
||||||
|
@ -23,19 +23,29 @@ pragma experimental ABIEncoderV2;
|
|||||||
import "./AbstractBridgeAdapter.sol";
|
import "./AbstractBridgeAdapter.sol";
|
||||||
import "./BridgeProtocols.sol";
|
import "./BridgeProtocols.sol";
|
||||||
import "./mixins/MixinBalancerV2.sol";
|
import "./mixins/MixinBalancerV2.sol";
|
||||||
|
import "./mixins/MixinBalancerV2Batch.sol";
|
||||||
import "./mixins/MixinCurve.sol";
|
import "./mixins/MixinCurve.sol";
|
||||||
|
import "./mixins/MixinCurveV2.sol";
|
||||||
import "./mixins/MixinDodoV2.sol";
|
import "./mixins/MixinDodoV2.sol";
|
||||||
|
import "./mixins/MixinKyberDmm.sol";
|
||||||
import "./mixins/MixinGMX.sol";
|
import "./mixins/MixinGMX.sol";
|
||||||
|
import "./mixins/MixinNerve.sol";
|
||||||
import "./mixins/MixinUniswapV3.sol";
|
import "./mixins/MixinUniswapV3.sol";
|
||||||
|
import "./mixins/MixinUniswapV2.sol";
|
||||||
import "./mixins/MixinZeroExBridge.sol";
|
import "./mixins/MixinZeroExBridge.sol";
|
||||||
|
|
||||||
contract ArbitrumBridgeAdapter is
|
contract ArbitrumBridgeAdapter is
|
||||||
AbstractBridgeAdapter(42161, "Arbitrum"),
|
AbstractBridgeAdapter(42161, "Arbitrum"),
|
||||||
MixinBalancerV2,
|
MixinBalancerV2,
|
||||||
|
MixinBalancerV2Batch,
|
||||||
MixinCurve,
|
MixinCurve,
|
||||||
|
MixinCurveV2,
|
||||||
MixinDodoV2,
|
MixinDodoV2,
|
||||||
|
MixinKyberDmm,
|
||||||
MixinGMX,
|
MixinGMX,
|
||||||
|
MixinNerve,
|
||||||
MixinUniswapV3,
|
MixinUniswapV3,
|
||||||
|
MixinUniswapV2,
|
||||||
MixinZeroExBridge
|
MixinZeroExBridge
|
||||||
{
|
{
|
||||||
constructor(IEtherTokenV06 weth)
|
constructor(IEtherTokenV06 weth)
|
||||||
@ -63,6 +73,12 @@ contract ArbitrumBridgeAdapter is
|
|||||||
sellAmount,
|
sellAmount,
|
||||||
order.bridgeData
|
order.bridgeData
|
||||||
);
|
);
|
||||||
|
} else if (protocolId == BridgeProtocols.BALANCERV2BATCH) {
|
||||||
|
if (dryRun) { return (0, true); }
|
||||||
|
boughtAmount = _tradeBalancerV2Batch(
|
||||||
|
sellAmount,
|
||||||
|
order.bridgeData
|
||||||
|
);
|
||||||
} else if (protocolId == BridgeProtocols.CURVE) {
|
} else if (protocolId == BridgeProtocols.CURVE) {
|
||||||
if (dryRun) { return (0, true); }
|
if (dryRun) { return (0, true); }
|
||||||
boughtAmount = _tradeCurve(
|
boughtAmount = _tradeCurve(
|
||||||
@ -71,6 +87,14 @@ contract ArbitrumBridgeAdapter is
|
|||||||
sellAmount,
|
sellAmount,
|
||||||
order.bridgeData
|
order.bridgeData
|
||||||
);
|
);
|
||||||
|
} else if (protocolId == BridgeProtocols.CURVEV2) {
|
||||||
|
if (dryRun) { return (0, true); }
|
||||||
|
boughtAmount = _tradeCurveV2(
|
||||||
|
sellToken,
|
||||||
|
buyToken,
|
||||||
|
sellAmount,
|
||||||
|
order.bridgeData
|
||||||
|
);
|
||||||
} else if (protocolId == BridgeProtocols.DODOV2) {
|
} else if (protocolId == BridgeProtocols.DODOV2) {
|
||||||
if (dryRun) { return (0, true); }
|
if (dryRun) { return (0, true); }
|
||||||
boughtAmount = _tradeDodoV2(
|
boughtAmount = _tradeDodoV2(
|
||||||
@ -78,6 +102,13 @@ contract ArbitrumBridgeAdapter is
|
|||||||
sellAmount,
|
sellAmount,
|
||||||
order.bridgeData
|
order.bridgeData
|
||||||
);
|
);
|
||||||
|
} else if (protocolId == BridgeProtocols.KYBERDMM) {
|
||||||
|
if (dryRun) { return (0, true); }
|
||||||
|
boughtAmount = _tradeKyberDmm(
|
||||||
|
buyToken,
|
||||||
|
sellAmount,
|
||||||
|
order.bridgeData
|
||||||
|
);
|
||||||
} else if (protocolId == BridgeProtocols.UNISWAPV3) {
|
} else if (protocolId == BridgeProtocols.UNISWAPV3) {
|
||||||
if (dryRun) { return (0, true); }
|
if (dryRun) { return (0, true); }
|
||||||
boughtAmount = _tradeUniswapV3(
|
boughtAmount = _tradeUniswapV3(
|
||||||
@ -85,9 +116,23 @@ contract ArbitrumBridgeAdapter is
|
|||||||
sellAmount,
|
sellAmount,
|
||||||
order.bridgeData
|
order.bridgeData
|
||||||
);
|
);
|
||||||
|
} else if (protocolId == BridgeProtocols.UNISWAPV2) {
|
||||||
|
if (dryRun) { return (0, true); }
|
||||||
|
boughtAmount = _tradeUniswapV2(
|
||||||
|
buyToken,
|
||||||
|
sellAmount,
|
||||||
|
order.bridgeData
|
||||||
|
);
|
||||||
} else if (protocolId == BridgeProtocols.GMX) {
|
} else if (protocolId == BridgeProtocols.GMX) {
|
||||||
if (dryRun) { return (0, true); }
|
if (dryRun) { return (0, true); }
|
||||||
boughtAmount = _tradeGMX(
|
boughtAmount = _tradeGMX(
|
||||||
|
buyToken,
|
||||||
|
sellAmount,
|
||||||
|
order.bridgeData
|
||||||
|
);
|
||||||
|
} else if (protocolId == BridgeProtocols.NERVE) {
|
||||||
|
if (dryRun) { return (0, true); }
|
||||||
|
boughtAmount = _tradeNerve(
|
||||||
sellToken,
|
sellToken,
|
||||||
sellAmount,
|
sellAmount,
|
||||||
order.bridgeData
|
order.bridgeData
|
||||||
|
@ -105,8 +105,8 @@ export enum FillQuoteTransformerSide {
|
|||||||
export enum FillQuoteTransformerOrderType {
|
export enum FillQuoteTransformerOrderType {
|
||||||
Bridge,
|
Bridge,
|
||||||
Limit,
|
Limit,
|
||||||
Otc,
|
|
||||||
Rfq,
|
Rfq,
|
||||||
|
Otc,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user