Improve workflow with several RPC URLs in oracle (#476)
This commit is contained in:
parent
389cea3c39
commit
611b8c539d
@ -41,6 +41,7 @@ ORACLE_HOME_TO_FOREIGN_ALLOWANCE_LIST | Filename with a list of addresses, separ
|
|||||||
ORACLE_HOME_TO_FOREIGN_BLOCK_LIST | Filename with a list of addresses, separated by newlines. If set, determines the blocked set of accounts whose requests will not be automatically processed by the CollectedSignatures watcher. Has a lower priority than the `ORACLE_HOME_TO_FOREIGN_ALLOWANCE_LIST` | string
|
ORACLE_HOME_TO_FOREIGN_BLOCK_LIST | Filename with a list of addresses, separated by newlines. If set, determines the blocked set of accounts whose requests will not be automatically processed by the CollectedSignatures watcher. Has a lower priority than the `ORACLE_HOME_TO_FOREIGN_ALLOWANCE_LIST` | string
|
||||||
ORACLE_HOME_TO_FOREIGN_CHECK_SENDER | If set to `true`, instructs the oracle to do an extra check for transaction origin in the block/allowance list. `false` by default. | `true` / `false`
|
ORACLE_HOME_TO_FOREIGN_CHECK_SENDER | If set to `true`, instructs the oracle to do an extra check for transaction origin in the block/allowance list. `false` by default. | `true` / `false`
|
||||||
ORACLE_ALWAYS_RELAY_SIGNATURES | If set to `true`, the oracle will always relay signatures even if it was not the last who finilized the signatures collecting process. The default is `false`. | `true` / `false`
|
ORACLE_ALWAYS_RELAY_SIGNATURES | If set to `true`, the oracle will always relay signatures even if it was not the last who finilized the signatures collecting process. The default is `false`. | `true` / `false`
|
||||||
|
ORACLE_RPC_REQUEST_TIMEOUT | Timeout in milliseconds for a single RPC request. Default value is `ORACLE_*_RPC_POLLING_INTERVAL * 2`. | integer
|
||||||
|
|
||||||
|
|
||||||
## UI configuration
|
## UI configuration
|
||||||
|
@ -29,6 +29,7 @@ ORACLE_FOREIGN_START_BLOCK=
|
|||||||
|
|
||||||
ORACLE_LOG_LEVEL=debug
|
ORACLE_LOG_LEVEL=debug
|
||||||
ORACLE_MAX_PROCESSING_TIME=20000
|
ORACLE_MAX_PROCESSING_TIME=20000
|
||||||
|
ORACLE_RPC_REQUEST_TIMEOUT=5000
|
||||||
|
|
||||||
ORACLE_HOME_TO_FOREIGN_ALLOWANCE_LIST=access-lists/allowance_list.txt
|
ORACLE_HOME_TO_FOREIGN_ALLOWANCE_LIST=access-lists/allowance_list.txt
|
||||||
ORACLE_HOME_TO_FOREIGN_BLOCK_LIST=access-lists/block_list.txt
|
ORACLE_HOME_TO_FOREIGN_BLOCK_LIST=access-lists/block_list.txt
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
const baseConfig = require('./base.config')
|
const baseConfig = require('./base.config')
|
||||||
|
|
||||||
const { web3Foreign } = require('../src/services/web3')
|
const { web3Foreign, web3ForeignRedundant } = require('../src/services/web3')
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
...baseConfig.bridgeConfig,
|
...baseConfig.bridgeConfig,
|
||||||
@ -8,5 +8,6 @@ module.exports = {
|
|||||||
oldQueue: 'foreign',
|
oldQueue: 'foreign',
|
||||||
id: 'foreign',
|
id: 'foreign',
|
||||||
name: 'sender-foreign',
|
name: 'sender-foreign',
|
||||||
web3: web3Foreign
|
web3: web3Foreign,
|
||||||
|
web3Redundant: web3ForeignRedundant
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
const baseConfig = require('./base.config')
|
const baseConfig = require('./base.config')
|
||||||
|
|
||||||
const { web3Home } = require('../src/services/web3')
|
const { web3Home, web3HomeRedundant } = require('../src/services/web3')
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
...baseConfig.bridgeConfig,
|
...baseConfig.bridgeConfig,
|
||||||
@ -8,5 +8,6 @@ module.exports = {
|
|||||||
oldQueue: 'home',
|
oldQueue: 'home',
|
||||||
id: 'home',
|
id: 'home',
|
||||||
name: 'sender-home',
|
name: 'sender-home',
|
||||||
web3: web3Home
|
web3: web3Home,
|
||||||
|
web3Redundant: web3HomeRedundant
|
||||||
}
|
}
|
||||||
|
@ -26,15 +26,13 @@
|
|||||||
"amqplib": "^0.5.2",
|
"amqplib": "^0.5.2",
|
||||||
"bignumber.js": "^7.2.1",
|
"bignumber.js": "^7.2.1",
|
||||||
"dotenv": "^5.0.1",
|
"dotenv": "^5.0.1",
|
||||||
"http-list-provider": "0.0.5",
|
|
||||||
"ioredis": "^3.2.2",
|
"ioredis": "^3.2.2",
|
||||||
"node-fetch": "^2.1.2",
|
"node-fetch": "^2.1.2",
|
||||||
"pino": "^4.17.3",
|
"pino": "^4.17.3",
|
||||||
"pino-pretty": "^2.0.1",
|
"pino-pretty": "^2.0.1",
|
||||||
"promise-limit": "^2.7.0",
|
"promise-limit": "^2.7.0",
|
||||||
"promise-retry": "^1.1.1",
|
"promise-retry": "^1.1.1",
|
||||||
"web3": "1.0.0-beta.34",
|
"web3": "^1.3.0"
|
||||||
"web3-utils": "1.0.0-beta.34"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"bn-chai": "^1.0.1",
|
"bn-chai": "^1.0.1",
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
require('../../env')
|
require('../../env')
|
||||||
const Web3 = require('web3')
|
const { toWei } = require('web3').utils
|
||||||
const Web3Utils = require('web3-utils')
|
const { web3Foreign } = require('../../src/services/web3')
|
||||||
const rpcUrlsManager = require('../../src/services/getRpcUrlsManager')
|
const { sendTx } = require('../../src/tx/sendTx')
|
||||||
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
|
||||||
const { ERC20_ABI } = require('../../../commons')
|
const { ERC20_ABI } = require('../../../commons')
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@ -17,37 +16,23 @@ const NUMBER_OF_DEPOSITS_TO_SEND = process.argv[2] || process.env.NUMBER_OF_DEPO
|
|||||||
|
|
||||||
const { FOREIGN_ERC_TO_ERC_ABI } = require('../../../commons')
|
const { FOREIGN_ERC_TO_ERC_ABI } = require('../../../commons')
|
||||||
|
|
||||||
const foreignRpcUrl = rpcUrlsManager.foreignUrls[0]
|
|
||||||
const foreignProvider = new Web3.providers.HttpProvider(foreignRpcUrl)
|
|
||||||
const web3Foreign = new Web3(foreignProvider)
|
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
const bridge = new web3Foreign.eth.Contract(FOREIGN_ERC_TO_ERC_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
const bridge = new web3Foreign.eth.Contract(FOREIGN_ERC_TO_ERC_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
||||||
const bridgeableTokenAddress = await bridge.methods.erc20token().call()
|
const bridgeableTokenAddress = await bridge.methods.erc20token().call()
|
||||||
const poa20 = new web3Foreign.eth.Contract(ERC20_ABI, bridgeableTokenAddress)
|
const poa20 = new web3Foreign.eth.Contract(ERC20_ABI, bridgeableTokenAddress)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const foreignChainId = await sendRawTx({
|
const foreignChainId = await web3Foreign.eth.getChainId()
|
||||||
chain: 'foreign',
|
let nonce = await web3Foreign.eth.getTransactionCount(USER_ADDRESS)
|
||||||
params: [],
|
|
||||||
method: 'net_version'
|
|
||||||
})
|
|
||||||
let nonce = await sendRawTx({
|
|
||||||
chain: 'foreign',
|
|
||||||
method: 'eth_getTransactionCount',
|
|
||||||
params: [USER_ADDRESS, 'latest']
|
|
||||||
})
|
|
||||||
nonce = Web3Utils.hexToNumber(nonce)
|
|
||||||
let actualSent = 0
|
let actualSent = 0
|
||||||
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
||||||
const gasLimit = await poa20.methods
|
const gasLimit = await poa20.methods
|
||||||
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
||||||
.estimateGas({ from: USER_ADDRESS })
|
.estimateGas({ from: USER_ADDRESS })
|
||||||
const data = await poa20.methods
|
const data = await poa20.methods
|
||||||
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
||||||
.encodeABI({ from: USER_ADDRESS })
|
.encodeABI({ from: USER_ADDRESS })
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: 'foreign',
|
|
||||||
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
||||||
data,
|
data,
|
||||||
nonce,
|
nonce,
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
require('../../env')
|
require('../../env')
|
||||||
const Web3 = require('web3')
|
const { toWei } = require('web3').utils
|
||||||
const Web3Utils = require('web3-utils')
|
const { web3Home } = require('../../src/services/web3')
|
||||||
const rpcUrlsManager = require('../../src/services/getRpcUrlsManager')
|
const { sendTx } = require('../../src/tx/sendTx')
|
||||||
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
|
||||||
const { isValidAmount } = require('../utils/utils')
|
const { isValidAmount } = require('../utils/utils')
|
||||||
const { HOME_ERC_TO_ERC_ABI } = require('../../../commons')
|
const { HOME_ERC_TO_ERC_ABI } = require('../../../commons')
|
||||||
|
|
||||||
@ -46,10 +45,6 @@ const BRIDGEABLE_TOKEN_ABI = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
const homeRpcUrl = rpcUrlsManager.homeUrls[0]
|
|
||||||
const homeProvider = new Web3.providers.HttpProvider(homeRpcUrl)
|
|
||||||
const web3Home = new Web3(homeProvider)
|
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
const bridge = new web3Home.eth.Contract(HOME_ERC_TO_ERC_ABI, COMMON_HOME_BRIDGE_ADDRESS)
|
const bridge = new web3Home.eth.Contract(HOME_ERC_TO_ERC_ABI, COMMON_HOME_BRIDGE_ADDRESS)
|
||||||
const BRIDGEABLE_TOKEN_ADDRESS = await bridge.methods.erc677token().call()
|
const BRIDGEABLE_TOKEN_ADDRESS = await bridge.methods.erc677token().call()
|
||||||
@ -58,27 +53,17 @@ async function main() {
|
|||||||
try {
|
try {
|
||||||
await isValidAmount(HOME_MIN_AMOUNT_PER_TX, bridge)
|
await isValidAmount(HOME_MIN_AMOUNT_PER_TX, bridge)
|
||||||
|
|
||||||
const homeChainId = await sendRawTx({
|
const homeChainId = await web3Home.eth.getChainId()
|
||||||
chain: 'home',
|
let nonce = await web3Home.eth.getTransactionCount(USER_ADDRESS)
|
||||||
params: [],
|
|
||||||
method: 'net_version'
|
|
||||||
})
|
|
||||||
let nonce = await sendRawTx({
|
|
||||||
chain: 'home',
|
|
||||||
method: 'eth_getTransactionCount',
|
|
||||||
params: [USER_ADDRESS, 'latest']
|
|
||||||
})
|
|
||||||
nonce = Web3Utils.hexToNumber(nonce)
|
|
||||||
let actualSent = 0
|
let actualSent = 0
|
||||||
for (let i = 0; i < Number(NUMBER_OF_WITHDRAWALS_TO_SEND); i++) {
|
for (let i = 0; i < Number(NUMBER_OF_WITHDRAWALS_TO_SEND); i++) {
|
||||||
const gasLimit = await erc677.methods
|
const gasLimit = await erc677.methods
|
||||||
.transferAndCall(COMMON_HOME_BRIDGE_ADDRESS, Web3Utils.toWei(HOME_MIN_AMOUNT_PER_TX), '0x')
|
.transferAndCall(COMMON_HOME_BRIDGE_ADDRESS, toWei(HOME_MIN_AMOUNT_PER_TX), '0x')
|
||||||
.estimateGas({ from: USER_ADDRESS })
|
.estimateGas({ from: USER_ADDRESS })
|
||||||
const data = await erc677.methods
|
const data = await erc677.methods
|
||||||
.transferAndCall(COMMON_HOME_BRIDGE_ADDRESS, Web3Utils.toWei(HOME_MIN_AMOUNT_PER_TX), '0x')
|
.transferAndCall(COMMON_HOME_BRIDGE_ADDRESS, toWei(HOME_MIN_AMOUNT_PER_TX), '0x')
|
||||||
.encodeABI({ from: USER_ADDRESS })
|
.encodeABI({ from: USER_ADDRESS })
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: 'home',
|
|
||||||
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
||||||
data,
|
data,
|
||||||
nonce,
|
nonce,
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
require('../../env')
|
require('../../env')
|
||||||
const Web3 = require('web3')
|
const { toWei } = require('web3').utils
|
||||||
const Web3Utils = require('web3-utils')
|
const { web3Foreign } = require('../../src/services/web3')
|
||||||
const rpcUrlsManager = require('../../src/services/getRpcUrlsManager')
|
const { sendTx } = require('../../src/tx/sendTx')
|
||||||
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
|
||||||
|
|
||||||
const {
|
const {
|
||||||
USER_ADDRESS,
|
USER_ADDRESS,
|
||||||
@ -16,37 +15,23 @@ const NUMBER_OF_DEPOSITS_TO_SEND = process.argv[2] || process.env.NUMBER_OF_DEPO
|
|||||||
|
|
||||||
const { ERC20_ABI, FOREIGN_ERC_TO_NATIVE_ABI } = require('../../../commons')
|
const { ERC20_ABI, FOREIGN_ERC_TO_NATIVE_ABI } = require('../../../commons')
|
||||||
|
|
||||||
const foreignRpcUrl = rpcUrlsManager.foreignUrls[0]
|
|
||||||
const foreignProvider = new Web3.providers.HttpProvider(foreignRpcUrl)
|
|
||||||
const web3Foreign = new Web3(foreignProvider)
|
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
const bridge = new web3Foreign.eth.Contract(FOREIGN_ERC_TO_NATIVE_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
const bridge = new web3Foreign.eth.Contract(FOREIGN_ERC_TO_NATIVE_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
||||||
const bridgeableTokenAddress = await bridge.methods.erc20token().call()
|
const bridgeableTokenAddress = await bridge.methods.erc20token().call()
|
||||||
const poa20 = new web3Foreign.eth.Contract(ERC20_ABI, bridgeableTokenAddress)
|
const poa20 = new web3Foreign.eth.Contract(ERC20_ABI, bridgeableTokenAddress)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const foreignChainId = await sendRawTx({
|
const foreignChainId = await web3Foreign.eth.getChainId()
|
||||||
chain: 'foreign',
|
let nonce = await web3Foreign.eth.getTransactionCount(USER_ADDRESS)
|
||||||
params: [],
|
|
||||||
method: 'net_version'
|
|
||||||
})
|
|
||||||
let nonce = await sendRawTx({
|
|
||||||
chain: 'foreign',
|
|
||||||
method: 'eth_getTransactionCount',
|
|
||||||
params: [USER_ADDRESS, 'latest']
|
|
||||||
})
|
|
||||||
nonce = Web3Utils.hexToNumber(nonce)
|
|
||||||
let actualSent = 0
|
let actualSent = 0
|
||||||
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
||||||
const gasLimit = await poa20.methods
|
const gasLimit = await poa20.methods
|
||||||
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
||||||
.estimateGas({ from: USER_ADDRESS })
|
.estimateGas({ from: USER_ADDRESS })
|
||||||
const data = await poa20.methods
|
const data = await poa20.methods
|
||||||
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
.transfer(COMMON_FOREIGN_BRIDGE_ADDRESS, toWei(FOREIGN_MIN_AMOUNT_PER_TX))
|
||||||
.encodeABI({ from: USER_ADDRESS })
|
.encodeABI({ from: USER_ADDRESS })
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: 'foreign',
|
|
||||||
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
||||||
data,
|
data,
|
||||||
nonce,
|
nonce,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
require('../../env')
|
require('../../env')
|
||||||
const Web3Utils = require('web3-utils')
|
|
||||||
const { web3Home } = require('../../src/services/web3')
|
const { web3Home } = require('../../src/services/web3')
|
||||||
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
const { sendTx } = require('../../src/tx/sendTx')
|
||||||
const { isValidAmount } = require('../utils/utils')
|
const { isValidAmount } = require('../utils/utils')
|
||||||
const { HOME_ERC_TO_NATIVE_ABI } = require('../../../commons')
|
const { HOME_ERC_TO_NATIVE_ABI } = require('../../../commons')
|
||||||
|
|
||||||
@ -21,21 +20,11 @@ async function main() {
|
|||||||
try {
|
try {
|
||||||
await isValidAmount(HOME_MIN_AMOUNT_PER_TX, bridge)
|
await isValidAmount(HOME_MIN_AMOUNT_PER_TX, bridge)
|
||||||
|
|
||||||
const homeChainId = await sendRawTx({
|
const homeChainId = await web3Home.eth.getChainId()
|
||||||
chain: 'home',
|
let nonce = await web3Home.eth.getTransactionCount(USER_ADDRESS)
|
||||||
params: [],
|
|
||||||
method: 'net_version'
|
|
||||||
})
|
|
||||||
let nonce = await sendRawTx({
|
|
||||||
chain: 'home',
|
|
||||||
method: 'eth_getTransactionCount',
|
|
||||||
params: [USER_ADDRESS, 'latest']
|
|
||||||
})
|
|
||||||
nonce = Web3Utils.hexToNumber(nonce)
|
|
||||||
let actualSent = 0
|
let actualSent = 0
|
||||||
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: 'home',
|
|
||||||
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
||||||
data: '0x',
|
data: '0x',
|
||||||
nonce,
|
nonce,
|
||||||
|
@ -1,23 +1,20 @@
|
|||||||
require('../env')
|
require('../env')
|
||||||
const Web3 = require('web3')
|
|
||||||
|
|
||||||
const { BRIDGE_VALIDATORS_ABI } = require('../../commons')
|
const { BRIDGE_VALIDATORS_ABI } = require('../../commons')
|
||||||
const rpcUrlsManager = require('../src/services/getRpcUrlsManager')
|
const { web3Home, web3Foreign } = require('../src/services/web3')
|
||||||
const { bridgeConfig } = require('../config/base.config')
|
const { bridgeConfig } = require('../config/base.config')
|
||||||
|
|
||||||
const homeABI = bridgeConfig.homeBridgeAbi
|
const homeABI = bridgeConfig.homeBridgeAbi
|
||||||
const foreignABI = bridgeConfig.foreignBridgeAbi
|
const foreignABI = bridgeConfig.foreignBridgeAbi
|
||||||
|
|
||||||
async function getStartBlock(rpcUrl, bridgeAddress, bridgeAbi) {
|
async function getStartBlock(web3, bridgeAddress, bridgeAbi) {
|
||||||
try {
|
try {
|
||||||
const web3Provider = new Web3.providers.HttpProvider(rpcUrl)
|
const bridgeContract = new web3.eth.Contract(bridgeAbi, bridgeAddress)
|
||||||
const web3Instance = new Web3(web3Provider)
|
|
||||||
const bridgeContract = new web3Instance.eth.Contract(bridgeAbi, bridgeAddress)
|
|
||||||
|
|
||||||
const deployedAtBlock = await bridgeContract.methods.deployedAtBlock().call()
|
const deployedAtBlock = await bridgeContract.methods.deployedAtBlock().call()
|
||||||
|
|
||||||
const validatorContractAddress = await bridgeContract.methods.validatorContract().call()
|
const validatorContractAddress = await bridgeContract.methods.validatorContract().call()
|
||||||
const validatorContract = new web3Instance.eth.Contract(BRIDGE_VALIDATORS_ABI, validatorContractAddress)
|
const validatorContract = new web3.eth.Contract(BRIDGE_VALIDATORS_ABI, validatorContractAddress)
|
||||||
|
|
||||||
const validatorDeployedAtBlock = await validatorContract.methods.deployedAtBlock().call()
|
const validatorDeployedAtBlock = await validatorContract.methods.deployedAtBlock().call()
|
||||||
|
|
||||||
@ -35,10 +32,8 @@ async function getStartBlock(rpcUrl, bridgeAddress, bridgeAbi) {
|
|||||||
async function main() {
|
async function main() {
|
||||||
const { COMMON_HOME_BRIDGE_ADDRESS, COMMON_FOREIGN_BRIDGE_ADDRESS } = process.env
|
const { COMMON_HOME_BRIDGE_ADDRESS, COMMON_FOREIGN_BRIDGE_ADDRESS } = process.env
|
||||||
|
|
||||||
const homeRpcUrl = rpcUrlsManager.homeUrls[0]
|
const homeStartBlock = await getStartBlock(web3Home, COMMON_HOME_BRIDGE_ADDRESS, homeABI)
|
||||||
const foreignRpcUrl = rpcUrlsManager.foreignUrls[0]
|
const foreignStartBlock = await getStartBlock(web3Foreign, COMMON_FOREIGN_BRIDGE_ADDRESS, foreignABI)
|
||||||
const homeStartBlock = await getStartBlock(homeRpcUrl, COMMON_HOME_BRIDGE_ADDRESS, homeABI)
|
|
||||||
const foreignStartBlock = await getStartBlock(foreignRpcUrl, COMMON_FOREIGN_BRIDGE_ADDRESS, foreignABI)
|
|
||||||
const result = {
|
const result = {
|
||||||
homeStartBlock,
|
homeStartBlock,
|
||||||
foreignStartBlock
|
foreignStartBlock
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
require('../env')
|
require('../env')
|
||||||
const Web3 = require('web3')
|
|
||||||
const { getTokensState } = require('../src/utils/tokenState')
|
const { getTokensState } = require('../src/utils/tokenState')
|
||||||
const {
|
const {
|
||||||
ERC677_BRIDGE_TOKEN_ABI,
|
ERC677_BRIDGE_TOKEN_ABI,
|
||||||
@ -7,6 +6,7 @@ const {
|
|||||||
FOREIGN_ERC_TO_NATIVE_ABI,
|
FOREIGN_ERC_TO_NATIVE_ABI,
|
||||||
getTokenType
|
getTokenType
|
||||||
} = require('../../commons')
|
} = require('../../commons')
|
||||||
|
const { web3Foreign } = require('../src/services/web3')
|
||||||
|
|
||||||
const emptyLogger = {
|
const emptyLogger = {
|
||||||
debug: () => {},
|
debug: () => {},
|
||||||
@ -14,26 +14,25 @@ const emptyLogger = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function initialChecks() {
|
async function initialChecks() {
|
||||||
const { ORACLE_BRIDGE_MODE, COMMON_FOREIGN_RPC_URL, COMMON_FOREIGN_BRIDGE_ADDRESS } = process.env
|
const { ORACLE_BRIDGE_MODE, COMMON_FOREIGN_BRIDGE_ADDRESS } = process.env
|
||||||
let result = {}
|
let result = {}
|
||||||
const foreignWeb3 = new Web3(new Web3.providers.HttpProvider(COMMON_FOREIGN_RPC_URL))
|
|
||||||
|
|
||||||
if (ORACLE_BRIDGE_MODE === 'ERC_TO_ERC') {
|
if (ORACLE_BRIDGE_MODE === 'ERC_TO_ERC') {
|
||||||
const bridge = new foreignWeb3.eth.Contract(FOREIGN_ERC_TO_ERC_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
const bridge = new web3Foreign.eth.Contract(FOREIGN_ERC_TO_ERC_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
||||||
result.bridgeableTokenAddress = await bridge.methods.erc20token().call()
|
result.bridgeableTokenAddress = await bridge.methods.erc20token().call()
|
||||||
} else if (ORACLE_BRIDGE_MODE === 'ERC_TO_NATIVE') {
|
} else if (ORACLE_BRIDGE_MODE === 'ERC_TO_NATIVE') {
|
||||||
const bridge = new foreignWeb3.eth.Contract(FOREIGN_ERC_TO_NATIVE_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
const bridge = new web3Foreign.eth.Contract(FOREIGN_ERC_TO_NATIVE_ABI, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
||||||
result = await getTokensState(bridge, emptyLogger)
|
result = await getTokensState(bridge, emptyLogger)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ORACLE_BRIDGE_MODE === 'ERC_TO_ERC') {
|
if (ORACLE_BRIDGE_MODE === 'ERC_TO_ERC') {
|
||||||
const bridgeTokenContract = new foreignWeb3.eth.Contract(ERC677_BRIDGE_TOKEN_ABI, result.bridgeableTokenAddress)
|
const bridgeTokenContract = new web3Foreign.eth.Contract(ERC677_BRIDGE_TOKEN_ABI, result.bridgeableTokenAddress)
|
||||||
result.foreignERC = await getTokenType(bridgeTokenContract, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
result.foreignERC = await getTokenType(bridgeTokenContract, COMMON_FOREIGN_BRIDGE_ADDRESS)
|
||||||
}
|
}
|
||||||
console.log(JSON.stringify(result))
|
console.log(JSON.stringify(result))
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
initialChecks()
|
const result = initialChecks()
|
||||||
|
|
||||||
module.exports = initialChecks
|
module.exports = result
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
require('../../env')
|
require('../../env')
|
||||||
const Web3Utils = require('web3-utils')
|
const { toWei } = require('web3').utils
|
||||||
const { web3Foreign } = require('../../src/services/web3')
|
const { web3Foreign } = require('../../src/services/web3')
|
||||||
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
const { sendTx } = require('../../src/tx/sendTx')
|
||||||
const { isValidAmount } = require('../utils/utils')
|
const { isValidAmount } = require('../utils/utils')
|
||||||
const { FOREIGN_NATIVE_TO_ERC_ABI } = require('../../../commons')
|
const { FOREIGN_NATIVE_TO_ERC_ABI } = require('../../../commons')
|
||||||
|
|
||||||
@ -53,27 +53,17 @@ async function main() {
|
|||||||
try {
|
try {
|
||||||
await isValidAmount(FOREIGN_MIN_AMOUNT_PER_TX, bridge)
|
await isValidAmount(FOREIGN_MIN_AMOUNT_PER_TX, bridge)
|
||||||
|
|
||||||
const foreignChainId = await sendRawTx({
|
const foreignChainId = await web3Foreign.eth.getChainId()
|
||||||
chain: 'foreign',
|
let nonce = await web3Foreign.eth.getTransactionCount(USER_ADDRESS)
|
||||||
params: [],
|
|
||||||
method: 'net_version'
|
|
||||||
})
|
|
||||||
let nonce = await sendRawTx({
|
|
||||||
chain: 'foreign',
|
|
||||||
method: 'eth_getTransactionCount',
|
|
||||||
params: [USER_ADDRESS, 'latest']
|
|
||||||
})
|
|
||||||
nonce = Web3Utils.hexToNumber(nonce)
|
|
||||||
let actualSent = 0
|
let actualSent = 0
|
||||||
for (let i = 0; i < Number(NUMBER_OF_WITHDRAWALS_TO_SEND); i++) {
|
for (let i = 0; i < Number(NUMBER_OF_WITHDRAWALS_TO_SEND); i++) {
|
||||||
const gasLimit = await poa20.methods
|
const gasLimit = await poa20.methods
|
||||||
.transferAndCall(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX), '0x')
|
.transferAndCall(COMMON_FOREIGN_BRIDGE_ADDRESS, toWei(FOREIGN_MIN_AMOUNT_PER_TX), '0x')
|
||||||
.estimateGas({ from: USER_ADDRESS })
|
.estimateGas({ from: USER_ADDRESS })
|
||||||
const data = await poa20.methods
|
const data = await poa20.methods
|
||||||
.transferAndCall(COMMON_FOREIGN_BRIDGE_ADDRESS, Web3Utils.toWei(FOREIGN_MIN_AMOUNT_PER_TX), '0x')
|
.transferAndCall(COMMON_FOREIGN_BRIDGE_ADDRESS, toWei(FOREIGN_MIN_AMOUNT_PER_TX), '0x')
|
||||||
.encodeABI({ from: USER_ADDRESS })
|
.encodeABI({ from: USER_ADDRESS })
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: 'foreign',
|
|
||||||
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
||||||
data,
|
data,
|
||||||
nonce,
|
nonce,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
require('../../env')
|
require('../../env')
|
||||||
const Web3Utils = require('web3-utils')
|
|
||||||
const { web3Home } = require('../../src/services/web3')
|
const { web3Home } = require('../../src/services/web3')
|
||||||
const { sendTx, sendRawTx } = require('../../src/tx/sendTx')
|
const { sendTx } = require('../../src/tx/sendTx')
|
||||||
const { isValidAmount } = require('../utils/utils')
|
const { isValidAmount } = require('../utils/utils')
|
||||||
const { HOME_NATIVE_TO_ERC_ABI } = require('../../../commons')
|
const { HOME_NATIVE_TO_ERC_ABI } = require('../../../commons')
|
||||||
|
|
||||||
@ -21,21 +20,11 @@ async function main() {
|
|||||||
try {
|
try {
|
||||||
await isValidAmount(HOME_MIN_AMOUNT_PER_TX, bridge)
|
await isValidAmount(HOME_MIN_AMOUNT_PER_TX, bridge)
|
||||||
|
|
||||||
const homeChainId = await sendRawTx({
|
const homeChainId = await web3Home.eth.getChainId()
|
||||||
chain: 'home',
|
let nonce = await web3Home.eth.getTransactionCount(USER_ADDRESS)
|
||||||
params: [],
|
|
||||||
method: 'net_version'
|
|
||||||
})
|
|
||||||
let nonce = await sendRawTx({
|
|
||||||
chain: 'home',
|
|
||||||
method: 'eth_getTransactionCount',
|
|
||||||
params: [USER_ADDRESS, 'latest']
|
|
||||||
})
|
|
||||||
nonce = Web3Utils.hexToNumber(nonce)
|
|
||||||
let actualSent = 0
|
let actualSent = 0
|
||||||
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
for (let i = 0; i < Number(NUMBER_OF_DEPOSITS_TO_SEND); i++) {
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: 'home',
|
|
||||||
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
privateKey: USER_ADDRESS_PRIVATE_KEY,
|
||||||
data: '0x',
|
data: '0x',
|
||||||
nonce,
|
nonce,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
const Web3Utils = require('web3-utils')
|
const { fromWei } = require('web3').utils
|
||||||
|
|
||||||
async function getMinPerTxLimit(bridge) {
|
async function getMinPerTxLimit(bridge) {
|
||||||
const minPerTx = await bridge.methods.minPerTx().call()
|
const minPerTx = await bridge.methods.minPerTx().call()
|
||||||
return Web3Utils.fromWei(minPerTx)
|
return fromWei(minPerTx)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function isValidAmount(amount, bridge) {
|
async function isValidAmount(amount, bridge) {
|
||||||
|
@ -3,7 +3,6 @@ const path = require('path')
|
|||||||
const { isAttached, connectWatcherToQueue, connection } = require('./services/amqpClient')
|
const { isAttached, connectWatcherToQueue, connection } = require('./services/amqpClient')
|
||||||
const logger = require('./services/logger')
|
const logger = require('./services/logger')
|
||||||
const GasPrice = require('./services/gasPrice')
|
const GasPrice = require('./services/gasPrice')
|
||||||
const rpcUrlsManager = require('./services/getRpcUrlsManager')
|
|
||||||
const { getNonce, getChainId, getEventsFromTx } = require('./tx/web3')
|
const { getNonce, getChainId, getEventsFromTx } = require('./tx/web3')
|
||||||
const { sendTx } = require('./tx/sendTx')
|
const { sendTx } = require('./tx/sendTx')
|
||||||
const { checkHTTPS, watchdog, syncForEach, addExtraGas } = require('./utils/utils')
|
const { checkHTTPS, watchdog, syncForEach, addExtraGas } = require('./utils/utils')
|
||||||
@ -37,8 +36,7 @@ async function initialize() {
|
|||||||
try {
|
try {
|
||||||
const checkHttps = checkHTTPS(ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
const checkHttps = checkHTTPS(ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
||||||
|
|
||||||
rpcUrlsManager.homeUrls.forEach(checkHttps('home'))
|
web3Instance.currentProvider.urls.forEach(checkHttps(config.chain))
|
||||||
rpcUrlsManager.foreignUrls.forEach(checkHttps('foreign'))
|
|
||||||
|
|
||||||
attached = await isAttached()
|
attached = await isAttached()
|
||||||
if (attached) {
|
if (attached) {
|
||||||
@ -139,7 +137,7 @@ async function main({ sendJob, txHash }) {
|
|||||||
|
|
||||||
async function sendJobTx(jobs) {
|
async function sendJobTx(jobs) {
|
||||||
const gasPrice = await GasPrice.start(config.chain, true)
|
const gasPrice = await GasPrice.start(config.chain, true)
|
||||||
const chainId = await getChainId(config.chain)
|
const chainId = await getChainId(web3Instance)
|
||||||
let nonce = await getNonce(web3Instance, ORACLE_VALIDATOR_ADDRESS)
|
let nonce = await getNonce(web3Instance, ORACLE_VALIDATOR_ADDRESS)
|
||||||
|
|
||||||
await syncForEach(jobs, async job => {
|
await syncForEach(jobs, async job => {
|
||||||
@ -153,7 +151,6 @@ async function sendJobTx(jobs) {
|
|||||||
try {
|
try {
|
||||||
logger.info(`Sending transaction with nonce ${nonce}`)
|
logger.info(`Sending transaction with nonce ${nonce}`)
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: config.chain,
|
|
||||||
data: job.data,
|
data: job.data,
|
||||||
nonce,
|
nonce,
|
||||||
gasPrice: gasPrice.toString(10),
|
gasPrice: gasPrice.toString(10),
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { AlreadyProcessedError, AlreadySignedError, InvalidValidatorError } = require('../../utils/errors')
|
const { AlreadyProcessedError, AlreadySignedError, InvalidValidatorError } = require('../../utils/errors')
|
||||||
const logger = require('../../services/logger').child({
|
const logger = require('../../services/logger').child({
|
||||||
module: 'processAffirmationRequests:estimateGas'
|
module: 'processAffirmationRequests:estimateGas'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
require('dotenv').config()
|
require('dotenv').config()
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
|
||||||
const promiseLimit = require('promise-limit')
|
const promiseLimit = require('promise-limit')
|
||||||
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const rootLogger = require('../../services/logger')
|
const rootLogger = require('../../services/logger')
|
||||||
const { web3Home } = require('../../services/web3')
|
const { web3Home } = require('../../services/web3')
|
||||||
const bridgeValidatorsABI = require('../../../../contracts/build/contracts/BridgeValidators').abi
|
const bridgeValidatorsABI = require('../../../../contracts/build/contracts/BridgeValidators').abi
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
const Web3 = require('web3')
|
const Web3 = require('web3')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { AlreadyProcessedError, IncompatibleContractError, InvalidValidatorError } = require('../../utils/errors')
|
const { AlreadyProcessedError, IncompatibleContractError, InvalidValidatorError } = require('../../utils/errors')
|
||||||
const logger = require('../../services/logger').child({
|
const logger = require('../../services/logger').child({
|
||||||
module: 'processCollectedSignatures:estimateGas'
|
module: 'processCollectedSignatures:estimateGas'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
require('dotenv').config()
|
require('dotenv').config()
|
||||||
const promiseLimit = require('promise-limit')
|
const promiseLimit = require('promise-limit')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const bridgeValidatorsABI = require('../../../../contracts/build/contracts/BridgeValidators').abi
|
const bridgeValidatorsABI = require('../../../../contracts/build/contracts/BridgeValidators').abi
|
||||||
const rootLogger = require('../../services/logger')
|
const rootLogger = require('../../services/logger')
|
||||||
const { web3Home, web3Foreign } = require('../../services/web3')
|
const { web3Home, web3Foreign } = require('../../services/web3')
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
require('dotenv').config()
|
require('dotenv').config()
|
||||||
const promiseLimit = require('promise-limit')
|
const promiseLimit = require('promise-limit')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const bridgeValidatorsABI = require('../../../../contracts/build/contracts/BridgeValidators').abi
|
const bridgeValidatorsABI = require('../../../../contracts/build/contracts/BridgeValidators').abi
|
||||||
const rootLogger = require('../../services/logger')
|
const rootLogger = require('../../services/logger')
|
||||||
const { web3Home } = require('../../services/web3')
|
const { web3Home } = require('../../services/web3')
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { AlreadyProcessedError, AlreadySignedError, InvalidValidatorError } = require('../../utils/errors')
|
const { AlreadyProcessedError, AlreadySignedError, InvalidValidatorError } = require('../../utils/errors')
|
||||||
const logger = require('../../services/logger').child({
|
const logger = require('../../services/logger').child({
|
||||||
module: 'processAffirmationRequests:estimateGas'
|
module: 'processAffirmationRequests:estimateGas'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
require('../../../env')
|
require('../../../env')
|
||||||
const promiseLimit = require('promise-limit')
|
const promiseLimit = require('promise-limit')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const rootLogger = require('../../services/logger')
|
const rootLogger = require('../../services/logger')
|
||||||
const { web3Home } = require('../../services/web3')
|
const { web3Home } = require('../../services/web3')
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
const Web3 = require('web3')
|
const Web3 = require('web3')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { AlreadyProcessedError, IncompatibleContractError, InvalidValidatorError } = require('../../utils/errors')
|
const { AlreadyProcessedError, IncompatibleContractError, InvalidValidatorError } = require('../../utils/errors')
|
||||||
const { parseMessage } = require('../../utils/message')
|
const { parseMessage } = require('../../utils/message')
|
||||||
const logger = require('../../services/logger').child({
|
const logger = require('../../services/logger').child({
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
require('../../../env')
|
require('../../../env')
|
||||||
const promiseLimit = require('promise-limit')
|
const promiseLimit = require('promise-limit')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { BRIDGE_VALIDATORS_ABI } = require('../../../../commons')
|
const { BRIDGE_VALIDATORS_ABI } = require('../../../../commons')
|
||||||
const rootLogger = require('../../services/logger')
|
const rootLogger = require('../../services/logger')
|
||||||
const { web3Home, web3Foreign } = require('../../services/web3')
|
const { web3Home, web3Foreign } = require('../../services/web3')
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { AlreadyProcessedError, AlreadySignedError, InvalidValidatorError } = require('../../utils/errors')
|
const { AlreadyProcessedError, AlreadySignedError, InvalidValidatorError } = require('../../utils/errors')
|
||||||
const logger = require('../../services/logger').child({
|
const logger = require('../../services/logger').child({
|
||||||
module: 'processSignatureRequests:estimateGas'
|
module: 'processSignatureRequests:estimateGas'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
require('../../../env')
|
require('../../../env')
|
||||||
const promiseLimit = require('promise-limit')
|
const promiseLimit = require('promise-limit')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { BRIDGE_VALIDATORS_ABI } = require('../../../../commons')
|
const { BRIDGE_VALIDATORS_ABI } = require('../../../../commons')
|
||||||
const rootLogger = require('../../services/logger')
|
const rootLogger = require('../../services/logger')
|
||||||
const { web3Home } = require('../../services/web3')
|
const { web3Home } = require('../../services/web3')
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
require('../../../env')
|
require('../../../env')
|
||||||
const promiseLimit = require('promise-limit')
|
const promiseLimit = require('promise-limit')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../../services/HttpListProvider')
|
||||||
const { BRIDGE_VALIDATORS_ABI, ZERO_ADDRESS } = require('../../../../commons')
|
const { BRIDGE_VALIDATORS_ABI, ZERO_ADDRESS } = require('../../../../commons')
|
||||||
const rootLogger = require('../../services/logger')
|
const rootLogger = require('../../services/logger')
|
||||||
const { web3Home, web3Foreign } = require('../../services/web3')
|
const { web3Home, web3Foreign } = require('../../services/web3')
|
||||||
|
@ -4,7 +4,6 @@ const { connectSenderToQueue } = require('./services/amqpClient')
|
|||||||
const { redis } = require('./services/redisClient')
|
const { redis } = require('./services/redisClient')
|
||||||
const GasPrice = require('./services/gasPrice')
|
const GasPrice = require('./services/gasPrice')
|
||||||
const logger = require('./services/logger')
|
const logger = require('./services/logger')
|
||||||
const rpcUrlsManager = require('./services/getRpcUrlsManager')
|
|
||||||
const { sendTx } = require('./tx/sendTx')
|
const { sendTx } = require('./tx/sendTx')
|
||||||
const { getNonce, getChainId } = require('./tx/web3')
|
const { getNonce, getChainId } = require('./tx/web3')
|
||||||
const {
|
const {
|
||||||
@ -18,7 +17,7 @@ const {
|
|||||||
} = require('./utils/utils')
|
} = require('./utils/utils')
|
||||||
const { EXIT_CODES, EXTRA_GAS_PERCENTAGE, MAX_GAS_LIMIT } = require('./utils/constants')
|
const { EXIT_CODES, EXTRA_GAS_PERCENTAGE, MAX_GAS_LIMIT } = require('./utils/constants')
|
||||||
|
|
||||||
const { ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY } = process.env
|
const { ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY, ORACLE_TX_REDUNDANCY } = process.env
|
||||||
|
|
||||||
const ORACLE_VALIDATOR_ADDRESS = privateKeyToAddress(ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY)
|
const ORACLE_VALIDATOR_ADDRESS = privateKeyToAddress(ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY)
|
||||||
|
|
||||||
@ -30,6 +29,7 @@ if (process.argv.length < 3) {
|
|||||||
const config = require(path.join('../config/', process.argv[2]))
|
const config = require(path.join('../config/', process.argv[2]))
|
||||||
|
|
||||||
const web3Instance = config.web3
|
const web3Instance = config.web3
|
||||||
|
const web3Redundant = ORACLE_TX_REDUNDANCY === 'true' ? config.web3Redundant : config.web3
|
||||||
const nonceKey = `${config.id}:nonce`
|
const nonceKey = `${config.id}:nonce`
|
||||||
let chainId = 0
|
let chainId = 0
|
||||||
|
|
||||||
@ -37,12 +37,11 @@ async function initialize() {
|
|||||||
try {
|
try {
|
||||||
const checkHttps = checkHTTPS(process.env.ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
const checkHttps = checkHTTPS(process.env.ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
||||||
|
|
||||||
rpcUrlsManager.homeUrls.forEach(checkHttps('home'))
|
web3Instance.currentProvider.urls.forEach(checkHttps(config.chain))
|
||||||
rpcUrlsManager.foreignUrls.forEach(checkHttps('foreign'))
|
|
||||||
|
|
||||||
GasPrice.start(config.id)
|
GasPrice.start(config.id)
|
||||||
|
|
||||||
chainId = await getChainId(config.id)
|
chainId = await getChainId(web3Instance)
|
||||||
connectSenderToQueue({
|
connectSenderToQueue({
|
||||||
queueName: config.queue,
|
queueName: config.queue,
|
||||||
oldQueueName: config.oldQueue,
|
oldQueueName: config.oldQueue,
|
||||||
@ -144,7 +143,6 @@ async function main({ msg, ackMsg, nackMsg, channel, scheduleForRetry, scheduleT
|
|||||||
}
|
}
|
||||||
logger.info(`Sending transaction with nonce ${nonce}`)
|
logger.info(`Sending transaction with nonce ${nonce}`)
|
||||||
const txHash = await sendTx({
|
const txHash = await sendTx({
|
||||||
chain: config.id,
|
|
||||||
data: job.data,
|
data: job.data,
|
||||||
nonce,
|
nonce,
|
||||||
gasPrice,
|
gasPrice,
|
||||||
@ -153,7 +151,7 @@ async function main({ msg, ackMsg, nackMsg, channel, scheduleForRetry, scheduleT
|
|||||||
privateKey: ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY,
|
privateKey: ORACLE_VALIDATOR_ADDRESS_PRIVATE_KEY,
|
||||||
to: job.to,
|
to: job.to,
|
||||||
chainId,
|
chainId,
|
||||||
web3: web3Instance
|
web3: web3Redundant
|
||||||
})
|
})
|
||||||
const resendJob = {
|
const resendJob = {
|
||||||
...job,
|
...job,
|
||||||
|
89
oracle/src/services/HttpListProvider.js
Normal file
89
oracle/src/services/HttpListProvider.js
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
const fetch = require('node-fetch')
|
||||||
|
const promiseRetry = require('promise-retry')
|
||||||
|
|
||||||
|
const defaultOptions = {
|
||||||
|
requestTimeout: 0,
|
||||||
|
retry: {
|
||||||
|
retries: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class HttpListProviderError extends Error {
|
||||||
|
constructor(message, errors) {
|
||||||
|
super(message)
|
||||||
|
this.errors = errors
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function HttpListProvider(urls, options = {}) {
|
||||||
|
if (!(this instanceof HttpListProvider)) {
|
||||||
|
return new HttpListProvider(urls)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!urls || !urls.length) {
|
||||||
|
throw new TypeError(`Invalid URLs: '${urls}'`)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.urls = urls
|
||||||
|
this.options = { ...defaultOptions, ...options }
|
||||||
|
this.currentIndex = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpListProvider.prototype.send = async function send(payload, callback) {
|
||||||
|
// save the currentIndex to avoid race condition
|
||||||
|
const { currentIndex } = this
|
||||||
|
|
||||||
|
try {
|
||||||
|
const [result, index] = await promiseRetry(retry => {
|
||||||
|
return trySend(payload, this.urls, currentIndex, this.options).catch(retry)
|
||||||
|
}, this.options.retry)
|
||||||
|
this.currentIndex = index
|
||||||
|
callback(null, result)
|
||||||
|
} catch (e) {
|
||||||
|
callback(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function send(url, payload, options) {
|
||||||
|
return fetch(url, {
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/json'
|
||||||
|
},
|
||||||
|
method: 'POST',
|
||||||
|
body: JSON.stringify(payload),
|
||||||
|
timeout: options.requestTimeout
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
if (response.ok) {
|
||||||
|
return response
|
||||||
|
} else {
|
||||||
|
throw new Error(response.statusText)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(response => response.json())
|
||||||
|
}
|
||||||
|
|
||||||
|
async function trySend(payload, urls, initialIndex, options) {
|
||||||
|
const errors = []
|
||||||
|
|
||||||
|
let index = initialIndex
|
||||||
|
for (let count = 0; count < urls.length; count++) {
|
||||||
|
const url = urls[index]
|
||||||
|
try {
|
||||||
|
const result = await send(url, payload, options)
|
||||||
|
return [result, index]
|
||||||
|
} catch (e) {
|
||||||
|
errors.push(e)
|
||||||
|
}
|
||||||
|
index = (index + 1) % urls.length
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new HttpListProviderError('Request failed for all urls', errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
HttpListProvider,
|
||||||
|
HttpListProviderError,
|
||||||
|
defaultOptions,
|
||||||
|
send
|
||||||
|
}
|
40
oracle/src/services/RedundantHttpListProvider.js
Normal file
40
oracle/src/services/RedundantHttpListProvider.js
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
const promiseRetry = require('promise-retry')
|
||||||
|
const { promiseAny } = require('../utils/utils')
|
||||||
|
const { defaultOptions, HttpListProviderError, send } = require('./HttpListProvider')
|
||||||
|
|
||||||
|
function RedundantHttpListProvider(urls, options = {}) {
|
||||||
|
if (!(this instanceof RedundantHttpListProvider)) {
|
||||||
|
return new RedundantHttpListProvider(urls)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!urls || !urls.length) {
|
||||||
|
throw new TypeError(`Invalid URLs: '${urls}'`)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.urls = urls
|
||||||
|
this.options = { ...defaultOptions, ...options }
|
||||||
|
this.currentIndex = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
RedundantHttpListProvider.prototype.send = async function send(payload, callback) {
|
||||||
|
try {
|
||||||
|
const result = await promiseRetry(retry => {
|
||||||
|
return trySend(payload, this.urls, this.options).catch(retry)
|
||||||
|
}, this.options.retry)
|
||||||
|
callback(null, result)
|
||||||
|
} catch (e) {
|
||||||
|
callback(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function trySend(payload, urls, options) {
|
||||||
|
try {
|
||||||
|
return await promiseAny(urls.map(url => send(url, payload, options)))
|
||||||
|
} catch (errors) {
|
||||||
|
throw new HttpListProviderError('Request failed for all urls', errors)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
RedundantHttpListProvider
|
||||||
|
}
|
@ -1,50 +0,0 @@
|
|||||||
const promiseRetry = require('promise-retry')
|
|
||||||
const tryEach = require('../utils/tryEach')
|
|
||||||
const { RETRY_CONFIG } = require('../utils/constants')
|
|
||||||
const { promiseAny } = require('../utils/utils')
|
|
||||||
|
|
||||||
function RpcUrlsManager(homeUrls, foreignUrls) {
|
|
||||||
if (!homeUrls) {
|
|
||||||
throw new Error(`Invalid homeUrls: '${homeUrls}'`)
|
|
||||||
}
|
|
||||||
if (!foreignUrls) {
|
|
||||||
throw new Error(`Invalid foreignUrls: '${foreignUrls}'`)
|
|
||||||
}
|
|
||||||
|
|
||||||
this.homeUrls = homeUrls.split(' ')
|
|
||||||
this.foreignUrls = foreignUrls.split(' ')
|
|
||||||
}
|
|
||||||
|
|
||||||
RpcUrlsManager.prototype.tryEach = async function(chain, f, redundant = false) {
|
|
||||||
if (chain !== 'home' && chain !== 'foreign') {
|
|
||||||
throw new Error(`Invalid argument chain: '${chain}'`)
|
|
||||||
}
|
|
||||||
|
|
||||||
// save urls to avoid race condition
|
|
||||||
const urls = chain === 'home' ? [...this.homeUrls] : [...this.foreignUrls]
|
|
||||||
|
|
||||||
if (redundant) {
|
|
||||||
// result from first responded node will be returned immediately
|
|
||||||
// remaining nodes will continue to retry queries in separate promises
|
|
||||||
// promiseAny will throw only if all urls reached max retry number
|
|
||||||
return promiseAny(urls.map(url => promiseRetry(retry => f(url).catch(retry), RETRY_CONFIG)))
|
|
||||||
}
|
|
||||||
|
|
||||||
const [result, index] = await promiseRetry(retry => tryEach(urls, f).catch(retry), RETRY_CONFIG)
|
|
||||||
|
|
||||||
if (index > 0) {
|
|
||||||
// rotate urls
|
|
||||||
const failed = urls.splice(0, index)
|
|
||||||
urls.push(...failed)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chain === 'home') {
|
|
||||||
this.homeUrls = urls
|
|
||||||
} else {
|
|
||||||
this.foreignUrls = urls
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = RpcUrlsManager
|
|
@ -1,3 +0,0 @@
|
|||||||
const RpcUrlsManager = require('./RpcUrlsManager')
|
|
||||||
|
|
||||||
module.exports = new RpcUrlsManager(process.env.COMMON_HOME_RPC_URL, process.env.COMMON_FOREIGN_RPC_URL)
|
|
@ -1,19 +1,55 @@
|
|||||||
const HttpListProvider = require('http-list-provider')
|
|
||||||
const Web3 = require('web3')
|
const Web3 = require('web3')
|
||||||
const rpcUrlsManager = require('./getRpcUrlsManager')
|
const { HttpListProvider } = require('./HttpListProvider')
|
||||||
|
const { RedundantHttpListProvider } = require('./RedundantHttpListProvider')
|
||||||
const { RETRY_CONFIG } = require('../utils/constants')
|
const { RETRY_CONFIG } = require('../utils/constants')
|
||||||
|
|
||||||
const homeProvider = new HttpListProvider(rpcUrlsManager.homeUrls, {
|
const {
|
||||||
|
COMMON_HOME_RPC_URL,
|
||||||
|
COMMON_FOREIGN_RPC_URL,
|
||||||
|
ORACLE_RPC_REQUEST_TIMEOUT,
|
||||||
|
ORACLE_HOME_RPC_POLLING_INTERVAL,
|
||||||
|
ORACLE_FOREIGN_RPC_POLLING_INTERVAL
|
||||||
|
} = process.env
|
||||||
|
|
||||||
|
if (!COMMON_HOME_RPC_URL) {
|
||||||
|
throw new Error(`Invalid homeUrls: '${COMMON_HOME_RPC_URL}'`)
|
||||||
|
}
|
||||||
|
if (!COMMON_FOREIGN_RPC_URL) {
|
||||||
|
throw new Error(`Invalid foreignUrls: '${COMMON_FOREIGN_RPC_URL}'`)
|
||||||
|
}
|
||||||
|
|
||||||
|
const homeUrls = COMMON_HOME_RPC_URL.split(' ').filter(url => url.length > 0)
|
||||||
|
const foreignUrls = COMMON_FOREIGN_RPC_URL.split(' ').filter(url => url.length > 0)
|
||||||
|
|
||||||
|
const homeDefaultTimeout = parseInt(ORACLE_HOME_RPC_POLLING_INTERVAL, 10) * 2
|
||||||
|
const foreignDefaultTimeout = parseInt(ORACLE_FOREIGN_RPC_POLLING_INTERVAL, 10) * 2
|
||||||
|
const configuredTimeout = parseInt(ORACLE_RPC_REQUEST_TIMEOUT, 10)
|
||||||
|
|
||||||
|
const homeOptions = {
|
||||||
|
requestTimeout: configuredTimeout || homeDefaultTimeout,
|
||||||
retry: RETRY_CONFIG
|
retry: RETRY_CONFIG
|
||||||
})
|
}
|
||||||
|
|
||||||
|
const foreignOptions = {
|
||||||
|
requestTimeout: configuredTimeout || foreignDefaultTimeout,
|
||||||
|
retry: RETRY_CONFIG
|
||||||
|
}
|
||||||
|
|
||||||
|
const homeProvider = new HttpListProvider(homeUrls, homeOptions)
|
||||||
const web3Home = new Web3(homeProvider)
|
const web3Home = new Web3(homeProvider)
|
||||||
|
|
||||||
const foreignProvider = new HttpListProvider(rpcUrlsManager.foreignUrls, {
|
const foreignProvider = new HttpListProvider(foreignUrls, foreignOptions)
|
||||||
retry: RETRY_CONFIG
|
|
||||||
})
|
|
||||||
const web3Foreign = new Web3(foreignProvider)
|
const web3Foreign = new Web3(foreignProvider)
|
||||||
|
|
||||||
|
const redundantHomeProvider = new RedundantHttpListProvider(homeUrls, homeOptions)
|
||||||
|
const web3HomeRedundant = new Web3(redundantHomeProvider)
|
||||||
|
|
||||||
|
const redundantForeignProvider = new RedundantHttpListProvider(foreignUrls, foreignOptions)
|
||||||
|
const web3ForeignRedundant = new Web3(redundantForeignProvider)
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
web3Home,
|
web3Home,
|
||||||
web3Foreign
|
web3Foreign,
|
||||||
|
web3HomeRedundant,
|
||||||
|
web3ForeignRedundant
|
||||||
}
|
}
|
||||||
|
@ -1,67 +1,27 @@
|
|||||||
const Web3Utils = require('web3-utils')
|
const { toWei } = require('web3').utils
|
||||||
const fetch = require('node-fetch')
|
|
||||||
const rpcUrlsManager = require('../services/getRpcUrlsManager')
|
|
||||||
|
|
||||||
const { ORACLE_TX_REDUNDANCY } = process.env
|
async function sendTx({ privateKey, data, nonce, gasPrice, amount, gasLimit, to, chainId, web3 }) {
|
||||||
|
|
||||||
// eslint-disable-next-line consistent-return
|
|
||||||
async function sendTx({ chain, privateKey, data, nonce, gasPrice, amount, gasLimit, to, chainId, web3 }) {
|
|
||||||
const serializedTx = await web3.eth.accounts.signTransaction(
|
const serializedTx = await web3.eth.accounts.signTransaction(
|
||||||
{
|
{
|
||||||
nonce: Number(nonce),
|
nonce: Number(nonce),
|
||||||
chainId,
|
chainId,
|
||||||
to,
|
to,
|
||||||
data,
|
data,
|
||||||
value: Web3Utils.toWei(amount),
|
value: toWei(amount),
|
||||||
gasPrice,
|
gasPrice,
|
||||||
gas: gasLimit
|
gas: gasLimit
|
||||||
},
|
},
|
||||||
`0x${privateKey}`
|
`0x${privateKey}`
|
||||||
)
|
)
|
||||||
|
|
||||||
return sendRawTx({
|
return new Promise((res, rej) =>
|
||||||
chain,
|
web3.eth
|
||||||
method: 'eth_sendRawTransaction',
|
.sendSignedTransaction(serializedTx.rawTransaction)
|
||||||
params: [serializedTx.rawTransaction]
|
.once('transactionHash', res)
|
||||||
})
|
.once('error', rej)
|
||||||
}
|
|
||||||
|
|
||||||
// eslint-disable-next-line consistent-return
|
|
||||||
async function sendRawTx({ chain, params, method }) {
|
|
||||||
const result = await rpcUrlsManager.tryEach(
|
|
||||||
chain,
|
|
||||||
async url => {
|
|
||||||
// curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":[{see above}],"id":1}'
|
|
||||||
const response = await fetch(url, {
|
|
||||||
headers: {
|
|
||||||
'Content-type': 'application/json'
|
|
||||||
},
|
|
||||||
method: 'POST',
|
|
||||||
body: JSON.stringify({
|
|
||||||
jsonrpc: '2.0',
|
|
||||||
method,
|
|
||||||
params,
|
|
||||||
id: Math.floor(Math.random() * 100) + 1
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(response.statusText)
|
|
||||||
}
|
|
||||||
|
|
||||||
return response
|
|
||||||
},
|
|
||||||
ORACLE_TX_REDUNDANCY === 'true' && method === 'eth_sendRawTransaction'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const json = await result.json()
|
|
||||||
if (json.error) {
|
|
||||||
throw json.error
|
|
||||||
}
|
|
||||||
return json.result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
sendTx,
|
sendTx
|
||||||
sendRawTx
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
const { hexToNumber } = require('web3-utils')
|
|
||||||
const logger = require('../services/logger').child({
|
const logger = require('../services/logger').child({
|
||||||
module: 'web3'
|
module: 'web3'
|
||||||
})
|
})
|
||||||
const { sendRawTx } = require('./sendTx')
|
|
||||||
|
|
||||||
async function getNonce(web3, address) {
|
async function getNonce(web3, address) {
|
||||||
try {
|
try {
|
||||||
@ -26,15 +24,10 @@ async function getBlockNumber(web3) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getChainId(chain) {
|
async function getChainId(web3) {
|
||||||
try {
|
try {
|
||||||
logger.debug('Getting chain id')
|
logger.debug('Getting chain id')
|
||||||
const chainIdHex = await sendRawTx({
|
const chainId = await web3.eth.getChainId()
|
||||||
chain,
|
|
||||||
method: 'eth_chainId',
|
|
||||||
params: []
|
|
||||||
})
|
|
||||||
const chainId = hexToNumber(chainIdHex)
|
|
||||||
logger.debug({ chainId }, 'Chain id obtained')
|
logger.debug({ chainId }, 'Chain id obtained')
|
||||||
return chainId
|
return chainId
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const Web3Utils = require('web3-utils')
|
const { toHex, numberToHex, padLeft } = require('web3').utils
|
||||||
const { strip0x } = require('../../../commons')
|
const { strip0x } = require('../../../commons')
|
||||||
|
|
||||||
function createMessage({ recipient, value, transactionHash, bridgeAddress, expectedMessageLength }) {
|
function createMessage({ recipient, value, transactionHash, bridgeAddress, expectedMessageLength }) {
|
||||||
recipient = strip0x(recipient)
|
recipient = strip0x(recipient)
|
||||||
assert.strictEqual(recipient.length, 20 * 2)
|
assert.strictEqual(recipient.length, 20 * 2)
|
||||||
|
|
||||||
value = Web3Utils.numberToHex(value)
|
value = numberToHex(value)
|
||||||
value = Web3Utils.padLeft(value, 32 * 2)
|
value = padLeft(value, 32 * 2)
|
||||||
|
|
||||||
value = strip0x(value)
|
value = strip0x(value)
|
||||||
assert.strictEqual(value.length, 64)
|
assert.strictEqual(value.length, 64)
|
||||||
@ -60,7 +60,7 @@ function signatureToVRS(rawSignature) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function packSignatures(array) {
|
function packSignatures(array) {
|
||||||
const length = strip0x(Web3Utils.toHex(array.length))
|
const length = strip0x(toHex(array.length))
|
||||||
const msgLength = length.length === 1 ? `0${length}` : length
|
const msgLength = length.length === 1 ? `0${length}` : length
|
||||||
let v = ''
|
let v = ''
|
||||||
let r = ''
|
let r = ''
|
||||||
|
@ -5,7 +5,6 @@ const { connectWatcherToQueue, connection } = require('./services/amqpClient')
|
|||||||
const { getBlockNumber } = require('./tx/web3')
|
const { getBlockNumber } = require('./tx/web3')
|
||||||
const { redis } = require('./services/redisClient')
|
const { redis } = require('./services/redisClient')
|
||||||
const logger = require('./services/logger')
|
const logger = require('./services/logger')
|
||||||
const rpcUrlsManager = require('./services/getRpcUrlsManager')
|
|
||||||
const { getRequiredBlockConfirmations, getEvents } = require('./tx/web3')
|
const { getRequiredBlockConfirmations, getEvents } = require('./tx/web3')
|
||||||
const { checkHTTPS, watchdog } = require('./utils/utils')
|
const { checkHTTPS, watchdog } = require('./utils/utils')
|
||||||
const { EXIT_CODES } = require('./utils/constants')
|
const { EXIT_CODES } = require('./utils/constants')
|
||||||
@ -42,8 +41,7 @@ async function initialize() {
|
|||||||
try {
|
try {
|
||||||
const checkHttps = checkHTTPS(process.env.ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
const checkHttps = checkHTTPS(process.env.ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
||||||
|
|
||||||
rpcUrlsManager.homeUrls.forEach(checkHttps('home'))
|
web3Instance.currentProvider.urls.forEach(checkHttps(config.chain))
|
||||||
rpcUrlsManager.foreignUrls.forEach(checkHttps('foreign'))
|
|
||||||
|
|
||||||
await getLastProcessedBlock()
|
await getLastProcessedBlock()
|
||||||
connectWatcherToQueue({
|
connectWatcherToQueue({
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const logger = require('./services/logger')
|
const logger = require('./services/logger')
|
||||||
const rpcUrlsManager = require('./services/getRpcUrlsManager')
|
|
||||||
const { checkHTTPS, watchdog } = require('./utils/utils')
|
const { checkHTTPS, watchdog } = require('./utils/utils')
|
||||||
const { EXIT_CODES } = require('./utils/constants')
|
const { EXIT_CODES } = require('./utils/constants')
|
||||||
const { connectWorkerToQueue } = require('./services/amqpClient')
|
const { connectWorkerToQueue } = require('./services/amqpClient')
|
||||||
@ -9,12 +8,13 @@ const config = require(path.join('../config/', process.argv[2]))
|
|||||||
|
|
||||||
const convertToChai = require('./workers/convertToChai')(config)
|
const convertToChai = require('./workers/convertToChai')(config)
|
||||||
|
|
||||||
|
const web3Instance = config.web3
|
||||||
|
|
||||||
async function initialize() {
|
async function initialize() {
|
||||||
try {
|
try {
|
||||||
const checkHttps = checkHTTPS(process.env.ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
const checkHttps = checkHTTPS(process.env.ORACLE_ALLOW_HTTP_FOR_RPC, logger)
|
||||||
|
|
||||||
rpcUrlsManager.homeUrls.forEach(checkHttps('home'))
|
web3Instance.currentProvider.urls.forEach(checkHttps(config.chain))
|
||||||
rpcUrlsManager.foreignUrls.forEach(checkHttps('foreign'))
|
|
||||||
|
|
||||||
connectWorkerToQueue({
|
connectWorkerToQueue({
|
||||||
queueName: config.workerQueue,
|
queueName: config.workerQueue,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
require('../../env')
|
require('../../env')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../services/HttpListProvider')
|
||||||
const rootLogger = require('../services/logger')
|
const rootLogger = require('../services/logger')
|
||||||
const { web3Foreign } = require('../services/web3')
|
const { web3Foreign } = require('../services/web3')
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ const chai = require('chai')
|
|||||||
const chaiAsPromised = require('chai-as-promised')
|
const chaiAsPromised = require('chai-as-promised')
|
||||||
const sinon = require('sinon')
|
const sinon = require('sinon')
|
||||||
const Web3 = require('web3')
|
const Web3 = require('web3')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../src/services/HttpListProvider')
|
||||||
const estimateGas = require('../src/events/processAffirmationRequests/estimateGas')
|
const estimateGas = require('../src/events/processAffirmationRequests/estimateGas')
|
||||||
const errors = require('../src/utils/errors')
|
const errors = require('../src/utils/errors')
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
const { expect } = require('chai').use(require('chai-as-promised'))
|
const { expect } = require('chai').use(require('chai-as-promised'))
|
||||||
const sinon = require('sinon')
|
const sinon = require('sinon')
|
||||||
const Web3 = require('web3')
|
const Web3 = require('web3')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../src/services/HttpListProvider')
|
||||||
const { createMessage, signatureToVRS } = require('../src/utils/message')
|
const { createMessage, signatureToVRS } = require('../src/utils/message')
|
||||||
const estimateGas = require('../src/events/processCollectedSignatures/estimateGas')
|
const estimateGas = require('../src/events/processCollectedSignatures/estimateGas')
|
||||||
const errors = require('../src/utils/errors')
|
const errors = require('../src/utils/errors')
|
||||||
|
@ -2,7 +2,7 @@ const chai = require('chai')
|
|||||||
const chaiAsPromised = require('chai-as-promised')
|
const chaiAsPromised = require('chai-as-promised')
|
||||||
const sinon = require('sinon')
|
const sinon = require('sinon')
|
||||||
const Web3 = require('web3')
|
const Web3 = require('web3')
|
||||||
const { HttpListProviderError } = require('http-list-provider')
|
const { HttpListProviderError } = require('../src/services/HttpListProvider')
|
||||||
const estimateGas = require('../src/events/processSignatureRequests/estimateGas')
|
const estimateGas = require('../src/events/processSignatureRequests/estimateGas')
|
||||||
const errors = require('../src/utils/errors')
|
const errors = require('../src/utils/errors')
|
||||||
|
|
||||||
|
521
yarn.lock
521
yarn.lock
@ -1304,6 +1304,21 @@
|
|||||||
"@ethersproject/properties" ">=5.0.0-beta.131"
|
"@ethersproject/properties" ">=5.0.0-beta.131"
|
||||||
"@ethersproject/strings" ">=5.0.0-beta.130"
|
"@ethersproject/strings" ">=5.0.0-beta.130"
|
||||||
|
|
||||||
|
"@ethersproject/abi@5.0.0-beta.153":
|
||||||
|
version "5.0.0-beta.153"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee"
|
||||||
|
integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/address" ">=5.0.0-beta.128"
|
||||||
|
"@ethersproject/bignumber" ">=5.0.0-beta.130"
|
||||||
|
"@ethersproject/bytes" ">=5.0.0-beta.129"
|
||||||
|
"@ethersproject/constants" ">=5.0.0-beta.128"
|
||||||
|
"@ethersproject/hash" ">=5.0.0-beta.128"
|
||||||
|
"@ethersproject/keccak256" ">=5.0.0-beta.127"
|
||||||
|
"@ethersproject/logger" ">=5.0.0-beta.129"
|
||||||
|
"@ethersproject/properties" ">=5.0.0-beta.131"
|
||||||
|
"@ethersproject/strings" ">=5.0.0-beta.130"
|
||||||
|
|
||||||
"@ethersproject/address@>=5.0.0-beta.128":
|
"@ethersproject/address@>=5.0.0-beta.128":
|
||||||
version "5.0.0-beta.134"
|
version "5.0.0-beta.134"
|
||||||
resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.0-beta.134.tgz#9c1790c87b763dc547ac12e2dbc9fa78d0799a71"
|
resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.0-beta.134.tgz#9c1790c87b763dc547ac12e2dbc9fa78d0799a71"
|
||||||
@ -1316,22 +1331,33 @@
|
|||||||
"@ethersproject/rlp" ">=5.0.0-beta.126"
|
"@ethersproject/rlp" ">=5.0.0-beta.126"
|
||||||
bn.js "^4.4.0"
|
bn.js "^4.4.0"
|
||||||
|
|
||||||
"@ethersproject/bignumber@>=5.0.0-beta.130":
|
"@ethersproject/address@^5.0.4":
|
||||||
version "5.0.0-beta.136"
|
version "5.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.0-beta.136.tgz#5fd90ee708f3778733b02caf58453756524c758f"
|
resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.5.tgz#2caa65f6b7125015395b1b54c985ee0b27059cc7"
|
||||||
integrity sha512-G5fYkkMUpmQd7Qcxa7YdwavBkiSb44wI7GsZls/7eGFMYl2ySgmwOBMw3kj1lhheXbF73jfBfOBHvKYrN/p7pQ==
|
integrity sha512-DpkQ6rwk9jTefrRsJzEm6nhRiJd9pvhn1xN0rw5N/jswXG5r7BLk/GVA0mMAVWAsYfvi2xSc5L41FMox43RYEA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ethersproject/bytes" ">=5.0.0-beta.129"
|
"@ethersproject/bignumber" "^5.0.7"
|
||||||
"@ethersproject/logger" ">=5.0.0-beta.129"
|
"@ethersproject/bytes" "^5.0.4"
|
||||||
"@ethersproject/properties" ">=5.0.0-beta.131"
|
"@ethersproject/keccak256" "^5.0.3"
|
||||||
|
"@ethersproject/logger" "^5.0.5"
|
||||||
|
"@ethersproject/rlp" "^5.0.3"
|
||||||
bn.js "^4.4.0"
|
bn.js "^4.4.0"
|
||||||
|
|
||||||
"@ethersproject/bytes@>=5.0.0-beta.129":
|
"@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.7":
|
||||||
version "5.0.0-beta.137"
|
version "5.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.0-beta.137.tgz#a9a35e2b358886289225d28212f4071ae391c161"
|
resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.8.tgz#cee33bd8eb0266176def0d371b45274b1d2c4ec0"
|
||||||
integrity sha512-uBwchZzGP912Wcani6vM7RLtsnN69Uc9WTLvewsniKrpHpSx0/k33WUcQVosmkwPgUtqflKyGjcIqaea1Z9WHw==
|
integrity sha512-KXFVAFKS1jdTXYN8BE5Oj+ZfPMh28iRdFeNGBVT6cUFdtiPVqeXqc0ggvBqA3A1VoFFGgM7oAeaagA393aORHA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ethersproject/logger" ">=5.0.0-beta.129"
|
"@ethersproject/bytes" "^5.0.4"
|
||||||
|
"@ethersproject/logger" "^5.0.5"
|
||||||
|
bn.js "^4.4.0"
|
||||||
|
|
||||||
|
"@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.4":
|
||||||
|
version "5.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.5.tgz#688b70000e550de0c97a151a21f15b87d7f97d7c"
|
||||||
|
integrity sha512-IEj9HpZB+ACS6cZ+QQMTqmu/cnUK2fYNE6ms/PVxjoBjoxc6HCraLpam1KuRvreMy0i523PLmjN8OYeikRdcUQ==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/logger" "^5.0.5"
|
||||||
|
|
||||||
"@ethersproject/constants@>=5.0.0-beta.128":
|
"@ethersproject/constants@>=5.0.0-beta.128":
|
||||||
version "5.0.0-beta.133"
|
version "5.0.0-beta.133"
|
||||||
@ -1340,6 +1366,13 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@ethersproject/bignumber" ">=5.0.0-beta.130"
|
"@ethersproject/bignumber" ">=5.0.0-beta.130"
|
||||||
|
|
||||||
|
"@ethersproject/constants@^5.0.4":
|
||||||
|
version "5.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.5.tgz#0ed19b002e8404bdf6d135234dc86a7d9bcf9b71"
|
||||||
|
integrity sha512-foaQVmxp2+ik9FrLUCtVrLZCj4M3Ibgkqvh+Xw/vFRSerkjVSYePApaVE5essxhoSlF1U9oXfWY09QI2AXtgKA==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/bignumber" "^5.0.7"
|
||||||
|
|
||||||
"@ethersproject/hash@>=5.0.0-beta.128":
|
"@ethersproject/hash@>=5.0.0-beta.128":
|
||||||
version "5.0.0-beta.133"
|
version "5.0.0-beta.133"
|
||||||
resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.0-beta.133.tgz#bda0c74454a82359642033f27c5157963495fcdf"
|
resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.0-beta.133.tgz#bda0c74454a82359642033f27c5157963495fcdf"
|
||||||
@ -1358,17 +1391,25 @@
|
|||||||
"@ethersproject/bytes" ">=5.0.0-beta.129"
|
"@ethersproject/bytes" ">=5.0.0-beta.129"
|
||||||
js-sha3 "0.5.7"
|
js-sha3 "0.5.7"
|
||||||
|
|
||||||
"@ethersproject/logger@>=5.0.0-beta.129":
|
"@ethersproject/keccak256@^5.0.3":
|
||||||
version "5.0.0-beta.136"
|
version "5.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.0-beta.136.tgz#a140cea77e1d820a97384fb02bfad63c130f31c1"
|
resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.4.tgz#36ca0a7d1ae2a272da5654cb886776d0c680ef3a"
|
||||||
integrity sha512-baWK/4ccsVcyUU20nhp7k+hoRYsiaOfURYlyvQCoUUFKD3mpSRQCH42wxCosZZSCWz4rTHgASLQDdKkBtNVz1w==
|
integrity sha512-GNpiOUm9PGUxFNqOxYKDQBM0u68bG9XC9iOulEQ8I0tOx/4qUpgVzvgXL6ugxr0RY554Gz/NQsVqknqPzUcxpQ==
|
||||||
|
|
||||||
"@ethersproject/properties@>=5.0.0-beta.131":
|
|
||||||
version "5.0.0-beta.138"
|
|
||||||
resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.0-beta.138.tgz#e634d25b8c9f9448ef8d739bf4bd2db831dbe79d"
|
|
||||||
integrity sha512-vLVftNTxonJ0SkkcMcpXHN9pABD84clh+Cz3TV79qvh+lc0MFX3dnYL1JinBdFnqLPXU9vw2LbTrBhwQY8bzCQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ethersproject/logger" ">=5.0.0-beta.129"
|
"@ethersproject/bytes" "^5.0.4"
|
||||||
|
js-sha3 "0.5.7"
|
||||||
|
|
||||||
|
"@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.5":
|
||||||
|
version "5.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.6.tgz#faa484203e86e08be9e07fef826afeef7183fe88"
|
||||||
|
integrity sha512-FrX0Vnb3JZ1md/7GIZfmJ06XOAA8r3q9Uqt9O5orr4ZiksnbpXKlyDzQtlZ5Yv18RS8CAUbiKH9vwidJg1BPmQ==
|
||||||
|
|
||||||
|
"@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.3":
|
||||||
|
version "5.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.4.tgz#a67a1f5a52c30850b5062c861631e73d131f666e"
|
||||||
|
integrity sha512-UdyX3GqBxFt15B0uSESdDNmhvEbK3ACdDXl2soshoPcneXuTswHDeA0LoPlnaZzhbgk4p6jqb4GMms5C26Qu6A==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/logger" "^5.0.5"
|
||||||
|
|
||||||
"@ethersproject/rlp@>=5.0.0-beta.126":
|
"@ethersproject/rlp@>=5.0.0-beta.126":
|
||||||
version "5.0.0-beta.132"
|
version "5.0.0-beta.132"
|
||||||
@ -1378,6 +1419,24 @@
|
|||||||
"@ethersproject/bytes" ">=5.0.0-beta.129"
|
"@ethersproject/bytes" ">=5.0.0-beta.129"
|
||||||
"@ethersproject/logger" ">=5.0.0-beta.129"
|
"@ethersproject/logger" ">=5.0.0-beta.129"
|
||||||
|
|
||||||
|
"@ethersproject/rlp@^5.0.3":
|
||||||
|
version "5.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.4.tgz#0090a0271e84ea803016a112a79f5cfd80271a77"
|
||||||
|
integrity sha512-5qrrZad7VTjofxSsm7Zg/7Dr4ZOln4S2CqiDdOuTv6MBKnXj0CiBojXyuDy52M8O3wxH0CyE924hXWTDV1PQWQ==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/bytes" "^5.0.4"
|
||||||
|
"@ethersproject/logger" "^5.0.5"
|
||||||
|
|
||||||
|
"@ethersproject/signing-key@^5.0.4":
|
||||||
|
version "5.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.5.tgz#acfd06fc05a14180df7e027688bbd23fc4baf782"
|
||||||
|
integrity sha512-Z1wY7JC1HVO4CvQWY2TyTTuAr8xK3bJijZw1a9G92JEmKdv1j255R/0YLBBcFTl2J65LUjtXynNJ2GbArPGi5g==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/bytes" "^5.0.4"
|
||||||
|
"@ethersproject/logger" "^5.0.5"
|
||||||
|
"@ethersproject/properties" "^5.0.3"
|
||||||
|
elliptic "6.5.3"
|
||||||
|
|
||||||
"@ethersproject/strings@>=5.0.0-beta.130":
|
"@ethersproject/strings@>=5.0.0-beta.130":
|
||||||
version "5.0.0-beta.136"
|
version "5.0.0-beta.136"
|
||||||
resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.0-beta.136.tgz#053cbf4f9f96a7537cbc50300597f2d707907f51"
|
resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.0-beta.136.tgz#053cbf4f9f96a7537cbc50300597f2d707907f51"
|
||||||
@ -1387,6 +1446,21 @@
|
|||||||
"@ethersproject/constants" ">=5.0.0-beta.128"
|
"@ethersproject/constants" ">=5.0.0-beta.128"
|
||||||
"@ethersproject/logger" ">=5.0.0-beta.129"
|
"@ethersproject/logger" ">=5.0.0-beta.129"
|
||||||
|
|
||||||
|
"@ethersproject/transactions@^5.0.0-beta.135":
|
||||||
|
version "5.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.6.tgz#b8b27938be6e9ed671dbdd35fe98af8b14d0df7c"
|
||||||
|
integrity sha512-htsFhOD+NMBxx676A8ehSuwVV49iqpSB+CkjPZ02tpNew0K6p8g0CZ46Z1ZP946gIHAU80xQ0NACHYrjIUaCFA==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/address" "^5.0.4"
|
||||||
|
"@ethersproject/bignumber" "^5.0.7"
|
||||||
|
"@ethersproject/bytes" "^5.0.4"
|
||||||
|
"@ethersproject/constants" "^5.0.4"
|
||||||
|
"@ethersproject/keccak256" "^5.0.3"
|
||||||
|
"@ethersproject/logger" "^5.0.5"
|
||||||
|
"@ethersproject/properties" "^5.0.3"
|
||||||
|
"@ethersproject/rlp" "^5.0.3"
|
||||||
|
"@ethersproject/signing-key" "^5.0.4"
|
||||||
|
|
||||||
"@evocateur/libnpmaccess@^3.1.2":
|
"@evocateur/libnpmaccess@^3.1.2":
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845"
|
resolved "https://registry.yarnpkg.com/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz#ecf7f6ce6b004e9f942b098d92200be4a4b1c845"
|
||||||
@ -2847,7 +2921,7 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
bignumber.js "*"
|
bignumber.js "*"
|
||||||
|
|
||||||
"@types/bn.js@^4.11.0", "@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4":
|
"@types/bn.js@^4.11.0", "@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4", "@types/bn.js@^4.11.5":
|
||||||
version "4.11.6"
|
version "4.11.6"
|
||||||
resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c"
|
resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c"
|
||||||
integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==
|
integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==
|
||||||
@ -2990,6 +3064,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.43.tgz#b60ce047822e526e7a9252e50844eee79d5386ff"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.43.tgz#b60ce047822e526e7a9252e50844eee79d5386ff"
|
||||||
integrity sha512-KUyZdkGCnVPuXfsKmDUu2XLui65LZIJ2s0M57noy5e+ixUT2oK33ep7zlvgzI8LElcWqbf8AR+o/3GqAPac2zA==
|
integrity sha512-KUyZdkGCnVPuXfsKmDUu2XLui65LZIJ2s0M57noy5e+ixUT2oK33ep7zlvgzI8LElcWqbf8AR+o/3GqAPac2zA==
|
||||||
|
|
||||||
|
"@types/node@^12.12.6":
|
||||||
|
version "12.12.69"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.69.tgz#7cb6a3aa0d16664bf2dcd1450ccb8477464fbd79"
|
||||||
|
integrity sha512-2F2VQRSFmzqgUEXw75L51MgnnZqc6bKWVSUPfrDPzp6mzGGibeVwyQcpvZvBr5RnsoMRHmC8EcBQiobSeqeJxg==
|
||||||
|
|
||||||
"@types/node@^12.6.1":
|
"@types/node@^12.6.1":
|
||||||
version "12.12.34"
|
version "12.12.34"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.34.tgz#0a5d6ae5d22612f0cf5f10320e1fc5d2a745dcb8"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.34.tgz#0a5d6ae5d22612f0cf5f10320e1fc5d2a745dcb8"
|
||||||
@ -4932,7 +5011,7 @@ balanced-match@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||||
|
|
||||||
base-x@^3.0.2:
|
base-x@^3.0.2, base-x@^3.0.8:
|
||||||
version "3.0.8"
|
version "3.0.8"
|
||||||
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d"
|
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d"
|
||||||
integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==
|
integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==
|
||||||
@ -5108,11 +5187,16 @@ bn.js@4.11.6:
|
|||||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215"
|
||||||
integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU=
|
integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU=
|
||||||
|
|
||||||
bn.js@4.11.8, bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.4.0, bn.js@^4.8.0:
|
bn.js@4.11.8, bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.8.0:
|
||||||
version "4.11.8"
|
version "4.11.8"
|
||||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
||||||
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
|
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
|
||||||
|
|
||||||
|
bn.js@^4.11.9, bn.js@^4.4.0:
|
||||||
|
version "4.11.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
|
||||||
|
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
|
||||||
|
|
||||||
body-parser@1.19.0, body-parser@^1.16.0:
|
body-parser@1.19.0, body-parser@^1.16.0:
|
||||||
version "1.19.0"
|
version "1.19.0"
|
||||||
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
|
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
|
||||||
@ -5417,7 +5501,7 @@ buffer@^5.0.5:
|
|||||||
base64-js "^1.0.2"
|
base64-js "^1.0.2"
|
||||||
ieee754 "^1.1.4"
|
ieee754 "^1.1.4"
|
||||||
|
|
||||||
buffer@^5.2.1:
|
buffer@^5.2.1, buffer@^5.6.0:
|
||||||
version "5.6.0"
|
version "5.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
|
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
|
||||||
integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
|
integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
|
||||||
@ -5433,6 +5517,13 @@ buffer@^5.5.0:
|
|||||||
base64-js "^1.0.2"
|
base64-js "^1.0.2"
|
||||||
ieee754 "^1.1.4"
|
ieee754 "^1.1.4"
|
||||||
|
|
||||||
|
bufferutil@^4.0.1:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7"
|
||||||
|
integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==
|
||||||
|
dependencies:
|
||||||
|
node-gyp-build "~3.7.0"
|
||||||
|
|
||||||
builtin-status-codes@^3.0.0:
|
builtin-status-codes@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
|
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
|
||||||
@ -5857,6 +5948,17 @@ ci-info@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
|
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
|
||||||
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
|
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
|
||||||
|
|
||||||
|
cids@^0.7.1:
|
||||||
|
version "0.7.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2"
|
||||||
|
integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==
|
||||||
|
dependencies:
|
||||||
|
buffer "^5.5.0"
|
||||||
|
class-is "^1.1.0"
|
||||||
|
multibase "~0.6.0"
|
||||||
|
multicodec "^1.0.0"
|
||||||
|
multihashes "~0.4.15"
|
||||||
|
|
||||||
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
|
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
|
||||||
@ -5865,6 +5967,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
|
|||||||
inherits "^2.0.1"
|
inherits "^2.0.1"
|
||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
|
class-is@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825"
|
||||||
|
integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==
|
||||||
|
|
||||||
class-utils@^0.3.5:
|
class-utils@^0.3.5:
|
||||||
version "0.3.6"
|
version "0.3.6"
|
||||||
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
|
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
|
||||||
@ -6330,6 +6437,15 @@ content-disposition@0.5.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "5.1.2"
|
safe-buffer "5.1.2"
|
||||||
|
|
||||||
|
content-hash@^2.5.2:
|
||||||
|
version "2.5.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211"
|
||||||
|
integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==
|
||||||
|
dependencies:
|
||||||
|
cids "^0.7.1"
|
||||||
|
multicodec "^0.5.5"
|
||||||
|
multihashes "^0.4.15"
|
||||||
|
|
||||||
content-type@~1.0.4:
|
content-type@~1.0.4:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
||||||
@ -7174,11 +7290,6 @@ deep-is@~0.1.3:
|
|||||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
||||||
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
|
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
|
||||||
|
|
||||||
deepmerge@^2.1.1:
|
|
||||||
version "2.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
|
|
||||||
integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
|
|
||||||
|
|
||||||
default-compare@^1.0.0:
|
default-compare@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
|
resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f"
|
||||||
@ -7677,6 +7788,19 @@ elliptic@6.5.2, elliptic@^6.5.2:
|
|||||||
minimalistic-assert "^1.0.0"
|
minimalistic-assert "^1.0.0"
|
||||||
minimalistic-crypto-utils "^1.0.0"
|
minimalistic-crypto-utils "^1.0.0"
|
||||||
|
|
||||||
|
elliptic@6.5.3:
|
||||||
|
version "6.5.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
|
||||||
|
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
|
||||||
|
dependencies:
|
||||||
|
bn.js "^4.4.0"
|
||||||
|
brorand "^1.0.1"
|
||||||
|
hash.js "^1.0.0"
|
||||||
|
hmac-drbg "^1.0.0"
|
||||||
|
inherits "^2.0.1"
|
||||||
|
minimalistic-assert "^1.0.0"
|
||||||
|
minimalistic-crypto-utils "^1.0.0"
|
||||||
|
|
||||||
elliptic@^6.0.0, elliptic@^6.4.0:
|
elliptic@^6.0.0, elliptic@^6.4.0:
|
||||||
version "6.4.1"
|
version "6.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
|
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
|
||||||
@ -8492,7 +8616,7 @@ eth-lib@0.2.7:
|
|||||||
elliptic "^6.4.0"
|
elliptic "^6.4.0"
|
||||||
xhr-request-promise "^0.1.2"
|
xhr-request-promise "^0.1.2"
|
||||||
|
|
||||||
eth-lib@^0.2.8:
|
eth-lib@0.2.8, eth-lib@^0.2.8:
|
||||||
version "0.2.8"
|
version "0.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8"
|
resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8"
|
||||||
integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==
|
integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==
|
||||||
@ -8840,7 +8964,7 @@ eventemitter3@3.1.2, eventemitter3@^3.0.0, eventemitter3@^3.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
|
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
|
||||||
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
|
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
|
||||||
|
|
||||||
eventemitter3@^4.0.0:
|
eventemitter3@4.0.4, eventemitter3@^4.0.0:
|
||||||
version "4.0.4"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
|
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
|
||||||
integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
|
integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
|
||||||
@ -10752,15 +10876,6 @@ http-https@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b"
|
resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b"
|
||||||
integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=
|
integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=
|
||||||
|
|
||||||
http-list-provider@0.0.5:
|
|
||||||
version "0.0.5"
|
|
||||||
resolved "https://registry.yarnpkg.com/http-list-provider/-/http-list-provider-0.0.5.tgz#bb901c8bd7bbcce48a697512cb920aaf9aeeb0be"
|
|
||||||
integrity sha512-s6hMhJLQmCtF3EbM5xDZW97Urk8jG2wfXDVOCANcF0DO/tXPq1iACZ7eFb9+obYVd7459w1mvCgiDUskIschmg==
|
|
||||||
dependencies:
|
|
||||||
deepmerge "^2.1.1"
|
|
||||||
node-fetch "^2.2.0"
|
|
||||||
promise-retry "^1.1.1"
|
|
||||||
|
|
||||||
http-parser-js@>=0.4.0:
|
http-parser-js@>=0.4.0:
|
||||||
version "0.5.0"
|
version "0.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8"
|
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8"
|
||||||
@ -13936,6 +14051,22 @@ ms@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||||
|
|
||||||
|
multibase@^0.7.0:
|
||||||
|
version "0.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b"
|
||||||
|
integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==
|
||||||
|
dependencies:
|
||||||
|
base-x "^3.0.8"
|
||||||
|
buffer "^5.5.0"
|
||||||
|
|
||||||
|
multibase@~0.6.0:
|
||||||
|
version "0.6.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b"
|
||||||
|
integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==
|
||||||
|
dependencies:
|
||||||
|
base-x "^3.0.8"
|
||||||
|
buffer "^5.5.0"
|
||||||
|
|
||||||
multicast-dns-service-types@^1.1.0:
|
multicast-dns-service-types@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
|
resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
|
||||||
@ -13949,6 +14080,30 @@ multicast-dns@^6.0.1:
|
|||||||
dns-packet "^1.3.1"
|
dns-packet "^1.3.1"
|
||||||
thunky "^1.0.2"
|
thunky "^1.0.2"
|
||||||
|
|
||||||
|
multicodec@^0.5.5:
|
||||||
|
version "0.5.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd"
|
||||||
|
integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==
|
||||||
|
dependencies:
|
||||||
|
varint "^5.0.0"
|
||||||
|
|
||||||
|
multicodec@^1.0.0:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f"
|
||||||
|
integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==
|
||||||
|
dependencies:
|
||||||
|
buffer "^5.6.0"
|
||||||
|
varint "^5.0.0"
|
||||||
|
|
||||||
|
multihashes@^0.4.15, multihashes@~0.4.15:
|
||||||
|
version "0.4.21"
|
||||||
|
resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5"
|
||||||
|
integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==
|
||||||
|
dependencies:
|
||||||
|
buffer "^5.5.0"
|
||||||
|
multibase "^0.7.0"
|
||||||
|
varint "^5.0.0"
|
||||||
|
|
||||||
multimatch@^3.0.0:
|
multimatch@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b"
|
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b"
|
||||||
@ -14123,7 +14278,7 @@ node-fetch@^1.0.1, node-fetch@~1.7.1:
|
|||||||
encoding "^0.1.11"
|
encoding "^0.1.11"
|
||||||
is-stream "^1.0.1"
|
is-stream "^1.0.1"
|
||||||
|
|
||||||
node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0:
|
node-fetch@^2.1.2, node-fetch@^2.3.0, node-fetch@^2.5.0:
|
||||||
version "2.6.0"
|
version "2.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
|
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
|
||||||
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
|
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
|
||||||
@ -14133,6 +14288,11 @@ node-forge@0.7.5:
|
|||||||
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
|
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
|
||||||
integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==
|
integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==
|
||||||
|
|
||||||
|
node-gyp-build@~3.7.0:
|
||||||
|
version "3.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d"
|
||||||
|
integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==
|
||||||
|
|
||||||
node-gyp@^3.8.0:
|
node-gyp@^3.8.0:
|
||||||
version "3.8.0"
|
version "3.8.0"
|
||||||
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
|
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c"
|
||||||
@ -14719,6 +14879,13 @@ oboe@2.1.4:
|
|||||||
dependencies:
|
dependencies:
|
||||||
http-https "^1.0.0"
|
http-https "^1.0.0"
|
||||||
|
|
||||||
|
oboe@2.1.5:
|
||||||
|
version "2.1.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd"
|
||||||
|
integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=
|
||||||
|
dependencies:
|
||||||
|
http-https "^1.0.0"
|
||||||
|
|
||||||
obuf@^1.0.0, obuf@^1.1.2:
|
obuf@^1.0.0, obuf@^1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
||||||
@ -17859,6 +18026,11 @@ scrypt-js@2.0.4:
|
|||||||
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16"
|
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16"
|
||||||
integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==
|
integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==
|
||||||
|
|
||||||
|
scrypt-js@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312"
|
||||||
|
integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==
|
||||||
|
|
||||||
scrypt.js@0.2.0:
|
scrypt.js@0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada"
|
resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada"
|
||||||
@ -20189,6 +20361,13 @@ use@^3.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
|
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
|
||||||
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
|
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
|
||||||
|
|
||||||
|
utf-8-validate@^5.0.2:
|
||||||
|
version "5.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3"
|
||||||
|
integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==
|
||||||
|
dependencies:
|
||||||
|
node-gyp-build "~3.7.0"
|
||||||
|
|
||||||
utf8@2.1.1:
|
utf8@2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.1.tgz#2e01db02f7d8d0944f77104f1609eb0c304cf768"
|
resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.1.tgz#2e01db02f7d8d0944f77104f1609eb0c304cf768"
|
||||||
@ -20305,6 +20484,11 @@ value-or-function@^3.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813"
|
resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813"
|
||||||
integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=
|
integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=
|
||||||
|
|
||||||
|
varint@^5.0.0:
|
||||||
|
version "5.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4"
|
||||||
|
integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==
|
||||||
|
|
||||||
vary@^1, vary@~1.1.2:
|
vary@^1, vary@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||||
@ -20541,6 +20725,16 @@ web3-bzz@1.2.7:
|
|||||||
swarm-js "^0.1.40"
|
swarm-js "^0.1.40"
|
||||||
underscore "1.9.1"
|
underscore "1.9.1"
|
||||||
|
|
||||||
|
web3-bzz@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.0.tgz#83dfd77fa8a64bbb660462dffd0fee2a02ef1051"
|
||||||
|
integrity sha512-ibYAnKab+sgTo/UdfbrvYfWblXjjgSMgyy9/FHa6WXS14n/HVB+HfWqGz2EM3fok8Wy5XoKGMvdqvERQ/mzq1w==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "^12.12.6"
|
||||||
|
got "9.6.0"
|
||||||
|
swarm-js "^0.1.40"
|
||||||
|
underscore "1.9.1"
|
||||||
|
|
||||||
web3-core-helpers@1.0.0-beta.30:
|
web3-core-helpers@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.30.tgz#a000cee3f0a09eea13d74b5730335d4635fe1f2f"
|
resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.30.tgz#a000cee3f0a09eea13d74b5730335d4635fe1f2f"
|
||||||
@ -20577,6 +20771,15 @@ web3-core-helpers@1.2.7:
|
|||||||
web3-eth-iban "1.2.7"
|
web3-eth-iban "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-core-helpers@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.0.tgz#697cc3246a7eaaaac64ea506828d861c981c3f31"
|
||||||
|
integrity sha512-+MFb1kZCrRctf7UYE7NCG4rGhSXaQJ/KF07di9GVK1pxy1K0+rFi61ZobuV1ky9uQp+uhhSPts4Zp55kRDB5sw==
|
||||||
|
dependencies:
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-eth-iban "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-core-method@1.0.0-beta.30:
|
web3-core-method@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.30.tgz#8dd6ff789e8d1563b8786d13a78c7facefae471c"
|
resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.30.tgz#8dd6ff789e8d1563b8786d13a78c7facefae471c"
|
||||||
@ -20621,6 +20824,18 @@ web3-core-method@1.2.7:
|
|||||||
web3-core-subscriptions "1.2.7"
|
web3-core-subscriptions "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-core-method@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.0.tgz#a71387af842aec7dbad5dbbd1130c14cc6c8beb3"
|
||||||
|
integrity sha512-h0yFDrYVzy5WkLxC/C3q+hiMnzxdWm9p1T1rslnuHgOp6nYfqzu/6mUIXrsS4h/OWiGJt+BZ0xVZmtC31HDWtg==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/transactions" "^5.0.0-beta.135"
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-core-promievent "1.3.0"
|
||||||
|
web3-core-subscriptions "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-core-promievent@1.0.0-beta.30:
|
web3-core-promievent@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.30.tgz#6205192bfb097441132226a5939ec5aed3a8a291"
|
resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.30.tgz#6205192bfb097441132226a5939ec5aed3a8a291"
|
||||||
@ -20652,6 +20867,13 @@ web3-core-promievent@1.2.7:
|
|||||||
dependencies:
|
dependencies:
|
||||||
eventemitter3 "3.1.2"
|
eventemitter3 "3.1.2"
|
||||||
|
|
||||||
|
web3-core-promievent@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.0.tgz#e0442dd0a8989b6bdce09293976cee6d9237a484"
|
||||||
|
integrity sha512-blv69wrXw447TP3iPvYJpllkhW6B18nfuEbrfcr3n2Y0v1Jx8VJacNZFDFsFIcgXcgUIVCtOpimU7w9v4+rtaw==
|
||||||
|
dependencies:
|
||||||
|
eventemitter3 "4.0.4"
|
||||||
|
|
||||||
web3-core-requestmanager@1.0.0-beta.30:
|
web3-core-requestmanager@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.30.tgz#6ee56fb8a6cb85fd01b3080854f50d64e52240c6"
|
resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.30.tgz#6ee56fb8a6cb85fd01b3080854f50d64e52240c6"
|
||||||
@ -20696,6 +20918,17 @@ web3-core-requestmanager@1.2.7:
|
|||||||
web3-providers-ipc "1.2.7"
|
web3-providers-ipc "1.2.7"
|
||||||
web3-providers-ws "1.2.7"
|
web3-providers-ws "1.2.7"
|
||||||
|
|
||||||
|
web3-core-requestmanager@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.0.tgz#c5b9a0304504c0e6cce6c90bc1a3bff82732aa1f"
|
||||||
|
integrity sha512-3yMbuGcomtzlmvTVqNRydxsx7oPlw3ioRL6ReF9PeNYDkUsZaUib+6Dp5eBt7UXh5X+SIn/xa1smhDHz5/HpAw==
|
||||||
|
dependencies:
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-providers-http "1.3.0"
|
||||||
|
web3-providers-ipc "1.3.0"
|
||||||
|
web3-providers-ws "1.3.0"
|
||||||
|
|
||||||
web3-core-subscriptions@1.0.0-beta.30:
|
web3-core-subscriptions@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.30.tgz#31652c75356c3f67e5a19cd14b8d314bad4e2127"
|
resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.30.tgz#31652c75356c3f67e5a19cd14b8d314bad4e2127"
|
||||||
@ -20732,6 +20965,15 @@ web3-core-subscriptions@1.2.7:
|
|||||||
underscore "1.9.1"
|
underscore "1.9.1"
|
||||||
web3-core-helpers "1.2.7"
|
web3-core-helpers "1.2.7"
|
||||||
|
|
||||||
|
web3-core-subscriptions@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.0.tgz#c2622ccd2b84f4687475398ff966b579dba0847e"
|
||||||
|
integrity sha512-MUUQUAhJDb+Nz3S97ExVWveH4utoUnsbPWP+q1HJH437hEGb4vunIb9KvN3hFHLB+aHJfPeStM/4yYTz5PeuyQ==
|
||||||
|
dependencies:
|
||||||
|
eventemitter3 "4.0.4"
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
|
||||||
web3-core@1.0.0-beta.30:
|
web3-core@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.30.tgz#f75f4d3b85be74c7674637921c3e013bc5d27679"
|
resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.30.tgz#f75f4d3b85be74c7674637921c3e013bc5d27679"
|
||||||
@ -20778,6 +21020,19 @@ web3-core@1.2.7:
|
|||||||
web3-core-requestmanager "1.2.7"
|
web3-core-requestmanager "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-core@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.0.tgz#b818903738461c1cca0163339e1d6d3fa51242cf"
|
||||||
|
integrity sha512-BwWvAaKJf4KFG9QsKRi3MNoNgzjI6szyUlgme1qNPxUdCkaS3Rdpa0VKYNHP7M/YTk82/59kNE66mH5vmoaXjA==
|
||||||
|
dependencies:
|
||||||
|
"@types/bn.js" "^4.11.5"
|
||||||
|
"@types/node" "^12.12.6"
|
||||||
|
bignumber.js "^9.0.0"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-core-method "1.3.0"
|
||||||
|
web3-core-requestmanager "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-eth-abi@1.0.0-beta.30:
|
web3-eth-abi@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.30.tgz#6ea52c999a8505b47c2f88ba61d2a680a1066409"
|
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.30.tgz#6ea52c999a8505b47c2f88ba61d2a680a1066409"
|
||||||
@ -20816,6 +21071,15 @@ web3-eth-abi@1.2.7:
|
|||||||
underscore "1.9.1"
|
underscore "1.9.1"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-eth-abi@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.0.tgz#387b7ea9b38be69ad8856bc7b4e9a6a69bb4d22b"
|
||||||
|
integrity sha512-1OrZ9+KGrBeBRd3lO8upkpNua9+7cBsQAgor9wbA25UrcUYSyL8teV66JNRu9gFxaTbkpdrGqM7J/LXpraXWrg==
|
||||||
|
dependencies:
|
||||||
|
"@ethersproject/abi" "5.0.0-beta.153"
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-eth-abi@^1.0.0-beta.24:
|
web3-eth-abi@^1.0.0-beta.24:
|
||||||
version "1.2.6"
|
version "1.2.6"
|
||||||
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.6.tgz#b495383cc5c0d8e2857b26e7fe25606685983b25"
|
resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.6.tgz#b495383cc5c0d8e2857b26e7fe25606685983b25"
|
||||||
@ -20892,6 +21156,23 @@ web3-eth-accounts@1.2.7:
|
|||||||
web3-core-method "1.2.7"
|
web3-core-method "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-eth-accounts@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.0.tgz#010acf389b2bee6d5e1aecb2fe78bfa5c8f26c7a"
|
||||||
|
integrity sha512-/Q7EVW4L2wWUbNRtOTwAIrYvJid/5UnKMw67x/JpvRMwYC+e+744P536Ja6SG4X3MnzFvd3E/jruV4qa6k+zIw==
|
||||||
|
dependencies:
|
||||||
|
crypto-browserify "3.12.0"
|
||||||
|
eth-lib "0.2.8"
|
||||||
|
ethereumjs-common "^1.3.2"
|
||||||
|
ethereumjs-tx "^2.1.1"
|
||||||
|
scrypt-js "^3.0.1"
|
||||||
|
underscore "1.9.1"
|
||||||
|
uuid "3.3.2"
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-core-method "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-eth-contract@1.0.0-beta.30:
|
web3-eth-contract@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.30.tgz#d7eba2385084dff3c75aac48235af2c8d2d6a258"
|
resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.30.tgz#d7eba2385084dff3c75aac48235af2c8d2d6a258"
|
||||||
@ -20950,6 +21231,21 @@ web3-eth-contract@1.2.7:
|
|||||||
web3-eth-abi "1.2.7"
|
web3-eth-abi "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-eth-contract@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.0.tgz#c758340ac800788e29fa29edc8b0c0ac957b741c"
|
||||||
|
integrity sha512-3SCge4SRNCnzLxf0R+sXk6vyTOl05g80Z5+9/B5pERwtPpPWaQGw8w01vqYqsYBKC7zH+dxhMaUgVzU2Dgf7bQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/bn.js" "^4.11.5"
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-core-method "1.3.0"
|
||||||
|
web3-core-promievent "1.3.0"
|
||||||
|
web3-core-subscriptions "1.3.0"
|
||||||
|
web3-eth-abi "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-eth-ens@1.2.4:
|
web3-eth-ens@1.2.4:
|
||||||
version "1.2.4"
|
version "1.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.4.tgz#b95b3aa99fb1e35c802b9e02a44c3046a3fa065e"
|
resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.4.tgz#b95b3aa99fb1e35c802b9e02a44c3046a3fa065e"
|
||||||
@ -20978,6 +21274,21 @@ web3-eth-ens@1.2.7:
|
|||||||
web3-eth-contract "1.2.7"
|
web3-eth-contract "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-eth-ens@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.0.tgz#0887ba38473c104cf5fb8a715828b3b354fa02a2"
|
||||||
|
integrity sha512-WnOru+EcuM5dteiVYJcHXo/I7Wq+ei8RrlS2nir49M0QpYvUPGbCGgTbifcjJQTWamgORtWdljSA1s2Asdb74w==
|
||||||
|
dependencies:
|
||||||
|
content-hash "^2.5.2"
|
||||||
|
eth-ens-namehash "2.0.8"
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-core-promievent "1.3.0"
|
||||||
|
web3-eth-abi "1.3.0"
|
||||||
|
web3-eth-contract "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-eth-iban@1.0.0-beta.30:
|
web3-eth-iban@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.30.tgz#3b080a5c4da1fa37477b17e4c900781b92150645"
|
resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.30.tgz#3b080a5c4da1fa37477b17e4c900781b92150645"
|
||||||
@ -21010,6 +21321,14 @@ web3-eth-iban@1.2.7:
|
|||||||
bn.js "4.11.8"
|
bn.js "4.11.8"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-eth-iban@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.0.tgz#15b782dfaf273ebc4e3f389f1367f4e88ddce4a5"
|
||||||
|
integrity sha512-v9mZWhR4fPF17/KhHLiWir4YHWLe09O3B/NTdhWqw3fdAMJNztzMHGzgHxA/4fU+rhrs/FhDzc4yt32zMEXBZw==
|
||||||
|
dependencies:
|
||||||
|
bn.js "^4.11.9"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-eth-personal@1.0.0-beta.30:
|
web3-eth-personal@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.30.tgz#8bd4ef40b3b5f841dd3a8b97873d9dc791caf748"
|
resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.30.tgz#8bd4ef40b3b5f841dd3a8b97873d9dc791caf748"
|
||||||
@ -21056,6 +21375,18 @@ web3-eth-personal@1.2.7:
|
|||||||
web3-net "1.2.7"
|
web3-net "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-eth-personal@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.0.tgz#d376e03dc737d961ff1f8d1aca866efad8477135"
|
||||||
|
integrity sha512-2czUhElsJdLpuNfun9GeLiClo5O6Xw+bLSjl3f4bNG5X2V4wcIjX2ygep/nfstLLtkz8jSkgl/bV7esANJyeRA==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "^12.12.6"
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-core-method "1.3.0"
|
||||||
|
web3-net "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-eth@1.0.0-beta.30:
|
web3-eth@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.30.tgz#029b15e14cb608b9cfe02603b504d651870f0501"
|
resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.30.tgz#029b15e14cb608b9cfe02603b504d651870f0501"
|
||||||
@ -21130,6 +21461,25 @@ web3-eth@1.2.7:
|
|||||||
web3-net "1.2.7"
|
web3-net "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-eth@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.0.tgz#898e5f5a8827f9bc6844e267a52eb388916a6771"
|
||||||
|
integrity sha512-/bzJcxXPM9EM18JM5kO2JjZ3nEqVo3HxqU93aWAEgJNqaP/Lltmufl2GpvIB2Hvj+FXAjAXquxUdQ2/xP7BzHQ==
|
||||||
|
dependencies:
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
web3-core-method "1.3.0"
|
||||||
|
web3-core-subscriptions "1.3.0"
|
||||||
|
web3-eth-abi "1.3.0"
|
||||||
|
web3-eth-accounts "1.3.0"
|
||||||
|
web3-eth-contract "1.3.0"
|
||||||
|
web3-eth-ens "1.3.0"
|
||||||
|
web3-eth-iban "1.3.0"
|
||||||
|
web3-eth-personal "1.3.0"
|
||||||
|
web3-net "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-net@1.0.0-beta.30:
|
web3-net@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.30.tgz#0a352ede296e6d4b7f88b67aa474e49703de73bf"
|
resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.30.tgz#0a352ede296e6d4b7f88b67aa474e49703de73bf"
|
||||||
@ -21166,6 +21516,15 @@ web3-net@1.2.7:
|
|||||||
web3-core-method "1.2.7"
|
web3-core-method "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3-net@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.0.tgz#b69068cccffab58911c2f08ca4abfbefb0f948c6"
|
||||||
|
integrity sha512-Xz02KylOyrB2YZzCkysEDrY7RbKxb7LADzx3Zlovfvuby7HBwtXVexXKtoGqksa+ns1lvjQLLQGb+OeLi7Sr7w==
|
||||||
|
dependencies:
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-core-method "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
web3-provider-engine@14.0.6:
|
web3-provider-engine@14.0.6:
|
||||||
version "14.0.6"
|
version "14.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz#cbdd66fe20c0136a3a495cbe40d18b6c4160d5f0"
|
resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz#cbdd66fe20c0136a3a495cbe40d18b6c4160d5f0"
|
||||||
@ -21251,6 +21610,14 @@ web3-providers-http@1.2.7:
|
|||||||
web3-core-helpers "1.2.7"
|
web3-core-helpers "1.2.7"
|
||||||
xhr2-cookies "1.1.0"
|
xhr2-cookies "1.1.0"
|
||||||
|
|
||||||
|
web3-providers-http@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.0.tgz#88227f64c88b32abed4359383c2663616e0dc531"
|
||||||
|
integrity sha512-cMKhUI6PqlY/EC+ZDacAxajySBu8AzW8jOjt1Pe/mbRQgS0rcZyvLePGTTuoyaA8C21F8UW+EE5jj7YsNgOuqA==
|
||||||
|
dependencies:
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
xhr2-cookies "1.1.0"
|
||||||
|
|
||||||
web3-providers-ipc@1.0.0-beta.30:
|
web3-providers-ipc@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.30.tgz#ee2d8d18a3f120b777044a56e67e0aee20854587"
|
resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.30.tgz#ee2d8d18a3f120b777044a56e67e0aee20854587"
|
||||||
@ -21287,6 +21654,15 @@ web3-providers-ipc@1.2.7:
|
|||||||
underscore "1.9.1"
|
underscore "1.9.1"
|
||||||
web3-core-helpers "1.2.7"
|
web3-core-helpers "1.2.7"
|
||||||
|
|
||||||
|
web3-providers-ipc@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.0.tgz#d7c2b203733b46f7b4e7b15633d891648cf9a293"
|
||||||
|
integrity sha512-0CrLuRofR+1J38nEj4WsId/oolwQEM6Yl1sOt41S/6bNI7htdkwgVhSloFIMJMDFHtRw229QIJ6wIaKQz0X1Og==
|
||||||
|
dependencies:
|
||||||
|
oboe "2.1.5"
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
|
||||||
web3-providers-ws@1.0.0-beta.30:
|
web3-providers-ws@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.30.tgz#9ae69a9ead8a8761f86379fa347b6db5ae44b12d"
|
resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.30.tgz#9ae69a9ead8a8761f86379fa347b6db5ae44b12d"
|
||||||
@ -21324,6 +21700,16 @@ web3-providers-ws@1.2.7:
|
|||||||
underscore "1.9.1"
|
underscore "1.9.1"
|
||||||
web3-core-helpers "1.2.7"
|
web3-core-helpers "1.2.7"
|
||||||
|
|
||||||
|
web3-providers-ws@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.0.tgz#84adeff65acd4624d7f5bb43c5b2b22d8f0f63a4"
|
||||||
|
integrity sha512-Im5MthhJnJst8nSoq0TgbyOdaiFQFa5r6sHPOVllhgIgViDqzbnlAFW9sNzQ0Q8VXPNfPIQKi9cOrHlSRNPjRw==
|
||||||
|
dependencies:
|
||||||
|
eventemitter3 "4.0.4"
|
||||||
|
underscore "1.9.1"
|
||||||
|
web3-core-helpers "1.3.0"
|
||||||
|
websocket "^1.0.32"
|
||||||
|
|
||||||
web3-shh@1.0.0-beta.30:
|
web3-shh@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.30.tgz#2bfe3220d958ff4ca592017790852bc57b7b0ca7"
|
resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.30.tgz#2bfe3220d958ff4ca592017790852bc57b7b0ca7"
|
||||||
@ -21364,6 +21750,16 @@ web3-shh@1.2.7:
|
|||||||
web3-core-subscriptions "1.2.7"
|
web3-core-subscriptions "1.2.7"
|
||||||
web3-net "1.2.7"
|
web3-net "1.2.7"
|
||||||
|
|
||||||
|
web3-shh@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.0.tgz#62d15297da8fb5f733dd1b98f9ade300590f4d49"
|
||||||
|
integrity sha512-IZTojA4VCwVq+7eEIHuL1tJXtU+LJDhO8Y2QmuwetEWW1iBgWCGPHZasipWP+7kDpSm/5lo5GRxL72FF/Os/tA==
|
||||||
|
dependencies:
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-core-method "1.3.0"
|
||||||
|
web3-core-subscriptions "1.3.0"
|
||||||
|
web3-net "1.3.0"
|
||||||
|
|
||||||
web3-utils@1.0.0-beta.30:
|
web3-utils@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.30.tgz#eae408cc8d6d6fecc8d5097cfead51773f231ff9"
|
resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.30.tgz#eae408cc8d6d6fecc8d5097cfead51773f231ff9"
|
||||||
@ -21432,6 +21828,20 @@ web3-utils@1.2.7:
|
|||||||
underscore "1.9.1"
|
underscore "1.9.1"
|
||||||
utf8 "3.0.0"
|
utf8 "3.0.0"
|
||||||
|
|
||||||
|
web3-utils@1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.0.tgz#5bac16e5e0ec9fe7bdcfadb621655e8aa3cf14e1"
|
||||||
|
integrity sha512-2mS5axFCbkhicmoDRuJeuo0TVGQDgC2sPi/5dblfVC+PMtX0efrb8Xlttv/eGkq7X4E83Pds34FH98TP2WOUZA==
|
||||||
|
dependencies:
|
||||||
|
bn.js "^4.11.9"
|
||||||
|
eth-lib "0.2.8"
|
||||||
|
ethereum-bloom-filters "^1.0.6"
|
||||||
|
ethjs-unit "0.1.6"
|
||||||
|
number-to-bn "1.7.0"
|
||||||
|
randombytes "^2.1.0"
|
||||||
|
underscore "1.9.1"
|
||||||
|
utf8 "3.0.0"
|
||||||
|
|
||||||
web3@1.0.0-beta.30:
|
web3@1.0.0-beta.30:
|
||||||
version "1.0.0-beta.30"
|
version "1.0.0-beta.30"
|
||||||
resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.30.tgz#ad3e761845aeb2f40a7760cde75793773a431ecd"
|
resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.30.tgz#ad3e761845aeb2f40a7760cde75793773a431ecd"
|
||||||
@ -21485,6 +21895,19 @@ web3@1.2.7:
|
|||||||
web3-shh "1.2.7"
|
web3-shh "1.2.7"
|
||||||
web3-utils "1.2.7"
|
web3-utils "1.2.7"
|
||||||
|
|
||||||
|
web3@^1.3.0:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.0.tgz#8fe4cd6e2a21c91904f343ba75717ee4c76bb349"
|
||||||
|
integrity sha512-4q9dna0RecnrlgD/bD1C5S+81Untbd6Z/TBD7rb+D5Bvvc0Wxjr4OP70x+LlnwuRDjDtzBwJbNUblh2grlVArw==
|
||||||
|
dependencies:
|
||||||
|
web3-bzz "1.3.0"
|
||||||
|
web3-core "1.3.0"
|
||||||
|
web3-eth "1.3.0"
|
||||||
|
web3-eth-personal "1.3.0"
|
||||||
|
web3-net "1.3.0"
|
||||||
|
web3-shh "1.3.0"
|
||||||
|
web3-utils "1.3.0"
|
||||||
|
|
||||||
webidl-conversions@^4.0.2:
|
webidl-conversions@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
|
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
|
||||||
@ -21625,6 +22048,18 @@ websocket@^1.0.28:
|
|||||||
typedarray-to-buffer "^3.1.5"
|
typedarray-to-buffer "^3.1.5"
|
||||||
yaeti "^0.0.6"
|
yaeti "^0.0.6"
|
||||||
|
|
||||||
|
websocket@^1.0.32:
|
||||||
|
version "1.0.32"
|
||||||
|
resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.32.tgz#1f16ddab3a21a2d929dec1687ab21cfdc6d3dbb1"
|
||||||
|
integrity sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==
|
||||||
|
dependencies:
|
||||||
|
bufferutil "^4.0.1"
|
||||||
|
debug "^2.2.0"
|
||||||
|
es5-ext "^0.10.50"
|
||||||
|
typedarray-to-buffer "^3.1.5"
|
||||||
|
utf-8-validate "^5.0.2"
|
||||||
|
yaeti "^0.0.6"
|
||||||
|
|
||||||
"websocket@git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible":
|
"websocket@git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible":
|
||||||
version "1.0.26"
|
version "1.0.26"
|
||||||
resolved "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2"
|
resolved "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2"
|
||||||
|
Loading…
Reference in New Issue
Block a user