From 79d6f7fdcd10ff796e8a0a0878dd68becb471996 Mon Sep 17 00:00:00 2001 From: Mike McDonald Date: Mon, 9 Dec 2019 13:25:08 -0600 Subject: [PATCH] add kovan proxy and logic --- .gitignore | 1 + lib/balancer-sor | 2 +- src/components/index.js | 2 +- src/deployed.json | 22 +++++++++++++++++++++- src/stores/Proxy.js | 12 ++++++++---- src/stores/SwapForm.js | 2 +- src/stores/Token.js | 2 +- 7 files changed, 34 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 4d29575d..8692cf66 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ # misc .DS_Store +.env .env.local .env.development.local .env.test.local diff --git a/lib/balancer-sor b/lib/balancer-sor index 665c4b5d..d6071f77 160000 --- a/lib/balancer-sor +++ b/lib/balancer-sor @@ -1 +1 @@ -Subproject commit 665c4b5d611f4f5f1331e25126d2bcf8624595dd +Subproject commit d6071f774336428cdda2e8afbd32e2ee0265b898 diff --git a/src/components/index.js b/src/components/index.js index 8bf568fa..0341ec11 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -7,5 +7,5 @@ export { AppBar, Loading, LoadingCard, - SwapForm + SwapForm, } diff --git a/src/deployed.json b/src/deployed.json index fb7da071..be3316aa 100644 --- a/src/deployed.json +++ b/src/deployed.json @@ -1 +1,21 @@ -{"bFactory":"0xD86C8F0327494034F60e25074420BcCF560D5610","proxy":"0x4bf749ec68270027C5910220CEAB30Cc284c7BA2","pools":["0xc43d5F3D92Fa39089Fd5E3b67841bFB8d62457F3","0x690a718e4d98dfd711AE0E5F1c14977eD3dd47F3","0xA41cCa6221C0081aB619585646a70C6e51Cb05da","0x8932E72Ce5a71b3e24dF17c8eab577fF122Da97c"],"tokens":[{"symbol":"WETH","address":"0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab"},{"symbol":"MKR","address":"0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"},{"symbol":"DAI","address":"0xCfEB869F69431e42cdB54A4F4f105C19C080A601"}],"extraTokens":[{"symbol":"TokenD","address":"0x2612Af3A521c2df9EAF28422Ca335b04AdF3ac66"},{"symbol":"TokenE","address":"0xA57B8a5584442B467b4689F1144D269d096A3daF"},{"symbol":"TokenF","address":"0x26b4AFb60d6C903165150C6F0AA14F8016bE4aec"}],"allTokens":[{"symbol":"WETH","address":"0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab"},{"symbol":"MKR","address":"0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"},{"symbol":"DAI","address":"0xCfEB869F69431e42cdB54A4F4f105C19C080A601"},{"symbol":"TokenD","address":"0x2612Af3A521c2df9EAF28422Ca335b04AdF3ac66"},{"symbol":"TokenE","address":"0xA57B8a5584442B467b4689F1144D269d096A3daF"},{"symbol":"TokenF","address":"0x26b4AFb60d6C903165150C6F0AA14F8016bE4aec"}]} \ No newline at end of file +{ + "ganache": { + "bFactory": "0xD86C8F0327494034F60e25074420BcCF560D5610", + "proxy": "0x4bf749ec68270027C5910220CEAB30Cc284c7BA2", + "tokens": [ + {"symbol": "WETH", "address": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab"}, + {"symbol": "MKR", "address": "0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"}, + {"symbol": "DAI", "address": "0xCfEB869F69431e42cdB54A4F4f105C19C080A601"} + ] + }, + "kovan": { + "bFactory":"0x9c84391b443ea3a48788079a5f98e2ead55c9309", + "proxy":"0xA454fB515171C586f3322191a6aADcC3D0fA7257", + "tokens": [ + {"symbol":"MKR","address":"0x8fD2D32dCde13F41BC7e6D966Edde0DfF1f92E2E"}, + {"symbol":"DAI","address":"0xbaB6D2bf6C4cae495a958507AAf0804feCa2b000"}, + {"symbol":"SNX","address":"0x16f23e3d18d498131bAb2D8843f5c2855448121d"}, + {"symbol":"BAT","address":"0xf5A64B7c340F4346Bf3158D1DAd89d7872213b03"} + ] + } +} \ No newline at end of file diff --git a/src/stores/Proxy.js b/src/stores/Proxy.js index a36bf5e0..6cf66cac 100644 --- a/src/stores/Proxy.js +++ b/src/stores/Proxy.js @@ -32,7 +32,7 @@ export default class ProxyStore { Swap Methods - Action */ @action batchSwapExactIn = async (tokenIn, tokenAmountIn, tokenOut, minAmountOut, maxPrice) => { - const proxy = blockchain.loadObject('ExchangeProxy', deployed.proxy, 'ExchangeProxy') + const proxy = blockchain.loadObject('ExchangeProxy', deployed['kovan'].proxy, 'ExchangeProxy') let pools = await sor.getPoolsWithTokens(tokenIn, tokenOut) let poolData = [] @@ -69,7 +69,7 @@ export default class ProxyStore { } @action batchSwapExactOut = async (tokenIn, maxAmountIn, tokenOut, tokenAmountOut, maxPrice) => { - const proxy = blockchain.loadObject('ExchangeProxy', deployed.proxy, 'ExchangeProxy') + const proxy = blockchain.loadObject('ExchangeProxy', deployed['kovan'].proxy, 'ExchangeProxy') let pools = await sor.getPoolsWithTokens(tokenIn, tokenOut) let poolData = [] @@ -117,13 +117,15 @@ export default class ProxyStore { Swap Methods - Preview */ previewBatchSwapExactIn = async (tokenIn, tokenOut, tokenAmountIn) => { - const proxy = blockchain.loadObject('ExchangeProxy', deployed.proxy, 'ExchangeProxy') + const proxy = blockchain.loadObject('ExchangeProxy', deployed['kovan'].proxy, 'ExchangeProxy') console.log('[Action] previewBatchSwapExactIn', tokenIn, tokenOut, tokenAmountIn) try { this.setPreviewPending(true) let pools = await sor.getPoolsWithTokens(tokenIn, tokenOut) + if (pools.pools.length === 0) throw Error('There are no pools with selected tokens') + let poolData = [] pools.pools.forEach(p=> { let tI = p.tokens.find(t => helpers.toChecksum(t.address) === tokenIn) @@ -180,13 +182,15 @@ export default class ProxyStore { } previewBatchSwapExactOut = async (tokenIn, tokenOut, tokenAmountOut) => { - const proxy = blockchain.loadObject('ExchangeProxy', deployed.proxy, 'ExchangeProxy') + const proxy = blockchain.loadObject('ExchangeProxy', deployed['kovan'].proxy, 'ExchangeProxy') console.log('[Action] previewBatchSwapExactOut', tokenIn, tokenOut, tokenAmountOut) try { this.setPreviewPending(true) let pools = await sor.getPoolsWithTokens(tokenIn, tokenOut) + if (pools.pools.length === 0) throw Error('There are no pools with selected tokens') + let poolData = [] pools.pools.forEach(p=> { let tI = p.tokens.find(t => helpers.toChecksum(t.address) === tokenIn) diff --git a/src/stores/SwapForm.js b/src/stores/SwapForm.js index 350857cf..3439bb4d 100644 --- a/src/stores/SwapForm.js +++ b/src/stores/SwapForm.js @@ -43,7 +43,7 @@ export default class SwapFormStore { } getTokenList = () => { - return deployed.tokens + return deployed['kovan'].tokens } resetInputs() { diff --git a/src/stores/Token.js b/src/stores/Token.js index 6a60e313..cbb0b320 100644 --- a/src/stores/Token.js +++ b/src/stores/Token.js @@ -2,7 +2,7 @@ import { observable, action } from 'mobx' import * as helpers from "utils/helpers" import * as blockchain from "utils/blockchain" -export default class PoolStore { +export default class TokenStore { @observable symbols = {} @observable balances = {} @observable allowances = {}