From f5c35dd0ac8c32aa61f7c736982e45699f9bf5cb Mon Sep 17 00:00:00 2001 From: ookimaki Date: Thu, 15 Aug 2019 14:27:40 +0900 Subject: [PATCH] fix before oss publish --- .firebaserc | 5 - firebase.json | 1 - netlify.toml | 4 +- package-lock.json | 38 +- package.json | 2 +- src/abi.ts | 287 ++++++++++ src/constant.ts | 21 + src/distributer.ts | 52 ++ src/index.ts | 631 +--------------------- src/interface.ts | 12 + src/passer.ts | 50 ++ src/satellites.ts | 222 ++++++++ templates/.nvmrc | 1 - templates/components/molecules/Asset.vue | 8 +- templates/components/organisms/Header.vue | 2 +- templates/layouts/default.vue | 17 +- templates/package-lock.json | 311 +++-------- templates/pages/market.vue | 1 - templates/pages/mypage.vue | 1 - templates/plugins/config.ts | 194 ++----- templates/plugins/ga.js | 3 +- templates/plugins/initialize.ts | 17 +- templates/static/favicon.ico | Bin 4286 -> 0 bytes templates/static/favicon.png | Bin 0 -> 3056 bytes 24 files changed, 819 insertions(+), 1061 deletions(-) delete mode 100644 .firebaserc delete mode 100644 firebase.json create mode 100644 src/abi.ts create mode 100644 src/constant.ts create mode 100644 src/distributer.ts create mode 100644 src/interface.ts create mode 100644 src/passer.ts create mode 100644 src/satellites.ts delete mode 100644 templates/.nvmrc delete mode 100644 templates/static/favicon.ico create mode 100644 templates/static/favicon.png diff --git a/.firebaserc b/.firebaserc deleted file mode 100644 index f76301bc..00000000 --- a/.firebaserc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "projects": { - "default": "blockbase-bazaaar-sand" - } -} diff --git a/firebase.json b/firebase.json deleted file mode 100644 index 0967ef42..00000000 --- a/firebase.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/netlify.toml b/netlify.toml index d7ef5c38..8932885b 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - base = "example" - publish = "example/dist/" + base = "templates" + publish = "templates/dist/" command = "npm run generate" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 15fa3a3a..ee4a24e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "satellites.js", - "version": "0.0.5", + "version": "0.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -771,14 +771,6 @@ } } }, - "axios-retry": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.1.2.tgz", - "integrity": "sha512-+X0mtJ3S0mmia1kTVi1eA3DAC+oWnT2A29g3CpkzcBPMT6vJm+hn/WiV9wPt/KXLHVmg5zev9mWqkPx7bHMovg==", - "requires": { - "is-retry-allowed": "^1.1.0" - } - }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -2551,7 +2543,6 @@ "resolved": "https://registry.npmjs.org/web3/-/web3-0.20.2.tgz", "integrity": "sha1-xU2sX8DjdzmcBMGm7LsS5FEyeNY=", "requires": { - "bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", "crypto-js": "^3.1.4", "utf8": "^2.1.1", "xhr2": "*", @@ -2560,7 +2551,7 @@ "dependencies": { "bignumber.js": { "version": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", - "from": "git+https://github.com/frozeman/bignumber.js-nolookahead.git" + "from": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" } } } @@ -2580,13 +2571,12 @@ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#8431eab7b3384e65e8126a4602520b78031666fb", "ethereumjs-util": "^5.1.1" }, "dependencies": { "ethereumjs-abi": { "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#8431eab7b3384e65e8126a4602520b78031666fb", - "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git#8431eab7b3384e65e8126a4602520b78031666fb", "requires": { "bn.js": "^4.11.8", "ethereumjs-util": "^6.0.0" @@ -8195,7 +8185,8 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", @@ -8204,7 +8195,8 @@ }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -8307,7 +8299,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -8317,6 +8310,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -8342,6 +8336,7 @@ "minipass": { "version": "2.3.5", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -8358,6 +8353,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -8430,7 +8426,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -8440,6 +8437,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -8545,6 +8543,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -15358,11 +15357,6 @@ "is-unc-path": "^1.0.0" } }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", diff --git a/package.json b/package.json index d6fb1901..cb61c41f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "satellites.js", - "version": "0.0.6", + "version": "0.0.7", "description": "0x satelite library", "main": "dist/index.js", "author": "BlockBase, Inc.", diff --git a/src/abi.ts b/src/abi.ts new file mode 100644 index 00000000..090a7e0e --- /dev/null +++ b/src/abi.ts @@ -0,0 +1,287 @@ +export const distributerAbi = [ + { + constant: false, + inputs: [ + { + components: [ + { name: 'makerAddress', type: 'address' }, + { name: 'takerAddress', type: 'address' }, + { name: 'feeRecipientAddress', type: 'address' }, + { name: 'senderAddress', type: 'address' }, + { name: 'makerAssetAmount', type: 'uint256' }, + { name: 'takerAssetAmount', type: 'uint256' }, + { name: 'makerFee', type: 'uint256' }, + { name: 'takerFee', type: 'uint256' }, + { name: 'expirationTimeSeconds', type: 'uint256' }, + { name: 'salt', type: 'uint256' }, + { name: 'makerAssetData', type: 'bytes' }, + { name: 'takerAssetData', type: 'bytes' } + ], + name: 'order', + type: 'tuple' + }, + { name: 'takerAssetFillAmount', type: 'uint256' }, + { name: 'salt', type: 'uint256' }, + { name: 'orderSignature', type: 'bytes' }, + { name: 'takerSignature', type: 'bytes' }, + { name: 'feeRecipientsAddresses', type: 'address[]' }, + { name: 'feeAmounts', type: 'uint256[]' } + ], + name: 'fillOrder', + outputs: [], + payable: true, + stateMutability: 'payable', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'relayerRatio', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'ratioBase', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'passer', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { inputs: [{ name: '_passer', type: 'address' }], payable: false, stateMutability: 'nonpayable', type: 'constructor' } +] + +export const passerAbi = [ + { + constant: false, + inputs: [{ name: 'guy', type: 'address' }, { name: 'wad', type: 'uint256' }], + name: 'approve', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function' + }, + { + constant: false, + inputs: [ + { + components: [ + { name: 'makerAddress', type: 'address' }, + { name: 'takerAddress', type: 'address' }, + { name: 'feeRecipientAddress', type: 'address' }, + { name: 'senderAddress', type: 'address' }, + { name: 'makerAssetAmount', type: 'uint256' }, + { name: 'takerAssetAmount', type: 'uint256' }, + { name: 'makerFee', type: 'uint256' }, + { name: 'takerFee', type: 'uint256' }, + { name: 'expirationTimeSeconds', type: 'uint256' }, + { name: 'salt', type: 'uint256' }, + { name: 'makerAssetData', type: 'bytes' }, + { name: 'takerAssetData', type: 'bytes' } + ], + name: 'order', + type: 'tuple' + }, + { name: 'takerAssetFillAmount', type: 'uint256' }, + { name: 'salt', type: 'uint256' }, + { name: 'orderSignature', type: 'bytes' }, + { name: 'takerSignature', type: 'bytes' } + ], + name: 'fillOrder', + outputs: [], + payable: true, + stateMutability: 'payable', + type: 'function' + }, + { + constant: false, + inputs: [], + name: 'renounceOwnership', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function' + }, + { + constant: false, + inputs: [{ name: 'dst', type: 'address' }, { name: 'wad', type: 'uint256' }], + name: 'transfer', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function' + }, + { + constant: false, + inputs: [{ name: 'src', type: 'address' }, { name: 'dst', type: 'address' }, { name: 'wad', type: 'uint256' }], + name: 'transferFrom', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'nonpayable', + type: 'function' + }, + { + constant: false, + inputs: [{ name: 'newOwner', type: 'address' }], + name: 'transferOwnership', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function' + }, + { + constant: false, + inputs: [{ name: '_erc20proxy', type: 'address' }, { name: '_exchange', type: 'address' }], + name: 'updateAuthorizedAddress', + outputs: [], + payable: false, + stateMutability: 'nonpayable', + type: 'function' + }, + { + inputs: [{ name: '_erc20proxy', type: 'address' }, { name: '_exchange', type: 'address' }], + payable: false, + stateMutability: 'nonpayable', + type: 'constructor' + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'src', type: 'address' }, + { indexed: true, name: 'guy', type: 'address' }, + { indexed: false, name: 'wad', type: 'uint256' } + ], + name: 'Approval', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'src', type: 'address' }, + { indexed: true, name: 'dst', type: 'address' }, + { indexed: false, name: 'wad', type: 'uint256' } + ], + name: 'Transfer', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'erc20proxy', type: 'address' }, + { indexed: true, name: 'exchange', type: 'address' } + ], + name: 'UpdateAuthorizedAddress', + type: 'event' + }, + { + anonymous: false, + inputs: [ + { indexed: true, name: 'previousOwner', type: 'address' }, + { indexed: true, name: 'newOwner', type: 'address' } + ], + name: 'OwnershipTransferred', + type: 'event' + }, + { + constant: true, + inputs: [{ name: '', type: 'address' }, { name: '', type: 'address' }], + name: 'allowance', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [{ name: '', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'decimals', + outputs: [{ name: '', type: 'uint8' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'erc20proxy', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'exchange', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'isOwner', + outputs: [{ name: '', type: 'bool' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'name', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'owner', + outputs: [{ name: '', type: 'address' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'symbol', + outputs: [{ name: '', type: 'string' }], + payable: false, + stateMutability: 'view', + type: 'function' + }, + { + constant: true, + inputs: [], + name: 'totalSupply', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function' + } +] diff --git a/src/constant.ts b/src/constant.ts new file mode 100644 index 00000000..8044d36d --- /dev/null +++ b/src/constant.ts @@ -0,0 +1,21 @@ +import { SatellitesContractAddresses } from './interface' + +export const DECIMALS = 18 +export const GAS_LIMIT = 450000 +export const NULL_ADDRESS = '0x0000000000000000000000000000000000000000' + +export const networkToSatellitesContractAddresses: { [networkId: number]: SatellitesContractAddresses } = { + 1: { + distributer: '0x38c751500bfbf3f525b37a393a2f0c1bf5e8386a', + passer: '0x1416e2cfd202916037f7862c66f8f57ebe792dfd' + }, + 4: { + distributer: '0x4618b3d9091387f6ebe2ab241dced31f863a5c07', + passer: '0x0e5b093bfee5021110e1b672bb169ae77503658f' + } +} + +export const networkToAssetData: { [networkId: number]: string } = { + 1: `0xf47261b0000000000000000000000000${networkToSatellitesContractAddresses[1].passer.slice(2)}`, + 4: `0xf47261b0000000000000000000000000${networkToSatellitesContractAddresses[4].passer.slice(2)}` +} diff --git a/src/distributer.ts b/src/distributer.ts new file mode 100644 index 00000000..14b2e772 --- /dev/null +++ b/src/distributer.ts @@ -0,0 +1,52 @@ +import { ContractAbi, TxData, SupportedProvider } from 'ethereum-types' +import { BigNumber } from '0x.js' +import { BaseContract } from '@0x/base-contract' +import { classUtils } from '@0x/utils' + +export class DistributerContract extends BaseContract { + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('Distributer', abi, address, supportedProvider, txDefaults) + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']) + } + public fillOrder = { + async sendTransactionAsync( + order: { + makerAddress: string + takerAddress: string + feeRecipientAddress: string + senderAddress: string + makerAssetAmount: BigNumber + takerAssetAmount: BigNumber + makerFee: BigNumber + takerFee: BigNumber + expirationTimeSeconds: BigNumber + salt: BigNumber + makerAssetData: string + takerAssetData: string + }, + takerAssetFillAmount: BigNumber, + salt: BigNumber, + orderSignature: string, + takerSignature: string, + feeRecipientAddresses: string[], + feeAmountsBigNumber: BigNumber[], + txData?: Partial | undefined + ): Promise { + const self = (this as any) as DistributerContract + const encodedData = self._strictEncodeArguments( + 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,uint256,bytes,bytes,address[],uint256[])', + [order, takerAssetFillAmount, salt, orderSignature, takerSignature, feeRecipientAddresses, feeAmountsBigNumber] + ) + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData + }, + self._web3Wrapper.getContractDefaults() + ) + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults) + return txHash + } + } +} diff --git a/src/index.ts b/src/index.ts index 5d89b486..b7d465cb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,629 +1,2 @@ -import { ContractAbi, TxData, SupportedProvider } from 'ethereum-types' -import { - assetDataUtils, - BigNumber, - ContractWrappers, - generatePseudoRandomSalt, - MetamaskSubprovider, - signatureUtils, - Web3ProviderEngine, - SignedOrder -} from '0x.js' -import { BaseContract } from '@0x/base-contract' -import { HttpClient } from '@0x/connect' -import { ContractAddresses, getContractAddressesForNetworkOrThrow } from '@0x/contract-addresses' -import { ERC20TokenWrapper, ERC20ProxyWrapper, ERC721ProxyWrapper, ERC721TokenWrapper, ExchangeWrapper } from '@0x/contract-wrappers' -import { classUtils } from '@0x/utils' -import { Web3Wrapper } from '@0x/web3-wrapper' - -const DECIMALS = 18 -const GAS_LIMIT = 450000 -const NULL_ADDRESS = '0x0000000000000000000000000000000000000000' - -const distributer_abi = [ - { - constant: false, - inputs: [ - { - components: [ - { name: 'makerAddress', type: 'address' }, - { name: 'takerAddress', type: 'address' }, - { name: 'feeRecipientAddress', type: 'address' }, - { name: 'senderAddress', type: 'address' }, - { name: 'makerAssetAmount', type: 'uint256' }, - { name: 'takerAssetAmount', type: 'uint256' }, - { name: 'makerFee', type: 'uint256' }, - { name: 'takerFee', type: 'uint256' }, - { name: 'expirationTimeSeconds', type: 'uint256' }, - { name: 'salt', type: 'uint256' }, - { name: 'makerAssetData', type: 'bytes' }, - { name: 'takerAssetData', type: 'bytes' } - ], - name: 'order', - type: 'tuple' - }, - { name: 'takerAssetFillAmount', type: 'uint256' }, - { name: 'salt', type: 'uint256' }, - { name: 'orderSignature', type: 'bytes' }, - { name: 'takerSignature', type: 'bytes' }, - { name: 'feeRecipientsAddresses', type: 'address[]' }, - { name: 'feeAmounts', type: 'uint256[]' } - ], - name: 'fillOrder', - outputs: [], - payable: true, - stateMutability: 'payable', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'relayerRatio', - outputs: [{ name: '', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'ratioBase', - outputs: [{ name: '', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'passer', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { inputs: [{ name: '_passer', type: 'address' }], payable: false, stateMutability: 'nonpayable', type: 'constructor' } -] -const passer_abi = [ - { - constant: false, - inputs: [{ name: 'guy', type: 'address' }, { name: 'wad', type: 'uint256' }], - name: 'approve', - outputs: [{ name: '', type: 'bool' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [ - { - components: [ - { name: 'makerAddress', type: 'address' }, - { name: 'takerAddress', type: 'address' }, - { name: 'feeRecipientAddress', type: 'address' }, - { name: 'senderAddress', type: 'address' }, - { name: 'makerAssetAmount', type: 'uint256' }, - { name: 'takerAssetAmount', type: 'uint256' }, - { name: 'makerFee', type: 'uint256' }, - { name: 'takerFee', type: 'uint256' }, - { name: 'expirationTimeSeconds', type: 'uint256' }, - { name: 'salt', type: 'uint256' }, - { name: 'makerAssetData', type: 'bytes' }, - { name: 'takerAssetData', type: 'bytes' } - ], - name: 'order', - type: 'tuple' - }, - { name: 'takerAssetFillAmount', type: 'uint256' }, - { name: 'salt', type: 'uint256' }, - { name: 'orderSignature', type: 'bytes' }, - { name: 'takerSignature', type: 'bytes' } - ], - name: 'fillOrder', - outputs: [], - payable: true, - stateMutability: 'payable', - type: 'function' - }, - { - constant: false, - inputs: [], - name: 'renounceOwnership', - outputs: [], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [{ name: 'dst', type: 'address' }, { name: 'wad', type: 'uint256' }], - name: 'transfer', - outputs: [{ name: '', type: 'bool' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [{ name: 'src', type: 'address' }, { name: 'dst', type: 'address' }, { name: 'wad', type: 'uint256' }], - name: 'transferFrom', - outputs: [{ name: '', type: 'bool' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [{ name: 'newOwner', type: 'address' }], - name: 'transferOwnership', - outputs: [], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [{ name: '_erc20proxy', type: 'address' }, { name: '_exchange', type: 'address' }], - name: 'updateAuthorizedAddress', - outputs: [], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - inputs: [{ name: '_erc20proxy', type: 'address' }, { name: '_exchange', type: 'address' }], - payable: false, - stateMutability: 'nonpayable', - type: 'constructor' - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: 'src', type: 'address' }, - { indexed: true, name: 'guy', type: 'address' }, - { indexed: false, name: 'wad', type: 'uint256' } - ], - name: 'Approval', - type: 'event' - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: 'src', type: 'address' }, - { indexed: true, name: 'dst', type: 'address' }, - { indexed: false, name: 'wad', type: 'uint256' } - ], - name: 'Transfer', - type: 'event' - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: 'erc20proxy', type: 'address' }, - { indexed: true, name: 'exchange', type: 'address' } - ], - name: 'UpdateAuthorizedAddress', - type: 'event' - }, - { - anonymous: false, - inputs: [ - { indexed: true, name: 'previousOwner', type: 'address' }, - { indexed: true, name: 'newOwner', type: 'address' } - ], - name: 'OwnershipTransferred', - type: 'event' - }, - { - constant: true, - inputs: [{ name: '', type: 'address' }, { name: '', type: 'address' }], - name: 'allowance', - outputs: [{ name: '', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [{ name: '', type: 'address' }], - name: 'balanceOf', - outputs: [{ name: '', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'decimals', - outputs: [{ name: '', type: 'uint8' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'erc20proxy', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'exchange', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'isOwner', - outputs: [{ name: '', type: 'bool' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'name', - outputs: [{ name: '', type: 'string' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'owner', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'symbol', - outputs: [{ name: '', type: 'string' }], - payable: false, - stateMutability: 'view', - type: 'function' - }, - { - constant: true, - inputs: [], - name: 'totalSupply', - outputs: [{ name: '', type: 'uint256' }], - payable: false, - stateMutability: 'view', - type: 'function' - } -] - -interface SatellitesContractAddresses { - distributer: string - passer: string -} - -interface RefinedOrders { - [address: string]: { - [tokenId: string]: SignedOrder - } -} - -const networkToSatellitesContractAddresses: { [networkId: number]: SatellitesContractAddresses } = { - 1: { - distributer: '0x38c751500bfbf3f525b37a393a2f0c1bf5e8386a', - passer: '0x1416e2cfd202916037f7862c66f8f57ebe792dfd' - }, - 4: { - distributer: '0x4618b3d9091387f6ebe2ab241dced31f863a5c07', - passer: '0x0e5b093bfee5021110e1b672bb169ae77503658f' - } -} - -const networkToSquoteAssetData: { [networkId: number]: string } = { - 1: `0xf47261b0000000000000000000000000${networkToSatellitesContractAddresses[1].passer.slice(2)}`, - 4: `0xf47261b0000000000000000000000000${networkToSatellitesContractAddresses[4].passer.slice(2)}` -} - -const networkToAssetMetadataAPIBase: { [networkId: number]: string } = { - 1: `https://api.opensea.io/api/v1/assets`, - 4: `https://rinkeby-api.opensea.io/api/v1/assets` -} - -// Classes -class DistributerContract extends BaseContract { - constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('Distributer', abi, address, supportedProvider, txDefaults) - classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']) - } - public fillOrder = { - async sendTransactionAsync( - order: { - makerAddress: string - takerAddress: string - feeRecipientAddress: string - senderAddress: string - makerAssetAmount: BigNumber - takerAssetAmount: BigNumber - makerFee: BigNumber - takerFee: BigNumber - expirationTimeSeconds: BigNumber - salt: BigNumber - makerAssetData: string - takerAssetData: string - }, - takerAssetFillAmount: BigNumber, - salt: BigNumber, - orderSignature: string, - takerSignature: string, - feeRecipientAddresses: string[], - feeAmountsBigNumber: BigNumber[], - txData?: Partial | undefined - ): Promise { - const self = (this as any) as DistributerContract - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,uint256,bytes,bytes,address[],uint256[])', - [order, takerAssetFillAmount, salt, orderSignature, takerSignature, feeRecipientAddresses, feeAmountsBigNumber] - ) - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData - }, - self._web3Wrapper.getContractDefaults() - ) - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults) - return txHash - } - } -} - -class PasserContract extends BaseContract { - constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { - super('Passer', abi, address, supportedProvider, txDefaults) - classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']) - } - public fillOrder = { - async sendTransactionAsync( - order: { - makerAddress: string - takerAddress: string - feeRecipientAddress: string - senderAddress: string - makerAssetAmount: BigNumber - takerAssetAmount: BigNumber - makerFee: BigNumber - takerFee: BigNumber - expirationTimeSeconds: BigNumber - salt: BigNumber - makerAssetData: string - takerAssetData: string - }, - takerAssetFillAmount: BigNumber, - salt: BigNumber, - orderSignature: string, - takerSignature: string, - txData?: Partial | undefined - ): Promise { - const self = (this as any) as PasserContract - const encodedData = self._strictEncodeArguments( - 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,uint256,bytes,bytes)', - [order, takerAssetFillAmount, salt, orderSignature, takerSignature] - ) - const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( - { - to: self.address, - ...txData, - data: encodedData - }, - self._web3Wrapper.getContractDefaults() - ) - const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults) - return txHash - } - } -} - -export default class Satellites { - public networkId: number - public supportedProvider: SupportedProvider - public httpClient: HttpClient - public distributor: DistributerContract - public passer: PasserContract - public contractAddresses: ContractAddresses - public providerEngine: Web3ProviderEngine - public contractWrappers: ContractWrappers - public web3Wrapper: Web3Wrapper - public erc20Proxy: ERC20ProxyWrapper - public erc20Token: ERC20TokenWrapper - public erc721Proxy: ERC721ProxyWrapper - public erc721Token: ERC721TokenWrapper - public exchangeWrapper: ExchangeWrapper - public apiBase: string - public whitelists: string[] | undefined - - constructor(networkId: number, supportedProvider: SupportedProvider, relayer: string, whitelists?: string[], txDefaults?: Partial) { - this.networkId = networkId - this.supportedProvider = supportedProvider - this.httpClient = new HttpClient(relayer) - this.distributor = new DistributerContract( - distributer_abi, - networkToSatellitesContractAddresses[this.networkId].distributer, - supportedProvider, - txDefaults - ) - this.passer = new PasserContract(passer_abi, networkToSatellitesContractAddresses[this.networkId].passer, supportedProvider, txDefaults) - this.contractAddresses = getContractAddressesForNetworkOrThrow(this.networkId) - this.providerEngine = new Web3ProviderEngine() - this.providerEngine.addProvider(new MetamaskSubprovider(supportedProvider)) - this.providerEngine.start() - this.contractWrappers = new ContractWrappers(this.providerEngine, { networkId: this.networkId }) - this.web3Wrapper = new Web3Wrapper(supportedProvider) - this.erc20Proxy = new ERC20ProxyWrapper(this.web3Wrapper, this.networkId, this.contractAddresses.erc20Proxy); - this.erc20Token = new ERC20TokenWrapper( - this.web3Wrapper, - this.networkId, - this.erc20Proxy - ) - this.erc721Proxy = new ERC721ProxyWrapper(this.web3Wrapper, this.networkId, this.contractAddresses.erc721Proxy); - this.erc721Token = new ERC721TokenWrapper( - this.web3Wrapper, - this.networkId, - this.erc721Proxy - ) - this.exchangeWrapper = new ExchangeWrapper(this.web3Wrapper, this.networkId, this.erc20Token, this.erc721Token) - this.apiBase = networkToAssetMetadataAPIBase[this.networkId] - this.whitelists = null || whitelists - } - - async sell(makerAddress: string, contractAddress: string, tokenId: number, price: number) { - const makerAssetData = assetDataUtils.encodeERC721AssetData(contractAddress, new BigNumber(tokenId)) - const takerAssetData = assetDataUtils.encodeERC20AssetData(networkToSatellitesContractAddresses[this.networkId].passer) - const expiration = new BigNumber(Math.round(9999999999999 / 1000) - 1) - const salt = generatePseudoRandomSalt() - const makerAssetAmount = new BigNumber(1) - const takerAssetAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(price), DECIMALS) - const takerAddress = NULL_ADDRESS - const orderConfigRequest = { - exchangeAddress: this.contractAddresses.exchange, - makerAddress: makerAddress, - takerAddress: takerAddress, - expirationTimeSeconds: expiration, - makerAssetData: makerAssetData, - takerAssetData: takerAssetData, - makerAssetAmount: makerAssetAmount, - takerAssetAmount: takerAssetAmount - } - const orderConfig = await this.httpClient.getOrderConfigAsync(orderConfigRequest) - const order = { - salt: salt, - ...orderConfigRequest, - ...orderConfig - } - - const provider = new MetamaskSubprovider(this.web3Wrapper.getProvider()) - const signedOrder = await signatureUtils.ecSignTypedDataOrderAsync(provider, order, makerAddress) - return await this.httpClient.submitOrderAsync(signedOrder, { networkId: this.networkId }) - } - - async buy(takerAddress: string, signedOrder: SignedOrder, feeRecipientAddresses?: string[], feeAmounts?: number[]) { - const encoder = await this.contractWrappers.exchange.transactionEncoderAsync() - const data = await encoder.fillOrderTx(signedOrder, signedOrder.takerAssetAmount) - const salt = signedOrder.salt - const signerAddress = takerAddress - - const transaction = { - verifyingContractAddress: this.contractAddresses.exchange, - salt, - signerAddress, - data - } - - const provider = new MetamaskSubprovider(this.web3Wrapper.getProvider()) - const result = await signatureUtils.ecSignTypedDataTransactionAsync(provider, transaction, signerAddress) - const normalizedTakerAddress = takerAddress - - let totalFee: BigNumber = new BigNumber(0) - let feeAmountsBigNumber: BigNumber[] = [] - if (feeRecipientAddresses && feeAmounts) { - for (let i = 0; i < feeAmounts.length; i++) { - feeAmountsBigNumber.push(new BigNumber(feeAmounts[i])) - totalFee = feeAmountsBigNumber[i].plus(totalFee) - } - const amountWithFee = signedOrder.takerAssetAmount.plus(totalFee) - return await this.distributor.fillOrder.sendTransactionAsync( - signedOrder, - signedOrder.takerAssetAmount, - salt, - signedOrder.signature, - result.signature, - feeRecipientAddresses, - feeAmountsBigNumber, - { - value: amountWithFee, - from: normalizedTakerAddress, - gas: GAS_LIMIT - } - ) - } else { - return await this.passer.fillOrder.sendTransactionAsync( - signedOrder, - signedOrder.takerAssetAmount, - salt, - signedOrder.signature, - result.signature, - { - value: signedOrder.takerAssetAmount, - from: normalizedTakerAddress, - gas: GAS_LIMIT - } - ) - } - } - - async cancel(signedOrder: SignedOrder) { - return await this.exchangeWrapper.cancelOrderAsync(signedOrder) - } - - async gift(tokenAddress: string, receiverAddress: string, senderAddress: string, tokenId: number) { - return await this.erc721Token.transferFromAsync(tokenAddress, receiverAddress, senderAddress, new BigNumber(tokenId)) - } - - async getOrders(tokenAddresses?: string[]) { - const orders = await this.httpClient.getOrdersAsync({ networkId: this.networkId }) - const refinedOrders: RefinedOrders = {} - for (const order of orders.records) { - const assetData = assetDataUtils.decodeERC721AssetData(order.order.makerAssetData) - const tokenId = assetData.tokenId.toString() - if(!this.whitelists || this.whitelists.includes(assetData.tokenAddress)) { - if(!tokenAddresses || tokenAddresses.length === 0 || tokenAddresses.includes(assetData.tokenAddress)) { - if (!refinedOrders[assetData.tokenAddress]) { - refinedOrders[assetData.tokenAddress] = {} - } - if ( - !refinedOrders[assetData.tokenAddress][tokenId] || - refinedOrders[assetData.tokenAddress][tokenId].takerAssetAmount > order.order.takerAssetAmount - ) { - refinedOrders[assetData.tokenAddress][tokenId] = order.order - } - } - } - } - return refinedOrders - } - - async getOrder(assetContractAddress: string, tokenId: number) { - let order: SignedOrder | undefined - let price: BigNumber - if(!this.whitelists || this.whitelists.includes(assetContractAddress)) { - const assetData = assetDataUtils.encodeERC721AssetData(assetContractAddress, new BigNumber(tokenId)) - const orderbookRequest = { - baseAssetData: assetData, - quoteAssetData: networkToSquoteAssetData[this.networkId] - } - const orderBooks = await this.httpClient.getOrderbookAsync(orderbookRequest, { - networkId: this.networkId - }) - orderBooks.asks.records.forEach((record, index) => { - if (index === 0) { - order = record.order - price = record.order.takerAssetAmount - } else if (price > record.order.takerAssetAmount) { - order = record.order - } - }) - } - return order - } - -} +import { Satellites } from './satellites' +export default Satellites diff --git a/src/interface.ts b/src/interface.ts new file mode 100644 index 00000000..6ba33e86 --- /dev/null +++ b/src/interface.ts @@ -0,0 +1,12 @@ +import { SignedOrder } from '0x.js' + +export interface SatellitesContractAddresses { + distributer: string + passer: string +} + +export interface RefinedOrders { + [address: string]: { + [tokenId: string]: SignedOrder + } +} diff --git a/src/passer.ts b/src/passer.ts new file mode 100644 index 00000000..42f868da --- /dev/null +++ b/src/passer.ts @@ -0,0 +1,50 @@ +import { ContractAbi, TxData, SupportedProvider } from 'ethereum-types' +import { BigNumber } from '0x.js' +import { BaseContract } from '@0x/base-contract' +import { classUtils } from '@0x/utils' + +export class PasserContract extends BaseContract { + constructor(abi: ContractAbi, address: string, supportedProvider: SupportedProvider, txDefaults?: Partial) { + super('Passer', abi, address, supportedProvider, txDefaults) + classUtils.bindAll(this, ['_abiEncoderByFunctionSignature', 'address', 'abi', '_web3Wrapper']) + } + public fillOrder = { + async sendTransactionAsync( + order: { + makerAddress: string + takerAddress: string + feeRecipientAddress: string + senderAddress: string + makerAssetAmount: BigNumber + takerAssetAmount: BigNumber + makerFee: BigNumber + takerFee: BigNumber + expirationTimeSeconds: BigNumber + salt: BigNumber + makerAssetData: string + takerAssetData: string + }, + takerAssetFillAmount: BigNumber, + salt: BigNumber, + orderSignature: string, + takerSignature: string, + txData?: Partial | undefined + ): Promise { + const self = (this as any) as PasserContract + const encodedData = self._strictEncodeArguments( + 'fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,uint256,bytes,bytes)', + [order, takerAssetFillAmount, salt, orderSignature, takerSignature] + ) + const txDataWithDefaults = await BaseContract._applyDefaultsToTxDataAsync( + { + to: self.address, + ...txData, + data: encodedData + }, + self._web3Wrapper.getContractDefaults() + ) + const txHash = await self._web3Wrapper.sendTransactionAsync(txDataWithDefaults) + return txHash + } + } +} diff --git a/src/satellites.ts b/src/satellites.ts new file mode 100644 index 00000000..1dadf9d5 --- /dev/null +++ b/src/satellites.ts @@ -0,0 +1,222 @@ +import { TxData, SupportedProvider } from 'ethereum-types' +import { + assetDataUtils, + BigNumber, + ContractWrappers, + generatePseudoRandomSalt, + MetamaskSubprovider, + signatureUtils, + Web3ProviderEngine, + SignedOrder +} from '0x.js' +import { HttpClient } from '@0x/connect' +import { ContractAddresses, getContractAddressesForNetworkOrThrow } from '@0x/contract-addresses' +import { + ERC20TokenWrapper, + ERC20ProxyWrapper, + ERC721ProxyWrapper, + ERC721TokenWrapper, + ExchangeWrapper +} from '@0x/contract-wrappers' +import { Web3Wrapper } from '@0x/web3-wrapper' + +import { distributerAbi, passerAbi } from './abi' +import { DECIMALS, GAS_LIMIT, NULL_ADDRESS, networkToSatellitesContractAddresses, networkToAssetData } from './constant' +import { DistributerContract } from './distributer' +import { PasserContract } from './passer' +import { RefinedOrders } from './interface' + +export class Satellites { + public networkId: number + public supportedProvider: SupportedProvider + public httpClient: HttpClient + public distributor: DistributerContract + public passer: PasserContract + public contractAddresses: ContractAddresses + public providerEngine: Web3ProviderEngine + public contractWrappers: ContractWrappers + public web3Wrapper: Web3Wrapper + public erc20Proxy: ERC20ProxyWrapper + public erc20Token: ERC20TokenWrapper + public erc721Proxy: ERC721ProxyWrapper + public erc721Token: ERC721TokenWrapper + public exchangeWrapper: ExchangeWrapper + public whitelists: string[] | undefined + + constructor(networkId: number, supportedProvider: SupportedProvider, relayer: string, txDefaults?: Partial) { + this.networkId = networkId + this.supportedProvider = supportedProvider + this.httpClient = new HttpClient(relayer) + this.distributor = new DistributerContract( + distributerAbi, + networkToSatellitesContractAddresses[this.networkId].distributer, + supportedProvider, + txDefaults + ) + this.passer = new PasserContract( + passerAbi, + networkToSatellitesContractAddresses[this.networkId].passer, + supportedProvider, + txDefaults + ) + this.contractAddresses = getContractAddressesForNetworkOrThrow(this.networkId) + this.providerEngine = new Web3ProviderEngine() + this.providerEngine.addProvider(new MetamaskSubprovider(supportedProvider)) + this.providerEngine.start() + this.contractWrappers = new ContractWrappers(this.providerEngine, { networkId: this.networkId }) + this.web3Wrapper = new Web3Wrapper(supportedProvider) + this.erc20Proxy = new ERC20ProxyWrapper(this.web3Wrapper, this.networkId, this.contractAddresses.erc20Proxy) + this.erc20Token = new ERC20TokenWrapper(this.web3Wrapper, this.networkId, this.erc20Proxy) + this.erc721Proxy = new ERC721ProxyWrapper(this.web3Wrapper, this.networkId, this.contractAddresses.erc721Proxy) + this.erc721Token = new ERC721TokenWrapper(this.web3Wrapper, this.networkId, this.erc721Proxy) + this.exchangeWrapper = new ExchangeWrapper(this.web3Wrapper, this.networkId, this.erc20Token, this.erc721Token) + } + + async sell(makerAddress: string, contractAddress: string, tokenId: number, price: number) { + const makerAssetData = assetDataUtils.encodeERC721AssetData(contractAddress, new BigNumber(tokenId)) + const takerAssetData = assetDataUtils.encodeERC20AssetData( + networkToSatellitesContractAddresses[this.networkId].passer + ) + const expiration = new BigNumber(Math.round(9999999999999 / 1000) - 1) + const salt = generatePseudoRandomSalt() + const makerAssetAmount = new BigNumber(1) + const takerAssetAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(price), DECIMALS) + const takerAddress = NULL_ADDRESS + const orderConfigRequest = { + exchangeAddress: this.contractAddresses.exchange, + makerAddress: makerAddress, + takerAddress: takerAddress, + expirationTimeSeconds: expiration, + makerAssetData: makerAssetData, + takerAssetData: takerAssetData, + makerAssetAmount: makerAssetAmount, + takerAssetAmount: takerAssetAmount + } + const orderConfig = await this.httpClient.getOrderConfigAsync(orderConfigRequest) + const order = { + salt: salt, + ...orderConfigRequest, + ...orderConfig + } + + const provider = new MetamaskSubprovider(this.web3Wrapper.getProvider()) + const signedOrder = await signatureUtils.ecSignTypedDataOrderAsync(provider, order, makerAddress) + return await this.httpClient.submitOrderAsync(signedOrder, { networkId: this.networkId }) + } + + async buy(takerAddress: string, signedOrder: SignedOrder, feeRecipientAddresses?: string[], feeAmounts?: number[]) { + const encoder = await this.contractWrappers.exchange.transactionEncoderAsync() + const data = await encoder.fillOrderTx(signedOrder, signedOrder.takerAssetAmount) + const salt = signedOrder.salt + const signerAddress = takerAddress + + const transaction = { + verifyingContractAddress: this.contractAddresses.exchange, + salt, + signerAddress, + data + } + + const provider = new MetamaskSubprovider(this.web3Wrapper.getProvider()) + const result = await signatureUtils.ecSignTypedDataTransactionAsync(provider, transaction, signerAddress) + const normalizedTakerAddress = takerAddress + + let totalFee: BigNumber = new BigNumber(0) + let feeAmountsBigNumber: BigNumber[] = [] + if (feeRecipientAddresses && feeAmounts) { + for (let i = 0; i < feeAmounts.length; i++) { + feeAmountsBigNumber.push(new BigNumber(feeAmounts[i])) + totalFee = feeAmountsBigNumber[i].plus(totalFee) + } + const amountWithFee = signedOrder.takerAssetAmount.plus(totalFee) + return await this.distributor.fillOrder.sendTransactionAsync( + signedOrder, + signedOrder.takerAssetAmount, + salt, + signedOrder.signature, + result.signature, + feeRecipientAddresses, + feeAmountsBigNumber, + { + value: amountWithFee, + from: normalizedTakerAddress, + gas: GAS_LIMIT + } + ) + } else { + return await this.passer.fillOrder.sendTransactionAsync( + signedOrder, + signedOrder.takerAssetAmount, + salt, + signedOrder.signature, + result.signature, + { + value: signedOrder.takerAssetAmount, + from: normalizedTakerAddress, + gas: GAS_LIMIT + } + ) + } + } + + async cancel(signedOrder: SignedOrder) { + return await this.exchangeWrapper.cancelOrderAsync(signedOrder) + } + + async gift(tokenAddress: string, receiverAddress: string, senderAddress: string, tokenId: number) { + return await this.erc721Token.transferFromAsync( + tokenAddress, + receiverAddress, + senderAddress, + new BigNumber(tokenId) + ) + } + + async getOrders(tokenAddresses?: string[]) { + const orders = await this.httpClient.getOrdersAsync({ networkId: this.networkId }) + const refinedOrders: RefinedOrders = {} + for (const order of orders.records) { + const assetData = assetDataUtils.decodeERC721AssetData(order.order.makerAssetData) + const tokenId = assetData.tokenId.toString() + if(!this.whitelists || this.whitelists.includes(assetData.tokenAddress)) { + if(!tokenAddresses || tokenAddresses.length === 0 || tokenAddresses.includes(assetData.tokenAddress)) { + if (!refinedOrders[assetData.tokenAddress]) { + refinedOrders[assetData.tokenAddress] = {} + } + if ( + !refinedOrders[assetData.tokenAddress][tokenId] || + refinedOrders[assetData.tokenAddress][tokenId].takerAssetAmount > order.order.takerAssetAmount + ) { + refinedOrders[assetData.tokenAddress][tokenId] = order.order + } + } + } + } + return refinedOrders + } + + async getOrder(assetContractAddress: string, tokenId: number) { + let order: SignedOrder | undefined + let price: BigNumber + if(!this.whitelists || this.whitelists.includes(assetContractAddress)) { + const assetData = assetDataUtils.encodeERC721AssetData(assetContractAddress, new BigNumber(tokenId)) + const orderbookRequest = { + baseAssetData: assetData, + quoteAssetData: networkToAssetData[this.networkId] + } + const orderBooks = await this.httpClient.getOrderbookAsync(orderbookRequest, { + networkId: this.networkId + }) + orderBooks.asks.records.forEach((record, index) => { + if (index === 0) { + order = record.order + price = record.order.takerAssetAmount + } else if (price > record.order.takerAssetAmount) { + order = record.order + } + }) + } + return order + } + +} diff --git a/templates/.nvmrc b/templates/.nvmrc deleted file mode 100644 index 105efe4d..00000000 --- a/templates/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -v8.15.0 diff --git a/templates/components/molecules/Asset.vue b/templates/components/molecules/Asset.vue index b0b347f7..f59ecfc4 100644 --- a/templates/components/molecules/Asset.vue +++ b/templates/components/molecules/Asset.vue @@ -13,9 +13,11 @@ >label{{ computePrice(asset.order.takerAssetAmount) }} ETH + {{ asset.name }} @@ -26,12 +28,12 @@ diff --git a/templates/package-lock.json b/templates/package-lock.json index 8719686e..955eb464 100644 --- a/templates/package-lock.json +++ b/templates/package-lock.json @@ -1,5 +1,5 @@ { - "name": "Bazaaar.io", + "name": "Satellites", "version": "1.0.0", "lockfileVersion": 1, "requires": true, @@ -6972,8 +6972,7 @@ "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, "detect-newline": { "version": "2.1.0", @@ -7848,7 +7847,7 @@ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#8431eab7b3384e65e8126a4602520b78031666fb", "ethereumjs-util": "^5.1.1" }, "dependencies": { @@ -8291,8 +8290,7 @@ "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "optional": true + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, "expand-tilde": { "version": "2.0.2", @@ -9853,7 +9851,6 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "optional": true, "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" @@ -9955,8 +9952,7 @@ "any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "optional": true + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, "anymatch": { "version": "2.0.0", @@ -10040,8 +10036,7 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "optional": true + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-initial": { "version": "1.1.0", @@ -11025,7 +11020,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "optional": true, "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -11054,7 +11048,6 @@ "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "optional": true, "requires": { "bytes": "3.1.0", "content-type": "~1.0.4", @@ -11072,7 +11065,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, "requires": { "ms": "2.0.0" } @@ -11080,8 +11072,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -11256,7 +11247,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "optional": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -11265,8 +11255,7 @@ "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "optional": true + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" }, "buffer-crc32": { "version": "0.2.13", @@ -11282,8 +11271,7 @@ "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "optional": true + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { "version": "1.1.1", @@ -11293,8 +11281,7 @@ "buffer-to-arraybuffer": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", - "optional": true + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" }, "buffer-xor": { "version": "1.0.3", @@ -11309,8 +11296,7 @@ "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "optional": true + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "bytewise": { "version": "1.1.0", @@ -11767,7 +11753,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "optional": true, "requires": { "safe-buffer": "5.1.2" }, @@ -11775,16 +11760,14 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "optional": true + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { "version": "1.6.0", @@ -11804,20 +11787,17 @@ "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "optional": true + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "optional": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "cookiejar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "optional": true + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" }, "copy-concurrently": { "version": "1.0.5", @@ -11860,7 +11840,6 @@ "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "optional": true, "requires": { "object-assign": "^4", "vary": "^1" @@ -12096,7 +12075,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "optional": true, "requires": { "mimic-response": "^1.0.0" } @@ -12105,7 +12083,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "optional": true, "requires": { "file-type": "^5.2.0", "is-stream": "^1.1.0", @@ -12333,8 +12310,7 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "optional": true + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "des.js": { "version": "1.0.0", @@ -12348,8 +12324,7 @@ "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "optional": true + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detect-file": { "version": "1.0.0", @@ -12410,8 +12385,7 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "optional": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "duplexify": { "version": "3.7.1", @@ -12445,8 +12419,7 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "optional": true + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { "version": "1.3.194", @@ -12485,8 +12458,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "optional": true + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "encoding": { "version": "0.1.12", @@ -12630,8 +12602,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "optional": true + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { "version": "1.0.5", @@ -12990,8 +12961,7 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "optional": true + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eth-block-tracker": { "version": "3.0.1", @@ -13169,7 +13139,6 @@ "version": "0.1.27", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", - "optional": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -13657,7 +13626,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "optional": true, "requires": { "bn.js": "4.11.6", "number-to-bn": "1.7.0" @@ -13666,8 +13634,7 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "optional": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" } } }, @@ -13683,8 +13650,7 @@ "eventemitter3": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", - "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=", - "optional": true + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" }, "events": { "version": "3.0.0", @@ -13790,7 +13756,6 @@ "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "optional": true, "requires": { "accepts": "~1.3.7", "array-flatten": "1.1.1", @@ -13828,7 +13793,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, "requires": { "ms": "2.0.0" } @@ -13836,14 +13800,12 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -14042,8 +14004,7 @@ "file-type": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "optional": true + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" }, "file-uri-to-path": { "version": "1.0.0", @@ -14080,7 +14041,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "optional": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -14095,7 +14055,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, "requires": { "ms": "2.0.0" } @@ -14103,8 +14062,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -14325,8 +14283,7 @@ "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "optional": true + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "fragment-cache": { "version": "0.2.1", @@ -14339,8 +14296,7 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "optional": true + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "from2": { "version": "2.3.0", @@ -14354,14 +14310,12 @@ "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "optional": true + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", - "optional": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0" @@ -14889,7 +14843,6 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "optional": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -15089,7 +15042,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "optional": true, "requires": { "decompress-response": "^3.2.0", "duplexer3": "^0.1.4", @@ -15217,8 +15169,7 @@ "has-symbol-support-x": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "optional": true + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, "has-symbols": { "version": "1.0.0", @@ -15229,7 +15180,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "optional": true, "requires": { "has-symbol-support-x": "^1.4.1" } @@ -15346,7 +15296,6 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "optional": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -15358,16 +15307,14 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "optional": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, "http-https": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", - "optional": true + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" }, "http-signature": { "version": "1.2.0", @@ -15691,8 +15638,7 @@ "ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", - "optional": true + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, "is-absolute": { "version": "1.0.0", @@ -15883,8 +15829,7 @@ "is-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "optional": true + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, "is-observable": { "version": "1.1.0", @@ -15918,8 +15863,7 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "optional": true + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { "version": "2.0.4", @@ -15963,8 +15907,7 @@ "is-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "optional": true + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" }, "is-stream": { "version": "1.1.0", @@ -16148,7 +16091,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "optional": true, "requires": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" @@ -16942,8 +16884,7 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "optional": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "3.2.0", @@ -17060,8 +17001,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "optional": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "mem": { "version": "1.1.0", @@ -17116,8 +17056,7 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "optional": true + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge-source-map": { "version": "1.1.0", @@ -17198,8 +17137,7 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "optional": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { "version": "3.1.10", @@ -17233,8 +17171,7 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "optional": true + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { "version": "1.40.0", @@ -17257,8 +17194,7 @@ "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "optional": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "min-document": { "version": "2.19.0", @@ -17478,8 +17414,7 @@ "nano-json-stream-parser": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "optional": true + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" }, "nanomatch": { "version": "1.2.13", @@ -17507,8 +17442,7 @@ "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "optional": true + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "neo-async": { "version": "2.6.1", @@ -17694,7 +17628,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "optional": true, "requires": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" @@ -17703,8 +17636,7 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "optional": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" } } }, @@ -18026,7 +17958,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", - "optional": true, "requires": { "http-https": "^1.0.0" } @@ -18035,7 +17966,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "optional": true, "requires": { "ee-first": "1.1.1" } @@ -18119,8 +18049,7 @@ "p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "optional": true + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, "p-defer": { "version": "1.0.0", @@ -18162,7 +18091,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "optional": true, "requires": { "p-finally": "^1.0.0" } @@ -18251,8 +18179,7 @@ "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "optional": true + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "pascalcase": { "version": "0.1.1", @@ -18313,8 +18240,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "optional": true + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { "version": "1.1.0", @@ -18453,8 +18379,7 @@ "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "optional": true + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, "prettier": { "version": "1.18.2", @@ -18509,7 +18434,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "optional": true, "requires": { "forwarded": "~0.1.2", "ipaddr.js": "1.9.0" @@ -18621,14 +18545,12 @@ "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "optional": true + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "query-string": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "optional": true, "requires": { "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", @@ -18665,20 +18587,17 @@ "randomhex": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", - "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", - "optional": true + "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=" }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "optional": true + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "optional": true, "requires": { "bytes": "3.1.0", "http-errors": "1.7.2", @@ -19201,7 +19120,6 @@ "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "optional": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -19222,7 +19140,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, "requires": { "ms": "2.0.0" }, @@ -19230,16 +19147,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "optional": true + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -19252,7 +19167,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "optional": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -19264,7 +19178,6 @@ "version": "0.1.12", "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "optional": true, "requires": { "body-parser": "^1.16.0", "cors": "^2.8.1", @@ -19312,8 +19225,7 @@ "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "optional": true + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "sha.js": { "version": "2.4.11", @@ -19353,14 +19265,12 @@ "simple-concat": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "optional": true + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" }, "simple-get": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "optional": true, "requires": { "decompress-response": "^3.3.0", "once": "^1.3.1", @@ -19855,8 +19765,7 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "optional": true + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-browserify": { "version": "2.0.2", @@ -19917,8 +19826,7 @@ "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "optional": true + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, "string-argv": { "version": "0.0.2", @@ -20136,7 +20044,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "optional": true, "requires": { "bl": "^1.0.0", "buffer-alloc": "^1.2.0", @@ -20345,7 +20252,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", - "optional": true, "requires": { "any-promise": "^1.0.0" } @@ -20354,7 +20260,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "optional": true, "requires": { "thenify": ">= 3.1.0 < 4" } @@ -20390,8 +20295,7 @@ "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "optional": true + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { "version": "2.0.10", @@ -20426,8 +20330,7 @@ "to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "optional": true + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, "to-fast-properties": { "version": "1.0.3", @@ -20483,8 +20386,7 @@ "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "optional": true + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, "toposort": { "version": "2.0.2", @@ -20557,7 +20459,6 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "optional": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -20729,8 +20630,7 @@ "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "optional": true + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "unbzip2-stream": { "version": "1.3.3", @@ -20750,8 +20650,7 @@ "underscore": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "optional": true + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, "undertaker": { "version": "1.2.1", @@ -20818,8 +20717,7 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "optional": true + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { "version": "1.0.0", @@ -20900,7 +20798,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "optional": true, "requires": { "prepend-http": "^1.0.1" } @@ -20908,14 +20805,12 @@ "url-set-query": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", - "optional": true + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" }, "url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "optional": true + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, "use": { "version": "3.1.1", @@ -20951,8 +20846,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "optional": true + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.3.2", @@ -20989,8 +20883,7 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "optional": true + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "verror": { "version": "1.10.0", @@ -21098,7 +20991,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.35.tgz", "integrity": "sha512-ayGavbgVk4KL9Y88Uv411fBJ0SVgVfKhKEBweKYzmP0zOqneMzWt6YsyD1n6kRvjAbqA0AfUPEOKyMNjcx2tjw==", - "optional": true, "requires": { "web3-core-helpers": "1.0.0-beta.35", "web3-core-method": "1.0.0-beta.35", @@ -21110,7 +21002,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.35.tgz", "integrity": "sha512-APOu3sEsamyqWt//8o4yq9KF25/uqGm+pQShson/sC4gKzmfJB07fLo2ond0X30E8fIqAPeVCotPXQxGciGUmA==", - "optional": true, "requires": { "underscore": "1.8.3", "web3-eth-iban": "1.0.0-beta.35", @@ -21121,7 +21012,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.35.tgz", "integrity": "sha512-jidImCide8q0GpfsO4L73qoHrbkeWgwU3uOH5DKtJtv0ccmG086knNMRgryb/o9ZgetDWLmDEsJnHjBSoIwcbA==", - "optional": true, "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.35", @@ -21134,7 +21024,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.35.tgz", "integrity": "sha512-GvqXqKq07OmHuVi5uNRg6k79a1/CI0ViCC+EtNv4CORHtDRmYEt5Bvdv6z6FJEiaaQkD0lKbFwNhLxutx7HItw==", - "optional": true, "requires": { "any-promise": "1.3.0", "eventemitter3": "1.1.1" @@ -21144,7 +21033,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.35.tgz", "integrity": "sha512-S+zW2h17ZZQU9oe3yaCJE0E7aJS4C3Kf4kGPDv+nXjW0gKhQQhgVhw1Doq/aYQGqNSWJp7f1VHkz5gQWwg6RRg==", - "optional": true, "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.35", @@ -21157,7 +21045,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.35.tgz", "integrity": "sha512-gXzLrWvcGkGiWq1y33Z4Y80XI8XMrwowiQJkrPSjQ81K5PBKquOGwcMffLaKcwdmEy/NpsOXDeFo3eLE1Ghvvw==", - "optional": true, "requires": { "eventemitter3": "1.1.1", "underscore": "1.8.3", @@ -21188,7 +21075,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.35.tgz", "integrity": "sha512-KUDC+EtFFYG8z01ZleKrASdjj327/rtWHzEt6RWsEj7bBa0bGp9nEh+nqdZx/Sdgz1O8tnfFzJlrRcXpfr1vGg==", - "optional": true, "requires": { "bn.js": "4.11.6", "underscore": "1.8.3", @@ -21199,8 +21085,7 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "optional": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" } } }, @@ -21271,7 +21156,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.35.tgz", "integrity": "sha512-H5wkcNcAIc+h/WoDIKv7ZYmrM2Xqu3O7jBQl1IWo73EDVQji+AoB2i3J8tuwI1yZRInRwrfpI3Zuwuf54hXHmQ==", - "optional": true, "requires": { "bn.js": "4.11.6", "web3-utils": "1.0.0-beta.35" @@ -21280,8 +21164,7 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "optional": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" } } }, @@ -21289,7 +21172,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.35.tgz", "integrity": "sha512-AcM9nnlxu7ZRRxPvkrFB9eLxMM4A2cPfj2aCg21Wb2EpMnhR+b/O1cT33k7ApRowoMpM+T9M8vx2oPNwXfaCOQ==", - "optional": true, "requires": { "web3-core": "1.0.0-beta.35", "web3-core-helpers": "1.0.0-beta.35", @@ -21302,7 +21184,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.35.tgz", "integrity": "sha512-bbwaQ/KohGjIJ6HAKbZ6KrklCAaG6/B7hIbAbVLSFLxF+Yz9lmAgQYaDInpidpC/NLb3WOmcbRF+P77J4qMVIA==", - "optional": true, "requires": { "web3-core": "1.0.0-beta.35", "web3-core-method": "1.0.0-beta.35", @@ -21341,7 +21222,7 @@ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#8431eab7b3384e65e8126a4602520b78031666fb", "ethereumjs-util": "^5.1.1" } }, @@ -21486,7 +21367,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.35.tgz", "integrity": "sha512-DcIMFq52Fb08UpWyZ3ZlES6NsNqJnco4hBS/Ej6eOcASfuUayPI+GLkYVZsnF3cBYqlH+DOKuArcKSuIxK7jIA==", - "optional": true, "requires": { "web3-core-helpers": "1.0.0-beta.35", "xhr2-cookies": "1.1.0" @@ -21496,7 +21376,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.35.tgz", "integrity": "sha512-iB0FG0HcpUnayfa8pn4guqEQ4Y1nrroi/jffdtQgFkrNt0sD3fMSwwC0AbmECqj3tDLl0e1slBR0RENll+ZF0g==", - "optional": true, "requires": { "oboe": "2.1.3", "underscore": "1.8.3", @@ -21507,18 +21386,16 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.35.tgz", "integrity": "sha512-Cx64NgDStynKaUGDIIOfaCd0fZusL8h5avKTkdTjUu2aHhFJhZoVBGVLhoDtUaqZGWIZGcBJOoVf2JkGUOjDRQ==", - "optional": true, "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.35", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "optional": true, "requires": { "ms": "2.0.0" } @@ -21526,13 +21403,11 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "websocket": { "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", - "optional": true, "requires": { "debug": "^2.2.0", "nan": "^2.3.3", @@ -21558,7 +21433,6 @@ "version": "1.0.0-beta.35", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.35.tgz", "integrity": "sha512-Dq6f0SOKj3BDFRgOPnE6ALbzBDCKVIW8mKWVf7tGVhTDHf+wQaWwQSC3aArFSqdExB75BPBPyDpuMTNszhljpA==", - "optional": true, "requires": { "bn.js": "4.11.6", "eth-lib": "0.1.27", @@ -21572,14 +21446,12 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "optional": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" }, "utf8": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", - "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=", - "optional": true + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" } } }, @@ -21946,7 +21818,6 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "optional": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", @@ -21956,8 +21827,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -21976,7 +21846,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "optional": true, "requires": { "buffer-to-arraybuffer": "^0.0.5", "object-assign": "^4.1.1", @@ -21991,7 +21860,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", - "optional": true, "requires": { "xhr-request": "^1.0.1" } @@ -22000,7 +21868,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "optional": true, "requires": { "cookiejar": "^2.1.1" } @@ -22232,8 +22099,7 @@ "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "optional": true + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob": { "version": "7.1.4", @@ -25619,8 +25485,7 @@ "napi-build-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", - "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==", - "optional": true + "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==" }, "natural-compare": { "version": "1.4.0", @@ -25817,7 +25682,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.10.0.tgz", "integrity": "sha512-OT0WepUvYHXdki6DU8LWhEkuo3M44i2paWBYtH9qXtPb9YiKlYEKa5WUII20XEcOv7UJPzfB0kZfPZdW46zdkw==", - "optional": true, "requires": { "semver": "^5.4.1" } @@ -25878,7 +25742,6 @@ "version": "0.7.9", "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-0.7.9.tgz", "integrity": "sha512-vJnonTqmq3frCyTumJqG4g2IZcny3ynkfmbfDfQ90P3ZhRzcWYS/Um1ux6HFmAxmkaQnrZqIYHcGpL7kdqY8jA==", - "optional": true, "requires": { "bindings": "^1.5.0", "nan": "^2.13.2", @@ -26096,8 +25959,7 @@ "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "optional": true + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, "nopt": { "version": "4.0.1", @@ -27780,7 +27642,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz", "integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==", - "optional": true, "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", @@ -27804,7 +27665,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "optional": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -30938,7 +30798,6 @@ "version": "1.16.3", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "optional": true, "requires": { "chownr": "^1.0.1", "mkdirp": "^0.5.1", @@ -30950,7 +30809,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "optional": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -32742,7 +32600,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" }, "dependencies": { "websocket": { @@ -33049,8 +32907,7 @@ "which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "optional": true + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" }, "wide-align": { "version": "1.1.3", diff --git a/templates/pages/market.vue b/templates/pages/market.vue index 12767ecd..01875d88 100644 --- a/templates/pages/market.vue +++ b/templates/pages/market.vue @@ -34,7 +34,6 @@ export default class Index extends Vue { async getAssetDataForOrders(refinedOrders) { const assets: any = [] const promisses: any = [] - console.log(refinedOrders) for (const tokenAddress in refinedOrders) { const baseURL = `${this.$config.api}assets?asset_contract_addresses=${tokenAddress}` for (const tokenId in refinedOrders[tokenAddress]) { diff --git a/templates/pages/mypage.vue b/templates/pages/mypage.vue index 004398c7..3d5432e1 100644 --- a/templates/pages/mypage.vue +++ b/templates/pages/mypage.vue @@ -42,7 +42,6 @@ export default class Index extends Vue { assetContractAddressesQuery = assetContractAddressesQuery + base + assetContractAddress } } - console.log(`${this.$config.api}assets?owner=${owner}&asset_contract_address=${assetContractAddressesQuery}`) const assets = await this.$axios.get( `${this.$config.api}assets?owner=${owner}&asset_contract_address=${assetContractAddressesQuery}` ) diff --git a/templates/plugins/config.ts b/templates/plugins/config.ts index 94dacd7a..cebff800 100644 --- a/templates/plugins/config.ts +++ b/templates/plugins/config.ts @@ -1,7 +1,12 @@ -const NETWORK_ID = Number(process.env.NETWORK_ID) || 1 -const RELAYER = process.env.RELAYER || 'https://relayer-mainnet.nftsatellites.com/v2/' -const recipientAddress = process.env.RECIPIENT_ADDRESS || '0x5926824315aF6016f98E83De841C5B28b959DF51' -const feeRatio = Number(process.env.FEE_RARIO) || 900 +const networkId = Number(process.env.NETWORK_ID) || 1 +const relayer = process.env.RELAYER || 'http://relayer-mainnet.nftsatellites.com/v2/' +const ga = process.env.GA || 'UA-130401695-4' +const feeBase = process.env.FEE_BASE || 10000 +const feePer = process.env.FEE_PER || 100 +const satellitesAddress = '0x764Fe0b6dF8575b30bCfd0c9Bb2A7ADb390b5359' +const satellitesFeeRatio = process.env.SATELLITES_FEE_RATIO || 100 +const ownerAddress = process.env.OWNER_ADDRESS || satellitesAddress +const ownerFeeRatio = Number(process.env.OWNER_FEE_RARIO) || 900 const networkIdToInfura: { [networkId: number]: string } = { 1: 'https://mainnet.infura.io/', @@ -21,171 +26,54 @@ const networkIdToAPI: { [networkId: number]: string } = { const networkIdToTokens: { [networkId: number]: any[] } = { 1: [ { - contract: '0x06012c8cf97bead5deae237070f9587f8e7a266d', - symbol: 'CK', - name: 'CryptoKitties' + contract: '0x273f7f8e6489682df756151f5525576e322d51a3', + symbol: 'MCHH', + name: 'MyCryptoHeroes:Hero' } ], 4: [ { - contract: '0x16baf0de678e52367adc69fd067e5edd1d33e3bf', - symbol: 'CK', - name: 'CryptoKitties' + contract: '0x84f6261350151dc9cbf5b33c5354fe9a82166e26', + symbol: 'BBB', + name: 'BB Batch' } ] } -const networkIdToExceptions = { - 1: { - '0x06012c8cf97bead5deae237070f9587f8e7a266d': [ - { - constant: true, - inputs: [{ name: '', type: 'uint256' }], - name: 'kittyIndexToApproved', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [ - { - name: '_approved', - type: 'address' - }, - { - name: '_tokenId', - type: 'uint256' - } - ], - name: 'approve', - outputs: [], - payable: true, - stateMutability: 'payable', - type: 'function' - } - ], - '0x1a94fce7ef36bc90959e206ba569a12afbc91ca1': [ - { - constant: true, - inputs: [{ name: '', type: 'uint256' }], - name: 'entityIndexToApproved', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [ - { - name: '_approved', - type: 'address' - }, - { - name: '_tokenId', - type: 'uint256' - } - ], - name: 'approve', - outputs: [], - payable: true, - stateMutability: 'payable', - type: 'function' - } - ] +const feeDistribution = [ + // first fee recipient is satellites address. This Fee goes to issueHunt and is returned to the developer. + { + recipients: satellitesAddress, + ratio: satellitesFeeRatio }, - 4: { - '0x16baf0de678e52367adc69fd067e5edd1d33e3bf': [ - { - constant: true, - inputs: [{ name: '', type: 'uint256' }], - name: 'kittyIndexToApproved', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [ - { - name: '_approved', - type: 'address' - }, - { - name: '_tokenId', - type: 'uint256' - } - ], - name: 'approve', - outputs: [], - payable: true, - stateMutability: 'payable', - type: 'function' - } - ], - '0x587ae915d4ccaa5c2220c638069f2605e1f7404c': [ - { - constant: true, - inputs: [{ name: '', type: 'uint256' }], - name: 'entityIndexToApproved', - outputs: [{ name: '', type: 'address' }], - payable: false, - stateMutability: 'nonpayable', - type: 'function' - }, - { - constant: false, - inputs: [ - { - name: '_approved', - type: 'address' - }, - { - name: '_tokenId', - type: 'uint256' - } - ], - name: 'approve', - outputs: [], - payable: true, - stateMutability: 'payable', - type: 'function' - } - ] + { + recipients: ownerAddress, + ratio: ownerFeeRatio } -} +] -const addressToFee = { - // 0 is satellitesAddress. This Fee goes to issueHunt and is returned to the developer. - '0': { - recipients: '0x5926824315aF6016f98E83De841C5B28b959DF51', - ratio: 100 - }, - '1': { - recipients: recipientAddress, - ratio: feeRatio - } +let defaultRatio = 0 + +for (let i = 0; i < feeDistribution.length; i++) { + defaultRatio += Number(feeDistribution[i].ratio) } const whitelists: any[] = [] -for (let i = 0; i < networkIdToTokens[NETWORK_ID].length; i++) { - whitelists.push(networkIdToTokens[NETWORK_ID][i].contract) +for (let i = 0; i < networkIdToTokens[networkId].length; i++) { + whitelists.push(networkIdToTokens[networkId][i].contract) } export const config = { - networkId: NETWORK_ID, - relayer: RELAYER, - exceptions: networkIdToExceptions[NETWORK_ID], - infura: networkIdToInfura[NETWORK_ID], - etherscan: networkIdToEtherscan[NETWORK_ID], - api: networkIdToAPI[NETWORK_ID], - tokens: networkIdToTokens[NETWORK_ID], + networkId: networkId, + relayer: relayer, + ga: ga, + infura: networkIdToInfura[networkId], + etherscan: networkIdToEtherscan[networkId], + api: networkIdToAPI[networkId], + tokens: networkIdToTokens[networkId], whitelists: whitelists, - addressToFee: addressToFee, - defaultRatio: feeRatio + addressToFee[0].ratio, - feeBase: 10000, - perBase: 100 + feeDistribution: feeDistribution, + defaultRatio: defaultRatio, + feeBase: feeBase, + feePer: feePer } diff --git a/templates/plugins/ga.js b/templates/plugins/ga.js index 59ca3487..afe01b9b 100644 --- a/templates/plugins/ga.js +++ b/templates/plugins/ga.js @@ -1,4 +1,5 @@ /* eslint-disable */ +import { config } from './config' export default ({ app }) => { /* @@ -15,7 +16,7 @@ export default ({ app }) => { /* ** Set the current page */ - ga('create', 'UA-130401695-4', 'auto') + ga('create', config.ga, 'auto') /* ** Every time the route changes (fired on initialization too) */ diff --git a/templates/plugins/initialize.ts b/templates/plugins/initialize.ts index 31d4c1f9..9771f7c8 100644 --- a/templates/plugins/initialize.ts +++ b/templates/plugins/initialize.ts @@ -1,4 +1,5 @@ -import Satellites from 'satellites.js' +import Satellites from '../../src' +// import Satellites from 'satellites.js' import { config } from './config' const Web3 = require('web3') @@ -14,12 +15,7 @@ export default async function({ store, isServer }, inject) { if (!ethereum && !web3) { inject('web3', new Web3(store.$config.infura)) - const satellites = new Satellites( - store.$config.networkId, - store.$web3.currentProvider, - store.$config.relayer, - store.$config.whitelists - ) + const satellites = new Satellites(store.$config.networkId, store.$web3.currentProvider, store.$config.relayer) inject('satellites', satellites) return } @@ -35,12 +31,7 @@ export default async function({ store, isServer }, inject) { inject('web3', new Web3(web3.currentProvider)) } - const satellites = new Satellites( - store.$config.networkId, - store.$web3.currentProvider, - store.$config.relayer, - store.$config.whitelists - ) + const satellites = new Satellites(store.$config.networkId, store.$web3.currentProvider, store.$config.relayer) inject('satellites', satellites) const accounts = await store.$web3.eth.getAccounts() diff --git a/templates/static/favicon.ico b/templates/static/favicon.ico deleted file mode 100644 index 0beb4a679c35abe6add34c76afcf447c25c0df6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmeHLOHUL*5FY=5C(k5aJede08jVq-qS1>FG%=pN`3Hz6k47&VSr#-PVq6q2ASQ|^ zQBcuDMPdYI-(Yy`z`kbK_movVJLt}%cNR8y(Ao5MQr**ERdrQ;wJQjl@KaMG(6`{( zEC^c!LD+@^MZy6bBxetrVJTj6SFbZ~Gq85Z$|e`^r@d(=9tdbmQJO z+}qXwqN`4m;k;&_;=6(F6OfpG26AWw$6IZLM`3QT8AQUwI}3T5U~%LcB&ME%9DD;w z-ylTCyJ7BSGroV4=|cKctOwc^>S==fiUh_-8oLd?yZd43V+-VxbGWP;w}4v6Lnayk z+UxH;f_l_erUM5*HsL|P41lT@Ot>Zi?orTZ!H1_R(}9DZPeswboC%62P{QxPfA6Sv zA5Lyocp4ofr$P5S!?Mv^0g`khfGLrz}Fa_ky!~ zD1)Dq7hrzq3V84A)6R2IKGcD~>lj48cA*LxOC6Rzxz~+PXDBtWwJQUIi2tRfZgB<+$WFOjJZ|?)L z|Ne2v#zH3iydq)EKD#daGtxB1d84fl=>C5WTn06lGT~>Iea`9-$9~Fh>BB9}ej~Ra zwhw(zTx9hm{jZTDcia0;k0l;H9$ZMrQHPr>&WL*{4~VPjZj<73tU=b?5E;FWe$%+q zDtA_8W$?*1;(+v$2nobXO!b3;Je^Y_R%SCL)bRMtC1#~-j-P|f})6AfxPjNC(d5El{m%Kld@@8XmF5E;Fp)j8@_(U&Iw+TFV@ z=lGxD>-7isvHq8M(A`kX?fPQ>y9V4!@%8=Ho}JoXZCw4le+j=>ze{3tqwHrm=gj%B h5%`D^z{Y- diff --git a/templates/static/favicon.png b/templates/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..e25b81ff248c06257dcba88a8bf8cfe06b45adfa GIT binary patch literal 3056 zcmY*bc{~(c7alQoLn7)Oj3HZ?p@eCSHA~qI@sVw8W1BH!8T;}k60#(_Nw$=+G=xZ) zWFILclRZrmij>Oo(ffYy_kH*GJNKS*?sJ~!ocq_kZfS1B$9<9;008ir7#mn0oRCA~ zWIx!65fNVx4i=)dkshFy4qiS8xbVgfL;!&2*rBli3W`Jz01jBReXzZmDFTBFPyj#6vYjJK#&9vFNC#$;os#4krvb^I2ezB!NS7Al*7&_;|Sg`6-`Y|7+e*ms;YE= zP$Gs02D_1z0*O+8k^G0pz>|m}VDZ6NTp;9-*UcRl608M<9t!=l{^~Or>-AryK;qwH z9SjINyn(4G!(sn$ACw{wvj__U*7HF5kRPRj{Ehs-+}}D#*rE9UH1pS_zq1FUqPUT; zf1VA+ZQ3pC003~qO$>C=_FPXchvRQ8o!F0N&b;{)n9j#lc=f7GTpSxPAwCY0)Uz7HZp?84Uae9I zE7Pf6cq(aUSLNIsv_F-*|I^T~s+oGNQk4eh-ipFt7S)gR$59?ECUa1|h8J*?DbhNm zg%Mm4(94fs`=`-r)9d|?j=H+Y1du5%TeeOhS%&rN%YmHPpLGth-0xRNwRrxU$?%na z@BO2IwTZZ-Q**g&@A#(}>wyv4St+S)L-p<#XlgniuTfsj%u}XzMtddv1AP&*V~xvC zO46xR*k;BjT;rXNGp#Vu+;~Bf!hrp0@7ohkLY*T&Gk@jQL@iVtTgUBu4iQAxhptKq z<~vlVlof{WW}Uj|=n}lw8gI;_5n3=>(yRn*sO)7j-h}VH^SXQHL+y@?K*ZSjRAe@g zS29Q0^BwYmCFH%Y8_qf+eAvy6_P&!A`K{RgaW!`EbQtV0k&kOts)RSAISd@7B{CW! z1%A{$vDnM3EI&&QP|oI{eR3zd^txH25yM?SUiGNPMcwM}(se!T zFBsw6HkD=;Q$yDpWNx&^-_oj&+5K6kh1tHbi#-PhdFz;*HumHc9Rzo8a<%49b#=h6y6Ll#}KApVP0BX+Gj41CB<=$Sp5T^8) z40vi0S9p(EEqmF8v5i)=dUm3p^#i)46kc_TD0!1$vC`&{$o&!<*Un#b4woqOD!*)fKJjNp*St zaDr2zdTWYpH0+3`)Tk9gn8`S=mdHB0vN}Lye6{xL-u^|!`hXc0T6hdwznRIS zuXhR_NoSsY)&=}iAc8|O8Hx4=xi)30y)5NPa^7`Zu`K$Mds_|^CXOl6xP9GI(=`>R zr_jP%9PRC<>Wx*NimT})n_d!%vQk~%58MgJ(F_=h`i3T2=`KBb5|ank?NLtBoP{`C zG3lJU)TKvku^$$jZhq0`r}eTb*Vkw>r6rWra*a?{{*=tFlOd4=ESu?i`Afm-Od4ur zo0{sXkaGOT5bO|SQ#<$5<`ky%(=Tv?#-fO#JHOD((2n|Id@sH+f#IRdcufG z*am8tk|DcbUMq3t=$|Y<(%ltH7-~_nlk7#88H*W37VoKO66zg6CTRu`?no= zZrl7J0(^XY-6_JSg$O3>oHi~lBQJCFGj2YkaG2Nr2)prJgfQ3WZbvJERFqcwTc!n| zAMw*5w%sRx9to@zKK{oAP>`>o>nNr(p0y$`=rswQ?kSLafwICY%-Od+y)IiGNY>gK z25ug&nZV4eX50{gDV*TRaQ_$C>^=7OtS{!|PSUKyG! zJpGy0W3wQ! z&LP*Tk6JmN7v|s>)0GQ3wliZP=@&!7SSFdbjbD}Vephj%?dY*}ow2+@{6ijKk2qz^ zC+TfO;|wz3`OVAXNYd9)i_qAOmqP{lFb`3bE)~Rn-NysO-rgs%%<=&*y(@5m1=$NV z32&-cI&xdHSoDfrI;D!?CM+ve5@?lWg7-4_uqgVLb&Jc`#*WKhvIVd@=o(KBQoV-E zo^uCJ?M+LD@2};g-}IiQM*J8-h__Y_sixd7kYCjph&HsHBTUW@(Gv!9Sg~>dHF5pT zFUonQUiK8b&X-vpKzvTK(t7*%Ju(vI>mG2jg6K-k#Xi(XxfSV}%%mBcbXFF9_B)jd zziTS0{>?lDw`o|dEfnglXj%A1JCSE(b+FV%QF!RubFO-ZV)>AP9b9)qh$hMj9Tpuu z#_4Bkn>geuk_yzknbZ-x{&5*zC}mZ#3pA{n$ zM!^GFSiRfBp{lHLfvWk6_moC((=UAO*hV`U#pX)ASZ|>e8(je_Ujk-?BQ@={73VG zG=Vs9vP?E?@rahJyl}V_t%&&Uxc>lsSa#F9|2Q@AmQB!I4fx4>)+hN~UjWXD=dwXcj8(0VjQR*-@5?6W>(G7v*jQ6c2w3x}54?XYQJDU#EnaE~$qNNyp&)8JW@CeAjz7`oR5^J* z|M`vf*r=mDiIw^EZ-!{y^g-^56&>jm4=6YNUZ0mxfo=>u(^j5Tv3WB zV=vg>NEJFbm<` z{dEYu`)4DZSZV_rB;4#+<}cVbZ@Fout(d$*SR z=|nYK;Q)*E?YG+0W#d%y!esOZ*VYy5H&9gyv}L-dH2HxKQ*T5RpQwA zmGC?^HOgnpNF!ki)48%TNG4Euq;9<~rd)tBPZNtIM|@gV*UQ^2vfCe;!n}T^|8!+# znbb7*oHqlZx|(Ab%Zf9;Vy91&92mKj_C7r%&2eU`KIB(h?&}U)i_{vB;rdfyT8Kez r+*v2Scl%ky;>kbA&QqPjH}*s_Y}=!*Zle$X^Z=6!<_5KTt_lAJw(FDW literal 0 HcmV?d00001