From 8b32d6680fff331fe9c1af5efade117484f5f68a Mon Sep 17 00:00:00 2001 From: Taylor Hulsmans <122753557+polus-arcticus@users.noreply.github.com> Date: Wed, 29 Mar 2023 17:30:14 -0700 Subject: [PATCH] update deal client to zondax 4 (#106) Co-authored-by: Zak Ayesh <44901995+ZakAyesh@users.noreply.github.com> --- contracts/basic-deal-client/DealClient.sol | 646 +++++++------ contracts/basic-deal-client/Types.sol | 95 -- .../FilecoinMarketConsumer.sol | 4 +- package.json | 2 +- yarn.lock | 856 +++++++++++++++++- 5 files changed, 1141 insertions(+), 462 deletions(-) delete mode 100644 contracts/basic-deal-client/Types.sol diff --git a/contracts/basic-deal-client/DealClient.sol b/contracts/basic-deal-client/DealClient.sol index a72565c6..f9dac93a 100644 --- a/contracts/basic-deal-client/DealClient.sol +++ b/contracts/basic-deal-client/DealClient.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.17; import {MarketAPI} from "@zondax/filecoin-solidity/contracts/v0.8/MarketAPI.sol"; @@ -9,384 +9,360 @@ import {CommonTypes} from "@zondax/filecoin-solidity/contracts/v0.8/types/Common import {AccountCBOR} from "@zondax/filecoin-solidity/contracts/v0.8/cbor/AccountCbor.sol"; import {MarketCBOR} from "@zondax/filecoin-solidity/contracts/v0.8/cbor/MarketCbor.sol"; import {BytesCBOR} from "@zondax/filecoin-solidity/contracts/v0.8/cbor/BytesCbor.sol"; -import {BigNumbers} from "@zondax/filecoin-solidity/contracts/v0.8/external/BigNumbers.sol"; -import {CBOR} from "@zondax/filecoin-solidity/contracts/v0.8/external/CBOR.sol"; +import {BigNumbers, BigNumber} from "@zondax/solidity-bignumber/src/BigNumbers.sol"; +import {BigInts} from '@zondax/filecoin-solidity/contracts/v0.8/utils/BigInts.sol'; +import {CBOR} from "solidity-cborutils/contracts/CBOR.sol"; import {Misc} from "@zondax/filecoin-solidity/contracts/v0.8/utils/Misc.sol"; import {FilAddresses} from "@zondax/filecoin-solidity/contracts/v0.8/utils/FilAddresses.sol"; -import {MarketDealNotifyParams, deserializeMarketDealNotifyParams, serializeDealProposal, deserializeDealProposal} from "./Types.sol"; using CBOR for CBOR.CBORBuffer; struct RequestId { - bytes32 requestId; - bool valid; + bytes32 requestId; + bool valid; } struct RequestIdx { - uint256 idx; - bool valid; + uint256 idx; + bool valid; } struct ProviderSet { - bytes provider; - bool valid; + bytes provider; + bool valid; } // User request for this contract to make a deal. This structure is modelled after Filecoin's Deal // Proposal, but leaves out the provider, since any provider can pick up a deal broadcast by this // contract. struct DealRequest { - bytes piece_cid; - uint64 piece_size; - bool verified_deal; - string label; - int64 start_epoch; - int64 end_epoch; - uint256 storage_price_per_epoch; - uint256 provider_collateral; - uint256 client_collateral; - uint64 extra_params_version; - ExtraParamsV1 extra_params; + bytes piece_cid; + uint64 piece_size; + bool verified_deal; + string label; + int64 start_epoch; + int64 end_epoch; + uint256 storage_price_per_epoch; + uint256 provider_collateral; + uint256 client_collateral; + uint64 extra_params_version; + ExtraParamsV1 extra_params; } // Extra parameters associated with the deal request. These are off-protocol flags that // the storage provider will need. struct ExtraParamsV1 { - string location_ref; - uint64 car_size; - bool skip_ipni_announce; - bool remove_unsealed_copy; + string location_ref; + uint64 car_size; + bool skip_ipni_announce; + bool remove_unsealed_copy; } function serializeExtraParamsV1( - ExtraParamsV1 memory params + ExtraParamsV1 memory params ) pure returns (bytes memory) { - CBOR.CBORBuffer memory buf = CBOR.create(64); - buf.startFixedArray(4); - buf.writeString(params.location_ref); - buf.writeUInt64(params.car_size); - buf.writeBool(params.skip_ipni_announce); - buf.writeBool(params.remove_unsealed_copy); - return buf.data(); + CBOR.CBORBuffer memory buf = CBOR.create(64); + buf.startFixedArray(4); + buf.writeString(params.location_ref); + buf.writeUInt64(params.car_size); + buf.writeBool(params.skip_ipni_announce); + buf.writeBool(params.remove_unsealed_copy); + return buf.data(); } contract DealClient { - using AccountCBOR for *; - using MarketCBOR for *; - - uint64 public constant AUTHENTICATE_MESSAGE_METHOD_NUM = 2643134072; - uint64 public constant DATACAP_RECEIVER_HOOK_METHOD_NUM = 3726118371; - uint64 public constant MARKET_NOTIFY_DEAL_METHOD_NUM = 4186741094; - address public constant MARKET_ACTOR_ETH_ADDRESS = - address(0xff00000000000000000000000000000000000005); - address public constant DATACAP_ACTOR_ETH_ADDRESS = - address(0xfF00000000000000000000000000000000000007); - - - enum Status { - None, - RequestSubmitted, - DealPublished, - DealActivated, - DealTerminated + using AccountCBOR for *; + using MarketCBOR for *; + + uint64 public constant AUTHENTICATE_MESSAGE_METHOD_NUM = 2643134072; + uint64 public constant DATACAP_RECEIVER_HOOK_METHOD_NUM = 3726118371; + uint64 public constant MARKET_NOTIFY_DEAL_METHOD_NUM = 4186741094; + address public constant MARKET_ACTOR_ETH_ADDRESS = + address(0xff00000000000000000000000000000000000005); + address public constant DATACAP_ACTOR_ETH_ADDRESS = + address(0xfF00000000000000000000000000000000000007); + + + enum Status { + None, + RequestSubmitted, + DealPublished, + DealActivated, + DealTerminated + } + + mapping(bytes32 => RequestIdx) public dealRequestIdx; // contract deal id -> deal index + DealRequest[] public dealRequests; + + mapping(bytes => RequestId) public pieceRequests; // commP -> dealProposalID + mapping(bytes => ProviderSet) public pieceProviders; // commP -> provider + mapping(bytes => uint64) public pieceDeals; // commP -> deal ID + mapping(bytes => Status) public pieceStatus; + + event ReceivedDataCap(string received); + event DealProposalCreate( + bytes32 indexed id, + uint64 size, + bool indexed verified, + uint256 price + ); + + address public owner; + + constructor() { + owner = msg.sender; + } + + function getProviderSet( + bytes calldata cid + ) public view returns (ProviderSet memory) { + return pieceProviders[cid]; + } + + function getProposalIdSet( + bytes calldata cid + ) public view returns (RequestId memory) { + return pieceRequests[cid]; + } + + function dealsLength() public view returns (uint256) { + return dealRequests.length; + } + + function getDealByIndex( + uint256 index + ) public view returns (DealRequest memory) { + return dealRequests[index]; + } + + function makeDealProposal( + DealRequest calldata deal + ) public returns (bytes32) { + require(msg.sender == owner); + + if (pieceStatus[deal.piece_cid] == Status.DealPublished || + pieceStatus[deal.piece_cid] == Status.DealActivated) { + revert("deal with this pieceCid already published"); } - mapping(bytes32 => RequestIdx) public dealRequestIdx; // contract deal id -> deal index - DealRequest[] public dealRequests; + uint256 index = dealRequests.length; + dealRequests.push(deal); - mapping(bytes => RequestId) public pieceRequests; // commP -> dealProposalID - mapping(bytes => ProviderSet) public pieceProviders; // commP -> provider - mapping(bytes => uint64) public pieceDeals; // commP -> deal ID - mapping(bytes => Status) public pieceStatus; - - event ReceivedDataCap(string received); - event DealProposalCreate( - bytes32 indexed id, - uint64 size, - bool indexed verified, - uint256 price + // creates a unique ID for the deal proposal -- there are many ways to do this + bytes32 id = keccak256( + abi.encodePacked(block.timestamp, msg.sender, index) ); + dealRequestIdx[id] = RequestIdx(index, true); - address public owner; - - constructor() { - owner = msg.sender; - } - - function getProviderSet( - bytes calldata cid - ) public view returns (ProviderSet memory) { - return pieceProviders[cid]; - } - - function getProposalIdSet( - bytes calldata cid - ) public view returns (RequestId memory) { - return pieceRequests[cid]; - } - - function dealsLength() public view returns (uint256) { - return dealRequests.length; - } - - function getDealByIndex( - uint256 index - ) public view returns (DealRequest memory) { - return dealRequests[index]; - } - - function makeDealProposal( - DealRequest calldata deal - ) public returns (bytes32) { - require(msg.sender == owner); - - if (pieceStatus[deal.piece_cid] == Status.DealPublished || - pieceStatus[deal.piece_cid] == Status.DealActivated) { - revert("deal with this pieceCid already published"); - } - - uint256 index = dealRequests.length; - dealRequests.push(deal); - - // creates a unique ID for the deal proposal -- there are many ways to do this - bytes32 id = keccak256( - abi.encodePacked(block.timestamp, msg.sender, index) - ); - dealRequestIdx[id] = RequestIdx(index, true); - - pieceRequests[deal.piece_cid] = RequestId(id, true); - pieceStatus[deal.piece_cid] = Status.RequestSubmitted; - - // writes the proposal metadata to the event log - emit DealProposalCreate( - id, - deal.piece_size, - deal.verified_deal, - deal.storage_price_per_epoch - ); - - return id; - } - - // helper function to get deal request based from id - function getDealRequest( - bytes32 requestId - ) internal view returns (DealRequest memory) { - RequestIdx memory ri = dealRequestIdx[requestId]; - require(ri.valid, "proposalId not available"); - return dealRequests[ri.idx]; - } - - // Returns a CBOR-encoded DealProposal. - function getDealProposal( - bytes32 proposalId - ) public view returns (bytes memory) { - DealRequest memory deal = getDealRequest(proposalId); - - MarketTypes.DealProposal memory ret; - ret.piece_cid = CommonTypes.Cid(deal.piece_cid); - ret.piece_size = deal.piece_size; - ret.verified_deal = deal.verified_deal; - ret.client = getDelegatedAddress(address(this)); - // Set a dummy provider. The provider that picks up this deal will need to set its own address. - ret.provider = FilAddresses.fromActorID(0); - ret.label = deal.label; - ret.start_epoch = deal.start_epoch; - ret.end_epoch = deal.end_epoch; - ret.storage_price_per_epoch = uintToBigInt( - deal.storage_price_per_epoch - ); - ret.provider_collateral = uintToBigInt(deal.provider_collateral); - ret.client_collateral = uintToBigInt(deal.client_collateral); - - return serializeDealProposal(ret); - } - - // TODO fix in filecoin-solidity. They're using the wrong hex value. - function getDelegatedAddress( - address addr - ) internal pure returns (CommonTypes.FilAddress memory) { - return CommonTypes.FilAddress(abi.encodePacked(hex"040a", addr)); - } - - function getExtraParams( - bytes32 proposalId - ) public view returns (bytes memory extra_params) { - DealRequest memory deal = getDealRequest(proposalId); - return serializeExtraParamsV1(deal.extra_params); - } - - - // authenticateMessage is the callback from the market actor into the contract - // as part of PublishStorageDeals. This message holds the deal proposal from the - // miner, which needs to be validated by the contract in accordance with the - // deal requests made and the contract's own policies - // @params - cbor byte array of AccountTypes.AuthenticateMessageParams - function authenticateMessage(bytes memory params) internal view { - require( - msg.sender == MARKET_ACTOR_ETH_ADDRESS, - "msg.sender needs to be market actor f05" - ); - - AccountTypes.AuthenticateMessageParams memory amp = params - .deserializeAuthenticateMessageParams(); - MarketTypes.DealProposal memory proposal = deserializeDealProposal( - amp.message - ); - - bytes memory pieceCid = proposal.piece_cid.data; - require(pieceRequests[pieceCid].valid, "piece cid must be added before authorizing"); - require(!pieceProviders[pieceCid].valid, "deal failed policy check: provider already claimed this cid"); - - DealRequest memory req = getDealRequest(pieceRequests[pieceCid].requestId); - require(proposal.verified_deal == req.verified_deal, "verified_deal param mismatch"); - require(bigIntToUint(proposal.storage_price_per_epoch) <= req.storage_price_per_epoch, "storage price greater than request amount"); - require(bigIntToUint(proposal.client_collateral) <= req.client_collateral, "client collateral greater than request amount"); - - } - - // dealNotify is the callback from the market actor into the contract at the end - // of PublishStorageDeals. This message holds the previously approved deal proposal - // and the associated dealID. The dealID is stored as part of the contract state - // and the completion of this call marks the success of PublishStorageDeals - // @params - cbor byte array of MarketDealNotifyParams - function dealNotify(bytes memory params) internal { - require( - msg.sender == MARKET_ACTOR_ETH_ADDRESS, - "msg.sender needs to be market actor f05" - ); - - MarketDealNotifyParams memory mdnp = deserializeMarketDealNotifyParams( - params - ); - MarketTypes.DealProposal memory proposal = deserializeDealProposal( - mdnp.dealProposal - ); - - // These checks prevent race conditions between the authenticateMessage and - // marketDealNotify calls where someone could have 2 of the same deal proposals - // within the same PSD msg, which would then get validated by authenticateMessage - // However, only one of those deals should be allowed - require( - pieceRequests[proposal.piece_cid.data].valid, - "piece cid must be added before authorizing" - ); - require( - !pieceProviders[proposal.piece_cid.data].valid, - "deal failed policy check: provider already claimed this cid" - ); - - pieceProviders[proposal.piece_cid.data] = ProviderSet( - proposal.provider.data, - true - ); - pieceDeals[proposal.piece_cid.data] = mdnp.dealId; - pieceStatus[proposal.piece_cid.data] = Status.DealPublished; - } + pieceRequests[deal.piece_cid] = RequestId(id, true); + pieceStatus[deal.piece_cid] = Status.RequestSubmitted; + // writes the proposal metadata to the event log + emit DealProposalCreate( + id, + deal.piece_size, + deal.verified_deal, + deal.storage_price_per_epoch + ); - // This function can be called/smartly polled to retrieve the deal activation status - // associated with provided pieceCid and update the contract state based on that - // info - // @pieceCid - byte representation of pieceCid - function updateActivationStatus(bytes memory pieceCid) public { - require(pieceDeals[pieceCid] > 0, "no deal published for this piece cid"); + return id; + } + + // helper function to get deal request based from id + function getDealRequest( + bytes32 requestId + ) internal view returns (DealRequest memory) { + RequestIdx memory ri = dealRequestIdx[requestId]; + require(ri.valid, "proposalId not available"); + return dealRequests[ri.idx]; + } + + // Returns a CBOR-encoded DealProposal. + function getDealProposal( + bytes32 proposalId + ) public view returns (bytes memory) { + DealRequest memory deal = getDealRequest(proposalId); + + MarketTypes.DealProposal memory ret; + ret.piece_cid = CommonTypes.Cid(deal.piece_cid); + ret.piece_size = deal.piece_size; + ret.verified_deal = deal.verified_deal; + ret.client = FilAddresses.fromEthAddress(address(this)); + // Set a dummy provider. The provider that picks up this deal will need to set its own address. + ret.provider = FilAddresses.fromActorID(0); + ret.label = CommonTypes.DealLabel(bytes(deal.label), true); + ret.start_epoch = CommonTypes.ChainEpoch.wrap(deal.start_epoch); + ret.end_epoch = CommonTypes.ChainEpoch.wrap(deal.end_epoch); + ret.storage_price_per_epoch = BigInts.fromUint256( + deal.storage_price_per_epoch + ); + ret.provider_collateral = BigInts.fromUint256(deal.provider_collateral); + ret.client_collateral = BigInts.fromUint256(deal.client_collateral); + + return MarketCBOR.serializeDealProposal(ret); + } + + function getExtraParams( + bytes32 proposalId + ) public view returns (bytes memory extra_params) { + DealRequest memory deal = getDealRequest(proposalId); + return serializeExtraParamsV1(deal.extra_params); + } + + + // authenticateMessage is the callback from the market actor into the contract + // as part of PublishStorageDeals. This message holds the deal proposal from the + // miner, which needs to be validated by the contract in accordance with the + // deal requests made and the contract's own policies + // @params - cbor byte array of AccountTypes.AuthenticateMessageParams + function authenticateMessage(bytes memory params) internal view { + require( + msg.sender == MARKET_ACTOR_ETH_ADDRESS, + "msg.sender needs to be market actor f05" + ); - MarketTypes.GetDealActivationReturn memory ret = MarketAPI.getDealActivation(pieceDeals[pieceCid]); - if (ret.terminated > 0) { - pieceStatus[pieceCid] = Status.DealTerminated; - } else if (ret.activated > 0) { - pieceStatus[pieceCid] = Status.DealActivated; - } - } + AccountTypes.AuthenticateMessageParams memory amp = params + .deserializeAuthenticateMessageParams(); + MarketTypes.DealProposal memory proposal = MarketCBOR.deserializeDealProposal( + amp.message + ); - // addBalance funds the builtin storage market actor's escrow - // with funds from the contract's own balance - // @value - amount to be added in escrow in attoFIL - function addBalance(uint256 value) public { - require(msg.sender == owner); - MarketAPI.addBalance(getDelegatedAddress(address(this)), value); - } + bytes memory pieceCid = proposal.piece_cid.data; + require(pieceRequests[pieceCid].valid, "piece cid must be added before authorizing"); + require(!pieceProviders[pieceCid].valid, "deal failed policy check: provider already claimed this cid"); + + DealRequest memory req = getDealRequest(pieceRequests[pieceCid].requestId); + require(proposal.verified_deal == req.verified_deal, "verified_deal param mismatch"); + (uint256 proposalStoragePricePerEpoch, bool storagePriceConverted) = BigInts.toUint256(proposal.storage_price_per_epoch); + (uint256 proposalClientCollateral, bool collateralConverted) = BigInts.toUint256(proposal.storage_price_per_epoch); + require(storagePriceConverted && collateralConverted, "Issues converting uint256 to BigInt, may not have accurate values"); + require(proposalStoragePricePerEpoch <= req.storage_price_per_epoch, "storage price greater than request amount"); + require(proposalClientCollateral <= req.client_collateral, "client collateral greater than request amount"); + + } + + // dealNotify is the callback from the market actor into the contract at the end + // of PublishStorageDeals. This message holds the previously approved deal proposal + // and the associated dealID. The dealID is stored as part of the contract state + // and the completion of this call marks the success of PublishStorageDeals + // @params - cbor byte array of MarketDealNotifyParams + function dealNotify(bytes memory params) internal { + require( + msg.sender == MARKET_ACTOR_ETH_ADDRESS, + "msg.sender needs to be market actor f05" + ); - // TODO: Below 2 funcs need to go to filecoin.sol - function uintToBigInt( - uint256 value - ) internal view returns (CommonTypes.BigInt memory) { - BigNumbers.BigNumber memory bigNumVal = BigNumbers.init(value, false); - CommonTypes.BigInt memory bigIntVal = CommonTypes.BigInt( - bigNumVal.val, - bigNumVal.neg - ); - return bigIntVal; - } + MarketTypes.MarketDealNotifyParams memory mdnp = MarketCBOR.deserializeMarketDealNotifyParams( + params + ); + MarketTypes.DealProposal memory proposal = MarketCBOR.deserializeDealProposal( + mdnp.dealProposal + ); - function bigIntToUint( - CommonTypes.BigInt memory bigInt - ) internal view returns (uint256) { - BigNumbers.BigNumber memory bigNumUint = BigNumbers.init( - bigInt.val, - bigInt.neg - ); - uint256 bigNumExtractedUint = uint256(bytes32(bigNumUint.val)); - return bigNumExtractedUint; - } + // These checks prevent race conditions between the authenticateMessage and + // marketDealNotify calls where someone could have 2 of the same deal proposals + // within the same PSD msg, which would then get validated by authenticateMessage + // However, only one of those deals should be allowed + require( + pieceRequests[proposal.piece_cid.data].valid, + "piece cid must be added before authorizing" + ); + require( + !pieceProviders[proposal.piece_cid.data].valid, + "deal failed policy check: provider already claimed this cid" + ); - // This function attempts to withdraw the specified amount from the contract addr's escrow balance - // If less than the given amount is available, the full escrow balance is withdrawn - // @client - Eth address where the balance is withdrawn to. This can be the contract address or an external address - // @value - amount to be withdrawn in escrow in attoFIL - function withdrawBalance( - address client, - uint256 value - ) public returns (uint) { - require(msg.sender == owner); - - MarketTypes.WithdrawBalanceParams memory params = MarketTypes - .WithdrawBalanceParams( - getDelegatedAddress(client), - uintToBigInt(value) - ); - CommonTypes.BigInt memory ret = MarketAPI.withdrawBalance(params); - - return bigIntToUint(ret); + pieceProviders[proposal.piece_cid.data] = ProviderSet( + proposal.provider.data, + true + ); + pieceDeals[proposal.piece_cid.data] = mdnp.dealId; + pieceStatus[proposal.piece_cid.data] = Status.DealPublished; + } + + + // This function can be called/smartly polled to retrieve the deal activation status + // associated with provided pieceCid and update the contract state based on that + // info + // @pieceCid - byte representation of pieceCid + function updateActivationStatus(bytes memory pieceCid) public { + require(pieceDeals[pieceCid] > 0, "no deal published for this piece cid"); + + MarketTypes.GetDealActivationReturn memory ret = MarketAPI.getDealActivation(pieceDeals[pieceCid]); + if (CommonTypes.ChainEpoch.unwrap(ret.terminated) > 0) { + pieceStatus[pieceCid] = Status.DealTerminated; + } else if (CommonTypes.ChainEpoch.unwrap(ret.activated) > 0) { + pieceStatus[pieceCid] = Status.DealActivated; } + } + + // addBalance funds the builtin storage market actor's escrow + // with funds from the contract's own balance + // @value - amount to be added in escrow in attoFIL + function addBalance(uint256 value) public { + require(msg.sender == owner); + MarketAPI.addBalance(FilAddresses.fromEthAddress(address(this)), value); + } + + // This function attempts to withdraw the specified amount from the contract addr's escrow balance + // If less than the given amount is available, the full escrow balance is withdrawn + // @client - Eth address where the balance is withdrawn to. This can be the contract address or an external address + // @value - amount to be withdrawn in escrow in attoFIL + function withdrawBalance( + address client, + uint256 value + ) public returns (uint) { + require(msg.sender == owner); + + MarketTypes.WithdrawBalanceParams memory params = MarketTypes + .WithdrawBalanceParams( + FilAddresses.fromEthAddress(client), + BigInts.fromUint256(value) + ); + CommonTypes.BigInt memory ret = MarketAPI.withdrawBalance(params); - function receiveDataCap(bytes memory params) internal { - require( - msg.sender == DATACAP_ACTOR_ETH_ADDRESS, - "msg.sender needs to be datacap actor f07" - ); - emit ReceivedDataCap("DataCap Received!"); - // Add get datacap balance api and store datacap amount - } + (uint256 withdrawBalanceAmount, bool withdrawBalanceConverted) = BigInts.toUint256(ret); + require(withdrawBalanceConverted, "Problems converting withdraw balance into Big Int, may cause an overflow"); + return withdrawBalanceAmount; + } - // handle_filecoin_method is the universal entry point for any evm based - // actor for a call coming from a builtin filecoin actor - // @method - FRC42 method number for the specific method hook - // @params - CBOR encoded byte array params - function handle_filecoin_method( - uint64 method, - uint64, - bytes memory params - ) public returns (uint32, uint64, bytes memory) { - bytes memory ret; - uint64 codec; - // dispatch methods - if (method == AUTHENTICATE_MESSAGE_METHOD_NUM) { - authenticateMessage(params); - // If we haven't reverted, we should return a CBOR true to indicate that verification passed. - CBOR.CBORBuffer memory buf = CBOR.create(1); - buf.writeBool(true); - ret = buf.data(); - codec = Misc.CBOR_CODEC; - } else if (method == MARKET_NOTIFY_DEAL_METHOD_NUM) { - dealNotify(params); - } else if (method == DATACAP_RECEIVER_HOOK_METHOD_NUM) { - receiveDataCap(params); - } else { - revert("the filecoin method that was called is not handled"); - } - return (0, codec, ret); + function receiveDataCap(bytes memory params) internal { + require( + msg.sender == DATACAP_ACTOR_ETH_ADDRESS, + "msg.sender needs to be datacap actor f07" + ); + emit ReceivedDataCap("DataCap Received!"); + // Add get datacap balance api and store datacap amount + } + + + // handle_filecoin_method is the universal entry point for any evm based + // actor for a call coming from a builtin filecoin actor + // @method - FRC42 method number for the specific method hook + // @params - CBOR encoded byte array params + function handle_filecoin_method( + uint64 method, + uint64, + bytes memory params + ) public returns (uint32, uint64, bytes memory) { + bytes memory ret; + uint64 codec; + // dispatch methods + if (method == AUTHENTICATE_MESSAGE_METHOD_NUM) { + authenticateMessage(params); + // If we haven't reverted, we should return a CBOR true to indicate that verification passed. + CBOR.CBORBuffer memory buf = CBOR.create(1); + buf.writeBool(true); + ret = buf.data(); + codec = Misc.CBOR_CODEC; + } else if (method == MARKET_NOTIFY_DEAL_METHOD_NUM) { + dealNotify(params); + } else if (method == DATACAP_RECEIVER_HOOK_METHOD_NUM) { + receiveDataCap(params); + } else { + revert("the filecoin method that was called is not handled"); } -} \ No newline at end of file + return (0, codec, ret); + } +} diff --git a/contracts/basic-deal-client/Types.sol b/contracts/basic-deal-client/Types.sol deleted file mode 100644 index 9c17ff16..00000000 --- a/contracts/basic-deal-client/Types.sol +++ /dev/null @@ -1,95 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.17; - -import { MarketTypes } from "@zondax/filecoin-solidity/contracts/v0.8/types/MarketTypes.sol"; -import { CBOR } from "@zondax/filecoin-solidity/contracts/v0.8/external/CBOR.sol"; -import { FilecoinCBOR } from "@zondax/filecoin-solidity/contracts/v0.8/cbor/FilecoinCbor.sol"; -import { CBORDecoder } from "@zondax/filecoin-solidity/contracts/v0.8/utils/CborDecode.sol"; -import { CommonTypes } from "@zondax/filecoin-solidity/contracts/v0.8/types/CommonTypes.sol"; -import { BigIntCBOR } from "@zondax/filecoin-solidity/contracts/v0.8/cbor/BigIntCbor.sol"; - -using CBOR for CBOR.CBORBuffer; -using CBORDecoder for bytes; -using BigIntCBOR for CommonTypes.BigInt; -using BigIntCBOR for bytes; -using FilecoinCBOR for CBOR.CBORBuffer; - -struct MarketDealNotifyParams { - bytes dealProposal; - uint64 dealId; -} - -function deserializeMarketDealNotifyParams(bytes memory rawResp) pure returns (MarketDealNotifyParams memory ret) { - uint byteIdx = 0; - uint len; - - (len, byteIdx) = rawResp.readFixedArray(byteIdx); - assert(len == 2); - - (ret.dealProposal, byteIdx) = rawResp.readBytes(byteIdx); - (ret.dealId, byteIdx) = rawResp.readUInt64(byteIdx); -} - -function serializeDealProposal(MarketTypes.DealProposal memory dealProposal) pure returns (bytes memory) { - // FIXME what should the max length be on the buffer? - CBOR.CBORBuffer memory buf = CBOR.create(64); - - buf.startFixedArray(11); - - // TODO writeCid is buggy because it does not set the expected 0x00 prefix as per - // https://ipld.io/specs/codecs/dag-cbor/spec/#links. We do it here, and will submit - // a bugfix upstream. - buf.writeCid(bytes.concat(hex'00', dealProposal.piece_cid.data)); - buf.writeUInt64(dealProposal.piece_size); - buf.writeBool(dealProposal.verified_deal); - buf.writeBytes(dealProposal.client.data); - buf.writeBytes(dealProposal.provider.data); - buf.writeString(dealProposal.label); - buf.writeInt64(dealProposal.start_epoch); - buf.writeInt64(dealProposal.end_epoch); - buf.writeBytes(dealProposal.storage_price_per_epoch.serializeBigInt()); - buf.writeBytes(dealProposal.provider_collateral.serializeBigInt()); - buf.writeBytes(dealProposal.client_collateral.serializeBigInt()); - - return buf.data(); -} - -function deserializeDealProposal(bytes memory rawResp) pure returns (MarketTypes.DealProposal memory ret) { - uint byteIdx = 0; - uint len; - - (len, byteIdx) = rawResp.readFixedArray(byteIdx); - assert(len == 11); - - bytes memory piece_cid; - (piece_cid, byteIdx) = rawResp.readBytes(byteIdx); - assert(piece_cid[0] == 0x00); - - // Pop off the first byte, which corresponds to the historical multibase 0x00 byte. - // https://ipld.io/specs/codecs/dag-cbor/spec/#links - ret.piece_cid.data = new bytes(piece_cid.length - 1); - for (uint256 i = 1; i < piece_cid.length; i++) { - ret.piece_cid.data[i-1] = piece_cid[i]; - } - - (ret.piece_size, byteIdx) = rawResp.readUInt64(byteIdx); - (ret.verified_deal, byteIdx) = rawResp.readBool(byteIdx); - (ret.client.data, byteIdx) = rawResp.readBytes(byteIdx); - (ret.provider.data, byteIdx) = rawResp.readBytes(byteIdx); - - (ret.label, byteIdx) = rawResp.readString(byteIdx); - (ret.start_epoch, byteIdx) = rawResp.readInt64(byteIdx); - (ret.end_epoch, byteIdx) = rawResp.readInt64(byteIdx); - - bytes memory storage_price_per_epoch_bytes; - (storage_price_per_epoch_bytes, byteIdx) = rawResp.readBytes(byteIdx); - ret.storage_price_per_epoch = storage_price_per_epoch_bytes.deserializeBigInt(); - - bytes memory provider_collateral_bytes; - (provider_collateral_bytes, byteIdx) = rawResp.readBytes(byteIdx); - ret.provider_collateral = provider_collateral_bytes.deserializeBigInt(); - - bytes memory client_collateral_bytes; - (client_collateral_bytes, byteIdx) = rawResp.readBytes(byteIdx); - ret.client_collateral = client_collateral_bytes.deserializeBigInt(); -} diff --git a/contracts/filecoin-api-examples/FilecoinMarketConsumer.sol b/contracts/filecoin-api-examples/FilecoinMarketConsumer.sol index a9f6cdcb..e0ab43d0 100644 --- a/contracts/filecoin-api-examples/FilecoinMarketConsumer.sol +++ b/contracts/filecoin-api-examples/FilecoinMarketConsumer.sol @@ -6,7 +6,7 @@ import {MarketTypes} from "@zondax/filecoin-solidity/contracts/v0.8/types/Market import {CommonTypes} from "@zondax/filecoin-solidity/contracts/v0.8/types/CommonTypes.sol"; contract FilecoinMarketConsumer { - string public dealLabel; + CommonTypes.DealLabel public dealLabel; uint64 public dealClientActorId; uint64 public dealProviderActorId; bool public isDealActivated; @@ -69,4 +69,4 @@ contract FilecoinMarketConsumer { function storeDealActivationStatus(uint64 dealId) public { activationStatus = MarketAPI.getDealActivation(dealId); } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 8b063a43..49621070 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@nomicfoundation/hardhat-toolbox": "^2.0.0", "@openzeppelin/contracts": "^4.8.0", "@typechain/hardhat": "^6.1.2", - "@zondax/filecoin-solidity": "^2.0.0-beta.1", + "@zondax/filecoin-solidity": "^4.0.2", "babel-eslint": "^10.1.0", "dotenv": "^10.0.0", "hardhat-deploy-ethers": "^0.3.0-beta.13", diff --git a/yarn.lock b/yarn.lock index a89bb0a0..3df3823e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -70,6 +70,13 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== +"@babel/runtime@^7.4.4": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/template@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" @@ -116,7 +123,27 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@ensdomains/ens@^0.4.4": +"@ensdomains/address-encoder@^0.1.7": + version "0.1.9" + resolved "https://registry.yarnpkg.com/@ensdomains/address-encoder/-/address-encoder-0.1.9.tgz#f948c485443d9ef7ed2c0c4790e931c33334d02d" + integrity sha512-E2d2gP4uxJQnDu2Kfg1tHNspefzbLT8Tyjrm5sEuim32UkU2sm5xL4VXtgc2X33fmPEw9+jUMpGs4veMbf+PYg== + dependencies: + bech32 "^1.1.3" + blakejs "^1.1.0" + bn.js "^4.11.8" + bs58 "^4.0.1" + crypto-addr-codec "^0.1.7" + nano-base32 "^1.0.1" + ripemd160 "^2.0.2" + +"@ensdomains/buffer@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@ensdomains/buffer/-/buffer-0.1.0.tgz#9f22d3b5561e4d9cbb8b54f4124b583b972fb6e1" + integrity sha512-Zn0ZV1t6FTsdxt7yI761WRYht8kw5L0r1i3Z+MGUTh011lVBpcluaVonbp2DrOhM2chRbrtrXfVB5IBM44U3cQ== + dependencies: + "@nomiclabs/hardhat-truffle5" "^2.0.0" + +"@ensdomains/ens@0.4.5", "@ensdomains/ens@^0.4.4": version "0.4.5" resolved "https://registry.yarnpkg.com/@ensdomains/ens/-/ens-0.4.5.tgz#e0aebc005afdc066447c6e22feb4eda89a5edbfc" integrity sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw== @@ -127,7 +154,21 @@ testrpc "0.0.1" web3-utils "^1.0.0-beta.31" -"@ensdomains/resolver@^0.2.4": +"@ensdomains/ensjs@^2.0.1": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@ensdomains/ensjs/-/ensjs-2.1.0.tgz#0a7296c1f3d735ef019320d863a7846a0760c460" + integrity sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog== + dependencies: + "@babel/runtime" "^7.4.4" + "@ensdomains/address-encoder" "^0.1.7" + "@ensdomains/ens" "0.4.5" + "@ensdomains/resolver" "0.2.4" + content-hash "^2.5.2" + eth-ens-namehash "^2.0.8" + ethers "^5.0.13" + js-sha3 "^0.8.0" + +"@ensdomains/resolver@0.2.4", "@ensdomains/resolver@^0.2.4": version "0.2.4" resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== @@ -915,11 +956,38 @@ table "^6.8.0" undici "^5.14.0" +"@nomiclabs/hardhat-truffle5@^2.0.0": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.7.tgz#7519eadd2c6c460c2addc3d4d6efda7a8883361e" + integrity sha512-Pw8451IUZp1bTp0QqCHCYfCHs66sCnyxPcaorapu9mfOV9xnZsVaFdtutnhNEiXdiZwbed7LFKpRsde4BjFwig== + dependencies: + "@nomiclabs/truffle-contract" "^4.2.23" + "@types/chai" "^4.2.0" + chai "^4.2.0" + ethereumjs-util "^7.1.4" + fs-extra "^7.0.1" + "@nomiclabs/hardhat-waffle@^2.0.1": version "2.0.5" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.5.tgz#97c217f1db795395c04404291937edb528f3f218" integrity sha512-U1RH9OQ1mWYQfb+moX5aTgGjpVVlOcpiFI47wwnaGG4kLhcTy90cNiapoqZenxcRAITVbr0/+QSduINL5EsUIQ== +"@nomiclabs/truffle-contract@^4.2.23": + version "4.5.10" + resolved "https://registry.yarnpkg.com/@nomiclabs/truffle-contract/-/truffle-contract-4.5.10.tgz#52adcca1068647e1c2b44bf0e6a89fc4ad7f9213" + integrity sha512-nF/6InFV+0hUvutyFgsdOMCoYlr//2fJbRER4itxYtQtc4/O1biTwZIKRu+5l2J5Sq6LU2WX7vZHtDgQdhWxIQ== + dependencies: + "@ensdomains/ensjs" "^2.0.1" + "@truffle/blockchain-utils" "^0.1.3" + "@truffle/contract-schema" "^3.4.7" + "@truffle/debug-utils" "^6.0.22" + "@truffle/error" "^0.1.0" + "@truffle/interface-adapter" "^0.5.16" + bignumber.js "^7.2.1" + ethereum-ens "^0.8.0" + ethers "^4.0.0-beta.1" + source-map-support "^0.5.19" + "@openzeppelin/contracts@^4.8.0": version "4.8.2" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.8.2.tgz#d815ade0027b50beb9bcca67143c6bcc3e3923d6" @@ -1102,11 +1170,83 @@ dependencies: defer-to-connect "^2.0.1" -"@truffle/error@^0.1.1": +"@truffle/abi-utils@^0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.3.9.tgz#c476f5cfe01072b513b3e93fd7bea05cf7bd9d96" + integrity sha512-G5dqgwRHx5zwlXjz3QT8OJVfB2cOqWwD6DwKso0KttUt/zejhCjnkKq72rSgyeLMkz7wBB9ERLOsupLBILM8MA== + dependencies: + change-case "3.0.2" + fast-check "3.1.1" + web3-utils "1.8.2" + +"@truffle/blockchain-utils@^0.1.3": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.1.7.tgz#cf7923a3ae5b591ae4c2a5ee45994a310ccaf1ee" + integrity sha512-1nibqGjEHC7KAyDThEFvbm2+EO8zAHee/VjCtxkYBE3ySwP50joh0QCEBjy7K/9z+icpMoDucfxmgaKToBFUgQ== + +"@truffle/codec@^0.14.16": + version "0.14.16" + resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.14.16.tgz#eebfb169e46709d6cee53f069a53fc1dff410eaa" + integrity sha512-a9UY3n/FnkKN3Q4zOuMFOOcLWb80mdknj+voim4vvXYtJm1aAZQZE5sG9aLnMBTl4TiGLzUtfNDVYY7WgWgDag== + dependencies: + "@truffle/abi-utils" "^0.3.9" + "@truffle/compile-common" "^0.9.4" + big.js "^6.0.3" + bn.js "^5.1.3" + cbor "^5.2.0" + debug "^4.3.1" + lodash "^4.17.21" + semver "7.3.7" + utf8 "^3.0.0" + web3-utils "1.8.2" + +"@truffle/compile-common@^0.9.4": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.9.4.tgz#064208cda70491692b538f717809bb904a122c20" + integrity sha512-mnqJB/hLiPHNf+WKwt/2MH6lv34xSG/SFCib7+ckAklutUqVLeFo8EwQxinuHNkU7LY0C+YgZXhK1WTCO5YRJQ== + dependencies: + "@truffle/error" "^0.2.0" + colors "1.4.0" + +"@truffle/contract-schema@^3.4.7": + version "3.4.13" + resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.13.tgz#48447673f29380830f5821e8139ceefbbd545aac" + integrity sha512-emG7upuryYFrsPDbHqeASPWXL824M1tinhQwSPG0phSoa3g+RX9fUNNN/VPmF3tSkXLWUMhRnb7ehxnaCuRbZg== + dependencies: + ajv "^6.10.0" + debug "^4.3.1" + +"@truffle/debug-utils@^6.0.22": + version "6.0.47" + resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.47.tgz#975f95be8d8a8eb11b35c7a8255b0a12ceaa51ba" + integrity sha512-bUjdzLPdEKtoUCDzaXkrOoi+PbyAJlMBzGequBK8tirT7xL9bCP2Pd/WxvnmRd7AnfroxGNvXwVXWTItW5SMWQ== + dependencies: + "@truffle/codec" "^0.14.16" + "@trufflesuite/chromafi" "^3.0.0" + bn.js "^5.1.3" + chalk "^2.4.2" + debug "^4.3.1" + highlightjs-solidity "^2.0.6" + +"@truffle/error@^0.1.0", "@truffle/error@^0.1.1": version "0.1.1" resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.1.1.tgz#e52026ac8ca7180d83443dca73c03e07ace2a301" integrity sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA== +"@truffle/error@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.2.0.tgz#65de6f03f5c041f883cc87677eecf8231428f1ab" + integrity sha512-Fe0/z4WWb7IP2gBnv3l6zqP87Y0kSMs7oiSLakKJq17q3GUunrHSdioKuNspdggxkXIBhEQLhi8C+LJdwmHKWQ== + +"@truffle/interface-adapter@^0.5.16": + version "0.5.31" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.31.tgz#9e62e9ed1c1c07d50d9e1dcffd6ef24efc1230e7" + integrity sha512-f5mOqbptQUUgHhBrBvWie4EUAUqHLN/wCBjFoP2N/QNcyvwGfdC3TSck9kjwIIFIgYgQQyAxQDGBQcjHryvxzg== + dependencies: + bn.js "^5.1.3" + ethers "^4.0.32" + web3 "1.8.2" + "@truffle/interface-adapter@^0.5.25": version "0.5.29" resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.29.tgz#e75e5b5dd120e699774bbea6465c6d1d7c75056e" @@ -1126,6 +1266,20 @@ debug "^4.3.1" web3 "1.7.4" +"@trufflesuite/chromafi@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz#f6956408c1af6a38a6ed1657783ce59504a1eb8b" + integrity sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ== + dependencies: + camelcase "^4.1.0" + chalk "^2.3.2" + cheerio "^1.0.0-rc.2" + detect-indent "^5.0.0" + highlight.js "^10.4.1" + lodash.merge "^4.6.2" + strip-ansi "^4.0.0" + strip-indent "^2.0.0" + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -1172,7 +1326,7 @@ dependencies: "@types/node" "*" -"@types/bn.js@^5.1.0": +"@types/bn.js@^5.1.0", "@types/bn.js@^5.1.1": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== @@ -1196,7 +1350,7 @@ dependencies: "@types/chai" "*" -"@types/chai@*", "@types/chai@^4.3.4": +"@types/chai@*", "@types/chai@^4.2.0", "@types/chai@^4.3.4": version "4.3.4" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== @@ -1328,10 +1482,18 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -"@zondax/filecoin-solidity@^2.0.0-beta.1": - version "2.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@zondax/filecoin-solidity/-/filecoin-solidity-2.0.0-beta.1.tgz#6fda576add17fdaef9f2294114392f1e3093b2a9" - integrity sha512-V2KsiDD/5PVcmqEWn7JimcpyZale/74duZFTZpYTGw6bCee9hgT3oChU5excL1WncVr5U2Ljg/YAeTlTmvY8fA== +"@zondax/filecoin-solidity@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@zondax/filecoin-solidity/-/filecoin-solidity-4.0.2.tgz#8ecd7368c0cb948a46ee75742d3a16c7f6c787e0" + integrity sha512-mHMcuw0rqZPK4ligHEjixDALLNCtVMTJeVh+MAGArPWFOzBKt3vFYgQZMsJpi8bLiFeQiEBGb33KMU8mmyqp/A== + dependencies: + "@zondax/solidity-bignumber" "^0.1.0" + solidity-cborutils "^2.0.0" + +"@zondax/solidity-bignumber@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@zondax/solidity-bignumber/-/solidity-bignumber-0.1.0.tgz#4885ef8751b5cc0ee92639545bdfbec19907dde2" + integrity sha512-DdY78jd6syZHJSl7B9mkDo5hso405hYuug1FHkjCO3WSS6vz1kAmi6RWQdTdrZoIZ+4pCXcRUnylBQtM+gpQKA== abbrev@1: version "1.1.1" @@ -1449,7 +1611,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.12.3, ajv@^6.12.6: +ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2320,11 +2482,21 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bech32@1.1.4: +bech32@1.1.4, bech32@^1.1.3: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +big-integer@1.6.36: + version "1.6.36" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36" + integrity sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg== + +big.js@^6.0.3: + version "6.2.1" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-6.2.1.tgz#7205ce763efb17c2e41f26f121c420c6a7c2744f" + integrity sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ== + bigint-crypto-utils@^3.0.23: version "3.1.8" resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz#e2e0f40cf45488f9d7f0e32ff84152aa73819d5d" @@ -2337,7 +2509,12 @@ bigint-mod-arith@^3.1.0: resolved "https://registry.yarnpkg.com/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz#658e416bc593a463d97b59766226d0a3021a76b1" integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== -bignumber.js@^9.0.0: +bignumber.js@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== + +bignumber.js@^9.0.0, bignumber.js@^9.0.1: version "9.1.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== @@ -2368,7 +2545,7 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bluebird@^3.5.0, bluebird@^3.5.2: +bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -2424,6 +2601,11 @@ body-parser@^1.16.0: type-is "~1.6.18" unpipe "1.0.0" +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + borc@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/borc/-/borc-3.0.0.tgz#49ada1be84de86f57bb1bb89789f34c186dfa4fe" @@ -2557,7 +2739,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -bs58@^4.0.0: +bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== @@ -2602,6 +2784,14 @@ buffer-xor@^2.0.1: dependencies: safe-buffer "^5.1.1" +buffer@6.0.3, buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -2610,14 +2800,6 @@ buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - bufferutil@^4.0.1: version "4.0.7" resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" @@ -2724,11 +2906,24 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== + camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -2754,6 +2949,14 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== +cbor@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" + integrity sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A== + dependencies: + bignumber.js "^9.0.1" + nofilter "^1.0.4" + cbor@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-8.1.0.tgz#cfc56437e770b73417a2ecbfc9caf6b771af60d5" @@ -2768,7 +2971,7 @@ chai-as-promised@^7.1.1: dependencies: check-error "^1.0.2" -chai@^4.3.7: +chai@^4.2.0, chai@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== @@ -2792,7 +2995,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2809,6 +3012,30 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037" + integrity sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA== + dependencies: + camel-case "^3.0.0" + constant-case "^2.0.0" + dot-case "^2.1.0" + header-case "^1.0.0" + is-lower-case "^1.1.0" + is-upper-case "^1.1.0" + lower-case "^1.1.1" + lower-case-first "^1.0.0" + no-case "^2.3.2" + param-case "^2.1.0" + pascal-case "^2.0.0" + path-case "^2.1.0" + sentence-case "^2.1.0" + snake-case "^2.1.0" + swap-case "^1.1.0" + title-case "^2.1.0" + upper-case "^1.1.1" + upper-case-first "^1.1.0" + "charenc@>= 0.0.1": version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" @@ -2826,6 +3053,31 @@ checkpoint-store@^1.1.0: dependencies: functional-red-black-tree "^1.0.1" +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + chokidar@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" @@ -3082,6 +3334,14 @@ concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" +constant-case@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + integrity sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ== + dependencies: + snake-case "^2.1.0" + upper-case "^1.1.1" + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -3243,6 +3503,19 @@ cross-spawn@^6.0.5: resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== +crypto-addr-codec@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz#e16cea892730178fe25a38f6d15b680cab3124ae" + integrity sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg== + dependencies: + base-x "^3.0.8" + big-integer "1.6.36" + blakejs "^1.1.0" + bs58 "^4.0.1" + ripemd160-min "0.0.6" + safe-buffer "^5.2.0" + sha3 "^2.1.1" + crypto-browserify@3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -3260,6 +3533,22 @@ crypto-browserify@3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -3451,6 +3740,11 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== + detect-port@^1.3.0: version "1.5.1" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" @@ -3490,11 +3784,48 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + dom-walk@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" + +dot-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee" + integrity sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug== + dependencies: + no-case "^2.2.0" + dotenv@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -3595,6 +3926,11 @@ enquirer@^2.3.0, enquirer@^2.3.6: dependencies: ansi-colors "^4.1.1" +entities@^4.2.0, entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== + env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -3782,7 +4118,7 @@ eth-block-tracker@^3.0.0: pify "^2.3.0" tape "^4.6.3" -eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.8: +eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.0, eth-ens-namehash@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== @@ -3963,6 +4299,18 @@ ethereum-cryptography@^1.0.3: "@scure/bip32" "1.1.5" "@scure/bip39" "1.1.1" +ethereum-ens@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/ethereum-ens/-/ethereum-ens-0.8.0.tgz#6d0f79acaa61fdbc87d2821779c4e550243d4c57" + integrity sha512-a8cBTF4AWw1Q1Y37V1LSCS9pRY4Mh3f8vCg5cbXCCEJ3eno1hbI/+Ccv9SZLISYpqQhaglP3Bxb/34lS4Qf7Bg== + dependencies: + bluebird "^3.4.7" + eth-ens-namehash "^2.0.0" + js-sha3 "^0.5.7" + pako "^1.0.4" + underscore "^1.8.3" + web3 "^1.0.0-beta.34" + ethereum-waffle@^3.4.0: version "3.4.4" resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz#1378b72040697857b7f5e8f473ca8f97a37b5840" @@ -4180,7 +4528,7 @@ ethereumjs-wallet@0.6.5: utf8 "^3.0.0" uuid "^3.3.2" -ethers@^4.0.32, ethers@^4.0.40: +ethers@^4.0.0-beta.1, ethers@^4.0.32, ethers@^4.0.40: version "4.0.49" resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.49.tgz#0eb0e9161a0c8b4761be547396bbe2fb121a8894" integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== @@ -4195,7 +4543,7 @@ ethers@^4.0.32, ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^5.0.1, ethers@^5.0.2, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.2: +ethers@^5.0.1, ethers@^5.0.13, ethers@^5.0.2, ethers@^5.5.1, ethers@^5.5.2, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -4378,6 +4726,13 @@ fake-merkle-patricia-tree@^1.0.1: dependencies: checkpoint-store "^1.1.0" +fast-check@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-check/-/fast-check-3.1.1.tgz#72c5ae7022a4e86504762e773adfb8a5b0b01252" + integrity sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA== + dependencies: + pure-rand "^5.0.1" + fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -5278,11 +5633,29 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +header-case@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d" + integrity sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ== + dependencies: + no-case "^2.2.0" + upper-case "^1.1.3" + heap@0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" integrity sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ== +highlight.js@^10.4.1: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +highlightjs-solidity@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-2.0.6.tgz#e7a702a2b05e0a97f185e6ba39fd4846ad23a990" + integrity sha512-DySXWfQghjm2l6a/flF+cteroJqD4gI8GSdL4PtvxZSsAHie8m3yVe2JFoRg03ROKT6hp2Lc/BxXkqerNmtQYg== + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -5305,6 +5678,16 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + http-basic@^8.1.1: version "8.1.3" resolved "https://registry.yarnpkg.com/http-basic/-/http-basic-8.1.3.tgz#a7cabee7526869b9b710136970805b1004261bbf" @@ -5695,6 +6078,13 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== +is-lower-case@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393" + integrity sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA== + dependencies: + lower-case "^1.1.0" + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -5786,6 +6176,13 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-upper-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f" + integrity sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw== + dependencies: + upper-case "^1.1.0" + is-url@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" @@ -6333,6 +6730,11 @@ lodash.assign@^4.0.3, lodash.assign@^4.0.6: resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" integrity sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -6387,6 +6789,18 @@ loupe@^2.3.1: dependencies: get-func-name "^2.0.0" +lower-case-first@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" + integrity sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA== + dependencies: + lower-case "^1.1.2" + +lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -6897,6 +7311,11 @@ murmur-128@^0.2.1: fmix "^0.1.0" imul "^1.0.0" +nano-base32@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nano-base32/-/nano-base32-1.0.1.tgz#ba548c879efcfb90da1c4d9e097db4a46c9255ef" + integrity sha512-sxEtoTqAPdjWVGv71Q17koMFGsOMSiHsIFEvzOM7cNp8BXB4AnEwmDabm5dorusJf/v1z7QxaZYxUorU9RKaAw== + nano-json-stream-parser@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" @@ -6949,6 +7368,13 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +no-case@^2.2.0, no-case@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + node-addon-api@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" @@ -7001,6 +7427,11 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== +nofilter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" + integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== + nofilter@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" @@ -7038,6 +7469,13 @@ normalize-url@^6.0.1: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -7286,6 +7724,18 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pako@^1.0.4: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +param-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== + dependencies: + no-case "^2.2.0" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -7331,11 +7781,34 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + +parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e" + integrity sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ== + dependencies: + camel-case "^3.0.0" + upper-case-first "^1.1.0" + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -7384,6 +7857,13 @@ path-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== +path-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5" + integrity sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q== + dependencies: + no-case "^2.2.0" + path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -7663,6 +8143,11 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +pure-rand@^5.0.1: + version "5.0.5" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-5.0.5.tgz#bda2a7f6a1fc0f284d78d78ca5902f26f2ad35cf" + integrity sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw== + qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -7843,6 +8328,11 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" @@ -8067,7 +8557,12 @@ rimraf@^2.2.8, rimraf@^2.6.3: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: +ripemd160-min@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/ripemd160-min/-/ripemd160-min-0.0.6.tgz#a904b77658114474d02503e819dcc55853b67e62" + integrity sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A== + +ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== @@ -8200,6 +8695,13 @@ semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +semver@7.3.7: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -8236,6 +8738,14 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +sentence-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4" + integrity sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ== + dependencies: + no-case "^2.2.0" + upper-case-first "^1.1.2" + serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" @@ -8315,6 +8825,13 @@ sha1@^1.1.1: charenc ">= 0.0.1" crypt ">= 0.0.1" +sha3@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" + integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== + dependencies: + buffer "6.0.3" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -8383,6 +8900,13 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +snake-case@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + integrity sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q== + dependencies: + no-case "^2.2.0" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -8478,6 +9002,13 @@ solhint@^3.3.6: optionalDependencies: prettier "^2.8.3" +solidity-cborutils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/solidity-cborutils/-/solidity-cborutils-2.0.0.tgz#3158d75d60118a98921a767884ce4d3c2f6943be" + integrity sha512-9vApXfjZpP+PD46U9FgSN1NxsXthMNIOzNGXAlrFkLhfeLsQgzs/rCud1pBQNG9bw+wKLFb/yQbw2m7AS60E8g== + dependencies: + "@ensdomains/buffer" "0.1.0" + solidity-comments-extractor@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" @@ -8533,7 +9064,7 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.13: +source-map-support@^0.5.13, source-map-support@^0.5.19: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -8782,6 +9313,11 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== + strip-json-comments@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -8837,6 +9373,14 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +swap-case@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3" + integrity sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ== + dependencies: + lower-case "^1.1.1" + upper-case "^1.1.1" + swarm-js@^0.1.40: version "0.1.42" resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" @@ -8968,6 +9512,14 @@ timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== +title-case@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa" + integrity sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q== + dependencies: + no-case "^2.2.0" + upper-case "^1.0.3" + tmp@0.0.33, tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -9268,6 +9820,11 @@ underscore@1.9.1: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== +underscore@^1.8.3: + version "1.13.6" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== + undici@^5.14.0: version "5.20.0" resolved "https://registry.yarnpkg.com/undici/-/undici-5.20.0.tgz#6327462f5ce1d3646bcdac99da7317f455bcc263" @@ -9313,6 +9870,18 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +upper-case-first@^1.1.0, upper-case-first@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115" + integrity sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ== + dependencies: + upper-case "^1.1.1" + +upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -9484,6 +10053,15 @@ web3-bzz@1.8.2: got "12.1.0" swarm-js "^0.1.40" +web3-bzz@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.9.0.tgz#3334049f386e73e2b3dcfa96432e65391538d8ac" + integrity sha512-9Zli9dikX8GdHwBb5/WPzpSVuy3EWMKY3P4EokCQra31fD7DLizqAAaTUsFwnK7xYkw5ogpHgelw9uKHHzNajg== + dependencies: + "@types/node" "^12.12.6" + got "12.1.0" + swarm-js "^0.1.40" + web3-core-helpers@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz#84c681ed0b942c0203f3b324a245a127e8c67a99" @@ -9509,6 +10087,14 @@ web3-core-helpers@1.8.2: web3-eth-iban "1.8.2" web3-utils "1.8.2" +web3-core-helpers@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.9.0.tgz#a1ca4ac7b9cec822886643312d2e98b0e4d8f1bc" + integrity sha512-NeJzylAp9Yj9xAt2uTT+kyug3X0DLnfBdnAcGZuY6HhoNPDIfQRA9CkJjLngVRlGTLZGjNp9x9eR+RyZQgUlXg== + dependencies: + web3-eth-iban "1.9.0" + web3-utils "1.9.0" + web3-core-method@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.11.tgz#f880137d1507a0124912bf052534f168b8d8fbb6" @@ -9543,6 +10129,17 @@ web3-core-method@1.8.2: web3-core-subscriptions "1.8.2" web3-utils "1.8.2" +web3-core-method@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.9.0.tgz#81da8aa21503b470537c9f075f30adfad194a2d8" + integrity sha512-sswbNsY2xRBBhGeaLt9c/eDc+0yDDhi6keUBAkgIRa9ueSx/VKzUY9HMqiV6bXDcGT2fJyejq74FfEB4lc/+/w== + dependencies: + "@ethersproject/transactions" "^5.6.2" + web3-core-helpers "1.9.0" + web3-core-promievent "1.9.0" + web3-core-subscriptions "1.9.0" + web3-utils "1.9.0" + web3-core-promievent@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz#51fe97ca0ddec2f99bf8c3306a7a8e4b094ea3cf" @@ -9564,6 +10161,13 @@ web3-core-promievent@1.8.2: dependencies: eventemitter3 "4.0.4" +web3-core-promievent@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.9.0.tgz#2598a4d91b4edd3607366529f52bc96dee9f6d83" + integrity sha512-PHG1Mn23IGwMZhnPDN8dETKypqsFbHfiyRqP+XsVMPmTHkVfzDQTCBU/c2r6hUktBDoGKut5xZQpGfhFk71KbQ== + dependencies: + eventemitter3 "4.0.4" + web3-core-requestmanager@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz#fe6eb603fbaee18530293a91f8cf26d8ae28c45a" @@ -9597,6 +10201,17 @@ web3-core-requestmanager@1.8.2: web3-providers-ipc "1.8.2" web3-providers-ws "1.8.2" +web3-core-requestmanager@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.9.0.tgz#9d7d0e7f890cf7a24e9c568b9772c64d57fc4fcd" + integrity sha512-hcJ5PCtTIJpj+8qWxoseqlCovDo94JJjTX7dZOLXgwp8ah7E3WRYozhGyZocerx+KebKyg1mCQIhkDpMwjfo9Q== + dependencies: + util "^0.12.5" + web3-core-helpers "1.9.0" + web3-providers-http "1.9.0" + web3-providers-ipc "1.9.0" + web3-providers-ws "1.9.0" + web3-core-subscriptions@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz#beca908fbfcb050c16f45f3f0f4c205e8505accd" @@ -9622,6 +10237,14 @@ web3-core-subscriptions@1.8.2: eventemitter3 "4.0.4" web3-core-helpers "1.8.2" +web3-core-subscriptions@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.9.0.tgz#dc67b478875dab1875844df3307a986dd7d468dd" + integrity sha512-MaIo29yz7hTV8X8bioclPDbHFOVuHmnbMv+D3PDH12ceJFJAXGyW8GL5KU1DYyWIj4TD1HM4WknyVA/YWBiiLA== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.9.0" + web3-core@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.11.tgz#1043cacc1becb80638453cc5b2a14be9050288a7" @@ -9661,6 +10284,19 @@ web3-core@1.8.2: web3-core-requestmanager "1.8.2" web3-utils "1.8.2" +web3-core@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.9.0.tgz#9cfafb2f8c01931429108af75205610406a5a1ab" + integrity sha512-DZ+TPmq/ZLlx4LSVzFgrHCP/QFpKDbGWO4HoquZSdu24cjk5SZ+FEU1SZB2OaK3/bgBh+25mRbmv8y56ysUu1w== + dependencies: + "@types/bn.js" "^5.1.1" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.9.0" + web3-core-method "1.9.0" + web3-core-requestmanager "1.9.0" + web3-utils "1.9.0" + web3-eth-abi@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz#a887494e5d447c2926d557a3834edd66e17af9b0" @@ -9686,6 +10322,14 @@ web3-eth-abi@1.8.2: "@ethersproject/abi" "^5.6.3" web3-utils "1.8.2" +web3-eth-abi@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.9.0.tgz#18662ef68bd3d25eedd9a1a1484089c39529c652" + integrity sha512-0BLQ3FKMrzJkA930jOX3fMaybAyubk06HChclLpiR0NWmgWXm1tmBrJdkyRy2ZTZpmfuZc9xTFRfl0yZID1voA== + dependencies: + "@ethersproject/abi" "^5.6.3" + web3-utils "1.9.0" + web3-eth-accounts@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz#a9e3044da442d31903a7ce035a86d8fa33f90520" @@ -9736,6 +10380,22 @@ web3-eth-accounts@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" +web3-eth-accounts@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.9.0.tgz#fab7d563c63bdff2aa5ad89a94faf128961d9504" + integrity sha512-VeIZVevmnSll0AC1k5F/y398ZE89d1SRuYk8IewLUhL/tVAsFEsjl2SGgm0+aDcHmgPrkW+qsCJ+C7rWg/N4ZA== + dependencies: + "@ethereumjs/common" "2.5.0" + "@ethereumjs/tx" "3.3.2" + eth-lib "0.2.8" + ethereumjs-util "^7.1.5" + scrypt-js "^3.0.1" + uuid "^9.0.0" + web3-core "1.9.0" + web3-core-helpers "1.9.0" + web3-core-method "1.9.0" + web3-utils "1.9.0" + web3-eth-contract@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz#917065902bc27ce89da9a1da26e62ef663663b90" @@ -9779,6 +10439,20 @@ web3-eth-contract@1.8.2: web3-eth-abi "1.8.2" web3-utils "1.8.2" +web3-eth-contract@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.9.0.tgz#00b7ac8314d562d10d7dd0c7d0f52555c3862995" + integrity sha512-+j26hpSaEtAdUed0TN5rnc+YZOcjPxMjFX4ZBKatvFkImdbVv/tzTvcHlltubSpgb2ZLyZ89lSL6phKYwd2zNQ== + dependencies: + "@types/bn.js" "^5.1.1" + web3-core "1.9.0" + web3-core-helpers "1.9.0" + web3-core-method "1.9.0" + web3-core-promievent "1.9.0" + web3-core-subscriptions "1.9.0" + web3-eth-abi "1.9.0" + web3-utils "1.9.0" + web3-eth-ens@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz#26d4d7f16d6cbcfff918e39832b939edc3162532" @@ -9822,6 +10496,20 @@ web3-eth-ens@1.8.2: web3-eth-contract "1.8.2" web3-utils "1.8.2" +web3-eth-ens@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.9.0.tgz#2014b16e1116be5ab34404a8db29ad1d8632ced0" + integrity sha512-LOJZeN+AGe9arhuExnrPPFYQr4WSxXEkpvYIlst/joOEUNLDwfndHnJIK6PI5mXaYSROBtTx6erv+HupzGo7vA== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + web3-core "1.9.0" + web3-core-helpers "1.9.0" + web3-core-promievent "1.9.0" + web3-eth-abi "1.9.0" + web3-eth-contract "1.9.0" + web3-utils "1.9.0" + web3-eth-iban@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz#f5f73298305bc7392e2f188bf38a7362b42144ef" @@ -9846,6 +10534,14 @@ web3-eth-iban@1.8.2: bn.js "^5.2.1" web3-utils "1.8.2" +web3-eth-iban@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.9.0.tgz#a8f838e42c20d49ff58aaa9f67ece47a968e40b1" + integrity sha512-jPAm77PuEs1kE/UrrBFJdPD2PN42pwfXA0gFuuw35bZezhskYML9W4QCxcqnUtceyEA4FUn7K2qTMuCk+23fog== + dependencies: + bn.js "^5.2.1" + web3-utils "1.9.0" + web3-eth-personal@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz#a38b3942a1d87a62070ce0622a941553c3d5aa70" @@ -9882,6 +10578,18 @@ web3-eth-personal@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" +web3-eth-personal@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.9.0.tgz#f5092bcb2688979dd7778d5a56ae6922c341ce52" + integrity sha512-r9Ldo/luBqJlv1vCUEQnUS+C3a3ZdbYxVHyfDkj6RWMyCqqo8JE41HWE+pfa0RmB1xnGL2g8TbYcHcqItck/qg== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.9.0" + web3-core-helpers "1.9.0" + web3-core-method "1.9.0" + web3-net "1.9.0" + web3-utils "1.9.0" + web3-eth@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.11.tgz#4c81fcb6285b8caf544058fba3ae802968fdc793" @@ -9937,6 +10645,24 @@ web3-eth@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" +web3-eth@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.9.0.tgz#1fe82ba429a44b1aa0a3b95de3e79e6c5a9eb00c" + integrity sha512-c5gSWk9bLNr6VPATHmZ1n7LTIefIZQnJMzfnvkoBcIFGKJbGmsuRhv6lEXsKdAO/FlqYnSbaw3fOq1fVFiIOFQ== + dependencies: + web3-core "1.9.0" + web3-core-helpers "1.9.0" + web3-core-method "1.9.0" + web3-core-subscriptions "1.9.0" + web3-eth-abi "1.9.0" + web3-eth-accounts "1.9.0" + web3-eth-contract "1.9.0" + web3-eth-ens "1.9.0" + web3-eth-iban "1.9.0" + web3-eth-personal "1.9.0" + web3-net "1.9.0" + web3-utils "1.9.0" + web3-net@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.11.tgz#eda68ef25e5cdb64c96c39085cdb74669aabbe1b" @@ -9964,6 +10690,15 @@ web3-net@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" +web3-net@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.9.0.tgz#ee8799bf766039aa5b157d6db0be5ffdecd39d64" + integrity sha512-L+fDZFgrLM5Y15aonl2q6L+RvfaImAngmC0Jv45hV2FJ5IfRT0/2ob9etxZmvEBWvOpbqSvghfOhJIT3XZ37Pg== + dependencies: + web3-core "1.9.0" + web3-core-method "1.9.0" + web3-utils "1.9.0" + web3-provider-engine@14.2.1: version "14.2.1" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz#ef351578797bf170e08d529cb5b02f8751329b95" @@ -10016,6 +10751,16 @@ web3-providers-http@1.8.2: es6-promise "^4.2.8" web3-core-helpers "1.8.2" +web3-providers-http@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.9.0.tgz#93cd3eb42fff974c9f7634ede1a9795d6435c3fe" + integrity sha512-5+dMNDAE0rRFz6SJpfnBqlVi2J5bB/Ivr2SanMt2YUrkxW5t8betZbzVwRkTbwtUvkqgj3xeUQzqpOttiv+IqQ== + dependencies: + abortcontroller-polyfill "^1.7.3" + cross-fetch "^3.1.4" + es6-promise "^4.2.8" + web3-core-helpers "1.9.0" + web3-providers-ipc@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz#d16d6c9be1be6e0b4f4536c4acc16b0f4f27ef21" @@ -10041,6 +10786,14 @@ web3-providers-ipc@1.8.2: oboe "2.1.5" web3-core-helpers "1.8.2" +web3-providers-ipc@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.9.0.tgz#db486cb0dde9062ac6055478861e3d37535924d2" + integrity sha512-cPXU93Du40HCylvjaa5x62DbnGqH+86HpK/+kMcFIzF6sDUBhKpag2tSbYhGbj7GMpfkmDTUiiMLdWnFV6+uBA== + dependencies: + oboe "2.1.5" + web3-core-helpers "1.9.0" + web3-providers-ws@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz#a1dfd6d9778d840561d9ec13dd453046451a96bb" @@ -10069,6 +10822,15 @@ web3-providers-ws@1.8.2: web3-core-helpers "1.8.2" websocket "^1.0.32" +web3-providers-ws@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.9.0.tgz#568330766e8abbb6eb43e1153a72fb24398fcb7e" + integrity sha512-JRVsnQZ7j2k1a2yzBNHe39xqk1ijOv01dfIBFw52VeEkSRzvrOcsPIM/ttSyBuJqt70ntMxXY0ekCrqfleKH/w== + dependencies: + eventemitter3 "4.0.4" + web3-core-helpers "1.9.0" + websocket "^1.0.32" + web3-shh@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.11.tgz#f5d086f9621c9a47e98d438010385b5f059fd88f" @@ -10099,6 +10861,16 @@ web3-shh@1.8.2: web3-core-subscriptions "1.8.2" web3-net "1.8.2" +web3-shh@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.9.0.tgz#75a37cd9f78d485ee5f018e2e66853e1e1c6ce4f" + integrity sha512-bIBZlralgz4ICCrwkefB2nPPJWfx28NuHIpjB7d9ADKynElubQuqudYhKtSEkKXACuME/BJm0pIFJcJs/gDnMg== + dependencies: + web3-core "1.9.0" + web3-core-method "1.9.0" + web3-core-subscriptions "1.9.0" + web3-net "1.9.0" + web3-utils@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.11.tgz#af1942aead3fb166ae851a985bed8ef2c2d95a82" @@ -10139,6 +10911,19 @@ web3-utils@1.8.2, web3-utils@^1.0.0-beta.31, web3-utils@^1.3.0: randombytes "^2.1.0" utf8 "3.0.0" +web3-utils@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.9.0.tgz#7c5775a47586cefb4ad488831be8f6627be9283d" + integrity sha512-p++69rCNNfu2jM9n5+VD/g26l+qkEOQ1m6cfRQCbH8ZRrtquTmrirJMgTmyOoax5a5XRYOuws14aypCOs51pdQ== + dependencies: + bn.js "^5.2.1" + ethereum-bloom-filters "^1.0.6" + ethereumjs-util "^7.1.0" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + utf8 "3.0.0" + web3@1.2.11: version "1.2.11" resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.11.tgz#50f458b2e8b11aa37302071c170ed61cff332975" @@ -10178,6 +10963,19 @@ web3@1.8.2: web3-shh "1.8.2" web3-utils "1.8.2" +web3@^1.0.0-beta.34: + version "1.9.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.9.0.tgz#4fde5d134f8ee11355ed5bfa1bb41f8bc58e23f3" + integrity sha512-E9IvVy/d2ozfQQsCiV+zh/LmlZGv9fQxI0UedDVjm87yOKf4AYbBNEn1iWtHveiGzAk2CEMZMUzAZzaQNSSYog== + dependencies: + web3-bzz "1.9.0" + web3-core "1.9.0" + web3-eth "1.9.0" + web3-eth-personal "1.9.0" + web3-net "1.9.0" + web3-shh "1.9.0" + web3-utils "1.9.0" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"