From 9219e483a113203394043a6cebe0a93e7dc2b267 Mon Sep 17 00:00:00 2001 From: bahadylbekov <33404905+bahadylbekov@users.noreply.github.com> Date: Fri, 30 Oct 2020 08:23:08 +0300 Subject: [PATCH] add: integrate DioneStaking contract into ethereum client and node store --- contracts/aggregator/Aggregator.go | 140 +- contracts/dioneStaking/DioneStaking.go | 1172 ++++++++++++++ contracts/oracleemitter/OracleEmitter.go | 180 +-- eth-contracts/contracts/DIoneStaking.sol | 22 +- eth-contracts/package-lock.json | 1761 +++++++++++----------- eth-contracts/package.json | 3 + rpcclient/ethereum.go | 35 +- store/stake.go | 44 +- store/store.go | 2 + 9 files changed, 2298 insertions(+), 1061 deletions(-) create mode 100644 contracts/dioneStaking/DioneStaking.go diff --git a/contracts/aggregator/Aggregator.go b/contracts/aggregator/Aggregator.go index 6e799d6..1e80b19 100644 --- a/contracts/aggregator/Aggregator.go +++ b/contracts/aggregator/Aggregator.go @@ -26,107 +26,107 @@ var ( _ = event.NewSubscription ) -// SmartcontractsABI is the input ABI used to generate the binding from. -const SmartcontractsABI = "[{\"inputs\":[{\"internalType\":\"contractWhitelist\",\"name\":\"_whitelist\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reqID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackMethodID\",\"type\":\"bytes4\"}],\"name\":\"collectData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" +// AggregatorABI is the input ABI used to generate the binding from. +const AggregatorABI = "[{\"inputs\":[{\"internalType\":\"contractWhitelist\",\"name\":\"_whitelist\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reqID\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"data\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackMethodID\",\"type\":\"bytes4\"}],\"name\":\"collectData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" -// Smartcontracts is an auto generated Go binding around an Ethereum contract. -type Smartcontracts struct { - SmartcontractsCaller // Read-only binding to the contract - SmartcontractsTransactor // Write-only binding to the contract - SmartcontractsFilterer // Log filterer for contract events +// Aggregator is an auto generated Go binding around an Ethereum contract. +type Aggregator struct { + AggregatorCaller // Read-only binding to the contract + AggregatorTransactor // Write-only binding to the contract + AggregatorFilterer // Log filterer for contract events } -// SmartcontractsCaller is an auto generated read-only Go binding around an Ethereum contract. -type SmartcontractsCaller struct { +// AggregatorCaller is an auto generated read-only Go binding around an Ethereum contract. +type AggregatorCaller struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// SmartcontractsTransactor is an auto generated write-only Go binding around an Ethereum contract. -type SmartcontractsTransactor struct { +// AggregatorTransactor is an auto generated write-only Go binding around an Ethereum contract. +type AggregatorTransactor struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// SmartcontractsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type SmartcontractsFilterer struct { +// AggregatorFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type AggregatorFilterer struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// SmartcontractsSession is an auto generated Go binding around an Ethereum contract, +// AggregatorSession is an auto generated Go binding around an Ethereum contract, // with pre-set call and transact options. -type SmartcontractsSession struct { - Contract *Smartcontracts // Generic contract binding to set the session for +type AggregatorSession struct { + Contract *Aggregator // Generic contract binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session } -// SmartcontractsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// AggregatorCallerSession is an auto generated read-only Go binding around an Ethereum contract, // with pre-set call options. -type SmartcontractsCallerSession struct { - Contract *SmartcontractsCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session +type AggregatorCallerSession struct { + Contract *AggregatorCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session } -// SmartcontractsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// AggregatorTransactorSession is an auto generated write-only Go binding around an Ethereum contract, // with pre-set transact options. -type SmartcontractsTransactorSession struct { - Contract *SmartcontractsTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +type AggregatorTransactorSession struct { + Contract *AggregatorTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session } -// SmartcontractsRaw is an auto generated low-level Go binding around an Ethereum contract. -type SmartcontractsRaw struct { - Contract *Smartcontracts // Generic contract binding to access the raw methods on +// AggregatorRaw is an auto generated low-level Go binding around an Ethereum contract. +type AggregatorRaw struct { + Contract *Aggregator // Generic contract binding to access the raw methods on } -// SmartcontractsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type SmartcontractsCallerRaw struct { - Contract *SmartcontractsCaller // Generic read-only contract binding to access the raw methods on +// AggregatorCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type AggregatorCallerRaw struct { + Contract *AggregatorCaller // Generic read-only contract binding to access the raw methods on } -// SmartcontractsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type SmartcontractsTransactorRaw struct { - Contract *SmartcontractsTransactor // Generic write-only contract binding to access the raw methods on +// AggregatorTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type AggregatorTransactorRaw struct { + Contract *AggregatorTransactor // Generic write-only contract binding to access the raw methods on } -// NewSmartcontracts creates a new instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontracts(address common.Address, backend bind.ContractBackend) (*Smartcontracts, error) { - contract, err := bindSmartcontracts(address, backend, backend, backend) +// NewAggregator creates a new instance of Aggregator, bound to a specific deployed contract. +func NewAggregator(address common.Address, backend bind.ContractBackend) (*Aggregator, error) { + contract, err := bindAggregator(address, backend, backend, backend) if err != nil { return nil, err } - return &Smartcontracts{SmartcontractsCaller: SmartcontractsCaller{contract: contract}, SmartcontractsTransactor: SmartcontractsTransactor{contract: contract}, SmartcontractsFilterer: SmartcontractsFilterer{contract: contract}}, nil + return &Aggregator{AggregatorCaller: AggregatorCaller{contract: contract}, AggregatorTransactor: AggregatorTransactor{contract: contract}, AggregatorFilterer: AggregatorFilterer{contract: contract}}, nil } -// NewSmartcontractsCaller creates a new read-only instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontractsCaller(address common.Address, caller bind.ContractCaller) (*SmartcontractsCaller, error) { - contract, err := bindSmartcontracts(address, caller, nil, nil) +// NewAggregatorCaller creates a new read-only instance of Aggregator, bound to a specific deployed contract. +func NewAggregatorCaller(address common.Address, caller bind.ContractCaller) (*AggregatorCaller, error) { + contract, err := bindAggregator(address, caller, nil, nil) if err != nil { return nil, err } - return &SmartcontractsCaller{contract: contract}, nil + return &AggregatorCaller{contract: contract}, nil } -// NewSmartcontractsTransactor creates a new write-only instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontractsTransactor(address common.Address, transactor bind.ContractTransactor) (*SmartcontractsTransactor, error) { - contract, err := bindSmartcontracts(address, nil, transactor, nil) +// NewAggregatorTransactor creates a new write-only instance of Aggregator, bound to a specific deployed contract. +func NewAggregatorTransactor(address common.Address, transactor bind.ContractTransactor) (*AggregatorTransactor, error) { + contract, err := bindAggregator(address, nil, transactor, nil) if err != nil { return nil, err } - return &SmartcontractsTransactor{contract: contract}, nil + return &AggregatorTransactor{contract: contract}, nil } -// NewSmartcontractsFilterer creates a new log filterer instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontractsFilterer(address common.Address, filterer bind.ContractFilterer) (*SmartcontractsFilterer, error) { - contract, err := bindSmartcontracts(address, nil, nil, filterer) +// NewAggregatorFilterer creates a new log filterer instance of Aggregator, bound to a specific deployed contract. +func NewAggregatorFilterer(address common.Address, filterer bind.ContractFilterer) (*AggregatorFilterer, error) { + contract, err := bindAggregator(address, nil, nil, filterer) if err != nil { return nil, err } - return &SmartcontractsFilterer{contract: contract}, nil + return &AggregatorFilterer{contract: contract}, nil } -// bindSmartcontracts binds a generic wrapper to an already deployed contract. -func bindSmartcontracts(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(SmartcontractsABI)) +// bindAggregator binds a generic wrapper to an already deployed contract. +func bindAggregator(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(AggregatorABI)) if err != nil { return nil, err } @@ -137,57 +137,57 @@ func bindSmartcontracts(address common.Address, caller bind.ContractCaller, tran // sets the output to result. The result type might be a single field for simple // returns, a slice of interfaces for anonymous returns and a struct for named // returns. -func (_Smartcontracts *SmartcontractsRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { - return _Smartcontracts.Contract.SmartcontractsCaller.contract.Call(opts, result, method, params...) +func (_Aggregator *AggregatorRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Aggregator.Contract.AggregatorCaller.contract.Call(opts, result, method, params...) } // Transfer initiates a plain transaction to move funds to the contract, calling // its default method if one is available. -func (_Smartcontracts *SmartcontractsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Smartcontracts.Contract.SmartcontractsTransactor.contract.Transfer(opts) +func (_Aggregator *AggregatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Aggregator.Contract.AggregatorTransactor.contract.Transfer(opts) } // Transact invokes the (paid) contract method with params as input values. -func (_Smartcontracts *SmartcontractsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Smartcontracts.Contract.SmartcontractsTransactor.contract.Transact(opts, method, params...) +func (_Aggregator *AggregatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Aggregator.Contract.AggregatorTransactor.contract.Transact(opts, method, params...) } // Call invokes the (constant) contract method with params as input values and // sets the output to result. The result type might be a single field for simple // returns, a slice of interfaces for anonymous returns and a struct for named // returns. -func (_Smartcontracts *SmartcontractsCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { - return _Smartcontracts.Contract.contract.Call(opts, result, method, params...) +func (_Aggregator *AggregatorCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Aggregator.Contract.contract.Call(opts, result, method, params...) } // Transfer initiates a plain transaction to move funds to the contract, calling // its default method if one is available. -func (_Smartcontracts *SmartcontractsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Smartcontracts.Contract.contract.Transfer(opts) +func (_Aggregator *AggregatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Aggregator.Contract.contract.Transfer(opts) } // Transact invokes the (paid) contract method with params as input values. -func (_Smartcontracts *SmartcontractsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Smartcontracts.Contract.contract.Transact(opts, method, params...) +func (_Aggregator *AggregatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Aggregator.Contract.contract.Transact(opts, method, params...) } // CollectData is a paid mutator transaction binding the contract method 0x05187092. // // Solidity: function collectData(uint256 reqID, string data, address callbackAddress, bytes4 callbackMethodID) returns() -func (_Smartcontracts *SmartcontractsTransactor) CollectData(opts *bind.TransactOpts, reqID *big.Int, data string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { - return _Smartcontracts.contract.Transact(opts, "collectData", reqID, data, callbackAddress, callbackMethodID) +func (_Aggregator *AggregatorTransactor) CollectData(opts *bind.TransactOpts, reqID *big.Int, data string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { + return _Aggregator.contract.Transact(opts, "collectData", reqID, data, callbackAddress, callbackMethodID) } // CollectData is a paid mutator transaction binding the contract method 0x05187092. // // Solidity: function collectData(uint256 reqID, string data, address callbackAddress, bytes4 callbackMethodID) returns() -func (_Smartcontracts *SmartcontractsSession) CollectData(reqID *big.Int, data string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { - return _Smartcontracts.Contract.CollectData(&_Smartcontracts.TransactOpts, reqID, data, callbackAddress, callbackMethodID) +func (_Aggregator *AggregatorSession) CollectData(reqID *big.Int, data string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { + return _Aggregator.Contract.CollectData(&_Aggregator.TransactOpts, reqID, data, callbackAddress, callbackMethodID) } // CollectData is a paid mutator transaction binding the contract method 0x05187092. // // Solidity: function collectData(uint256 reqID, string data, address callbackAddress, bytes4 callbackMethodID) returns() -func (_Smartcontracts *SmartcontractsTransactorSession) CollectData(reqID *big.Int, data string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { - return _Smartcontracts.Contract.CollectData(&_Smartcontracts.TransactOpts, reqID, data, callbackAddress, callbackMethodID) +func (_Aggregator *AggregatorTransactorSession) CollectData(reqID *big.Int, data string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { + return _Aggregator.Contract.CollectData(&_Aggregator.TransactOpts, reqID, data, callbackAddress, callbackMethodID) } diff --git a/contracts/dioneStaking/DioneStaking.go b/contracts/dioneStaking/DioneStaking.go new file mode 100644 index 0000000..bc06ce5 --- /dev/null +++ b/contracts/dioneStaking/DioneStaking.go @@ -0,0 +1,1172 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package dionestaking + +import ( + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = common.Big1 + _ = types.BloomLookup + _ = event.NewSubscription +) + +// DioneStakingABI is the input ABI used to generate the binding from. +const DioneStakingABI = "[{\"inputs\":[{\"internalType\":\"contractDioneToken\",\"name\":\"_dione\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_aggregatorAddr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_minerReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minimumStake\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"miner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"Mine\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"miner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Stake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"miner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"aggregatorAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dione\",\"outputs\":[{\"internalType\":\"contractDioneToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"minerInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"firstStakeBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastRewardBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minerReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_minerAddr\",\"type\":\"address\"}],\"name\":\"mine\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_minerAddr\",\"type\":\"address\"}],\"name\":\"mineAndStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_minerAddr\",\"type\":\"address\"}],\"name\":\"minerStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minerReward\",\"type\":\"uint256\"}],\"name\":\"setMinerReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minimumStake\",\"type\":\"uint256\"}],\"name\":\"setMinimumStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// DioneStaking is an auto generated Go binding around an Ethereum contract. +type DioneStaking struct { + DioneStakingCaller // Read-only binding to the contract + DioneStakingTransactor // Write-only binding to the contract + DioneStakingFilterer // Log filterer for contract events +} + +// DioneStakingCaller is an auto generated read-only Go binding around an Ethereum contract. +type DioneStakingCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DioneStakingTransactor is an auto generated write-only Go binding around an Ethereum contract. +type DioneStakingTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DioneStakingFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type DioneStakingFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// DioneStakingSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type DioneStakingSession struct { + Contract *DioneStaking // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// DioneStakingCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type DioneStakingCallerSession struct { + Contract *DioneStakingCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// DioneStakingTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type DioneStakingTransactorSession struct { + Contract *DioneStakingTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// DioneStakingRaw is an auto generated low-level Go binding around an Ethereum contract. +type DioneStakingRaw struct { + Contract *DioneStaking // Generic contract binding to access the raw methods on +} + +// DioneStakingCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type DioneStakingCallerRaw struct { + Contract *DioneStakingCaller // Generic read-only contract binding to access the raw methods on +} + +// DioneStakingTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type DioneStakingTransactorRaw struct { + Contract *DioneStakingTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewDioneStaking creates a new instance of DioneStaking, bound to a specific deployed contract. +func NewDioneStaking(address common.Address, backend bind.ContractBackend) (*DioneStaking, error) { + contract, err := bindDioneStaking(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &DioneStaking{DioneStakingCaller: DioneStakingCaller{contract: contract}, DioneStakingTransactor: DioneStakingTransactor{contract: contract}, DioneStakingFilterer: DioneStakingFilterer{contract: contract}}, nil +} + +// NewDioneStakingCaller creates a new read-only instance of DioneStaking, bound to a specific deployed contract. +func NewDioneStakingCaller(address common.Address, caller bind.ContractCaller) (*DioneStakingCaller, error) { + contract, err := bindDioneStaking(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &DioneStakingCaller{contract: contract}, nil +} + +// NewDioneStakingTransactor creates a new write-only instance of DioneStaking, bound to a specific deployed contract. +func NewDioneStakingTransactor(address common.Address, transactor bind.ContractTransactor) (*DioneStakingTransactor, error) { + contract, err := bindDioneStaking(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &DioneStakingTransactor{contract: contract}, nil +} + +// NewDioneStakingFilterer creates a new log filterer instance of DioneStaking, bound to a specific deployed contract. +func NewDioneStakingFilterer(address common.Address, filterer bind.ContractFilterer) (*DioneStakingFilterer, error) { + contract, err := bindDioneStaking(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &DioneStakingFilterer{contract: contract}, nil +} + +// bindDioneStaking binds a generic wrapper to an already deployed contract. +func bindDioneStaking(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(DioneStakingABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_DioneStaking *DioneStakingRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _DioneStaking.Contract.DioneStakingCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_DioneStaking *DioneStakingRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _DioneStaking.Contract.DioneStakingTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_DioneStaking *DioneStakingRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _DioneStaking.Contract.DioneStakingTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_DioneStaking *DioneStakingCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _DioneStaking.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_DioneStaking *DioneStakingTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _DioneStaking.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_DioneStaking *DioneStakingTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _DioneStaking.Contract.contract.Transact(opts, method, params...) +} + +// AggregatorAddr is a free data retrieval call binding the contract method 0x82762600. +// +// Solidity: function aggregatorAddr() view returns(address) +func (_DioneStaking *DioneStakingCaller) AggregatorAddr(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "aggregatorAddr") + return *ret0, err +} + +// AggregatorAddr is a free data retrieval call binding the contract method 0x82762600. +// +// Solidity: function aggregatorAddr() view returns(address) +func (_DioneStaking *DioneStakingSession) AggregatorAddr() (common.Address, error) { + return _DioneStaking.Contract.AggregatorAddr(&_DioneStaking.CallOpts) +} + +// AggregatorAddr is a free data retrieval call binding the contract method 0x82762600. +// +// Solidity: function aggregatorAddr() view returns(address) +func (_DioneStaking *DioneStakingCallerSession) AggregatorAddr() (common.Address, error) { + return _DioneStaking.Contract.AggregatorAddr(&_DioneStaking.CallOpts) +} + +// Dione is a free data retrieval call binding the contract method 0x3425dfa6. +// +// Solidity: function dione() view returns(address) +func (_DioneStaking *DioneStakingCaller) Dione(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "dione") + return *ret0, err +} + +// Dione is a free data retrieval call binding the contract method 0x3425dfa6. +// +// Solidity: function dione() view returns(address) +func (_DioneStaking *DioneStakingSession) Dione() (common.Address, error) { + return _DioneStaking.Contract.Dione(&_DioneStaking.CallOpts) +} + +// Dione is a free data retrieval call binding the contract method 0x3425dfa6. +// +// Solidity: function dione() view returns(address) +func (_DioneStaking *DioneStakingCallerSession) Dione() (common.Address, error) { + return _DioneStaking.Contract.Dione(&_DioneStaking.CallOpts) +} + +// MinerInfo is a free data retrieval call binding the contract method 0x03337fd8. +// +// Solidity: function minerInfo(address ) view returns(uint256 amount, uint256 firstStakeBlock, uint256 lastRewardBlock) +func (_DioneStaking *DioneStakingCaller) MinerInfo(opts *bind.CallOpts, arg0 common.Address) (struct { + Amount *big.Int + FirstStakeBlock *big.Int + LastRewardBlock *big.Int +}, error) { + ret := new(struct { + Amount *big.Int + FirstStakeBlock *big.Int + LastRewardBlock *big.Int + }) + out := ret + err := _DioneStaking.contract.Call(opts, out, "minerInfo", arg0) + return *ret, err +} + +// MinerInfo is a free data retrieval call binding the contract method 0x03337fd8. +// +// Solidity: function minerInfo(address ) view returns(uint256 amount, uint256 firstStakeBlock, uint256 lastRewardBlock) +func (_DioneStaking *DioneStakingSession) MinerInfo(arg0 common.Address) (struct { + Amount *big.Int + FirstStakeBlock *big.Int + LastRewardBlock *big.Int +}, error) { + return _DioneStaking.Contract.MinerInfo(&_DioneStaking.CallOpts, arg0) +} + +// MinerInfo is a free data retrieval call binding the contract method 0x03337fd8. +// +// Solidity: function minerInfo(address ) view returns(uint256 amount, uint256 firstStakeBlock, uint256 lastRewardBlock) +func (_DioneStaking *DioneStakingCallerSession) MinerInfo(arg0 common.Address) (struct { + Amount *big.Int + FirstStakeBlock *big.Int + LastRewardBlock *big.Int +}, error) { + return _DioneStaking.Contract.MinerInfo(&_DioneStaking.CallOpts, arg0) +} + +// MinerReward is a free data retrieval call binding the contract method 0xcbed45eb. +// +// Solidity: function minerReward() view returns(uint256) +func (_DioneStaking *DioneStakingCaller) MinerReward(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "minerReward") + return *ret0, err +} + +// MinerReward is a free data retrieval call binding the contract method 0xcbed45eb. +// +// Solidity: function minerReward() view returns(uint256) +func (_DioneStaking *DioneStakingSession) MinerReward() (*big.Int, error) { + return _DioneStaking.Contract.MinerReward(&_DioneStaking.CallOpts) +} + +// MinerReward is a free data retrieval call binding the contract method 0xcbed45eb. +// +// Solidity: function minerReward() view returns(uint256) +func (_DioneStaking *DioneStakingCallerSession) MinerReward() (*big.Int, error) { + return _DioneStaking.Contract.MinerReward(&_DioneStaking.CallOpts) +} + +// MinerStake is a free data retrieval call binding the contract method 0x8eaa3850. +// +// Solidity: function minerStake(address _minerAddr) view returns(uint256) +func (_DioneStaking *DioneStakingCaller) MinerStake(opts *bind.CallOpts, _minerAddr common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "minerStake", _minerAddr) + return *ret0, err +} + +// MinerStake is a free data retrieval call binding the contract method 0x8eaa3850. +// +// Solidity: function minerStake(address _minerAddr) view returns(uint256) +func (_DioneStaking *DioneStakingSession) MinerStake(_minerAddr common.Address) (*big.Int, error) { + return _DioneStaking.Contract.MinerStake(&_DioneStaking.CallOpts, _minerAddr) +} + +// MinerStake is a free data retrieval call binding the contract method 0x8eaa3850. +// +// Solidity: function minerStake(address _minerAddr) view returns(uint256) +func (_DioneStaking *DioneStakingCallerSession) MinerStake(_minerAddr common.Address) (*big.Int, error) { + return _DioneStaking.Contract.MinerStake(&_DioneStaking.CallOpts, _minerAddr) +} + +// MinimumStake is a free data retrieval call binding the contract method 0xec5ffac2. +// +// Solidity: function minimumStake() view returns(uint256) +func (_DioneStaking *DioneStakingCaller) MinimumStake(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "minimumStake") + return *ret0, err +} + +// MinimumStake is a free data retrieval call binding the contract method 0xec5ffac2. +// +// Solidity: function minimumStake() view returns(uint256) +func (_DioneStaking *DioneStakingSession) MinimumStake() (*big.Int, error) { + return _DioneStaking.Contract.MinimumStake(&_DioneStaking.CallOpts) +} + +// MinimumStake is a free data retrieval call binding the contract method 0xec5ffac2. +// +// Solidity: function minimumStake() view returns(uint256) +func (_DioneStaking *DioneStakingCallerSession) MinimumStake() (*big.Int, error) { + return _DioneStaking.Contract.MinimumStake(&_DioneStaking.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_DioneStaking *DioneStakingCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_DioneStaking *DioneStakingSession) Owner() (common.Address, error) { + return _DioneStaking.Contract.Owner(&_DioneStaking.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() view returns(address) +func (_DioneStaking *DioneStakingCallerSession) Owner() (common.Address, error) { + return _DioneStaking.Contract.Owner(&_DioneStaking.CallOpts) +} + +// StartBlock is a free data retrieval call binding the contract method 0x48cd4cb1. +// +// Solidity: function startBlock() view returns(uint256) +func (_DioneStaking *DioneStakingCaller) StartBlock(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "startBlock") + return *ret0, err +} + +// StartBlock is a free data retrieval call binding the contract method 0x48cd4cb1. +// +// Solidity: function startBlock() view returns(uint256) +func (_DioneStaking *DioneStakingSession) StartBlock() (*big.Int, error) { + return _DioneStaking.Contract.StartBlock(&_DioneStaking.CallOpts) +} + +// StartBlock is a free data retrieval call binding the contract method 0x48cd4cb1. +// +// Solidity: function startBlock() view returns(uint256) +func (_DioneStaking *DioneStakingCallerSession) StartBlock() (*big.Int, error) { + return _DioneStaking.Contract.StartBlock(&_DioneStaking.CallOpts) +} + +// TotalStake is a free data retrieval call binding the contract method 0x8b0e9f3f. +// +// Solidity: function totalStake() view returns(uint256) +func (_DioneStaking *DioneStakingCaller) TotalStake(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _DioneStaking.contract.Call(opts, out, "totalStake") + return *ret0, err +} + +// TotalStake is a free data retrieval call binding the contract method 0x8b0e9f3f. +// +// Solidity: function totalStake() view returns(uint256) +func (_DioneStaking *DioneStakingSession) TotalStake() (*big.Int, error) { + return _DioneStaking.Contract.TotalStake(&_DioneStaking.CallOpts) +} + +// TotalStake is a free data retrieval call binding the contract method 0x8b0e9f3f. +// +// Solidity: function totalStake() view returns(uint256) +func (_DioneStaking *DioneStakingCallerSession) TotalStake() (*big.Int, error) { + return _DioneStaking.Contract.TotalStake(&_DioneStaking.CallOpts) +} + +// Mine is a paid mutator transaction binding the contract method 0x81923240. +// +// Solidity: function mine(address _minerAddr) returns() +func (_DioneStaking *DioneStakingTransactor) Mine(opts *bind.TransactOpts, _minerAddr common.Address) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "mine", _minerAddr) +} + +// Mine is a paid mutator transaction binding the contract method 0x81923240. +// +// Solidity: function mine(address _minerAddr) returns() +func (_DioneStaking *DioneStakingSession) Mine(_minerAddr common.Address) (*types.Transaction, error) { + return _DioneStaking.Contract.Mine(&_DioneStaking.TransactOpts, _minerAddr) +} + +// Mine is a paid mutator transaction binding the contract method 0x81923240. +// +// Solidity: function mine(address _minerAddr) returns() +func (_DioneStaking *DioneStakingTransactorSession) Mine(_minerAddr common.Address) (*types.Transaction, error) { + return _DioneStaking.Contract.Mine(&_DioneStaking.TransactOpts, _minerAddr) +} + +// MineAndStake is a paid mutator transaction binding the contract method 0x407b4547. +// +// Solidity: function mineAndStake(address _minerAddr) returns() +func (_DioneStaking *DioneStakingTransactor) MineAndStake(opts *bind.TransactOpts, _minerAddr common.Address) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "mineAndStake", _minerAddr) +} + +// MineAndStake is a paid mutator transaction binding the contract method 0x407b4547. +// +// Solidity: function mineAndStake(address _minerAddr) returns() +func (_DioneStaking *DioneStakingSession) MineAndStake(_minerAddr common.Address) (*types.Transaction, error) { + return _DioneStaking.Contract.MineAndStake(&_DioneStaking.TransactOpts, _minerAddr) +} + +// MineAndStake is a paid mutator transaction binding the contract method 0x407b4547. +// +// Solidity: function mineAndStake(address _minerAddr) returns() +func (_DioneStaking *DioneStakingTransactorSession) MineAndStake(_minerAddr common.Address) (*types.Transaction, error) { + return _DioneStaking.Contract.MineAndStake(&_DioneStaking.TransactOpts, _minerAddr) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_DioneStaking *DioneStakingTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "renounceOwnership") +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_DioneStaking *DioneStakingSession) RenounceOwnership() (*types.Transaction, error) { + return _DioneStaking.Contract.RenounceOwnership(&_DioneStaking.TransactOpts) +} + +// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. +// +// Solidity: function renounceOwnership() returns() +func (_DioneStaking *DioneStakingTransactorSession) RenounceOwnership() (*types.Transaction, error) { + return _DioneStaking.Contract.RenounceOwnership(&_DioneStaking.TransactOpts) +} + +// SetMinerReward is a paid mutator transaction binding the contract method 0x816caed5. +// +// Solidity: function setMinerReward(uint256 _minerReward) returns() +func (_DioneStaking *DioneStakingTransactor) SetMinerReward(opts *bind.TransactOpts, _minerReward *big.Int) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "setMinerReward", _minerReward) +} + +// SetMinerReward is a paid mutator transaction binding the contract method 0x816caed5. +// +// Solidity: function setMinerReward(uint256 _minerReward) returns() +func (_DioneStaking *DioneStakingSession) SetMinerReward(_minerReward *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.SetMinerReward(&_DioneStaking.TransactOpts, _minerReward) +} + +// SetMinerReward is a paid mutator transaction binding the contract method 0x816caed5. +// +// Solidity: function setMinerReward(uint256 _minerReward) returns() +func (_DioneStaking *DioneStakingTransactorSession) SetMinerReward(_minerReward *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.SetMinerReward(&_DioneStaking.TransactOpts, _minerReward) +} + +// SetMinimumStake is a paid mutator transaction binding the contract method 0x233e9903. +// +// Solidity: function setMinimumStake(uint256 _minimumStake) returns() +func (_DioneStaking *DioneStakingTransactor) SetMinimumStake(opts *bind.TransactOpts, _minimumStake *big.Int) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "setMinimumStake", _minimumStake) +} + +// SetMinimumStake is a paid mutator transaction binding the contract method 0x233e9903. +// +// Solidity: function setMinimumStake(uint256 _minimumStake) returns() +func (_DioneStaking *DioneStakingSession) SetMinimumStake(_minimumStake *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.SetMinimumStake(&_DioneStaking.TransactOpts, _minimumStake) +} + +// SetMinimumStake is a paid mutator transaction binding the contract method 0x233e9903. +// +// Solidity: function setMinimumStake(uint256 _minimumStake) returns() +func (_DioneStaking *DioneStakingTransactorSession) SetMinimumStake(_minimumStake *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.SetMinimumStake(&_DioneStaking.TransactOpts, _minimumStake) +} + +// Stake is a paid mutator transaction binding the contract method 0xa694fc3a. +// +// Solidity: function stake(uint256 _amount) returns() +func (_DioneStaking *DioneStakingTransactor) Stake(opts *bind.TransactOpts, _amount *big.Int) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "stake", _amount) +} + +// Stake is a paid mutator transaction binding the contract method 0xa694fc3a. +// +// Solidity: function stake(uint256 _amount) returns() +func (_DioneStaking *DioneStakingSession) Stake(_amount *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.Stake(&_DioneStaking.TransactOpts, _amount) +} + +// Stake is a paid mutator transaction binding the contract method 0xa694fc3a. +// +// Solidity: function stake(uint256 _amount) returns() +func (_DioneStaking *DioneStakingTransactorSession) Stake(_amount *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.Stake(&_DioneStaking.TransactOpts, _amount) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_DioneStaking *DioneStakingTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "transferOwnership", newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_DioneStaking *DioneStakingSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _DioneStaking.Contract.TransferOwnership(&_DioneStaking.TransactOpts, newOwner) +} + +// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. +// +// Solidity: function transferOwnership(address newOwner) returns() +func (_DioneStaking *DioneStakingTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { + return _DioneStaking.Contract.TransferOwnership(&_DioneStaking.TransactOpts, newOwner) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 _amount) returns() +func (_DioneStaking *DioneStakingTransactor) Withdraw(opts *bind.TransactOpts, _amount *big.Int) (*types.Transaction, error) { + return _DioneStaking.contract.Transact(opts, "withdraw", _amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 _amount) returns() +func (_DioneStaking *DioneStakingSession) Withdraw(_amount *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.Withdraw(&_DioneStaking.TransactOpts, _amount) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x2e1a7d4d. +// +// Solidity: function withdraw(uint256 _amount) returns() +func (_DioneStaking *DioneStakingTransactorSession) Withdraw(_amount *big.Int) (*types.Transaction, error) { + return _DioneStaking.Contract.Withdraw(&_DioneStaking.TransactOpts, _amount) +} + +// DioneStakingMineIterator is returned from FilterMine and is used to iterate over the raw logs and unpacked data for Mine events raised by the DioneStaking contract. +type DioneStakingMineIterator struct { + Event *DioneStakingMine // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *DioneStakingMineIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(DioneStakingMine) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(DioneStakingMine) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *DioneStakingMineIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *DioneStakingMineIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// DioneStakingMine represents a Mine event raised by the DioneStaking contract. +type DioneStakingMine struct { + Miner common.Address + BlockNumber *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMine is a free log retrieval operation binding the contract event 0xf23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d1. +// +// Solidity: event Mine(address indexed miner, uint256 blockNumber) +func (_DioneStaking *DioneStakingFilterer) FilterMine(opts *bind.FilterOpts, miner []common.Address) (*DioneStakingMineIterator, error) { + + var minerRule []interface{} + for _, minerItem := range miner { + minerRule = append(minerRule, minerItem) + } + + logs, sub, err := _DioneStaking.contract.FilterLogs(opts, "Mine", minerRule) + if err != nil { + return nil, err + } + return &DioneStakingMineIterator{contract: _DioneStaking.contract, event: "Mine", logs: logs, sub: sub}, nil +} + +// WatchMine is a free log subscription operation binding the contract event 0xf23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d1. +// +// Solidity: event Mine(address indexed miner, uint256 blockNumber) +func (_DioneStaking *DioneStakingFilterer) WatchMine(opts *bind.WatchOpts, sink chan<- *DioneStakingMine, miner []common.Address) (event.Subscription, error) { + + var minerRule []interface{} + for _, minerItem := range miner { + minerRule = append(minerRule, minerItem) + } + + logs, sub, err := _DioneStaking.contract.WatchLogs(opts, "Mine", minerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(DioneStakingMine) + if err := _DioneStaking.contract.UnpackLog(event, "Mine", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMine is a log parse operation binding the contract event 0xf23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d1. +// +// Solidity: event Mine(address indexed miner, uint256 blockNumber) +func (_DioneStaking *DioneStakingFilterer) ParseMine(log types.Log) (*DioneStakingMine, error) { + event := new(DioneStakingMine) + if err := _DioneStaking.contract.UnpackLog(event, "Mine", log); err != nil { + return nil, err + } + return event, nil +} + +// DioneStakingOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the DioneStaking contract. +type DioneStakingOwnershipTransferredIterator struct { + Event *DioneStakingOwnershipTransferred // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *DioneStakingOwnershipTransferredIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(DioneStakingOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(DioneStakingOwnershipTransferred) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *DioneStakingOwnershipTransferredIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *DioneStakingOwnershipTransferredIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// DioneStakingOwnershipTransferred represents a OwnershipTransferred event raised by the DioneStaking contract. +type DioneStakingOwnershipTransferred struct { + PreviousOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_DioneStaking *DioneStakingFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*DioneStakingOwnershipTransferredIterator, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _DioneStaking.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &DioneStakingOwnershipTransferredIterator{contract: _DioneStaking.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil +} + +// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_DioneStaking *DioneStakingFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *DioneStakingOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var previousOwnerRule []interface{} + for _, previousOwnerItem := range previousOwner { + previousOwnerRule = append(previousOwnerRule, previousOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _DioneStaking.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(DioneStakingOwnershipTransferred) + if err := _DioneStaking.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. +// +// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) +func (_DioneStaking *DioneStakingFilterer) ParseOwnershipTransferred(log types.Log) (*DioneStakingOwnershipTransferred, error) { + event := new(DioneStakingOwnershipTransferred) + if err := _DioneStaking.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { + return nil, err + } + return event, nil +} + +// DioneStakingStakeIterator is returned from FilterStake and is used to iterate over the raw logs and unpacked data for Stake events raised by the DioneStaking contract. +type DioneStakingStakeIterator struct { + Event *DioneStakingStake // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *DioneStakingStakeIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(DioneStakingStake) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(DioneStakingStake) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *DioneStakingStakeIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *DioneStakingStakeIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// DioneStakingStake represents a Stake event raised by the DioneStaking contract. +type DioneStakingStake struct { + Miner common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterStake is a free log retrieval operation binding the contract event 0xebedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a. +// +// Solidity: event Stake(address indexed miner, uint256 amount) +func (_DioneStaking *DioneStakingFilterer) FilterStake(opts *bind.FilterOpts, miner []common.Address) (*DioneStakingStakeIterator, error) { + + var minerRule []interface{} + for _, minerItem := range miner { + minerRule = append(minerRule, minerItem) + } + + logs, sub, err := _DioneStaking.contract.FilterLogs(opts, "Stake", minerRule) + if err != nil { + return nil, err + } + return &DioneStakingStakeIterator{contract: _DioneStaking.contract, event: "Stake", logs: logs, sub: sub}, nil +} + +// WatchStake is a free log subscription operation binding the contract event 0xebedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a. +// +// Solidity: event Stake(address indexed miner, uint256 amount) +func (_DioneStaking *DioneStakingFilterer) WatchStake(opts *bind.WatchOpts, sink chan<- *DioneStakingStake, miner []common.Address) (event.Subscription, error) { + + var minerRule []interface{} + for _, minerItem := range miner { + minerRule = append(minerRule, minerItem) + } + + logs, sub, err := _DioneStaking.contract.WatchLogs(opts, "Stake", minerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(DioneStakingStake) + if err := _DioneStaking.contract.UnpackLog(event, "Stake", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseStake is a log parse operation binding the contract event 0xebedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a. +// +// Solidity: event Stake(address indexed miner, uint256 amount) +func (_DioneStaking *DioneStakingFilterer) ParseStake(log types.Log) (*DioneStakingStake, error) { + event := new(DioneStakingStake) + if err := _DioneStaking.contract.UnpackLog(event, "Stake", log); err != nil { + return nil, err + } + return event, nil +} + +// DioneStakingWithdrawIterator is returned from FilterWithdraw and is used to iterate over the raw logs and unpacked data for Withdraw events raised by the DioneStaking contract. +type DioneStakingWithdrawIterator struct { + Event *DioneStakingWithdraw // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *DioneStakingWithdrawIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(DioneStakingWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(DioneStakingWithdraw) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *DioneStakingWithdrawIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *DioneStakingWithdrawIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// DioneStakingWithdraw represents a Withdraw event raised by the DioneStaking contract. +type DioneStakingWithdraw struct { + Miner common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdraw is a free log retrieval operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed miner, uint256 amount) +func (_DioneStaking *DioneStakingFilterer) FilterWithdraw(opts *bind.FilterOpts, miner []common.Address) (*DioneStakingWithdrawIterator, error) { + + var minerRule []interface{} + for _, minerItem := range miner { + minerRule = append(minerRule, minerItem) + } + + logs, sub, err := _DioneStaking.contract.FilterLogs(opts, "Withdraw", minerRule) + if err != nil { + return nil, err + } + return &DioneStakingWithdrawIterator{contract: _DioneStaking.contract, event: "Withdraw", logs: logs, sub: sub}, nil +} + +// WatchWithdraw is a free log subscription operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed miner, uint256 amount) +func (_DioneStaking *DioneStakingFilterer) WatchWithdraw(opts *bind.WatchOpts, sink chan<- *DioneStakingWithdraw, miner []common.Address) (event.Subscription, error) { + + var minerRule []interface{} + for _, minerItem := range miner { + minerRule = append(minerRule, minerItem) + } + + logs, sub, err := _DioneStaking.contract.WatchLogs(opts, "Withdraw", minerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(DioneStakingWithdraw) + if err := _DioneStaking.contract.UnpackLog(event, "Withdraw", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseWithdraw is a log parse operation binding the contract event 0x884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364. +// +// Solidity: event Withdraw(address indexed miner, uint256 amount) +func (_DioneStaking *DioneStakingFilterer) ParseWithdraw(log types.Log) (*DioneStakingWithdraw, error) { + event := new(DioneStakingWithdraw) + if err := _DioneStaking.contract.UnpackLog(event, "Withdraw", log); err != nil { + return nil, err + } + return event, nil +} diff --git a/contracts/oracleemitter/OracleEmitter.go b/contracts/oracleemitter/OracleEmitter.go index 0b082fb..ffc3369 100644 --- a/contracts/oracleemitter/OracleEmitter.go +++ b/contracts/oracleemitter/OracleEmitter.go @@ -26,107 +26,107 @@ var ( _ = event.NewSubscription ) -// SmartcontractsABI is the input ABI used to generate the binding from. -const SmartcontractsABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"requestType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callbackMethodID\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestID\",\"type\":\"uint256\"}],\"name\":\"NewOracleRequest\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"requestType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackMethodID\",\"type\":\"bytes4\"}],\"name\":\"requestOracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" +// OracleEmitterABI is the input ABI used to generate the binding from. +const OracleEmitterABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"requestType\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callbackMethodID\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestID\",\"type\":\"uint256\"}],\"name\":\"NewOracleRequest\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"requestType\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackMethodID\",\"type\":\"bytes4\"}],\"name\":\"requestOracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" -// Smartcontracts is an auto generated Go binding around an Ethereum contract. -type Smartcontracts struct { - SmartcontractsCaller // Read-only binding to the contract - SmartcontractsTransactor // Write-only binding to the contract - SmartcontractsFilterer // Log filterer for contract events +// OracleEmitter is an auto generated Go binding around an Ethereum contract. +type OracleEmitter struct { + OracleEmitterCaller // Read-only binding to the contract + OracleEmitterTransactor // Write-only binding to the contract + OracleEmitterFilterer // Log filterer for contract events } -// SmartcontractsCaller is an auto generated read-only Go binding around an Ethereum contract. -type SmartcontractsCaller struct { +// OracleEmitterCaller is an auto generated read-only Go binding around an Ethereum contract. +type OracleEmitterCaller struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// SmartcontractsTransactor is an auto generated write-only Go binding around an Ethereum contract. -type SmartcontractsTransactor struct { +// OracleEmitterTransactor is an auto generated write-only Go binding around an Ethereum contract. +type OracleEmitterTransactor struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// SmartcontractsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type SmartcontractsFilterer struct { +// OracleEmitterFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type OracleEmitterFilterer struct { contract *bind.BoundContract // Generic contract wrapper for the low level calls } -// SmartcontractsSession is an auto generated Go binding around an Ethereum contract, +// OracleEmitterSession is an auto generated Go binding around an Ethereum contract, // with pre-set call and transact options. -type SmartcontractsSession struct { - Contract *Smartcontracts // Generic contract binding to set the session for +type OracleEmitterSession struct { + Contract *OracleEmitter // Generic contract binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session } -// SmartcontractsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// OracleEmitterCallerSession is an auto generated read-only Go binding around an Ethereum contract, // with pre-set call options. -type SmartcontractsCallerSession struct { - Contract *SmartcontractsCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session +type OracleEmitterCallerSession struct { + Contract *OracleEmitterCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session } -// SmartcontractsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// OracleEmitterTransactorSession is an auto generated write-only Go binding around an Ethereum contract, // with pre-set transact options. -type SmartcontractsTransactorSession struct { - Contract *SmartcontractsTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +type OracleEmitterTransactorSession struct { + Contract *OracleEmitterTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session } -// SmartcontractsRaw is an auto generated low-level Go binding around an Ethereum contract. -type SmartcontractsRaw struct { - Contract *Smartcontracts // Generic contract binding to access the raw methods on +// OracleEmitterRaw is an auto generated low-level Go binding around an Ethereum contract. +type OracleEmitterRaw struct { + Contract *OracleEmitter // Generic contract binding to access the raw methods on } -// SmartcontractsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type SmartcontractsCallerRaw struct { - Contract *SmartcontractsCaller // Generic read-only contract binding to access the raw methods on +// OracleEmitterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type OracleEmitterCallerRaw struct { + Contract *OracleEmitterCaller // Generic read-only contract binding to access the raw methods on } -// SmartcontractsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type SmartcontractsTransactorRaw struct { - Contract *SmartcontractsTransactor // Generic write-only contract binding to access the raw methods on +// OracleEmitterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type OracleEmitterTransactorRaw struct { + Contract *OracleEmitterTransactor // Generic write-only contract binding to access the raw methods on } -// NewSmartcontracts creates a new instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontracts(address common.Address, backend bind.ContractBackend) (*Smartcontracts, error) { - contract, err := bindSmartcontracts(address, backend, backend, backend) +// NewOracleEmitter creates a new instance of OracleEmitter, bound to a specific deployed contract. +func NewOracleEmitter(address common.Address, backend bind.ContractBackend) (*OracleEmitter, error) { + contract, err := bindOracleEmitter(address, backend, backend, backend) if err != nil { return nil, err } - return &Smartcontracts{SmartcontractsCaller: SmartcontractsCaller{contract: contract}, SmartcontractsTransactor: SmartcontractsTransactor{contract: contract}, SmartcontractsFilterer: SmartcontractsFilterer{contract: contract}}, nil + return &OracleEmitter{OracleEmitterCaller: OracleEmitterCaller{contract: contract}, OracleEmitterTransactor: OracleEmitterTransactor{contract: contract}, OracleEmitterFilterer: OracleEmitterFilterer{contract: contract}}, nil } -// NewSmartcontractsCaller creates a new read-only instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontractsCaller(address common.Address, caller bind.ContractCaller) (*SmartcontractsCaller, error) { - contract, err := bindSmartcontracts(address, caller, nil, nil) +// NewOracleEmitterCaller creates a new read-only instance of OracleEmitter, bound to a specific deployed contract. +func NewOracleEmitterCaller(address common.Address, caller bind.ContractCaller) (*OracleEmitterCaller, error) { + contract, err := bindOracleEmitter(address, caller, nil, nil) if err != nil { return nil, err } - return &SmartcontractsCaller{contract: contract}, nil + return &OracleEmitterCaller{contract: contract}, nil } -// NewSmartcontractsTransactor creates a new write-only instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontractsTransactor(address common.Address, transactor bind.ContractTransactor) (*SmartcontractsTransactor, error) { - contract, err := bindSmartcontracts(address, nil, transactor, nil) +// NewOracleEmitterTransactor creates a new write-only instance of OracleEmitter, bound to a specific deployed contract. +func NewOracleEmitterTransactor(address common.Address, transactor bind.ContractTransactor) (*OracleEmitterTransactor, error) { + contract, err := bindOracleEmitter(address, nil, transactor, nil) if err != nil { return nil, err } - return &SmartcontractsTransactor{contract: contract}, nil + return &OracleEmitterTransactor{contract: contract}, nil } -// NewSmartcontractsFilterer creates a new log filterer instance of Smartcontracts, bound to a specific deployed contract. -func NewSmartcontractsFilterer(address common.Address, filterer bind.ContractFilterer) (*SmartcontractsFilterer, error) { - contract, err := bindSmartcontracts(address, nil, nil, filterer) +// NewOracleEmitterFilterer creates a new log filterer instance of OracleEmitter, bound to a specific deployed contract. +func NewOracleEmitterFilterer(address common.Address, filterer bind.ContractFilterer) (*OracleEmitterFilterer, error) { + contract, err := bindOracleEmitter(address, nil, nil, filterer) if err != nil { return nil, err } - return &SmartcontractsFilterer{contract: contract}, nil + return &OracleEmitterFilterer{contract: contract}, nil } -// bindSmartcontracts binds a generic wrapper to an already deployed contract. -func bindSmartcontracts(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := abi.JSON(strings.NewReader(SmartcontractsABI)) +// bindOracleEmitter binds a generic wrapper to an already deployed contract. +func bindOracleEmitter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(OracleEmitterABI)) if err != nil { return nil, err } @@ -137,64 +137,64 @@ func bindSmartcontracts(address common.Address, caller bind.ContractCaller, tran // sets the output to result. The result type might be a single field for simple // returns, a slice of interfaces for anonymous returns and a struct for named // returns. -func (_Smartcontracts *SmartcontractsRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { - return _Smartcontracts.Contract.SmartcontractsCaller.contract.Call(opts, result, method, params...) +func (_OracleEmitter *OracleEmitterRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _OracleEmitter.Contract.OracleEmitterCaller.contract.Call(opts, result, method, params...) } // Transfer initiates a plain transaction to move funds to the contract, calling // its default method if one is available. -func (_Smartcontracts *SmartcontractsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Smartcontracts.Contract.SmartcontractsTransactor.contract.Transfer(opts) +func (_OracleEmitter *OracleEmitterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _OracleEmitter.Contract.OracleEmitterTransactor.contract.Transfer(opts) } // Transact invokes the (paid) contract method with params as input values. -func (_Smartcontracts *SmartcontractsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Smartcontracts.Contract.SmartcontractsTransactor.contract.Transact(opts, method, params...) +func (_OracleEmitter *OracleEmitterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _OracleEmitter.Contract.OracleEmitterTransactor.contract.Transact(opts, method, params...) } // Call invokes the (constant) contract method with params as input values and // sets the output to result. The result type might be a single field for simple // returns, a slice of interfaces for anonymous returns and a struct for named // returns. -func (_Smartcontracts *SmartcontractsCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { - return _Smartcontracts.Contract.contract.Call(opts, result, method, params...) +func (_OracleEmitter *OracleEmitterCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _OracleEmitter.Contract.contract.Call(opts, result, method, params...) } // Transfer initiates a plain transaction to move funds to the contract, calling // its default method if one is available. -func (_Smartcontracts *SmartcontractsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _Smartcontracts.Contract.contract.Transfer(opts) +func (_OracleEmitter *OracleEmitterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _OracleEmitter.Contract.contract.Transfer(opts) } // Transact invokes the (paid) contract method with params as input values. -func (_Smartcontracts *SmartcontractsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _Smartcontracts.Contract.contract.Transact(opts, method, params...) +func (_OracleEmitter *OracleEmitterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _OracleEmitter.Contract.contract.Transact(opts, method, params...) } // RequestOracles is a paid mutator transaction binding the contract method 0xcae2f480. // // Solidity: function requestOracles(string requestType, address callbackAddress, bytes4 callbackMethodID) returns(uint256) -func (_Smartcontracts *SmartcontractsTransactor) RequestOracles(opts *bind.TransactOpts, requestType string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { - return _Smartcontracts.contract.Transact(opts, "requestOracles", requestType, callbackAddress, callbackMethodID) +func (_OracleEmitter *OracleEmitterTransactor) RequestOracles(opts *bind.TransactOpts, requestType string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { + return _OracleEmitter.contract.Transact(opts, "requestOracles", requestType, callbackAddress, callbackMethodID) } // RequestOracles is a paid mutator transaction binding the contract method 0xcae2f480. // // Solidity: function requestOracles(string requestType, address callbackAddress, bytes4 callbackMethodID) returns(uint256) -func (_Smartcontracts *SmartcontractsSession) RequestOracles(requestType string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { - return _Smartcontracts.Contract.RequestOracles(&_Smartcontracts.TransactOpts, requestType, callbackAddress, callbackMethodID) +func (_OracleEmitter *OracleEmitterSession) RequestOracles(requestType string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { + return _OracleEmitter.Contract.RequestOracles(&_OracleEmitter.TransactOpts, requestType, callbackAddress, callbackMethodID) } // RequestOracles is a paid mutator transaction binding the contract method 0xcae2f480. // // Solidity: function requestOracles(string requestType, address callbackAddress, bytes4 callbackMethodID) returns(uint256) -func (_Smartcontracts *SmartcontractsTransactorSession) RequestOracles(requestType string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { - return _Smartcontracts.Contract.RequestOracles(&_Smartcontracts.TransactOpts, requestType, callbackAddress, callbackMethodID) +func (_OracleEmitter *OracleEmitterTransactorSession) RequestOracles(requestType string, callbackAddress common.Address, callbackMethodID [4]byte) (*types.Transaction, error) { + return _OracleEmitter.Contract.RequestOracles(&_OracleEmitter.TransactOpts, requestType, callbackAddress, callbackMethodID) } -// SmartcontractsNewOracleRequestIterator is returned from FilterNewOracleRequest and is used to iterate over the raw logs and unpacked data for NewOracleRequest events raised by the Smartcontracts contract. -type SmartcontractsNewOracleRequestIterator struct { - Event *SmartcontractsNewOracleRequest // Event containing the contract specifics and raw log +// OracleEmitterNewOracleRequestIterator is returned from FilterNewOracleRequest and is used to iterate over the raw logs and unpacked data for NewOracleRequest events raised by the OracleEmitter contract. +type OracleEmitterNewOracleRequestIterator struct { + Event *OracleEmitterNewOracleRequest // Event containing the contract specifics and raw log contract *bind.BoundContract // Generic contract to use for unpacking event data event string // Event name to use for unpacking event data @@ -208,7 +208,7 @@ type SmartcontractsNewOracleRequestIterator struct { // Next advances the iterator to the subsequent event, returning whether there // are any more events found. In case of a retrieval or parsing error, false is // returned and Error() can be queried for the exact failure. -func (it *SmartcontractsNewOracleRequestIterator) Next() bool { +func (it *OracleEmitterNewOracleRequestIterator) Next() bool { // If the iterator failed, stop iterating if it.fail != nil { return false @@ -217,7 +217,7 @@ func (it *SmartcontractsNewOracleRequestIterator) Next() bool { if it.done { select { case log := <-it.logs: - it.Event = new(SmartcontractsNewOracleRequest) + it.Event = new(OracleEmitterNewOracleRequest) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -232,7 +232,7 @@ func (it *SmartcontractsNewOracleRequestIterator) Next() bool { // Iterator still in progress, wait for either a data or an error event select { case log := <-it.logs: - it.Event = new(SmartcontractsNewOracleRequest) + it.Event = new(OracleEmitterNewOracleRequest) if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { it.fail = err return false @@ -248,19 +248,19 @@ func (it *SmartcontractsNewOracleRequestIterator) Next() bool { } // Error returns any retrieval or parsing error occurred during filtering. -func (it *SmartcontractsNewOracleRequestIterator) Error() error { +func (it *OracleEmitterNewOracleRequestIterator) Error() error { return it.fail } // Close terminates the iteration process, releasing any pending underlying // resources. -func (it *SmartcontractsNewOracleRequestIterator) Close() error { +func (it *OracleEmitterNewOracleRequestIterator) Close() error { it.sub.Unsubscribe() return nil } -// SmartcontractsNewOracleRequest represents a NewOracleRequest event raised by the Smartcontracts contract. -type SmartcontractsNewOracleRequest struct { +// OracleEmitterNewOracleRequest represents a NewOracleRequest event raised by the OracleEmitter contract. +type OracleEmitterNewOracleRequest struct { RequestType string CallbackAddress common.Address CallbackMethodID [4]byte @@ -271,21 +271,21 @@ type SmartcontractsNewOracleRequest struct { // FilterNewOracleRequest is a free log retrieval operation binding the contract event 0xc1a7df69ed0404441720a3eb710f322985ecbbe4f31934587bee703efe04427a. // // Solidity: event NewOracleRequest(string requestType, address callbackAddress, bytes4 callbackMethodID, uint256 requestID) -func (_Smartcontracts *SmartcontractsFilterer) FilterNewOracleRequest(opts *bind.FilterOpts) (*SmartcontractsNewOracleRequestIterator, error) { +func (_OracleEmitter *OracleEmitterFilterer) FilterNewOracleRequest(opts *bind.FilterOpts) (*OracleEmitterNewOracleRequestIterator, error) { - logs, sub, err := _Smartcontracts.contract.FilterLogs(opts, "NewOracleRequest") + logs, sub, err := _OracleEmitter.contract.FilterLogs(opts, "NewOracleRequest") if err != nil { return nil, err } - return &SmartcontractsNewOracleRequestIterator{contract: _Smartcontracts.contract, event: "NewOracleRequest", logs: logs, sub: sub}, nil + return &OracleEmitterNewOracleRequestIterator{contract: _OracleEmitter.contract, event: "NewOracleRequest", logs: logs, sub: sub}, nil } // WatchNewOracleRequest is a free log subscription operation binding the contract event 0xc1a7df69ed0404441720a3eb710f322985ecbbe4f31934587bee703efe04427a. // // Solidity: event NewOracleRequest(string requestType, address callbackAddress, bytes4 callbackMethodID, uint256 requestID) -func (_Smartcontracts *SmartcontractsFilterer) WatchNewOracleRequest(opts *bind.WatchOpts, sink chan<- *SmartcontractsNewOracleRequest) (event.Subscription, error) { +func (_OracleEmitter *OracleEmitterFilterer) WatchNewOracleRequest(opts *bind.WatchOpts, sink chan<- *OracleEmitterNewOracleRequest) (event.Subscription, error) { - logs, sub, err := _Smartcontracts.contract.WatchLogs(opts, "NewOracleRequest") + logs, sub, err := _OracleEmitter.contract.WatchLogs(opts, "NewOracleRequest") if err != nil { return nil, err } @@ -295,8 +295,8 @@ func (_Smartcontracts *SmartcontractsFilterer) WatchNewOracleRequest(opts *bind. select { case log := <-logs: // New log arrived, parse the event and forward to the user - event := new(SmartcontractsNewOracleRequest) - if err := _Smartcontracts.contract.UnpackLog(event, "NewOracleRequest", log); err != nil { + event := new(OracleEmitterNewOracleRequest) + if err := _OracleEmitter.contract.UnpackLog(event, "NewOracleRequest", log); err != nil { return err } event.Raw = log @@ -320,9 +320,9 @@ func (_Smartcontracts *SmartcontractsFilterer) WatchNewOracleRequest(opts *bind. // ParseNewOracleRequest is a log parse operation binding the contract event 0xc1a7df69ed0404441720a3eb710f322985ecbbe4f31934587bee703efe04427a. // // Solidity: event NewOracleRequest(string requestType, address callbackAddress, bytes4 callbackMethodID, uint256 requestID) -func (_Smartcontracts *SmartcontractsFilterer) ParseNewOracleRequest(log types.Log) (*SmartcontractsNewOracleRequest, error) { - event := new(SmartcontractsNewOracleRequest) - if err := _Smartcontracts.contract.UnpackLog(event, "NewOracleRequest", log); err != nil { +func (_OracleEmitter *OracleEmitterFilterer) ParseNewOracleRequest(log types.Log) (*OracleEmitterNewOracleRequest, error) { + event := new(OracleEmitterNewOracleRequest) + if err := _OracleEmitter.contract.UnpackLog(event, "NewOracleRequest", log); err != nil { return nil, err } return event, nil diff --git a/eth-contracts/contracts/DIoneStaking.sol b/eth-contracts/contracts/DIoneStaking.sol index f4f1426..2c4941f 100644 --- a/eth-contracts/contracts/DIoneStaking.sol +++ b/eth-contracts/contracts/DIoneStaking.sol @@ -1,7 +1,6 @@ pragma solidity 0.6.12; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol"; import "@openzeppelin/contracts/math/SafeMath.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; @@ -13,7 +12,6 @@ import "./DioneToken.sol"; // The ownership of the contract would be transfered to 24 hours Timelock contract DioneStaking is Ownable, ReentrancyGuard { using SafeMath for uint256; - using SafeERC20 for IERC20; // MinerInfo contains total DIONEs staked by miner, how much tasks been already computed // and timestamp of first deposit @@ -47,7 +45,7 @@ contract DioneStaking is Ownable, ReentrancyGuard { address _aggregatorAddr, uint256 _minerReward, uint256 _startBlock, - uint256 _minimumStake; + uint256 _minimumStake ) public { dione = _dione; aggregatorAddr = _aggregatorAddr; @@ -60,31 +58,31 @@ contract DioneStaking is Ownable, ReentrancyGuard { function mine(address _minerAddr) public nonReentrant { require(msg.sender == aggregatorAddr, "not aggregator contract"); MinerInfo storage miner = minerInfo[_minerAddr]; - require(miner.amount >= minimumStake) + require(miner.amount >= minimumStake); dione.mint(_minerAddr, minerReward); miner.lastRewardBlock = block.number; - emit Mine(_minerAddr, block.number) + emit Mine(_minerAddr, block.number); } // Mine new dione oracle task and stake miner reward, only can be executed by aggregator contract function mineAndStake(address _minerAddr) public nonReentrant { require(msg.sender == aggregatorAddr, "not aggregator contract"); MinerInfo storage miner = minerInfo[_minerAddr]; - require(miner.amount >= minimumStake) + require(miner.amount >= minimumStake); dione.mint(address(this), minerReward); _totalStake = _totalStake.add(minerReward); miner.amount = miner.amount.add(minerReward); miner.lastRewardBlock = block.number; - emit Mine(_minerAddr, block.number) + emit Mine(_minerAddr, block.number); } // Deposit DIONE tokens to mine on dione network function stake(uint256 _amount) public nonReentrant { require(_amount > 0, "Cannot stake 0"); MinerInfo storage miner = minerInfo[msg.sender]; - _totalStake = _totalStake.add(amount); + _totalStake = _totalStake.add(_amount); miner.amount = miner.amount.add(_amount); - dione.safeTransferFrom(address(msg.sender), address(this), _amount); + dione.transferFrom(address(msg.sender), address(this), _amount); if (miner.firstStakeBlock == 0 && miner.amount >= minimumStake) { miner.firstStakeBlock = block.number > startBlock ? block.number : startBlock; } @@ -96,9 +94,9 @@ contract DioneStaking is Ownable, ReentrancyGuard { MinerInfo storage miner = minerInfo[msg.sender]; require(miner.amount >= _amount, "withdraw: not enough tokens"); if(_amount > 0) { - _totalStake = _totalStake.sub(amount); + _totalStake = _totalStake.sub(_amount); miner.amount = miner.amount.sub(_amount); - dione.safeTransfer(address(msg.sender), _amount); + dione.transfer(address(msg.sender), _amount); } emit Withdraw(msg.sender, _amount); } @@ -110,7 +108,7 @@ contract DioneStaking is Ownable, ReentrancyGuard { function minerStake(address _minerAddr) external view returns (uint256) { MinerInfo storage miner = minerInfo[_minerAddr]; - return miner.amount + return miner.amount; } // Update miner reward in DIONE tokens, only can be executed by owner of the contract diff --git a/eth-contracts/package-lock.json b/eth-contracts/package-lock.json index 775a703..1a28ae6 100644 --- a/eth-contracts/package-lock.json +++ b/eth-contracts/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "requires": { - "@babel/types": "7.11.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { @@ -27,10 +27,10 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", "requires": { - "@babel/helper-module-imports": "7.10.4", - "@babel/helper-plugin-utils": "7.10.4", - "resolve": "1.17.0", - "semver": "5.7.1" + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" }, "dependencies": { "semver": { @@ -45,7 +45,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz", "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==", "requires": { - "regenerator-runtime": "0.13.7" + "regenerator-runtime": "^0.13.4" } }, "@babel/types": { @@ -53,9 +53,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", "requires": { - "@babel/helper-validator-identifier": "7.10.4", - "lodash": "4.17.19", - "to-fast-properties": "2.0.0" + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" } }, "@ethersproject/abi": { @@ -63,15 +63,15 @@ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", "requires": { - "@ethersproject/address": "5.0.2", - "@ethersproject/bignumber": "5.0.5", - "@ethersproject/bytes": "5.0.3", - "@ethersproject/constants": "5.0.2", - "@ethersproject/hash": "5.0.2", - "@ethersproject/keccak256": "5.0.2", - "@ethersproject/logger": "5.0.4", - "@ethersproject/properties": "5.0.2", - "@ethersproject/strings": "5.0.2" + "@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": { @@ -79,12 +79,12 @@ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.2.tgz", "integrity": "sha512-+rz26RKj7ujGfQynys4V9VJRbR+wpC6eL8F22q3raWMH3152Ha31GwJPWzxE/bEA+43M/zTNVwY0R53gn53L2Q==", "requires": { - "@ethersproject/bignumber": "5.0.5", - "@ethersproject/bytes": "5.0.3", - "@ethersproject/keccak256": "5.0.2", - "@ethersproject/logger": "5.0.4", - "@ethersproject/rlp": "5.0.2", - "bn.js": "4.11.9" + "@ethersproject/bignumber": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/keccak256": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/rlp": "^5.0.0", + "bn.js": "^4.4.0" } }, "@ethersproject/bignumber": { @@ -92,9 +92,9 @@ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.5.tgz", "integrity": "sha512-24ln7PV0g8ZzjcVZiLW9Wod0i+XCmK6zKkAaxw5enraTIT1p7gVOcSXFSzNQ9WYAwtiFQPvvA+TIO2oEITZNJA==", "requires": { - "@ethersproject/bytes": "5.0.3", - "@ethersproject/logger": "5.0.4", - "bn.js": "4.11.9" + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "bn.js": "^4.4.0" } }, "@ethersproject/bytes": { @@ -102,7 +102,7 @@ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.3.tgz", "integrity": "sha512-AyPMAlY+Amaw4Zfp8OAivm1xYPI8mqiUYmEnSUk1CnS2NrQGHEMmFJFiOJdS3gDDpgSOFhWIjZwxKq2VZpqNTA==", "requires": { - "@ethersproject/logger": "5.0.4" + "@ethersproject/logger": "^5.0.0" } }, "@ethersproject/constants": { @@ -110,7 +110,7 @@ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.2.tgz", "integrity": "sha512-nNoVlNP6bgpog7pQ2EyD1xjlaXcy1Cl4kK5v1KoskHj58EtB6TK8M8AFGi3GgHTdMldfT4eN3OsoQ/CdOTVNFA==", "requires": { - "@ethersproject/bignumber": "5.0.5" + "@ethersproject/bignumber": "^5.0.0" } }, "@ethersproject/hash": { @@ -118,10 +118,10 @@ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.2.tgz", "integrity": "sha512-dWGvNwmVRX2bxoQQ3ciMw46Vzl1nqfL+5R8+2ZxsRXD3Cjgw1dL2mdjJF7xMMWPvPdrlhKXWSK0gb8VLwHZ8Cw==", "requires": { - "@ethersproject/bytes": "5.0.3", - "@ethersproject/keccak256": "5.0.2", - "@ethersproject/logger": "5.0.4", - "@ethersproject/strings": "5.0.2" + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/keccak256": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/strings": "^5.0.0" } }, "@ethersproject/keccak256": { @@ -129,7 +129,7 @@ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.2.tgz", "integrity": "sha512-MbroXutc0gPNYIrUjS4Aw0lDuXabdzI7+l7elRWr1G6G+W0v00e/3gbikWkCReGtt2Jnt4lQSgnflhDwQGcIhA==", "requires": { - "@ethersproject/bytes": "5.0.3", + "@ethersproject/bytes": "^5.0.0", "js-sha3": "0.5.7" }, "dependencies": { @@ -150,7 +150,7 @@ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.2.tgz", "integrity": "sha512-FxAisPGAOACQjMJzewl9OJG6lsGCPTm5vpUMtfeoxzAlAb2lv+kHzQPUh9h4jfAILzE8AR1jgXMzRmlhwyra1Q==", "requires": { - "@ethersproject/logger": "5.0.4" + "@ethersproject/logger": "^5.0.0" } }, "@ethersproject/rlp": { @@ -158,8 +158,8 @@ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.2.tgz", "integrity": "sha512-oE0M5jqQ67fi2SuMcrpoewOpEuoXaD8M9JeR9md1bXRMvDYgKXUtDHs22oevpEOdnO2DPIRabp6MVHa4aDuWmw==", "requires": { - "@ethersproject/bytes": "5.0.3", - "@ethersproject/logger": "5.0.4" + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/logger": "^5.0.0" } }, "@ethersproject/signing-key": { @@ -167,9 +167,9 @@ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.3.tgz", "integrity": "sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ==", "requires": { - "@ethersproject/bytes": "5.0.3", - "@ethersproject/logger": "5.0.4", - "@ethersproject/properties": "5.0.2", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/properties": "^5.0.0", "elliptic": "6.5.3" } }, @@ -178,9 +178,9 @@ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.2.tgz", "integrity": "sha512-oNa+xvSqsFU96ndzog0IBTtsRFGOqGpzrXJ7shXLBT7juVeSEyZA/sYs0DMZB5mJ9FEjHdZKxR/rTyBY91vuXg==", "requires": { - "@ethersproject/bytes": "5.0.3", - "@ethersproject/constants": "5.0.2", - "@ethersproject/logger": "5.0.4" + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/constants": "^5.0.0", + "@ethersproject/logger": "^5.0.0" } }, "@ethersproject/transactions": { @@ -188,17 +188,23 @@ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.2.tgz", "integrity": "sha512-jZp0ZbbJlq4JLZY6qoMzNtp2HQsX6USQposi3ns0MPUdn3OdZJBDtrcO15r/2VS5t/K1e1GE5MI1HmMKlcTbbQ==", "requires": { - "@ethersproject/address": "5.0.2", - "@ethersproject/bignumber": "5.0.5", - "@ethersproject/bytes": "5.0.3", - "@ethersproject/constants": "5.0.2", - "@ethersproject/keccak256": "5.0.2", - "@ethersproject/logger": "5.0.4", - "@ethersproject/properties": "5.0.2", - "@ethersproject/rlp": "5.0.2", - "@ethersproject/signing-key": "5.0.3" + "@ethersproject/address": "^5.0.0", + "@ethersproject/bignumber": "^5.0.0", + "@ethersproject/bytes": "^5.0.0", + "@ethersproject/constants": "^5.0.0", + "@ethersproject/keccak256": "^5.0.0", + "@ethersproject/logger": "^5.0.0", + "@ethersproject/properties": "^5.0.0", + "@ethersproject/rlp": "^5.0.0", + "@ethersproject/signing-key": "^5.0.0" } }, + "@openzeppelin/contracts": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.2.0.tgz", + "integrity": "sha512-bUOmkSoPkjnUyMiKo6RYnb0VHBk5D9KKDAgNLzF41aqAM3TeE0yGdFF5dVRcV60pZdJLlyFT/jjXIZCWyyEzAQ==", + "dev": true + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -209,7 +215,7 @@ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "requires": { - "defer-to-connect": "1.1.3" + "defer-to-connect": "^1.0.1" } }, "@truffle/hdwallet-provider": { @@ -218,15 +224,15 @@ "integrity": "sha512-6SCzccdiFnlTREeVrGgd+ViVZCLFzrOYEIF/4qyzH2L6ilq/Taps5txKsd+/j8Jzz67ZRAB6utKxwBDv2wfW3A==", "requires": { "@trufflesuite/web3-provider-engine": "15.0.13-0", - "@types/web3": "1.2.2", - "any-promise": "1.3.0", - "bindings": "1.5.0", - "ethereum-cryptography": "0.1.3", - "ethereum-protocol": "1.0.1", - "ethereumjs-tx": "1.3.7", - "ethereumjs-util": "6.2.1", - "ethereumjs-wallet": "0.6.5", - "source-map-support": "0.5.19" + "@types/web3": "^1.0.20", + "any-promise": "^1.3.0", + "bindings": "^1.5.0", + "ethereum-cryptography": "^0.1.3", + "ethereum-protocol": "^1.0.1", + "ethereumjs-tx": "^1.0.0", + "ethereumjs-util": "^6.1.0", + "ethereumjs-wallet": "^0.6.3", + "source-map-support": "^0.5.19" } }, "@trufflesuite/eth-json-rpc-filters": { @@ -234,12 +240,12 @@ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz", "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==", "requires": { - "@trufflesuite/eth-json-rpc-middleware": "4.4.2-1", - "await-semaphore": "0.1.3", - "eth-query": "2.1.2", - "json-rpc-engine": "5.3.0", - "lodash.flatmap": "4.5.0", - "safe-event-emitter": "1.0.1" + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0", + "await-semaphore": "^0.1.3", + "eth-query": "^2.1.2", + "json-rpc-engine": "^5.1.3", + "lodash.flatmap": "^4.5.0", + "safe-event-emitter": "^1.0.1" } }, "@trufflesuite/eth-json-rpc-middleware": { @@ -247,20 +253,20 @@ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz", "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==", "requires": { - "@trufflesuite/eth-sig-util": "1.4.2", - "btoa": "1.2.1", - "clone": "2.1.2", - "eth-json-rpc-errors": "1.1.1", - "eth-query": "2.1.2", - "ethereumjs-block": "1.7.1", - "ethereumjs-tx": "1.3.7", - "ethereumjs-util": "5.2.1", - "ethereumjs-vm": "2.6.0", - "fetch-ponyfill": "4.1.0", - "json-rpc-engine": "5.3.0", - "json-stable-stringify": "1.0.1", - "pify": "3.0.0", - "safe-event-emitter": "1.0.1" + "@trufflesuite/eth-sig-util": "^1.4.2", + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-query": "^2.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.7", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.6.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^5.1.3", + "json-stable-stringify": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" }, "dependencies": { "eth-json-rpc-errors": { @@ -268,7 +274,7 @@ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", "requires": { - "fast-safe-stringify": "2.0.7" + "fast-safe-stringify": "^2.0.6" } }, "ethereumjs-util": { @@ -276,13 +282,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -292,8 +298,8 @@ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==", "requires": { - "ethereumjs-abi": "0.6.8", - "ethereumjs-util": "5.2.1" + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^5.1.1" }, "dependencies": { "ethereumjs-util": { @@ -301,13 +307,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -317,28 +323,28 @@ "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.13-0.tgz", "integrity": "sha512-bgGE2Sg56XMu0dhJl7UMiFfEFSvxW47G0RCQ3schV2kUilLKeqvGHE9z1ElVi8W30F/pF7VDbp5DkprvFC9+HQ==", "requires": { - "@trufflesuite/eth-json-rpc-filters": "4.1.2-1", - "@trufflesuite/eth-json-rpc-middleware": "4.4.2-1", - "@trufflesuite/eth-sig-util": "1.4.2", - "async": "2.6.3", - "backoff": "2.5.0", - "clone": "2.1.2", - "cross-fetch": "2.2.3", - "eth-block-tracker": "4.4.3", - "eth-json-rpc-errors": "2.0.2", - "eth-json-rpc-infura": "4.0.2", - "ethereumjs-block": "1.7.1", - "ethereumjs-tx": "1.3.7", - "ethereumjs-util": "5.2.1", - "ethereumjs-vm": "2.6.0", - "json-stable-stringify": "1.0.1", - "promise-to-callback": "1.0.0", - "readable-stream": "2.3.7", - "request": "2.88.2", - "semaphore": "1.1.0", - "ws": "5.2.2", - "xhr": "2.5.0", - "xtend": "4.0.2" + "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1", + "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1", + "@trufflesuite/eth-sig-util": "^1.4.2", + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^4.4.2", + "eth-json-rpc-errors": "^2.0.2", + "eth-json-rpc-infura": "^4.0.1", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.85.0", + "semaphore": "^1.0.3", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" }, "dependencies": { "ethereumjs-util": { @@ -346,13 +352,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -362,7 +368,7 @@ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "requires": { - "@types/node": "14.0.27" + "@types/node": "*" } }, "@types/node": { @@ -375,7 +381,7 @@ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", "requires": { - "@types/node": "14.0.27" + "@types/node": "*" } }, "@types/secp256k1": { @@ -383,7 +389,7 @@ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", "requires": { - "@types/node": "14.0.27" + "@types/node": "*" } }, "@types/web3": { @@ -391,7 +397,7 @@ "resolved": "https://registry.npmjs.org/@types/web3/-/web3-1.2.2.tgz", "integrity": "sha512-eFiYJKggNrOl0nsD+9cMh2MLk4zVBfXfGnVeRFbpiZzBE20eet4KLA3fXcjSuHaBn0RnQzwLAGdgzgzdet4C0A==", "requires": { - "web3": "1.2.11" + "web3": "*" } }, "abstract-leveldown": { @@ -399,7 +405,7 @@ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", "requires": { - "xtend": "4.0.2" + "xtend": "~4.0.0" } }, "accepts": { @@ -407,7 +413,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "mime-types": "2.1.27", + "mime-types": "~2.1.24", "negotiator": "0.6.2" } }, @@ -421,10 +427,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", "requires": { - "fast-deep-equal": "3.1.3", - "fast-json-stable-stringify": "2.1.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ansi-colors": { @@ -442,7 +448,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "any-promise": { @@ -455,8 +461,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "requires": { - "normalize-path": "3.0.0", - "picomatch": "2.2.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "app-module-path": { @@ -469,7 +475,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "array-flatten": { @@ -482,10 +488,10 @@ "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.6", - "es-array-method-boxes-properly": "1.0.0", - "is-string": "1.0.5" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.4" } }, "asn1": { @@ -493,7 +499,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "asn1.js": { @@ -501,9 +507,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { - "bn.js": "4.11.9", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert-plus": { @@ -516,7 +522,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "4.17.19" + "lodash": "^4.17.14" } }, "async-eventemitter": { @@ -524,7 +530,7 @@ "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", "requires": { - "async": "2.6.3" + "async": "^2.4.0" } }, "async-limiter": { @@ -557,7 +563,7 @@ "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", "requires": { - "precond": "0.2.3" + "precond": "0.2" } }, "balanced-match": { @@ -570,7 +576,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", "requires": { - "safe-buffer": "5.2.1" + "safe-buffer": "^5.0.1" } }, "base64-js": { @@ -583,7 +589,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bignumber.js": { @@ -625,15 +631,15 @@ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { "bytes": "3.1.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", + "depd": "~1.1.2", "http-errors": "1.7.2", "iconv-lite": "0.4.24", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", - "type-is": "1.6.18" + "type-is": "~1.6.17" }, "dependencies": { "iconv-lite": { @@ -641,7 +647,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "qs": { @@ -656,7 +662,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -665,7 +671,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { - "fill-range": "7.0.1" + "fill-range": "^7.0.1" } }, "brorand": { @@ -683,12 +689,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.4", - "safe-buffer": "5.2.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -696,9 +702,9 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -706,10 +712,10 @@ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.1", - "inherits": "2.0.4", - "safe-buffer": "5.2.1" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "browserify-rsa": { @@ -717,8 +723,8 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "4.11.9", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -726,15 +732,15 @@ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", "requires": { - "bn.js": "5.1.2", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.5.3", - "inherits": "2.0.4", - "parse-asn1": "5.1.5", - "readable-stream": "3.6.0", - "safe-buffer": "5.2.1" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "dependencies": { "bn.js": { @@ -747,9 +753,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "inherits": "2.0.4", - "string_decoder": "1.3.0", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } @@ -759,7 +765,7 @@ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", "requires": { - "base-x": "3.0.8" + "base-x": "^3.0.2" } }, "bs58check": { @@ -767,9 +773,9 @@ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", "requires": { - "bs58": "4.0.1", - "create-hash": "1.2.0", - "safe-buffer": "5.2.1" + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" } }, "btoa": { @@ -782,8 +788,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "requires": { - "base64-js": "1.3.1", - "ieee754": "1.1.13" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-from": { @@ -811,13 +817,13 @@ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "requires": { - "clone-response": "1.0.2", - "get-stream": "5.1.0", - "http-cache-semantics": "4.1.0", - "keyv": "3.1.0", - "lowercase-keys": "2.0.0", - "normalize-url": "4.5.0", - "responselike": "1.0.2" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" }, "dependencies": { "get-stream": { @@ -825,7 +831,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "lowercase-keys": { @@ -850,9 +856,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -860,7 +866,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -870,7 +876,7 @@ "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", "requires": { - "functional-red-black-tree": "1.0.1" + "functional-red-black-tree": "^1.0.1" } }, "chokidar": { @@ -878,14 +884,14 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", "requires": { - "anymatch": "3.1.1", - "braces": "3.0.2", - "fsevents": "2.1.3", - "glob-parent": "5.1.1", - "is-binary-path": "2.1.0", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "readdirp": "3.3.0" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" } }, "chownr": { @@ -898,11 +904,11 @@ "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", "requires": { - "buffer": "5.6.0", - "class-is": "1.1.0", - "multibase": "0.6.1", - "multicodec": "1.0.4", - "multihashes": "0.4.21" + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" }, "dependencies": { "multicodec": { @@ -910,8 +916,8 @@ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", "requires": { - "buffer": "5.6.0", - "varint": "5.0.0" + "buffer": "^5.6.0", + "varint": "^5.0.0" } } } @@ -921,8 +927,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.2.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "class-is": { @@ -935,9 +941,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "requires": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { "ansi-regex": { @@ -950,9 +956,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -960,7 +966,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -975,7 +981,7 @@ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "color-convert": { @@ -996,7 +1002,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "concat-map": { @@ -1024,9 +1030,9 @@ "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", "requires": { - "cids": "0.7.5", - "multicodec": "0.5.7", - "multihashes": "0.4.21" + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" } }, "content-type": { @@ -1059,8 +1065,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" + "object-assign": "^4", + "vary": "^1" } }, "create-ecdh": { @@ -1068,8 +1074,8 @@ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "requires": { - "bn.js": "4.11.9", - "elliptic": "6.5.3" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -1077,11 +1083,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.4", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1089,12 +1095,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.4", - "ripemd160": "2.0.2", - "safe-buffer": "5.2.1", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-fetch": { @@ -1118,17 +1124,17 @@ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.2.0", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.4", - "pbkdf2": "3.1.1", - "public-encrypt": "4.0.3", - "randombytes": "2.1.0", - "randomfill": "1.0.4" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "d": { @@ -1136,8 +1142,8 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "requires": { - "es5-ext": "0.10.53", - "type": "1.2.0" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, "dashdash": { @@ -1145,7 +1151,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "debug": { @@ -1171,7 +1177,7 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { - "mimic-response": "1.0.1" + "mimic-response": "^1.0.0" } }, "defer-to-connect": { @@ -1184,7 +1190,7 @@ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", "requires": { - "abstract-leveldown": "2.6.3" + "abstract-leveldown": "~2.6.0" } }, "define-properties": { @@ -1192,7 +1198,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.1.1" + "object-keys": "^1.0.12" }, "dependencies": { "object-keys": { @@ -1217,8 +1223,8 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -1236,9 +1242,9 @@ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "requires": { - "bn.js": "4.11.9", - "miller-rabin": "4.0.1", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dom-walk": { @@ -1261,8 +1267,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -1275,13 +1281,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { - "bn.js": "4.11.9", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "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" } }, "emoji-regex": { @@ -1299,7 +1305,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "requires": { - "iconv-lite": "0.6.2" + "iconv-lite": "^0.6.2" } }, "end-of-stream": { @@ -1307,7 +1313,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "errno": { @@ -1315,7 +1321,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "es-abstract": { @@ -1323,17 +1329,17 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.2.0", - "is-regex": "1.1.0", - "object-inspect": "1.8.0", - "object-keys": "1.1.1", - "object.assign": "4.1.0", - "string.prototype.trimend": "1.0.1", - "string.prototype.trimstart": "1.0.1" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" }, "dependencies": { "object-keys": { @@ -1353,13 +1359,13 @@ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", "requires": { - "es-abstract": "1.17.6", - "has-symbols": "1.0.1", - "is-arguments": "1.0.4", - "is-map": "2.0.1", - "is-set": "2.0.1", - "is-string": "1.0.5", - "isarray": "2.0.5" + "es-abstract": "^1.17.4", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" }, "dependencies": { "isarray": { @@ -1374,9 +1380,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "requires": { - "is-callable": "1.2.0", - "is-date-object": "1.0.2", - "is-symbol": "1.0.3" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es5-ext": { @@ -1384,9 +1390,9 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.3", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" } }, "es6-iterator": { @@ -1394,9 +1400,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.1", - "es5-ext": "0.10.53", - "es6-symbol": "3.1.3" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-symbol": { @@ -1404,8 +1410,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "requires": { - "d": "1.0.1", - "ext": "1.4.0" + "d": "^1.0.1", + "ext": "^1.1.2" } }, "escape-html": { @@ -1433,12 +1439,12 @@ "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz", "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==", "requires": { - "@babel/plugin-transform-runtime": "7.11.0", - "@babel/runtime": "7.11.0", - "eth-query": "2.1.2", - "json-rpc-random-id": "1.0.1", - "pify": "3.0.0", - "safe-event-emitter": "1.0.1" + "@babel/plugin-transform-runtime": "^7.5.5", + "@babel/runtime": "^7.5.5", + "eth-query": "^2.1.0", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, "eth-ens-namehash": { @@ -1446,8 +1452,8 @@ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", "requires": { - "idna-uts46-hx": "2.3.1", - "js-sha3": "0.5.7" + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" }, "dependencies": { "js-sha3": { @@ -1462,7 +1468,7 @@ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz", "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==", "requires": { - "fast-safe-stringify": "2.0.7" + "fast-safe-stringify": "^2.0.6" } }, "eth-json-rpc-infura": { @@ -1470,10 +1476,10 @@ "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.2.tgz", "integrity": "sha512-dvgOrci9lZqpjpp0hoC3Zfedhg3aIpLFVDH0TdlKxRlkhR75hTrKTwxghDrQwE0bn3eKrC8RsN1m/JdnIWltpw==", "requires": { - "cross-fetch": "2.2.3", - "eth-json-rpc-errors": "1.1.1", - "eth-json-rpc-middleware": "4.4.1", - "json-rpc-engine": "5.3.0" + "cross-fetch": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-json-rpc-middleware": "^4.1.4", + "json-rpc-engine": "^5.1.3" }, "dependencies": { "eth-json-rpc-errors": { @@ -1481,7 +1487,7 @@ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", "requires": { - "fast-safe-stringify": "2.0.7" + "fast-safe-stringify": "^2.0.6" } } } @@ -1491,20 +1497,20 @@ "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz", "integrity": "sha512-yoSuRgEYYGFdVeZg3poWOwAlRI+MoBIltmOB86MtpoZjvLbou9EB/qWMOWSmH2ryCWLW97VYY6NWsmWm3OAA7A==", "requires": { - "btoa": "1.2.1", - "clone": "2.1.2", - "eth-json-rpc-errors": "1.1.1", - "eth-query": "2.1.2", - "eth-sig-util": "1.4.2", - "ethereumjs-block": "1.7.1", - "ethereumjs-tx": "1.3.7", - "ethereumjs-util": "5.2.1", - "ethereumjs-vm": "2.6.0", - "fetch-ponyfill": "4.1.0", - "json-rpc-engine": "5.3.0", - "json-stable-stringify": "1.0.1", - "pify": "3.0.0", - "safe-event-emitter": "1.0.1" + "btoa": "^1.2.1", + "clone": "^2.1.1", + "eth-json-rpc-errors": "^1.0.1", + "eth-query": "^2.1.2", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.7", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.6.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^5.1.3", + "json-stable-stringify": "^1.0.1", + "pify": "^3.0.0", + "safe-event-emitter": "^1.0.1" }, "dependencies": { "eth-json-rpc-errors": { @@ -1512,7 +1518,7 @@ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz", "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==", "requires": { - "fast-safe-stringify": "2.0.7" + "fast-safe-stringify": "^2.0.6" } }, "ethereumjs-util": { @@ -1520,13 +1526,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -1536,12 +1542,12 @@ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", "requires": { - "bn.js": "4.11.9", - "elliptic": "6.5.3", - "nano-json-stream-parser": "0.1.2", - "servify": "0.1.12", - "ws": "3.3.3", - "xhr-request-promise": "0.1.3" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" }, "dependencies": { "safe-buffer": { @@ -1554,9 +1560,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.1", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } } } @@ -1566,8 +1572,8 @@ "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", "requires": { - "json-rpc-random-id": "1.0.1", - "xtend": "4.0.2" + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" } }, "eth-rpc-errors": { @@ -1575,7 +1581,7 @@ "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz", "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==", "requires": { - "fast-safe-stringify": "2.0.7" + "fast-safe-stringify": "^2.0.6" } }, "eth-sig-util": { @@ -1583,15 +1589,16 @@ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b", - "ethereumjs-util": "5.2.1" + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" }, "dependencies": { "ethereumjs-abi": { "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b", + "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", "requires": { - "bn.js": "4.11.9", - "ethereumjs-util": "6.2.1" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" }, "dependencies": { "ethereumjs-util": { @@ -1599,13 +1606,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "requires": { - "@types/bn.js": "4.11.6", - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", "ethjs-util": "0.1.6", - "rlp": "2.2.6" + "rlp": "^2.2.3" } } } @@ -1615,13 +1622,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -1631,7 +1638,7 @@ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", "requires": { - "js-sha3": "0.8.0" + "js-sha3": "^0.8.0" } }, "ethereum-common": { @@ -1644,21 +1651,21 @@ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", "requires": { - "@types/pbkdf2": "3.1.0", - "@types/secp256k1": "4.0.1", - "blakejs": "1.1.0", - "browserify-aes": "1.2.0", - "bs58check": "2.1.2", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "hash.js": "1.1.7", - "keccak": "3.0.1", - "pbkdf2": "3.1.1", - "randombytes": "2.1.0", - "safe-buffer": "5.2.1", - "scrypt-js": "3.0.1", - "secp256k1": "4.0.2", - "setimmediate": "1.0.5" + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" } }, "ethereum-protocol": { @@ -1671,8 +1678,8 @@ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", "requires": { - "bn.js": "4.11.9", - "ethereumjs-util": "6.2.1" + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" } }, "ethereumjs-account": { @@ -1680,9 +1687,9 @@ "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", "requires": { - "ethereumjs-util": "5.2.1", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" }, "dependencies": { "ethereumjs-util": { @@ -1690,13 +1697,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -1706,11 +1713,11 @@ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", "requires": { - "async": "2.6.3", + "async": "^2.0.1", "ethereum-common": "0.2.0", - "ethereumjs-tx": "1.3.7", - "ethereumjs-util": "5.2.1", - "merkle-patricia-tree": "2.3.2" + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" }, "dependencies": { "ethereumjs-util": { @@ -1718,13 +1725,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -1739,8 +1746,8 @@ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", "requires": { - "ethereum-common": "0.0.18", - "ethereumjs-util": "5.2.1" + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" }, "dependencies": { "ethereum-common": { @@ -1753,13 +1760,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -1769,13 +1776,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "requires": { - "@types/bn.js": "4.11.6", - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", "ethjs-util": "0.1.6", - "rlp": "2.2.6" + "rlp": "^2.2.3" } }, "ethereumjs-vm": { @@ -1783,17 +1790,17 @@ "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", "requires": { - "async": "2.6.3", - "async-eventemitter": "0.2.4", - "ethereumjs-account": "2.0.5", - "ethereumjs-block": "2.2.2", - "ethereumjs-common": "1.5.2", - "ethereumjs-util": "6.2.1", - "fake-merkle-patricia-tree": "1.0.1", - "functional-red-black-tree": "1.0.1", - "merkle-patricia-tree": "2.3.2", - "rustbn.js": "0.2.0", - "safe-buffer": "5.2.1" + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" }, "dependencies": { "ethereumjs-block": { @@ -1801,11 +1808,11 @@ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz", "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==", "requires": { - "async": "2.6.3", - "ethereumjs-common": "1.5.2", - "ethereumjs-tx": "2.1.2", - "ethereumjs-util": "5.2.1", - "merkle-patricia-tree": "2.3.2" + "async": "^2.0.1", + "ethereumjs-common": "^1.5.0", + "ethereumjs-tx": "^2.1.1", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" }, "dependencies": { "ethereumjs-util": { @@ -1813,13 +1820,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -1829,8 +1836,8 @@ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", "requires": { - "ethereumjs-common": "1.5.2", - "ethereumjs-util": "6.2.1" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } } } @@ -1840,15 +1847,15 @@ "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz", "integrity": "sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA==", "requires": { - "aes-js": "3.1.2", - "bs58check": "2.1.2", - "ethereum-cryptography": "0.1.3", - "ethereumjs-util": "6.2.1", - "randombytes": "2.1.0", - "safe-buffer": "5.2.1", - "scryptsy": "1.2.1", - "utf8": "3.0.0", - "uuid": "3.4.0" + "aes-js": "^3.1.1", + "bs58check": "^2.1.2", + "ethereum-cryptography": "^0.1.3", + "ethereumjs-util": "^6.0.0", + "randombytes": "^2.0.6", + "safe-buffer": "^5.1.2", + "scryptsy": "^1.2.1", + "utf8": "^3.0.0", + "uuid": "^3.3.2" } }, "ethjs-unit": { @@ -1891,8 +1898,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.2.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "express": { @@ -1900,36 +1907,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.0", "content-disposition": "0.5.3", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.4.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.2", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.3", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.6", + "proxy-addr": "~2.0.5", "qs": "6.7.0", - "range-parser": "1.2.1", + "range-parser": "~1.2.1", "safe-buffer": "5.1.2", "send": "0.17.1", "serve-static": "1.14.1", "setprototypeof": "1.1.1", - "statuses": "1.5.0", - "type-is": "1.6.18", + "statuses": "~1.5.0", + "type-is": "~1.6.18", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "qs": { @@ -1949,7 +1956,7 @@ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", "requires": { - "type": "2.0.0" + "type": "^2.0.0" }, "dependencies": { "type": { @@ -1974,7 +1981,7 @@ "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", "requires": { - "checkpoint-store": "1.1.0" + "checkpoint-store": "^1.1.0" } }, "fast-deep-equal": { @@ -1997,7 +2004,7 @@ "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", "requires": { - "node-fetch": "1.7.3" + "node-fetch": "~1.7.1" } }, "file-uri-to-path": { @@ -2010,7 +2017,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { - "to-regex-range": "5.0.1" + "to-regex-range": "^5.0.1" } }, "finalhandler": { @@ -2019,12 +2026,12 @@ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.3", - "statuses": "1.5.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" } }, "find-up": { @@ -2032,8 +2039,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat": { @@ -2041,7 +2048,7 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "requires": { - "is-buffer": "2.0.4" + "is-buffer": "~2.0.3" } }, "forever-agent": { @@ -2054,9 +2061,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.8", - "mime-types": "2.1.27" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -2074,9 +2081,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "requires": { - "graceful-fs": "4.2.4", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-minipass": { @@ -2084,7 +2091,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "requires": { - "minipass": "2.9.0" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -2118,7 +2125,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "getpass": { @@ -2126,7 +2133,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -2134,12 +2141,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -2147,7 +2154,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { - "is-glob": "4.0.1" + "is-glob": "^4.0.1" } }, "global": { @@ -2155,8 +2162,8 @@ "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "requires": { - "min-document": "2.19.0", - "process": "0.5.2" + "min-document": "^2.19.0", + "process": "~0.5.1" } }, "got": { @@ -2164,17 +2171,17 @@ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "requires": { - "@sindresorhus/is": "0.14.0", - "@szmarczak/http-timer": "1.1.2", - "cacheable-request": "6.1.0", - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "4.1.0", - "lowercase-keys": "1.0.1", - "mimic-response": "1.0.1", - "p-cancelable": "1.1.0", - "to-readable-stream": "1.0.0", - "url-parse-lax": "3.0.0" + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" } }, "graceful-fs": { @@ -2197,8 +2204,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "requires": { - "ajv": "6.12.3", - "har-schema": "2.0.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" } }, "has": { @@ -2206,7 +2213,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-flag": { @@ -2229,7 +2236,7 @@ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "requires": { - "has-symbol-support-x": "1.4.2" + "has-symbol-support-x": "^1.4.1" } }, "hash-base": { @@ -2237,9 +2244,9 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "requires": { - "inherits": "2.0.4", - "readable-stream": "3.6.0", - "safe-buffer": "5.2.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" }, "dependencies": { "readable-stream": { @@ -2247,9 +2254,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "inherits": "2.0.4", - "string_decoder": "1.3.0", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } @@ -2259,8 +2266,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "he": { @@ -2273,9 +2280,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "http-cache-semantics": { @@ -2288,10 +2295,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", - "statuses": "1.5.0", + "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, "dependencies": { @@ -2312,9 +2319,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "iconv-lite": { @@ -2322,7 +2329,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "idna-uts46-hx": { @@ -2355,8 +2362,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2379,7 +2386,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { - "binary-extensions": "2.1.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { @@ -2422,7 +2429,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-hex-prefixed": { @@ -2455,7 +2462,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "requires": { - "has-symbols": "1.0.1" + "has-symbols": "^1.0.1" } }, "is-retry-allowed": { @@ -2483,7 +2490,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "requires": { - "has-symbols": "1.0.1" + "has-symbols": "^1.0.1" } }, "is-typedarray": { @@ -2511,8 +2518,8 @@ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "requires": { - "has-to-string-tag-x": "1.4.1", - "is-object": "1.0.1" + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" } }, "iterate-iterator": { @@ -2525,8 +2532,8 @@ "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", "requires": { - "es-get-iterator": "1.1.0", - "iterate-iterator": "1.0.1" + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" } }, "js-sha3": { @@ -2539,8 +2546,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -2558,8 +2565,8 @@ "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.3.0.tgz", "integrity": "sha512-+diJ9s8rxB+fbJhT7ZEf8r8spaLRignLd8jTgQ/h5JSGppAHGtNMZtCoabipCaleR1B3GTGxbXBOqhaJSGmPGQ==", "requires": { - "eth-rpc-errors": "3.0.0", - "safe-event-emitter": "1.0.1" + "eth-rpc-errors": "^3.0.0", + "safe-event-emitter": "^1.0.1" } }, "json-rpc-random-id": { @@ -2582,7 +2589,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -2595,7 +2602,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.2.4" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -2619,8 +2626,8 @@ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", "requires": { - "node-addon-api": "2.0.2", - "node-gyp-build": "4.2.3" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } }, "keyv": { @@ -2641,7 +2648,7 @@ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", "requires": { - "errno": "0.1.7" + "errno": "~0.1.1" } }, "level-iterator-stream": { @@ -2649,10 +2656,10 @@ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", "requires": { - "inherits": "2.0.4", - "level-errors": "1.0.5", - "readable-stream": "1.1.14", - "xtend": "4.0.2" + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" }, "dependencies": { "readable-stream": { @@ -2660,10 +2667,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -2678,8 +2685,8 @@ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", "requires": { - "readable-stream": "1.0.34", - "xtend": "2.1.2" + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" }, "dependencies": { "readable-stream": { @@ -2687,10 +2694,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -2703,7 +2710,7 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", "requires": { - "object-keys": "0.4.0" + "object-keys": "~0.4.0" } } } @@ -2713,13 +2720,13 @@ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", "requires": { - "deferred-leveldown": "1.2.2", - "level-codec": "7.0.1", - "level-errors": "1.0.5", - "level-iterator-stream": "1.3.1", - "prr": "1.0.1", - "semver": "5.4.1", - "xtend": "4.0.2" + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" } }, "locate-path": { @@ -2727,7 +2734,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "4.1.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -2745,7 +2752,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "requires": { - "chalk": "2.4.2" + "chalk": "^2.4.2" } }, "lowercase-keys": { @@ -2763,9 +2770,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.1.0", - "inherits": "2.0.4", - "safe-buffer": "5.2.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { @@ -2778,12 +2785,12 @@ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", "requires": { - "abstract-leveldown": "2.7.2", - "functional-red-black-tree": "1.0.1", - "immediate": "3.3.0", - "inherits": "2.0.4", - "ltgt": "2.2.1", - "safe-buffer": "5.1.2" + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" }, "dependencies": { "abstract-leveldown": { @@ -2791,7 +2798,7 @@ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", "requires": { - "xtend": "4.0.2" + "xtend": "~4.0.0" } }, "safe-buffer": { @@ -2811,14 +2818,14 @@ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", "requires": { - "async": "1.5.2", - "ethereumjs-util": "5.2.1", + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", "level-ws": "0.0.0", - "levelup": "1.3.9", - "memdown": "1.4.1", - "readable-stream": "2.3.7", - "rlp": "2.2.6", - "semaphore": "1.1.0" + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" }, "dependencies": { "async": { @@ -2831,13 +2838,13 @@ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", "requires": { - "bn.js": "4.11.9", - "create-hash": "1.2.0", - "elliptic": "6.5.3", - "ethereum-cryptography": "0.1.3", - "ethjs-util": "0.1.6", - "rlp": "2.2.6", - "safe-buffer": "5.2.1" + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" } } } @@ -2852,8 +2859,8 @@ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "bn.js": "4.11.9", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -2884,7 +2891,7 @@ "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "requires": { - "dom-walk": "0.1.2" + "dom-walk": "^0.1.0" } }, "minimalistic-assert": { @@ -2902,7 +2909,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -2915,8 +2922,8 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "requires": { - "safe-buffer": "5.2.1", - "yallist": "3.1.1" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { @@ -2924,7 +2931,7 @@ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "requires": { - "minipass": "2.9.0" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -2937,7 +2944,7 @@ "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", "requires": { - "mkdirp": "1.0.4" + "mkdirp": "*" } }, "mocha": { @@ -2977,7 +2984,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "ms": { @@ -3002,8 +3009,8 @@ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", "requires": { - "base-x": "3.0.8", - "buffer": "5.6.0" + "base-x": "^3.0.8", + "buffer": "^5.5.0" } }, "multicodec": { @@ -3011,7 +3018,7 @@ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", "requires": { - "varint": "5.0.0" + "varint": "^5.0.0" } }, "multihashes": { @@ -3019,9 +3026,9 @@ "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "requires": { - "buffer": "5.6.0", - "multibase": "0.7.0", - "varint": "5.0.0" + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" }, "dependencies": { "multibase": { @@ -3029,8 +3036,8 @@ "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", "requires": { - "base-x": "3.0.8", - "buffer": "5.6.0" + "base-x": "^3.0.8", + "buffer": "^5.5.0" } } } @@ -3065,8 +3072,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.13", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-gyp-build": { @@ -3125,10 +3132,10 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.1", - "object-keys": "1.1.1" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" }, "dependencies": { "object-keys": { @@ -3143,7 +3150,7 @@ "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", "requires": { - "http-https": "1.0.0" + "http-https": "^1.0.0" } }, "on-finished": { @@ -3159,7 +3166,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "original-require": { @@ -3182,7 +3189,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -3190,7 +3197,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "2.3.0" + "p-limit": "^2.2.0" } }, "p-timeout": { @@ -3198,7 +3205,7 @@ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", "requires": { - "p-finally": "1.0.0" + "p-finally": "^1.0.0" } }, "p-try": { @@ -3211,12 +3218,12 @@ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.1.1", - "safe-buffer": "5.2.1" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-headers": { @@ -3254,11 +3261,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.2.1", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "performance-now": { @@ -3301,8 +3308,8 @@ "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", "requires": { - "is-fn": "1.0.0", - "set-immediate-shim": "1.0.1" + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" } }, "promise.allsettled": { @@ -3310,11 +3317,11 @@ "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", "requires": { - "array.prototype.map": "1.0.2", - "define-properties": "1.1.3", - "es-abstract": "1.17.6", - "function-bind": "1.1.1", - "iterate-value": "1.0.2" + "array.prototype.map": "^1.0.1", + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "iterate-value": "^1.0.0" } }, "proxy-addr": { @@ -3322,7 +3329,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.9.1" } }, @@ -3341,12 +3348,12 @@ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "requires": { - "bn.js": "4.11.9", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.5", - "randombytes": "2.1.0", - "safe-buffer": "5.2.1" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "pump": { @@ -3354,8 +3361,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "1.4.4", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "punycode": { @@ -3373,9 +3380,9 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "requires": { - "decode-uri-component": "0.2.0", - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "randombytes": { @@ -3383,7 +3390,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { - "safe-buffer": "5.2.1" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -3391,8 +3398,8 @@ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "randombytes": "2.1.0", - "safe-buffer": "5.2.1" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -3416,7 +3423,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } } } @@ -3426,13 +3433,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" }, "dependencies": { "isarray": { @@ -3450,7 +3457,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -3460,7 +3467,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", "requires": { - "picomatch": "2.2.2" + "picomatch": "^2.0.7" } }, "regenerator-runtime": { @@ -3473,26 +3480,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.10.0", - "caseless": "0.12.0", - "combined-stream": "1.0.8", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "har-validator": "5.1.5", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.27", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.2.1", - "tough-cookie": "2.5.0", - "tunnel-agent": "0.6.0", - "uuid": "3.4.0" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, "require-directory": { @@ -3510,7 +3517,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "responselike": { @@ -3518,7 +3525,7 @@ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "requires": { - "lowercase-keys": "1.0.1" + "lowercase-keys": "^1.0.0" } }, "ripemd160": { @@ -3526,8 +3533,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.1.0", - "inherits": "2.0.4" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "rlp": { @@ -3535,7 +3542,7 @@ "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", "requires": { - "bn.js": "4.11.9" + "bn.js": "^4.11.1" } }, "rustbn.js": { @@ -3553,7 +3560,7 @@ "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", "requires": { - "events": "3.2.0" + "events": "^3.0.0" } }, "safer-buffer": { @@ -3571,7 +3578,7 @@ "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", "requires": { - "pbkdf2": "3.1.1" + "pbkdf2": "^3.0.3" } }, "secp256k1": { @@ -3579,9 +3586,9 @@ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", "requires": { - "elliptic": "6.5.3", - "node-addon-api": "2.0.2", - "node-gyp-build": "4.2.3" + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } }, "semaphore": { @@ -3600,18 +3607,18 @@ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.7.2", + "http-errors": "~1.7.2", "mime": "1.6.0", "ms": "2.1.1", - "on-finished": "2.3.0", - "range-parser": "1.2.1", - "statuses": "1.5.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { "ms": { @@ -3631,9 +3638,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.3", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", "send": "0.17.1" } }, @@ -3642,11 +3649,11 @@ "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", "requires": { - "body-parser": "1.19.0", - "cors": "2.8.5", - "express": "4.17.1", - "request": "2.88.2", - "xhr": "2.5.0" + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" } }, "set-blocking": { @@ -3674,8 +3681,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.2.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "simple-concat": { @@ -3688,9 +3695,9 @@ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", "requires": { - "decompress-response": "3.3.0", - "once": "1.4.0", - "simple-concat": "1.0.1" + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, "source-map": { @@ -3703,8 +3710,8 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "sprintf-js": { @@ -3717,15 +3724,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "statuses": { @@ -3743,8 +3750,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string.prototype.trimend": { @@ -3752,8 +3759,8 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.6" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string.prototype.trimstart": { @@ -3761,8 +3768,8 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.6" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string_decoder": { @@ -3770,7 +3777,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "5.2.1" + "safe-buffer": "~5.2.0" } }, "strip-ansi": { @@ -3778,7 +3785,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-hex-prefix": { @@ -3799,7 +3806,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "4.0.0" + "has-flag": "^4.0.0" }, "dependencies": { "has-flag": { @@ -3814,17 +3821,17 @@ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", "requires": { - "bluebird": "3.7.2", - "buffer": "5.6.0", - "eth-lib": "0.1.29", - "fs-extra": "4.0.3", - "got": "7.1.0", - "mime-types": "2.1.27", - "mkdirp-promise": "5.0.1", - "mock-fs": "4.12.0", - "setimmediate": "1.0.5", - "tar": "4.4.13", - "xhr-request": "1.1.0" + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" }, "dependencies": { "get-stream": { @@ -3837,20 +3844,20 @@ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", "requires": { - "decompress-response": "3.3.0", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-plain-obj": "1.1.0", - "is-retry-allowed": "1.2.0", - "is-stream": "1.1.0", - "isurl": "1.0.0", - "lowercase-keys": "1.0.1", - "p-cancelable": "0.3.0", - "p-timeout": "1.2.1", - "safe-buffer": "5.2.1", - "timed-out": "4.0.1", - "url-parse-lax": "1.0.0", - "url-to-options": "1.0.1" + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" } }, "p-cancelable": { @@ -3868,7 +3875,7 @@ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } } } @@ -3878,13 +3885,13 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", "requires": { - "chownr": "1.1.4", - "fs-minipass": "1.2.7", - "minipass": "2.9.0", - "minizlib": "1.3.3", - "mkdirp": "0.5.5", - "safe-buffer": "5.2.1", - "yallist": "3.1.1" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" }, "dependencies": { "mkdirp": { @@ -3892,7 +3899,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.5" } } } @@ -3917,7 +3924,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { - "is-number": "7.0.0" + "is-number": "^7.0.0" } }, "toidentifier": { @@ -3930,8 +3937,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "1.8.0", - "punycode": "2.1.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "truffle": { @@ -3939,7 +3946,7 @@ "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.1.37.tgz", "integrity": "sha512-ONIrN/OjtWgPl/qe74lcoUXZm3b04Omq8sbsPuMF7w/8uOx7/sufxd99UfKInxjCZnryD2tQHdYQbNvoXyvpgQ==", "requires": { - "app-module-path": "2.2.0", + "app-module-path": "^2.2.0", "mocha": "8.0.1", "original-require": "1.0.1" } @@ -3949,7 +3956,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.2.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -3968,7 +3975,7 @@ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.27" + "mime-types": "~2.1.24" } }, "typedarray-to-buffer": { @@ -3976,7 +3983,7 @@ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "requires": { - "is-typedarray": "1.0.0" + "is-typedarray": "^1.0.0" } }, "ultron": { @@ -4004,7 +4011,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "url-parse-lax": { @@ -4012,7 +4019,7 @@ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "requires": { - "prepend-http": "2.0.0" + "prepend-http": "^2.0.0" } }, "url-set-query": { @@ -4060,9 +4067,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "web3": { @@ -4084,9 +4091,9 @@ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz", "integrity": "sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg==", "requires": { - "@types/node": "12.12.53", + "@types/node": "^12.12.6", "got": "9.6.0", - "swarm-js": "0.1.40", + "swarm-js": "^0.1.40", "underscore": "1.9.1" }, "dependencies": { @@ -4102,9 +4109,9 @@ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz", "integrity": "sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ==", "requires": { - "@types/bn.js": "4.11.6", - "@types/node": "12.12.53", - "bignumber.js": "9.0.0", + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", "web3-core-helpers": "1.2.11", "web3-core-method": "1.2.11", "web3-core-requestmanager": "1.2.11", @@ -4133,7 +4140,7 @@ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz", "integrity": "sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw==", "requires": { - "@ethersproject/transactions": "5.0.2", + "@ethersproject/transactions": "^5.0.0-beta.135", "underscore": "1.9.1", "web3-core-helpers": "1.2.11", "web3-core-promievent": "1.2.11", @@ -4208,9 +4215,9 @@ "requires": { "crypto-browserify": "3.12.0", "eth-lib": "0.2.8", - "ethereumjs-common": "1.5.2", - "ethereumjs-tx": "2.1.2", - "scrypt-js": "3.0.1", + "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.2.11", @@ -4224,9 +4231,9 @@ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { - "bn.js": "4.11.9", - "elliptic": "6.5.3", - "xhr-request-promise": "0.1.3" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } }, "ethereumjs-tx": { @@ -4234,8 +4241,8 @@ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", "requires": { - "ethereumjs-common": "1.5.2", - "ethereumjs-util": "6.2.1" + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" } }, "uuid": { @@ -4250,7 +4257,7 @@ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz", "integrity": "sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow==", "requires": { - "@types/bn.js": "4.11.6", + "@types/bn.js": "^4.11.5", "underscore": "1.9.1", "web3-core": "1.2.11", "web3-core-helpers": "1.2.11", @@ -4266,7 +4273,7 @@ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz", "integrity": "sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA==", "requires": { - "content-hash": "2.5.2", + "content-hash": "^2.5.2", "eth-ens-namehash": "2.0.8", "underscore": "1.9.1", "web3-core": "1.2.11", @@ -4282,7 +4289,7 @@ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz", "integrity": "sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ==", "requires": { - "bn.js": "4.11.9", + "bn.js": "^4.11.9", "web3-utils": "1.2.11" } }, @@ -4291,7 +4298,7 @@ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz", "integrity": "sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw==", "requires": { - "@types/node": "12.12.53", + "@types/node": "^12.12.6", "web3-core": "1.2.11", "web3-core-helpers": "1.2.11", "web3-core-method": "1.2.11", @@ -4343,7 +4350,7 @@ "eventemitter3": "4.0.4", "underscore": "1.9.1", "web3-core-helpers": "1.2.11", - "websocket": "1.0.31" + "websocket": "^1.0.31" } }, "web3-shh": { @@ -4362,12 +4369,12 @@ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz", "integrity": "sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ==", "requires": { - "bn.js": "4.11.9", + "bn.js": "^4.11.9", "eth-lib": "0.2.8", - "ethereum-bloom-filters": "1.0.7", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randombytes": "2.1.0", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" }, @@ -4377,9 +4384,9 @@ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { - "bn.js": "4.11.9", - "elliptic": "6.5.3", - "xhr-request-promise": "0.1.3" + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" } } } @@ -4389,11 +4396,11 @@ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", "requires": { - "debug": "2.6.9", - "es5-ext": "0.10.53", - "nan": "2.14.1", - "typedarray-to-buffer": "3.1.5", - "yaeti": "0.0.6" + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" } }, "whatwg-fetch": { @@ -4406,7 +4413,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -4419,7 +4426,7 @@ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "requires": { - "string-width": "2.1.1" + "string-width": "^1.0.2 || 2" } }, "workerpool": { @@ -4432,9 +4439,9 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "requires": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "dependencies": { "ansi-regex": { @@ -4447,9 +4454,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -4457,7 +4464,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -4472,7 +4479,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "requires": { - "async-limiter": "1.0.1" + "async-limiter": "~1.0.0" } }, "xhr": { @@ -4480,10 +4487,10 @@ "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", "requires": { - "global": "4.3.2", - "is-function": "1.0.2", - "parse-headers": "2.0.3", - "xtend": "4.0.2" + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" } }, "xhr-request": { @@ -4491,13 +4498,13 @@ "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", "requires": { - "buffer-to-arraybuffer": "0.0.5", - "object-assign": "4.1.1", - "query-string": "5.1.1", - "simple-get": "2.8.1", - "timed-out": "4.0.1", - "url-set-query": "1.0.0", - "xhr": "2.5.0" + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" } }, "xhr-request-promise": { @@ -4505,7 +4512,7 @@ "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", "requires": { - "xhr-request": "1.1.0" + "xhr-request": "^1.1.0" } }, "xhr2-cookies": { @@ -4513,7 +4520,7 @@ "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", "requires": { - "cookiejar": "2.1.2" + "cookiejar": "^2.1.1" } }, "xtend": { @@ -4541,16 +4548,16 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "requires": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.2" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" }, "dependencies": { "ansi-regex": { @@ -4563,7 +4570,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "locate-path": { @@ -4571,8 +4578,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "p-locate": { @@ -4580,7 +4587,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "2.3.0" + "p-limit": "^2.0.0" } }, "path-exists": { @@ -4593,9 +4600,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -4603,7 +4610,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -4613,8 +4620,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yargs-unparser": { @@ -4622,9 +4629,9 @@ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "requires": { - "flat": "4.1.0", - "lodash": "4.17.19", - "yargs": "13.3.2" + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" } } } diff --git a/eth-contracts/package.json b/eth-contracts/package.json index 62f4461..e79e129 100644 --- a/eth-contracts/package.json +++ b/eth-contracts/package.json @@ -15,5 +15,8 @@ "@truffle/hdwallet-provider": "^1.0.40", "dotenv": "^8.2.0", "truffle": "^5.1.37" + }, + "devDependencies": { + "@openzeppelin/contracts": "^3.2.0" } } diff --git a/rpcclient/ethereum.go b/rpcclient/ethereum.go index c6e7cea..48be19f 100644 --- a/rpcclient/ethereum.go +++ b/rpcclient/ethereum.go @@ -4,6 +4,7 @@ import ( "context" "math/big" + stakingContract "github.com/Secured-Finance/dione/contracts/DioneStaking" "github.com/Secured-Finance/dione/contracts/aggregator" "github.com/Secured-Finance/dione/contracts/oracleemitter" "github.com/ethereum/go-ethereum/accounts/abi/bind" @@ -13,11 +14,13 @@ import ( "github.com/ethereum/go-ethereum/event" ) +// TODO: change artifacts for other contracts type EthereumClient struct { client *ethclient.Client authTransactor *bind.TransactOpts - oracleEmitter *oracleemitter.SmartcontractsSession - aggregator *aggregator.SmartcontractsSession + oracleEmitter *oracleemitter.OracleEmitterSession + aggregator *aggregator.AggregatorSession + dioneStaking *stakingContract.DioneStakingSession } type OracleEvent struct { @@ -53,15 +56,15 @@ func (c *EthereumClient) Initialize(ctx context.Context, url, privateKey, oracle authTransactor := bind.NewKeyedTransactor(ecdsaKey) c.authTransactor = authTransactor - oracleEmitter, err := oracleemitter.NewSmartcontracts(common.HexToAddress(oracleEmitterContractAddress), client) + oracleEmitter, err := oracleemitter.NewOracleEmitter(common.HexToAddress(oracleEmitterContractAddress), client) if err != nil { return err } - aggregatorPlainSC, err := aggregator.NewSmartcontracts(common.HexToAddress(aggregatorContractAddress), client) + aggregatorPlainSC, err := aggregator.NewAggregator(common.HexToAddress(aggregatorContractAddress), client) if err != nil { return err } - c.oracleEmitter = &oracleemitter.SmartcontractsSession{ + c.oracleEmitter = &oracleemitter.OracleEmitterSession{ Contract: oracleEmitter, CallOpts: bind.CallOpts{ Pending: true, @@ -76,7 +79,7 @@ func (c *EthereumClient) Initialize(ctx context.Context, url, privateKey, oracle Context: context.Background(), }, } - c.aggregator = &aggregator.SmartcontractsSession{ + c.aggregator = &aggregator.AggregatorSession{ Contract: aggregatorPlainSC, CallOpts: bind.CallOpts{ Pending: true, @@ -175,8 +178,8 @@ func (c *EthereumClient) Initialize(ctx context.Context, url, privateKey, oracle // return address // } -func (c *EthereumClient) SubscribeOnOracleEvents(incomingEventsChan chan *oracleemitter.SmartcontractsNewOracleRequest) (event.Subscription, error) { - requestsFilter := c.oracleEmitter.Contract.SmartcontractsFilterer +func (c *EthereumClient) SubscribeOnOracleEvents(incomingEventsChan chan *oracleemitter.OracleEmitterNewOracleRequest) (event.Subscription, error) { + requestsFilter := c.oracleEmitter.Contract.OracleEmitterFilterer subscription, err := requestsFilter.WatchNewOracleRequest(&bind.WatchOpts{ Start: nil, //last block Context: nil, @@ -220,3 +223,19 @@ func (c *EthereumClient) SubmitRequestAnswer(reqID *big.Int, data string, callba return nil } + +func (c *EthereumClient) GetTotalStake() (*big.Int, error) { + totalStake, err := c.dioneStaking.TotalStake() + if err != nil { + return nil, err + } + return totalStake, nil +} + +func (c *EthereumClient) GetMinerStake(minerAddress common.Address) (*big.Int, error) { + minerStake, err := c.dioneStaking.MinerStake(minerAddress) + if err != nil { + return nil, err + } + return minerStake, nil +} diff --git a/store/stake.go b/store/stake.go index b804030..a574ac7 100644 --- a/store/stake.go +++ b/store/stake.go @@ -1,9 +1,45 @@ package store -import "math/big" +import ( + "math/big" + + "github.com/Secured-Finance/dione/rpcclient" + "github.com/ethereum/go-ethereum/common" +) // TODO: specify store for staking mechanism -type StakeTokenInfo struct { - TotalTokensStaked *big.Int - NodeTokensStaked *big.Int +type DioneStakeInfo struct { + MinerStake *big.Int + TotalStake *big.Int + Ethereum *rpcclient.EthereumClient +} + +func NewDioneStakeInfo(minerStake, totalStake *big.Int, ethereumClient *rpcclient.EthereumClient) *DioneStakeInfo { + return &DioneStakeInfo{ + MinerStake: minerStake, + TotalStake: totalStake, + Ethereum: ethereumClient, + } +} + +func (d *DioneStakeInfo) UpdateMinerStake(minerAddress common.Address) error { + minerStake, err := d.Ethereum.GetMinerStake(minerAddress) + if err != nil { + return err + } + + d.MinerStake = minerStake + + return nil +} + +func (d *DioneStakeInfo) UpdateTotalStake(minerAddress common.Address) error { + totalStake, err := d.Ethereum.GetTotalStake() + if err != nil { + return err + } + + d.TotalStake = totalStake + + return nil } diff --git a/store/store.go b/store/store.go index cb56f47..78be46f 100644 --- a/store/store.go +++ b/store/store.go @@ -20,3 +20,5 @@ func NewStore(db *sql.DB, node *node.Node, genesisTs uint64) *Store { genesisTs: genesisTs, } } + +// TODO: connect data base; specify the table for stake storage; queries for stake storage