diff --git a/README.md b/README.md
index b2327ced3..216e86721 100644
--- a/README.md
+++ b/README.md
@@ -40,6 +40,20 @@ Fei makes use of Forge as a smart contract development framework alongside Hardh
## Documentation
See the [docs](https://docs.fei.money)
+## Release Process
+Every Thursday, do the following for the weekly release:
+
+ 1) Update the current release branch's fixed hardhat block to something within the last hour
+ 2) Clean the release branch if necessary:
+ - fix any failing tests
+ - clear out proposals-config
+ 3) Merge the release branch into master. Create a release via the github UI, using the version number of the release branch.
+ 4) Merge master back into develop to ensure that any fixes added are pulled back into develop, and so that the hardcoded fork block is set correctly for the most recent release.
+ 5) Create a new branch off of develop of the format release/major.minor.patch, using an incremented minor version number
+
+For hotfix releases or bugfixes to master, branch off of master, add in the necessary fixes, and merge back into master.
+Then tag that commit with a new release number (increment the patch version number here).
+Finally merge master back into develop.
+
## License
Fei Protocol is under [the AGPL v3 license](https://github.com/fei-protocol/fei-protocol-core/tree/7160dda163d45e6d6c7092ef021c365e0031a71f/LICENSE.md)
-
diff --git a/contracts/.prettierrc b/contracts/.prettierrc
index 00424a421..6b8854087 100644
--- a/contracts/.prettierrc
+++ b/contracts/.prettierrc
@@ -3,7 +3,7 @@
{
"files": "*.sol",
"options": {
- "printWidth": 80,
+ "printWidth": 120,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
diff --git a/contracts/Constants.sol b/contracts/Constants.sol
index 1e3391b6f..41f7ad744 100644
--- a/contracts/Constants.sol
+++ b/contracts/Constants.sol
@@ -9,9 +9,11 @@ library Constants {
uint256 public constant ONE_YEAR = 365.25 days;
+ /// @notice the denominator for basis points granularity (10,000) expressed as an int data type
+ int256 public constant BP_INT = int256(BASIS_POINTS_GRANULARITY);
+
/// @notice WETH9 address
- IWETH public constant WETH =
- IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
+ IWETH public constant WETH = IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
/// @notice USD stand-in address
address public constant USD = 0x1111111111111111111111111111111111111111;
@@ -21,4 +23,7 @@ library Constants {
/// @notice number of decimals in ETH, 18
uint256 public constant ETH_DECIMALS = 18;
+
+ /// @notice max-uint
+ uint256 public constant MAX_UINT = type(uint256).max;
}
diff --git a/contracts/core/Core.sol b/contracts/core/Core.sol
index e0d09ba3d..e4962bd3c 100644
--- a/contracts/core/Core.sol
+++ b/contracts/core/Core.sol
@@ -42,16 +42,9 @@ contract Core is ICore, Permissions, Initializable {
/// @notice sends TRIBE tokens from treasury to an address
/// @param to the address to send TRIBE to
/// @param amount the amount of TRIBE to send
- function allocateTribe(address to, uint256 amount)
- external
- override
- onlyGovernor
- {
+ function allocateTribe(address to, uint256 amount) external override onlyGovernor {
IERC20 _tribe = tribe;
- require(
- _tribe.balanceOf(address(this)) >= amount,
- "Core: Not enough Tribe"
- );
+ require(_tribe.balanceOf(address(this)) >= amount, "Core: Not enough Tribe");
_tribe.transfer(to, amount);
diff --git a/contracts/core/Permissions.sol b/contracts/core/Permissions.sol
index 01ae435a6..4113df399 100644
--- a/contracts/core/Permissions.sol
+++ b/contracts/core/Permissions.sol
@@ -9,8 +9,7 @@ import "./IPermissions.sol";
contract Permissions is IPermissions, AccessControlEnumerable {
bytes32 public constant override BURNER_ROLE = keccak256("BURNER_ROLE");
bytes32 public constant override MINTER_ROLE = keccak256("MINTER_ROLE");
- bytes32 public constant override PCV_CONTROLLER_ROLE =
- keccak256("PCV_CONTROLLER_ROLE");
+ bytes32 public constant override PCV_CONTROLLER_ROLE = keccak256("PCV_CONTROLLER_ROLE");
bytes32 public constant override GOVERN_ROLE = keccak256("GOVERN_ROLE");
bytes32 public constant override GUARDIAN_ROLE = keccak256("GUARDIAN_ROLE");
@@ -26,18 +25,12 @@ contract Permissions is IPermissions, AccessControlEnumerable {
}
modifier onlyGovernor() {
- require(
- isGovernor(msg.sender),
- "Permissions: Caller is not a governor"
- );
+ require(isGovernor(msg.sender), "Permissions: Caller is not a governor");
_;
}
modifier onlyGuardian() {
- require(
- isGuardian(msg.sender),
- "Permissions: Caller is not a guardian"
- );
+ require(isGuardian(msg.sender), "Permissions: Caller is not a guardian");
_;
}
@@ -45,11 +38,7 @@ contract Permissions is IPermissions, AccessControlEnumerable {
/// @param role the new role id
/// @param adminRole the admin role id for `role`
/// @dev can also be used to update admin of existing role
- function createRole(bytes32 role, bytes32 adminRole)
- external
- override
- onlyGovernor
- {
+ function createRole(bytes32 role, bytes32 adminRole) external override onlyGovernor {
_setRoleAdmin(role, adminRole);
}
@@ -67,11 +56,7 @@ contract Permissions is IPermissions, AccessControlEnumerable {
/// @notice grants controller role to address
/// @param pcvController new controller
- function grantPCVController(address pcvController)
- external
- override
- onlyGovernor
- {
+ function grantPCVController(address pcvController) external override onlyGovernor {
grantRole(PCV_CONTROLLER_ROLE, pcvController);
}
@@ -101,11 +86,7 @@ contract Permissions is IPermissions, AccessControlEnumerable {
/// @notice revokes pcvController role from address
/// @param pcvController ex pcvController
- function revokePCVController(address pcvController)
- external
- override
- onlyGovernor
- {
+ function revokePCVController(address pcvController) external override onlyGovernor {
revokeRole(PCV_CONTROLLER_ROLE, pcvController);
}
@@ -124,15 +105,8 @@ contract Permissions is IPermissions, AccessControlEnumerable {
/// @notice revokes a role from address
/// @param role the role to revoke
/// @param account the address to revoke the role from
- function revokeOverride(bytes32 role, address account)
- external
- override
- onlyGuardian
- {
- require(
- role != GOVERN_ROLE,
- "Permissions: Guardian cannot revoke governor"
- );
+ function revokeOverride(bytes32 role, address account) external override onlyGuardian {
+ require(role != GOVERN_ROLE, "Permissions: Guardian cannot revoke governor");
// External call because this contract is appointed as a governor and has access to revoke
this.revokeRole(role, account);
@@ -155,12 +129,7 @@ contract Permissions is IPermissions, AccessControlEnumerable {
/// @notice checks if address is a controller
/// @param _address address to check
/// @return true _address is a controller
- function isPCVController(address _address)
- external
- view
- override
- returns (bool)
- {
+ function isPCVController(address _address) external view override returns (bool) {
return hasRole(PCV_CONTROLLER_ROLE, _address);
}
@@ -168,13 +137,7 @@ contract Permissions is IPermissions, AccessControlEnumerable {
/// @param _address address to check
/// @return true _address is a governor
// only virtual for testing mock override
- function isGovernor(address _address)
- public
- view
- virtual
- override
- returns (bool)
- {
+ function isGovernor(address _address) public view virtual override returns (bool) {
return hasRole(GOVERN_ROLE, _address);
}
diff --git a/contracts/core/TribeRoles.sol b/contracts/core/TribeRoles.sol
index ce8cdb18f..84ffd2459 100644
--- a/contracts/core/TribeRoles.sol
+++ b/contracts/core/TribeRoles.sol
@@ -26,10 +26,19 @@ library TribeRoles {
/// @notice can mint FEI arbitrarily
bytes32 internal constant MINTER = keccak256("MINTER_ROLE");
+ /// @notice Manages lower level - Admin and Minor - roles. Able to grant and revoke these
+ bytes32 internal constant ROLE_ADMIN = keccak256("ROLE_ADMIN");
+
/*///////////////////////////////////////////////////////////////
Admin Roles
//////////////////////////////////////////////////////////////*/
+ /// @notice has access to all admin functionality on pods
+ bytes32 internal constant POD_ADMIN = keccak256("POD_ADMIN");
+
+ /// @notice capable of granting and revoking other TribeRoles from having veto power over a pod
+ bytes32 internal constant POD_VETO_ADMIN = keccak256("POD_VETO_ADMIN");
+
/// @notice can manage the majority of Tribe protocol parameters. Sets boundaries for MINOR_PARAM_ROLE.
bytes32 internal constant PARAMETER_ADMIN = keccak256("PARAMETER_ADMIN");
@@ -37,12 +46,10 @@ library TribeRoles {
bytes32 internal constant ORACLE_ADMIN = keccak256("ORACLE_ADMIN_ROLE");
/// @notice manages TribalChief incentives and related functionality.
- bytes32 internal constant TRIBAL_CHIEF_ADMIN =
- keccak256("TRIBAL_CHIEF_ADMIN_ROLE");
+ bytes32 internal constant TRIBAL_CHIEF_ADMIN = keccak256("TRIBAL_CHIEF_ADMIN_ROLE");
/// @notice admin of PCVGuardian
- bytes32 internal constant PCV_GUARDIAN_ADMIN =
- keccak256("PCV_GUARDIAN_ADMIN_ROLE");
+ bytes32 internal constant PCV_GUARDIAN_ADMIN = keccak256("PCV_GUARDIAN_ADMIN_ROLE");
/// @notice admin of all Minor Roles
bytes32 internal constant MINOR_ROLE_ADMIN = keccak256("MINOR_ROLE_ADMIN");
@@ -61,22 +68,20 @@ library TribeRoles {
/// @notice manages meta-governance actions, like voting & delegating.
/// Also used to vote for gauge weights & similar liquid governance things.
- bytes32 internal constant METAGOVERNANCE_VOTE_ADMIN =
- keccak256("METAGOVERNANCE_VOTE_ADMIN");
+ bytes32 internal constant METAGOVERNANCE_VOTE_ADMIN = keccak256("METAGOVERNANCE_VOTE_ADMIN");
/// @notice allows to manage locking of vote-escrowed tokens, and staking/unstaking
/// governance tokens from a pre-defined contract in order to eventually allow voting.
/// Examples: ANGLE <> veANGLE, AAVE <> stkAAVE, CVX <> vlCVX, CRV > cvxCRV.
- bytes32 internal constant METAGOVERNANCE_TOKEN_STAKING =
- keccak256("METAGOVERNANCE_TOKEN_STAKING");
+ bytes32 internal constant METAGOVERNANCE_TOKEN_STAKING = keccak256("METAGOVERNANCE_TOKEN_STAKING");
/// @notice manages whitelisting of gauges where the protocol's tokens can be staked
- bytes32 internal constant METAGOVERNANCE_GAUGE_ADMIN =
- keccak256("METAGOVERNANCE_GAUGE_ADMIN");
+ bytes32 internal constant METAGOVERNANCE_GAUGE_ADMIN = keccak256("METAGOVERNANCE_GAUGE_ADMIN");
/*///////////////////////////////////////////////////////////////
Minor Roles
//////////////////////////////////////////////////////////////*/
+ bytes32 internal constant POD_METADATA_REGISTER_ROLE = keccak256("POD_METADATA_REGISTER_ROLE");
/// @notice capable of poking existing LBP auctions to exchange tokens.
bytes32 internal constant LBP_SWAP_ROLE = keccak256("SWAP_ADMIN_ROLE");
@@ -84,6 +89,12 @@ library TribeRoles {
/// @notice capable of engaging with Votium for voting incentives.
bytes32 internal constant VOTIUM_ROLE = keccak256("VOTIUM_ADMIN_ROLE");
+ /// @notice capable of adding an address to multi rate limited
+ bytes32 internal constant ADD_MINTER_ROLE = keccak256("ADD_MINTER_ROLE");
+
/// @notice capable of changing parameters within non-critical ranges
bytes32 internal constant MINOR_PARAM_ROLE = keccak256("MINOR_PARAM_ROLE");
+
+ /// @notice capable of changing PCV Deposit and Global Rate Limited Minter in the PSM
+ bytes32 internal constant PSM_ADMIN_ROLE = keccak256("PSM_ADMIN_ROLE");
}
diff --git a/contracts/dao/governor/FeiDAO.sol b/contracts/dao/governor/FeiDAO.sol
index 92c82c751..e3d1f62e9 100644
--- a/contracts/dao/governor/FeiDAO.sol
+++ b/contracts/dao/governor/FeiDAO.sol
@@ -8,11 +8,7 @@ import "@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol";
// Forked functionality from https://github.com/unlock-protocol/unlock/blob/master/smart-contracts/contracts/UnlockProtocolGovernor.sol
-contract FeiDAO is
- GovernorCompatibilityBravo,
- GovernorVotesComp,
- GovernorTimelockCompound
-{
+contract FeiDAO is GovernorCompatibilityBravo, GovernorVotesComp, GovernorTimelockCompound {
uint256 private _votingDelay = 1; // reduce voting delay to 1 block
uint256 private _votingPeriod = 13000; // extend voting period to 48h
uint256 private _quorum = 25_000_000e18;
@@ -20,19 +16,14 @@ contract FeiDAO is
address private _guardian;
uint256 private _eta;
- address public constant BACKUP_GOVERNOR =
- 0x4C895973334Af8E06fd6dA4f723Ac24A5f259e6B;
+ address public constant BACKUP_GOVERNOR = 0x4C895973334Af8E06fd6dA4f723Ac24A5f259e6B;
uint256 public constant ROLLBACK_DEADLINE = 1635724800; // Nov 1, 2021 midnight UTC
constructor(
ERC20VotesComp tribe,
ICompoundTimelock timelock,
address guardian
- )
- GovernorVotesComp(tribe)
- GovernorTimelockCompound(timelock)
- Governor("Fei DAO")
- {
+ ) GovernorVotesComp(tribe) GovernorTimelockCompound(timelock) Governor("Fei DAO") {
_guardian = guardian;
}
@@ -42,10 +33,7 @@ contract FeiDAO is
event QuorumUpdated(uint256 oldQuorum, uint256 newQuorum);
event VotingDelayUpdated(uint256 oldVotingDelay, uint256 newVotingDelay);
event VotingPeriodUpdated(uint256 oldVotingPeriod, uint256 newVotingPeriod);
- event ProposalThresholdUpdated(
- uint256 oldProposalThreshold,
- uint256 newProposalThreshold
- );
+ event ProposalThresholdUpdated(uint256 oldProposalThreshold, uint256 newProposalThreshold);
event RollbackQueued(uint256 eta);
event Rollback();
@@ -84,16 +72,10 @@ contract FeiDAO is
emit QuorumUpdated(oldQuorum, newQuorum);
}
- function setProposalThreshold(uint256 newProposalThreshold)
- public
- onlyGovernance
- {
+ function setProposalThreshold(uint256 newProposalThreshold) public onlyGovernance {
uint256 oldProposalThreshold = _proposalThreshold;
_proposalThreshold = newProposalThreshold;
- emit ProposalThresholdUpdated(
- oldProposalThreshold,
- newProposalThreshold
- );
+ emit ProposalThresholdUpdated(oldProposalThreshold, newProposalThreshold);
}
/// @notice one-time option to roll back the DAO to old GovernorAlpha
@@ -107,13 +89,7 @@ contract FeiDAO is
_eta = eta;
ICompoundTimelock _timelock = ICompoundTimelock(payable(timelock()));
- _timelock.queueTransaction(
- timelock(),
- 0,
- "setPendingAdmin(address)",
- abi.encode(BACKUP_GOVERNOR),
- eta
- );
+ _timelock.queueTransaction(timelock(), 0, "setPendingAdmin(address)", abi.encode(BACKUP_GOVERNOR), eta);
emit RollbackQueued(eta);
}
@@ -124,13 +100,7 @@ contract FeiDAO is
require(_guardian == address(0), "FeiDAO: no queue");
ICompoundTimelock _timelock = ICompoundTimelock(payable(timelock()));
- _timelock.executeTransaction(
- timelock(),
- 0,
- "setPendingAdmin(address)",
- abi.encode(BACKUP_GOVERNOR),
- _eta
- );
+ _timelock.executeTransaction(timelock(), 0, "setPendingAdmin(address)", abi.encode(BACKUP_GOVERNOR), _eta);
emit Rollback();
}
@@ -139,7 +109,7 @@ contract FeiDAO is
function getVotes(address account, uint256 blockNumber)
public
view
- override(IGovernor, GovernorVotesComp)
+ override(Governor, IGovernor)
returns (uint256)
{
return super.getVotes(account, blockNumber);
@@ -159,11 +129,7 @@ contract FeiDAO is
uint256[] memory values,
bytes[] memory calldatas,
string memory description
- )
- public
- override(IGovernor, Governor, GovernorCompatibilityBravo)
- returns (uint256)
- {
+ ) public override(IGovernor, Governor, GovernorCompatibilityBravo) returns (uint256) {
return super.propose(targets, values, calldatas, description);
}
@@ -186,12 +152,7 @@ contract FeiDAO is
return super._cancel(targets, values, calldatas, descriptionHash);
}
- function _executor()
- internal
- view
- override(Governor, GovernorTimelockCompound)
- returns (address)
- {
+ function _executor() internal view override(Governor, GovernorTimelockCompound) returns (address) {
return super._executor();
}
diff --git a/contracts/dao/governor/GovernorAlpha.sol b/contracts/dao/governor/GovernorAlpha.sol
index d0a94cad5..1e1c74f05 100644
--- a/contracts/dao/governor/GovernorAlpha.sol
+++ b/contracts/dao/governor/GovernorAlpha.sol
@@ -107,13 +107,10 @@ contract GovernorAlpha {
/// @notice The EIP-712 typehash for the contract's domain
bytes32 public constant DOMAIN_TYPEHASH =
- keccak256(
- "EIP712Domain(string name,uint256 chainId,address verifyingContract)"
- );
+ keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");
/// @notice The EIP-712 typehash for the ballot struct used by the contract
- bytes32 public constant BALLOT_TYPEHASH =
- keccak256("Ballot(uint256 proposalId,bool support)");
+ bytes32 public constant BALLOT_TYPEHASH = keccak256("Ballot(uint256 proposalId,bool support)");
/// @notice An event emitted when a new proposal is created
event ProposalCreated(
@@ -129,12 +126,7 @@ contract GovernorAlpha {
);
/// @notice An event emitted when a vote has been cast on a proposal
- event VoteCast(
- address voter,
- uint256 proposalId,
- bool support,
- uint256 votes
- );
+ event VoteCast(address voter, uint256 proposalId, bool support, uint256 votes);
/// @notice An event emitted when a proposal has been canceled
event ProposalCanceled(uint256 id);
@@ -163,8 +155,7 @@ contract GovernorAlpha {
string memory description
) public returns (uint256) {
require(
- tribe.getPriorVotes(msg.sender, sub256(block.number, 1)) >
- proposalThreshold(),
+ tribe.getPriorVotes(msg.sender, sub256(block.number, 1)) > proposalThreshold(),
"GovernorAlpha: proposer votes below proposal threshold"
);
require(
@@ -174,16 +165,11 @@ contract GovernorAlpha {
"GovernorAlpha: proposal function information arity mismatch"
);
require(targets.length != 0, "GovernorAlpha: must provide actions");
- require(
- targets.length <= proposalMaxOperations(),
- "GovernorAlpha: too many actions"
- );
+ require(targets.length <= proposalMaxOperations(), "GovernorAlpha: too many actions");
uint256 latestProposalId = latestProposalIds[msg.sender];
if (latestProposalId != 0) {
- ProposalState proposersLatestProposalState = state(
- latestProposalId
- );
+ ProposalState proposersLatestProposalState = state(latestProposalId);
require(
proposersLatestProposalState != ProposalState.Active,
"GovernorAlpha: one live proposal per proposer, found an already active proposal"
@@ -234,13 +220,7 @@ contract GovernorAlpha {
Proposal storage proposal = proposals[proposalId];
uint256 eta = add256(block.timestamp, timelock.delay());
for (uint256 i = 0; i < proposal.targets.length; i++) {
- _queueOrRevert(
- proposal.targets[i],
- proposal.values[i],
- proposal.signatures[i],
- proposal.calldatas[i],
- eta
- );
+ _queueOrRevert(proposal.targets[i], proposal.values[i], proposal.signatures[i], proposal.calldatas[i], eta);
}
proposal.eta = eta;
emit ProposalQueued(proposalId, eta);
@@ -254,9 +234,7 @@ contract GovernorAlpha {
uint256 eta
) internal {
require(
- !timelock.queuedTransactions(
- keccak256(abi.encode(target, value, signature, data, eta))
- ),
+ !timelock.queuedTransactions(keccak256(abi.encode(target, value, signature, data, eta))),
"GovernorAlpha: proposal action already queued at eta"
);
timelock.queueTransaction(target, value, signature, data, eta);
@@ -291,11 +269,7 @@ contract GovernorAlpha {
Proposal storage proposal = proposals[proposalId];
require(
msg.sender == guardian ||
- tribe.getPriorVotes(
- proposal.proposer,
- sub256(block.number, 1)
- ) <
- proposalThreshold(),
+ tribe.getPriorVotes(proposal.proposer, sub256(block.number, 1)) < proposalThreshold(),
"GovernorAlpha: proposer above threshold"
);
@@ -327,19 +301,12 @@ contract GovernorAlpha {
return (p.targets, p.values, p.signatures, p.calldatas);
}
- function getReceipt(uint256 proposalId, address voter)
- public
- view
- returns (Receipt memory)
- {
+ function getReceipt(uint256 proposalId, address voter) public view returns (Receipt memory) {
return proposals[proposalId].receipts[voter];
}
function state(uint256 proposalId) public view returns (ProposalState) {
- require(
- proposalCount >= proposalId && proposalId > 0,
- "GovernorAlpha: invalid proposal id"
- );
+ require(proposalCount >= proposalId && proposalId > 0, "GovernorAlpha: invalid proposal id");
Proposal storage proposal = proposals[proposalId];
if (proposal.canceled) {
return ProposalState.Canceled;
@@ -347,18 +314,13 @@ contract GovernorAlpha {
return ProposalState.Pending;
} else if (block.number <= proposal.endBlock) {
return ProposalState.Active;
- } else if (
- proposal.forVotes <= proposal.againstVotes ||
- proposal.forVotes < quorumVotes()
- ) {
+ } else if (proposal.forVotes <= proposal.againstVotes || proposal.forVotes < quorumVotes()) {
return ProposalState.Defeated;
} else if (proposal.eta == 0) {
return ProposalState.Succeeded;
} else if (proposal.executed) {
return ProposalState.Executed;
- } else if (
- block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())
- ) {
+ } else if (block.timestamp >= add256(proposal.eta, timelock.GRACE_PERIOD())) {
return ProposalState.Expired;
} else {
return ProposalState.Queued;
@@ -377,19 +339,10 @@ contract GovernorAlpha {
bytes32 s
) public {
bytes32 domainSeparator = keccak256(
- abi.encode(
- DOMAIN_TYPEHASH,
- keccak256(bytes(name)),
- getChainId(),
- address(this)
- )
- );
- bytes32 structHash = keccak256(
- abi.encode(BALLOT_TYPEHASH, proposalId, support)
- );
- bytes32 digest = keccak256(
- abi.encodePacked("\x19\x01", domainSeparator, structHash)
+ abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))
);
+ bytes32 structHash = keccak256(abi.encode(BALLOT_TYPEHASH, proposalId, support));
+ bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
address signatory = ecrecover(digest, v, r, s);
require(signatory != address(0), "GovernorAlpha: invalid signature");
return _castVote(signatory, proposalId, support);
@@ -400,16 +353,10 @@ contract GovernorAlpha {
uint256 proposalId,
bool support
) internal {
- require(
- state(proposalId) == ProposalState.Active,
- "GovernorAlpha: voting is closed"
- );
+ require(state(proposalId) == ProposalState.Active, "GovernorAlpha: voting is closed");
Proposal storage proposal = proposals[proposalId];
Receipt storage receipt = proposal.receipts[voter];
- require(
- receipt.hasVoted == false,
- "GovernorAlpha: voter already voted"
- );
+ require(receipt.hasVoted == false, "GovernorAlpha: voter already voted");
uint96 votes = tribe.getPriorVotes(voter, proposal.startBlock);
if (support) {
@@ -430,53 +377,23 @@ contract GovernorAlpha {
}
function __abdicate() public {
- require(
- msg.sender == guardian,
- "GovernorAlpha: sender must be gov guardian"
- );
+ require(msg.sender == guardian, "GovernorAlpha: sender must be gov guardian");
guardian = address(0);
}
function __transferGuardian(address newGuardian) public {
- require(
- msg.sender == guardian,
- "GovernorAlpha: sender must be gov guardian"
- );
+ require(msg.sender == guardian, "GovernorAlpha: sender must be gov guardian");
guardian = newGuardian;
}
- function __queueSetTimelockPendingAdmin(
- address newPendingAdmin,
- uint256 eta
- ) public {
- require(
- msg.sender == guardian,
- "GovernorAlpha: sender must be gov guardian"
- );
- timelock.queueTransaction(
- address(timelock),
- 0,
- "setPendingAdmin(address)",
- abi.encode(newPendingAdmin),
- eta
- );
+ function __queueSetTimelockPendingAdmin(address newPendingAdmin, uint256 eta) public {
+ require(msg.sender == guardian, "GovernorAlpha: sender must be gov guardian");
+ timelock.queueTransaction(address(timelock), 0, "setPendingAdmin(address)", abi.encode(newPendingAdmin), eta);
}
- function __executeSetTimelockPendingAdmin(
- address newPendingAdmin,
- uint256 eta
- ) public {
- require(
- msg.sender == guardian,
- "GovernorAlpha: sender must be gov guardian"
- );
- timelock.executeTransaction(
- address(timelock),
- 0,
- "setPendingAdmin(address)",
- abi.encode(newPendingAdmin),
- eta
- );
+ function __executeSetTimelockPendingAdmin(address newPendingAdmin, uint256 eta) public {
+ require(msg.sender == guardian, "GovernorAlpha: sender must be gov guardian");
+ timelock.executeTransaction(address(timelock), 0, "setPendingAdmin(address)", abi.encode(newPendingAdmin), eta);
}
function add256(uint256 a, uint256 b) internal pure returns (uint256) {
@@ -536,8 +453,5 @@ interface TimelockInterface {
}
interface TribeInterface {
- function getPriorVotes(address account, uint256 blockNumber)
- external
- view
- returns (uint96);
+ function getPriorVotes(address account, uint256 blockNumber) external view returns (uint96);
}
diff --git a/contracts/dao/nopeDAO/GovernorQuickReaction.sol b/contracts/dao/nopeDAO/GovernorQuickReaction.sol
new file mode 100644
index 000000000..ffc800e0b
--- /dev/null
+++ b/contracts/dao/nopeDAO/GovernorQuickReaction.sol
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";
+
+/**
+ * @dev Extension of {Governor} for quick reaction, whereby a proposal
+ * is executed immediately once Quorum is reached.
+ */
+abstract contract GovernorQuickReaction is Governor {
+ /// @notice Override state to achieve early execution
+ function state(uint256 proposalId) public view virtual override returns (ProposalState) {
+ ProposalState status = super.state(proposalId);
+
+ // Check if proposal is marked as Active.
+ // If so, check if quorum has been reached and vote is successful
+ // - if so, mark as Succeeded
+ // If quorum and vote are not achieved, but proposal is active just return
+ if (status == ProposalState.Active) {
+ if (_quorumReached(proposalId) && _voteSucceeded(proposalId)) {
+ return ProposalState.Succeeded;
+ }
+ }
+ return status;
+ }
+}
diff --git a/contracts/dao/nopeDAO/NopeDAO.sol b/contracts/dao/nopeDAO/NopeDAO.sol
new file mode 100644
index 000000000..f2b6576f1
--- /dev/null
+++ b/contracts/dao/nopeDAO/NopeDAO.sol
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {Governor, IGovernor} from "@openzeppelin/contracts/governance/Governor.sol";
+import {GovernorSettings} from "@openzeppelin/contracts/governance/extensions/GovernorSettings.sol";
+import {GovernorVotesComp, IERC165} from "@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol";
+import {GovernorCountingSimple} from "@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol";
+import {ERC20VotesComp} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol";
+import {CoreRef} from "../../refs/CoreRef.sol";
+import {TribeRoles} from "../../core/TribeRoles.sol";
+import {GovernorQuickReaction} from "./GovernorQuickReaction.sol";
+
+contract NopeDAO is
+ Governor,
+ GovernorSettings,
+ GovernorVotesComp,
+ GovernorQuickReaction,
+ GovernorCountingSimple,
+ CoreRef
+{
+ /// @notice Initial quorum required for a Nope proposal
+ uint256 private _quorum = 10_000_000e18;
+
+ /// @notice Additional governance events
+ event QuorumUpdated(uint256 oldQuorum, uint256 newQuorum);
+
+ constructor(ERC20VotesComp _tribe, address _core)
+ Governor("NopeDAO")
+ GovernorSettings(
+ 0, /* 0 blocks */
+ 4 days,
+ 0
+ )
+ GovernorVotesComp(_tribe)
+ GovernorQuickReaction()
+ CoreRef(_core)
+ {}
+
+ function quorum(uint256 blockNumber) public view override returns (uint256) {
+ return _quorum;
+ }
+
+ //////////// GOVERNOR ONLY FUNCTIONS //////////////
+
+ /// @notice Override of a Governor Settings function, to restrict to Tribe GOVERNOR
+ function setVotingDelay(uint256 newVotingDelay) public override onlyTribeRole(TribeRoles.GOVERNOR) {
+ _setVotingDelay(newVotingDelay);
+ }
+
+ /// @notice Override of a Governor Settings function, to restrict to Tribe GOVERNOR
+ function setVotingPeriod(uint256 newVotingPeriod) public override onlyTribeRole(TribeRoles.GOVERNOR) {
+ _setVotingPeriod(newVotingPeriod);
+ }
+
+ /// @notice Override of a Governor Settings function, to restrict to Tribe GOVERNOR
+ function setProposalThreshold(uint256 newProposalThreshold) public override onlyTribeRole(TribeRoles.GOVERNOR) {
+ _setProposalThreshold(newProposalThreshold);
+ }
+
+ /// @notice Adjust quorum of NopeDAO. Restricted to GOVERNOR, not part of GovernorSettings
+ function setQuorum(uint256 newQuroum) public onlyTribeRole(TribeRoles.GOVERNOR) {
+ uint256 oldQuorum = _quorum;
+ _quorum = newQuroum;
+ emit QuorumUpdated(oldQuorum, newQuroum);
+ }
+
+ // The following functions are overrides required by Solidity.
+
+ function votingDelay() public view override(IGovernor, GovernorSettings) returns (uint256) {
+ return super.votingDelay();
+ }
+
+ function votingPeriod() public view override(IGovernor, GovernorSettings) returns (uint256) {
+ return super.votingPeriod();
+ }
+
+ function getVotes(address account, uint256 blockNumber) public view override(Governor) returns (uint256) {
+ return super.getVotes(account, blockNumber);
+ }
+
+ function state(uint256 proposalId) public view override(GovernorQuickReaction, Governor) returns (ProposalState) {
+ return super.state(proposalId);
+ }
+
+ function propose(
+ address[] memory targets,
+ uint256[] memory values,
+ bytes[] memory calldatas,
+ string memory description
+ ) public override(Governor) returns (uint256) {
+ return super.propose(targets, values, calldatas, description);
+ }
+
+ function proposalThreshold() public view override(Governor, GovernorSettings) returns (uint256) {
+ return super.proposalThreshold();
+ }
+
+ function _execute(
+ uint256 proposalId,
+ address[] memory targets,
+ uint256[] memory values,
+ bytes[] memory calldatas,
+ bytes32 descriptionHash
+ ) internal override(Governor) {
+ super._execute(proposalId, targets, values, calldatas, descriptionHash);
+ }
+
+ function _cancel(
+ address[] memory targets,
+ uint256[] memory values,
+ bytes[] memory calldatas,
+ bytes32 descriptionHash
+ ) internal override(Governor) returns (uint256) {
+ return super._cancel(targets, values, calldatas, descriptionHash);
+ }
+
+ function _executor() internal view override(Governor) returns (address) {
+ return super._executor();
+ }
+
+ function supportsInterface(bytes4 interfaceId) public view override(Governor) returns (bool) {
+ return super.supportsInterface(interfaceId);
+ }
+}
diff --git a/contracts/dao/timelock/FeiDAOTimelock.sol b/contracts/dao/timelock/FeiDAOTimelock.sol
index 2f8503459..53677ab15 100644
--- a/contracts/dao/timelock/FeiDAOTimelock.sol
+++ b/contracts/dao/timelock/FeiDAOTimelock.sol
@@ -11,8 +11,7 @@ import "../../refs/CoreRef.sol";
The timelock itself could not unpause the timelock while in paused state.
*/
contract FeiDAOTimelock is Timelock, CoreRef {
- address public constant OLD_TIMELOCK =
- 0x639572471f2f318464dc01066a56867130e45E25;
+ address public constant OLD_TIMELOCK = 0x639572471f2f318464dc01066a56867130e45E25;
uint256 public constant ROLLBACK_DEADLINE = 1635724800; // Nov 1, 2021 midnight UTC
constructor(
@@ -42,13 +41,7 @@ contract FeiDAOTimelock is Timelock, CoreRef {
uint256[] memory etas
) public onlyGuardianOrGovernor {
for (uint256 i = 0; i < targets.length; i++) {
- _cancelTransaction(
- targets[i],
- values[i],
- signatures[i],
- datas[i],
- etas[i]
- );
+ _cancelTransaction(targets[i], values[i], signatures[i], datas[i], etas[i]);
}
}
@@ -72,10 +65,7 @@ contract FeiDAOTimelock is Timelock, CoreRef {
/// @notice one-time option to roll back the Timelock to old timelock
/// @dev guardian-only, and expires after the deadline. This function is here as a fallback in case something goes wrong.
function rollback() external onlyGuardianOrGovernor {
- require(
- block.timestamp <= ROLLBACK_DEADLINE,
- "FeiDAOTimelock: rollback expired"
- );
+ require(block.timestamp <= ROLLBACK_DEADLINE, "FeiDAOTimelock: rollback expired");
IFeiDAO(admin).updateTimelock(OLD_TIMELOCK);
}
diff --git a/contracts/dao/timelock/ITimelock.sol b/contracts/dao/timelock/ITimelock.sol
new file mode 100644
index 000000000..74a72b229
--- /dev/null
+++ b/contracts/dao/timelock/ITimelock.sol
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+interface ITimelock {
+ function becomeAdmin() external;
+
+ function hasRole(bytes32 role, address account) external view returns (bool);
+
+ function execute(
+ address target,
+ uint256 value,
+ bytes calldata data,
+ bytes32 predecessor,
+ bytes32 salt
+ ) external payable;
+}
diff --git a/contracts/dao/timelock/Timelock.sol b/contracts/dao/timelock/Timelock.sol
index 7f43083ef..f31bf0095 100644
--- a/contracts/dao/timelock/Timelock.sol
+++ b/contracts/dao/timelock/Timelock.sol
@@ -52,14 +52,8 @@ contract Timelock {
uint256 minDelay_
) {
MINIMUM_DELAY = minDelay_;
- require(
- delay_ >= minDelay_,
- "Timelock: Delay must exceed minimum delay."
- );
- require(
- delay_ <= MAXIMUM_DELAY,
- "Timelock: Delay must not exceed maximum delay."
- );
+ require(delay_ >= minDelay_, "Timelock: Delay must exceed minimum delay.");
+ require(delay_ <= MAXIMUM_DELAY, "Timelock: Delay must not exceed maximum delay.");
require(admin_ != address(0), "Timelock: Admin must not be 0 address");
admin = admin_;
@@ -69,28 +63,16 @@ contract Timelock {
receive() external payable {}
function setDelay(uint256 delay_) public {
- require(
- msg.sender == address(this),
- "Timelock: Call must come from Timelock."
- );
- require(
- delay_ >= MINIMUM_DELAY,
- "Timelock: Delay must exceed minimum delay."
- );
- require(
- delay_ <= MAXIMUM_DELAY,
- "Timelock: Delay must not exceed maximum delay."
- );
+ require(msg.sender == address(this), "Timelock: Call must come from Timelock.");
+ require(delay_ >= MINIMUM_DELAY, "Timelock: Delay must exceed minimum delay.");
+ require(delay_ <= MAXIMUM_DELAY, "Timelock: Delay must not exceed maximum delay.");
delay = delay_;
emit NewDelay(delay);
}
function acceptAdmin() public {
- require(
- msg.sender == pendingAdmin,
- "Timelock: Call must come from pendingAdmin."
- );
+ require(msg.sender == pendingAdmin, "Timelock: Call must come from pendingAdmin.");
admin = msg.sender;
pendingAdmin = address(0);
@@ -98,10 +80,7 @@ contract Timelock {
}
function setPendingAdmin(address pendingAdmin_) public {
- require(
- msg.sender == address(this),
- "Timelock: Call must come from Timelock."
- );
+ require(msg.sender == address(this), "Timelock: Call must come from Timelock.");
pendingAdmin = pendingAdmin_;
emit NewPendingAdmin(pendingAdmin);
@@ -115,10 +94,7 @@ contract Timelock {
uint256 eta
) public virtual returns (bytes32) {
require(msg.sender == admin, "Timelock: Call must come from admin.");
- require(
- eta >= getBlockTimestamp().add(delay),
- "Timelock: Estimated execution block must satisfy delay."
- );
+ require(eta >= getBlockTimestamp().add(delay), "Timelock: Estimated execution block must satisfy delay.");
bytes32 txHash = getTxHash(target, value, signature, data, eta);
queuedTransactions[txHash] = true;
@@ -162,18 +138,9 @@ contract Timelock {
require(msg.sender == admin, "Timelock: Call must come from admin.");
bytes32 txHash = getTxHash(target, value, signature, data, eta);
- require(
- queuedTransactions[txHash],
- "Timelock: Transaction hasn't been queued."
- );
- require(
- getBlockTimestamp() >= eta,
- "Timelock: Transaction hasn't surpassed time lock."
- );
- require(
- getBlockTimestamp() <= eta.add(GRACE_PERIOD),
- "Timelock: Transaction is stale."
- );
+ require(queuedTransactions[txHash], "Timelock: Transaction hasn't been queued.");
+ require(getBlockTimestamp() >= eta, "Timelock: Transaction hasn't surpassed time lock.");
+ require(getBlockTimestamp() <= eta.add(GRACE_PERIOD), "Timelock: Transaction is stale.");
queuedTransactions[txHash] = false;
@@ -182,16 +149,11 @@ contract Timelock {
if (bytes(signature).length == 0) {
callData = data;
} else {
- callData = abi.encodePacked(
- bytes4(keccak256(bytes(signature))),
- data
- );
+ callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);
}
// solhint-disable-next-line avoid-low-level-calls
- (bool success, bytes memory returnData) = target.call{value: value}(
- callData
- ); //solhint-disable avoid-call-value
+ (bool success, bytes memory returnData) = target.call{value: value}(callData); //solhint-disable avoid-call-value
require(success, "Timelock: Transaction execution reverted.");
emit ExecuteTransaction(txHash, target, value, signature, data, eta);
diff --git a/contracts/external/Decimal.sol b/contracts/external/Decimal.sol
index 83d27dc4f..5d17cea46 100644
--- a/contracts/external/Decimal.sol
+++ b/contracts/external/Decimal.sol
@@ -55,19 +55,11 @@ library Decimal {
// ============ Self Functions ============
- function add(D256 memory self, uint256 b)
- internal
- pure
- returns (D256 memory)
- {
+ function add(D256 memory self, uint256 b) internal pure returns (D256 memory) {
return D256({value: self.value.add(b.mul(BASE))});
}
- function sub(D256 memory self, uint256 b)
- internal
- pure
- returns (D256 memory)
- {
+ function sub(D256 memory self, uint256 b) internal pure returns (D256 memory) {
return D256({value: self.value.sub(b.mul(BASE))});
}
@@ -79,27 +71,15 @@ library Decimal {
return D256({value: self.value.sub(b.mul(BASE), reason)});
}
- function mul(D256 memory self, uint256 b)
- internal
- pure
- returns (D256 memory)
- {
+ function mul(D256 memory self, uint256 b) internal pure returns (D256 memory) {
return D256({value: self.value.mul(b)});
}
- function div(D256 memory self, uint256 b)
- internal
- pure
- returns (D256 memory)
- {
+ function div(D256 memory self, uint256 b) internal pure returns (D256 memory) {
return D256({value: self.value.div(b)});
}
- function pow(D256 memory self, uint256 b)
- internal
- pure
- returns (D256 memory)
- {
+ function pow(D256 memory self, uint256 b) internal pure returns (D256 memory) {
if (b == 0) {
return from(1);
}
@@ -112,19 +92,11 @@ library Decimal {
return temp;
}
- function add(D256 memory self, D256 memory b)
- internal
- pure
- returns (D256 memory)
- {
+ function add(D256 memory self, D256 memory b) internal pure returns (D256 memory) {
return D256({value: self.value.add(b.value)});
}
- function sub(D256 memory self, D256 memory b)
- internal
- pure
- returns (D256 memory)
- {
+ function sub(D256 memory self, D256 memory b) internal pure returns (D256 memory) {
return D256({value: self.value.sub(b.value)});
}
@@ -136,59 +108,31 @@ library Decimal {
return D256({value: self.value.sub(b.value, reason)});
}
- function mul(D256 memory self, D256 memory b)
- internal
- pure
- returns (D256 memory)
- {
+ function mul(D256 memory self, D256 memory b) internal pure returns (D256 memory) {
return D256({value: getPartial(self.value, b.value, BASE)});
}
- function div(D256 memory self, D256 memory b)
- internal
- pure
- returns (D256 memory)
- {
+ function div(D256 memory self, D256 memory b) internal pure returns (D256 memory) {
return D256({value: getPartial(self.value, BASE, b.value)});
}
- function equals(D256 memory self, D256 memory b)
- internal
- pure
- returns (bool)
- {
+ function equals(D256 memory self, D256 memory b) internal pure returns (bool) {
return self.value == b.value;
}
- function greaterThan(D256 memory self, D256 memory b)
- internal
- pure
- returns (bool)
- {
+ function greaterThan(D256 memory self, D256 memory b) internal pure returns (bool) {
return compareTo(self, b) == 2;
}
- function lessThan(D256 memory self, D256 memory b)
- internal
- pure
- returns (bool)
- {
+ function lessThan(D256 memory self, D256 memory b) internal pure returns (bool) {
return compareTo(self, b) == 0;
}
- function greaterThanOrEqualTo(D256 memory self, D256 memory b)
- internal
- pure
- returns (bool)
- {
+ function greaterThanOrEqualTo(D256 memory self, D256 memory b) internal pure returns (bool) {
return compareTo(self, b) > 0;
}
- function lessThanOrEqualTo(D256 memory self, D256 memory b)
- internal
- pure
- returns (bool)
- {
+ function lessThanOrEqualTo(D256 memory self, D256 memory b) internal pure returns (bool) {
return compareTo(self, b) < 2;
}
@@ -210,11 +154,7 @@ library Decimal {
return target.mul(numerator).div(denominator);
}
- function compareTo(D256 memory a, D256 memory b)
- private
- pure
- returns (uint256)
- {
+ function compareTo(D256 memory a, D256 memory b) private pure returns (uint256) {
if (a.value == b.value) {
return 1;
}
diff --git a/contracts/external/aave/IAaveDistributionManager.sol b/contracts/external/aave/IAaveDistributionManager.sol
index cc66cbbbe..37f277ec8 100644
--- a/contracts/external/aave/IAaveDistributionManager.sol
+++ b/contracts/external/aave/IAaveDistributionManager.sol
@@ -5,11 +5,7 @@ pragma experimental ABIEncoderV2;
interface IAaveDistributionManager {
event AssetConfigUpdated(address indexed asset, uint256 emission);
event AssetIndexUpdated(address indexed asset, uint256 index);
- event UserIndexUpdated(
- address indexed user,
- address indexed asset,
- uint256 index
- );
+ event UserIndexUpdated(address indexed user, address indexed asset, uint256 index);
event DistributionEndUpdated(uint256 newDistributionEnd);
/**
@@ -36,10 +32,7 @@ interface IAaveDistributionManager {
* @param asset The address of the reference asset of the distribution
* @return The new index
**/
- function getUserAssetData(address user, address asset)
- external
- view
- returns (uint256);
+ function getUserAssetData(address user, address asset) external view returns (uint256);
/**
* @dev Returns the configuration of the distribution for a certain asset
diff --git a/contracts/external/aave/IAaveGovernanceV2.sol b/contracts/external/aave/IAaveGovernanceV2.sol
index 7178e505b..376e2111b 100644
--- a/contracts/external/aave/IAaveGovernanceV2.sol
+++ b/contracts/external/aave/IAaveGovernanceV2.sol
@@ -108,11 +108,7 @@ interface IAaveGovernanceV2 {
* @param executionTime time when proposal underlying transactions can be executed
* @param initiatorQueueing address of the initiator of the queuing transaction
**/
- event ProposalQueued(
- uint256 id,
- uint256 executionTime,
- address indexed initiatorQueueing
- );
+ event ProposalQueued(uint256 id, uint256 executionTime, address indexed initiatorQueueing);
/**
* @dev emitted when a proposal is executed
* @param id Id of the proposal
@@ -126,22 +122,11 @@ interface IAaveGovernanceV2 {
* @param support boolean, true = vote for, false = vote against
* @param votingPower Power of the voter/vote
**/
- event VoteEmitted(
- uint256 id,
- address indexed voter,
- bool support,
- uint256 votingPower
- );
+ event VoteEmitted(uint256 id, address indexed voter, bool support, uint256 votingPower);
- event GovernanceStrategyChanged(
- address indexed newStrategy,
- address indexed initiatorChange
- );
+ event GovernanceStrategyChanged(address indexed newStrategy, address indexed initiatorChange);
- event VotingDelayChanged(
- uint256 newVotingDelay,
- address indexed initiatorChange
- );
+ event VotingDelayChanged(uint256 newVotingDelay, address indexed initiatorChange);
event ExecutorAuthorized(address executor);
@@ -259,10 +244,7 @@ interface IAaveGovernanceV2 {
* @param executor address to evaluate as authorized executor
* @return true if authorized
**/
- function isExecutorAuthorized(address executor)
- external
- view
- returns (bool);
+ function isExecutorAuthorized(address executor) external view returns (bool);
/**
* @dev Getter the address of the guardian, that can mainly cancel proposals
@@ -281,10 +263,7 @@ interface IAaveGovernanceV2 {
* @param proposalId id of the proposal to get
* @return the proposal as ProposalWithoutVotes memory object
**/
- function getProposalById(uint256 proposalId)
- external
- view
- returns (ProposalWithoutVotes memory);
+ function getProposalById(uint256 proposalId) external view returns (ProposalWithoutVotes memory);
/**
* @dev Getter of the Vote of a voter about a proposal
@@ -293,18 +272,12 @@ interface IAaveGovernanceV2 {
* @param voter address of the voter
* @return The associated Vote memory object
**/
- function getVoteOnProposal(uint256 proposalId, address voter)
- external
- view
- returns (Vote memory);
+ function getVoteOnProposal(uint256 proposalId, address voter) external view returns (Vote memory);
/**
* @dev Get the current state of a proposal
* @param proposalId id of the proposal
* @return The current state if the proposal
**/
- function getProposalState(uint256 proposalId)
- external
- view
- returns (ProposalState);
+ function getProposalState(uint256 proposalId) external view returns (ProposalState);
}
diff --git a/contracts/external/aave/IAaveIncentivesController.sol b/contracts/external/aave/IAaveIncentivesController.sol
index 10c930627..12ee5215c 100644
--- a/contracts/external/aave/IAaveIncentivesController.sol
+++ b/contracts/external/aave/IAaveIncentivesController.sol
@@ -8,12 +8,7 @@ import {IAaveDistributionManager} from "./IAaveDistributionManager.sol";
interface IAaveIncentivesController is IAaveDistributionManager {
event RewardsAccrued(address indexed user, uint256 amount);
- event RewardsClaimed(
- address indexed user,
- address indexed to,
- address indexed claimer,
- uint256 amount
- );
+ event RewardsClaimed(address indexed user, address indexed to, address indexed claimer, uint256 amount);
event ClaimerSet(address indexed user, address indexed claimer);
@@ -36,10 +31,7 @@ interface IAaveIncentivesController is IAaveDistributionManager {
* @param assets The assets to incentivize
* @param emissionsPerSecond The emission for each asset
*/
- function configureAssets(
- address[] calldata assets,
- uint256[] calldata emissionsPerSecond
- ) external;
+ function configureAssets(address[] calldata assets, uint256[] calldata emissionsPerSecond) external;
/**
* @dev Called by the corresponding asset on any update that affects the rewards distribution
@@ -58,10 +50,7 @@ interface IAaveIncentivesController is IAaveDistributionManager {
* @param user The address of the user
* @return The rewards
**/
- function getRewardsBalance(address[] calldata assets, address user)
- external
- view
- returns (uint256);
+ function getRewardsBalance(address[] calldata assets, address user) external view returns (uint256);
/**
* @dev Claims reward for an user, on all the assets of the lending pool, accumulating the pending rewards
@@ -95,10 +84,7 @@ interface IAaveIncentivesController is IAaveDistributionManager {
* @param user the address of the user
* @return the unclaimed user rewards
*/
- function getUserUnclaimedRewards(address user)
- external
- view
- returns (uint256);
+ function getUserUnclaimedRewards(address user) external view returns (uint256);
/**
* @dev for backward compatibility with previous implementation of the Incentives controller
diff --git a/contracts/external/aave/ILendingPool.sol b/contracts/external/aave/ILendingPool.sol
index a28867497..2c2cbfabc 100644
--- a/contracts/external/aave/ILendingPool.sol
+++ b/contracts/external/aave/ILendingPool.sol
@@ -31,12 +31,7 @@ interface ILendingPool {
* @param to Address that will receive the underlying
* @param amount The amount to be withdrawn
**/
- event Withdraw(
- address indexed reserve,
- address indexed user,
- address indexed to,
- uint256 amount
- );
+ event Withdraw(address indexed reserve, address indexed user, address indexed to, uint256 amount);
/**
* @dev Emitted on borrow() and flashLoan() when debt needs to be opened
@@ -66,12 +61,7 @@ interface ILendingPool {
* @param repayer The address of the user initiating the repay(), providing the funds
* @param amount The amount repaid
**/
- event Repay(
- address indexed reserve,
- address indexed user,
- address indexed repayer,
- uint256 amount
- );
+ event Repay(address indexed reserve, address indexed user, address indexed repayer, uint256 amount);
/**
* @dev Emitted on swapBorrowRateMode()
@@ -86,30 +76,21 @@ interface ILendingPool {
* @param reserve The address of the underlying asset of the reserve
* @param user The address of the user enabling the usage as collateral
**/
- event ReserveUsedAsCollateralEnabled(
- address indexed reserve,
- address indexed user
- );
+ event ReserveUsedAsCollateralEnabled(address indexed reserve, address indexed user);
/**
* @dev Emitted on setUserUseReserveAsCollateral()
* @param reserve The address of the underlying asset of the reserve
* @param user The address of the user enabling the usage as collateral
**/
- event ReserveUsedAsCollateralDisabled(
- address indexed reserve,
- address indexed user
- );
+ event ReserveUsedAsCollateralDisabled(address indexed reserve, address indexed user);
/**
* @dev Emitted on rebalanceStableBorrowRate()
* @param reserve The address of the underlying asset of the reserve
* @param user The address of the user for which the rebalance has been executed
**/
- event RebalanceStableBorrowRate(
- address indexed reserve,
- address indexed user
- );
+ event RebalanceStableBorrowRate(address indexed reserve, address indexed user);
/**
* @dev Emitted on flashLoan()
@@ -283,8 +264,7 @@ interface ILendingPool {
* @param asset The address of the underlying asset deposited
* @param useAsCollateral `true` if the user wants to use the deposit as collateral, `false` otherwise
**/
- function setUserUseReserveAsCollateral(address asset, bool useAsCollateral)
- external;
+ function setUserUseReserveAsCollateral(address asset, bool useAsCollateral) external;
/**
* @dev Function to liquidate a non-healthy position collateral-wise, with Health Factor below 1
@@ -362,10 +342,7 @@ interface ILendingPool {
address interestRateStrategyAddress
) external;
- function setReserveInterestRateStrategyAddress(
- address reserve,
- address rateStrategyAddress
- ) external;
+ function setReserveInterestRateStrategyAddress(address reserve, address rateStrategyAddress) external;
function setConfiguration(address reserve, uint256 configuration) external;
@@ -374,40 +351,28 @@ interface ILendingPool {
* @param asset The address of the underlying asset of the reserve
* @return The configuration of the reserve
**/
- function getConfiguration(address asset)
- external
- view
- returns (DataTypes.ReserveConfigurationMap memory);
+ function getConfiguration(address asset) external view returns (DataTypes.ReserveConfigurationMap memory);
/**
* @dev Returns the state and configuration of the reserve
* @param asset The address of the underlying asset of the reserve
* @return The state of the reserve
**/
- function getReserveData(address asset)
- external
- view
- returns (DataTypes.ReserveData memory);
+ function getReserveData(address asset) external view returns (DataTypes.ReserveData memory);
/**
* @dev Returns the normalized income normalized income of the reserve
* @param asset The address of the underlying asset of the reserve
* @return The reserve's normalized income
*/
- function getReserveNormalizedIncome(address asset)
- external
- view
- returns (uint256);
+ function getReserveNormalizedIncome(address asset) external view returns (uint256);
/**
* @dev Returns the normalized variable debt per unit of asset
* @param asset The address of the underlying asset of the reserve
* @return The reserve normalized variable debt
*/
- function getReserveNormalizedVariableDebt(address asset)
- external
- view
- returns (uint256);
+ function getReserveNormalizedVariableDebt(address asset) external view returns (uint256);
function finalizeTransfer(
address asset,
@@ -420,10 +385,7 @@ interface ILendingPool {
function getReservesList() external view returns (address[] memory);
- function getAddressesProvider()
- external
- view
- returns (ILendingPoolAddressesProvider);
+ function getAddressesProvider() external view returns (ILendingPoolAddressesProvider);
function setPause(bool val) external;
diff --git a/contracts/external/fuse/CErc20Delegator.sol b/contracts/external/fuse/CErc20Delegator.sol
index 900e2d775..d636860e4 100644
--- a/contracts/external/fuse/CErc20Delegator.sol
+++ b/contracts/external/fuse/CErc20Delegator.sol
@@ -10,15 +10,9 @@ abstract contract CErc20Delegator is IERC20 {
address public pendingAdmin;
address public interestRateModel;
- function _setPendingAdmin(address payable newPendingAdmin)
- external
- virtual
- returns (uint256);
+ function _setPendingAdmin(address payable newPendingAdmin) external virtual returns (uint256);
- function _setInterestRateModel(InterestRateModel newInterestRateModel)
- public
- virtual
- returns (uint256);
+ function _setInterestRateModel(InterestRateModel newInterestRateModel) public virtual returns (uint256);
function _setImplementationSafe(
address implementation_,
@@ -36,9 +30,5 @@ abstract contract CErc20Delegator is IERC20 {
function borrow(uint256 mintAmount) external virtual returns (uint256);
- function balanceOfUnderlying(address owner)
- external
- view
- virtual
- returns (uint256);
+ function balanceOfUnderlying(address owner) external view virtual returns (uint256);
}
diff --git a/contracts/external/fuse/IFuseFeeDistributor.sol b/contracts/external/fuse/IFuseFeeDistributor.sol
index 6b956da2b..05206cb8f 100644
--- a/contracts/external/fuse/IFuseFeeDistributor.sol
+++ b/contracts/external/fuse/IFuseFeeDistributor.sol
@@ -9,6 +9,5 @@ interface IFuseFeeDistributor {
bool[] memory statuses
) external;
- function _callPool(address[] calldata targets, bytes calldata data)
- external;
+ function _callPool(address[] calldata targets, bytes calldata data) external;
}
diff --git a/contracts/external/fuse/Unitroller.sol b/contracts/external/fuse/Unitroller.sol
index 2f7a3bbec..545203548 100644
--- a/contracts/external/fuse/Unitroller.sol
+++ b/contracts/external/fuse/Unitroller.sol
@@ -22,66 +22,33 @@ abstract contract Unitroller {
mapping(address => address) public cTokensByUnderlying;
mapping(address => uint256) public supplyCaps;
- function enterMarkets(address[] memory cTokens)
- public
- virtual
- returns (uint256[] memory);
+ function enterMarkets(address[] memory cTokens) public virtual returns (uint256[] memory);
- function _setPendingAdmin(address newPendingAdmin)
- public
- virtual
- returns (uint256);
+ function _setPendingAdmin(address newPendingAdmin) public virtual returns (uint256);
function _setBorrowCapGuardian(address newBorrowCapGuardian) public virtual;
- function _setMarketSupplyCaps(
- CToken[] calldata cTokens,
- uint256[] calldata newSupplyCaps
- ) external virtual;
+ function _setMarketSupplyCaps(CToken[] calldata cTokens, uint256[] calldata newSupplyCaps) external virtual;
- function _setMarketBorrowCaps(
- CToken[] calldata cTokens,
- uint256[] calldata newBorrowCaps
- ) external virtual;
+ function _setMarketBorrowCaps(CToken[] calldata cTokens, uint256[] calldata newBorrowCaps) external virtual;
- function _setPauseGuardian(address newPauseGuardian)
- public
- virtual
- returns (uint256);
+ function _setPauseGuardian(address newPauseGuardian) public virtual returns (uint256);
- function _setMintPaused(CToken cToken, bool state)
- public
- virtual
- returns (bool);
+ function _setMintPaused(CToken cToken, bool state) public virtual returns (bool);
- function _setBorrowPaused(CToken cToken, bool borrowPaused)
- public
- virtual
- returns (bool);
+ function _setBorrowPaused(CToken cToken, bool borrowPaused) public virtual returns (bool);
function _setTransferPaused(bool state) public virtual returns (bool);
function _setSeizePaused(bool state) public virtual returns (bool);
- function _setPriceOracle(address newOracle)
- external
- virtual
- returns (uint256);
+ function _setPriceOracle(address newOracle) external virtual returns (uint256);
- function _setCloseFactor(uint256 newCloseFactorMantissa)
- external
- virtual
- returns (uint256);
+ function _setCloseFactor(uint256 newCloseFactorMantissa) external virtual returns (uint256);
- function _setLiquidationIncentive(uint256 newLiquidationIncentiveMantissa)
- external
- virtual
- returns (uint256);
+ function _setLiquidationIncentive(uint256 newLiquidationIncentiveMantissa) external virtual returns (uint256);
- function _setCollateralFactor(
- CToken cToken,
- uint256 newCollateralFactorMantissa
- ) public virtual returns (uint256);
+ function _setCollateralFactor(CToken cToken, uint256 newCollateralFactorMantissa) public virtual returns (uint256);
function _acceptAdmin() external virtual returns (uint256);
@@ -91,43 +58,22 @@ abstract contract Unitroller {
uint256 collateralFactorMantissa
) external virtual returns (uint256);
- function borrowGuardianPaused(address cToken)
- external
- view
- virtual
- returns (bool);
+ function borrowGuardianPaused(address cToken) external view virtual returns (bool);
- function comptrollerImplementation()
- external
- view
- virtual
- returns (address);
+ function comptrollerImplementation() external view virtual returns (address);
- function rewardsDistributors(uint256 index)
- external
- view
- virtual
- returns (address);
+ function rewardsDistributors(uint256 index) external view virtual returns (address);
- function _addRewardsDistributor(address distributor)
- external
- virtual
- returns (uint256);
+ function _addRewardsDistributor(address distributor) external virtual returns (uint256);
- function _setWhitelistEnforcement(bool enforce)
+ function _setWhitelistEnforcement(bool enforce) external virtual returns (uint256);
+
+ function _setWhitelistStatuses(address[] calldata suppliers, bool[] calldata statuses)
external
virtual
returns (uint256);
- function _setWhitelistStatuses(
- address[] calldata suppliers,
- bool[] calldata statuses
- ) external virtual returns (uint256);
-
function _unsupportMarket(CToken cToken) external virtual returns (uint256);
- function _toggleAutoImplementations(bool enabled)
- public
- virtual
- returns (uint256);
+ function _toggleAutoImplementations(bool enabled) public virtual returns (uint256);
}
diff --git a/contracts/external/gyro/ExtendedMath.sol b/contracts/external/gyro/ExtendedMath.sol
index f6050da8f..96c574eec 100644
--- a/contracts/external/gyro/ExtendedMath.sol
+++ b/contracts/external/gyro/ExtendedMath.sol
@@ -104,11 +104,7 @@ library ExtendedMath {
/**
* @notice See `scaledPow(uint256 base, uint256 exp, uint256 _decimals)`
*/
- function scaledPow(uint256 base, uint256 exp)
- internal
- pure
- returns (uint256)
- {
+ function scaledPow(uint256 base, uint256 exp) internal pure returns (uint256) {
return scaledPow(base, exp, decimals);
}
}
diff --git a/contracts/external/gyro/abdk/ABDKMath64x64.sol b/contracts/external/gyro/abdk/ABDKMath64x64.sol
index 4b022622d..6d680f7e1 100644
--- a/contracts/external/gyro/abdk/ABDKMath64x64.sol
+++ b/contracts/external/gyro/abdk/ABDKMath64x64.sol
@@ -67,10 +67,7 @@ library ABDKMath64x64 {
* @return signed 64.64-bit fixed point number
*/
function fromUInt(uint256 x) internal pure returns (int128) {
- require(
- x <= 0x7FFFFFFFFFFFFFFF,
- "value is too high to be transformed in a 64.64-bit number"
- );
+ require(x <= 0x7FFFFFFFFFFFFFFF, "value is too high to be transformed in a 64.64-bit number");
return uint256toInt128(x << 64);
}
@@ -82,11 +79,7 @@ library ABDKMath64x64 {
* @param decimal scale of the number
* @return signed 64.64-bit fixed point number
*/
- function fromScaled(uint256 x, uint256 decimal)
- internal
- pure
- returns (int128)
- {
+ function fromScaled(uint256 x, uint256 decimal) internal pure returns (int128) {
uint256 scale = 10**decimal;
int128 wholeNumber = fromUInt(x / scale);
int128 decimalNumber = div(fromUInt(x % scale), fromUInt(scale));
@@ -195,16 +188,10 @@ library ABDKMath64x64 {
}
uint256 absoluteResult = mulu(x, uint256(y));
if (negativeResult) {
- require(
- absoluteResult <=
- 0x8000000000000000000000000000000000000000000000000000000000000000
- );
+ require(absoluteResult <= 0x8000000000000000000000000000000000000000000000000000000000000000);
return -int256(absoluteResult); // We rely on overflow behavior here
} else {
- require(
- absoluteResult <=
- 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
- );
+ require(absoluteResult <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
return int256(absoluteResult);
}
}
@@ -223,18 +210,13 @@ library ABDKMath64x64 {
require(x >= 0);
- uint256 lo = (int128toUint256(x) *
- (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)) >> 64;
+ uint256 lo = (int128toUint256(x) * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)) >> 64;
uint256 hi = int128toUint256(x) * (y >> 128);
require(hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
hi <<= 64;
- require(
- hi <=
- 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -
- lo
- );
+ require(hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - lo);
return hi + lo;
}
@@ -356,10 +338,7 @@ library ABDKMath64x64 {
function gavg(int128 x, int128 y) internal pure returns (int128) {
int256 m = int256(x) * int256(y);
require(m >= 0);
- require(
- m <
- 0x4000000000000000000000000000000000000000000000000000000000000000
- );
+ require(m < 0x4000000000000000000000000000000000000000000000000000000000000000);
return int128(sqrtu(uint256(m)));
}
@@ -462,11 +441,7 @@ library ABDKMath64x64 {
function ln(int128 x) internal pure returns (int128) {
require(x > 0);
- return
- uint256toInt128(
- (int128toUint256(log_2(x)) *
- 0xB17217F7D1CF79ABC9E3B39803F2F6AF) >> 128
- );
+ return uint256toInt128((int128toUint256(log_2(x)) * 0xB17217F7D1CF79ABC9E3B39803F2F6AF) >> 128);
}
/**
@@ -482,134 +457,70 @@ library ABDKMath64x64 {
uint256 result = 0x80000000000000000000000000000000;
- if (x & 0x8000000000000000 > 0)
- result = (result * 0x16A09E667F3BCC908B2FB1366EA957D3E) >> 128;
- if (x & 0x4000000000000000 > 0)
- result = (result * 0x1306FE0A31B7152DE8D5A46305C85EDEC) >> 128;
- if (x & 0x2000000000000000 > 0)
- result = (result * 0x1172B83C7D517ADCDF7C8C50EB14A791F) >> 128;
- if (x & 0x1000000000000000 > 0)
- result = (result * 0x10B5586CF9890F6298B92B71842A98363) >> 128;
- if (x & 0x800000000000000 > 0)
- result = (result * 0x1059B0D31585743AE7C548EB68CA417FD) >> 128;
- if (x & 0x400000000000000 > 0)
- result = (result * 0x102C9A3E778060EE6F7CACA4F7A29BDE8) >> 128;
- if (x & 0x200000000000000 > 0)
- result = (result * 0x10163DA9FB33356D84A66AE336DCDFA3F) >> 128;
- if (x & 0x100000000000000 > 0)
- result = (result * 0x100B1AFA5ABCBED6129AB13EC11DC9543) >> 128;
- if (x & 0x80000000000000 > 0)
- result = (result * 0x10058C86DA1C09EA1FF19D294CF2F679B) >> 128;
- if (x & 0x40000000000000 > 0)
- result = (result * 0x1002C605E2E8CEC506D21BFC89A23A00F) >> 128;
- if (x & 0x20000000000000 > 0)
- result = (result * 0x100162F3904051FA128BCA9C55C31E5DF) >> 128;
- if (x & 0x10000000000000 > 0)
- result = (result * 0x1000B175EFFDC76BA38E31671CA939725) >> 128;
- if (x & 0x8000000000000 > 0)
- result = (result * 0x100058BA01FB9F96D6CACD4B180917C3D) >> 128;
- if (x & 0x4000000000000 > 0)
- result = (result * 0x10002C5CC37DA9491D0985C348C68E7B3) >> 128;
- if (x & 0x2000000000000 > 0)
- result = (result * 0x1000162E525EE054754457D5995292026) >> 128;
- if (x & 0x1000000000000 > 0)
- result = (result * 0x10000B17255775C040618BF4A4ADE83FC) >> 128;
- if (x & 0x800000000000 > 0)
- result = (result * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB) >> 128;
- if (x & 0x400000000000 > 0)
- result = (result * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9) >> 128;
- if (x & 0x200000000000 > 0)
- result = (result * 0x10000162E43F4F831060E02D839A9D16D) >> 128;
- if (x & 0x100000000000 > 0)
- result = (result * 0x100000B1721BCFC99D9F890EA06911763) >> 128;
- if (x & 0x80000000000 > 0)
- result = (result * 0x10000058B90CF1E6D97F9CA14DBCC1628) >> 128;
- if (x & 0x40000000000 > 0)
- result = (result * 0x1000002C5C863B73F016468F6BAC5CA2B) >> 128;
- if (x & 0x20000000000 > 0)
- result = (result * 0x100000162E430E5A18F6119E3C02282A5) >> 128;
- if (x & 0x10000000000 > 0)
- result = (result * 0x1000000B1721835514B86E6D96EFD1BFE) >> 128;
- if (x & 0x8000000000 > 0)
- result = (result * 0x100000058B90C0B48C6BE5DF846C5B2EF) >> 128;
- if (x & 0x4000000000 > 0)
- result = (result * 0x10000002C5C8601CC6B9E94213C72737A) >> 128;
- if (x & 0x2000000000 > 0)
- result = (result * 0x1000000162E42FFF037DF38AA2B219F06) >> 128;
- if (x & 0x1000000000 > 0)
- result = (result * 0x10000000B17217FBA9C739AA5819F44F9) >> 128;
- if (x & 0x800000000 > 0)
- result = (result * 0x1000000058B90BFCDEE5ACD3C1CEDC823) >> 128;
- if (x & 0x400000000 > 0)
- result = (result * 0x100000002C5C85FE31F35A6A30DA1BE50) >> 128;
- if (x & 0x200000000 > 0)
- result = (result * 0x10000000162E42FF0999CE3541B9FFFCF) >> 128;
- if (x & 0x100000000 > 0)
- result = (result * 0x100000000B17217F80F4EF5AADDA45554) >> 128;
- if (x & 0x80000000 > 0)
- result = (result * 0x10000000058B90BFBF8479BD5A81B51AD) >> 128;
- if (x & 0x40000000 > 0)
- result = (result * 0x1000000002C5C85FDF84BD62AE30A74CC) >> 128;
- if (x & 0x20000000 > 0)
- result = (result * 0x100000000162E42FEFB2FED257559BDAA) >> 128;
- if (x & 0x10000000 > 0)
- result = (result * 0x1000000000B17217F7D5A7716BBA4A9AE) >> 128;
- if (x & 0x8000000 > 0)
- result = (result * 0x100000000058B90BFBE9DDBAC5E109CCE) >> 128;
- if (x & 0x4000000 > 0)
- result = (result * 0x10000000002C5C85FDF4B15DE6F17EB0D) >> 128;
- if (x & 0x2000000 > 0)
- result = (result * 0x1000000000162E42FEFA494F1478FDE05) >> 128;
- if (x & 0x1000000 > 0)
- result = (result * 0x10000000000B17217F7D20CF927C8E94C) >> 128;
- if (x & 0x800000 > 0)
- result = (result * 0x1000000000058B90BFBE8F71CB4E4B33D) >> 128;
- if (x & 0x400000 > 0)
- result = (result * 0x100000000002C5C85FDF477B662B26945) >> 128;
- if (x & 0x200000 > 0)
- result = (result * 0x10000000000162E42FEFA3AE53369388C) >> 128;
- if (x & 0x100000 > 0)
- result = (result * 0x100000000000B17217F7D1D351A389D40) >> 128;
- if (x & 0x80000 > 0)
- result = (result * 0x10000000000058B90BFBE8E8B2D3D4EDE) >> 128;
- if (x & 0x40000 > 0)
- result = (result * 0x1000000000002C5C85FDF4741BEA6E77E) >> 128;
- if (x & 0x20000 > 0)
- result = (result * 0x100000000000162E42FEFA39FE95583C2) >> 128;
- if (x & 0x10000 > 0)
- result = (result * 0x1000000000000B17217F7D1CFB72B45E1) >> 128;
- if (x & 0x8000 > 0)
- result = (result * 0x100000000000058B90BFBE8E7CC35C3F0) >> 128;
- if (x & 0x4000 > 0)
- result = (result * 0x10000000000002C5C85FDF473E242EA38) >> 128;
- if (x & 0x2000 > 0)
- result = (result * 0x1000000000000162E42FEFA39F02B772C) >> 128;
- if (x & 0x1000 > 0)
- result = (result * 0x10000000000000B17217F7D1CF7D83C1A) >> 128;
- if (x & 0x800 > 0)
- result = (result * 0x1000000000000058B90BFBE8E7BDCBE2E) >> 128;
- if (x & 0x400 > 0)
- result = (result * 0x100000000000002C5C85FDF473DEA871F) >> 128;
- if (x & 0x200 > 0)
- result = (result * 0x10000000000000162E42FEFA39EF44D91) >> 128;
- if (x & 0x100 > 0)
- result = (result * 0x100000000000000B17217F7D1CF79E949) >> 128;
- if (x & 0x80 > 0)
- result = (result * 0x10000000000000058B90BFBE8E7BCE544) >> 128;
- if (x & 0x40 > 0)
- result = (result * 0x1000000000000002C5C85FDF473DE6ECA) >> 128;
- if (x & 0x20 > 0)
- result = (result * 0x100000000000000162E42FEFA39EF366F) >> 128;
- if (x & 0x10 > 0)
- result = (result * 0x1000000000000000B17217F7D1CF79AFA) >> 128;
- if (x & 0x8 > 0)
- result = (result * 0x100000000000000058B90BFBE8E7BCD6D) >> 128;
- if (x & 0x4 > 0)
- result = (result * 0x10000000000000002C5C85FDF473DE6B2) >> 128;
- if (x & 0x2 > 0)
- result = (result * 0x1000000000000000162E42FEFA39EF358) >> 128;
- if (x & 0x1 > 0)
- result = (result * 0x10000000000000000B17217F7D1CF79AB) >> 128;
+ if (x & 0x8000000000000000 > 0) result = (result * 0x16A09E667F3BCC908B2FB1366EA957D3E) >> 128;
+ if (x & 0x4000000000000000 > 0) result = (result * 0x1306FE0A31B7152DE8D5A46305C85EDEC) >> 128;
+ if (x & 0x2000000000000000 > 0) result = (result * 0x1172B83C7D517ADCDF7C8C50EB14A791F) >> 128;
+ if (x & 0x1000000000000000 > 0) result = (result * 0x10B5586CF9890F6298B92B71842A98363) >> 128;
+ if (x & 0x800000000000000 > 0) result = (result * 0x1059B0D31585743AE7C548EB68CA417FD) >> 128;
+ if (x & 0x400000000000000 > 0) result = (result * 0x102C9A3E778060EE6F7CACA4F7A29BDE8) >> 128;
+ if (x & 0x200000000000000 > 0) result = (result * 0x10163DA9FB33356D84A66AE336DCDFA3F) >> 128;
+ if (x & 0x100000000000000 > 0) result = (result * 0x100B1AFA5ABCBED6129AB13EC11DC9543) >> 128;
+ if (x & 0x80000000000000 > 0) result = (result * 0x10058C86DA1C09EA1FF19D294CF2F679B) >> 128;
+ if (x & 0x40000000000000 > 0) result = (result * 0x1002C605E2E8CEC506D21BFC89A23A00F) >> 128;
+ if (x & 0x20000000000000 > 0) result = (result * 0x100162F3904051FA128BCA9C55C31E5DF) >> 128;
+ if (x & 0x10000000000000 > 0) result = (result * 0x1000B175EFFDC76BA38E31671CA939725) >> 128;
+ if (x & 0x8000000000000 > 0) result = (result * 0x100058BA01FB9F96D6CACD4B180917C3D) >> 128;
+ if (x & 0x4000000000000 > 0) result = (result * 0x10002C5CC37DA9491D0985C348C68E7B3) >> 128;
+ if (x & 0x2000000000000 > 0) result = (result * 0x1000162E525EE054754457D5995292026) >> 128;
+ if (x & 0x1000000000000 > 0) result = (result * 0x10000B17255775C040618BF4A4ADE83FC) >> 128;
+ if (x & 0x800000000000 > 0) result = (result * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB) >> 128;
+ if (x & 0x400000000000 > 0) result = (result * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9) >> 128;
+ if (x & 0x200000000000 > 0) result = (result * 0x10000162E43F4F831060E02D839A9D16D) >> 128;
+ if (x & 0x100000000000 > 0) result = (result * 0x100000B1721BCFC99D9F890EA06911763) >> 128;
+ if (x & 0x80000000000 > 0) result = (result * 0x10000058B90CF1E6D97F9CA14DBCC1628) >> 128;
+ if (x & 0x40000000000 > 0) result = (result * 0x1000002C5C863B73F016468F6BAC5CA2B) >> 128;
+ if (x & 0x20000000000 > 0) result = (result * 0x100000162E430E5A18F6119E3C02282A5) >> 128;
+ if (x & 0x10000000000 > 0) result = (result * 0x1000000B1721835514B86E6D96EFD1BFE) >> 128;
+ if (x & 0x8000000000 > 0) result = (result * 0x100000058B90C0B48C6BE5DF846C5B2EF) >> 128;
+ if (x & 0x4000000000 > 0) result = (result * 0x10000002C5C8601CC6B9E94213C72737A) >> 128;
+ if (x & 0x2000000000 > 0) result = (result * 0x1000000162E42FFF037DF38AA2B219F06) >> 128;
+ if (x & 0x1000000000 > 0) result = (result * 0x10000000B17217FBA9C739AA5819F44F9) >> 128;
+ if (x & 0x800000000 > 0) result = (result * 0x1000000058B90BFCDEE5ACD3C1CEDC823) >> 128;
+ if (x & 0x400000000 > 0) result = (result * 0x100000002C5C85FE31F35A6A30DA1BE50) >> 128;
+ if (x & 0x200000000 > 0) result = (result * 0x10000000162E42FF0999CE3541B9FFFCF) >> 128;
+ if (x & 0x100000000 > 0) result = (result * 0x100000000B17217F80F4EF5AADDA45554) >> 128;
+ if (x & 0x80000000 > 0) result = (result * 0x10000000058B90BFBF8479BD5A81B51AD) >> 128;
+ if (x & 0x40000000 > 0) result = (result * 0x1000000002C5C85FDF84BD62AE30A74CC) >> 128;
+ if (x & 0x20000000 > 0) result = (result * 0x100000000162E42FEFB2FED257559BDAA) >> 128;
+ if (x & 0x10000000 > 0) result = (result * 0x1000000000B17217F7D5A7716BBA4A9AE) >> 128;
+ if (x & 0x8000000 > 0) result = (result * 0x100000000058B90BFBE9DDBAC5E109CCE) >> 128;
+ if (x & 0x4000000 > 0) result = (result * 0x10000000002C5C85FDF4B15DE6F17EB0D) >> 128;
+ if (x & 0x2000000 > 0) result = (result * 0x1000000000162E42FEFA494F1478FDE05) >> 128;
+ if (x & 0x1000000 > 0) result = (result * 0x10000000000B17217F7D20CF927C8E94C) >> 128;
+ if (x & 0x800000 > 0) result = (result * 0x1000000000058B90BFBE8F71CB4E4B33D) >> 128;
+ if (x & 0x400000 > 0) result = (result * 0x100000000002C5C85FDF477B662B26945) >> 128;
+ if (x & 0x200000 > 0) result = (result * 0x10000000000162E42FEFA3AE53369388C) >> 128;
+ if (x & 0x100000 > 0) result = (result * 0x100000000000B17217F7D1D351A389D40) >> 128;
+ if (x & 0x80000 > 0) result = (result * 0x10000000000058B90BFBE8E8B2D3D4EDE) >> 128;
+ if (x & 0x40000 > 0) result = (result * 0x1000000000002C5C85FDF4741BEA6E77E) >> 128;
+ if (x & 0x20000 > 0) result = (result * 0x100000000000162E42FEFA39FE95583C2) >> 128;
+ if (x & 0x10000 > 0) result = (result * 0x1000000000000B17217F7D1CFB72B45E1) >> 128;
+ if (x & 0x8000 > 0) result = (result * 0x100000000000058B90BFBE8E7CC35C3F0) >> 128;
+ if (x & 0x4000 > 0) result = (result * 0x10000000000002C5C85FDF473E242EA38) >> 128;
+ if (x & 0x2000 > 0) result = (result * 0x1000000000000162E42FEFA39F02B772C) >> 128;
+ if (x & 0x1000 > 0) result = (result * 0x10000000000000B17217F7D1CF7D83C1A) >> 128;
+ if (x & 0x800 > 0) result = (result * 0x1000000000000058B90BFBE8E7BDCBE2E) >> 128;
+ if (x & 0x400 > 0) result = (result * 0x100000000000002C5C85FDF473DEA871F) >> 128;
+ if (x & 0x200 > 0) result = (result * 0x10000000000000162E42FEFA39EF44D91) >> 128;
+ if (x & 0x100 > 0) result = (result * 0x100000000000000B17217F7D1CF79E949) >> 128;
+ if (x & 0x80 > 0) result = (result * 0x10000000000000058B90BFBE8E7BCE544) >> 128;
+ if (x & 0x40 > 0) result = (result * 0x1000000000000002C5C85FDF473DE6ECA) >> 128;
+ if (x & 0x20 > 0) result = (result * 0x100000000000000162E42FEFA39EF366F) >> 128;
+ if (x & 0x10 > 0) result = (result * 0x1000000000000000B17217F7D1CF79AFA) >> 128;
+ if (x & 0x8 > 0) result = (result * 0x100000000000000058B90BFBE8E7BCD6D) >> 128;
+ if (x & 0x4 > 0) result = (result * 0x10000000000000002C5C85FDF473DE6B2) >> 128;
+ if (x & 0x2 > 0) result = (result * 0x1000000000000000162E42FEFA39EF358) >> 128;
+ if (x & 0x1 > 0) result = (result * 0x10000000000000000B17217F7D1CF79AB) >> 128;
result >>= int128toUint256(63 - (x >> 64));
require(result <= int128toUint256(MAX_64x64));
@@ -628,10 +539,7 @@ library ABDKMath64x64 {
if (x < -0x400000000000000000) return 0; // Underflow
- return
- exp_2(
- int128((int256(x) * 0x171547652B82FE1777D0FFDA0D23A7D12) >> 128)
- );
+ return exp_2(int128((int256(x) * 0x171547652B82FE1777D0FFDA0D23A7D12) >> 128));
}
/**
@@ -647,8 +555,7 @@ library ABDKMath64x64 {
uint256 result;
- if (x <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
- result = (x << 64) / y;
+ if (x <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) result = (x << 64) / y;
else {
uint256 msb = 192;
uint256 xc = x >> 192;
@@ -754,10 +661,7 @@ library ABDKMath64x64 {
result = result * x;
y -= 1;
re += xe;
- if (
- result >=
- 0x8000000000000000000000000000000000000000000000000000000000000000
- ) {
+ if (result >= 0x8000000000000000000000000000000000000000000000000000000000000000) {
result >>= 128;
re += 1;
} else result >>= 127;
@@ -767,10 +671,7 @@ library ABDKMath64x64 {
x = x * x;
y >>= 1;
xe <<= 1;
- if (
- x >=
- 0x8000000000000000000000000000000000000000000000000000000000000000
- ) {
+ if (x >= 0x8000000000000000000000000000000000000000000000000000000000000000) {
x >>= 128;
xe += 1;
} else x >>= 127;
diff --git a/contracts/external/rari/RariGovernanceTokenUniswapDistributor.sol b/contracts/external/rari/RariGovernanceTokenUniswapDistributor.sol
index a103c14de..368c510d1 100644
--- a/contracts/external/rari/RariGovernanceTokenUniswapDistributor.sol
+++ b/contracts/external/rari/RariGovernanceTokenUniswapDistributor.sol
@@ -11,10 +11,7 @@ interface RariGovernanceTokenUniswapDistributor {
function distributionEndBlock() external view returns (uint256);
- function getRgtDistributed(uint256 blockNumber)
- external
- view
- returns (uint256);
+ function getRgtDistributed(uint256 blockNumber) external view returns (uint256);
function setDisabled(bool _disabled) external;
diff --git a/contracts/external/saddle/ISaddleSwap.sol b/contracts/external/saddle/ISaddleSwap.sol
index d76da5a76..d56533288 100644
--- a/contracts/external/saddle/ISaddleSwap.sol
+++ b/contracts/external/saddle/ISaddleSwap.sol
@@ -22,20 +22,14 @@ interface ISaddleSwap {
uint256 dx
) external view returns (uint256);
- function calculateTokenAmount(uint256[] calldata amounts, bool deposit)
- external
- view
- returns (uint256);
+ function calculateTokenAmount(uint256[] calldata amounts, bool deposit) external view returns (uint256);
+
+ function calculateRemoveLiquidity(uint256 amount) external view returns (uint256[] memory);
- function calculateRemoveLiquidity(uint256 amount)
+ function calculateRemoveLiquidityOneToken(uint256 tokenAmount, uint8 tokenIndex)
external
view
- returns (uint256[] memory);
-
- function calculateRemoveLiquidityOneToken(
- uint256 tokenAmount,
- uint8 tokenIndex
- ) external view returns (uint256 availableTokenAmount);
+ returns (uint256 availableTokenAmount);
function swap(
uint8 tokenIndexFrom,
diff --git a/contracts/external/sushi/IKashiPair.sol b/contracts/external/sushi/IKashiPair.sol
index 51c755e69..6cbf257f7 100644
--- a/contracts/external/sushi/IKashiPair.sol
+++ b/contracts/external/sushi/IKashiPair.sol
@@ -4,58 +4,18 @@ pragma solidity ^0.8.4;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
interface IKashiPair {
- event Approval(
- address indexed _owner,
- address indexed _spender,
- uint256 _value
- );
- event LogAccrue(
- uint256 accruedAmount,
- uint256 feeFraction,
- uint64 rate,
- uint256 utilization
- );
- event LogAddAsset(
- address indexed from,
- address indexed to,
- uint256 share,
- uint256 fraction
- );
- event LogAddCollateral(
- address indexed from,
- address indexed to,
- uint256 share
- );
- event LogBorrow(
- address indexed from,
- address indexed to,
- uint256 amount,
- uint256 part
- );
+ event Approval(address indexed _owner, address indexed _spender, uint256 _value);
+ event LogAccrue(uint256 accruedAmount, uint256 feeFraction, uint64 rate, uint256 utilization);
+ event LogAddAsset(address indexed from, address indexed to, uint256 share, uint256 fraction);
+ event LogAddCollateral(address indexed from, address indexed to, uint256 share);
+ event LogBorrow(address indexed from, address indexed to, uint256 amount, uint256 part);
event LogExchangeRate(uint256 rate);
event LogFeeTo(address indexed newFeeTo);
- event LogRemoveAsset(
- address indexed from,
- address indexed to,
- uint256 share,
- uint256 fraction
- );
- event LogRemoveCollateral(
- address indexed from,
- address indexed to,
- uint256 share
- );
- event LogRepay(
- address indexed from,
- address indexed to,
- uint256 amount,
- uint256 part
- );
+ event LogRemoveAsset(address indexed from, address indexed to, uint256 share, uint256 fraction);
+ event LogRemoveCollateral(address indexed from, address indexed to, uint256 share);
+ event LogRepay(address indexed from, address indexed to, uint256 amount, uint256 part);
event LogWithdrawFees(address indexed feeTo, uint256 feesEarnedFraction);
- event OwnershipTransferred(
- address indexed previousOwner,
- address indexed newOwner
- );
+ event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
function DOMAIN_SEPARATOR() external view returns (bytes32);
@@ -91,9 +51,7 @@ interface IKashiPair {
function balanceOf(address) external view returns (uint256);
- function borrow(address to, uint256 amount)
- external
- returns (uint256 part, uint256 share);
+ function borrow(address to, uint256 amount) external returns (uint256 part, uint256 share);
function claimOwnership() external;
@@ -137,9 +95,7 @@ interface IKashiPair {
bytes32 s
) external;
- function removeAsset(address to, uint256 fraction)
- external
- returns (uint256 share);
+ function removeAsset(address to, uint256 fraction) external returns (uint256 share);
function removeCollateral(address to, uint256 share) external;
@@ -155,10 +111,7 @@ interface IKashiPair {
function totalAsset() external view returns (uint128 elastic, uint128 base);
- function totalBorrow()
- external
- view
- returns (uint128 elastic, uint128 base);
+ function totalBorrow() external view returns (uint128 elastic, uint128 base);
function totalCollateralShare() external view returns (uint256);
diff --git a/contracts/external/sushi/IMasterContractManager.sol b/contracts/external/sushi/IMasterContractManager.sol
index 6d5187832..b13db3384 100644
--- a/contracts/external/sushi/IMasterContractManager.sol
+++ b/contracts/external/sushi/IMasterContractManager.sol
@@ -21,8 +21,5 @@ interface IMasterContractManager {
uint256 shares
) external;
- function balanceOf(address token, address owner)
- external
- view
- returns (uint256);
+ function balanceOf(address token, address owner) external view returns (uint256);
}
diff --git a/contracts/external/uniswap/UniswapV2Library.sol b/contracts/external/uniswap/UniswapV2Library.sol
index 3ff13340d..8713445b8 100644
--- a/contracts/external/uniswap/UniswapV2Library.sol
+++ b/contracts/external/uniswap/UniswapV2Library.sol
@@ -12,10 +12,7 @@ library UniswapV2Library {
uint256 reserveOut
) internal pure returns (uint256 amountOut) {
require(amountIn > 0, "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT");
- require(
- reserveIn > 0 && reserveOut > 0,
- "UniswapV2Library: INSUFFICIENT_LIQUIDITY"
- );
+ require(reserveIn > 0 && reserveOut > 0, "UniswapV2Library: INSUFFICIENT_LIQUIDITY");
uint256 amountInWithFee = amountIn.mul(997);
uint256 numerator = amountInWithFee.mul(reserveOut);
uint256 denominator = reserveIn.mul(1000).add(amountInWithFee);
diff --git a/contracts/fei/Fei.sol b/contracts/fei/Fei.sol
index 5f77cd2db..0558d29c2 100644
--- a/contracts/fei/Fei.sol
+++ b/contracts/fei/Fei.sol
@@ -14,8 +14,7 @@ contract Fei is IFei, ERC20Burnable, CoreRef {
// solhint-disable-next-line var-name-mixedcase
bytes32 public DOMAIN_SEPARATOR;
// keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
- bytes32 public constant PERMIT_TYPEHASH =
- 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
+ bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
mapping(address => uint256) public nonces;
/// @notice Fei token constructor
@@ -28,9 +27,7 @@ contract Fei is IFei, ERC20Burnable, CoreRef {
}
DOMAIN_SEPARATOR = keccak256(
abi.encode(
- keccak256(
- "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
- ),
+ keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
keccak256(bytes(name())),
keccak256(bytes("1")),
chainId,
@@ -41,11 +38,7 @@ contract Fei is IFei, ERC20Burnable, CoreRef {
/// @param account the account to incentivize
/// @param incentive the associated incentive contract
- function setIncentiveContract(address account, address incentive)
- external
- override
- onlyGovernor
- {
+ function setIncentiveContract(address account, address incentive) external override onlyGovernor {
incentiveContract[account] = incentive;
emit IncentiveContractUpdate(account, incentive);
}
@@ -53,12 +46,7 @@ contract Fei is IFei, ERC20Burnable, CoreRef {
/// @notice mint FEI tokens
/// @param account the account to mint to
/// @param amount the amount to mint
- function mint(address account, uint256 amount)
- external
- override
- onlyMinter
- whenNotPaused
- {
+ function mint(address account, uint256 amount) external override onlyMinter whenNotPaused {
_mint(account, amount);
emit Minting(account, msg.sender, amount);
}
@@ -73,12 +61,7 @@ contract Fei is IFei, ERC20Burnable, CoreRef {
/// @notice burn FEI tokens from specified account
/// @param account the account to burn from
/// @param amount the amount to burn
- function burnFrom(address account, uint256 amount)
- public
- override(IFei, ERC20Burnable)
- onlyBurner
- whenNotPaused
- {
+ function burnFrom(address account, uint256 amount) public override(IFei, ERC20Burnable) onlyBurner whenNotPaused {
_burn(account, amount);
emit Burning(account, msg.sender, amount);
}
@@ -100,49 +83,25 @@ contract Fei is IFei, ERC20Burnable, CoreRef {
// incentive on sender
address senderIncentive = incentiveContract[sender];
if (senderIncentive != address(0)) {
- IIncentive(senderIncentive).incentivize(
- sender,
- recipient,
- msg.sender,
- amount
- );
+ IIncentive(senderIncentive).incentivize(sender, recipient, msg.sender, amount);
}
// incentive on recipient
address recipientIncentive = incentiveContract[recipient];
if (recipientIncentive != address(0)) {
- IIncentive(recipientIncentive).incentivize(
- sender,
- recipient,
- msg.sender,
- amount
- );
+ IIncentive(recipientIncentive).incentivize(sender, recipient, msg.sender, amount);
}
// incentive on operator
address operatorIncentive = incentiveContract[msg.sender];
- if (
- msg.sender != sender &&
- msg.sender != recipient &&
- operatorIncentive != address(0)
- ) {
- IIncentive(operatorIncentive).incentivize(
- sender,
- recipient,
- msg.sender,
- amount
- );
+ if (msg.sender != sender && msg.sender != recipient && operatorIncentive != address(0)) {
+ IIncentive(operatorIncentive).incentivize(sender, recipient, msg.sender, amount);
}
// all incentive, if active applies to every transfer
address allIncentive = incentiveContract[address(0)];
if (allIncentive != address(0)) {
- IIncentive(allIncentive).incentivize(
- sender,
- recipient,
- msg.sender,
- amount
- );
+ IIncentive(allIncentive).incentivize(sender, recipient, msg.sender, amount);
}
}
@@ -165,23 +124,11 @@ contract Fei is IFei, ERC20Burnable, CoreRef {
abi.encodePacked(
"\x19\x01",
DOMAIN_SEPARATOR,
- keccak256(
- abi.encode(
- PERMIT_TYPEHASH,
- owner,
- spender,
- value,
- nonces[owner]++,
- deadline
- )
- )
+ keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
)
);
address recoveredAddress = ecrecover(digest, v, r, s);
- require(
- recoveredAddress != address(0) && recoveredAddress == owner,
- "Fei: INVALID_SIGNATURE"
- );
+ require(recoveredAddress != address(0) && recoveredAddress == owner, "Fei: INVALID_SIGNATURE");
_approve(owner, spender, value);
}
}
diff --git a/contracts/fei/IFei.sol b/contracts/fei/IFei.sol
index 0c5078c2b..3e1ffa650 100644
--- a/contracts/fei/IFei.sol
+++ b/contracts/fei/IFei.sol
@@ -8,22 +8,11 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
interface IFei is IERC20 {
// ----------- Events -----------
- event Minting(
- address indexed _to,
- address indexed _minter,
- uint256 _amount
- );
-
- event Burning(
- address indexed _to,
- address indexed _burner,
- uint256 _amount
- );
-
- event IncentiveContractUpdate(
- address indexed _incentivized,
- address indexed _incentiveContract
- );
+ event Minting(address indexed _to, address indexed _minter, uint256 _amount);
+
+ event Burning(address indexed _to, address indexed _burner, uint256 _amount);
+
+ event IncentiveContractUpdate(address indexed _incentivized, address indexed _incentiveContract);
// ----------- State changing api -----------
diff --git a/contracts/fei/minter/FeiTimedMinter.sol b/contracts/fei/minter/FeiTimedMinter.sol
index 4a2113cee..37c140fc3 100644
--- a/contracts/fei/minter/FeiTimedMinter.sol
+++ b/contracts/fei/minter/FeiTimedMinter.sol
@@ -8,13 +8,7 @@ import "./IFeiTimedMinter.sol";
/// @title FeiTimedMinter
/// @notice a contract which mints FEI to a target address on a timed cadence
-contract FeiTimedMinter is
- IFeiTimedMinter,
- CoreRef,
- Timed,
- Incentivized,
- RateLimitedMinter
-{
+contract FeiTimedMinter is IFeiTimedMinter, CoreRef, Timed, Incentivized, RateLimitedMinter {
/// @notice most frequent that mints can happen
uint256 public constant override MIN_MINT_FREQUENCY = 1 hours; // Min 1 hour per mint
@@ -44,11 +38,7 @@ contract FeiTimedMinter is
CoreRef(_core)
Timed(_frequency)
Incentivized(_incentive)
- RateLimitedMinter(
- (_initialMintAmount + _incentive) / _frequency,
- (_initialMintAmount + _incentive),
- true
- )
+ RateLimitedMinter((_initialMintAmount + _incentive) / _frequency, (_initialMintAmount + _incentive), true)
{
_initTimed();
@@ -87,28 +77,14 @@ contract FeiTimedMinter is
}
/// @notice set the mint frequency
- function setFrequency(uint256 newFrequency)
- external
- override
- onlyGovernorOrAdmin
- {
- require(
- newFrequency >= MIN_MINT_FREQUENCY,
- "FeiTimedMinter: frequency low"
- );
- require(
- newFrequency <= MAX_MINT_FREQUENCY,
- "FeiTimedMinter: frequency high"
- );
+ function setFrequency(uint256 newFrequency) external override onlyGovernorOrAdmin {
+ require(newFrequency >= MIN_MINT_FREQUENCY, "FeiTimedMinter: frequency low");
+ require(newFrequency <= MAX_MINT_FREQUENCY, "FeiTimedMinter: frequency high");
_setDuration(newFrequency);
}
- function setMintAmount(uint256 newMintAmount)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setMintAmount(uint256 newMintAmount) external override onlyGovernorOrAdmin {
_setMintAmount(newMintAmount);
}
@@ -125,10 +101,7 @@ contract FeiTimedMinter is
emit MintAmountUpdate(oldMintAmount, newMintAmount);
}
- function _mintFei(address to, uint256 amountIn)
- internal
- override(CoreRef, RateLimitedMinter)
- {
+ function _mintFei(address to, uint256 amountIn) internal override(CoreRef, RateLimitedMinter) {
RateLimitedMinter._mintFei(to, amountIn);
}
diff --git a/contracts/fei/minter/IPCVEquityMinter.sol b/contracts/fei/minter/IPCVEquityMinter.sol
index d7e2d95ad..7719d89b2 100644
--- a/contracts/fei/minter/IPCVEquityMinter.sol
+++ b/contracts/fei/minter/IPCVEquityMinter.sol
@@ -11,16 +11,11 @@ interface IPCVEquityMinter {
event APRUpdate(uint256 oldAprBasisPoints, uint256 newAprBasisPoints);
- event CollateralizationOracleUpdate(
- address oldCollateralizationOracle,
- address newCollateralizationOracle
- );
+ event CollateralizationOracleUpdate(address oldCollateralizationOracle, address newCollateralizationOracle);
// ----------- Governor only state changing api -----------
- function setCollateralizationOracle(
- ICollateralizationOracle newCollateralizationOracle
- ) external;
+ function setCollateralizationOracle(ICollateralizationOracle newCollateralizationOracle) external;
// ----------- Governor or Admin only state changing api -----------
@@ -30,10 +25,7 @@ interface IPCVEquityMinter {
function MAX_APR_BASIS_POINTS() external view returns (uint256);
- function collateralizationOracle()
- external
- view
- returns (ICollateralizationOracle);
+ function collateralizationOracle() external view returns (ICollateralizationOracle);
function aprBasisPoints() external view returns (uint256);
}
diff --git a/contracts/fei/minter/PCVEquityMinter.sol b/contracts/fei/minter/PCVEquityMinter.sol
index 81a9a02e4..49511ece1 100644
--- a/contracts/fei/minter/PCVEquityMinter.sol
+++ b/contracts/fei/minter/PCVEquityMinter.sol
@@ -38,15 +38,7 @@ contract PCVEquityMinter is IPCVEquityMinter, FeiTimedMinter {
uint256 _aprBasisPoints,
uint256 _maxAPRBasisPoints,
uint256 _feiMintingLimitPerSecond
- )
- FeiTimedMinter(
- _core,
- _target,
- _incentive,
- _frequency,
- _feiMintingLimitPerSecond * _frequency
- )
- {
+ ) FeiTimedMinter(_core, _target, _incentive, _frequency, _feiMintingLimitPerSecond * _frequency) {
_setCollateralizationOracle(_collateralizationOracle);
_setAPRBasisPoints(_aprBasisPoints);
@@ -70,28 +62,22 @@ contract PCVEquityMinter is IPCVEquityMinter, FeiTimedMinter {
// return total equity scaled proportionally by the APR and the ratio of the mint frequency to the entire year
return
- (((equity.toUint256() * aprBasisPoints) /
- Constants.BASIS_POINTS_GRANULARITY) * duration) /
+ (((equity.toUint256() * aprBasisPoints) / Constants.BASIS_POINTS_GRANULARITY) * duration) /
Constants.ONE_YEAR;
}
/// @notice set the collateralization oracle
- function setCollateralizationOracle(
- ICollateralizationOracle newCollateralizationOracle
- ) external override onlyGovernor {
+ function setCollateralizationOracle(ICollateralizationOracle newCollateralizationOracle)
+ external
+ override
+ onlyGovernor
+ {
_setCollateralizationOracle(newCollateralizationOracle);
}
/// @notice sets the new APR for determining buyback size from PCV equity
- function setAPRBasisPoints(uint256 newAprBasisPoints)
- external
- override
- onlyGovernorOrAdmin
- {
- require(
- newAprBasisPoints <= MAX_APR_BASIS_POINTS,
- "PCVEquityMinter: APR above max"
- );
+ function setAPRBasisPoints(uint256 newAprBasisPoints) external override onlyGovernorOrAdmin {
+ require(newAprBasisPoints <= MAX_APR_BASIS_POINTS, "PCVEquityMinter: APR above max");
_setAPRBasisPoints(newAprBasisPoints);
}
@@ -103,19 +89,11 @@ contract PCVEquityMinter is IPCVEquityMinter, FeiTimedMinter {
emit APRUpdate(oldAprBasisPoints, newAprBasisPoints);
}
- function _setCollateralizationOracle(
- ICollateralizationOracle newCollateralizationOracle
- ) internal {
- require(
- address(newCollateralizationOracle) != address(0),
- "PCVEquityMinter: zero address"
- );
+ function _setCollateralizationOracle(ICollateralizationOracle newCollateralizationOracle) internal {
+ require(address(newCollateralizationOracle) != address(0), "PCVEquityMinter: zero address");
address oldCollateralizationOracle = address(collateralizationOracle);
collateralizationOracle = newCollateralizationOracle;
- emit CollateralizationOracleUpdate(
- address(oldCollateralizationOracle),
- address(newCollateralizationOracle)
- );
+ emit CollateralizationOracleUpdate(address(oldCollateralizationOracle), address(newCollateralizationOracle));
}
function _afterMint() internal override {
diff --git a/contracts/fei/minter/RateLimitedMinter.sol b/contracts/fei/minter/RateLimitedMinter.sol
index 1831c651a..e2f427a0c 100644
--- a/contracts/fei/minter/RateLimitedMinter.sol
+++ b/contracts/fei/minter/RateLimitedMinter.sol
@@ -12,14 +12,7 @@ abstract contract RateLimitedMinter is RateLimited {
uint256 _feiLimitPerSecond,
uint256 _mintingBufferCap,
bool _doPartialMint
- )
- RateLimited(
- MAX_FEI_LIMIT_PER_SECOND,
- _feiLimitPerSecond,
- _mintingBufferCap,
- _doPartialMint
- )
- {}
+ ) RateLimited(MAX_FEI_LIMIT_PER_SECOND, _feiLimitPerSecond, _mintingBufferCap, _doPartialMint) {}
/// @notice override the FEI minting behavior to enforce a rate limit
function _mintFei(address to, uint256 amount) internal virtual override {
diff --git a/contracts/fuse/FuseAdmin.sol b/contracts/fuse/FuseAdmin.sol
index 4fc310af9..c084661f3 100644
--- a/contracts/fuse/FuseAdmin.sol
+++ b/contracts/fuse/FuseAdmin.sol
@@ -9,14 +9,9 @@ contract FuseAdmin is FuseGuardian {
/// @param _core address of core contract
/// @param _comptroller the fuse comptroller
- constructor(address _core, Unitroller _comptroller)
- FuseGuardian(_core, _comptroller)
- {}
+ constructor(address _core, Unitroller _comptroller) FuseGuardian(_core, _comptroller) {}
- function oracleAdd(
- address[] calldata underlyings,
- address[] calldata _oracles
- ) external onlyGovernorOrAdmin {
+ function oracleAdd(address[] calldata underlyings, address[] calldata _oracles) external onlyGovernorOrAdmin {
IMasterOracle(comptroller.oracle()).add(underlyings, _oracles);
}
@@ -24,64 +19,35 @@ contract FuseAdmin is FuseGuardian {
IMasterOracle(comptroller.oracle()).changeAdmin(newAdmin);
}
- function _addRewardsDistributor(address distributor)
- external
- onlyGovernorOrAdmin
- {
- if (comptroller._addRewardsDistributor(distributor) != 0)
- revert ComptrollerError();
+ function _addRewardsDistributor(address distributor) external onlyGovernorOrAdmin {
+ if (comptroller._addRewardsDistributor(distributor) != 0) revert ComptrollerError();
+ }
+
+ function _setWhitelistEnforcement(bool enforce) external onlyGovernorOrAdmin {
+ if (comptroller._setWhitelistEnforcement(enforce) != 0) revert ComptrollerError();
}
- function _setWhitelistEnforcement(bool enforce)
+ function _setWhitelistStatuses(address[] calldata suppliers, bool[] calldata statuses)
external
onlyGovernorOrAdmin
{
- if (comptroller._setWhitelistEnforcement(enforce) != 0)
- revert ComptrollerError();
- }
-
- function _setWhitelistStatuses(
- address[] calldata suppliers,
- bool[] calldata statuses
- ) external onlyGovernorOrAdmin {
- if (comptroller._setWhitelistStatuses(suppliers, statuses) != 0)
- revert ComptrollerError();
+ if (comptroller._setWhitelistStatuses(suppliers, statuses) != 0) revert ComptrollerError();
}
function _setPriceOracle(address newOracle) public onlyGovernor {
- if (comptroller._setPriceOracle(newOracle) != 0)
- revert ComptrollerError();
+ if (comptroller._setPriceOracle(newOracle) != 0) revert ComptrollerError();
}
- function _setCloseFactor(uint256 newCloseFactorMantissa)
- external
- onlyGovernorOrAdmin
- {
- if (comptroller._setCloseFactor(newCloseFactorMantissa) != 0)
- revert ComptrollerError();
+ function _setCloseFactor(uint256 newCloseFactorMantissa) external onlyGovernorOrAdmin {
+ if (comptroller._setCloseFactor(newCloseFactorMantissa) != 0) revert ComptrollerError();
}
- function _setCollateralFactor(
- CToken cToken,
- uint256 newCollateralFactorMantissa
- ) public onlyGovernorOrAdmin {
- if (
- comptroller._setCollateralFactor(
- cToken,
- newCollateralFactorMantissa
- ) != 0
- ) revert ComptrollerError();
+ function _setCollateralFactor(CToken cToken, uint256 newCollateralFactorMantissa) public onlyGovernorOrAdmin {
+ if (comptroller._setCollateralFactor(cToken, newCollateralFactorMantissa) != 0) revert ComptrollerError();
}
- function _setLiquidationIncentive(uint256 newLiquidationIncentiveMantissa)
- external
- onlyGovernorOrAdmin
- {
- if (
- comptroller._setLiquidationIncentive(
- newLiquidationIncentiveMantissa
- ) != 0
- ) revert ComptrollerError();
+ function _setLiquidationIncentive(uint256 newLiquidationIncentiveMantissa) external onlyGovernorOrAdmin {
+ if (comptroller._setLiquidationIncentive(newLiquidationIncentiveMantissa) != 0) revert ComptrollerError();
}
function _deployMarket(
@@ -107,34 +73,19 @@ contract FuseAdmin is FuseGuardian {
adminFee
);
- if (
- comptroller._deployMarket(
- false,
- constructorData,
- collateralFactorMantissa
- ) != 0
- ) revert ComptrollerError();
+ if (comptroller._deployMarket(false, constructorData, collateralFactorMantissa) != 0) revert ComptrollerError();
}
function _unsupportMarket(CToken cToken) external onlyGovernorOrAdmin {
- if (comptroller._unsupportMarket(cToken) != 0)
- revert ComptrollerError();
+ if (comptroller._unsupportMarket(cToken) != 0) revert ComptrollerError();
}
- function _toggleAutoImplementations(bool enabled)
- public
- onlyGovernorOrAdmin
- {
- if (comptroller._toggleAutoImplementations(enabled) != 0)
- revert ComptrollerError();
+ function _toggleAutoImplementations(bool enabled) public onlyGovernorOrAdmin {
+ if (comptroller._toggleAutoImplementations(enabled) != 0) revert ComptrollerError();
}
- function _setPendingAdmin(address newPendingAdmin)
- public
- onlyGovernorOrAdmin
- {
- if (comptroller._setPendingAdmin(newPendingAdmin) != 0)
- revert ComptrollerError();
+ function _setPendingAdmin(address newPendingAdmin) public onlyGovernorOrAdmin {
+ if (comptroller._setPendingAdmin(newPendingAdmin) != 0) revert ComptrollerError();
}
function _acceptAdmin() public {
diff --git a/contracts/fuse/FuseGuardian.sol b/contracts/fuse/FuseGuardian.sol
index b23928111..9f0603109 100644
--- a/contracts/fuse/FuseGuardian.sol
+++ b/contracts/fuse/FuseGuardian.sol
@@ -25,35 +25,25 @@ contract FuseGuardian is CoreRef {
* @param cTokens The addresses of the markets (tokens) to change the supply caps for
* @param newSupplyCaps The new supply cap values in underlying to be set. A value of 0 corresponds to unlimited supplying.
*/
- function _setMarketSupplyCaps(
- CToken[] memory cTokens,
- uint256[] calldata newSupplyCaps
- ) external isGovernorOrGuardianOrAdmin {
+ function _setMarketSupplyCaps(CToken[] memory cTokens, uint256[] calldata newSupplyCaps)
+ external
+ isGovernorOrGuardianOrAdmin
+ {
_setMarketSupplyCapsInternal(cTokens, newSupplyCaps);
}
- function _setMarketSupplyCapsByUnderlying(
- address[] calldata underlyings,
- uint256[] calldata newSupplyCaps
- ) external isGovernorOrGuardianOrAdmin {
- _setMarketSupplyCapsInternal(
- _underlyingToCTokens(underlyings),
- newSupplyCaps
- );
+ function _setMarketSupplyCapsByUnderlying(address[] calldata underlyings, uint256[] calldata newSupplyCaps)
+ external
+ isGovernorOrGuardianOrAdmin
+ {
+ _setMarketSupplyCapsInternal(_underlyingToCTokens(underlyings), newSupplyCaps);
}
- function _setMarketSupplyCapsInternal(
- CToken[] memory cTokens,
- uint256[] calldata newSupplyCaps
- ) internal {
+ function _setMarketSupplyCapsInternal(CToken[] memory cTokens, uint256[] calldata newSupplyCaps) internal {
comptroller._setMarketSupplyCaps(cTokens, newSupplyCaps);
}
- function _underlyingToCTokens(address[] calldata underlyings)
- internal
- view
- returns (CToken[] memory)
- {
+ function _underlyingToCTokens(address[] calldata underlyings) internal view returns (CToken[] memory) {
CToken[] memory cTokens = new CToken[](underlyings.length);
for (uint256 i = 0; i < underlyings.length; i++) {
address cToken = comptroller.cTokensByUnderlying(underlyings[i]);
@@ -69,38 +59,29 @@ contract FuseGuardian is CoreRef {
* @param cTokens The addresses of the markets (tokens) to change the borrow caps for
* @param newBorrowCaps The new borrow cap values in underlying to be set. A value of 0 corresponds to unlimited borrowing.
*/
- function _setMarketBorrowCaps(
- CToken[] memory cTokens,
- uint256[] calldata newBorrowCaps
- ) external isGovernorOrGuardianOrAdmin {
+ function _setMarketBorrowCaps(CToken[] memory cTokens, uint256[] calldata newBorrowCaps)
+ external
+ isGovernorOrGuardianOrAdmin
+ {
_setMarketBorrowCapsInternal(cTokens, newBorrowCaps);
}
- function _setMarketBorrowCapsInternal(
- CToken[] memory cTokens,
- uint256[] calldata newBorrowCaps
- ) internal {
+ function _setMarketBorrowCapsInternal(CToken[] memory cTokens, uint256[] calldata newBorrowCaps) internal {
comptroller._setMarketBorrowCaps(cTokens, newBorrowCaps);
}
- function _setMarketBorrowCapsByUnderlying(
- address[] calldata underlyings,
- uint256[] calldata newBorrowCaps
- ) external isGovernorOrGuardianOrAdmin {
- _setMarketBorrowCapsInternal(
- _underlyingToCTokens(underlyings),
- newBorrowCaps
- );
+ function _setMarketBorrowCapsByUnderlying(address[] calldata underlyings, uint256[] calldata newBorrowCaps)
+ external
+ isGovernorOrGuardianOrAdmin
+ {
+ _setMarketBorrowCapsInternal(_underlyingToCTokens(underlyings), newBorrowCaps);
}
/**
* @notice Admin function to change the Borrow Cap Guardian
* @param newBorrowCapGuardian The address of the new Borrow Cap Guardian
*/
- function _setBorrowCapGuardian(address newBorrowCapGuardian)
- external
- onlyGovernor
- {
+ function _setBorrowCapGuardian(address newBorrowCapGuardian) external onlyGovernor {
comptroller._setBorrowCapGuardian(newBorrowCapGuardian);
}
@@ -110,11 +91,7 @@ contract FuseGuardian is CoreRef {
* @param newPauseGuardian The address of the new Pause Guardian
* @return uint 0=success, otherwise a failure. (See enum Error for details)
*/
- function _setPauseGuardian(address newPauseGuardian)
- external
- onlyGovernor
- returns (uint256)
- {
+ function _setPauseGuardian(address newPauseGuardian) external onlyGovernor returns (uint256) {
return comptroller._setPauseGuardian(newPauseGuardian);
}
@@ -128,18 +105,11 @@ contract FuseGuardian is CoreRef {
_setMintPausedInternal(CToken(cToken), state);
}
- function _setMintPaused(CToken cToken, bool state)
- external
- isGovernorOrGuardianOrAdmin
- returns (bool)
- {
+ function _setMintPaused(CToken cToken, bool state) external isGovernorOrGuardianOrAdmin returns (bool) {
return _setMintPausedInternal(cToken, state);
}
- function _setMintPausedInternal(CToken cToken, bool state)
- internal
- returns (bool)
- {
+ function _setMintPausedInternal(CToken cToken, bool state) internal returns (bool) {
return comptroller._setMintPaused(cToken, state);
}
@@ -153,34 +123,19 @@ contract FuseGuardian is CoreRef {
return _setBorrowPausedInternal(CToken(cToken), state);
}
- function _setBorrowPausedInternal(CToken cToken, bool state)
- internal
- returns (bool)
- {
+ function _setBorrowPausedInternal(CToken cToken, bool state) internal returns (bool) {
return comptroller._setBorrowPaused(cToken, state);
}
- function _setBorrowPaused(CToken cToken, bool state)
- external
- isGovernorOrGuardianOrAdmin
- returns (bool)
- {
+ function _setBorrowPaused(CToken cToken, bool state) external isGovernorOrGuardianOrAdmin returns (bool) {
_setBorrowPausedInternal(CToken(cToken), state);
}
- function _setTransferPaused(bool state)
- external
- isGovernorOrGuardianOrAdmin
- returns (bool)
- {
+ function _setTransferPaused(bool state) external isGovernorOrGuardianOrAdmin returns (bool) {
return comptroller._setTransferPaused(state);
}
- function _setSeizePaused(bool state)
- external
- isGovernorOrGuardianOrAdmin
- returns (bool)
- {
+ function _setSeizePaused(bool state) external isGovernorOrGuardianOrAdmin returns (bool) {
return comptroller._setSeizePaused(state);
}
}
diff --git a/contracts/fuse/IMasterOracle.sol b/contracts/fuse/IMasterOracle.sol
index 41f9bdb51..5efc9c2ed 100644
--- a/contracts/fuse/IMasterOracle.sol
+++ b/contracts/fuse/IMasterOracle.sol
@@ -2,8 +2,7 @@
pragma solidity ^0.8.4;
interface IMasterOracle {
- function add(address[] calldata underlyings, address[] calldata _oracles)
- external;
+ function add(address[] calldata underlyings, address[] calldata _oracles) external;
function changeAdmin(address newAdmin) external;
diff --git a/contracts/fuse/rewards/AutoRewardsDistributor.sol b/contracts/fuse/rewards/AutoRewardsDistributor.sol
index 788d2c27f..ae9185b83 100644
--- a/contracts/fuse/rewards/AutoRewardsDistributor.sol
+++ b/contracts/fuse/rewards/AutoRewardsDistributor.sol
@@ -49,14 +49,8 @@ contract AutoRewardsDistributor is CoreRef {
/// @notice helper function that gets all needed state from the TribalChief contract
/// based on this state, it then calculates what the compSpeed should be.
- function _deriveRequiredCompSpeed()
- internal
- view
- returns (uint256 compSpeed)
- {
- (, , , uint120 poolAllocPoints, ) = tribalChief.poolInfo(
- tribalChiefRewardIndex
- );
+ function _deriveRequiredCompSpeed() internal view returns (uint256 compSpeed) {
+ (, , , uint120 poolAllocPoints, ) = tribalChief.poolInfo(tribalChiefRewardIndex);
uint256 totalAllocPoints = tribalChief.totalAllocPoint();
uint256 tribePerBlock = tribalChief.tribePerBlock();
@@ -70,22 +64,14 @@ contract AutoRewardsDistributor is CoreRef {
/// @notice function to get the new comp speed and figure out if an update is needed
/// @return newCompSpeed the newly calculated compSpeed based on allocation points in the TribalChief
/// @return updateNeeded boolean indicating whether the new compSpeed is not equal to the existing compSpeed
- function getNewRewardSpeed()
- public
- view
- returns (uint256 newCompSpeed, bool updateNeeded)
- {
+ function getNewRewardSpeed() public view returns (uint256 newCompSpeed, bool updateNeeded) {
newCompSpeed = _deriveRequiredCompSpeed();
uint256 actualCompSpeed;
if (isBorrowIncentivized) {
- actualCompSpeed = rewardsDistributorAdmin.compBorrowSpeeds(
- cTokenAddress
- );
+ actualCompSpeed = rewardsDistributorAdmin.compBorrowSpeeds(cTokenAddress);
} else {
- actualCompSpeed = rewardsDistributorAdmin.compSupplySpeeds(
- cTokenAddress
- );
+ actualCompSpeed = rewardsDistributorAdmin.compSupplySpeeds(cTokenAddress);
}
if (actualCompSpeed != newCompSpeed) {
@@ -100,29 +86,21 @@ contract AutoRewardsDistributor is CoreRef {
require(updateNeeded, "AutoRewardsDistributor: update not needed");
if (isBorrowIncentivized) {
- rewardsDistributorAdmin._setCompBorrowSpeed(
- cTokenAddress,
- compSpeed
- );
+ rewardsDistributorAdmin._setCompBorrowSpeed(cTokenAddress, compSpeed);
} else {
- rewardsDistributorAdmin._setCompSupplySpeed(
- cTokenAddress,
- compSpeed
- );
+ rewardsDistributorAdmin._setCompSupplySpeed(cTokenAddress, compSpeed);
}
emit SpeedChanged(compSpeed);
}
/// @notice API to point to a new rewards distributor admin contract
/// @param _newRewardsDistributorAdmin the address of the new RewardsDistributorAdmin contract
- function setRewardsDistributorAdmin(
- IRewardsDistributorAdmin _newRewardsDistributorAdmin
- ) external onlyGovernorOrAdmin {
+ function setRewardsDistributorAdmin(IRewardsDistributorAdmin _newRewardsDistributorAdmin)
+ external
+ onlyGovernorOrAdmin
+ {
IRewardsDistributorAdmin oldRewardsDistributorAdmin = rewardsDistributorAdmin;
rewardsDistributorAdmin = _newRewardsDistributorAdmin;
- emit RewardsDistributorAdminChanged(
- oldRewardsDistributorAdmin,
- _newRewardsDistributorAdmin
- );
+ emit RewardsDistributorAdminChanged(oldRewardsDistributorAdmin, _newRewardsDistributorAdmin);
}
}
diff --git a/contracts/fuse/rewards/AutoRewardsDistributorV2.sol b/contracts/fuse/rewards/AutoRewardsDistributorV2.sol
index 257e9edfb..7bbce667d 100644
--- a/contracts/fuse/rewards/AutoRewardsDistributorV2.sol
+++ b/contracts/fuse/rewards/AutoRewardsDistributorV2.sol
@@ -72,14 +72,8 @@ contract AutoRewardsDistributorV2 is CoreRef {
/// @notice helper function that gets all needed state from the TribalChief contract
/// based on this state, it then calculates what the compSpeed should be.
- function _deriveRequiredCompSpeed()
- internal
- view
- returns (uint256 compSpeed)
- {
- (, , , uint120 poolAllocPoints, ) = tribalChief.poolInfo(
- tribalChiefRewardIndex
- );
+ function _deriveRequiredCompSpeed() internal view returns (uint256 compSpeed) {
+ (, , , uint120 poolAllocPoints, ) = tribalChief.poolInfo(tribalChiefRewardIndex);
uint256 totalAllocPoints = tribalChief.totalAllocPoint();
uint256 tribePerBlock = tribalChief.tribePerBlock();
@@ -93,22 +87,14 @@ contract AutoRewardsDistributorV2 is CoreRef {
/// @notice function to get the new comp speed and figure out if an update is needed
/// @return newCompSpeed the newly calculated compSpeed based on allocation points in the TribalChief
/// @return updateNeeded boolean indicating whether the new compSpeed is not equal to the existing compSpeed
- function getNewRewardSpeed()
- public
- view
- returns (uint256 newCompSpeed, bool updateNeeded)
- {
+ function getNewRewardSpeed() public view returns (uint256 newCompSpeed, bool updateNeeded) {
newCompSpeed = _deriveRequiredCompSpeed();
uint256 actualCompSpeed;
if (isBorrowIncentivized) {
- actualCompSpeed = rewardsDistributorAdmin.compBorrowSpeeds(
- cTokenAddress
- );
+ actualCompSpeed = rewardsDistributorAdmin.compBorrowSpeeds(cTokenAddress);
} else {
- actualCompSpeed = rewardsDistributorAdmin.compSupplySpeeds(
- cTokenAddress
- );
+ actualCompSpeed = rewardsDistributorAdmin.compSupplySpeeds(cTokenAddress);
}
if (actualCompSpeed != newCompSpeed) {
@@ -124,29 +110,21 @@ contract AutoRewardsDistributorV2 is CoreRef {
require(updateNeeded, "AutoRewardsDistributor: update not needed");
if (isBorrowIncentivized) {
- rewardsDistributorAdmin._setCompBorrowSpeed(
- cTokenAddress,
- compSpeed
- );
+ rewardsDistributorAdmin._setCompBorrowSpeed(cTokenAddress, compSpeed);
} else {
- rewardsDistributorAdmin._setCompSupplySpeed(
- cTokenAddress,
- compSpeed
- );
+ rewardsDistributorAdmin._setCompSupplySpeed(cTokenAddress, compSpeed);
}
emit SpeedChanged(compSpeed);
}
/// @notice API to point to a new rewards distributor admin contract
/// @param _newRewardsDistributorAdmin the address of the new RewardsDistributorAdmin contract
- function setRewardsDistributorAdmin(
- IRewardsDistributorAdmin _newRewardsDistributorAdmin
- ) external onlyGovernorOrAdmin {
+ function setRewardsDistributorAdmin(IRewardsDistributorAdmin _newRewardsDistributorAdmin)
+ external
+ onlyGovernorOrAdmin
+ {
IRewardsDistributorAdmin oldRewardsDistributorAdmin = rewardsDistributorAdmin;
rewardsDistributorAdmin = _newRewardsDistributorAdmin;
- emit RewardsDistributorAdminChanged(
- oldRewardsDistributorAdmin,
- _newRewardsDistributorAdmin
- );
+ emit RewardsDistributorAdminChanged(oldRewardsDistributorAdmin, _newRewardsDistributorAdmin);
}
}
diff --git a/contracts/fuse/rewards/IRewardsDistributorAdmin.sol b/contracts/fuse/rewards/IRewardsDistributorAdmin.sol
index 879b29922..67925d68d 100644
--- a/contracts/fuse/rewards/IRewardsDistributorAdmin.sol
+++ b/contracts/fuse/rewards/IRewardsDistributorAdmin.sol
@@ -46,8 +46,7 @@ interface IRewardsDistributorAdmin {
* @param contributor The contributor whose COMP speed to update
* @param compSpeed New COMP speed for contributor
*/
- function _setContributorCompSpeed(address contributor, uint256 compSpeed)
- external;
+ function _setContributorCompSpeed(address contributor, uint256 compSpeed) external;
/**
* @notice Add a default market to claim rewards for in `claimRewards()`
diff --git a/contracts/fuse/rewards/RewardsDistributorAdmin.sol b/contracts/fuse/rewards/RewardsDistributorAdmin.sol
index ca7908d35..8e70cfe51 100644
--- a/contracts/fuse/rewards/RewardsDistributorAdmin.sol
+++ b/contracts/fuse/rewards/RewardsDistributorAdmin.sol
@@ -8,15 +8,10 @@ import "@openzeppelin/contracts/access/AccessControlEnumerable.sol";
/// and not leveraging core are twofold. One, it simplifies devops operations around adding
/// and removing users, and two, by being self contained, it is more efficient as it does not need
/// to make external calls to figure out who has a particular role.
-contract RewardsDistributorAdmin is
- IRewardsDistributorAdmin,
- CoreRef,
- AccessControlEnumerable
-{
+contract RewardsDistributorAdmin is IRewardsDistributorAdmin, CoreRef, AccessControlEnumerable {
/// @notice auto rewards distributor controller role.
/// This role will be given to auto rewards distributor controller smart contracts
- bytes32 public constant override AUTO_REWARDS_DISTRIBUTOR_ROLE =
- keccak256("AUTO_REWARDS_DISTRIBUTOR_ROLE");
+ bytes32 public constant override AUTO_REWARDS_DISTRIBUTOR_ROLE = keccak256("AUTO_REWARDS_DISTRIBUTOR_ROLE");
/// @notice rewards distributor contract
IRewardsDistributorAdmin public rewardsDistributorContract;
@@ -37,10 +32,7 @@ contract RewardsDistributorAdmin is
/// give all AutoRewardsDistributor contracts the proper role so that they can set borrow and supply speeds
for (uint256 i = 0; i < _autoRewardDistributors.length; i++) {
- _setupRole(
- AUTO_REWARDS_DISTRIBUTOR_ROLE,
- _autoRewardDistributors[i]
- );
+ _setupRole(AUTO_REWARDS_DISTRIBUTOR_ROLE, _autoRewardDistributors[i]);
}
}
@@ -49,11 +41,7 @@ contract RewardsDistributorAdmin is
* @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
* @param newPendingAdmin New pending admin.
*/
- function _setPendingAdmin(address newPendingAdmin)
- external
- override
- onlyGovernor
- {
+ function _setPendingAdmin(address newPendingAdmin) external override onlyGovernor {
rewardsDistributorContract._setPendingAdmin(newPendingAdmin);
}
@@ -74,11 +62,7 @@ contract RewardsDistributorAdmin is
* @param recipient The address of the recipient to transfer COMP to
* @param amount The amount of COMP to (possibly) transfer
*/
- function _grantComp(address recipient, uint256 amount)
- external
- override
- onlyGovernor
- {
+ function _grantComp(address recipient, uint256 amount) external override onlyGovernor {
rewardsDistributorContract._grantComp(recipient, amount);
}
@@ -115,10 +99,7 @@ contract RewardsDistributorAdmin is
* Callable only by the guardian or governor
* @param cToken The market whose COMP speed to set to 0
*/
- function guardianDisableSupplySpeed(address cToken)
- external
- onlyGuardianOrGovernor
- {
+ function guardianDisableSupplySpeed(address cToken) external onlyGuardianOrGovernor {
rewardsDistributorContract._setCompSupplySpeed(cToken, 0);
}
@@ -127,10 +108,7 @@ contract RewardsDistributorAdmin is
* Callable only by the guardian or governor
* @param cToken The market whose COMP speed to set to 0
*/
- function guardianDisableBorrowSpeed(address cToken)
- external
- onlyGuardianOrGovernor
- {
+ function guardianDisableBorrowSpeed(address cToken) external onlyGuardianOrGovernor {
rewardsDistributorContract._setCompBorrowSpeed(cToken, 0);
}
@@ -139,15 +117,8 @@ contract RewardsDistributorAdmin is
* @param contributor The contributor whose COMP speed to update
* @param compSpeed New COMP speed for contributor
*/
- function _setContributorCompSpeed(address contributor, uint256 compSpeed)
- external
- override
- onlyGovernorOrAdmin
- {
- rewardsDistributorContract._setContributorCompSpeed(
- contributor,
- compSpeed
- );
+ function _setContributorCompSpeed(address contributor, uint256 compSpeed) external override onlyGovernorOrAdmin {
+ rewardsDistributorContract._setContributorCompSpeed(contributor, compSpeed);
}
/**
@@ -162,11 +133,7 @@ contract RewardsDistributorAdmin is
* @notice Set the implementation contract the RewardsDistributorDelegator delegate calls
* @param implementation_ the logic contract address
*/
- function _setImplementation(address implementation_)
- external
- override
- onlyGovernor
- {
+ function _setImplementation(address implementation_) external override onlyGovernor {
rewardsDistributorContract._setImplementation(implementation_);
}
@@ -174,12 +141,7 @@ contract RewardsDistributorAdmin is
* @notice view function to get the comp supply speeds from the rewards distributor contract
* @param cToken The market to view
*/
- function compSupplySpeeds(address cToken)
- external
- view
- override
- returns (uint256)
- {
+ function compSupplySpeeds(address cToken) external view override returns (uint256) {
return rewardsDistributorContract.compSupplySpeeds(cToken);
}
@@ -187,12 +149,7 @@ contract RewardsDistributorAdmin is
* @notice view function to get the comp borrow speeds from the rewards distributor contract
* @param cToken The market to view
*/
- function compBorrowSpeeds(address cToken)
- external
- view
- override
- returns (uint256)
- {
+ function compBorrowSpeeds(address cToken) external view override returns (uint256) {
return rewardsDistributorContract.compBorrowSpeeds(cToken);
}
diff --git a/contracts/merger/ExchangerTimelock.sol b/contracts/merger/ExchangerTimelock.sol
index 4fbb0ccb8..bbc753458 100644
--- a/contracts/merger/ExchangerTimelock.sol
+++ b/contracts/merger/ExchangerTimelock.sol
@@ -20,13 +20,10 @@ contract ExchangerTimelock is Ownable {
address public immutable timelock;
/// @notice rari DAO timelock can clawback in event of no-deal
- address public constant guardian =
- 0x8ace03Fc45139fDDba944c6A4082b604041d19FC;
+ address public constant guardian = 0x8ace03Fc45139fDDba944c6A4082b604041d19FC;
- IERC20 public constant rgt =
- IERC20(0xD291E7a03283640FDc51b121aC401383A46cC623);
- IERC20 public constant tribe =
- IERC20(0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B);
+ IERC20 public constant rgt = IERC20(0xD291E7a03283640FDc51b121aC401383A46cC623);
+ IERC20 public constant tribe = IERC20(0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B);
constructor(IExchanger _exchanger, address _timelock) {
exchanger = _exchanger;
diff --git a/contracts/merger/MergerBase.sol b/contracts/merger/MergerBase.sol
index 87698e6aa..14ff94d55 100644
--- a/contracts/merger/MergerBase.sol
+++ b/contracts/merger/MergerBase.sol
@@ -17,18 +17,14 @@ contract MergerBase {
/// @notice the granularity of the exchange rate
uint256 public constant scalar = 1e9;
- address public constant rgtTimelock =
- 0x8ace03Fc45139fDDba944c6A4082b604041d19FC;
- address public constant tribeTimelock =
- 0xd51dbA7a94e1adEa403553A8235C302cEbF41a3c;
+ address public constant rgtTimelock = 0x8ace03Fc45139fDDba944c6A4082b604041d19FC;
+ address public constant tribeTimelock = 0xd51dbA7a94e1adEa403553A8235C302cEbF41a3c;
bool public rgtAccepted;
bool public tribeAccepted;
- IERC20 public constant rgt =
- IERC20(0xD291E7a03283640FDc51b121aC401383A46cC623);
- IERC20 public constant tribe =
- IERC20(0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B);
+ IERC20 public constant rgt = IERC20(0xD291E7a03283640FDc51b121aC401383A46cC623);
+ IERC20 public constant tribe = IERC20(0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B);
/// @notice the new DAO to assume governance for rgtTimelock
address public immutable tribeRariDAO;
@@ -57,10 +53,7 @@ contract MergerBase {
/// @notice make sure Tribe rari timelock is active
function setBothPartiesAccepted() external {
require(!bothPartiesAccepted, "already set");
- require(
- Timelock(payable(rgtTimelock)).admin() == tribeRariDAO,
- "admin not accepted"
- );
+ require(Timelock(payable(rgtTimelock)).admin() == tribeRariDAO, "admin not accepted");
require(tribeAccepted, "Tribe DAO not yet accepted");
require(rgtAccepted, "Rari DAO not yet accepted");
bothPartiesAccepted = true;
diff --git a/contracts/merger/MergerGate.sol b/contracts/merger/MergerGate.sol
index 0e171d9ab..6463935b3 100644
--- a/contracts/merger/MergerGate.sol
+++ b/contracts/merger/MergerGate.sol
@@ -13,19 +13,14 @@ contract MergerGate {
/// @notice the Rari DAO address
/// @dev Rari uses Governor Bravo not alpha, but the relevant interface is identical
- GovernorAlpha public constant rgtGovernor =
- GovernorAlpha(0x91d9c2b5cF81D55a5f2Ecc0fC84E62f9cd2ceFd6);
+ GovernorAlpha public constant rgtGovernor = GovernorAlpha(0x91d9c2b5cF81D55a5f2Ecc0fC84E62f9cd2ceFd6);
uint256 public constant PROPOSAL_NUMBER = 9;
/// @notice ensures Rari proposal 9 has executed
/// @dev uses MakerDAO variable naming conventions for obvious reasons: https://github.com/makerdao/dss/issues/28
function floop() external {
- require(
- rgtGovernor.state(PROPOSAL_NUMBER) ==
- GovernorAlpha.ProposalState.Executed,
- "rip"
- );
+ require(rgtGovernor.state(PROPOSAL_NUMBER) == GovernorAlpha.ProposalState.Executed, "rip");
emit OnePlusOneEqualsThree("May the sun never set on the Tribe");
}
}
diff --git a/contracts/merger/PegExchanger.sol b/contracts/merger/PegExchanger.sol
index 5d73b3b8c..10026eb3a 100644
--- a/contracts/merger/PegExchanger.sol
+++ b/contracts/merger/PegExchanger.sol
@@ -49,18 +49,9 @@ contract PegExchanger is MergerBase {
/// @param timestamp the block timestamp for expiration
/// @notice the expiry must be set to at least MIN_EXPIRY_WINDOW in the future.
function setExpirationTimestamp(uint256 timestamp) public {
- require(
- msg.sender == tribeTimelock,
- "Only the tribe timelock may call this function"
- );
- require(
- timestamp > (block.timestamp + MIN_EXPIRY_WINDOW),
- "timestamp too low"
- );
- require(
- bothPartiesAccepted == true,
- "Contract must be enabled before admin functions called"
- );
+ require(msg.sender == tribeTimelock, "Only the tribe timelock may call this function");
+ require(timestamp > (block.timestamp + MIN_EXPIRY_WINDOW), "timestamp too low");
+ require(bothPartiesAccepted == true, "Contract must be enabled before admin functions called");
expirationTimestamp = timestamp;
emit SetExpiry(msg.sender, timestamp);
}
diff --git a/contracts/merger/PegExchangerDripper.sol b/contracts/merger/PegExchangerDripper.sol
index 8cc4e1869..21e714ba1 100644
--- a/contracts/merger/PegExchangerDripper.sol
+++ b/contracts/merger/PegExchangerDripper.sol
@@ -3,11 +3,9 @@ pragma solidity ^0.8.4;
import "./PegExchanger.sol";
contract PegExchangerDripper {
- IERC20 public constant TRIBE =
- IERC20(0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B);
+ IERC20 public constant TRIBE = IERC20(0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B);
address public constant CORE = 0x8d5ED43dCa8C2F7dFB20CF7b53CC7E593635d7b9;
- address public constant PEG_EXCHANGER =
- 0xc09BB5ECf865e6f69Fe62A43c27f036A426909f7;
+ address public constant PEG_EXCHANGER = 0xc09BB5ECf865e6f69Fe62A43c27f036A426909f7;
uint256 public constant THRESHOLD = 5_000_000e18; // 5M TRIBE cutoff for dripping
uint256 public constant DRIP_AMOUNT = 20_000_000e18; // drip 20M TRIBE
@@ -19,9 +17,7 @@ contract PegExchangerDripper {
}
function isEligible() external view returns (bool) {
- return
- !PegExchanger(PEG_EXCHANGER).isExpired() &&
- TRIBE.balanceOf(PEG_EXCHANGER) <= THRESHOLD;
+ return !PegExchanger(PEG_EXCHANGER).isExpired() && TRIBE.balanceOf(PEG_EXCHANGER) <= THRESHOLD;
}
function recover() external {
diff --git a/contracts/merger/TribeRagequit.sol b/contracts/merger/TribeRagequit.sol
index fe5989c2b..017c31be2 100644
--- a/contracts/merger/TribeRagequit.sol
+++ b/contracts/merger/TribeRagequit.sol
@@ -17,19 +17,16 @@ contract TRIBERagequit is MergerBase {
using SafeERC20 for IERC20;
/// @notice tribe treasury, removed from circulating supply
- address public constant coreAddress =
- 0x8d5ED43dCa8C2F7dFB20CF7b53CC7E593635d7b9;
+ address public constant coreAddress = 0x8d5ED43dCa8C2F7dFB20CF7b53CC7E593635d7b9;
/// @notice guardian multisig, sets the IV before DAO vote
- address public constant guardian =
- 0xB8f482539F2d3Ae2C9ea6076894df36D1f632775;
+ address public constant guardian = 0xB8f482539F2d3Ae2C9ea6076894df36D1f632775;
/// @notice Intrinsic value exchange rate (IV), scaled by 1e9
uint256 public intrinsicValueExchangeRateBase;
/// @notice tribe liquidity mining dripper, removed from circulating supply
- address public constant rewardsDripper =
- 0x3Fe0EAD3500e767F0F8bC2d3B5AF7755B1b21A6a;
+ address public constant rewardsDripper = 0x3Fe0EAD3500e767F0F8bC2d3B5AF7755B1b21A6a;
/// @notice you already know
IFei public constant fei = IFei(0x956F47F50A910163D8BF957Cf5846D573E7f87CA);
@@ -54,10 +51,7 @@ contract TRIBERagequit is MergerBase {
) MergerBase(tribeRariDAO) {
merkleRoot = root;
- require(
- _rageQuitEnd - _rageQuitStart > 1 days,
- "need at least 24h ragequit window"
- );
+ require(_rageQuitEnd - _rageQuitStart > 1 days, "need at least 24h ragequit window");
rageQuitStart = _rageQuitStart;
rageQuitEnd = _rageQuitEnd;
}
@@ -73,18 +67,9 @@ contract TRIBERagequit is MergerBase {
bytes32[] calldata merkleProof
) external {
require(bothPartiesAccepted, "Proposals are not both passed");
- require(
- block.timestamp > rageQuitStart && block.timestamp < rageQuitEnd,
- "outside ragequit window"
- );
- require(
- verifyClaim(msg.sender, totalMerkleAmount, merkleProof),
- "invalid proof"
- );
- require(
- (claimed[msg.sender] + amount) <= totalMerkleAmount,
- "exceeds ragequit limit"
- );
+ require(block.timestamp > rageQuitStart && block.timestamp < rageQuitEnd, "outside ragequit window");
+ require(verifyClaim(msg.sender, totalMerkleAmount, merkleProof), "invalid proof");
+ require((claimed[msg.sender] + amount) <= totalMerkleAmount, "exceeds ragequit limit");
claimed[msg.sender] += amount;
uint256 feiOut = (amount * intrinsicValueExchangeRateBase) / scalar;
@@ -96,20 +81,13 @@ contract TRIBERagequit is MergerBase {
}
function getCirculatingTribe() public view returns (uint256) {
- return
- tribe.totalSupply() -
- tribe.balanceOf(coreAddress) -
- tribe.balanceOf(rewardsDripper);
+ return tribe.totalSupply() - tribe.balanceOf(coreAddress) - tribe.balanceOf(rewardsDripper);
}
/// @notice recalculate the exchange amount using the protocolEquity
/// @param protocolEquity the protocol equity
/// @return the new intrinsicValueExchangeRateBase
- function exchangeRate(uint256 protocolEquity)
- public
- view
- returns (uint256)
- {
+ function exchangeRate(uint256 protocolEquity) public view returns (uint256) {
return (scalar * protocolEquity) / getCirculatingTribe();
}
@@ -117,10 +95,7 @@ contract TRIBERagequit is MergerBase {
/// @param protocolEquity the protocol equity
/// @return the new exchange rate
/// @dev only callable once by guardian
- function setExchangeRate(uint256 protocolEquity)
- external
- returns (uint256)
- {
+ function setExchangeRate(uint256 protocolEquity) external returns (uint256) {
require(intrinsicValueExchangeRateBase == 0, "already set");
require(msg.sender == guardian, "guardian");
intrinsicValueExchangeRateBase = exchangeRate(protocolEquity);
diff --git a/contracts/metagov/AngleDelegatorPCVDeposit.sol b/contracts/metagov/AngleDelegatorPCVDeposit.sol
index a78f34a07..40ec6c1a5 100644
--- a/contracts/metagov/AngleDelegatorPCVDeposit.sol
+++ b/contracts/metagov/AngleDelegatorPCVDeposit.sol
@@ -14,12 +14,9 @@ contract AngleDelegatorPCVDeposit is
LiquidityGaugeManager,
GovernorVoter
{
- address private constant ANGLE_TOKEN =
- 0x31429d1856aD1377A8A0079410B297e1a9e214c2;
- address private constant ANGLE_VE_TOKEN =
- 0x0C462Dbb9EC8cD1630f1728B2CFD2769d09f0dd5;
- address private constant ANGLE_GAUGE_MANAGER =
- 0x9aD7e7b0877582E14c17702EecF49018DD6f2367;
+ address private constant ANGLE_TOKEN = 0x31429d1856aD1377A8A0079410B297e1a9e214c2;
+ address private constant ANGLE_VE_TOKEN = 0x0C462Dbb9EC8cD1630f1728B2CFD2769d09f0dd5;
+ address private constant ANGLE_GAUGE_MANAGER = 0x9aD7e7b0877582E14c17702EecF49018DD6f2367;
bytes32 private constant ANGLE_SNAPSHOT_SPACE = "anglegovernance.eth";
/// @notice ANGLE token manager
@@ -47,12 +44,7 @@ contract AngleDelegatorPCVDeposit is
}
/// @notice returns the token address to be staked in the given gauge
- function _tokenStakedInGauge(address gaugeAddress)
- internal
- view
- override
- returns (address)
- {
+ function _tokenStakedInGauge(address gaugeAddress) internal view override returns (address) {
return ILiquidityGauge(gaugeAddress).staking_token();
}
}
diff --git a/contracts/metagov/SnapshotDelegatorPCVDeposit.sol b/contracts/metagov/SnapshotDelegatorPCVDeposit.sol
index b6e595ed5..431fa1f08 100644
--- a/contracts/metagov/SnapshotDelegatorPCVDeposit.sol
+++ b/contracts/metagov/SnapshotDelegatorPCVDeposit.sol
@@ -9,23 +9,16 @@ interface DelegateRegistry {
function clearDelegate(bytes32 id) external;
- function delegation(address delegator, bytes32 id)
- external
- view
- returns (address delegatee);
+ function delegation(address delegator, bytes32 id) external view returns (address delegatee);
}
/// @title Snapshot Delegator PCV Deposit
/// @author Fei Protocol
contract SnapshotDelegatorPCVDeposit is PCVDeposit {
- event DelegateUpdate(
- address indexed oldDelegate,
- address indexed newDelegate
- );
+ event DelegateUpdate(address indexed oldDelegate, address indexed newDelegate);
/// @notice the Gnosis delegate registry used by snapshot
- DelegateRegistry public constant DELEGATE_REGISTRY =
- DelegateRegistry(0x469788fE6E9E9681C6ebF3bF78e7Fd26Fc015446);
+ DelegateRegistry public constant DELEGATE_REGISTRY = DelegateRegistry(0x469788fE6E9E9681C6ebF3bF78e7Fd26Fc015446);
/// @notice the token that is being used for snapshot
IERC20 public immutable token;
@@ -54,11 +47,7 @@ contract SnapshotDelegatorPCVDeposit is PCVDeposit {
/// @notice withdraw tokens from the PCV allocation
/// @param amountUnderlying of tokens withdrawn
/// @param to the address to send PCV to
- function withdraw(address to, uint256 amountUnderlying)
- external
- override
- onlyPCVController
- {
+ function withdraw(address to, uint256 amountUnderlying) external override onlyPCVController {
_withdrawERC20(address(token), to, amountUnderlying);
}
@@ -76,28 +65,19 @@ contract SnapshotDelegatorPCVDeposit is PCVDeposit {
}
/// @notice sets the snapshot space ID
- function setSpaceId(bytes32 _spaceId)
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN)
- {
+ function setSpaceId(bytes32 _spaceId) external onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN) {
DELEGATE_REGISTRY.clearDelegate(spaceId);
spaceId = _spaceId;
_delegate(delegate);
}
/// @notice sets the snapshot delegate
- function setDelegate(address newDelegate)
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN)
- {
+ function setDelegate(address newDelegate) external onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN) {
_delegate(newDelegate);
}
/// @notice clears the delegate from snapshot
- function clearDelegate()
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN)
- {
+ function clearDelegate() external onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN) {
address oldDelegate = delegate;
DELEGATE_REGISTRY.clearDelegate(spaceId);
diff --git a/contracts/metagov/VeBalDelegatorPCVDeposit.sol b/contracts/metagov/VeBalDelegatorPCVDeposit.sol
index 276914a86..6b67f2b2a 100644
--- a/contracts/metagov/VeBalDelegatorPCVDeposit.sol
+++ b/contracts/metagov/VeBalDelegatorPCVDeposit.sol
@@ -14,11 +14,9 @@ contract VeBalDelegatorPCVDeposit is
LiquidityGaugeManager,
GovernorVoter
{
- address public constant B_80BAL_20WETH =
- 0x5c6Ee304399DBdB9C8Ef030aB642B10820DB8F56;
+ address public constant B_80BAL_20WETH = 0x5c6Ee304399DBdB9C8Ef030aB642B10820DB8F56;
address public constant VE_BAL = 0xC128a9954e6c874eA3d62ce62B468bA073093F25;
- address public constant BALANCER_GAUGE_CONTROLLER =
- 0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD;
+ address public constant BALANCER_GAUGE_CONTROLLER = 0xC128468b7Ce63eA702C1f104D55A2566b13D3ABD;
/// @notice veBAL token manager
/// @param _core Fei Core for reference
diff --git a/contracts/metagov/utils/GovernorVoter.sol b/contracts/metagov/utils/GovernorVoter.sol
index 91e592a74..c0367d0b4 100644
--- a/contracts/metagov/utils/GovernorVoter.sol
+++ b/contracts/metagov/utils/GovernorVoter.sol
@@ -22,9 +22,7 @@ interface IMetagovGovernor {
string memory description
) external returns (uint256 proposalId);
- function castVote(uint256 proposalId, uint8 support)
- external
- returns (uint256 weight);
+ function castVote(uint256 proposalId, uint8 support) external returns (uint256 weight);
function state(uint256 proposalId) external view returns (uint256);
}
@@ -34,12 +32,7 @@ interface IMetagovGovernor {
abstract contract GovernorVoter is CoreRef {
// Events
event Proposed(IMetagovGovernor indexed governor, uint256 proposalId);
- event Voted(
- IMetagovGovernor indexed governor,
- uint256 proposalId,
- uint256 weight,
- uint8 support
- );
+ event Voted(IMetagovGovernor indexed governor, uint256 proposalId, uint256 weight, uint8 support);
/// @notice propose a new proposal on the target OZ governor.
function proposeOZ(
@@ -48,17 +41,8 @@ abstract contract GovernorVoter is CoreRef {
uint256[] memory values,
bytes[] memory calldatas,
string memory description
- )
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN)
- returns (uint256)
- {
- uint256 proposalId = governor.propose(
- targets,
- values,
- calldatas,
- description
- );
+ ) external onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN) returns (uint256) {
+ uint256 proposalId = governor.propose(targets, values, calldatas, description);
emit Proposed(governor, proposalId);
return proposalId;
}
@@ -71,18 +55,8 @@ abstract contract GovernorVoter is CoreRef {
string[] memory signatures,
bytes[] memory calldatas,
string memory description
- )
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN)
- returns (uint256)
- {
- uint256 proposalId = governor.propose(
- targets,
- values,
- signatures,
- calldatas,
- description
- );
+ ) external onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN) returns (uint256) {
+ uint256 proposalId = governor.propose(targets, values, signatures, calldatas, description);
emit Proposed(governor, proposalId);
return proposalId;
}
@@ -92,11 +66,7 @@ abstract contract GovernorVoter is CoreRef {
IMetagovGovernor governor,
uint256 proposalId,
uint8 support
- )
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN)
- returns (uint256)
- {
+ ) external onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN) returns (uint256) {
uint256 weight = governor.castVote(proposalId, support);
emit Voted(governor, proposalId, weight, support);
return weight;
diff --git a/contracts/metagov/utils/LiquidityGaugeManager.sol b/contracts/metagov/utils/LiquidityGaugeManager.sol
index d836d6c15..0e7ccda98 100644
--- a/contracts/metagov/utils/LiquidityGaugeManager.sol
+++ b/contracts/metagov/utils/LiquidityGaugeManager.sol
@@ -26,13 +26,9 @@ interface ILiquidityGauge {
}
interface ILiquidityGaugeController {
- function vote_for_gauge_weights(address gauge_addr, uint256 user_weight)
- external;
+ function vote_for_gauge_weights(address gauge_addr, uint256 user_weight) external;
- function last_user_vote(address user, address gauge)
- external
- view
- returns (uint256);
+ function last_user_vote(address user, address gauge) external view returns (uint256);
function vote_user_power(address user) external view returns (uint256);
@@ -43,19 +39,12 @@ interface ILiquidityGaugeController {
/// @author Fei Protocol
abstract contract LiquidityGaugeManager is CoreRef {
// Events
- event GaugeControllerChanged(
- address indexed oldController,
- address indexed newController
- );
+ event GaugeControllerChanged(address indexed oldController, address indexed newController);
event GaugeSetForToken(address indexed token, address indexed gauge);
event GaugeVote(address indexed gauge, uint256 amount);
event GaugeStake(address indexed gauge, uint256 amount);
event GaugeUnstake(address indexed gauge, uint256 amount);
- event GaugeRewardsClaimed(
- address indexed gauge,
- address indexed token,
- uint256 amount
- );
+ event GaugeRewardsClaimed(address indexed gauge, address indexed token, uint256 amount);
/// @notice address of the gauge controller used for voting
address public gaugeController;
@@ -69,14 +58,8 @@ abstract contract LiquidityGaugeManager is CoreRef {
/// @notice Set the gauge controller used for gauge weight voting
/// @param _gaugeController the gauge controller address
- function setGaugeController(address _gaugeController)
- public
- onlyTribeRole(TribeRoles.METAGOVERNANCE_GAUGE_ADMIN)
- {
- require(
- gaugeController != _gaugeController,
- "LiquidityGaugeManager: same controller"
- );
+ function setGaugeController(address _gaugeController) public onlyTribeRole(TribeRoles.METAGOVERNANCE_GAUGE_ADMIN) {
+ require(gaugeController != _gaugeController, "LiquidityGaugeManager: same controller");
address oldController = gaugeController;
gaugeController = _gaugeController;
@@ -85,12 +68,7 @@ abstract contract LiquidityGaugeManager is CoreRef {
}
/// @notice returns the token address to be staked in the given gauge
- function _tokenStakedInGauge(address gaugeAddress)
- internal
- view
- virtual
- returns (address)
- {
+ function _tokenStakedInGauge(address gaugeAddress) internal view virtual returns (address) {
return ILiquidityGauge(gaugeAddress).lp_token();
}
@@ -101,14 +79,9 @@ abstract contract LiquidityGaugeManager is CoreRef {
public
onlyTribeRole(TribeRoles.METAGOVERNANCE_GAUGE_ADMIN)
{
+ require(_tokenStakedInGauge(gaugeAddress) == token, "LiquidityGaugeManager: wrong gauge for token");
require(
- _tokenStakedInGauge(gaugeAddress) == token,
- "LiquidityGaugeManager: wrong gauge for token"
- );
- require(
- ILiquidityGaugeController(gaugeController).gauge_types(
- gaugeAddress
- ) >= 0,
+ ILiquidityGaugeController(gaugeController).gauge_types(gaugeAddress) >= 0,
"LiquidityGaugeManager: wrong gauge address"
);
tokenToGauge[token] = gaugeAddress;
@@ -125,14 +98,8 @@ abstract contract LiquidityGaugeManager is CoreRef {
onlyTribeRole(TribeRoles.METAGOVERNANCE_VOTE_ADMIN)
{
address gaugeAddress = tokenToGauge[token];
- require(
- gaugeAddress != address(0),
- "LiquidityGaugeManager: token has no gauge configured"
- );
- ILiquidityGaugeController(gaugeController).vote_for_gauge_weights(
- gaugeAddress,
- gaugeWeight
- );
+ require(gaugeAddress != address(0), "LiquidityGaugeManager: token has no gauge configured");
+ ILiquidityGaugeController(gaugeController).vote_for_gauge_weights(gaugeAddress, gaugeWeight);
emit GaugeVote(gaugeAddress, gaugeWeight);
}
@@ -146,10 +113,7 @@ abstract contract LiquidityGaugeManager is CoreRef {
onlyTribeRole(TribeRoles.METAGOVERNANCE_GAUGE_ADMIN)
{
address gaugeAddress = tokenToGauge[token];
- require(
- gaugeAddress != address(0),
- "LiquidityGaugeManager: token has no gauge configured"
- );
+ require(gaugeAddress != address(0), "LiquidityGaugeManager: token has no gauge configured");
IERC20(token).approve(gaugeAddress, amount);
ILiquidityGauge(gaugeAddress).deposit(amount);
@@ -158,16 +122,9 @@ abstract contract LiquidityGaugeManager is CoreRef {
/// @notice Stake all tokens held in a gauge
/// @param token the address of the token to stake in the gauge
- function stakeAllInGauge(address token)
- public
- whenNotPaused
- onlyTribeRole(TribeRoles.METAGOVERNANCE_GAUGE_ADMIN)
- {
+ function stakeAllInGauge(address token) public whenNotPaused onlyTribeRole(TribeRoles.METAGOVERNANCE_GAUGE_ADMIN) {
address gaugeAddress = tokenToGauge[token];
- require(
- gaugeAddress != address(0),
- "LiquidityGaugeManager: token has no gauge configured"
- );
+ require(gaugeAddress != address(0), "LiquidityGaugeManager: token has no gauge configured");
uint256 amount = IERC20(token).balanceOf(address(this));
IERC20(token).approve(gaugeAddress, amount);
ILiquidityGauge(gaugeAddress).deposit(amount);
@@ -184,10 +141,7 @@ abstract contract LiquidityGaugeManager is CoreRef {
onlyTribeRole(TribeRoles.METAGOVERNANCE_GAUGE_ADMIN)
{
address gaugeAddress = tokenToGauge[token];
- require(
- gaugeAddress != address(0),
- "LiquidityGaugeManager: token has no gauge configured"
- );
+ require(gaugeAddress != address(0), "LiquidityGaugeManager: token has no gauge configured");
ILiquidityGauge(gaugeAddress).withdraw(amount, false);
emit GaugeUnstake(gaugeAddress, amount);
@@ -197,10 +151,7 @@ abstract contract LiquidityGaugeManager is CoreRef {
/// tokens.
function claimGaugeRewards(address token) public whenNotPaused {
address gaugeAddress = tokenToGauge[token];
- require(
- gaugeAddress != address(0),
- "LiquidityGaugeManager: token has no gauge configured"
- );
+ require(gaugeAddress != address(0), "LiquidityGaugeManager: token has no gauge configured");
uint256 nTokens = ILiquidityGauge(gaugeAddress).reward_count();
address[] memory tokens = new address[](nTokens);
@@ -214,9 +165,7 @@ abstract contract LiquidityGaugeManager is CoreRef {
ILiquidityGauge(gaugeAddress).claim_rewards();
for (uint256 i = 0; i < nTokens; i++) {
- amounts[i] =
- IERC20(tokens[i]).balanceOf(address(this)) -
- amounts[i];
+ amounts[i] = IERC20(tokens[i]).balanceOf(address(this)) - amounts[i];
emit GaugeRewardsClaimed(gaugeAddress, tokens[i], amounts[i]);
}
diff --git a/contracts/metagov/utils/VoteEscrowTokenManager.sol b/contracts/metagov/utils/VoteEscrowTokenManager.sol
index 9d33527c0..c7b63234c 100644
--- a/contracts/metagov/utils/VoteEscrowTokenManager.sol
+++ b/contracts/metagov/utils/VoteEscrowTokenManager.sol
@@ -63,21 +63,14 @@ abstract contract VoteEscrowTokenManager is CoreRef {
}
/// @notice Set the amount of time tokens will be vote-escrowed for in lock() calls
- function setLockDuration(uint256 newLockDuration)
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_TOKEN_STAKING)
- {
+ function setLockDuration(uint256 newLockDuration) external onlyTribeRole(TribeRoles.METAGOVERNANCE_TOKEN_STAKING) {
lockDuration = newLockDuration;
}
/// @notice Deposit tokens to get veTokens. Set lock duration to lockDuration.
/// The only way to withdraw tokens will be to pause this contract
/// for lockDuration and then call exitLock().
- function lock()
- external
- whenNotPaused
- onlyTribeRole(TribeRoles.METAGOVERNANCE_TOKEN_STAKING)
- {
+ function lock() external whenNotPaused onlyTribeRole(TribeRoles.METAGOVERNANCE_TOKEN_STAKING) {
uint256 tokenBalance = liquidToken.balanceOf(address(this));
uint256 locked = veToken.locked(address(this));
uint256 lockHorizon = ((block.timestamp + lockDuration) / WEEK) * WEEK;
@@ -110,10 +103,7 @@ abstract contract VoteEscrowTokenManager is CoreRef {
/// by calling lock(). This function will recover tokens on the contract,
/// which can then be moved by calling withdraw() as a PCVController if the
/// contract is also a PCVDeposit, for instance.
- function exitLock()
- external
- onlyTribeRole(TribeRoles.METAGOVERNANCE_TOKEN_STAKING)
- {
+ function exitLock() external onlyTribeRole(TribeRoles.METAGOVERNANCE_TOKEN_STAKING) {
veToken.withdraw();
emit Unlock(liquidToken.balanceOf(address(this)));
@@ -121,8 +111,6 @@ abstract contract VoteEscrowTokenManager is CoreRef {
/// @notice returns total balance of tokens, vote-escrowed or liquid.
function _totalTokensManaged() internal view returns (uint256) {
- return
- liquidToken.balanceOf(address(this)) +
- veToken.locked(address(this));
+ return liquidToken.balanceOf(address(this)) + veToken.locked(address(this));
}
}
diff --git a/contracts/mock/IMockUniswapV2PairLiquidity.sol b/contracts/mock/IMockUniswapV2PairLiquidity.sol
index c217dfd92..76825b576 100644
--- a/contracts/mock/IMockUniswapV2PairLiquidity.sol
+++ b/contracts/mock/IMockUniswapV2PairLiquidity.sol
@@ -5,13 +5,9 @@ import "@uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol";
import "../external/Decimal.sol";
interface IMockUniswapV2PairLiquidity is IUniswapV2Pair {
- function burnEth(address to, Decimal.D256 calldata ratio)
- external
- returns (uint256 amountEth, uint256 amount1);
+ function burnEth(address to, Decimal.D256 calldata ratio) external returns (uint256 amountEth, uint256 amount1);
- function burnToken(address to, Decimal.D256 calldata ratio)
- external
- returns (uint256 amount0, uint256 amount1);
+ function burnToken(address to, Decimal.D256 calldata ratio) external returns (uint256 amount0, uint256 amount1);
function mintAmount(address to, uint256 _liquidity) external payable;
diff --git a/contracts/mock/MockAngleStableMaster.sol b/contracts/mock/MockAngleStableMaster.sol
index 354bdf95c..a598e4981 100644
--- a/contracts/mock/MockAngleStableMaster.sol
+++ b/contracts/mock/MockAngleStableMaster.sol
@@ -27,16 +27,11 @@ contract MockAngleStableMaster {
address poolManager,
uint256 minStableAmount
) external {
- uint256 amountAfterFee = (amount * (10_000 - feeBp)) /
- (usdPerAgToken * 10_000);
+ uint256 amountAfterFee = (amount * (10_000 - feeBp)) / (usdPerAgToken * 10_000);
require(amountAfterFee >= minStableAmount, "15");
// in reality, assets should go to the poolManager, but for this mock purpose, tokens
// are held on the stablemaster
- IERC20(MockAnglePoolManager(poolManager).token()).safeTransferFrom(
- msg.sender,
- address(this),
- amount
- );
+ IERC20(MockAnglePoolManager(poolManager).token()).safeTransferFrom(msg.sender, address(this), amount);
agToken.mint(user, amountAfterFee);
}
@@ -47,13 +42,9 @@ contract MockAngleStableMaster {
address poolManager,
uint256 minCollatAmount
) external {
- uint256 amountAfterFee = (amount * usdPerAgToken * (10_000 - feeBp)) /
- 10_000;
+ uint256 amountAfterFee = (amount * usdPerAgToken * (10_000 - feeBp)) / 10_000;
require(amountAfterFee >= minCollatAmount, "15");
- IERC20(MockAnglePoolManager(poolManager).token()).transfer(
- dest,
- amountAfterFee
- );
+ IERC20(MockAnglePoolManager(poolManager).token()).transfer(dest, amountAfterFee);
agToken.mockBurn(burner, amount);
}
}
diff --git a/contracts/mock/MockAngleStakingRewards.sol b/contracts/mock/MockAngleStakingRewards.sol
index ae64a82d5..def1bb0d4 100644
--- a/contracts/mock/MockAngleStakingRewards.sol
+++ b/contracts/mock/MockAngleStakingRewards.sol
@@ -19,12 +19,7 @@ contract MockAngleStakingRewards {
}
function stake(uint256 amount) external {
- SafeERC20.safeTransferFrom(
- IERC20(stakingToken),
- msg.sender,
- address(this),
- amount
- );
+ SafeERC20.safeTransferFrom(IERC20(stakingToken), msg.sender, address(this), amount);
balanceOf[msg.sender] += amount;
}
diff --git a/contracts/mock/MockBondingCurve.sol b/contracts/mock/MockBondingCurve.sol
index 39b05d3e0..95a2fc657 100644
--- a/contracts/mock/MockBondingCurve.sol
+++ b/contracts/mock/MockBondingCurve.sol
@@ -25,11 +25,7 @@ contract MockBondingCurve {
allocated = true;
}
- function purchase(address, uint256)
- public
- payable
- returns (uint256 amountOut)
- {
+ function purchase(address, uint256) public payable returns (uint256 amountOut) {
return 1;
}
@@ -37,11 +33,7 @@ contract MockBondingCurve {
return 10 * amount;
}
- function getAverageUSDPrice(uint256)
- public
- view
- returns (Decimal.D256 memory)
- {
+ function getAverageUSDPrice(uint256) public view returns (Decimal.D256 memory) {
return getCurrentPrice;
}
}
diff --git a/contracts/mock/MockChainlinkOracle.sol b/contracts/mock/MockChainlinkOracle.sol
index 8eaae4d2b..debf9e372 100644
--- a/contracts/mock/MockChainlinkOracle.sol
+++ b/contracts/mock/MockChainlinkOracle.sol
@@ -58,13 +58,7 @@ contract MockChainlinkOracle is AggregatorV3Interface {
uint80 answeredInRound
)
{
- return (
- _roundId,
- _value,
- block.timestamp,
- block.timestamp,
- _answeredInRound
- );
+ return (_roundId, _value, block.timestamp, block.timestamp, _answeredInRound);
}
function set(
diff --git a/contracts/mock/MockCollateralizationOracle.sol b/contracts/mock/MockCollateralizationOracle.sol
index 3112d432c..803cad2e3 100644
--- a/contracts/mock/MockCollateralizationOracle.sol
+++ b/contracts/mock/MockCollateralizationOracle.sol
@@ -8,9 +8,7 @@ contract MockCollateralizationOracle is MockOracleCoreRef {
uint256 public pcvValue = 5e20;
- constructor(address core, uint256 exchangeRate)
- MockOracleCoreRef(core, exchangeRate)
- {}
+ constructor(address core, uint256 exchangeRate) MockOracleCoreRef(core, exchangeRate) {}
function set(uint256 _userCirculatingFei, uint256 _pcvValue) public {
userCirculatingFei = _userCirculatingFei;
diff --git a/contracts/mock/MockConvexBaseRewardPool.sol b/contracts/mock/MockConvexBaseRewardPool.sol
index ab57092dc..11b205c08 100644
--- a/contracts/mock/MockConvexBaseRewardPool.sol
+++ b/contracts/mock/MockConvexBaseRewardPool.sol
@@ -19,10 +19,7 @@ contract MockConvexBaseRewardPool is MockERC20 {
rewardAmountPerClaim = _rewardAmountPerClaim;
}
- function withdrawAndUnwrap(uint256 amount, bool claim)
- public
- returns (bool)
- {
+ function withdrawAndUnwrap(uint256 amount, bool claim) public returns (bool) {
lpTokens.transfer(msg.sender, amount);
getReward(msg.sender, claim);
return true;
diff --git a/contracts/mock/MockCoreRefTest.sol b/contracts/mock/MockCoreRefTest.sol
index 2942d6017..45e026726 100644
--- a/contracts/mock/MockCoreRefTest.sol
+++ b/contracts/mock/MockCoreRefTest.sol
@@ -8,8 +8,5 @@ contract MockCoreRefTest is CoreRef {
_setContractAdminRole(keccak256("MOCK_CORE_REF_ADMIN"));
}
- function governorOrGuardianTest()
- external
- hasAnyOfTwoRoles(keccak256("GOVERN_ROLE"), keccak256("GUARDIAN_ROLE"))
- {}
+ function governorOrGuardianTest() external hasAnyOfTwoRoles(keccak256("GOVERN_ROLE"), keccak256("GUARDIAN_ROLE")) {}
}
diff --git a/contracts/mock/MockCurve3pool.sol b/contracts/mock/MockCurve3pool.sol
index 04e00c439..cc57ad07e 100644
--- a/contracts/mock/MockCurve3pool.sol
+++ b/contracts/mock/MockCurve3pool.sol
@@ -21,14 +21,11 @@ contract MockCurve3pool is MockERC20 {
slippage = _slippage;
}
- function add_liquidity(uint256[3] memory amounts, uint256 min_mint_amount)
- public
- {
+ function add_liquidity(uint256[3] memory amounts, uint256 min_mint_amount) public {
IERC20(coins[0]).transferFrom(msg.sender, address(this), amounts[0]);
IERC20(coins[1]).transferFrom(msg.sender, address(this), amounts[1]);
IERC20(coins[2]).transferFrom(msg.sender, address(this), amounts[2]);
- uint256 totalTokens = ((amounts[0] + amounts[1] + amounts[2]) *
- (10000 - slippage)) / 10000;
+ uint256 totalTokens = ((amounts[0] + amounts[1] + amounts[2]) * (10000 - slippage)) / 10000;
MockERC20(this).mint(msg.sender, totalTokens);
}
@@ -36,9 +33,7 @@ contract MockCurve3pool is MockERC20 {
return IERC20(coins[i]).balanceOf(address(this));
}
- function remove_liquidity(uint256 _amount, uint256[3] memory min_amounts)
- public
- {
+ function remove_liquidity(uint256 _amount, uint256[3] memory min_amounts) public {
uint256[3] memory amounts;
amounts[0] = _amount / 3;
amounts[1] = _amount / 3;
@@ -64,11 +59,7 @@ contract MockCurve3pool is MockERC20 {
return 1000000000000000000;
}
- function calc_withdraw_one_coin(uint256 _token_amount, int128 i)
- public
- view
- returns (uint256)
- {
+ function calc_withdraw_one_coin(uint256 _token_amount, int128 i) public view returns (uint256) {
uint256 _amountOut = (_token_amount * (10000 - slippage)) / 10000;
_amountOut = (_amountOut * 100000) / 100015; // 0.015% fee
return _amountOut;
diff --git a/contracts/mock/MockCurveMetapool.sol b/contracts/mock/MockCurveMetapool.sol
index a9acc9887..550066d5f 100644
--- a/contracts/mock/MockCurveMetapool.sol
+++ b/contracts/mock/MockCurveMetapool.sol
@@ -16,13 +16,10 @@ contract MockCurveMetapool is MockERC20 {
slippage = _slippage;
}
- function add_liquidity(uint256[2] memory amounts, uint256 min_mint_amount)
- public
- {
+ function add_liquidity(uint256[2] memory amounts, uint256 min_mint_amount) public {
IERC20(coins[0]).transferFrom(msg.sender, address(this), amounts[0]);
IERC20(coins[1]).transferFrom(msg.sender, address(this), amounts[1]);
- uint256 totalTokens = ((amounts[0] + amounts[1]) * (10000 - slippage)) /
- 10000;
+ uint256 totalTokens = ((amounts[0] + amounts[1]) * (10000 - slippage)) / 10000;
MockERC20(this).mint(msg.sender, totalTokens);
}
@@ -30,9 +27,7 @@ contract MockCurveMetapool is MockERC20 {
return IERC20(coins[i]).balanceOf(address(this));
}
- function remove_liquidity(uint256 _amount, uint256[2] memory min_amounts)
- public
- {
+ function remove_liquidity(uint256 _amount, uint256[2] memory min_amounts) public {
uint256[2] memory amounts;
amounts[0] = _amount / 2;
amounts[1] = _amount / 2;
@@ -56,11 +51,7 @@ contract MockCurveMetapool is MockERC20 {
return 1000000000000000000;
}
- function calc_withdraw_one_coin(uint256 _token_amount, int128 i)
- public
- view
- returns (uint256)
- {
+ function calc_withdraw_one_coin(uint256 _token_amount, int128 i) public view returns (uint256) {
uint256 _amountOut = (_token_amount * (10000 - slippage)) / 10000;
_amountOut = (_amountOut * 10000) / 10002; // 0.02% fee
return _amountOut;
diff --git a/contracts/mock/MockERC20PCVDeposit.sol b/contracts/mock/MockERC20PCVDeposit.sol
index 3b985e297..368ebea7f 100644
--- a/contracts/mock/MockERC20PCVDeposit.sol
+++ b/contracts/mock/MockERC20PCVDeposit.sol
@@ -34,11 +34,7 @@ contract MockERC20PCVDeposit is IPCVDeposit {
emit WithdrawERC20(msg.sender, to, token, amount);
}
- function withdrawETH(address payable to, uint256 amountOut)
- external
- virtual
- override
- {
+ function withdrawETH(address payable to, uint256 amountOut) external virtual override {
Address.sendValue(to, amountOut);
emit WithdrawETH(msg.sender, to, amountOut);
}
@@ -52,13 +48,7 @@ contract MockERC20PCVDeposit is IPCVDeposit {
return address(token);
}
- function resistantBalanceAndFei()
- public
- view
- virtual
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view virtual override returns (uint256, uint256) {
return (balance(), 0);
}
diff --git a/contracts/mock/MockERC20UniswapPCVDeposit.sol b/contracts/mock/MockERC20UniswapPCVDeposit.sol
index 100a5d7e2..6421010d6 100644
--- a/contracts/mock/MockERC20UniswapPCVDeposit.sol
+++ b/contracts/mock/MockERC20UniswapPCVDeposit.sol
@@ -27,11 +27,7 @@ contract MockERC20UniswapPCVDeposit is IPCVDeposit {
emit WithdrawERC20(msg.sender, to, token, amount);
}
- function withdrawETH(address payable to, uint256 amountOut)
- external
- virtual
- override
- {
+ function withdrawETH(address payable to, uint256 amountOut) external virtual override {
Address.sendValue(to, amountOut);
emit WithdrawETH(msg.sender, to, amountOut);
}
@@ -45,13 +41,7 @@ contract MockERC20UniswapPCVDeposit is IPCVDeposit {
return address(token);
}
- function resistantBalanceAndFei()
- public
- view
- virtual
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view virtual override returns (uint256, uint256) {
return (balance(), 0);
}
}
diff --git a/contracts/mock/MockEthPCVDeposit.sol b/contracts/mock/MockEthPCVDeposit.sol
index 2d2c84579..345575b65 100644
--- a/contracts/mock/MockEthPCVDeposit.sol
+++ b/contracts/mock/MockEthPCVDeposit.sol
@@ -23,10 +23,7 @@ contract MockEthPCVDeposit is IPCVDeposit {
function deposit() external override {}
function withdraw(address to, uint256 amount) external override {
- require(
- address(this).balance >= amount,
- "MockEthPCVDeposit: Not enough value held"
- );
+ require(address(this).balance >= amount, "MockEthPCVDeposit: Not enough value held");
total -= amount;
Address.sendValue(payable(to), amount);
}
@@ -40,11 +37,7 @@ contract MockEthPCVDeposit is IPCVDeposit {
emit WithdrawERC20(msg.sender, to, token, amount);
}
- function withdrawETH(address payable to, uint256 amountOut)
- external
- virtual
- override
- {
+ function withdrawETH(address payable to, uint256 amountOut) external virtual override {
Address.sendValue(to, amountOut);
emit WithdrawETH(msg.sender, to, amountOut);
}
@@ -62,13 +55,7 @@ contract MockEthPCVDeposit is IPCVDeposit {
return address(0);
}
- function resistantBalanceAndFei()
- public
- view
- virtual
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view virtual override returns (uint256, uint256) {
return (balance(), 0);
}
}
diff --git a/contracts/mock/MockLiquidityGaugeManager.sol b/contracts/mock/MockLiquidityGaugeManager.sol
index e42f1f672..6ef306438 100644
--- a/contracts/mock/MockLiquidityGaugeManager.sol
+++ b/contracts/mock/MockLiquidityGaugeManager.sol
@@ -5,8 +5,5 @@ import "./MockCoreRef.sol";
import "../metagov/utils/LiquidityGaugeManager.sol";
contract MockLiquidityGaugeManager is LiquidityGaugeManager, MockCoreRef {
- constructor(address core, address gaugeController)
- MockCoreRef(core)
- LiquidityGaugeManager(gaugeController)
- {}
+ constructor(address core, address gaugeController) MockCoreRef(core) LiquidityGaugeManager(gaugeController) {}
}
diff --git a/contracts/mock/MockMinter.sol b/contracts/mock/MockMinter.sol
new file mode 100644
index 000000000..5b5c7fd41
--- /dev/null
+++ b/contracts/mock/MockMinter.sol
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import "./../utils/GlobalRateLimitedMinter.sol";
+
+contract MockMinter {
+ GlobalRateLimitedMinter globalRateLimitedMinter;
+
+ constructor(GlobalRateLimitedMinter _globalRateLimitedMinter) {
+ globalRateLimitedMinter = _globalRateLimitedMinter;
+ }
+
+ function mint(address to, uint256 amount) external {
+ globalRateLimitedMinter.mint(to, amount);
+ }
+
+ function mintAllFei(address to) external {
+ globalRateLimitedMinter.mintMaxAllowableFei(to);
+ }
+}
diff --git a/contracts/mock/MockOracleCoreRef.sol b/contracts/mock/MockOracleCoreRef.sol
index fd04e6f66..68c93fc48 100644
--- a/contracts/mock/MockOracleCoreRef.sol
+++ b/contracts/mock/MockOracleCoreRef.sol
@@ -5,8 +5,5 @@ import "./MockOracle.sol";
import "./MockCoreRef.sol";
contract MockOracleCoreRef is MockOracle, MockCoreRef {
- constructor(address core, uint256 usdPerEth)
- MockCoreRef(core)
- MockOracle(usdPerEth)
- {}
+ constructor(address core, uint256 usdPerEth) MockCoreRef(core) MockOracle(usdPerEth) {}
}
diff --git a/contracts/mock/MockPCVDepositV2.sol b/contracts/mock/MockPCVDepositV2.sol
index fb2428624..ed8855300 100644
--- a/contracts/mock/MockPCVDepositV2.sol
+++ b/contracts/mock/MockPCVDepositV2.sol
@@ -23,20 +23,13 @@ contract MockPCVDepositV2 is IPCVDeposit, CoreRef {
receive() external payable {}
- function set(uint256 _resistantBalance, uint256 _resistantProtocolOwnedFei)
- public
- {
+ function set(uint256 _resistantBalance, uint256 _resistantProtocolOwnedFei) public {
resistantBalance = _resistantBalance;
resistantProtocolOwnedFei = _resistantProtocolOwnedFei;
}
// gets the resistant token balance and protocol owned fei of this deposit
- function resistantBalanceAndFei()
- external
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() external view override returns (uint256, uint256) {
return (resistantBalance, resistantProtocolOwnedFei);
}
@@ -58,11 +51,7 @@ contract MockPCVDepositV2 is IPCVDeposit, CoreRef {
IERC20(token).transfer(to, amount);
}
- function withdrawETH(address payable to, uint256 amount)
- external
- override
- onlyPCVController
- {
+ function withdrawETH(address payable to, uint256 amount) external override onlyPCVController {
to.transfer(amount);
}
diff --git a/contracts/mock/MockRateLimitedMinter.sol b/contracts/mock/MockRateLimitedMinter.sol
index 1df321a36..6fde10379 100644
--- a/contracts/mock/MockRateLimitedMinter.sol
+++ b/contracts/mock/MockRateLimitedMinter.sol
@@ -9,10 +9,7 @@ contract MockRateLimitedMinter is RateLimitedMinter {
uint256 _feiLimitPerSecond,
uint256 _mintingBufferCap,
bool _doPartialMint
- )
- CoreRef(_core)
- RateLimitedMinter(_feiLimitPerSecond, _mintingBufferCap, _doPartialMint)
- {}
+ ) CoreRef(_core) RateLimitedMinter(_feiLimitPerSecond, _mintingBufferCap, _doPartialMint) {}
function setDoPartialMint(bool _doPartialMint) public {
doPartialAction = _doPartialMint;
diff --git a/contracts/mock/MockRewardsDistributor.sol b/contracts/mock/MockRewardsDistributor.sol
index aee31ed8f..8e7b89b08 100644
--- a/contracts/mock/MockRewardsDistributor.sol
+++ b/contracts/mock/MockRewardsDistributor.sol
@@ -14,8 +14,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
event successSetCompContributorSpeed();
event successAddMarket();
- bytes32 public constant override AUTO_REWARDS_DISTRIBUTOR_ROLE =
- keccak256("AUTO_REWARDS_DISTRIBUTOR_ROLE");
+ bytes32 public constant override AUTO_REWARDS_DISTRIBUTOR_ROLE = keccak256("AUTO_REWARDS_DISTRIBUTOR_ROLE");
uint256 public compSupplySpeed;
uint256 public compBorrowSpeed;
@@ -39,11 +38,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @dev Admin function to begin change of admin. The newPendingAdmin must call `_acceptAdmin` to finalize the transfer.
* @param _newPendingAdmin New pending admin.
*/
- function _setPendingAdmin(address _newPendingAdmin)
- external
- override
- onlyOwner
- {
+ function _setPendingAdmin(address _newPendingAdmin) external override onlyOwner {
pendingNewAdmin = _newPendingAdmin;
emit successSetAdmin(pendingNewAdmin);
}
@@ -67,11 +62,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @param recipient The address of the recipient to transfer COMP to
* @param amount The amount of COMP to (possibly) transfer
*/
- function _grantComp(address recipient, uint256 amount)
- external
- override
- onlyOwner
- {
+ function _grantComp(address recipient, uint256 amount) external override onlyOwner {
newCompGrantee = recipient;
newCompGranteeAmount = amount;
emit successGrantComp(recipient, amount);
@@ -81,11 +72,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @notice Set COMP speed for a single market
* @param cToken The market whose COMP speed to update
*/
- function _setCompSupplySpeed(address cToken, uint256 compSpeed)
- external
- override
- onlyOwner
- {
+ function _setCompSupplySpeed(address cToken, uint256 compSpeed) external override onlyOwner {
compSupplySpeed = compSpeed;
emit successSetCompSupplySpeed();
}
@@ -94,11 +81,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @notice Set COMP speed for a single market
* @param cToken The market whose COMP speed to update
*/
- function _setCompBorrowSpeed(address cToken, uint256 compSpeed)
- external
- override
- onlyOwner
- {
+ function _setCompBorrowSpeed(address cToken, uint256 compSpeed) external override onlyOwner {
compBorrowSpeed = compSpeed;
emit successSetCompBorrowSpeed();
}
@@ -108,11 +91,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @param contributor The contributor whose COMP speed to update
* @param compSpeed New COMP speed for contributor
*/
- function _setContributorCompSpeed(address contributor, uint256 compSpeed)
- external
- override
- onlyOwner
- {
+ function _setContributorCompSpeed(address contributor, uint256 compSpeed) external override onlyOwner {
newContributor = contributor;
newCompSpeed = compSpeed;
emit successSetCompContributorSpeed();
@@ -131,12 +110,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @notice view function to get the comp supply speeds from the rewards distributor contract
* @param cToken The market to view
*/
- function compSupplySpeeds(address cToken)
- external
- view
- override
- returns (uint256)
- {
+ function compSupplySpeeds(address cToken) external view override returns (uint256) {
return compSupplySpeed;
}
@@ -144,12 +118,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @notice view function to get the comp borrow speeds from the rewards distributor contract
* @param cToken The market to view
*/
- function compBorrowSpeeds(address cToken)
- external
- view
- override
- returns (uint256)
- {
+ function compBorrowSpeeds(address cToken) external view override returns (uint256) {
return compBorrowSpeed;
}
@@ -166,11 +135,7 @@ contract MockRewardsDistributor is IRewardsDistributorAdmin, Ownable {
* @notice Set the implementation contract the RewardsDistributorDelegator delegate calls
* @param implementation_ the logic contract address
*/
- function _setImplementation(address implementation_)
- external
- override
- onlyOwner
- {
+ function _setImplementation(address implementation_) external override onlyOwner {
implementation = implementation_;
}
}
diff --git a/contracts/mock/MockRouter.sol b/contracts/mock/MockRouter.sol
index a671127f6..57af23fef 100644
--- a/contracts/mock/MockRouter.sol
+++ b/contracts/mock/MockRouter.sol
@@ -52,10 +52,7 @@ contract MockRouter {
}
function checkAmountMin(uint256 amount) public view {
- require(
- amountMinThreshold == 0 || amountMinThreshold > amount,
- "amount liquidity revert"
- );
+ require(amountMinThreshold == 0 || amountMinThreshold > amount, "amount liquidity revert");
}
function setAmountMin(uint256 amount) public {
@@ -113,15 +110,9 @@ contract MockRouter {
) external returns (uint256 amountFei, uint256 amountToken) {
checkAmountMin(amountToken0Min);
- Decimal.D256 memory percentWithdrawal = Decimal.ratio(
- liquidity,
- PAIR.balanceOf(to)
- );
+ Decimal.D256 memory percentWithdrawal = Decimal.ratio(liquidity, PAIR.balanceOf(to));
Decimal.D256 memory ratio = ratioOwned(to);
- (amountFei, amountToken) = PAIR.burnToken(
- to,
- ratio.mul(percentWithdrawal)
- );
+ (amountFei, amountToken) = PAIR.burnToken(to, ratio.mul(percentWithdrawal));
(uint112 reserves0, uint112 reserves1, ) = PAIR.getReserves();
uint112 newReserve0 = uint112(reserves0) - uint112(amountFei);
diff --git a/contracts/mock/MockStEthStableSwap.sol b/contracts/mock/MockStEthStableSwap.sol
index 67623dac8..d00d64b4d 100644
--- a/contracts/mock/MockStEthStableSwap.sol
+++ b/contracts/mock/MockStEthStableSwap.sol
@@ -31,9 +31,7 @@ contract MockStEthStableSwap {
uint256 input,
uint256 min_out
) public payable returns (uint256 output) {
- output = anti
- ? (input * (10000 + slippage)) / 10000
- : (input * (10000 - slippage)) / 10000;
+ output = anti ? (input * (10000 + slippage)) / 10000 : (input * (10000 - slippage)) / 10000;
require(output >= min_out, "MockStableswap/excess-slippage");
@@ -48,9 +46,7 @@ contract MockStEthStableSwap {
int128 j,
uint256 input
) public view returns (uint256 output) {
- output = anti
- ? (input * (10000 + slippage)) / 10000
- : (input * (10000 - slippage)) / 10000;
+ output = anti ? (input * (10000 + slippage)) / 10000 : (input * (10000 - slippage)) / 10000;
}
receive() external payable {}
diff --git a/contracts/mock/MockStEthToken.sol b/contracts/mock/MockStEthToken.sol
index 334355ad3..7142a0a07 100644
--- a/contracts/mock/MockStEthToken.sol
+++ b/contracts/mock/MockStEthToken.sol
@@ -14,11 +14,7 @@ contract MockStEthToken is MockERC20 {
shares[address(msg.sender)] = totalShares;
}
- function submit(address _referral)
- external
- payable
- returns (uint256 amount_)
- {
+ function submit(address _referral) external payable returns (uint256 amount_) {
amount_ = msg.value;
uint256 _shares = getSharesByPooledEth(amount_);
@@ -36,28 +32,15 @@ contract MockStEthToken is MockERC20 {
_mintShares(_shares, _dst);
}
- function balanceOf(address _account)
- public
- view
- override
- returns (uint256 amount_)
- {
+ function balanceOf(address _account) public view override returns (uint256 amount_) {
return getPooledEthByShares(shares[_account]);
}
- function getSharesByPooledEth(uint256 _ethAmount)
- public
- view
- returns (uint256 shares_)
- {
+ function getSharesByPooledEth(uint256 _ethAmount) public view returns (uint256 shares_) {
shares_ = (_ethAmount * totalShares) / pooledEth;
}
- function transfer(address dst, uint256 amount)
- public
- override
- returns (bool)
- {
+ function transfer(address dst, uint256 amount) public override returns (bool) {
_transfer(msg.sender, dst, amount);
return true;
}
@@ -79,20 +62,13 @@ contract MockStEthToken is MockERC20 {
uint256 _sharesToTransfer = getSharesByPooledEth(_amount);
uint256 _currentSenderShares = shares[_sender];
- require(
- _sharesToTransfer <= _currentSenderShares,
- "TRANSFER_AMOUNT_EXCEEDS_BALANCE"
- );
+ require(_sharesToTransfer <= _currentSenderShares, "TRANSFER_AMOUNT_EXCEEDS_BALANCE");
shares[_sender] = _currentSenderShares - _sharesToTransfer;
shares[_recipient] = shares[_recipient] + _sharesToTransfer;
}
- function getPooledEthByShares(uint256 _sharesAmount)
- public
- view
- returns (uint256 eth_)
- {
+ function getPooledEthByShares(uint256 _sharesAmount) public view returns (uint256 eth_) {
eth_ = (_sharesAmount * pooledEth) / totalShares;
}
diff --git a/contracts/mock/MockTokemakERC20Pool.sol b/contracts/mock/MockTokemakERC20Pool.sol
index 5de91a95c..07a0c44fa 100644
--- a/contracts/mock/MockTokemakERC20Pool.sol
+++ b/contracts/mock/MockTokemakERC20Pool.sol
@@ -26,14 +26,8 @@ contract MockTokemakERC20Pool is MockERC20 {
}
function withdraw(uint256 requestedAmount) external {
- require(
- requestedWithdrawal[msg.sender] >= requestedAmount,
- "WITHDRAW_INSUFFICIENT_BALANCE"
- );
- require(
- token.balanceOf(address(this)) >= requestedAmount,
- "INSUFFICIENT_POOL_BALANCE"
- );
+ require(requestedWithdrawal[msg.sender] >= requestedAmount, "WITHDRAW_INSUFFICIENT_BALANCE");
+ require(token.balanceOf(address(this)) >= requestedAmount, "INSUFFICIENT_POOL_BALANCE");
requestedWithdrawal[msg.sender] -= requestedAmount;
_burn(msg.sender, requestedAmount);
token.transfer(msg.sender, requestedAmount);
diff --git a/contracts/mock/MockTokemakEthPool.sol b/contracts/mock/MockTokemakEthPool.sol
index 18a041663..a4114c6ef 100644
--- a/contracts/mock/MockTokemakEthPool.sol
+++ b/contracts/mock/MockTokemakEthPool.sol
@@ -29,14 +29,8 @@ contract MockTokemakEthPool is MockERC20 {
}
function withdraw(uint256 requestedAmount, bool asEth) external {
- require(
- requestedWithdrawal[msg.sender] >= requestedAmount,
- "WITHDRAW_INSUFFICIENT_BALANCE"
- );
- require(
- weth.balanceOf(address(this)) >= requestedAmount,
- "INSUFFICIENT_POOL_BALANCE"
- );
+ require(requestedWithdrawal[msg.sender] >= requestedAmount, "WITHDRAW_INSUFFICIENT_BALANCE");
+ require(weth.balanceOf(address(this)) >= requestedAmount, "INSUFFICIENT_POOL_BALANCE");
requestedWithdrawal[msg.sender] -= requestedAmount;
_burn(msg.sender, requestedAmount);
weth.withdraw(requestedAmount);
diff --git a/contracts/mock/MockUniswapV2PairLiquidity.sol b/contracts/mock/MockUniswapV2PairLiquidity.sol
index 0d3d6239a..720bbcf29 100644
--- a/contracts/mock/MockUniswapV2PairLiquidity.sol
+++ b/contracts/mock/MockUniswapV2PairLiquidity.sol
@@ -79,10 +79,7 @@ contract MockUniswapV2PairLiquidity {
return true;
}
- function burnEth(address to, Decimal.D256 memory ratio)
- public
- returns (uint256 amountEth, uint256 amount1)
- {
+ function burnEth(address to, Decimal.D256 memory ratio) public returns (uint256 amountEth, uint256 amount1) {
uint256 balanceEth = address(this).balance;
amountEth = ratio.mul(balanceEth).asUint256();
payable(to).transfer(amountEth);
@@ -96,10 +93,7 @@ contract MockUniswapV2PairLiquidity {
IERC20(token1).transfer(to, amount);
}
- function burnToken(address to, Decimal.D256 memory ratio)
- public
- returns (uint256 amount0, uint256 amount1)
- {
+ function burnToken(address to, Decimal.D256 memory ratio) public returns (uint256 amount0, uint256 amount1) {
uint256 balance0 = reserve0;
amount0 = ratio.mul(balance0).asUint256();
IERC20(token0).transfer(to, amount0);
@@ -164,11 +158,7 @@ contract MockUniswapV2PairLiquidity {
/**
* @dev See {IERC20-allowance}.
*/
- function allowance(address owner, address spender)
- public
- view
- returns (uint256)
- {
+ function allowance(address owner, address spender) public view returns (uint256) {
return _allowances[owner][spender];
}
@@ -205,10 +195,7 @@ contract MockUniswapV2PairLiquidity {
_approve(
sender,
msg.sender,
- _allowances[sender][msg.sender].sub(
- amount,
- "ERC20: transfer amount exceeds allowance"
- )
+ _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")
);
return true;
}
@@ -225,15 +212,8 @@ contract MockUniswapV2PairLiquidity {
*
* - `spender` cannot be the zero address.
*/
- function increaseAllowance(address spender, uint256 addedValue)
- public
- returns (bool)
- {
- _approve(
- msg.sender,
- spender,
- _allowances[msg.sender][spender].add(addedValue)
- );
+ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
+ _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
return true;
}
@@ -251,17 +231,11 @@ contract MockUniswapV2PairLiquidity {
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
- function decreaseAllowance(address spender, uint256 subtractedValue)
- public
- returns (bool)
- {
+ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
_approve(
msg.sender,
spender,
- _allowances[msg.sender][spender].sub(
- subtractedValue,
- "ERC20: decreased allowance below zero"
- )
+ _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")
);
return true;
}
@@ -288,10 +262,7 @@ contract MockUniswapV2PairLiquidity {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
- _balances[sender] = _balances[sender].sub(
- amount,
- "ERC20: transfer amount exceeds balance"
- );
+ _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
_balances[recipient] = _balances[recipient].add(amount);
}
@@ -325,10 +296,7 @@ contract MockUniswapV2PairLiquidity {
function _burn(address account, uint256 amount) internal {
require(account != address(0), "ERC20: burn from the zero address");
- _balances[account] = _balances[account].sub(
- amount,
- "ERC20: burn amount exceeds balance"
- );
+ _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
_totalSupply = _totalSupply.sub(amount);
}
@@ -367,10 +335,7 @@ contract MockUniswapV2PairLiquidity {
_approve(
account,
msg.sender,
- _allowances[account][msg.sender].sub(
- amount,
- "ERC20: burn amount exceeds allowance"
- )
+ _allowances[account][msg.sender].sub(amount, "ERC20: burn amount exceeds allowance")
);
}
}
diff --git a/contracts/mock/MockUniswapV2PairTrade.sol b/contracts/mock/MockUniswapV2PairTrade.sol
index 194ceac44..c7f2c6576 100644
--- a/contracts/mock/MockUniswapV2PairTrade.sol
+++ b/contracts/mock/MockUniswapV2PairTrade.sol
@@ -41,12 +41,8 @@ contract MockUniswapV2PairTrade {
) external {
uint32 timeElapsed = blockTimestamp - blockTimestampLast;
if (timeElapsed > 0 && reserve0 != 0 && reserve1 != 0) {
- price0CumulativeLast +=
- uint256(FixedPoint.fraction(reserve1, reserve0)._x) *
- timeElapsed;
- price1CumulativeLast +=
- uint256(FixedPoint.fraction(reserve0, reserve1)._x) *
- timeElapsed;
+ price0CumulativeLast += uint256(FixedPoint.fraction(reserve1, reserve0)._x) * timeElapsed;
+ price1CumulativeLast += uint256(FixedPoint.fraction(reserve0, reserve1)._x) * timeElapsed;
}
reserve0 = newReserve0;
reserve1 = newReserve1;
diff --git a/contracts/mock/MockVault.sol b/contracts/mock/MockVault.sol
index 4ed9aa075..4959dc383 100644
--- a/contracts/mock/MockVault.sol
+++ b/contracts/mock/MockVault.sol
@@ -37,11 +37,7 @@ contract MockVault {
TWO_TOKEN
}
- function getPool(bytes32 poolId)
- external
- view
- returns (address poolAddress, PoolSpecialization poolSpec)
- {
+ function getPool(bytes32 poolId) external view returns (address poolAddress, PoolSpecialization poolSpec) {
poolAddress = address(_pool);
poolSpec = PoolSpecialization.TWO_TOKEN;
}
@@ -79,11 +75,7 @@ contract MockVault {
) external payable {
if (mockDoTransfers) {
for (uint256 i = 0; i < _tokens.length; i++) {
- _tokens[i].safeTransferFrom(
- msg.sender,
- address(_pool),
- request.maxAmountsIn[i]
- );
+ _tokens[i].safeTransferFrom(msg.sender, address(_pool), request.maxAmountsIn[i]);
}
}
_pool.mint(recipient, LIQUIDITY_AMOUNT);
@@ -105,24 +97,14 @@ contract MockVault {
_pool.mockBurn(sender, LIQUIDITY_AMOUNT);
if (mockDoTransfers) {
_pool.mockInitApprovals();
- if (
- request.minAmountsOut[0] == 0 && request.minAmountsOut[1] == 0
- ) {
+ if (request.minAmountsOut[0] == 0 && request.minAmountsOut[1] == 0) {
// transfer all
for (uint256 i = 0; i < _tokens.length; i++) {
- _tokens[i].safeTransferFrom(
- address(_pool),
- recipient,
- _tokens[i].balanceOf(address(_pool))
- );
+ _tokens[i].safeTransferFrom(address(_pool), recipient, _tokens[i].balanceOf(address(_pool)));
}
} else {
for (uint256 i = 0; i < _tokens.length; i++) {
- _tokens[i].safeTransferFrom(
- address(_pool),
- recipient,
- request.minAmountsOut[i]
- );
+ _tokens[i].safeTransferFrom(address(_pool), recipient, request.minAmountsOut[i]);
}
}
}
diff --git a/contracts/mock/MockVoteEscrowTokenManager.sol b/contracts/mock/MockVoteEscrowTokenManager.sol
index dbc57cbbc..2c262f5e6 100644
--- a/contracts/mock/MockVoteEscrowTokenManager.sol
+++ b/contracts/mock/MockVoteEscrowTokenManager.sol
@@ -11,8 +11,5 @@ contract MockVoteEscrowTokenManager is VoteEscrowTokenManager, MockCoreRef {
address liquidToken,
address veToken,
uint256 maxTime
- )
- MockCoreRef(core)
- VoteEscrowTokenManager(IERC20(liquidToken), IVeToken(veToken), maxTime)
- {}
+ ) MockCoreRef(core) VoteEscrowTokenManager(IERC20(liquidToken), IVeToken(veToken), maxTime) {}
}
diff --git a/contracts/mock/MockWeightedPool.sol b/contracts/mock/MockWeightedPool.sol
index f6c0335ca..ad858f19c 100644
--- a/contracts/mock/MockWeightedPool.sol
+++ b/contracts/mock/MockWeightedPool.sol
@@ -40,11 +40,7 @@ contract MockWeightedPool is MockERC20 {
}
// this method is specific to weighted pool
- function getNormalizedWeights()
- external
- view
- returns (uint256[] memory _weights)
- {
+ function getNormalizedWeights() external view returns (uint256[] memory _weights) {
return weights;
}
diff --git a/contracts/oracle/ChainlinkOracleWrapper.sol b/contracts/oracle/ChainlinkOracleWrapper.sol
index 9718f57d2..746d2dcfd 100644
--- a/contracts/oracle/ChainlinkOracleWrapper.sol
+++ b/contracts/oracle/ChainlinkOracleWrapper.sol
@@ -39,8 +39,7 @@ contract ChainlinkOracleWrapper is IOracle, CoreRef {
/// @notice determine if read value is stale
/// @return true if read value is stale
function isOutdated() external view override returns (bool) {
- (uint80 roundId, , , , uint80 answeredInRound) = chainlinkOracle
- .latestRoundData();
+ (uint80 roundId, , , , uint80 answeredInRound) = chainlinkOracle.latestRoundData();
return answeredInRound != roundId;
}
@@ -48,18 +47,10 @@ contract ChainlinkOracleWrapper is IOracle, CoreRef {
/// @return oracle price
/// @return true if price is valid
function read() external view override returns (Decimal.D256 memory, bool) {
- (
- uint80 roundId,
- int256 price,
- ,
- ,
- uint80 answeredInRound
- ) = chainlinkOracle.latestRoundData();
+ (uint80 roundId, int256 price, , , uint80 answeredInRound) = chainlinkOracle.latestRoundData();
bool valid = !paused() && price > 0 && answeredInRound == roundId;
- Decimal.D256 memory value = Decimal.from(uint256(price)).div(
- oracleDecimalsNormalizer
- );
+ Decimal.D256 memory value = Decimal.from(uint256(price)).div(oracleDecimalsNormalizer);
return (value, valid);
}
}
diff --git a/contracts/oracle/ConstantOracle.sol b/contracts/oracle/ConstantOracle.sol
index 54dbdf945..aa9d1d398 100644
--- a/contracts/oracle/ConstantOracle.sol
+++ b/contracts/oracle/ConstantOracle.sol
@@ -17,10 +17,7 @@ contract ConstantOracle is IOracle, CoreRef {
/// @param _core Fei Core for reference
/// @param _priceBasisPoints the price to report in basis points
constructor(address _core, uint256 _priceBasisPoints) CoreRef(_core) {
- price = Decimal.ratio(
- _priceBasisPoints,
- Constants.BASIS_POINTS_GRANULARITY
- );
+ price = Decimal.ratio(_priceBasisPoints, Constants.BASIS_POINTS_GRANULARITY);
}
/// @notice updates the oracle price
diff --git a/contracts/oracle/collateralization/CollateralizationOracle.sol b/contracts/oracle/collateralization/CollateralizationOracle.sol
index b1ff2fbe5..570961e3d 100644
--- a/contracts/oracle/collateralization/CollateralizationOracle.sol
+++ b/contracts/oracle/collateralization/CollateralizationOracle.sol
@@ -24,18 +24,9 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
// ----------- Events -----------
- event DepositAdd(
- address from,
- address indexed deposit,
- address indexed token
- );
+ event DepositAdd(address from, address indexed deposit, address indexed token);
event DepositRemove(address from, address indexed deposit);
- event OracleUpdate(
- address from,
- address indexed token,
- address indexed oldOracle,
- address indexed newOracle
- );
+ event OracleUpdate(address from, address indexed token, address indexed oldOracle, address indexed newOracle);
// ----------- Properties -----------
@@ -93,20 +84,12 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
}
/// @notice returns an array of the deposits holding a given token.
- function getDepositsForToken(address _token)
- external
- view
- returns (address[] memory)
- {
+ function getDepositsForToken(address _token) external view returns (address[] memory) {
return tokenToDeposits[_token].values();
}
/// @notice returns the address of deposit at index i of token _token
- function getDepositForToken(address token, uint256 i)
- external
- view
- returns (address)
- {
+ function getDepositForToken(address token, uint256 i) external view returns (address) {
return tokenToDeposits[token].at(i);
}
@@ -122,10 +105,7 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
}
/// @notice adds a list of multiple PCV deposits. See addDeposit.
- function addDeposits(address[] memory _deposits)
- external
- onlyGovernorOrAdmin
- {
+ function addDeposits(address[] memory _deposits) external onlyGovernorOrAdmin {
_addDeposits(_deposits);
}
@@ -137,19 +117,13 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
function _addDeposit(address _deposit) internal {
// if the PCVDeposit is already listed, revert.
- require(
- depositToToken[_deposit] == address(0),
- "CollateralizationOracle: deposit duplicate"
- );
+ require(depositToToken[_deposit] == address(0), "CollateralizationOracle: deposit duplicate");
// get the token in which the deposit reports its token
address _token = IPCVDepositBalances(_deposit).balanceReportedIn();
// revert if there is no oracle of this deposit's token
- require(
- tokenToOracle[_token] != address(0),
- "CollateralizationOracle: no oracle"
- );
+ require(tokenToOracle[_token] != address(0), "CollateralizationOracle: no oracle");
// update maps & arrays for faster access
depositToToken[_deposit] = _token;
@@ -169,10 +143,7 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
}
/// @notice removes a list of multiple PCV deposits. See removeDeposit.
- function removeDeposits(address[] memory _deposits)
- external
- onlyGovernorOrAdmin
- {
+ function removeDeposits(address[] memory _deposits) external onlyGovernorOrAdmin {
for (uint256 i = 0; i < _deposits.length; i++) {
_removeDeposit(_deposits[i]);
}
@@ -183,10 +154,7 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
address _token = depositToToken[_deposit];
// revert if the deposit is not found
- require(
- _token != address(0),
- "CollateralizationOracle: deposit not found"
- );
+ require(_token != address(0), "CollateralizationOracle: deposit not found");
// update maps & arrays for faster access
// deposits array for the deposit's token
@@ -207,10 +175,7 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
/// of a deposit (holding the same token) is deployed.
/// @param _oldDeposit : the PCVDeposit to remove from the list.
/// @param _newDeposit : the PCVDeposit to add to the list.
- function swapDeposit(address _oldDeposit, address _newDeposit)
- external
- onlyGovernorOrAdmin
- {
+ function swapDeposit(address _oldDeposit, address _newDeposit) external onlyGovernorOrAdmin {
_removeDeposit(_oldDeposit);
_addDeposit(_newDeposit);
}
@@ -218,42 +183,25 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
/// @notice Set the price feed oracle (in USD) for a given asset.
/// @param _token : the asset to add price oracle for
/// @param _newOracle : price feed oracle for the given asset
- function setOracle(address _token, address _newOracle)
- external
- onlyGovernorOrAdmin
- {
+ function setOracle(address _token, address _newOracle) external onlyGovernorOrAdmin {
_setOracle(_token, _newOracle);
}
/// @notice adds a list of token oracles. See setOracle.
- function setOracles(address[] memory _tokens, address[] memory _oracles)
- public
- onlyGovernorOrAdmin
- {
+ function setOracles(address[] memory _tokens, address[] memory _oracles) public onlyGovernorOrAdmin {
_setOracles(_tokens, _oracles);
}
- function _setOracles(address[] memory _tokens, address[] memory _oracles)
- internal
- {
- require(
- _tokens.length == _oracles.length,
- "CollateralizationOracle: length mismatch"
- );
+ function _setOracles(address[] memory _tokens, address[] memory _oracles) internal {
+ require(_tokens.length == _oracles.length, "CollateralizationOracle: length mismatch");
for (uint256 i = 0; i < _tokens.length; i++) {
_setOracle(_tokens[i], _oracles[i]);
}
}
function _setOracle(address _token, address _newOracle) internal {
- require(
- _token != address(0),
- "CollateralizationOracle: token must be != 0x0"
- );
- require(
- _newOracle != address(0),
- "CollateralizationOracle: oracle must be != 0x0"
- );
+ require(_token != address(0), "CollateralizationOracle: token must be != 0x0");
+ require(_newOracle != address(0), "CollateralizationOracle: oracle must be != 0x0");
// add oracle to the map(ERC20Address) => OracleAddress
address _oldOracle = tokenToOracle[_token];
@@ -293,12 +241,7 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
/// @return validityStatus the current oracle validity status (false if any
/// of the oracles for tokens held in the PCV are invalid, or if
/// this contract is paused).
- function read()
- public
- view
- override
- returns (Decimal.D256 memory collateralRatio, bool validityStatus)
- {
+ function read() public view override returns (Decimal.D256 memory collateralRatio, bool validityStatus) {
// fetch PCV stats
(
uint256 _protocolControlledValue,
@@ -309,10 +252,7 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
// The protocol collateralization ratio is defined as the total USD
// value of assets held in the PCV, minus the circulating FEI.
- collateralRatio = Decimal.ratio(
- _protocolControlledValue,
- _userCirculatingFei
- );
+ collateralRatio = Decimal.ratio(_protocolControlledValue, _userCirculatingFei);
validityStatus = _valid;
}
@@ -351,10 +291,7 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
address _deposit = tokenToDeposits[_token].at(j);
// read the deposit, and increment token balance/protocol fei
- (
- uint256 _depositBalance,
- uint256 _depositFei
- ) = IPCVDepositBalances(_deposit).resistantBalanceAndFei();
+ (uint256 _depositBalance, uint256 _depositFei) = IPCVDepositBalances(_deposit).resistantBalanceAndFei();
_totalTokenBalance += _depositBalance;
_protocolControlledFei += _depositFei;
}
@@ -362,35 +299,23 @@ contract CollateralizationOracle is ICollateralizationOracle, CoreRef {
// If the protocol holds non-zero balance of tokens, fetch the oracle price to
// increment PCV by _totalTokenBalance * oracle price USD.
if (_totalTokenBalance != 0) {
- (Decimal.D256 memory _oraclePrice, bool _oracleValid) = IOracle(
- tokenToOracle[_token]
- ).read();
+ (Decimal.D256 memory _oraclePrice, bool _oracleValid) = IOracle(tokenToOracle[_token]).read();
if (!_oracleValid) {
validityStatus = false;
}
- protocolControlledValue += _oraclePrice
- .mul(_totalTokenBalance)
- .asUint256();
+ protocolControlledValue += _oraclePrice.mul(_totalTokenBalance).asUint256();
}
}
userCirculatingFei = fei().totalSupply() - _protocolControlledFei;
- protocolEquity =
- protocolControlledValue.toInt256() -
- userCirculatingFei.toInt256();
+ protocolEquity = protocolControlledValue.toInt256() - userCirculatingFei.toInt256();
}
/// @notice returns true if the protocol is overcollateralized. Overcollateralization
/// is defined as the protocol having more assets in its PCV (Protocol
/// Controlled Value) than the circulating (user-owned) FEI, i.e.
/// a positive Protocol Equity.
- function isOvercollateralized()
- external
- view
- override
- whenNotPaused
- returns (bool)
- {
+ function isOvercollateralized() external view override whenNotPaused returns (bool) {
(, , int256 _protocolEquity, bool _valid) = pcvStats();
require(_valid, "CollateralizationOracle: reading is invalid");
return _protocolEquity > 0;
diff --git a/contracts/oracle/collateralization/CollateralizationOracleGuardian.sol b/contracts/oracle/collateralization/CollateralizationOracleGuardian.sol
index 741d0490e..f36d1e7fc 100644
--- a/contracts/oracle/collateralization/CollateralizationOracleGuardian.sol
+++ b/contracts/oracle/collateralization/CollateralizationOracleGuardian.sol
@@ -18,10 +18,7 @@ import "@openzeppelin/contracts/utils/math/SafeCast.sol";
contract CollateralizationOracleGuardian is CoreRef, Timed {
using SafeCast for uint256;
- event DeviationThresholdUpdate(
- uint256 oldDeviationThresholdBasisPoints,
- uint256 newDeviationThresholdBasisPoints
- );
+ event DeviationThresholdUpdate(uint256 oldDeviationThresholdBasisPoints, uint256 newDeviationThresholdBasisPoints);
/// @notice the oracle wrapper to update
ICollateralizationOracleWrapper public immutable oracleWrapper;
@@ -53,76 +50,54 @@ contract CollateralizationOracleGuardian is CoreRef, Timed {
/// @param protocolControlledValue new PCV value
/// @param userCirculatingFei new user FEI value
/// @dev make sure to pause the CR oracle wrapper or else the set value would be overwritten on next update
- function setCache(
- uint256 protocolControlledValue,
- uint256 userCirculatingFei
- ) external onlyGuardianOrGovernor afterTime {
+ function setCache(uint256 protocolControlledValue, uint256 userCirculatingFei)
+ external
+ onlyGuardianOrGovernor
+ afterTime
+ {
// Reset timer
_initTimed();
// Check boundaries on new update values
uint256 cachedPCV = oracleWrapper.cachedProtocolControlledValue();
require(
- calculateDeviationThresholdBasisPoints(
- protocolControlledValue,
- cachedPCV
- ) <= deviationThresholdBasisPoints,
+ calculateDeviationThresholdBasisPoints(protocolControlledValue, cachedPCV) <= deviationThresholdBasisPoints,
"CollateralizationOracleGuardian: Cached PCV exceeds deviation"
);
uint256 cachedUserFei = oracleWrapper.cachedUserCirculatingFei();
require(
- calculateDeviationThresholdBasisPoints(
- userCirculatingFei,
- cachedUserFei
- ) <= deviationThresholdBasisPoints,
+ calculateDeviationThresholdBasisPoints(userCirculatingFei, cachedUserFei) <= deviationThresholdBasisPoints,
"CollateralizationOracleGuardian: Cached User FEI exceeds deviation"
);
// Set the new cache values
- int256 equity = protocolControlledValue.toInt256() -
- userCirculatingFei.toInt256();
- oracleWrapper.setCache(
- protocolControlledValue,
- userCirculatingFei,
- equity
- );
+ int256 equity = protocolControlledValue.toInt256() - userCirculatingFei.toInt256();
+ oracleWrapper.setCache(protocolControlledValue, userCirculatingFei, equity);
assert(oracleWrapper.cachedProtocolEquity() == equity);
}
/// @notice return the percent deviation between a and b in basis points terms
- function calculateDeviationThresholdBasisPoints(uint256 a, uint256 b)
- public
- pure
- returns (uint256)
- {
+ function calculateDeviationThresholdBasisPoints(uint256 a, uint256 b) public pure returns (uint256) {
uint256 delta = (a < b) ? (b - a) : (a - b);
return (delta * Constants.BASIS_POINTS_GRANULARITY) / a;
}
/// @notice governance setter for maximum deviation the guardian can change per update
- function setDeviationThresholdBasisPoints(
- uint256 newDeviationThresholdBasisPoints
- ) external onlyGovernor {
+ function setDeviationThresholdBasisPoints(uint256 newDeviationThresholdBasisPoints) external onlyGovernor {
_setDeviationThresholdBasisPoints(newDeviationThresholdBasisPoints);
}
- function _setDeviationThresholdBasisPoints(
- uint256 newDeviationThresholdBasisPoints
- ) internal {
+ function _setDeviationThresholdBasisPoints(uint256 newDeviationThresholdBasisPoints) internal {
require(
- newDeviationThresholdBasisPoints <=
- Constants.BASIS_POINTS_GRANULARITY,
+ newDeviationThresholdBasisPoints <= Constants.BASIS_POINTS_GRANULARITY,
"CollateralizationOracleGuardian: deviation exceeds granularity"
);
uint256 oldDeviationThresholdBasisPoints = deviationThresholdBasisPoints;
deviationThresholdBasisPoints = newDeviationThresholdBasisPoints;
- emit DeviationThresholdUpdate(
- oldDeviationThresholdBasisPoints,
- newDeviationThresholdBasisPoints
- );
+ emit DeviationThresholdUpdate(oldDeviationThresholdBasisPoints, newDeviationThresholdBasisPoints);
}
}
diff --git a/contracts/oracle/collateralization/CollateralizationOracleWrapper.sol b/contracts/oracle/collateralization/CollateralizationOracleWrapper.sol
index 93a58ee7c..c8d70c72f 100644
--- a/contracts/oracle/collateralization/CollateralizationOracleWrapper.sol
+++ b/contracts/oracle/collateralization/CollateralizationOracleWrapper.sol
@@ -16,11 +16,7 @@ interface IPausable {
/// @notice Reads a list of PCVDeposit that report their amount of collateral
/// and the amount of protocol-owned FEI they manage, to deduce the
/// protocol-wide collateralization ratio.
-contract CollateralizationOracleWrapper is
- Timed,
- ICollateralizationOracleWrapper,
- CoreRef
-{
+contract CollateralizationOracleWrapper is Timed, ICollateralizationOracleWrapper, CoreRef {
using Decimal for Decimal.D256;
// ----------- Properties --------------------------------------------------
@@ -47,10 +43,7 @@ contract CollateralizationOracleWrapper is
/// @notice CollateralizationOracleWrapper constructor
/// @param _core Fei Core for reference.
/// @param _validityDuration the duration after which a reading becomes outdated.
- constructor(address _core, uint256 _validityDuration)
- CoreRef(_core)
- Timed(_validityDuration)
- {}
+ constructor(address _core, uint256 _validityDuration) CoreRef(_core) Timed(_validityDuration) {}
/// @notice CollateralizationOracleWrapper initializer
/// @param _core Fei Core for reference.
@@ -64,10 +57,7 @@ contract CollateralizationOracleWrapper is
uint256 _validityDuration,
uint256 _deviationThresholdBasisPoints
) public {
- require(
- collateralizationOracle == address(0),
- "CollateralizationOracleWrapper: initialized"
- );
+ require(collateralizationOracle == address(0), "CollateralizationOracleWrapper: initialized");
CoreRef._initialize(_core);
_setDuration(_validityDuration);
collateralizationOracle = _collateralizationOracle;
@@ -82,66 +72,44 @@ contract CollateralizationOracleWrapper is
/// @notice set the address of the CollateralizationOracle to inspect, and
/// to cache values from.
/// @param _newCollateralizationOracle the address of the new oracle.
- function setCollateralizationOracle(address _newCollateralizationOracle)
- external
- override
- onlyGovernor
- {
- require(
- _newCollateralizationOracle != address(0),
- "CollateralizationOracleWrapper: invalid address"
- );
+ function setCollateralizationOracle(address _newCollateralizationOracle) external override onlyGovernor {
+ require(_newCollateralizationOracle != address(0), "CollateralizationOracleWrapper: invalid address");
address _oldCollateralizationOracle = collateralizationOracle;
collateralizationOracle = _newCollateralizationOracle;
- emit CollateralizationOracleUpdate(
- msg.sender,
- _oldCollateralizationOracle,
- _newCollateralizationOracle
- );
+ emit CollateralizationOracleUpdate(msg.sender, _oldCollateralizationOracle, _newCollateralizationOracle);
}
/// @notice set the deviation threshold in basis points, used to detect if the
/// cached value deviated significantly from the actual fresh readings.
/// @param _newDeviationThresholdBasisPoints the new value to set.
- function setDeviationThresholdBasisPoints(
- uint256 _newDeviationThresholdBasisPoints
- ) external override onlyGovernorOrAdmin {
+ function setDeviationThresholdBasisPoints(uint256 _newDeviationThresholdBasisPoints)
+ external
+ override
+ onlyGovernorOrAdmin
+ {
require(
- _newDeviationThresholdBasisPoints > 0 &&
- _newDeviationThresholdBasisPoints <= 10_000,
+ _newDeviationThresholdBasisPoints > 0 && _newDeviationThresholdBasisPoints <= 10_000,
"CollateralizationOracleWrapper: invalid basis points"
);
uint256 _oldDeviationThresholdBasisPoints = deviationThresholdBasisPoints;
deviationThresholdBasisPoints = _newDeviationThresholdBasisPoints;
- emit DeviationThresholdUpdate(
- msg.sender,
- _oldDeviationThresholdBasisPoints,
- _newDeviationThresholdBasisPoints
- );
+ emit DeviationThresholdUpdate(msg.sender, _oldDeviationThresholdBasisPoints, _newDeviationThresholdBasisPoints);
}
/// @notice set the validity duration of the cached collateralization values.
/// @param _validityDuration the new validity duration
/// This function will emit a DurationUpdate event from Timed.sol
- function setValidityDuration(uint256 _validityDuration)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setValidityDuration(uint256 _validityDuration) external override onlyGovernorOrAdmin {
_setDuration(_validityDuration);
}
/// @notice set the readPauseOverride flag
/// @param _readPauseOverride the new flag for readPauseOverride
- function setReadPauseOverride(bool _readPauseOverride)
- external
- override
- onlyGuardianOrGovernor
- {
+ function setReadPauseOverride(bool _readPauseOverride) external override onlyGuardianOrGovernor {
readPauseOverride = _readPauseOverride;
emit ReadPauseOverrideUpdate(_readPauseOverride);
}
@@ -153,11 +121,7 @@ contract CollateralizationOracleWrapper is
uint256 _cachedUserCirculatingFei,
int256 _cachedProtocolEquity
) external override onlyGovernorOrAdmin {
- _setCache(
- _cachedProtocolControlledValue,
- _cachedUserCirculatingFei,
- _cachedProtocolEquity
- );
+ _setCache(_cachedProtocolControlledValue, _cachedUserCirculatingFei, _cachedProtocolEquity);
}
// ----------- IOracle override methods ------------------------------------
@@ -188,26 +152,13 @@ contract CollateralizationOracleWrapper is
outdated =
outdated ||
- _isExceededDeviationThreshold(
- cachedProtocolControlledValue,
- _protocolControlledValue
- ) ||
- _isExceededDeviationThreshold(
- cachedUserCirculatingFei,
- _userCirculatingFei
- );
+ _isExceededDeviationThreshold(cachedProtocolControlledValue, _protocolControlledValue) ||
+ _isExceededDeviationThreshold(cachedUserCirculatingFei, _userCirculatingFei);
// only update if valid
- require(
- _validityStatus,
- "CollateralizationOracleWrapper: CollateralizationOracle is invalid"
- );
+ require(_validityStatus, "CollateralizationOracleWrapper: CollateralizationOracle is invalid");
- _setCache(
- _protocolControlledValue,
- _userCirculatingFei,
- _protocolEquity
- );
+ _setCache(_protocolControlledValue, _userCirculatingFei, _protocolEquity);
return outdated;
}
@@ -245,16 +196,8 @@ contract CollateralizationOracleWrapper is
/// @return validityStatus the current oracle validity status (false if any
/// of the oracles for tokens held in the PCV are invalid, or if
/// this contract is paused).
- function read()
- external
- view
- override
- returns (Decimal.D256 memory collateralRatio, bool validityStatus)
- {
- collateralRatio = Decimal.ratio(
- cachedProtocolControlledValue,
- cachedUserCirculatingFei
- );
+ function read() external view override returns (Decimal.D256 memory collateralRatio, bool validityStatus) {
+ collateralRatio = Decimal.ratio(cachedProtocolControlledValue, cachedUserCirculatingFei);
validityStatus = _readNotPaused() && !isOutdated();
}
@@ -264,12 +207,7 @@ contract CollateralizationOracleWrapper is
// This function is intended to be called off-chain by keepers.
// If executed on-chain, it consumes more gas than an actual update()
// call _and_ does not persist the read values in the cached state.
- function isExceededDeviationThreshold()
- public
- view
- override
- returns (bool obsolete)
- {
+ function isExceededDeviationThreshold() public view override returns (bool obsolete) {
(
uint256 _protocolControlledValue,
uint256 _userCirculatingFei, // int256 _protocolEquity,
@@ -277,30 +215,16 @@ contract CollateralizationOracleWrapper is
bool _validityStatus
) = ICollateralizationOracle(collateralizationOracle).pcvStats();
- require(
- _validityStatus,
- "CollateralizationOracleWrapper: CollateralizationOracle reading is invalid"
- );
+ require(_validityStatus, "CollateralizationOracleWrapper: CollateralizationOracle reading is invalid");
return
- _isExceededDeviationThreshold(
- cachedProtocolControlledValue,
- _protocolControlledValue
- ) ||
- _isExceededDeviationThreshold(
- cachedUserCirculatingFei,
- _userCirculatingFei
- );
+ _isExceededDeviationThreshold(cachedProtocolControlledValue, _protocolControlledValue) ||
+ _isExceededDeviationThreshold(cachedUserCirculatingFei, _userCirculatingFei);
}
- function _isExceededDeviationThreshold(uint256 cached, uint256 current)
- internal
- view
- returns (bool)
- {
+ function _isExceededDeviationThreshold(uint256 cached, uint256 current) internal view returns (bool) {
uint256 delta = current > cached ? current - cached : cached - current;
- uint256 deviationBaisPoints = (delta *
- Constants.BASIS_POINTS_GRANULARITY) / current;
+ uint256 deviationBaisPoints = (delta * Constants.BASIS_POINTS_GRANULARITY) / current;
return deviationBaisPoints > deviationThresholdBasisPoints;
}
@@ -311,12 +235,7 @@ contract CollateralizationOracleWrapper is
// know if they should call the update() function. If executed on-chain,
// it consumes more gas than an actual update() + read() call _and_
// does not persist the read values in the cached state.
- function isOutdatedOrExceededDeviationThreshold()
- external
- view
- override
- returns (bool)
- {
+ function isOutdatedOrExceededDeviationThreshold() external view override returns (bool) {
return isOutdated() || isExceededDeviationThreshold();
}
@@ -355,10 +274,7 @@ contract CollateralizationOracleWrapper is
/// Controlled Value) than the circulating (user-owned) FEI, i.e.
/// a positive Protocol Equity.
function isOvercollateralized() external view override returns (bool) {
- require(
- !isOutdated(),
- "CollateralizationOracleWrapper: cache is outdated"
- );
+ require(!isOutdated(), "CollateralizationOracleWrapper: cache is outdated");
return cachedProtocolEquity > 0;
}
@@ -386,12 +302,9 @@ contract CollateralizationOracleWrapper is
)
{
bool fetchedValidityStatus;
- (
- protocolControlledValue,
- userCirculatingFei,
- protocolEquity,
- fetchedValidityStatus
- ) = ICollateralizationOracle(collateralizationOracle).pcvStats();
+ (protocolControlledValue, userCirculatingFei, protocolEquity, fetchedValidityStatus) = ICollateralizationOracle(
+ collateralizationOracle
+ ).pcvStats();
validityStatus = fetchedValidityStatus && _readNotPaused();
}
diff --git a/contracts/oracle/collateralization/ICollateralizationOracleWrapper.sol b/contracts/oracle/collateralization/ICollateralizationOracleWrapper.sol
index 57bdfd77b..d7a856bc8 100644
--- a/contracts/oracle/collateralization/ICollateralizationOracleWrapper.sol
+++ b/contracts/oracle/collateralization/ICollateralizationOracleWrapper.sol
@@ -21,11 +21,7 @@ interface ICollateralizationOracleWrapper is ICollateralizationOracle {
address indexed newOracleAddress
);
- event DeviationThresholdUpdate(
- address from,
- uint256 indexed oldThreshold,
- uint256 indexed newThreshold
- );
+ event DeviationThresholdUpdate(address from, uint256 indexed oldThreshold, uint256 indexed newThreshold);
event ReadPauseOverrideUpdate(bool readPauseOverride);
@@ -38,12 +34,9 @@ interface ICollateralizationOracleWrapper is ICollateralizationOracle {
function setReadPauseOverride(bool newReadPauseOverride) external;
- function setDeviationThresholdBasisPoints(
- uint256 _newDeviationThresholdBasisPoints
- ) external;
+ function setDeviationThresholdBasisPoints(uint256 _newDeviationThresholdBasisPoints) external;
- function setCollateralizationOracle(address _newCollateralizationOracle)
- external;
+ function setCollateralizationOracle(address _newCollateralizationOracle) external;
function setCache(
uint256 protocolControlledValue,
@@ -63,10 +56,7 @@ interface ICollateralizationOracleWrapper is ICollateralizationOracle {
function collateralizationOracle() external view returns (address);
- function isOutdatedOrExceededDeviationThreshold()
- external
- view
- returns (bool);
+ function isOutdatedOrExceededDeviationThreshold() external view returns (bool);
function pcvStatsCurrent()
external
diff --git a/contracts/pcv/IPCVDeposit.sol b/contracts/pcv/IPCVDeposit.sol
index 6b0fe065c..49e00b5ce 100644
--- a/contracts/pcv/IPCVDeposit.sol
+++ b/contracts/pcv/IPCVDeposit.sol
@@ -9,24 +9,11 @@ interface IPCVDeposit is IPCVDepositBalances {
// ----------- Events -----------
event Deposit(address indexed _from, uint256 _amount);
- event Withdrawal(
- address indexed _caller,
- address indexed _to,
- uint256 _amount
- );
-
- event WithdrawERC20(
- address indexed _caller,
- address indexed _token,
- address indexed _to,
- uint256 _amount
- );
-
- event WithdrawETH(
- address indexed _caller,
- address indexed _to,
- uint256 _amount
- );
+ event Withdrawal(address indexed _caller, address indexed _to, uint256 _amount);
+
+ event WithdrawERC20(address indexed _caller, address indexed _token, address indexed _to, uint256 _amount);
+
+ event WithdrawETH(address indexed _caller, address indexed _to, uint256 _amount);
// ----------- State changing api -----------
diff --git a/contracts/pcv/IPCVGuardian.sol b/contracts/pcv/IPCVGuardian.sol
index 98b32d6ee..959e6981a 100644
--- a/contracts/pcv/IPCVGuardian.sol
+++ b/contracts/pcv/IPCVGuardian.sol
@@ -10,17 +10,9 @@ interface IPCVGuardian {
event SafeAddressRemoved(address indexed safeAddress);
- event PCVGuardianWithdrawal(
- address indexed pcvDeposit,
- address indexed destination,
- uint256 amount
- );
+ event PCVGuardianWithdrawal(address indexed pcvDeposit, address indexed destination, uint256 amount);
- event PCVGuardianETHWithdrawal(
- address indexed pcvDeposit,
- address indexed destination,
- uint256 amount
- );
+ event PCVGuardianETHWithdrawal(address indexed pcvDeposit, address indexed destination, uint256 amount);
event PCVGuardianERC20Withdrawal(
address indexed pcvDeposit,
diff --git a/contracts/pcv/IPCVSwapper.sol b/contracts/pcv/IPCVSwapper.sol
index 2207b41ac..fddef8c81 100644
--- a/contracts/pcv/IPCVSwapper.sol
+++ b/contracts/pcv/IPCVSwapper.sol
@@ -5,10 +5,7 @@ pragma solidity ^0.8.4;
/// @author eswak
interface IPCVSwapper {
// ----------- Events -----------
- event UpdateReceivingAddress(
- address oldTokenReceivingAddress,
- address newTokenReceivingAddress
- );
+ event UpdateReceivingAddress(address oldTokenReceivingAddress, address newTokenReceivingAddress);
event Swap(
address indexed _caller,
diff --git a/contracts/pcv/PCVDeposit.sol b/contracts/pcv/PCVDeposit.sol
index 1a0dcc39e..f5fbde8c4 100644
--- a/contracts/pcv/PCVDeposit.sol
+++ b/contracts/pcv/PCVDeposit.sol
@@ -34,12 +34,7 @@ abstract contract PCVDeposit is IPCVDeposit, CoreRef {
/// @notice withdraw ETH from the contract
/// @param to address to send ETH
/// @param amountOut amount of ETH to send
- function withdrawETH(address payable to, uint256 amountOut)
- external
- virtual
- override
- onlyPCVController
- {
+ function withdrawETH(address payable to, uint256 amountOut) external virtual override onlyPCVController {
Address.sendValue(to, amountOut);
emit WithdrawETH(msg.sender, to, amountOut);
}
@@ -48,17 +43,8 @@ abstract contract PCVDeposit is IPCVDeposit, CoreRef {
function balanceReportedIn() public view virtual override returns (address);
- function resistantBalanceAndFei()
- public
- view
- virtual
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view virtual override returns (uint256, uint256) {
uint256 tokenBalance = balance();
- return (
- tokenBalance,
- balanceReportedIn() == address(fei()) ? tokenBalance : 0
- );
+ return (tokenBalance, balanceReportedIn() == address(fei()) ? tokenBalance : 0);
}
}
diff --git a/contracts/pcv/PCVGuardian.sol b/contracts/pcv/PCVGuardian.sol
index 540a2bc18..9a32eee8d 100644
--- a/contracts/pcv/PCVGuardian.sol
+++ b/contracts/pcv/PCVGuardian.sol
@@ -26,22 +26,12 @@ contract PCVGuardian is IPCVGuardian, CoreRef {
/// @notice returns true if the the provided address is a valid destination to withdraw funds to
/// @param pcvDeposit the address to check
- function isSafeAddress(address pcvDeposit)
- public
- view
- override
- returns (bool)
- {
+ function isSafeAddress(address pcvDeposit) public view override returns (bool) {
return safeAddresses.contains(pcvDeposit);
}
/// @notice returns all safe addresses
- function getSafeAddresses()
- public
- view
- override
- returns (address[] memory)
- {
+ function getSafeAddresses() public view override returns (address[] memory) {
return safeAddresses.values();
}
@@ -49,21 +39,13 @@ contract PCVGuardian is IPCVGuardian, CoreRef {
/// @notice governor-only method to set an address as "safe" to withdraw funds to
/// @param pcvDeposit the address to set as safe
- function setSafeAddress(address pcvDeposit)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setSafeAddress(address pcvDeposit) external override onlyGovernorOrAdmin {
_setSafeAddress(pcvDeposit);
}
/// @notice batch version of setSafeAddress
/// @param _safeAddresses the addresses to set as safe, as calldata
- function setSafeAddresses(address[] calldata _safeAddresses)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setSafeAddresses(address[] calldata _safeAddresses) external override onlyGovernorOrAdmin {
require(_safeAddresses.length != 0, "empty");
for (uint256 i = 0; i < _safeAddresses.length; i++) {
_setSafeAddress(_safeAddresses[i]);
@@ -74,21 +56,13 @@ contract PCVGuardian is IPCVGuardian, CoreRef {
/// @notice governor-or-guardian-only method to un-set an address as "safe" to withdraw funds to
/// @param pcvDeposit the address to un-set as safe
- function unsetSafeAddress(address pcvDeposit)
- external
- override
- isGovernorOrGuardianOrAdmin
- {
+ function unsetSafeAddress(address pcvDeposit) external override isGovernorOrGuardianOrAdmin {
_unsetSafeAddress(pcvDeposit);
}
/// @notice batch version of unsetSafeAddresses
/// @param _safeAddresses the addresses to un-set as safe
- function unsetSafeAddresses(address[] calldata _safeAddresses)
- external
- override
- isGovernorOrGuardianOrAdmin
- {
+ function unsetSafeAddresses(address[] calldata _safeAddresses) external override isGovernorOrGuardianOrAdmin {
require(_safeAddresses.length != 0, "empty");
for (uint256 i = 0; i < _safeAddresses.length; i++) {
_unsetSafeAddress(_safeAddresses[i]);
@@ -108,10 +82,7 @@ contract PCVGuardian is IPCVGuardian, CoreRef {
bool pauseAfter,
bool depositAfter
) external override isGovernorOrGuardianOrAdmin {
- require(
- isSafeAddress(safeAddress),
- "Provided address is not a safe address!"
- );
+ require(isSafeAddress(safeAddress), "Provided address is not a safe address!");
pcvDeposit._ensureUnpaused();
@@ -141,10 +112,7 @@ contract PCVGuardian is IPCVGuardian, CoreRef {
bool pauseAfter,
bool depositAfter
) external override isGovernorOrGuardianOrAdmin {
- require(
- isSafeAddress(safeAddress),
- "Provided address is not a safe address!"
- );
+ require(isSafeAddress(safeAddress), "Provided address is not a safe address!");
pcvDeposit._ensureUnpaused();
@@ -175,10 +143,7 @@ contract PCVGuardian is IPCVGuardian, CoreRef {
bool pauseAfter,
bool depositAfter
) external override isGovernorOrGuardianOrAdmin {
- require(
- isSafeAddress(safeAddress),
- "Provided address is not a safe address!"
- );
+ require(isSafeAddress(safeAddress), "Provided address is not a safe address!");
pcvDeposit._ensureUnpaused();
diff --git a/contracts/pcv/aave/AavePCVDeposit.sol b/contracts/pcv/aave/AavePCVDeposit.sol
index d3db0f149..6dfb5602a 100644
--- a/contracts/pcv/aave/AavePCVDeposit.sol
+++ b/contracts/pcv/aave/AavePCVDeposit.sol
@@ -25,10 +25,7 @@ interface IncentivesController {
address to
) external;
- function getRewardsBalance(address[] calldata assets, address user)
- external
- view
- returns (uint256);
+ function getRewardsBalance(address[] calldata assets, address user) external view returns (uint256);
}
/// @title Aave PCV Deposit
@@ -72,10 +69,7 @@ contract AavePCVDeposit is WethPCVDeposit {
address[] memory assets = new address[](1);
assets[0] = address(aToken);
// First grab the available balance
- uint256 amount = incentivesController.getRewardsBalance(
- assets,
- address(this)
- );
+ uint256 amount = incentivesController.getRewardsBalance(assets, address(this));
// claim all available rewards
incentivesController.claimRewards(assets, amount, address(this));
@@ -99,11 +93,7 @@ contract AavePCVDeposit is WethPCVDeposit {
/// @notice withdraw tokens from the PCV allocation
/// @param amountUnderlying of tokens withdrawn
/// @param to the address to send PCV to
- function withdraw(address to, uint256 amountUnderlying)
- external
- override
- onlyPCVController
- {
+ function withdraw(address to, uint256 amountUnderlying) external override onlyPCVController {
lendingPool.withdraw(address(token), amountUnderlying, to);
emit Withdrawal(msg.sender, to, amountUnderlying);
}
diff --git a/contracts/pcv/angle/AngleGaugeLens.sol b/contracts/pcv/angle/AngleGaugeLens.sol
index 39f5ff20c..473a3c8fe 100644
--- a/contracts/pcv/angle/AngleGaugeLens.sol
+++ b/contracts/pcv/angle/AngleGaugeLens.sol
@@ -41,12 +41,7 @@ contract AngleGaugeLens is IPCVDepositBalances {
/// underlying amounts of XYZ and FEI tokens held within the LP tokens.
/// This lens can be coupled with another lens in order to compute the
/// underlying amounts of FEI and XYZ held inside the LP tokens.
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
uint256 stakedBalance = balance();
if (balanceReportedIn == FEI) {
return (stakedBalance, stakedBalance);
diff --git a/contracts/pcv/angle/AngleUniswapPCVDeposit.sol b/contracts/pcv/angle/AngleUniswapPCVDeposit.sol
index 8536225c3..b6afc895c 100644
--- a/contracts/pcv/angle/AngleUniswapPCVDeposit.sol
+++ b/contracts/pcv/angle/AngleUniswapPCVDeposit.sol
@@ -74,44 +74,18 @@ contract AngleUniswapPCVDeposit is UniswapPCVDeposit {
IStableMaster _stableMaster,
IPoolManager _poolManager,
IStakingRewards _stakingRewards
- )
- UniswapPCVDeposit(
- _core,
- _pair,
- _router,
- _oracle,
- _backupOracle,
- _maxBasisPointsFromPegLP
- )
- {
+ ) UniswapPCVDeposit(_core, _pair, _router, _oracle, _backupOracle, _maxBasisPointsFromPegLP) {
stableMaster = _stableMaster;
poolManager = _poolManager;
stakingRewards = _stakingRewards;
- require(
- _poolManager.token() == address(fei()),
- "AngleUniswapPCVDeposit: invalid poolManager"
- );
- require(
- _stableMaster.agToken() == token,
- "AngleUniswapPCVDeposit: invalid stableMaster"
- );
- require(
- _stakingRewards.stakingToken() == _pair,
- "AngleUniswapPCVDeposit: invalid stakingRewards"
- );
+ require(_poolManager.token() == address(fei()), "AngleUniswapPCVDeposit: invalid poolManager");
+ require(_stableMaster.agToken() == token, "AngleUniswapPCVDeposit: invalid stableMaster");
+ require(_stakingRewards.stakingToken() == _pair, "AngleUniswapPCVDeposit: invalid stakingRewards");
// Approve FEI on StableMaster to be able to mint agTokens
- SafeERC20.safeApprove(
- IERC20(address(fei())),
- address(_stableMaster),
- type(uint256).max
- );
+ SafeERC20.safeApprove(IERC20(address(fei())), address(_stableMaster), type(uint256).max);
// Approve LP tokens on StakingRewards to earn ANGLE rewards
- SafeERC20.safeApprove(
- IERC20(_pair),
- address(_stakingRewards),
- type(uint256).max
- );
+ SafeERC20.safeApprove(IERC20(_pair), address(_stakingRewards), type(uint256).max);
}
/// @notice claim staking rewards
@@ -148,13 +122,7 @@ contract AngleUniswapPCVDeposit is UniswapPCVDeposit {
.asUint256();
// burn agTokens for FEI
- stableMaster.burn(
- amountAgToken,
- address(this),
- address(this),
- poolManager,
- minFeiOut
- );
+ stableMaster.burn(amountAgToken, address(this), address(this), poolManager, minFeiOut);
// burn FEI held (after redeeming agTokens, we have some)
_burnFeiHeld();
@@ -171,57 +139,35 @@ contract AngleUniswapPCVDeposit is UniswapPCVDeposit {
/// @dev also approves the router for the new pair token and underlying token
function setPair(address _pair) public override onlyGovernor {
super.setPair(_pair);
- SafeERC20.safeApprove(
- IERC20(_pair),
- address(stakingRewards),
- type(uint256).max
- );
+ SafeERC20.safeApprove(IERC20(_pair), address(stakingRewards), type(uint256).max);
}
/// @notice set a new stakingRewards address
/// @param _stakingRewards the new stakingRewards
- function setStakingRewards(IStakingRewards _stakingRewards)
- public
- onlyGovernor
- {
- require(
- address(_stakingRewards) != address(0),
- "AngleUniswapPCVDeposit: zero address"
- );
+ function setStakingRewards(IStakingRewards _stakingRewards) public onlyGovernor {
+ require(address(_stakingRewards) != address(0), "AngleUniswapPCVDeposit: zero address");
stakingRewards = _stakingRewards;
}
/// @notice set a new poolManager address
/// @param _poolManager the new poolManager
function setPoolManager(IPoolManager _poolManager) public onlyGovernor {
- require(
- address(_poolManager) != address(0),
- "AngleUniswapPCVDeposit: zero address"
- );
+ require(address(_poolManager) != address(0), "AngleUniswapPCVDeposit: zero address");
poolManager = _poolManager;
}
/// @notice amount of pair liquidity owned by this contract
/// @return amount of LP tokens
function liquidityOwned() public view override returns (uint256) {
- return
- pair.balanceOf(address(this)) +
- stakingRewards.balanceOf(address(this));
+ return pair.balanceOf(address(this)) + stakingRewards.balanceOf(address(this));
}
- function _removeLiquidity(uint256 liquidity)
- internal
- override
- returns (uint256)
- {
+ function _removeLiquidity(uint256 liquidity) internal override returns (uint256) {
stakingRewards.withdraw(liquidity);
return super._removeLiquidity(liquidity);
}
- function _addLiquidity(uint256 tokenAmount, uint256 feiAmount)
- internal
- override
- {
+ function _addLiquidity(uint256 tokenAmount, uint256 feiAmount) internal override {
super._addLiquidity(tokenAmount, feiAmount);
uint256 lpBalanceAfter = pair.balanceOf(address(this));
stakingRewards.stake(lpBalanceAfter);
diff --git a/contracts/pcv/balancer/BPTLens.sol b/contracts/pcv/balancer/BPTLens.sol
index e528f63be..c395d3cf8 100644
--- a/contracts/pcv/balancer/BPTLens.sol
+++ b/contracts/pcv/balancer/BPTLens.sol
@@ -55,8 +55,7 @@ contract BPTLens is IPCVDepositBalances {
bytes32 _id = _pool.getPoolId();
id = _id;
- (IERC20[] memory tokens, uint256[] memory balances, ) = _vault
- .getPoolTokens(_id);
+ (IERC20[] memory tokens, uint256[] memory balances, ) = _vault.getPoolTokens(_id);
// Check the token is in the BPT and its only a 2 token pool
require(address(tokens[0]) == _token || address(tokens[1]) == _token);
@@ -73,8 +72,7 @@ contract BPTLens is IPCVDepositBalances {
}
function balance() public view override returns (uint256) {
- (IERC20[] memory _tokens, uint256[] memory balances, ) = VAULT
- .getPoolTokens(id);
+ (IERC20[] memory _tokens, uint256[] memory balances, ) = VAULT.getPoolTokens(id);
return balances[index];
}
@@ -84,18 +82,12 @@ contract BPTLens is IPCVDepositBalances {
* https://docs.gyro.finance/learn/oracles/bpt-oracle
* This is robust to price manipulations within the Balancer pool.
*/
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
uint256[] memory prices = new uint256[](2);
uint256 j = index == 0 ? 1 : 0;
// Check oracles and fill in prices
- (Decimal.D256 memory reportedPrice, bool reportedValid) = reportedOracle
- .read();
+ (Decimal.D256 memory reportedPrice, bool reportedValid) = reportedOracle.read();
prices[index] = reportedPrice.value;
(Decimal.D256 memory otherPrice, bool otherValid) = otherOracle.read();
@@ -103,8 +95,7 @@ contract BPTLens is IPCVDepositBalances {
require(reportedValid && otherValid, "BPTLens: Invalid Oracle");
- (IERC20[] memory _tokens, uint256[] memory balances, ) = VAULT
- .getPoolTokens(id);
+ (IERC20[] memory _tokens, uint256[] memory balances, ) = VAULT.getPoolTokens(id);
uint256[] memory weights = pool.getNormalizedWeights();
@@ -115,12 +106,7 @@ contract BPTLens is IPCVDepositBalances {
return (reserves, reserves);
}
if (feiInPair) {
- uint256 otherReserves = _getIdealReserves(
- balances,
- prices,
- weights,
- j
- );
+ uint256 otherReserves = _getIdealReserves(balances, prices, weights, j);
return (reserves, otherReserves);
}
return (reserves, 0);
@@ -152,18 +138,9 @@ contract BPTLens is IPCVDepositBalances {
uint256 one = Constants.ETH_GRANULARITY;
- uint256 reservesScaled = one.mulPow(
- balances[i],
- weights[i],
- Constants.ETH_DECIMALS
- );
- uint256 multiplier = (weights[i] * prices[j] * balances[j]) /
- (prices[i] * weights[j]);
-
- reserves = reservesScaled.mulPow(
- multiplier,
- weights[j],
- Constants.ETH_DECIMALS
- );
+ uint256 reservesScaled = one.mulPow(balances[i], weights[i], Constants.ETH_DECIMALS);
+ uint256 multiplier = (weights[i] * prices[j] * balances[j]) / (prices[i] * weights[j]);
+
+ reserves = reservesScaled.mulPow(multiplier, weights[j], Constants.ETH_DECIMALS);
}
}
diff --git a/contracts/pcv/balancer/BalancerLBPSwapper.sol b/contracts/pcv/balancer/BalancerLBPSwapper.sol
index 3effa7745..f1aa3d62c 100644
--- a/contracts/pcv/balancer/BalancerLBPSwapper.sol
+++ b/contracts/pcv/balancer/BalancerLBPSwapper.sol
@@ -11,30 +11,17 @@ import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
/// @title BalancerLBPSwapper
/// @author Fei Protocol
/// @notice an auction contract which cyclically sells one token for another using Balancer LBP
-contract BalancerLBPSwapper is
- IPCVSwapper,
- OracleRef,
- Timed,
- WeightedBalancerPoolManager
-{
+contract BalancerLBPSwapper is IPCVSwapper, OracleRef, Timed, WeightedBalancerPoolManager {
using Decimal for Decimal.D256;
using SafeERC20 for IERC20;
// ------------- Events -------------
- event WithdrawERC20(
- address indexed _caller,
- address indexed _token,
- address indexed _to,
- uint256 _amount
- );
+ event WithdrawERC20(address indexed _caller, address indexed _token, address indexed _to, uint256 _amount);
event ExitPool();
- event MinTokenSpentUpdate(
- uint256 oldMinTokenSpentBalance,
- uint256 newMinTokenSpentBalance
- );
+ event MinTokenSpentUpdate(uint256 oldMinTokenSpentBalance, uint256 newMinTokenSpentBalance);
// ------------- Balancer State -------------
/// @notice the Balancer LBP used for swapping
@@ -115,10 +102,7 @@ contract BalancerLBPSwapper is
SMALL_PERCENT = _weightSmall;
LARGE_PERCENT = _weightLarge;
require(_weightSmall < _weightLarge, "BalancerLBPSwapper: bad weights");
- require(
- _weightSmall + _weightLarge == 1e18,
- "BalancerLBPSwapper: weights not normalized"
- );
+ require(_weightSmall + _weightLarge == 1e18, "BalancerLBPSwapper: weights not normalized");
// tokenSpent and tokenReceived are immutable
tokenSpent = _tokenSpent;
@@ -147,27 +131,19 @@ contract BalancerLBPSwapper is
vault = _vault;
// Check ownership
- require(
- _pool.getOwner() == address(this),
- "BalancerLBPSwapper: contract not pool owner"
- );
+ require(_pool.getOwner() == address(this), "BalancerLBPSwapper: contract not pool owner");
// Check correct pool token components
bytes32 _pid = _pool.getPoolId();
pid = _pid;
(IERC20[] memory tokens, , ) = _vault.getPoolTokens(_pid);
+ require(tokens.length == 2, "BalancerLBPSwapper: pool does not have 2 tokens");
require(
- tokens.length == 2,
- "BalancerLBPSwapper: pool does not have 2 tokens"
- );
- require(
- tokenSpent == address(tokens[0]) ||
- tokenSpent == address(tokens[1]),
+ tokenSpent == address(tokens[0]) || tokenSpent == address(tokens[1]),
"BalancerLBPSwapper: tokenSpent not in pool"
);
require(
- tokenReceived == address(tokens[0]) ||
- tokenReceived == address(tokens[1]),
+ tokenReceived == address(tokens[0]) || tokenReceived == address(tokens[1]),
"BalancerLBPSwapper: tokenReceived not in pool"
);
@@ -209,13 +185,7 @@ contract BalancerLBPSwapper is
5. Transfer remaining tokenReceived to tokenReceivingAddress
@dev assumes tokenSpent balance of contract exceeds minTokenSpentBalance to kick off a new auction
*/
- function swap()
- external
- override
- afterTime
- whenNotPaused
- onlyGovernorOrAdmin
- {
+ function swap() external override afterTime whenNotPaused onlyGovernorOrAdmin {
_swap();
}
@@ -263,20 +233,13 @@ contract BalancerLBPSwapper is
/// @notice sets the minimum token spent balance
/// @param newMinTokenSpentBalance minimum amount of FEI to trigger a new auction
- function setMinTokenSpent(uint256 newMinTokenSpentBalance)
- external
- onlyGovernorOrAdmin
- {
+ function setMinTokenSpent(uint256 newMinTokenSpentBalance) external onlyGovernorOrAdmin {
_setMinTokenSpent(newMinTokenSpentBalance);
}
/// @notice Sets the address receiving swap's inbound tokens
/// @param newTokenReceivingAddress the address that will receive tokens
- function setReceivingAddress(address newTokenReceivingAddress)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setReceivingAddress(address newTokenReceivingAddress) external override onlyGovernorOrAdmin {
_setReceivingAddress(newTokenReceivingAddress);
}
@@ -306,10 +269,7 @@ contract BalancerLBPSwapper is
(, , uint256 lastChangeBlock) = vault.getPoolTokens(pid);
// Ensures no actor can change the pool contents earlier in the block
- require(
- lastChangeBlock < block.number,
- "BalancerLBPSwapper: pool changed this block"
- );
+ require(lastChangeBlock < block.number, "BalancerLBPSwapper: pool changed this block");
uint256 bptTotal = pool.totalSupply();
@@ -318,38 +278,23 @@ contract BalancerLBPSwapper is
_initializePool();
return;
}
- require(
- swapEndTime() < block.timestamp,
- "BalancerLBPSwapper: weight update in progress"
- );
+ require(swapEndTime() < block.timestamp, "BalancerLBPSwapper: weight update in progress");
// 1. Withdraw existing LP tokens (if currently held)
_exitPool();
// 2. Reset weights to LARGE_PERCENT:SMALL_PERCENT
// Using current block time triggers immediate weight reset
- _updateWeightsGradually(
- pool,
- block.timestamp,
- block.timestamp,
- initialWeights
- );
+ _updateWeightsGradually(pool, block.timestamp, block.timestamp, initialWeights);
// 3. Provide new liquidity
uint256 spentTokenBalance = IERC20(tokenSpent).balanceOf(address(this));
- require(
- spentTokenBalance > minTokenSpentBalance,
- "BalancerLBPSwapper: not enough for new swap"
- );
+ require(spentTokenBalance > minTokenSpentBalance, "BalancerLBPSwapper: not enough for new swap");
// uses exact tokens in encoding for deposit, supplying both tokens
// will use some of the previously withdrawn tokenReceived to seed the 1% required for new auction
uint256[] memory amountsIn = _getTokensIn(spentTokenBalance);
- bytes memory userData = abi.encode(
- IWeightedPool.JoinKind.EXACT_TOKENS_IN_FOR_BPT_OUT,
- amountsIn,
- 0
- );
+ bytes memory userData = abi.encode(IWeightedPool.JoinKind.EXACT_TOKENS_IN_FOR_BPT_OUT, amountsIn, 0);
IVault.JoinPoolRequest memory joinRequest;
joinRequest.assets = assets;
@@ -360,12 +305,7 @@ contract BalancerLBPSwapper is
vault.joinPool(pid, address(this), payable(address(this)), joinRequest);
// 4. Kick off new auction ending after `duration` seconds
- _updateWeightsGradually(
- pool,
- block.timestamp,
- block.timestamp + duration,
- endWeights
- );
+ _updateWeightsGradually(pool, block.timestamp, block.timestamp + duration, endWeights);
_initTimed(); // reset timer
// 5. Send remaining tokenReceived to target
_transferAll(tokenReceived, tokenReceivingAddress);
@@ -377,22 +317,14 @@ contract BalancerLBPSwapper is
IVault.ExitPoolRequest memory exitRequest;
// Uses encoding for exact BPT IN withdrawal using all held BPT
- bytes memory userData = abi.encode(
- IWeightedPool.ExitKind.EXACT_BPT_IN_FOR_TOKENS_OUT,
- bptBalance
- );
+ bytes memory userData = abi.encode(IWeightedPool.ExitKind.EXACT_BPT_IN_FOR_TOKENS_OUT, bptBalance);
exitRequest.assets = assets;
exitRequest.minAmountsOut = new uint256[](2); // 0 min
exitRequest.userData = userData;
exitRequest.toInternalBalance = false; // use external balances to be able to transfer out tokenReceived
- vault.exitPool(
- pid,
- address(this),
- payable(address(this)),
- exitRequest
- );
+ vault.exitPool(pid, address(this), payable(address(this)), exitRequest);
emit ExitPool();
}
}
@@ -403,31 +335,19 @@ contract BalancerLBPSwapper is
}
function _setReceivingAddress(address newTokenReceivingAddress) internal {
- require(
- newTokenReceivingAddress != address(0),
- "BalancerLBPSwapper: zero address"
- );
+ require(newTokenReceivingAddress != address(0), "BalancerLBPSwapper: zero address");
address oldTokenReceivingAddress = tokenReceivingAddress;
tokenReceivingAddress = newTokenReceivingAddress;
- emit UpdateReceivingAddress(
- oldTokenReceivingAddress,
- newTokenReceivingAddress
- );
+ emit UpdateReceivingAddress(oldTokenReceivingAddress, newTokenReceivingAddress);
}
function _initializePool() internal {
// Balancer LBP initialization uses a unique JoinKind which only takes in amountsIn
uint256 spentTokenBalance = IERC20(tokenSpent).balanceOf(address(this));
- require(
- spentTokenBalance >= minTokenSpentBalance,
- "BalancerLBPSwapper: not enough tokenSpent to init"
- );
+ require(spentTokenBalance >= minTokenSpentBalance, "BalancerLBPSwapper: not enough tokenSpent to init");
uint256[] memory amountsIn = _getTokensIn(spentTokenBalance);
- bytes memory userData = abi.encode(
- IWeightedPool.JoinKind.INIT,
- amountsIn
- );
+ bytes memory userData = abi.encode(IWeightedPool.JoinKind.INIT, amountsIn);
IVault.JoinPoolRequest memory joinRequest;
joinRequest.assets = assets;
@@ -438,22 +358,13 @@ contract BalancerLBPSwapper is
vault.joinPool(pid, address(this), payable(address(this)), joinRequest);
// Kick off the first auction
- _updateWeightsGradually(
- pool,
- block.timestamp,
- block.timestamp + duration,
- endWeights
- );
+ _updateWeightsGradually(pool, block.timestamp, block.timestamp + duration, endWeights);
_initTimed();
_transferAll(tokenReceived, tokenReceivingAddress);
}
- function _getTokensIn(uint256 spentTokenBalance)
- internal
- view
- returns (uint256[] memory amountsIn)
- {
+ function _getTokensIn(uint256 spentTokenBalance) internal view returns (uint256[] memory amountsIn) {
amountsIn = new uint256[](2);
uint256 receivedTokenBalance = readOracle()
@@ -474,9 +385,6 @@ contract BalancerLBPSwapper is
function _setMinTokenSpent(uint256 newMinTokenSpentBalance) internal {
uint256 oldMinTokenSpentBalance = minTokenSpentBalance;
minTokenSpentBalance = newMinTokenSpentBalance;
- emit MinTokenSpentUpdate(
- oldMinTokenSpentBalance,
- newMinTokenSpentBalance
- );
+ emit MinTokenSpentUpdate(oldMinTokenSpentBalance, newMinTokenSpentBalance);
}
}
diff --git a/contracts/pcv/balancer/BalancerPCVDepositBase.sol b/contracts/pcv/balancer/BalancerPCVDepositBase.sol
index 0dc50b7f4..48685259e 100644
--- a/contracts/pcv/balancer/BalancerPCVDepositBase.sol
+++ b/contracts/pcv/balancer/BalancerPCVDepositBase.sol
@@ -16,20 +16,11 @@ abstract contract BalancerPCVDepositBase is PCVDeposit {
event UpdateMaximumSlippage(uint256 maximumSlippageBasisPoints);
/// @notice event generated when rewards are claimed
- event ClaimRewards(
- address indexed _caller,
- address indexed _token,
- address indexed _to,
- uint256 _amount
- );
+ event ClaimRewards(address indexed _caller, address indexed _token, address indexed _to, uint256 _amount);
// @notice event generated when pool position is exited (LP tokens redeemed
// for tokens in proportion to the pool's weights.
- event ExitPool(
- bytes32 indexed _poodId,
- address indexed _to,
- uint256 _bptAmount
- );
+ event ExitPool(bytes32 indexed _poodId, address indexed _to, uint256 _bptAmount);
// Maximum tolerated slippage for deposits
uint256 public maximumSlippageBasisPoints;
@@ -95,9 +86,7 @@ abstract contract BalancerPCVDepositBase is PCVDeposit {
/// sending to another PCVDeposit that needs pure ETH.
/// Balancer uses WETH in its pools, and not ETH.
function unwrapETH() external onlyPCVController {
- uint256 wethBalance = IERC20(address(Constants.WETH)).balanceOf(
- address(this)
- );
+ uint256 wethBalance = IERC20(address(Constants.WETH)).balanceOf(address(this));
if (wethBalance != 0) {
Constants.WETH.withdraw(wethBalance);
}
@@ -105,10 +94,7 @@ abstract contract BalancerPCVDepositBase is PCVDeposit {
/// @notice Sets the maximum slippage vs 1:1 price accepted during withdraw.
/// @param _maximumSlippageBasisPoints the maximum slippage expressed in basis points (1/10_000)
- function setMaximumSlippage(uint256 _maximumSlippageBasisPoints)
- external
- onlyGovernorOrAdmin
- {
+ function setMaximumSlippage(uint256 _maximumSlippageBasisPoints) external onlyGovernorOrAdmin {
require(
_maximumSlippageBasisPoints <= Constants.BASIS_POINTS_GRANULARITY,
"BalancerPCVDepositBase: Exceeds bp granularity."
@@ -120,28 +106,18 @@ abstract contract BalancerPCVDepositBase is PCVDeposit {
/// @notice redeeem all assets from LP pool
/// @param _to address to send underlying tokens to
function exitPool(address _to) external whenNotPaused onlyPCVController {
- uint256 bptBalance = IWeightedPool(poolAddress).balanceOf(
- address(this)
- );
+ uint256 bptBalance = IWeightedPool(poolAddress).balanceOf(address(this));
if (bptBalance != 0) {
IVault.ExitPoolRequest memory request;
// Uses encoding for exact BPT IN withdrawal using all held BPT
- bytes memory userData = abi.encode(
- IWeightedPool.ExitKind.EXACT_BPT_IN_FOR_TOKENS_OUT,
- bptBalance
- );
+ bytes memory userData = abi.encode(IWeightedPool.ExitKind.EXACT_BPT_IN_FOR_TOKENS_OUT, bptBalance);
request.assets = poolAssets;
request.minAmountsOut = new uint256[](poolAssets.length); // 0 minimums
request.userData = userData;
request.toInternalBalance = false; // use external balances to be able to transfer out tokenReceived
- vault.exitPool(
- poolId,
- address(this),
- payable(address(_to)),
- request
- );
+ vault.exitPool(poolId, address(this), payable(address(_to)), request);
if (_to == address(this)) {
_burnFeiHeld();
@@ -164,12 +140,8 @@ abstract contract BalancerPCVDepositBase is PCVDeposit {
uint256 amount,
bytes32[] memory merkleProof
) external whenNotPaused {
- address BAL_TOKEN_ADDRESS = address(
- 0xba100000625a3754423978a60c9317c58a424e3D
- );
- address BAL_TOKEN_DISTRIBUTOR = address(
- 0x35ED000468f397AA943009bD60cc6d2d9a7d32fF
- );
+ address BAL_TOKEN_ADDRESS = address(0xba100000625a3754423978a60c9317c58a424e3D);
+ address BAL_TOKEN_DISTRIBUTOR = address(0x35ED000468f397AA943009bD60cc6d2d9a7d32fF);
IERC20[] memory tokens = new IERC20[](1);
tokens[0] = IERC20(BAL_TOKEN_ADDRESS);
@@ -184,17 +156,8 @@ abstract contract BalancerPCVDepositBase is PCVDeposit {
IMerkleOrchard.Claim[] memory claims = new IMerkleOrchard.Claim[](1);
claims[0] = claim;
- IMerkleOrchard(rewards).claimDistributions(
- address(this),
- claims,
- tokens
- );
+ IMerkleOrchard(rewards).claimDistributions(address(this), claims, tokens);
- emit ClaimRewards(
- msg.sender,
- address(BAL_TOKEN_ADDRESS),
- address(this),
- amount
- );
+ emit ClaimRewards(msg.sender, address(BAL_TOKEN_ADDRESS), address(this), amount);
}
}
diff --git a/contracts/pcv/balancer/BalancerPCVDepositWeightedPool.sol b/contracts/pcv/balancer/BalancerPCVDepositWeightedPool.sol
index c5d4badab..9ee54561b 100644
--- a/contracts/pcv/balancer/BalancerPCVDepositWeightedPool.sol
+++ b/contracts/pcv/balancer/BalancerPCVDepositWeightedPool.sol
@@ -19,12 +19,7 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
using SafeMath for *;
using Decimal for Decimal.D256;
- event OracleUpdate(
- address _sender,
- address indexed _token,
- address indexed _oldOracle,
- address indexed _newOracle
- );
+ event OracleUpdate(address _sender, address indexed _token, address indexed _oldOracle, address indexed _newOracle);
/// @notice oracle array of the tokens stored in this Balancer pool
IOracle[] public tokenOracles;
@@ -58,20 +53,9 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
uint256 _maximumSlippageBasisPoints,
address _token,
IOracle[] memory _tokenOracles
- )
- BalancerPCVDepositBase(
- _core,
- _vault,
- _rewards,
- _poolId,
- _maximumSlippageBasisPoints
- )
- {
+ ) BalancerPCVDepositBase(_core, _vault, _rewards, _poolId, _maximumSlippageBasisPoints) {
// check that we have oracles for all tokens
- require(
- poolAssets.length == _tokenOracles.length,
- "BalancerPCVDepositWeightedPool: wrong number of oracles."
- );
+ require(poolAssets.length == _tokenOracles.length, "BalancerPCVDepositWeightedPool: wrong number of oracles.");
tokenOracles = _tokenOracles;
@@ -79,9 +63,7 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
bool tokenFound = false;
address _fei = address(fei());
for (uint256 i = 0; i < poolAssets.length; i++) {
- tokenOraclesMapping[IERC20(address(poolAssets[i]))] = _tokenOracles[
- i
- ];
+ tokenOraclesMapping[IERC20(address(poolAssets[i]))] = _tokenOracles[i];
if (address(poolAssets[i]) == _token) {
tokenFound = true;
tokenIndexInPool = uint8(i);
@@ -93,29 +75,17 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
}
}
// check that the token is in the pool
- require(
- tokenFound,
- "BalancerPCVDepositWeightedPool: token not in pool."
- );
+ require(tokenFound, "BalancerPCVDepositWeightedPool: token not in pool.");
// check that token used for account is not FEI
- require(
- _token != _fei,
- "BalancerPCVDepositWeightedPool: token must not be FEI."
- );
+ require(_token != _fei, "BalancerPCVDepositWeightedPool: token must not be FEI.");
}
/// @notice sets the oracle for a token in this deposit
- function setOracle(address _token, address _newOracle)
- external
- onlyGovernorOrAdmin
- {
+ function setOracle(address _token, address _newOracle) external onlyGovernorOrAdmin {
// we must set the oracle for an asset that is in the pool
address oldOracle = address(tokenOraclesMapping[IERC20(_token)]);
- require(
- oldOracle != address(0),
- "BalancerPCVDepositWeightedPool: invalid token"
- );
+ require(oldOracle != address(0), "BalancerPCVDepositWeightedPool: invalid token");
// set oracle in the map
tokenOraclesMapping[IERC20(_token)] = IOracle(_newOracle);
@@ -140,26 +110,17 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
bool isToken = i == tokenIndexInPool;
bool isFei = feiInPool && i == feiIndexInPool;
if (!isToken && !isFei) {
- _balance +=
- (balances[i] * underlyingPrices[i]) /
- underlyingPrices[tokenIndexInPool];
+ _balance += (balances[i] * underlyingPrices[i]) / underlyingPrices[tokenIndexInPool];
}
}
- uint256 _bptBalance = IWeightedPool(poolAddress).balanceOf(
- address(this)
- );
+ uint256 _bptBalance = IWeightedPool(poolAddress).balanceOf(address(this));
return (_balance * _bptBalance) / _bptSupply;
}
// @notice returns the manipulation-resistant balance of tokens & FEI held.
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256 _resistantBalance, uint256 _resistantFei)
- {
+ function resistantBalanceAndFei() public view override returns (uint256 _resistantBalance, uint256 _resistantFei) {
// read oracle values
uint256[] memory underlyingPrices = _readOracles();
@@ -167,19 +128,11 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
uint256 bptPrice = _getBPTPrice(underlyingPrices);
// compute balance in USD value
- uint256 bptBalance = IWeightedPool(poolAddress).balanceOf(
- address(this)
- );
- Decimal.D256 memory bptValueUSD = Decimal
- .from(bptBalance)
- .mul(bptPrice)
- .div(1e18);
+ uint256 bptBalance = IWeightedPool(poolAddress).balanceOf(address(this));
+ Decimal.D256 memory bptValueUSD = Decimal.from(bptBalance).mul(bptPrice).div(1e18);
// compute balance in "token" value
- _resistantBalance = bptValueUSD
- .mul(1e18)
- .div(underlyingPrices[tokenIndexInPool])
- .asUint256();
+ _resistantBalance = bptValueUSD.mul(1e18).div(underlyingPrices[tokenIndexInPool]).asUint256();
// if FEI is in the pair, return only the value of asset, and does not
// count the protocol-owned FEI in the balance. For instance, if the pool
@@ -187,16 +140,10 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
// of the balancer pool tokens held by the contract, denominated in
// "token" (and not in USD).
if (feiInPool) {
- uint256[] memory _weights = IWeightedPool(poolAddress)
- .getNormalizedWeights();
- _resistantFei = bptValueUSD
- .mul(_weights[feiIndexInPool])
- .div(1e18)
- .asUint256();
+ uint256[] memory _weights = IWeightedPool(poolAddress).getNormalizedWeights();
+ _resistantFei = bptValueUSD.mul(_weights[feiIndexInPool]).div(1e18).asUint256();
// if FEI is x% of the pool, remove x% of the balance
- _resistantBalance =
- (_resistantBalance * (1e18 - _weights[feiIndexInPool])) /
- 1e18;
+ _resistantBalance = (_resistantBalance * (1e18 - _weights[feiIndexInPool])) / 1e18;
}
return (_resistantBalance, _resistantFei);
@@ -212,19 +159,14 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
uint256[] memory balances = new uint256[](poolAssets.length);
uint256 totalbalance = 0;
for (uint256 i = 0; i < balances.length; i++) {
- balances[i] = IERC20(address(poolAssets[i])).balanceOf(
- address(this)
- );
+ balances[i] = IERC20(address(poolAssets[i])).balanceOf(address(this));
// @dev: note that totalbalance is meaningless here, because we are
// adding units of tokens that may have different decimals, different
// values, etc. But the totalbalance is only used for checking > 0,
// to make sure that we have something to deposit.
totalbalance += balances[i];
}
- require(
- totalbalance > 0,
- "BalancerPCVDepositWeightedPool: no tokens to deposit"
- );
+ require(totalbalance > 0, "BalancerPCVDepositWeightedPool: no tokens to deposit");
// Read oracles
uint256[] memory underlyingPrices = _readOracles();
@@ -233,24 +175,16 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
if (feiInPool) {
// If FEI is in pool, we mint the good balance of FEI to go with the tokens
// we are depositing
- uint256 _feiToMint = (underlyingPrices[tokenIndexInPool] *
- balances[tokenIndexInPool]) / 1e18;
+ uint256 _feiToMint = (underlyingPrices[tokenIndexInPool] * balances[tokenIndexInPool]) / 1e18;
// normalize by weights
- uint256[] memory _weights = IWeightedPool(poolAddress)
- .getNormalizedWeights();
- _feiToMint =
- (_feiToMint * _weights[feiIndexInPool]) /
- _weights[tokenIndexInPool];
+ uint256[] memory _weights = IWeightedPool(poolAddress).getNormalizedWeights();
+ _feiToMint = (_feiToMint * _weights[feiIndexInPool]) / _weights[tokenIndexInPool];
// mint FEI
_mintFei(address(this), _feiToMint);
balances[feiIndexInPool] = _feiToMint;
}
- bytes memory userData = abi.encode(
- IWeightedPool.JoinKind.EXACT_TOKENS_IN_FOR_BPT_OUT,
- balances,
- 0
- );
+ bytes memory userData = abi.encode(IWeightedPool.JoinKind.EXACT_TOKENS_IN_FOR_BPT_OUT, balances, 0);
// If the pool is not initialized, join with an INIT JoinKind
if (IWeightedPool(poolAddress).totalSupply() == 0) {
userData = abi.encode(IWeightedPool.JoinKind.INIT, balances);
@@ -266,26 +200,19 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
// approve spending on balancer's vault
for (uint256 i = 0; i < balances.length; i++) {
if (balances[i] > 0) {
- IERC20(address(poolAssets[i])).approve(
- address(vault),
- balances[i]
- );
+ IERC20(address(poolAssets[i])).approve(address(vault), balances[i]);
}
}
// execute joinPool & transfer tokens to Balancer
- uint256 bptBalanceBefore = IWeightedPool(poolAddress).balanceOf(
- address(this)
- );
+ uint256 bptBalanceBefore = IWeightedPool(poolAddress).balanceOf(address(this));
vault.joinPool(
poolId, // poolId
address(this), // sender
address(this), // recipient
request // join pool request
);
- uint256 bptBalanceAfter = IWeightedPool(poolAddress).balanceOf(
- address(this)
- );
+ uint256 bptBalanceAfter = IWeightedPool(poolAddress).balanceOf(address(this));
// Check for slippage
{
@@ -297,23 +224,13 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
// Compute USD value out
uint256 bptPrice = _getBPTPrice(underlyingPrices);
- uint256 valueOut = Decimal
- .from(bptPrice)
- .mul(bptBalanceAfter - bptBalanceBefore)
- .div(1e18)
- .asUint256();
+ uint256 valueOut = Decimal.from(bptPrice).mul(bptBalanceAfter - bptBalanceBefore).div(1e18).asUint256();
uint256 minValueOut = Decimal
.from(valueIn)
- .mul(
- Constants.BASIS_POINTS_GRANULARITY -
- maximumSlippageBasisPoints
- )
+ .mul(Constants.BASIS_POINTS_GRANULARITY - maximumSlippageBasisPoints)
.div(Constants.BASIS_POINTS_GRANULARITY)
.asUint256();
- require(
- valueOut > minValueOut,
- "BalancerPCVDepositWeightedPool: slippage too high"
- );
+ require(valueOut > minValueOut, "BalancerPCVDepositWeightedPool: slippage too high");
}
// emit event
@@ -327,15 +244,8 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
/// in the right proportions for the pool, so only use this to withdraw small
/// amounts comparatively to the pool size. For large withdrawals, it is
/// preferrable to use exitPool() and then withdrawERC20().
- function withdraw(address to, uint256 amount)
- external
- override
- onlyPCVController
- whenNotPaused
- {
- uint256 bptBalance = IWeightedPool(poolAddress).balanceOf(
- address(this)
- );
+ function withdraw(address to, uint256 amount) external override onlyPCVController whenNotPaused {
+ uint256 bptBalance = IWeightedPool(poolAddress).balanceOf(address(this));
if (bptBalance != 0) {
IVault.ExitPoolRequest memory request;
request.assets = poolAssets;
@@ -346,17 +256,9 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
if (feiInPool) {
// If FEI is in pool, we also remove an equivalent portion of FEI
// from the pool, to conserve balance as much as possible
- (
- Decimal.D256 memory oracleValue,
- bool oracleValid
- ) = tokenOraclesMapping[token].read();
- require(
- oracleValid,
- "BalancerPCVDepositWeightedPool: oracle invalid"
- );
- uint256 amountFeiToWithdraw = oracleValue
- .mul(amount)
- .asUint256();
+ (Decimal.D256 memory oracleValue, bool oracleValid) = tokenOraclesMapping[token].read();
+ require(oracleValid, "BalancerPCVDepositWeightedPool: oracle invalid");
+ uint256 amountFeiToWithdraw = oracleValue.mul(amount).asUint256();
request.minAmountsOut[feiIndexInPool] = amountFeiToWithdraw;
}
@@ -368,12 +270,7 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
);
request.userData = userData;
- vault.exitPool(
- poolId,
- address(this),
- payable(address(this)),
- request
- );
+ vault.exitPool(poolId, address(this), payable(address(this)), request);
SafeERC20.safeTransfer(token, to, amount);
_burnFeiHeld();
@@ -382,21 +279,12 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
}
/// @notice read token oracles and revert if one of them is invalid
- function _readOracles()
- internal
- view
- returns (uint256[] memory underlyingPrices)
- {
+ function _readOracles() internal view returns (uint256[] memory underlyingPrices) {
underlyingPrices = new uint256[](poolAssets.length);
for (uint256 i = 0; i < underlyingPrices.length; i++) {
- (
- Decimal.D256 memory oracleValue,
- bool oracleValid
- ) = tokenOraclesMapping[IERC20(address(poolAssets[i]))].read();
- require(
- oracleValid,
- "BalancerPCVDepositWeightedPool: invalid oracle"
- );
+ (Decimal.D256 memory oracleValue, bool oracleValid) = tokenOraclesMapping[IERC20(address(poolAssets[i]))]
+ .read();
+ require(oracleValid, "BalancerPCVDepositWeightedPool: invalid oracle");
underlyingPrices[i] = oracleValue.mul(1e18).asUint256();
// normalize prices for tokens with different decimals
@@ -419,11 +307,7 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
* @return bptPrice = the price of balancer pool tokens, in USD, on a base
* of 18 decimals.
*/
- function _getBPTPrice(uint256[] memory underlyingPrices)
- internal
- view
- returns (uint256 bptPrice)
- {
+ function _getBPTPrice(uint256[] memory underlyingPrices) internal view returns (uint256 bptPrice) {
IWeightedPool pool = IWeightedPool(poolAddress);
uint256 _bptSupply = pool.totalSupply();
uint256[] memory _weights = pool.getNormalizedWeights();
@@ -447,11 +331,7 @@ contract BalancerPCVDepositWeightedPool is BalancerPCVDepositBase {
_k = _k.mulPow(_tokenBalance, _weights[i], 18);
- _weightedProd = _weightedProd.mulPow(
- underlyingPrices[i].scaledDiv(_weights[i], 18),
- _weights[i],
- 18
- );
+ _weightedProd = _weightedProd.mulPow(underlyingPrices[i].scaledDiv(_weights[i], 18), _weights[i], 18);
}
uint256 result = _k.scaledMul(_weightedProd).scaledDiv(_bptSupply);
diff --git a/contracts/pcv/balancer/BalancerPool2Lens.sol b/contracts/pcv/balancer/BalancerPool2Lens.sol
index 82fb7eead..ec9d45f4a 100644
--- a/contracts/pcv/balancer/BalancerPool2Lens.sol
+++ b/contracts/pcv/balancer/BalancerPool2Lens.sol
@@ -90,18 +90,12 @@ contract BalancerPool2Lens is IPCVDepositBalances {
return (balances[index] * bptsOwned) / totalSupply;
}
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
uint256[] memory prices = new uint256[](2);
uint256 j = index == 0 ? 1 : 0;
// Check oracles and fill in prices
- (Decimal.D256 memory reportedPrice, bool reportedValid) = reportedOracle
- .read();
+ (Decimal.D256 memory reportedPrice, bool reportedValid) = reportedOracle.read();
prices[index] = reportedPrice.value;
(Decimal.D256 memory otherPrice, bool otherValid) = otherOracle.read();
@@ -124,12 +118,7 @@ contract BalancerPool2Lens is IPCVDepositBalances {
return (reserves, reserves);
}
if (feiInPair) {
- uint256 otherReserves = _getIdealReserves(
- balances,
- prices,
- weights,
- j
- );
+ uint256 otherReserves = _getIdealReserves(balances, prices, weights, j);
return (reserves, otherReserves);
}
return (reserves, 0);
@@ -161,18 +150,9 @@ contract BalancerPool2Lens is IPCVDepositBalances {
uint256 one = Constants.ETH_GRANULARITY;
- uint256 reservesScaled = one.mulPow(
- balances[i],
- weights[i],
- Constants.ETH_DECIMALS
- );
- uint256 multiplier = (weights[i] * prices[j] * balances[j]) /
- (prices[i] * weights[j]);
-
- reserves = reservesScaled.mulPow(
- multiplier,
- weights[j],
- Constants.ETH_DECIMALS
- );
+ uint256 reservesScaled = one.mulPow(balances[i], weights[i], Constants.ETH_DECIMALS);
+ uint256 multiplier = (weights[i] * prices[j] * balances[j]) / (prices[i] * weights[j]);
+
+ reserves = reservesScaled.mulPow(multiplier, weights[j], Constants.ETH_DECIMALS);
}
}
diff --git a/contracts/pcv/balancer/IBasePool.sol b/contracts/pcv/balancer/IBasePool.sol
index bb259fd7a..c3875f568 100644
--- a/contracts/pcv/balancer/IBasePool.sol
+++ b/contracts/pcv/balancer/IBasePool.sol
@@ -13,10 +13,7 @@ interface IBasePool is IERC20 {
function setSwapFeePercentage(uint256 swapFeePercentage) external;
- function setAssetManagerPoolConfig(
- IERC20 token,
- IAssetManager.PoolConfig memory poolConfig
- ) external;
+ function setAssetManagerPoolConfig(IERC20 token, IAssetManager.PoolConfig memory poolConfig) external;
function setPaused(bool paused) external;
diff --git a/contracts/pcv/balancer/IVault.sol b/contracts/pcv/balancer/IVault.sol
index 2f4ecfed3..275ad88d8 100644
--- a/contracts/pcv/balancer/IVault.sol
+++ b/contracts/pcv/balancer/IVault.sol
@@ -66,10 +66,7 @@ interface IVault {
/**
* @dev Returns true if `user` has approved `relayer` to act as a relayer for them.
*/
- function hasApprovedRelayer(address user, address relayer)
- external
- view
- returns (bool);
+ function hasApprovedRelayer(address user, address relayer) external view returns (bool);
/**
* @dev Allows `relayer` to act as a relayer for `sender` if `approved` is true, and disallows it otherwise.
@@ -85,11 +82,7 @@ interface IVault {
/**
* @dev Emitted every time a relayer is approved or disapproved by `setRelayerApproval`.
*/
- event RelayerApprovalChanged(
- address indexed relayer,
- address indexed sender,
- bool approved
- );
+ event RelayerApprovalChanged(address indexed relayer, address indexed sender, bool approved);
// Internal Balance
//
@@ -104,10 +97,7 @@ interface IVault {
/**
* @dev Returns `user`'s Internal Balance for a set of tokens.
*/
- function getInternalBalance(address user, IERC20[] memory tokens)
- external
- view
- returns (uint256[] memory);
+ function getInternalBalance(address user, IERC20[] memory tokens) external view returns (uint256[] memory);
/**
* @dev Performs a set of user balance operations, which involve Internal Balance (deposit, withdraw or transfer)
@@ -182,21 +172,12 @@ interface IVault {
* Because Internal Balance works exclusively with ERC20 tokens, ETH deposits and withdrawals will use the WETH
* address.
*/
- event InternalBalanceChanged(
- address indexed user,
- IERC20 indexed token,
- int256 delta
- );
+ event InternalBalanceChanged(address indexed user, IERC20 indexed token, int256 delta);
/**
* @dev Emitted when a user's Vault ERC20 allowance is used by the Vault to transfer tokens to an external account.
*/
- event ExternalBalanceTransfer(
- IERC20 indexed token,
- address indexed sender,
- address recipient,
- uint256 amount
- );
+ event ExternalBalanceTransfer(IERC20 indexed token, address indexed sender, address recipient, uint256 amount);
// Pools
//
@@ -234,26 +215,17 @@ interface IVault {
*
* Emits a `PoolRegistered` event.
*/
- function registerPool(PoolSpecialization specialization)
- external
- returns (bytes32);
+ function registerPool(PoolSpecialization specialization) external returns (bytes32);
/**
* @dev Emitted when a Pool is registered by calling `registerPool`.
*/
- event PoolRegistered(
- bytes32 indexed poolId,
- address indexed poolAddress,
- PoolSpecialization specialization
- );
+ event PoolRegistered(bytes32 indexed poolId, address indexed poolAddress, PoolSpecialization specialization);
/**
* @dev Returns a Pool's contract address and specialization setting.
*/
- function getPool(bytes32 poolId)
- external
- view
- returns (address, PoolSpecialization);
+ function getPool(bytes32 poolId) external view returns (address, PoolSpecialization);
/**
* @dev Registers `tokens` for the `poolId` Pool. Must be called by the Pool's contract.
@@ -286,11 +258,7 @@ interface IVault {
/**
* @dev Emitted when a Pool registers tokens by calling `registerTokens`.
*/
- event TokensRegistered(
- bytes32 indexed poolId,
- IERC20[] tokens,
- address[] assetManagers
- );
+ event TokensRegistered(bytes32 indexed poolId, IERC20[] tokens, address[] assetManagers);
/**
* @dev Deregisters `tokens` for the `poolId` Pool. Must be called by the Pool's contract.
diff --git a/contracts/pcv/balancer/manager/BaseBalancerPoolManager.sol b/contracts/pcv/balancer/manager/BaseBalancerPoolManager.sol
index 642bf0bd8..806f94a3b 100644
--- a/contracts/pcv/balancer/manager/BaseBalancerPoolManager.sol
+++ b/contracts/pcv/balancer/manager/BaseBalancerPoolManager.sol
@@ -12,19 +12,11 @@ abstract contract BaseBalancerPoolManager is IBaseBalancerPoolManager, CoreRef {
_setContractAdminRole(keccak256("BALANCER_MANAGER_ADMIN_ROLE"));
}
- function setSwapFee(IBasePool pool, uint256 swapFee)
- public
- override
- onlyGovernorOrAdmin
- {
+ function setSwapFee(IBasePool pool, uint256 swapFee) public override onlyGovernorOrAdmin {
pool.setSwapFeePercentage(swapFee);
}
- function setPaused(IBasePool pool, bool paused)
- public
- override
- onlyGovernorOrAdmin
- {
+ function setPaused(IBasePool pool, bool paused) public override onlyGovernorOrAdmin {
pool.setPaused(paused);
}
diff --git a/contracts/pcv/balancer/manager/IWeightedBalancerPoolManager.sol b/contracts/pcv/balancer/manager/IWeightedBalancerPoolManager.sol
index 7beca910e..c0ce58201 100644
--- a/contracts/pcv/balancer/manager/IWeightedBalancerPoolManager.sol
+++ b/contracts/pcv/balancer/manager/IWeightedBalancerPoolManager.sol
@@ -15,8 +15,5 @@ interface IWeightedBalancerPoolManager is IBaseBalancerPoolManager {
uint256[] memory endWeights
) external;
- function withdrawCollectedManagementFees(
- IWeightedPool pool,
- address recipient
- ) external;
+ function withdrawCollectedManagementFees(IWeightedPool pool, address recipient) external;
}
diff --git a/contracts/pcv/balancer/manager/WeightedBalancerPoolManager.sol b/contracts/pcv/balancer/manager/WeightedBalancerPoolManager.sol
index 7ac8c4abc..d552f76c8 100644
--- a/contracts/pcv/balancer/manager/WeightedBalancerPoolManager.sol
+++ b/contracts/pcv/balancer/manager/WeightedBalancerPoolManager.sol
@@ -7,17 +7,10 @@ import "./BaseBalancerPoolManager.sol";
/// @title WeightedBalancerPoolManager
/// @notice an abstract utility class for a contract that manages a Balancer WeightedPool (including LBP)
/// exposes the governable methods to Fei Governors or admins
-abstract contract WeightedBalancerPoolManager is
- IWeightedBalancerPoolManager,
- BaseBalancerPoolManager
-{
+abstract contract WeightedBalancerPoolManager is IWeightedBalancerPoolManager, BaseBalancerPoolManager {
constructor() BaseBalancerPoolManager() {}
- function setSwapEnabled(IWeightedPool pool, bool swapEnabled)
- public
- override
- onlyGovernorOrAdmin
- {
+ function setSwapEnabled(IWeightedPool pool, bool swapEnabled) public override onlyGovernorOrAdmin {
pool.setSwapEnabled(swapEnabled);
}
@@ -39,10 +32,11 @@ abstract contract WeightedBalancerPoolManager is
pool.updateWeightsGradually(startTime, endTime, endWeights);
}
- function withdrawCollectedManagementFees(
- IWeightedPool pool,
- address recipient
- ) public override onlyGovernorOrAdmin {
+ function withdrawCollectedManagementFees(IWeightedPool pool, address recipient)
+ public
+ override
+ onlyGovernorOrAdmin
+ {
pool.withdrawCollectedManagementFees(recipient);
}
}
diff --git a/contracts/pcv/balancer/riskcurve/IRiskCurve.sol b/contracts/pcv/balancer/riskcurve/IRiskCurve.sol
index f364ce61e..a717333ac 100644
--- a/contracts/pcv/balancer/riskcurve/IRiskCurve.sol
+++ b/contracts/pcv/balancer/riskcurve/IRiskCurve.sol
@@ -37,32 +37,20 @@ interface IRiskCurve {
function getCurrentLeverage() external view returns (uint256);
/// @notice return the balancer weight of an asset at a given leverage
- function getAssetWeight(address asset, uint256 leverage)
- external
- view
- returns (uint256);
+ function getAssetWeight(address asset, uint256 leverage) external view returns (uint256);
/// @notice return the set of assets and their corresponding weights at a given leverage
- function getWeights(uint256 leverage)
- external
- view
- returns (address[] memory, uint256[] memory);
+ function getWeights(uint256 leverage) external view returns (address[] memory, uint256[] memory);
/// @notice return the target weight for an asset at current leverage
- function getCurrentTargetAssetWeight(address asset)
- external
- view
- returns (uint256);
+ function getCurrentTargetAssetWeight(address asset) external view returns (uint256);
/// @notice return the set of assets and their corresponding weights at a current leverage
- function getCurrentTargetWeights()
- external
- view
- returns (address[] memory, uint256[] memory);
+ function getCurrentTargetWeights() external view returns (address[] memory, uint256[] memory);
/// @notice get the number of seconds to transition weights given the old and new weights
- function getWeightChangeTime(
- uint256[] memory oldWeights,
- uint256[] memory newWeights
- ) external view returns (uint256);
+ function getWeightChangeTime(uint256[] memory oldWeights, uint256[] memory newWeights)
+ external
+ view
+ returns (uint256);
}
diff --git a/contracts/pcv/compound/CompoundPCVDepositBase.sol b/contracts/pcv/compound/CompoundPCVDepositBase.sol
index 2de8147fe..2b22b130d 100644
--- a/contracts/pcv/compound/CompoundPCVDepositBase.sol
+++ b/contracts/pcv/compound/CompoundPCVDepositBase.sol
@@ -35,16 +35,8 @@ abstract contract CompoundPCVDepositBase is PCVDeposit {
/// @notice withdraw tokens from the PCV allocation
/// @param amountUnderlying of tokens withdrawn
/// @param to the address to send PCV to
- function withdraw(address to, uint256 amountUnderlying)
- external
- override
- onlyPCVController
- whenNotPaused
- {
- require(
- cToken.redeemUnderlying(amountUnderlying) == 0,
- "CompoundPCVDeposit: redeem error"
- );
+ function withdraw(address to, uint256 amountUnderlying) external override onlyPCVController whenNotPaused {
+ require(cToken.redeemUnderlying(amountUnderlying) == 0, "CompoundPCVDeposit: redeem error");
_transferUnderlying(to, amountUnderlying);
emit Withdrawal(msg.sender, to, amountUnderlying);
}
@@ -53,9 +45,7 @@ abstract contract CompoundPCVDepositBase is PCVDeposit {
/// @dev returns stale values from Compound if the market hasn't been updated
function balance() public view override returns (uint256) {
uint256 exchangeRate = cToken.exchangeRateStored();
- return
- (cToken.balanceOf(address(this)) * exchangeRate) /
- EXCHANGE_RATE_SCALE;
+ return (cToken.balanceOf(address(this)) * exchangeRate) / EXCHANGE_RATE_SCALE;
}
function _transferUnderlying(address to, uint256 amount) internal virtual;
diff --git a/contracts/pcv/compound/ERC20CompoundPCVDeposit.sol b/contracts/pcv/compound/ERC20CompoundPCVDeposit.sol
index 542e675ff..808043269 100644
--- a/contracts/pcv/compound/ERC20CompoundPCVDeposit.sol
+++ b/contracts/pcv/compound/ERC20CompoundPCVDeposit.sol
@@ -18,9 +18,7 @@ contract ERC20CompoundPCVDeposit is CompoundPCVDepositBase {
/// @notice Compound ERC20 PCV Deposit constructor
/// @param _core Fei Core for reference
/// @param _cToken Compound cToken to deposit
- constructor(address _core, address _cToken)
- CompoundPCVDepositBase(_core, _cToken)
- {
+ constructor(address _core, address _cToken) CompoundPCVDepositBase(_core, _cToken) {
token = IERC20(CErc20(_cToken).underlying());
}
@@ -31,10 +29,7 @@ contract ERC20CompoundPCVDeposit is CompoundPCVDepositBase {
token.approve(address(cToken), amount);
// Compound returns non-zero when there is an error
- require(
- CErc20(address(cToken)).mint(amount) == 0,
- "ERC20CompoundPCVDeposit: deposit error"
- );
+ require(CErc20(address(cToken)).mint(amount) == 0, "ERC20CompoundPCVDeposit: deposit error");
emit Deposit(msg.sender, amount);
}
diff --git a/contracts/pcv/compound/EthCompoundPCVDeposit.sol b/contracts/pcv/compound/EthCompoundPCVDeposit.sol
index 0ed2962e6..fbb4ab200 100644
--- a/contracts/pcv/compound/EthCompoundPCVDeposit.sol
+++ b/contracts/pcv/compound/EthCompoundPCVDeposit.sol
@@ -14,9 +14,7 @@ contract EthCompoundPCVDeposit is CompoundPCVDepositBase {
/// @notice Compound ETH PCV Deposit constructor
/// @param _core Fei Core for reference
/// @param _cToken Compound cToken to deposit
- constructor(address _core, address _cToken)
- CompoundPCVDepositBase(_core, _cToken)
- {
+ constructor(address _core, address _cToken) CompoundPCVDepositBase(_core, _cToken) {
// require(cToken.isCEther(), "EthCompoundPCVDeposit: Not a CEther");
}
diff --git a/contracts/pcv/convex/ConvexPCVDeposit.sol b/contracts/pcv/convex/ConvexPCVDeposit.sol
index fa6aa6d15..9918ef6b7 100644
--- a/contracts/pcv/convex/ConvexPCVDeposit.sol
+++ b/contracts/pcv/convex/ConvexPCVDeposit.sol
@@ -77,12 +77,7 @@ contract ConvexPCVDeposit is PCVDeposit {
/// @notice unstake LP tokens from Convex Rewards, and withdraw Curve
/// LP tokens from Convex
- function withdraw(address to, uint256 amountLpTokens)
- public
- override
- onlyPCVController
- whenNotPaused
- {
+ function withdraw(address to, uint256 amountLpTokens) public override onlyPCVController whenNotPaused {
convexRewards.withdrawAndUnwrap(amountLpTokens, false);
curvePool.transfer(to, amountLpTokens);
}
@@ -108,21 +103,14 @@ contract ConvexPCVDeposit is PCVDeposit {
balances[i] = poolToken.balanceOf(address(curvePool));
totalBalances += balances[i];
}
- usdBalance -=
- (usdBalance * balances[feiIndexInPool]) /
- totalBalances;
+ usdBalance -= (usdBalance * balances[feiIndexInPool]) / totalBalances;
}
return usdBalance;
}
/// @notice returns the resistant balance in USD and FEI held by the contract
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256 resistantBalance, uint256 resistantFei)
- {
+ function resistantBalanceAndFei() public view override returns (uint256 resistantBalance, uint256 resistantFei) {
uint256 lpTokensStaked = convexRewards.balanceOf(address(this));
uint256 virtualPrice = curvePool.get_virtual_price();
resistantBalance = (lpTokensStaked * virtualPrice) / 1e18;
diff --git a/contracts/pcv/convex/IConvexBaseRewardPool.sol b/contracts/pcv/convex/IConvexBaseRewardPool.sol
index 4aee4e34f..428461a27 100644
--- a/contracts/pcv/convex/IConvexBaseRewardPool.sol
+++ b/contracts/pcv/convex/IConvexBaseRewardPool.sol
@@ -30,10 +30,7 @@ interface IConvexBaseRewardPool {
function newRewardRatio() external view returns (uint256);
- function userRewardPerTokenPaid(address user)
- external
- view
- returns (uint256);
+ function userRewardPerTokenPaid(address user) external view returns (uint256);
function rewards(address user) external view returns (uint256);
@@ -65,15 +62,11 @@ interface IConvexBaseRewardPool {
function withdrawAll(bool claim) external;
- function withdrawAndUnwrap(uint256 amount, bool claim)
- external
- returns (bool);
+ function withdrawAndUnwrap(uint256 amount, bool claim) external returns (bool);
function withdrawAllAndUnwrap(bool claim) external;
- function getReward(address _account, bool _claimExtras)
- external
- returns (bool);
+ function getReward(address _account, bool _claimExtras) external returns (bool);
function getReward() external returns (bool);
diff --git a/contracts/pcv/convex/VotiumBriber.sol b/contracts/pcv/convex/VotiumBriber.sol
index 0911dec02..a58b74d99 100644
--- a/contracts/pcv/convex/VotiumBriber.sol
+++ b/contracts/pcv/convex/VotiumBriber.sol
@@ -43,11 +43,7 @@ contract VotiumBriber is CoreRef {
/// the _proposal ID, if _choiceIndex is out of range, or of block.timestamp
/// is after the deadline for bribing (usually 6 hours before Convex snapshot
/// vote ends).
- function bribe(bytes32 _proposal, uint256 _choiceIndex)
- public
- onlyGovernorOrAdmin
- whenNotPaused
- {
+ function bribe(bytes32 _proposal, uint256 _choiceIndex) public onlyGovernorOrAdmin whenNotPaused {
// fetch the current number of TRIBE
uint256 tokenAmount = token.balanceOf(address(this));
require(tokenAmount > 0, "VotiumBriber: no tokens to bribe");
diff --git a/contracts/pcv/curve/CurveGaugeLens.sol b/contracts/pcv/curve/CurveGaugeLens.sol
index 56c6cd5ff..26bc77f47 100644
--- a/contracts/pcv/curve/CurveGaugeLens.sol
+++ b/contracts/pcv/curve/CurveGaugeLens.sol
@@ -39,12 +39,7 @@ contract CurveGaugeLens is IPCVDepositBalances {
/// underlying amounts of XYZ and FEI tokens held within the LP tokens.
/// This lens can be coupled with another lens in order to compute the
/// underlying amounts of FEI and XYZ held inside the LP tokens.
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
uint256 stakedBalance = balance();
if (balanceReportedIn == FEI) {
return (stakedBalance, stakedBalance);
diff --git a/contracts/pcv/curve/CurvePCVDepositPlainPool.sol b/contracts/pcv/curve/CurvePCVDepositPlainPool.sol
index e124bc8a1..bcc5945cd 100644
--- a/contracts/pcv/curve/CurvePCVDepositPlainPool.sol
+++ b/contracts/pcv/curve/CurvePCVDepositPlainPool.sol
@@ -73,16 +73,12 @@ contract CurvePCVDepositPlainPool is PCVDeposit {
}
// require non-empty deposit
- require(
- totalBalances > 0,
- "CurvePCVDepositPlainPool: cannot deposit 0"
- );
+ require(totalBalances > 0, "CurvePCVDepositPlainPool: cannot deposit 0");
// set maximum allowed slippage
uint256 virtualPrice = curvePool.get_virtual_price();
uint256 minLpOut = (totalBalances * 1e18) / virtualPrice;
- uint256 lpSlippageAccepted = (minLpOut * maxSlippageBasisPoints) /
- Constants.BASIS_POINTS_GRANULARITY;
+ uint256 lpSlippageAccepted = (minLpOut * maxSlippageBasisPoints) / Constants.BASIS_POINTS_GRANULARITY;
minLpOut -= lpSlippageAccepted;
// approval
@@ -101,12 +97,7 @@ contract CurvePCVDepositPlainPool is PCVDeposit {
/// If FEI is in the pool, pull FEI out of the pool. If FEI is not in the pool,
/// exit in the first token of the pool. To exit without chosing a specific
/// token, and minimize slippage, use exitPool().
- function withdraw(address to, uint256 amountUnderlying)
- public
- override
- onlyPCVController
- whenNotPaused
- {
+ function withdraw(address to, uint256 amountUnderlying) public override onlyPCVController whenNotPaused {
withdrawOneCoin(feiIndexInPool, to, amountUnderlying);
}
@@ -121,14 +112,9 @@ contract CurvePCVDepositPlainPool is PCVDeposit {
// burn LP tokens to get one token out
uint256 virtualPrice = curvePool.get_virtual_price();
uint256 maxLpUsed = (amountUnderlying * 1e18) / virtualPrice;
- uint256 lpSlippageAccepted = (maxLpUsed * maxSlippageBasisPoints) /
- Constants.BASIS_POINTS_GRANULARITY;
+ uint256 lpSlippageAccepted = (maxLpUsed * maxSlippageBasisPoints) / Constants.BASIS_POINTS_GRANULARITY;
maxLpUsed += lpSlippageAccepted;
- curvePool.remove_liquidity_one_coin(
- maxLpUsed,
- int128(int256(coinIndexInPool)),
- amountUnderlying
- );
+ curvePool.remove_liquidity_one_coin(maxLpUsed, int128(int256(coinIndexInPool)), amountUnderlying);
// send token to destination
IERC20(curvePool.coins(coinIndexInPool)).transfer(to, amountUnderlying);
@@ -161,21 +147,14 @@ contract CurvePCVDepositPlainPool is PCVDeposit {
balances[i] = poolToken.balanceOf(address(curvePool));
totalBalances += balances[i];
}
- usdBalance -=
- (usdBalance * balances[feiIndexInPool]) /
- totalBalances;
+ usdBalance -= (usdBalance * balances[feiIndexInPool]) / totalBalances;
}
return usdBalance;
}
/// @notice returns the resistant balance in USD and FEI held by the contract
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256 resistantBalance, uint256 resistantFei)
- {
+ function resistantBalanceAndFei() public view override returns (uint256 resistantBalance, uint256 resistantFei) {
uint256 lpTokens = curvePool.balanceOf(address(this));
uint256 virtualPrice = curvePool.get_virtual_price();
resistantBalance = (lpTokens * virtualPrice) / 1e18;
diff --git a/contracts/pcv/curve/ICurvePool.sol b/contracts/pcv/curve/ICurvePool.sol
index f33d90404..059b13e93 100644
--- a/contracts/pcv/curve/ICurvePool.sol
+++ b/contracts/pcv/curve/ICurvePool.sol
@@ -78,10 +78,7 @@ interface ICurvePool {
uint256 min_dy
) external;
- function calc_withdraw_one_coin(uint256 _token_amount, int128 i)
- external
- view
- returns (uint256);
+ function calc_withdraw_one_coin(uint256 _token_amount, int128 i) external view returns (uint256);
function remove_liquidity_one_coin(
uint256 _token_amount,
diff --git a/contracts/pcv/curve/ICurveStableSwap3.sol b/contracts/pcv/curve/ICurveStableSwap3.sol
index d6206a682..905a29d94 100644
--- a/contracts/pcv/curve/ICurveStableSwap3.sol
+++ b/contracts/pcv/curve/ICurveStableSwap3.sol
@@ -18,19 +18,11 @@ interface ICurveStableSwap3 is ICurvePool {
function get_balances() external view returns (uint256[3] memory);
// 3Pool
- function calc_token_amount(uint256[3] memory amounts, bool deposit)
- external
- view
- returns (uint256);
+ function calc_token_amount(uint256[3] memory amounts, bool deposit) external view returns (uint256);
- function add_liquidity(uint256[3] memory amounts, uint256 min_mint_amount)
- external;
+ function add_liquidity(uint256[3] memory amounts, uint256 min_mint_amount) external;
- function remove_liquidity(uint256 _amount, uint256[3] memory min_amounts)
- external;
+ function remove_liquidity(uint256 _amount, uint256[3] memory min_amounts) external;
- function remove_liquidity_imbalance(
- uint256[3] memory amounts,
- uint256 max_burn_amount
- ) external;
+ function remove_liquidity_imbalance(uint256[3] memory amounts, uint256 max_burn_amount) external;
}
diff --git a/contracts/pcv/kashi/KashiPCVRedeemer.sol b/contracts/pcv/kashi/KashiPCVRedeemer.sol
index 76b76dfe3..f4b1970ef 100644
--- a/contracts/pcv/kashi/KashiPCVRedeemer.sol
+++ b/contracts/pcv/kashi/KashiPCVRedeemer.sol
@@ -4,9 +4,7 @@ pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
interface IKashi {
- function removeAsset(address to, uint256 fraction)
- external
- returns (uint256 share);
+ function removeAsset(address to, uint256 fraction) external returns (uint256 share);
}
/// @title base class for a claiming Kashi pair tokens
diff --git a/contracts/pcv/lido/EthLidoPCVDeposit.sol b/contracts/pcv/lido/EthLidoPCVDeposit.sol
index bbdbee51f..b8ccc73fb 100644
--- a/contracts/pcv/lido/EthLidoPCVDeposit.sol
+++ b/contracts/pcv/lido/EthLidoPCVDeposit.sol
@@ -18,25 +18,15 @@ interface ILido {
function sharesOf(address _account) external view returns (uint256);
- function getSharesByPooledEth(uint256 _ethAmount)
- external
- view
- returns (uint256);
+ function getSharesByPooledEth(uint256 _ethAmount) external view returns (uint256);
- function getPooledEthByShares(uint256 _sharesAmount)
- external
- view
- returns (uint256);
+ function getPooledEthByShares(uint256 _sharesAmount) external view returns (uint256);
function getFee() external view returns (uint256);
- function increaseAllowance(address _spender, uint256 _addedValue)
- external
- returns (bool);
+ function increaseAllowance(address _spender, uint256 _addedValue) external returns (bool);
- function decreaseAllowance(address _spender, uint256 _subtractedValue)
- external
- returns (bool);
+ function decreaseAllowance(address _spender, uint256 _subtractedValue) external returns (bool);
function submit(address referral) external payable returns (uint256);
}
@@ -122,9 +112,7 @@ contract EthLidoPCVDeposit is PCVDeposit {
IERC20(steth).approve(stableswap, amountIn);
// Perform swap
- actualAmountOut = IStableSwapSTETH(stableswap).exchange{
- value: amountIn
- }(
+ actualAmountOut = IStableSwapSTETH(stableswap).exchange{value: amountIn}(
_tokenOne == steth ? int128(1) : int128(0),
_tokenOne == steth ? int128(0) : int128(1),
amountIn,
@@ -148,13 +136,8 @@ contract EthLidoPCVDeposit is PCVDeposit {
Constants.BASIS_POINTS_GRANULARITY - maximumSlippageBasisPoints,
Constants.BASIS_POINTS_GRANULARITY
);
- uint256 minimumAcceptedAmountOut = maxSlippage
- .mul(amountIn)
- .asUint256();
- require(
- amountReceived >= minimumAcceptedAmountOut,
- "EthLidoPCVDeposit: not enough stETH received."
- );
+ uint256 minimumAcceptedAmountOut = maxSlippage.mul(amountIn).asUint256();
+ require(amountReceived >= minimumAcceptedAmountOut, "EthLidoPCVDeposit: not enough stETH received.");
emit Deposit(msg.sender, actualAmountOut);
}
@@ -166,12 +149,7 @@ contract EthLidoPCVDeposit is PCVDeposit {
/// of ETH out of the trade is less than the tolerated slippage.
/// @param to the destination of the withdrawn ETH
/// @param amountIn the number of stETH to withdraw.
- function withdraw(address to, uint256 amountIn)
- external
- override
- onlyPCVController
- whenNotPaused
- {
+ function withdraw(address to, uint256 amountIn) external override onlyPCVController whenNotPaused {
require(balance() >= amountIn, "EthLidoPCVDeposit: not enough stETH.");
// Compute the minimum accepted amount of ETH out of the trade, based
@@ -180,9 +158,7 @@ contract EthLidoPCVDeposit is PCVDeposit {
Constants.BASIS_POINTS_GRANULARITY - maximumSlippageBasisPoints,
Constants.BASIS_POINTS_GRANULARITY
);
- uint256 minimumAcceptedAmountOut = maxSlippage
- .mul(amountIn)
- .asUint256();
+ uint256 minimumAcceptedAmountOut = maxSlippage.mul(amountIn).asUint256();
// Swap stETH for ETH on the Curve pool
uint256 balanceBefore = address(this).balance;
@@ -198,18 +174,12 @@ contract EthLidoPCVDeposit is PCVDeposit {
// Check that we received enough stETH as an output of the trade
// This is enforced in this contract, after knowing the output of the trade,
// instead of the StableSwap pool's min_dy check.
- require(
- actualAmountOut >= minimumAcceptedAmountOut,
- "EthLidoPCVDeposit: slippage too high."
- );
+ require(actualAmountOut >= minimumAcceptedAmountOut, "EthLidoPCVDeposit: slippage too high.");
// Check the received amount
uint256 balanceAfter = address(this).balance;
uint256 amountReceived = balanceAfter - balanceBefore;
- require(
- amountReceived >= minimumAcceptedAmountOut,
- "EthLidoPCVDeposit: not enough ETH received."
- );
+ require(amountReceived >= minimumAcceptedAmountOut, "EthLidoPCVDeposit: not enough ETH received.");
// Transfer ETH to destination.
Address.sendValue(payable(to), actualAmountOut);
@@ -227,10 +197,7 @@ contract EthLidoPCVDeposit is PCVDeposit {
// =======================================================================
/// @notice Sets the maximum slippage vs 1:1 price accepted during withdraw.
/// @param _maximumSlippageBasisPoints the maximum slippage expressed in basis points (1/10_000)
- function setMaximumSlippage(uint256 _maximumSlippageBasisPoints)
- external
- onlyGovernorOrAdmin
- {
+ function setMaximumSlippage(uint256 _maximumSlippageBasisPoints) external onlyGovernorOrAdmin {
require(
_maximumSlippageBasisPoints <= Constants.BASIS_POINTS_GRANULARITY,
"EthLidoPCVDeposit: Exceeds bp granularity."
diff --git a/contracts/pcv/liquity/BAMMDeposit.sol b/contracts/pcv/liquity/BAMMDeposit.sol
index 13de5ef85..5cf7db136 100644
--- a/contracts/pcv/liquity/BAMMDeposit.sol
+++ b/contracts/pcv/liquity/BAMMDeposit.sol
@@ -13,8 +13,7 @@ contract BAMMDeposit is PCVDeposit {
using SafeERC20 for IERC20;
/// @notice B. Protocol BAMM address
- IBAMM public constant BAMM =
- IBAMM(0x0d3AbAA7E088C2c82f54B2f47613DA438ea8C598);
+ IBAMM public constant BAMM = IBAMM(0x0d3AbAA7E088C2c82f54B2f47613DA438ea8C598);
/// @notice Liquity Stability pool address
IStabilityPool public immutable stabilityPool = BAMM.SP();
@@ -35,15 +34,9 @@ contract BAMMDeposit is PCVDeposit {
}
/// @notice withdraw LUSD from B Protocol BAMM
- function withdraw(address to, uint256 amount)
- external
- override
- onlyPCVController
- {
+ function withdraw(address to, uint256 amount) external override onlyPCVController {
uint256 totalSupply = BAMM.totalSupply();
- uint256 lusdValue = stabilityPool.getCompoundedLUSDDeposit(
- address(BAMM)
- );
+ uint256 lusdValue = stabilityPool.getCompoundedLUSDDeposit(address(BAMM));
uint256 shares = ((amount * totalSupply) / lusdValue) + 1; // extra unit to prevent truncation errors
// Withdraw the LUSD from BAMM (also withdraws LQTY and dust ETH)
@@ -68,12 +61,8 @@ contract BAMMDeposit is PCVDeposit {
uint256 ethUsdValue = (ethBalance * eth2usdPrice) / PRECISION;
- uint256 bammLusdValue = stabilityPool.getCompoundedLUSDDeposit(
- address(BAMM)
- );
- return
- ((bammLusdValue + ethUsdValue) * BAMM.balanceOf(address(this))) /
- BAMM.totalSupply();
+ uint256 bammLusdValue = stabilityPool.getCompoundedLUSDDeposit(address(BAMM));
+ return ((bammLusdValue + ethUsdValue) * BAMM.balanceOf(address(this))) / BAMM.totalSupply();
}
function claimRewards() public {
diff --git a/contracts/pcv/liquity/IBAMM.sol b/contracts/pcv/liquity/IBAMM.sol
index f6321c50e..024fe70a0 100644
--- a/contracts/pcv/liquity/IBAMM.sol
+++ b/contracts/pcv/liquity/IBAMM.sol
@@ -12,10 +12,7 @@ interface IBAMM {
function fetchPrice() external view returns (uint256);
/// @notice returns amount of ETH received for an LUSD swap
- function getSwapEthAmount(uint256 lusdQty)
- external
- view
- returns (uint256 ethAmount, uint256 feeEthAmount);
+ function getSwapEthAmount(uint256 lusdQty) external view returns (uint256 ethAmount, uint256 feeEthAmount);
/// @notice LUSD token address
function LUSD() external view returns (IERC20);
diff --git a/contracts/pcv/liquity/IStabilityPool.sol b/contracts/pcv/liquity/IStabilityPool.sol
index 30eac9f51..22da500a0 100644
--- a/contracts/pcv/liquity/IStabilityPool.sol
+++ b/contracts/pcv/liquity/IStabilityPool.sol
@@ -3,13 +3,7 @@ pragma solidity ^0.8.4;
// Ref: https://github.com/backstop-protocol/dev/blob/main/packages/contracts/contracts/StabilityPool.sol
interface IStabilityPool {
- function getCompoundedLUSDDeposit(address holder)
- external
- view
- returns (uint256 lusdValue);
+ function getCompoundedLUSDDeposit(address holder) external view returns (uint256 lusdValue);
- function getDepositorETHGain(address holder)
- external
- view
- returns (uint256 ethValue);
+ function getDepositorETHGain(address holder) external view returns (uint256 ethValue);
}
diff --git a/contracts/pcv/tokemak/ERC20TokemakPCVDeposit.sol b/contracts/pcv/tokemak/ERC20TokemakPCVDeposit.sol
index 016d24123..54617c277 100644
--- a/contracts/pcv/tokemak/ERC20TokemakPCVDeposit.sol
+++ b/contracts/pcv/tokemak/ERC20TokemakPCVDeposit.sol
@@ -37,12 +37,7 @@ contract ERC20TokemakPCVDeposit is TokemakPCVDepositBase {
/// @notice withdraw tokens from the PCV allocation
/// @param amountUnderlying of tokens withdrawn
/// @param to the address to send PCV to
- function withdraw(address to, uint256 amountUnderlying)
- external
- override
- onlyPCVController
- whenNotPaused
- {
+ function withdraw(address to, uint256 amountUnderlying) external override onlyPCVController whenNotPaused {
ITokemakERC20Pool(pool).withdraw(amountUnderlying);
token.transfer(to, amountUnderlying);
diff --git a/contracts/pcv/tokemak/EthTokemakPCVDeposit.sol b/contracts/pcv/tokemak/EthTokemakPCVDeposit.sol
index 3b528e062..ea1988861 100644
--- a/contracts/pcv/tokemak/EthTokemakPCVDeposit.sol
+++ b/contracts/pcv/tokemak/EthTokemakPCVDeposit.sol
@@ -37,12 +37,7 @@ contract EthTokemakPCVDeposit is TokemakPCVDepositBase {
/// @notice withdraw tokens from the PCV allocation
/// @param amountUnderlying of tokens withdrawn
/// @param to the address to send PCV to
- function withdraw(address to, uint256 amountUnderlying)
- external
- override
- onlyPCVController
- whenNotPaused
- {
+ function withdraw(address to, uint256 amountUnderlying) external override onlyPCVController whenNotPaused {
ITokemakEthPool(pool).withdraw(amountUnderlying, true);
Address.sendValue(payable(to), amountUnderlying);
diff --git a/contracts/pcv/tokemak/TokemakPCVDepositBase.sol b/contracts/pcv/tokemak/TokemakPCVDepositBase.sol
index 76edd91f5..1b9b27bcf 100644
--- a/contracts/pcv/tokemak/TokemakPCVDepositBase.sol
+++ b/contracts/pcv/tokemak/TokemakPCVDepositBase.sol
@@ -32,22 +32,12 @@ interface ITokemakRewards {
/// @author Fei Protocol
abstract contract TokemakPCVDepositBase is PCVDeposit {
/// @notice event generated when rewards are claimed
- event ClaimRewards(
- address indexed _caller,
- address indexed _token,
- address indexed _to,
- uint256 _amount
- );
+ event ClaimRewards(address indexed _caller, address indexed _token, address indexed _to, uint256 _amount);
/// @notice event generated when a withdrawal is requested
- event RequestWithdrawal(
- address indexed _caller,
- address indexed _to,
- uint256 _amount
- );
+ event RequestWithdrawal(address indexed _caller, address indexed _to, uint256 _amount);
- address private constant TOKE_TOKEN_ADDRESS =
- address(0x2e9d63788249371f1DFC918a52f8d799F4a38C94);
+ address private constant TOKE_TOKEN_ADDRESS = address(0x2e9d63788249371f1DFC918a52f8d799F4a38C94);
/// @notice the tokemak pool to deposit in
address public immutable pool;
@@ -89,11 +79,7 @@ abstract contract TokemakPCVDepositBase is PCVDeposit {
/// @dev note that withdraw() calls will revert if this function has not been
/// called before.
/// @param amountUnderlying of tokens to withdraw in a subsequent withdraw() call.
- function requestWithdrawal(uint256 amountUnderlying)
- external
- onlyGovernorOrAdmin
- whenNotPaused
- {
+ function requestWithdrawal(uint256 amountUnderlying) external onlyGovernorOrAdmin whenNotPaused {
ITokemakPool(pool).requestWithdrawal(amountUnderlying);
emit RequestWithdrawal(msg.sender, address(this), amountUnderlying);
@@ -127,11 +113,6 @@ abstract contract TokemakPCVDepositBase is PCVDeposit {
ITokemakRewards(rewards).claim(recipient, v, r, s);
- emit ClaimRewards(
- msg.sender,
- address(TOKE_TOKEN_ADDRESS),
- address(this),
- amount
- );
+ emit ClaimRewards(msg.sender, address(TOKE_TOKEN_ADDRESS), address(this), amount);
}
}
diff --git a/contracts/pcv/uniswap/IUniswapPCVDeposit.sol b/contracts/pcv/uniswap/IUniswapPCVDeposit.sol
index 145c0070d..8c8cad2fe 100644
--- a/contracts/pcv/uniswap/IUniswapPCVDeposit.sol
+++ b/contracts/pcv/uniswap/IUniswapPCVDeposit.sol
@@ -8,10 +8,7 @@ import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";
interface IUniswapPCVDeposit {
// ----------- Events -----------
- event MaxBasisPointsFromPegLPUpdate(
- uint256 oldMaxBasisPointsFromPegLP,
- uint256 newMaxBasisPointsFromPegLP
- );
+ event MaxBasisPointsFromPegLPUpdate(uint256 oldMaxBasisPointsFromPegLP, uint256 newMaxBasisPointsFromPegLP);
// ----------- Governor only state changing api -----------
diff --git a/contracts/pcv/uniswap/UniswapLens.sol b/contracts/pcv/uniswap/UniswapLens.sol
index b1df7157f..ac8b1fd25 100644
--- a/contracts/pcv/uniswap/UniswapLens.sol
+++ b/contracts/pcv/uniswap/UniswapLens.sol
@@ -38,9 +38,7 @@ contract UniswapLens is IPCVDepositBalances, UniRef {
)
{
depositAddress = _depositAddress;
- IUniswapV2Pair pair = IUniswapV2Pair(
- IPCVDepositBalances(_depositAddress).balanceReportedIn()
- );
+ IUniswapV2Pair pair = IUniswapV2Pair(IPCVDepositBalances(_depositAddress).balanceReportedIn());
address token0 = pair.token0();
address token1 = pair.token1();
feiIsToken0 = token0 == FEI;
@@ -52,12 +50,7 @@ contract UniswapLens is IPCVDepositBalances, UniRef {
return _ratioOwned().mul(tokenReserves).asUint256();
}
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
(uint256 reserve0, uint256 reserve1) = getReserves();
uint256 feiInPool = feiIsToken0 ? reserve0 : reserve1;
uint256 otherInPool = feiIsToken0 ? reserve1 : reserve0;
@@ -67,21 +60,11 @@ contract UniswapLens is IPCVDepositBalances, UniRef {
uint256 k = feiInPool * otherInPool;
// resistant other/fei in pool
- uint256 resistantOtherInPool = Decimal
- .one()
- .div(priceOfToken)
- .mul(k)
- .asUint256()
- .sqrt();
- uint256 resistantFeiInPool = Decimal
- .ratio(k, resistantOtherInPool)
- .asUint256();
+ uint256 resistantOtherInPool = Decimal.one().div(priceOfToken).mul(k).asUint256().sqrt();
+ uint256 resistantFeiInPool = Decimal.ratio(k, resistantOtherInPool).asUint256();
Decimal.D256 memory ratioOwned = _ratioOwned();
- return (
- ratioOwned.mul(resistantOtherInPool).asUint256(),
- ratioOwned.mul(resistantFeiInPool).asUint256()
- );
+ return (ratioOwned.mul(resistantOtherInPool).asUint256(), ratioOwned.mul(resistantFeiInPool).asUint256());
}
/// @notice ratio of all pair liquidity owned by the deposit contract
diff --git a/contracts/pcv/uniswap/UniswapPCVDeposit.sol b/contracts/pcv/uniswap/UniswapPCVDeposit.sol
index fd1c0022f..22866b0ec 100644
--- a/contracts/pcv/uniswap/UniswapPCVDeposit.sol
+++ b/contracts/pcv/uniswap/UniswapPCVDeposit.sol
@@ -71,30 +71,17 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
/// @param amountUnderlying of tokens withdrawn
/// @param to the address to send PCV to
/// @dev has rounding errors on amount to withdraw, can differ from the input "amountUnderlying"
- function withdraw(address to, uint256 amountUnderlying)
- external
- override
- onlyPCVController
- whenNotPaused
- {
+ function withdraw(address to, uint256 amountUnderlying) external override onlyPCVController whenNotPaused {
uint256 totalUnderlying = balance();
- require(
- amountUnderlying <= totalUnderlying,
- "UniswapPCVDeposit: Insufficient underlying"
- );
+ require(amountUnderlying <= totalUnderlying, "UniswapPCVDeposit: Insufficient underlying");
uint256 totalLiquidity = liquidityOwned();
// ratio of LP tokens needed to get out the desired amount
- Decimal.D256 memory ratioToWithdraw = Decimal.ratio(
- amountUnderlying,
- totalUnderlying
- );
+ Decimal.D256 memory ratioToWithdraw = Decimal.ratio(amountUnderlying, totalUnderlying);
// amount of LP tokens to withdraw factoring in ratio
- uint256 liquidityToWithdraw = ratioToWithdraw
- .mul(totalLiquidity)
- .asUint256();
+ uint256 liquidityToWithdraw = ratioToWithdraw.mul(totalLiquidity).asUint256();
// Withdraw liquidity from the pair and send to target
uint256 amountWithdrawn = _removeLiquidity(liquidityToWithdraw);
@@ -107,11 +94,7 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
/// @notice sets the new slippage parameter for depositing liquidity
/// @param _maxBasisPointsFromPegLP the new distance in basis points (1/10000) from peg beyond which a liquidity provision will fail
- function setMaxBasisPointsFromPegLP(uint256 _maxBasisPointsFromPegLP)
- public
- override
- onlyGovernorOrAdmin
- {
+ function setMaxBasisPointsFromPegLP(uint256 _maxBasisPointsFromPegLP) public override onlyGovernorOrAdmin {
require(
_maxBasisPointsFromPegLP <= Constants.BASIS_POINTS_GRANULARITY,
"UniswapPCVDeposit: basis points from peg too high"
@@ -120,10 +103,7 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
uint256 oldMaxBasisPointsFromPegLP = maxBasisPointsFromPegLP;
maxBasisPointsFromPegLP = _maxBasisPointsFromPegLP;
- emit MaxBasisPointsFromPegLPUpdate(
- oldMaxBasisPointsFromPegLP,
- _maxBasisPointsFromPegLP
- );
+ emit MaxBasisPointsFromPegLPUpdate(oldMaxBasisPointsFromPegLP, _maxBasisPointsFromPegLP);
}
/// @notice set the new pair contract
@@ -163,12 +143,7 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
Finally scale the resistant reserves by the ratio owned by the contract
*/
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
(uint256 feiInPool, uint256 otherInPool) = getReserves();
Decimal.D256 memory priceOfToken = readOracle();
@@ -176,22 +151,12 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
uint256 k = feiInPool * otherInPool;
// resistant other/fei in pool
- uint256 resistantOtherInPool = Decimal
- .one()
- .div(priceOfToken)
- .mul(k)
- .asUint256()
- .sqrt();
+ uint256 resistantOtherInPool = Decimal.one().div(priceOfToken).mul(k).asUint256().sqrt();
- uint256 resistantFeiInPool = Decimal
- .ratio(k, resistantOtherInPool)
- .asUint256();
+ uint256 resistantFeiInPool = Decimal.ratio(k, resistantOtherInPool).asUint256();
Decimal.D256 memory ratioOwned = _ratioOwned();
- return (
- ratioOwned.mul(resistantOtherInPool).asUint256(),
- ratioOwned.mul(resistantFeiInPool).asUint256()
- );
+ return (ratioOwned.mul(resistantOtherInPool).asUint256(), ratioOwned.mul(resistantFeiInPool).asUint256());
}
/// @notice amount of pair liquidity owned by this contract
@@ -200,11 +165,7 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
return pair.balanceOf(address(this));
}
- function _removeLiquidity(uint256 liquidity)
- internal
- virtual
- returns (uint256)
- {
+ function _removeLiquidity(uint256 liquidity) internal virtual returns (uint256) {
uint256 endOfTime = type(uint256).max;
// No restrictions on withdrawal price
(, uint256 amountWithdrawn) = router.removeLiquidity(
@@ -219,10 +180,7 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
return amountWithdrawn;
}
- function _addLiquidity(uint256 tokenAmount, uint256 feiAmount)
- internal
- virtual
- {
+ function _addLiquidity(uint256 tokenAmount, uint256 feiAmount) internal virtual {
if (core().isMinter(address(this))) {
_mintFei(address(this), feiAmount);
}
@@ -244,9 +202,7 @@ contract UniswapPCVDeposit is IUniswapPCVDeposit, PCVDeposit, UniRef {
/// @notice used as slippage protection when adding liquidity to the pool
function _getMinLiquidity(uint256 amount) internal view returns (uint256) {
return
- (amount *
- (Constants.BASIS_POINTS_GRANULARITY -
- maxBasisPointsFromPegLP)) /
+ (amount * (Constants.BASIS_POINTS_GRANULARITY - maxBasisPointsFromPegLP)) /
Constants.BASIS_POINTS_GRANULARITY;
}
diff --git a/contracts/pcv/utils/DelayedPCVMover.sol b/contracts/pcv/utils/DelayedPCVMover.sol
index 36c418c49..51e58fce2 100644
--- a/contracts/pcv/utils/DelayedPCVMover.sol
+++ b/contracts/pcv/utils/DelayedPCVMover.sol
@@ -50,10 +50,7 @@ contract DelayedPCVMover is CoreRef {
/// PCV_CONTROLLER_ROLE role after a successful call.
function withdrawRatio() public whenNotPaused {
// Check that deadline has been reached
- require(
- block.timestamp >= deadline,
- "DelayedPCVMover: deadline not reached"
- );
+ require(block.timestamp >= deadline, "DelayedPCVMover: deadline not reached");
// Perform PCV movement
controller.withdrawRatio(deposit, target, basisPoints);
diff --git a/contracts/pcv/utils/ERC20Dripper.sol b/contracts/pcv/utils/ERC20Dripper.sol
index 44b11b8a5..64606a0c5 100644
--- a/contracts/pcv/utils/ERC20Dripper.sol
+++ b/contracts/pcv/utils/ERC20Dripper.sol
@@ -54,11 +54,7 @@ contract ERC20Dripper is PCVDeposit, Timed {
/// @notice withdraw tokens from the PCV allocation
/// @param amountUnderlying of tokens withdrawn
/// @param to the address to send PCV to
- function withdraw(address to, uint256 amountUnderlying)
- external
- override
- onlyPCVController
- {
+ function withdraw(address to, uint256 amountUnderlying) external override onlyPCVController {
_withdrawERC20(address(token), to, amountUnderlying);
}
diff --git a/contracts/pcv/utils/ERC20PCVDepositWrapper.sol b/contracts/pcv/utils/ERC20PCVDepositWrapper.sol
index f6f49ffd2..29329f55a 100644
--- a/contracts/pcv/utils/ERC20PCVDepositWrapper.sol
+++ b/contracts/pcv/utils/ERC20PCVDepositWrapper.sol
@@ -39,12 +39,7 @@ contract ERC20PCVDepositWrapper is IPCVDepositBalances {
}
/// @notice returns the resistant balance and FEI in the deposit
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
uint256 resistantBalance = balance();
uint256 reistantFei = isProtocolFeiDeposit ? resistantBalance : 0;
return (resistantBalance, reistantFei);
diff --git a/contracts/pcv/utils/ERC20Splitter.sol b/contracts/pcv/utils/ERC20Splitter.sol
index 5eef4a898..6a6a150b9 100644
--- a/contracts/pcv/utils/ERC20Splitter.sol
+++ b/contracts/pcv/utils/ERC20Splitter.sol
@@ -29,10 +29,7 @@ contract ERC20Splitter is PCVSplitter {
_allocate(token.balanceOf(address(this)));
}
- function _allocateSingle(uint256 amount, address pcvDeposit)
- internal
- override
- {
+ function _allocateSingle(uint256 amount, address pcvDeposit) internal override {
token.transfer(pcvDeposit, amount);
}
}
diff --git a/contracts/pcv/utils/IPCVDripController.sol b/contracts/pcv/utils/IPCVDripController.sol
index b77712108..8cf33572a 100644
--- a/contracts/pcv/utils/IPCVDripController.sol
+++ b/contracts/pcv/utils/IPCVDripController.sol
@@ -11,11 +11,7 @@ interface IPCVDripController {
event SourceUpdate(address indexed oldSource, address indexed newSource);
event TargetUpdate(address indexed oldTarget, address indexed newTarget);
event DripAmountUpdate(uint256 oldDripAmount, uint256 newDripAmount);
- event Dripped(
- address indexed source,
- address indexed target,
- uint256 amount
- );
+ event Dripped(address indexed source, address indexed target, uint256 amount);
// ----------- Governor only state changing api -----------
diff --git a/contracts/pcv/utils/NamedStaticPCVDepositWrapper.sol b/contracts/pcv/utils/NamedStaticPCVDepositWrapper.sol
index bd7cecb2c..3c107a788 100644
--- a/contracts/pcv/utils/NamedStaticPCVDepositWrapper.sol
+++ b/contracts/pcv/utils/NamedStaticPCVDepositWrapper.sol
@@ -16,12 +16,7 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
// -------------- Events ---------------
/// @notice event to update fei and usd balance
- event BalanceUpdate(
- uint256 oldBalance,
- uint256 newBalance,
- uint256 oldFEIBalance,
- uint256 newFEIBalance
- );
+ event BalanceUpdate(uint256 oldBalance, uint256 newBalance, uint256 oldFEIBalance, uint256 newFEIBalance);
/// @notice event to remove a deposit
event DepositRemoved(uint256 index);
@@ -50,9 +45,7 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
/// @notice the reported FEI balance to track protocol controlled FEI in these deposits
uint256 public feiReportBalance;
- constructor(address _core, DepositInfo[] memory newPCVDeposits)
- CoreRef(_core)
- {
+ constructor(address _core, DepositInfo[] memory newPCVDeposits) CoreRef(_core) {
// Uses oracle admin to share admin with CR oracle where this contract is used
_setContractAdminRole(keccak256("ORACLE_ADMIN_ROLE"));
@@ -79,12 +72,7 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
pcvDeposits.push(newPCVDeposit);
emit DepositAdded(pcvDeposits.length - 1, newPCVDeposit.depositName);
- emit BalanceUpdate(
- oldBalance,
- balance,
- oldFEIBalance,
- feiReportBalance
- );
+ emit BalanceUpdate(oldBalance, balance, oldFEIBalance, feiReportBalance);
}
/// @notice helper method to edit a PCV deposit
@@ -96,21 +84,14 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
uint256 underlyingTokenAmount,
address underlyingToken
) internal {
- require(
- index < pcvDeposits.length,
- "NamedStaticPCVDepositWrapper: cannot edit index out of bounds"
- );
+ require(index < pcvDeposits.length, "NamedStaticPCVDepositWrapper: cannot edit index out of bounds");
DepositInfo storage updatePCVDeposit = pcvDeposits[index];
uint256 oldBalance = balance;
uint256 oldFEIBalance = feiReportBalance;
- uint256 newBalance = oldBalance -
- updatePCVDeposit.usdAmount +
- usdAmount;
- uint256 newFeiReportBalance = oldFEIBalance -
- updatePCVDeposit.feiAmount +
- feiAmount;
+ uint256 newBalance = oldBalance - updatePCVDeposit.usdAmount + usdAmount;
+ uint256 newFeiReportBalance = oldFEIBalance - updatePCVDeposit.feiAmount + feiAmount;
balance = newBalance;
feiReportBalance = newFeiReportBalance;
@@ -122,20 +103,12 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
updatePCVDeposit.underlyingToken = underlyingToken;
emit DepositChanged(index, depositName);
- emit BalanceUpdate(
- oldBalance,
- newBalance,
- oldFEIBalance,
- newFeiReportBalance
- );
+ emit BalanceUpdate(oldBalance, newBalance, oldFEIBalance, newFeiReportBalance);
}
/// @notice helper method to delete a PCV deposit
function _removeDeposit(uint256 index) internal {
- require(
- index < pcvDeposits.length,
- "NamedStaticPCVDepositWrapper: cannot remove index out of bounds"
- );
+ require(index < pcvDeposits.length, "NamedStaticPCVDepositWrapper: cannot remove index out of bounds");
DepositInfo storage pcvDepositToRemove = pcvDeposits[index];
@@ -155,30 +128,19 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
balance -= depositBalance;
feiReportBalance -= feiDepositBalance;
- emit BalanceUpdate(
- oldBalance,
- balance,
- oldFeiReportBalance,
- feiReportBalance
- );
+ emit BalanceUpdate(oldBalance, balance, oldFeiReportBalance, feiReportBalance);
emit DepositRemoved(index);
}
// ----------- Governor only state changing api -----------
/// @notice function to add a deposit
- function addDeposit(DepositInfo calldata newPCVDeposit)
- external
- onlyGovernorOrAdmin
- {
+ function addDeposit(DepositInfo calldata newPCVDeposit) external onlyGovernorOrAdmin {
_addDeposit(newPCVDeposit);
}
/// @notice function to bulk add deposits
- function bulkAddDeposits(DepositInfo[] calldata newPCVDeposits)
- external
- onlyGovernorOrAdmin
- {
+ function bulkAddDeposits(DepositInfo[] calldata newPCVDeposits) external onlyGovernorOrAdmin {
for (uint256 i = 0; i < newPCVDeposits.length; i++) {
_addDeposit(newPCVDeposits[i]);
}
@@ -198,14 +160,7 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
string calldata depositName,
address underlying
) external onlyGovernorOrAdmin {
- _editDeposit(
- index,
- depositName,
- usdAmount,
- feiAmount,
- underlyingTokenAmount,
- underlying
- );
+ _editDeposit(index, depositName, usdAmount, feiAmount, underlyingTokenAmount, underlying);
}
// ----------- Getters -----------
@@ -216,12 +171,7 @@ contract NamedStaticPCVDepositWrapper is IPCVDepositBalances, CoreRef {
}
/// @notice returns the resistant balance and FEI in the deposit
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
return (balance, feiReportBalance);
}
diff --git a/contracts/pcv/utils/PCVDepositWrapper.sol b/contracts/pcv/utils/PCVDepositWrapper.sol
index 1d4a2bcea..e14893a27 100644
--- a/contracts/pcv/utils/PCVDepositWrapper.sol
+++ b/contracts/pcv/utils/PCVDepositWrapper.sol
@@ -36,12 +36,7 @@ contract PCVDepositWrapper is IPCVDepositBalances {
}
/// @notice returns the resistant balance and FEI in the deposit
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
uint256 resistantBalance = balance();
uint256 reistantFei = isProtocolFeiDeposit ? resistantBalance : 0;
return (resistantBalance, reistantFei);
diff --git a/contracts/pcv/utils/PCVDripController.sol b/contracts/pcv/utils/PCVDripController.sol
index 6a7dbaadc..b2c5a4a7e 100644
--- a/contracts/pcv/utils/PCVDripController.sol
+++ b/contracts/pcv/utils/PCVDripController.sol
@@ -8,12 +8,7 @@ import "../../utils/Timed.sol";
/// @title a PCV dripping controller
/// @author Fei Protocol
-contract PCVDripController is
- IPCVDripController,
- Timed,
- RateLimitedMinter,
- Incentivized
-{
+contract PCVDripController is IPCVDripController, Timed, RateLimitedMinter, Incentivized {
/// @notice source PCV deposit to withdraw from
IPCVDeposit public override source;
@@ -41,11 +36,7 @@ contract PCVDripController is
CoreRef(_core)
Timed(_frequency)
Incentivized(_incentiveAmount)
- RateLimitedMinter(
- _incentiveAmount / _frequency,
- _incentiveAmount,
- false
- )
+ RateLimitedMinter(_incentiveAmount / _frequency, _incentiveAmount, false)
{
target = _target;
emit TargetUpdate(address(0), address(_target));
@@ -78,10 +69,7 @@ contract PCVDripController is
/// @notice set the new PCV Deposit source
function setSource(IPCVDeposit newSource) external override onlyGovernor {
- require(
- address(newSource) != address(0),
- "PCVDripController: zero address"
- );
+ require(address(newSource) != address(0), "PCVDripController: zero address");
address oldSource = address(source);
source = newSource;
@@ -90,10 +78,7 @@ contract PCVDripController is
/// @notice set the new PCV Deposit target
function setTarget(IPCVDeposit newTarget) external override onlyGovernor {
- require(
- address(newTarget) != address(0),
- "PCVDripController: zero address"
- );
+ require(address(newTarget) != address(0), "PCVDripController: zero address");
address oldTarget = address(target);
target = newTarget;
@@ -101,11 +86,7 @@ contract PCVDripController is
}
/// @notice set the new drip amount
- function setDripAmount(uint256 newDripAmount)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setDripAmount(uint256 newDripAmount) external override onlyGovernorOrAdmin {
require(newDripAmount != 0, "PCVDripController: zero drip amount");
uint256 oldDripAmount = dripAmount;
@@ -118,10 +99,7 @@ contract PCVDripController is
return target.balance() < dripAmount;
}
- function _mintFei(address to, uint256 amountIn)
- internal
- override(CoreRef, RateLimitedMinter)
- {
+ function _mintFei(address to, uint256 amountIn) internal override(CoreRef, RateLimitedMinter) {
RateLimitedMinter._mintFei(to, amountIn);
}
}
diff --git a/contracts/pcv/utils/PCVSplitter.sol b/contracts/pcv/utils/PCVSplitter.sol
index 56d076c18..8617364d1 100644
--- a/contracts/pcv/utils/PCVSplitter.sol
+++ b/contracts/pcv/utils/PCVSplitter.sol
@@ -28,57 +28,36 @@ abstract contract PCVSplitter is CoreRef {
/// @notice make sure an allocation has matching lengths and totals the ALLOCATION_GRANULARITY
/// @param _pcvDeposits new list of pcv deposits to send to
/// @param _ratios new ratios corresponding to the PCV deposits
- function checkAllocation(
- address[] memory _pcvDeposits,
- uint256[] memory _ratios
- ) public pure {
- require(
- _pcvDeposits.length == _ratios.length,
- "PCVSplitter: PCV Deposits and ratios are different lengths"
- );
+ function checkAllocation(address[] memory _pcvDeposits, uint256[] memory _ratios) public pure {
+ require(_pcvDeposits.length == _ratios.length, "PCVSplitter: PCV Deposits and ratios are different lengths");
uint256 total;
for (uint256 i; i < _ratios.length; i++) {
total = total + _ratios[i];
}
- require(
- total == Constants.BASIS_POINTS_GRANULARITY,
- "PCVSplitter: ratios do not total 100%"
- );
+ require(total == Constants.BASIS_POINTS_GRANULARITY, "PCVSplitter: ratios do not total 100%");
}
/// @notice gets the pcvDeposits and ratios of the splitter
- function getAllocation()
- public
- view
- returns (address[] memory, uint256[] memory)
- {
+ function getAllocation() public view returns (address[] memory, uint256[] memory) {
return (pcvDeposits, ratios);
}
/// @notice sets the allocation of held PCV
- function setAllocation(
- address[] calldata _allocations,
- uint256[] calldata _ratios
- ) external onlyGovernorOrAdmin {
+ function setAllocation(address[] calldata _allocations, uint256[] calldata _ratios) external onlyGovernorOrAdmin {
_setAllocation(_allocations, _ratios);
}
/// @notice distribute funds to single PCV deposit
/// @param amount amount of funds to send
/// @param pcvDeposit the pcv deposit to send funds
- function _allocateSingle(uint256 amount, address pcvDeposit)
- internal
- virtual;
+ function _allocateSingle(uint256 amount, address pcvDeposit) internal virtual;
/// @notice sets a new allocation for the splitter
/// @param _pcvDeposits new list of pcv deposits to send to
/// @param _ratios new ratios corresponding to the PCV deposits. Must total ALLOCATION_GRANULARITY
- function _setAllocation(
- address[] memory _pcvDeposits,
- uint256[] memory _ratios
- ) internal {
+ function _setAllocation(address[] memory _pcvDeposits, uint256[] memory _ratios) internal {
address[] memory _oldPCVDeposits = pcvDeposits;
uint256[] memory _oldRatios = ratios;
@@ -87,12 +66,7 @@ abstract contract PCVSplitter is CoreRef {
pcvDeposits = _pcvDeposits;
ratios = _ratios;
- emit AllocationUpdate(
- _oldPCVDeposits,
- _oldRatios,
- _pcvDeposits,
- _ratios
- );
+ emit AllocationUpdate(_oldPCVDeposits, _oldRatios, _pcvDeposits, _ratios);
}
/// @notice distribute funds to all pcv deposits at specified allocation ratios
diff --git a/contracts/pcv/utils/RatioPCVControllerV2.sol b/contracts/pcv/utils/RatioPCVControllerV2.sol
index cc7b387bf..85b88c141 100644
--- a/contracts/pcv/utils/RatioPCVControllerV2.sol
+++ b/contracts/pcv/utils/RatioPCVControllerV2.sol
@@ -93,12 +93,9 @@ contract RatioPCVControllerV2 is CoreRef {
address to,
uint256 basisPoints
) public onlyPCVController whenNotPaused {
- require(
- basisPoints <= Constants.BASIS_POINTS_GRANULARITY,
- "RatioPCVController: basisPoints too high"
- );
- uint256 amount = (IERC20(token).balanceOf(address(pcvDeposit)) *
- basisPoints) / Constants.BASIS_POINTS_GRANULARITY;
+ require(basisPoints <= Constants.BASIS_POINTS_GRANULARITY, "RatioPCVController: basisPoints too high");
+ uint256 amount = (IERC20(token).balanceOf(address(pcvDeposit)) * basisPoints) /
+ Constants.BASIS_POINTS_GRANULARITY;
require(amount != 0, "RatioPCVController: no value to withdraw");
pcvDeposit.withdrawERC20(token, to, amount);
@@ -115,12 +112,8 @@ contract RatioPCVControllerV2 is CoreRef {
address to,
uint256 basisPoints
) public onlyPCVController whenNotPaused {
- require(
- basisPoints <= Constants.BASIS_POINTS_GRANULARITY,
- "RatioPCVController: basisPoints too high"
- );
- uint256 amount = (token.balanceOf(address(from)) * basisPoints) /
- Constants.BASIS_POINTS_GRANULARITY;
+ require(basisPoints <= Constants.BASIS_POINTS_GRANULARITY, "RatioPCVController: basisPoints too high");
+ uint256 amount = (token.balanceOf(address(from)) * basisPoints) / Constants.BASIS_POINTS_GRANULARITY;
require(amount != 0, "RatioPCVController: no value to transfer");
token.safeTransferFrom(from, to, amount);
@@ -144,35 +137,20 @@ contract RatioPCVControllerV2 is CoreRef {
/// @notice send ETH as WETH
/// @param to destination
- function transferETHAsWETH(address to)
- public
- onlyPCVController
- whenNotPaused
- {
+ function transferETHAsWETH(address to) public onlyPCVController whenNotPaused {
_transferETHAsWETH(to, address(this).balance);
}
/// @notice send WETH as ETH
/// @param to destination
- function transferWETHAsETH(address payable to)
- public
- onlyPCVController
- whenNotPaused
- {
- _transferWETHAsETH(
- to,
- IERC20(address(Constants.WETH)).balanceOf(address(this))
- );
+ function transferWETHAsETH(address payable to) public onlyPCVController whenNotPaused {
+ _transferWETHAsETH(to, IERC20(address(Constants.WETH)).balanceOf(address(this)));
}
/// @notice send away ERC20 held on this contract, to avoid having any stuck.
/// @param token sent
/// @param to destination
- function transferERC20(IERC20 token, address to)
- public
- onlyPCVController
- whenNotPaused
- {
+ function transferERC20(IERC20 token, address to) public onlyPCVController whenNotPaused {
uint256 amount = token.balanceOf(address(this));
token.safeTransfer(to, amount);
}
@@ -182,12 +160,8 @@ contract RatioPCVControllerV2 is CoreRef {
address to,
uint256 basisPoints
) internal returns (uint256) {
- require(
- basisPoints <= Constants.BASIS_POINTS_GRANULARITY,
- "RatioPCVController: basisPoints too high"
- );
- uint256 amount = (pcvDeposit.balance() * basisPoints) /
- Constants.BASIS_POINTS_GRANULARITY;
+ require(basisPoints <= Constants.BASIS_POINTS_GRANULARITY, "RatioPCVController: basisPoints too high");
+ uint256 amount = (pcvDeposit.balance() * basisPoints) / Constants.BASIS_POINTS_GRANULARITY;
require(amount != 0, "RatioPCVController: no value to withdraw");
pcvDeposit.withdraw(to, amount);
diff --git a/contracts/pcv/utils/WethPCVDeposit.sol b/contracts/pcv/utils/WethPCVDeposit.sol
index d52ce9491..abbf60a6e 100644
--- a/contracts/pcv/utils/WethPCVDeposit.sol
+++ b/contracts/pcv/utils/WethPCVDeposit.sol
@@ -28,11 +28,7 @@ abstract contract WethPCVDeposit is PCVDeposit {
/// @notice withdraw ETH from the contract
/// @param to address to send ETH
/// @param amountOut amount of ETH to send
- function withdrawETH(address payable to, uint256 amountOut)
- external
- override
- onlyPCVController
- {
+ function withdrawETH(address payable to, uint256 amountOut) external override onlyPCVController {
Constants.WETH.withdraw(amountOut);
Address.sendValue(to, amountOut);
emit WithdrawETH(msg.sender, to, amountOut);
diff --git a/contracts/peg/FixedPricePSM.sol b/contracts/peg/FixedPricePSM.sol
index ef3283c30..a4bd2c2a5 100644
--- a/contracts/peg/FixedPricePSM.sol
+++ b/contracts/peg/FixedPricePSM.sol
@@ -35,13 +35,7 @@ contract FixedPricePSM is PriceBoundPSM {
/// @notice helper function to get mint amount out based on current market prices
/// @dev will revert if price is outside of bounds and bounded PSM is being used
- function _getMintAmountOut(uint256 amountIn)
- internal
- view
- virtual
- override
- returns (uint256 amountFeiOut)
- {
+ function _getMintAmountOut(uint256 amountIn) internal view virtual override returns (uint256 amountFeiOut) {
Decimal.D256 memory price = readOracle();
_validatePriceRange(price);
@@ -55,13 +49,7 @@ contract FixedPricePSM is PriceBoundPSM {
/// @notice helper function to get redeem amount out based on current market prices
/// @dev will revert if price is outside of bounds and bounded PSM is being used
- function _getRedeemAmountOut(uint256 amountFeiIn)
- internal
- view
- virtual
- override
- returns (uint256 amountTokenOut)
- {
+ function _getRedeemAmountOut(uint256 amountFeiIn) internal view virtual override returns (uint256 amountTokenOut) {
Decimal.D256 memory price = readOracle();
_validatePriceRange(price);
diff --git a/contracts/peg/INonCustodialPSM.sol b/contracts/peg/INonCustodialPSM.sol
new file mode 100644
index 000000000..14894bba6
--- /dev/null
+++ b/contracts/peg/INonCustodialPSM.sol
@@ -0,0 +1,131 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
+import {IPCVDeposit} from "../pcv/IPCVDeposit.sol";
+import {GlobalRateLimitedMinter} from "../utils/GlobalRateLimitedMinter.sol";
+
+/**
+ * @title Fei Peg Stability Module
+ * @author Fei Protocol
+ * @notice The Fei PSM is a contract which pulls reserve assets from PCV Deposits in order to exchange FEI at $1 of underlying assets with a fee.
+ * `mint()` - buy FEI for $1 of underlying tokens
+ * `redeem()` - sell FEI back for $1 of the same
+ *
+ *
+ * The contract is a
+ * OracleRef - to determine price of underlying, and
+ * RateLimitedReplenishable - to stop infinite mints and related DOS issues
+ *
+ * Inspired by MakerDAO PSM, code written without reference
+ */
+interface INonCustodialPSM {
+ // ----------- Public State Changing API -----------
+
+ /// @notice mint `amountFeiOut` FEI to address `to` for `amountIn` underlying tokens
+ /// @dev see getMintAmountOut() to pre-calculate amount out
+ function mint(
+ address to,
+ uint256 amountIn,
+ uint256 minAmountOut
+ ) external returns (uint256 amountFeiOut);
+
+ /// @notice redeem `amountFeiIn` FEI for `amountOut` underlying tokens and send to address `to`
+ /// @dev see getRedeemAmountOut() to pre-calculate amount out
+ function redeem(
+ address to,
+ uint256 amountFeiIn,
+ uint256 minAmountOut
+ ) external returns (uint256 amountOut);
+
+ // ----------- Governor or Admin Only State Changing API -----------
+
+ /// @notice set the mint fee vs oracle price in basis point terms
+ function setMintFee(uint256 newMintFeeBasisPoints) external;
+
+ /// @notice set the redemption fee vs oracle price in basis point terms
+ function setRedeemFee(uint256 newRedeemFeeBasisPoints) external;
+
+ /// @notice set the target for sending surplus reserves
+ function setPCVDeposit(IPCVDeposit newTarget) external;
+
+ /// @notice set the target to call for FEI minting
+ function setGlobalRateLimitedMinter(GlobalRateLimitedMinter newMinter) external;
+
+ /// @notice withdraw ERC20 from the contract
+ function withdrawERC20(
+ address token,
+ address to,
+ uint256 amount
+ ) external;
+
+ // ----------- Getters -----------
+
+ /// @notice calculate the amount of FEI out for a given `amountIn` of underlying
+ function getMintAmountOut(uint256 amountIn) external view returns (uint256 amountFeiOut);
+
+ /// @notice calculate the amount of underlying out for a given `amountFeiIn` of FEI
+ function getRedeemAmountOut(uint256 amountFeiIn) external view returns (uint256 amountOut);
+
+ /// @notice the maximum mint amount out
+ function getMaxMintAmountOut() external view returns (uint256);
+
+ /// @notice the mint fee vs oracle price in basis point terms
+ function mintFeeBasisPoints() external view returns (uint256);
+
+ /// @notice the redemption fee vs oracle price in basis point terms
+ function redeemFeeBasisPoints() external view returns (uint256);
+
+ /// @notice the underlying token exchanged for FEI
+ function underlyingToken() external view returns (IERC20);
+
+ /// @notice the PCV deposit target to deposit and withdraw from
+ function pcvDeposit() external view returns (IPCVDeposit);
+
+ /// @notice Rate Limited Minter contract that will be called when FEI needs to be minted
+ function rateLimitedMinter() external view returns (GlobalRateLimitedMinter);
+
+ /// @notice the max mint and redeem fee in basis points
+ function MAX_FEE() external view returns (uint256);
+
+ // ----------- Events -----------
+
+ /// @notice event emitted when a new max fee is set
+ event MaxFeeUpdate(uint256 oldMaxFee, uint256 newMaxFee);
+
+ /// @notice event emitted when a new mint fee is set
+ event MintFeeUpdate(uint256 oldMintFee, uint256 newMintFee);
+
+ /// @notice event emitted when a new redeem fee is set
+ event RedeemFeeUpdate(uint256 oldRedeemFee, uint256 newRedeemFee);
+
+ /// @notice event emitted when reservesThreshold is updated
+ event ReservesThresholdUpdate(uint256 oldReservesThreshold, uint256 newReservesThreshold);
+
+ /// @notice event emitted when surplus target is updated
+ event PCVDepositUpdate(IPCVDeposit oldTarget, IPCVDeposit newTarget);
+
+ /// @notice event emitted upon a redemption
+ event Redeem(address to, uint256 amountFeiIn, uint256 amountAssetOut);
+
+ /// @notice event emitted when fei gets minted
+ event Mint(address to, uint256 amountIn, uint256 amountFeiOut);
+
+ /// @notice event emitted when ERC20 tokens get withdrawn
+ event WithdrawERC20(address indexed _caller, address indexed _token, address indexed _to, uint256 _amount);
+
+ /// @notice event emitted when global rate limited minter is updated
+ event GlobalRateLimitedMinterUpdate(GlobalRateLimitedMinter oldMinter, GlobalRateLimitedMinter newMinter);
+
+ /// @notice event that is emitted when redemptions are paused
+ event RedemptionsPaused(address account);
+
+ /// @notice event that is emitted when redemptions are unpaused
+ event RedemptionsUnpaused(address account);
+
+ /// @notice event that is emitted when minting is paused
+ event MintingPaused(address account);
+
+ /// @notice event that is emitted when minting is unpaused
+ event MintingUnpaused(address account);
+}
diff --git a/contracts/peg/IPSMRouter.sol b/contracts/peg/IPSMRouter.sol
index 39558ecfd..42956c3ce 100644
--- a/contracts/peg/IPSMRouter.sol
+++ b/contracts/peg/IPSMRouter.sol
@@ -13,16 +13,10 @@ interface IPSMRouter {
function fei() external returns (IFei);
/// @notice calculate the amount of FEI out for a given `amountIn` of underlying
- function getMintAmountOut(uint256 amountIn)
- external
- view
- returns (uint256 amountFeiOut);
+ function getMintAmountOut(uint256 amountIn) external view returns (uint256 amountFeiOut);
/// @notice calculate the amount of underlying out for a given `amountFeiIn` of FEI
- function getRedeemAmountOut(uint256 amountFeiIn)
- external
- view
- returns (uint256 amountOut);
+ function getRedeemAmountOut(uint256 amountFeiIn) external view returns (uint256 amountOut);
/// @notice the maximum mint amount out
function getMaxMintAmountOut() external view returns (uint256);
diff --git a/contracts/peg/IPegStabilityModule.sol b/contracts/peg/IPegStabilityModule.sol
index 8d4a3fec1..92878f681 100644
--- a/contracts/peg/IPegStabilityModule.sol
+++ b/contracts/peg/IPegStabilityModule.sol
@@ -59,16 +59,10 @@ interface IPegStabilityModule {
// ----------- Getters -----------
/// @notice calculate the amount of FEI out for a given `amountIn` of underlying
- function getMintAmountOut(uint256 amountIn)
- external
- view
- returns (uint256 amountFeiOut);
+ function getMintAmountOut(uint256 amountIn) external view returns (uint256 amountFeiOut);
/// @notice calculate the amount of underlying out for a given `amountFeiIn` of FEI
- function getRedeemAmountOut(uint256 amountFeiIn)
- external
- view
- returns (uint256 amountOut);
+ function getRedeemAmountOut(uint256 amountFeiIn) external view returns (uint256 amountOut);
/// @notice the maximum mint amount out
function getMaxMintAmountOut() external view returns (uint256);
@@ -112,10 +106,7 @@ interface IPegStabilityModule {
event RedeemFeeUpdate(uint256 oldRedeemFee, uint256 newRedeemFee);
/// @notice event emitted when reservesThreshold is updated
- event ReservesThresholdUpdate(
- uint256 oldReservesThreshold,
- uint256 newReservesThreshold
- );
+ event ReservesThresholdUpdate(uint256 oldReservesThreshold, uint256 newReservesThreshold);
/// @notice event emitted when surplus target is updated
event SurplusTargetUpdate(IPCVDeposit oldTarget, IPCVDeposit newTarget);
diff --git a/contracts/peg/NonCustodialPSM.sol b/contracts/peg/NonCustodialPSM.sol
new file mode 100644
index 000000000..e662e5446
--- /dev/null
+++ b/contracts/peg/NonCustodialPSM.sol
@@ -0,0 +1,385 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {Decimal} from "../external/Decimal.sol";
+import {Constants} from "../Constants.sol";
+import {OracleRef} from "./../refs/OracleRef.sol";
+import {TribeRoles} from "./../core/TribeRoles.sol";
+import {RateLimited} from "./../utils/RateLimited.sol";
+import {IPCVDeposit, PCVDeposit} from "./../pcv/PCVDeposit.sol";
+import {INonCustodialPSM} from "./INonCustodialPSM.sol";
+import {GlobalRateLimitedMinter} from "./../utils/GlobalRateLimitedMinter.sol";
+import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
+import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
+import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
+import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
+import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol";
+
+/// @notice Peg Stability Module that holds no funds.
+/// On a mint, it transfers all proceeds to a PCV Deposit
+/// When funds are needed for a redemption, they are simply pulled from the PCV Deposit
+contract NonCustodialPSM is OracleRef, RateLimited, ReentrancyGuard, INonCustodialPSM {
+ using Decimal for Decimal.D256;
+ using SafeCast for *;
+ using SafeERC20 for IERC20;
+
+ /// @notice the fee in basis points for selling an asset into Fei
+ uint256 public override mintFeeBasisPoints;
+
+ /// @notice the fee in basis points for buying the asset for Fei
+ uint256 public override redeemFeeBasisPoints;
+
+ /// @notice the PCV deposit target to deposit and withdraw from
+ IPCVDeposit public override pcvDeposit;
+
+ /// @notice the token this PSM will exchange for Fei
+ /// Must be a stable token pegged to $1
+ IERC20 public immutable override underlyingToken;
+
+ /// @notice Rate Limited Minter contract that will be called when Fei needs to be minted
+ GlobalRateLimitedMinter public override rateLimitedMinter;
+
+ /// @notice the max mint and redeem fee in basis points
+ /// Governance cannot change the maximum fee
+ uint256 public immutable override MAX_FEE = 300;
+
+ /// @notice boolean switch that indicates whether redeeming is paused
+ bool public redeemPaused;
+
+ /// @notice boolean switch that indicates whether minting is paused
+ bool public mintPaused;
+
+ /// @notice struct for passing constructor parameters related to OracleRef
+ struct OracleParams {
+ address coreAddress;
+ address oracleAddress;
+ address backupOracle;
+ int256 decimalsNormalizer;
+ }
+
+ /// @notice struct for passing constructor parameters related to MultiRateLimited
+ struct RateLimitedParams {
+ uint256 maxRateLimitPerSecond;
+ uint256 rateLimitPerSecond;
+ uint256 bufferCap;
+ }
+
+ /// @notice struct for passing constructor parameters related to the non custodial PSM
+ struct PSMParams {
+ uint256 mintFeeBasisPoints;
+ uint256 redeemFeeBasisPoints;
+ IERC20 underlyingToken;
+ IPCVDeposit pcvDeposit;
+ GlobalRateLimitedMinter rateLimitedMinter;
+ }
+
+ /// @notice construct the non custodial PSM. Structs are used to prevent stack too deep errors
+ /// @param params oracle ref constructor data
+ /// @param rateLimitedParams rate limited constructor data
+ /// @param psmParams non custodial PSM constructor data
+ constructor(
+ OracleParams memory params,
+ RateLimitedParams memory rateLimitedParams,
+ PSMParams memory psmParams
+ )
+ OracleRef(
+ params.coreAddress,
+ params.oracleAddress,
+ params.backupOracle,
+ params.decimalsNormalizer,
+ false /// leaving as false for now
+ )
+ /// rate limited replenishable passes false as the last param as there can be no partial actions
+ RateLimited(
+ rateLimitedParams.maxRateLimitPerSecond,
+ rateLimitedParams.rateLimitPerSecond,
+ rateLimitedParams.bufferCap,
+ false
+ )
+ {
+ underlyingToken = psmParams.underlyingToken;
+
+ _setGlobalRateLimitedMinter(psmParams.rateLimitedMinter);
+ _setMintFee(psmParams.mintFeeBasisPoints);
+ _setRedeemFee(psmParams.redeemFeeBasisPoints);
+ _setPCVDeposit(psmParams.pcvDeposit);
+ }
+
+ // ----------- Mint & Redeem pausing modifiers -----------
+
+ /// @notice modifier that allows execution when redemptions are not paused
+ modifier whileRedemptionsNotPaused() {
+ require(!redeemPaused, "PegStabilityModule: Redeem paused");
+ _;
+ }
+
+ /// @notice modifier that allows execution when minting is not paused
+ modifier whileMintingNotPaused() {
+ require(!mintPaused, "PegStabilityModule: Minting paused");
+ _;
+ }
+
+ // ----------- Governor & Guardian only pausing api -----------
+
+ /// @notice set secondary pausable methods to paused
+ function pauseRedeem() external onlyGuardianOrGovernor {
+ redeemPaused = true;
+ emit RedemptionsPaused(msg.sender);
+ }
+
+ /// @notice set secondary pausable methods to unpaused
+ function unpauseRedeem() external onlyGuardianOrGovernor {
+ redeemPaused = false;
+ emit RedemptionsUnpaused(msg.sender);
+ }
+
+ /// @notice set secondary pausable methods to paused
+ function pauseMint() external onlyGuardianOrGovernor {
+ mintPaused = true;
+ emit MintingPaused(msg.sender);
+ }
+
+ /// @notice set secondary pausable methods to unpaused
+ function unpauseMint() external onlyGuardianOrGovernor {
+ mintPaused = false;
+ emit MintingUnpaused(msg.sender);
+ }
+
+ // ----------- Governor, psm admin and parameter admin only state changing api -----------
+
+ /// @notice set the mint fee vs oracle price in basis point terms
+ /// @param newMintFeeBasisPoints the new fee in basis points for minting
+ function setMintFee(uint256 newMintFeeBasisPoints)
+ external
+ override
+ hasAnyOfTwoRoles(TribeRoles.GOVERNOR, TribeRoles.PARAMETER_ADMIN)
+ {
+ _setMintFee(newMintFeeBasisPoints);
+ }
+
+ /// @notice set the redemption fee vs oracle price in basis point terms
+ /// @param newRedeemFeeBasisPoints the new fee in basis points for redemptions
+ function setRedeemFee(uint256 newRedeemFeeBasisPoints)
+ external
+ override
+ hasAnyOfTwoRoles(TribeRoles.GOVERNOR, TribeRoles.PARAMETER_ADMIN)
+ {
+ _setRedeemFee(newRedeemFeeBasisPoints);
+ }
+
+ /// @notice set the target for sending all PCV
+ /// @param newTarget new PCV Deposit target for this PSM
+ function setPCVDeposit(IPCVDeposit newTarget)
+ external
+ override
+ hasAnyOfTwoRoles(TribeRoles.GOVERNOR, TribeRoles.PSM_ADMIN_ROLE)
+ {
+ _setPCVDeposit(newTarget);
+ }
+
+ /// @notice set the target to call for Fei minting
+ /// @param newMinter new Global Rate Limited Minter for this PSM
+ function setGlobalRateLimitedMinter(GlobalRateLimitedMinter newMinter)
+ external
+ override
+ hasAnyOfTwoRoles(TribeRoles.GOVERNOR, TribeRoles.PSM_ADMIN_ROLE)
+ {
+ _setGlobalRateLimitedMinter(newMinter);
+ }
+
+ // ----------- PCV Controller only state changing api -----------
+
+ /// @notice withdraw ERC20 from the contract
+ /// @param token address of the ERC20 to send
+ /// @param to address destination of the ERC20
+ /// @param amount quantity of ERC20 to send
+ function withdrawERC20(
+ address token,
+ address to,
+ uint256 amount
+ ) external override onlyPCVController {
+ IERC20(token).safeTransfer(to, amount);
+ emit WithdrawERC20(msg.sender, token, to, amount);
+ }
+
+ // ----------- Public State Changing API -----------
+
+ /// @notice function to redeem Fei for an underlying asset
+ /// We do not burn Fei; this allows the contract's balance of Fei to be used before the buffer is used
+ /// In practice, this helps prevent artificial cycling of mint-burn cycles and prevents DOS attacks.
+ /// This function will deplete the buffer based on the amount of Fei that is being redeemed.
+ /// @param to the destination address for proceeds
+ /// @param amountFeiIn the amount of Fei to sell
+ /// @param minAmountOut the minimum amount out otherwise the TX will fail
+ function redeem(
+ address to,
+ uint256 amountFeiIn,
+ uint256 minAmountOut
+ ) external virtual override nonReentrant whenNotPaused whileRedemptionsNotPaused returns (uint256 amountOut) {
+ _depleteBuffer(amountFeiIn); /// deplete buffer first to save gas on buffer exhaustion sad path
+
+ updateOracle();
+
+ amountOut = _getRedeemAmountOut(amountFeiIn);
+ require(amountOut >= minAmountOut, "PegStabilityModule: Redeem not enough out");
+
+ IERC20(fei()).safeTransferFrom(msg.sender, address(this), amountFeiIn);
+
+ pcvDeposit.withdraw(to, amountOut);
+
+ emit Redeem(to, amountFeiIn, amountOut);
+ }
+
+ /// @notice function to buy Fei for an underlying asset that is pegged to $1
+ /// We first transfer any contract-owned Fei, then mint the remaining if necessary
+ /// This function will replenish the buffer based on the amount of Fei that is being sent out.
+ /// @param to the destination address for proceeds
+ /// @param amountIn the amount of external asset to sell to the PSM
+ /// @param minFeiAmountOut the minimum amount of Fei out otherwise the TX will fail
+ function mint(
+ address to,
+ uint256 amountIn,
+ uint256 minFeiAmountOut
+ ) external virtual override nonReentrant whenNotPaused whileMintingNotPaused returns (uint256 amountFeiOut) {
+ updateOracle();
+
+ amountFeiOut = _getMintAmountOut(amountIn);
+ require(amountFeiOut >= minFeiAmountOut, "PegStabilityModule: Mint not enough out");
+
+ underlyingToken.safeTransferFrom(msg.sender, address(pcvDeposit), amountIn);
+ pcvDeposit.deposit();
+
+ uint256 amountFeiToTransfer = Math.min(fei().balanceOf(address(this)), amountFeiOut);
+ uint256 amountFeiToMint = amountFeiOut - amountFeiToTransfer;
+
+ if (amountFeiToTransfer != 0) {
+ IERC20(fei()).safeTransfer(to, amountFeiToTransfer);
+ }
+
+ if (amountFeiToMint != 0) {
+ rateLimitedMinter.mint(to, amountFeiToMint);
+ }
+
+ _replenishBuffer(amountFeiOut);
+
+ emit Mint(to, amountIn, amountFeiOut);
+ }
+
+ // ----------- Public View-Only API ----------
+
+ /// @notice calculate the amount of Fei out for a given `amountIn` of underlying
+ /// First get oracle price of token
+ /// Then figure out how many dollars that amount in is worth by multiplying price * amount.
+ /// ensure decimals are normalized if on underlying they are not 18
+ /// @param amountIn the amount of external asset to sell to the PSM
+ /// @return amountFeiOut the amount of Fei received for the amountIn of external asset
+ function getMintAmountOut(uint256 amountIn) public view override returns (uint256 amountFeiOut) {
+ amountFeiOut = _getMintAmountOut(amountIn);
+ }
+
+ /// @notice calculate the amount of underlying out for a given `amountFeiIn` of Fei
+ /// First get oracle price of token
+ /// Then figure out how many dollars that amount in is worth by multiplying price * amount.
+ /// ensure decimals are normalized if on underlying they are not 18
+ /// @param amountFeiIn the amount of Fei to redeem
+ /// @return amountTokenOut the amount of the external asset received in exchange for the amount of Fei redeemed
+ function getRedeemAmountOut(uint256 amountFeiIn) public view override returns (uint256 amountTokenOut) {
+ amountTokenOut = _getRedeemAmountOut(amountFeiIn);
+ }
+
+ /// @notice getter to return the maximum amount of Fei that could be purchased at once
+ /// @return the maximum amount of Fei available for purchase at once through this PSM
+ function getMaxMintAmountOut() external view override returns (uint256) {
+ return fei().balanceOf(address(this)) + rateLimitedMinter.individualBuffer(address(this));
+ }
+
+ // ----------- Internal Methods -----------
+
+ /// @notice helper function to get mint amount out based on current market prices
+ /// @dev will revert if price is outside of bounds and price bound PSM is being used
+ /// @param amountIn the amount of stable asset in
+ /// @return amountFeiOut the amount of Fei received for the amountIn of stable assets
+ function _getMintAmountOut(uint256 amountIn) internal view virtual returns (uint256 amountFeiOut) {
+ Decimal.D256 memory price = readOracle();
+ _validatePriceRange(price);
+
+ Decimal.D256 memory adjustedAmountIn = price.mul(amountIn);
+
+ amountFeiOut = adjustedAmountIn
+ .mul(Constants.BASIS_POINTS_GRANULARITY - mintFeeBasisPoints)
+ .div(Constants.BASIS_POINTS_GRANULARITY)
+ .asUint256();
+ }
+
+ /// @notice helper function to get redeem amount out based on current market prices
+ /// @dev will revert if price is outside of bounds and price bound PSM is being used
+ /// @param amountFeiIn the amount of Fei to redeem
+ /// @return amountTokenOut the amount of the external asset received in exchange for the amount of Fei redeemed
+ function _getRedeemAmountOut(uint256 amountFeiIn) internal view virtual returns (uint256 amountTokenOut) {
+ Decimal.D256 memory price = readOracle();
+ _validatePriceRange(price);
+
+ /// get amount of Fei being provided being redeemed after fees
+ Decimal.D256 memory adjustedAmountIn = Decimal.from(
+ (amountFeiIn * (Constants.BASIS_POINTS_GRANULARITY - redeemFeeBasisPoints)) /
+ Constants.BASIS_POINTS_GRANULARITY
+ );
+
+ /// now turn the Fei into the underlying token amounts
+ /// amount Fei in / Fei you receive for $1 = how much stable token to pay out
+ amountTokenOut = adjustedAmountIn.div(price).asUint256();
+ }
+
+ // ----------- Helper methods to change state -----------
+
+ /// @notice set the global rate limited minter this PSM calls to mint Fei
+ /// @param newMinter the new minter contract that this PSM will reference
+ function _setGlobalRateLimitedMinter(GlobalRateLimitedMinter newMinter) internal {
+ require(address(newMinter) != address(0), "PegStabilityModule: Invalid new GlobalRateLimitedMinter");
+ GlobalRateLimitedMinter oldMinter = rateLimitedMinter;
+ rateLimitedMinter = newMinter;
+
+ emit GlobalRateLimitedMinterUpdate(oldMinter, newMinter);
+ }
+
+ /// @notice set the mint fee vs oracle price in basis point terms
+ /// @param newMintFeeBasisPoints the new fee for minting in basis points
+ function _setMintFee(uint256 newMintFeeBasisPoints) internal {
+ require(newMintFeeBasisPoints <= MAX_FEE, "PegStabilityModule: Mint fee exceeds max fee");
+ uint256 _oldMintFee = mintFeeBasisPoints;
+ mintFeeBasisPoints = newMintFeeBasisPoints;
+
+ emit MintFeeUpdate(_oldMintFee, newMintFeeBasisPoints);
+ }
+
+ /// @notice internal helper function to set the redemption fee
+ /// @param newRedeemFeeBasisPoints the new fee for redemptions in basis points
+ function _setRedeemFee(uint256 newRedeemFeeBasisPoints) internal {
+ require(newRedeemFeeBasisPoints <= MAX_FEE, "PegStabilityModule: Redeem fee exceeds max fee");
+ uint256 _oldRedeemFee = redeemFeeBasisPoints;
+ redeemFeeBasisPoints = newRedeemFeeBasisPoints;
+
+ emit RedeemFeeUpdate(_oldRedeemFee, newRedeemFeeBasisPoints);
+ }
+
+ /// @notice helper function to set the PCV deposit
+ /// @param newPCVDeposit the new PCV deposit that this PSM will pull assets from and deposit assets into
+ function _setPCVDeposit(IPCVDeposit newPCVDeposit) internal {
+ require(address(newPCVDeposit) != address(0), "PegStabilityModule: Invalid new PCVDeposit");
+ /* Removed to be compatible with PCV deposit v1. (which uses token() instead of balanceReportedIn())
+ require(
+ newPCVDeposit.balanceReportedIn() == address(underlyingToken),
+ "PegStabilityModule: Underlying token mismatch"
+ );
+ */
+ IPCVDeposit oldTarget = pcvDeposit;
+ pcvDeposit = newPCVDeposit;
+
+ emit PCVDepositUpdate(oldTarget, newPCVDeposit);
+ }
+
+ // ----------- Hooks -----------
+
+ /// @notice overriden function in the price bound PSM
+ function _validatePriceRange(Decimal.D256 memory price) internal view virtual {}
+}
diff --git a/contracts/peg/PSMRouter.sol b/contracts/peg/PSMRouter.sol
index 22a4c2051..8dc4ec0ac 100644
--- a/contracts/peg/PSMRouter.sol
+++ b/contracts/peg/PSMRouter.sol
@@ -22,10 +22,7 @@ contract PSMRouter is IPSMRouter {
constructor(IPegStabilityModule _psm, IFei _fei) {
psm = _psm;
fei = _fei;
- IERC20(address(Constants.WETH)).approve(
- address(_psm),
- type(uint256).max
- );
+ IERC20(address(Constants.WETH)).approve(address(_psm), type(uint256).max);
_fei.approve(address(_psm), type(uint256).max);
}
@@ -37,22 +34,12 @@ contract PSMRouter is IPSMRouter {
// ----------- Public View-Only API ----------
/// @notice view only pass through function to get amount of FEI out with given amount of ETH in
- function getMintAmountOut(uint256 amountIn)
- public
- view
- override
- returns (uint256 amountFeiOut)
- {
+ function getMintAmountOut(uint256 amountIn) public view override returns (uint256 amountFeiOut) {
amountFeiOut = psm.getMintAmountOut(amountIn);
}
/// @notice view only pass through function to get amount of ETH out with given amount of FEI in
- function getRedeemAmountOut(uint256 amountFeiIn)
- public
- view
- override
- returns (uint256 amountTokenOut)
- {
+ function getRedeemAmountOut(uint256 amountFeiIn) public view override returns (uint256 amountTokenOut) {
amountTokenOut = psm.getRedeemAmountOut(amountFeiIn);
}
@@ -131,10 +118,7 @@ contract PSMRouter is IPSMRouter {
/// @notice function to receive ether from the weth contract when the redeem function is called
/// will not accept eth unless there is an active redemption.
fallback() external payable {
- require(
- msg.sender == address(Constants.WETH),
- "PSMRouter: fallback sender must be WETH contract"
- );
+ require(msg.sender == address(Constants.WETH), "PSMRouter: fallback sender must be WETH contract");
}
// ---------- Internal Methods ----------
@@ -145,10 +129,7 @@ contract PSMRouter is IPSMRouter {
uint256 _minAmountOut,
uint256 _ethAmountIn
) internal returns (uint256) {
- require(
- _ethAmountIn == msg.value,
- "PSMRouter: ethAmountIn and msg.value mismatch"
- );
+ require(_ethAmountIn == msg.value, "PSMRouter: ethAmountIn and msg.value mismatch");
Constants.WETH.deposit{value: msg.value}();
return psm.mint(_to, msg.value, _minAmountOut);
}
diff --git a/contracts/peg/PegStabilityModule.sol b/contracts/peg/PegStabilityModule.sol
index 088962ef4..9f409be46 100644
--- a/contracts/peg/PegStabilityModule.sol
+++ b/contracts/peg/PegStabilityModule.sol
@@ -9,13 +9,7 @@ import "../Constants.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
-contract PegStabilityModule is
- IPegStabilityModule,
- RateLimitedMinter,
- OracleRef,
- PCVDeposit,
- ReentrancyGuard
-{
+contract PegStabilityModule is IPegStabilityModule, RateLimitedMinter, OracleRef, PCVDeposit, ReentrancyGuard {
using Decimal for Decimal.D256;
using SafeCast for *;
using SafeERC20 for IERC20;
@@ -135,57 +129,33 @@ contract PegStabilityModule is
}
/// @notice withdraw assets from PSM to an external address
- function withdraw(address to, uint256 amount)
- external
- virtual
- override
- onlyPCVController
- {
+ function withdraw(address to, uint256 amount) external virtual override onlyPCVController {
_withdrawERC20(address(underlyingToken), to, amount);
}
/// @notice set the mint fee vs oracle price in basis point terms
- function setMintFee(uint256 newMintFeeBasisPoints)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setMintFee(uint256 newMintFeeBasisPoints) external override onlyGovernorOrAdmin {
_setMintFee(newMintFeeBasisPoints);
}
/// @notice set the redemption fee vs oracle price in basis point terms
- function setRedeemFee(uint256 newRedeemFeeBasisPoints)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setRedeemFee(uint256 newRedeemFeeBasisPoints) external override onlyGovernorOrAdmin {
_setRedeemFee(newRedeemFeeBasisPoints);
}
/// @notice set the ideal amount of reserves for the contract to hold for redemptions
- function setReservesThreshold(uint256 newReservesThreshold)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setReservesThreshold(uint256 newReservesThreshold) external override onlyGovernorOrAdmin {
_setReservesThreshold(newReservesThreshold);
}
/// @notice set the target for sending surplus reserves
- function setSurplusTarget(IPCVDeposit newTarget)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setSurplusTarget(IPCVDeposit newTarget) external override onlyGovernorOrAdmin {
_setSurplusTarget(newTarget);
}
/// @notice set the mint fee vs oracle price in basis point terms
function _setMintFee(uint256 newMintFeeBasisPoints) internal {
- require(
- newMintFeeBasisPoints <= MAX_FEE,
- "PegStabilityModule: Mint fee exceeds max fee"
- );
+ require(newMintFeeBasisPoints <= MAX_FEE, "PegStabilityModule: Mint fee exceeds max fee");
uint256 _oldMintFee = mintFeeBasisPoints;
mintFeeBasisPoints = newMintFeeBasisPoints;
@@ -194,10 +164,7 @@ contract PegStabilityModule is
/// @notice internal helper function to set the redemption fee
function _setRedeemFee(uint256 newRedeemFeeBasisPoints) internal {
- require(
- newRedeemFeeBasisPoints <= MAX_FEE,
- "PegStabilityModule: Redeem fee exceeds max fee"
- );
+ require(newRedeemFeeBasisPoints <= MAX_FEE, "PegStabilityModule: Redeem fee exceeds max fee");
uint256 _oldRedeemFee = redeemFeeBasisPoints;
redeemFeeBasisPoints = newRedeemFeeBasisPoints;
@@ -206,25 +173,16 @@ contract PegStabilityModule is
/// @notice helper function to set reserves threshold
function _setReservesThreshold(uint256 newReservesThreshold) internal {
- require(
- newReservesThreshold > 0,
- "PegStabilityModule: Invalid new reserves threshold"
- );
+ require(newReservesThreshold > 0, "PegStabilityModule: Invalid new reserves threshold");
uint256 oldReservesThreshold = reservesThreshold;
reservesThreshold = newReservesThreshold;
- emit ReservesThresholdUpdate(
- oldReservesThreshold,
- newReservesThreshold
- );
+ emit ReservesThresholdUpdate(oldReservesThreshold, newReservesThreshold);
}
/// @notice helper function to set the surplus target
function _setSurplusTarget(IPCVDeposit newSurplusTarget) internal {
- require(
- address(newSurplusTarget) != address(0),
- "PegStabilityModule: Invalid new surplus target"
- );
+ require(address(newSurplusTarget) != address(0), "PegStabilityModule: Invalid new surplus target");
IPCVDeposit oldTarget = surplusTarget;
surplusTarget = newSurplusTarget;
@@ -236,10 +194,7 @@ contract PegStabilityModule is
/// @notice send any surplus reserves to the PCV allocation
function allocateSurplus() external override {
int256 currentSurplus = reservesSurplus();
- require(
- currentSurplus > 0,
- "PegStabilityModule: No surplus to allocate"
- );
+ require(currentSurplus > 0, "PegStabilityModule: No surplus to allocate");
_allocate(currentSurplus.toUint256());
}
@@ -261,10 +216,7 @@ contract PegStabilityModule is
updateOracle();
amountOut = _getRedeemAmountOut(amountFeiIn);
- require(
- amountOut >= minAmountOut,
- "PegStabilityModule: Redeem not enough out"
- );
+ require(amountOut >= minAmountOut, "PegStabilityModule: Redeem not enough out");
IERC20(fei()).safeTransferFrom(msg.sender, address(this), amountFeiIn);
@@ -282,17 +234,11 @@ contract PegStabilityModule is
updateOracle();
amountFeiOut = _getMintAmountOut(amountIn);
- require(
- amountFeiOut >= minAmountOut,
- "PegStabilityModule: Mint not enough out"
- );
+ require(amountFeiOut >= minAmountOut, "PegStabilityModule: Mint not enough out");
_transferFrom(msg.sender, address(this), amountIn);
- uint256 amountFeiToTransfer = Math.min(
- fei().balanceOf(address(this)),
- amountFeiOut
- );
+ uint256 amountFeiToTransfer = Math.min(fei().balanceOf(address(this)), amountFeiOut);
uint256 amountFeiToMint = amountFeiOut - amountFeiToTransfer;
IERC20(fei()).safeTransfer(to, amountFeiToTransfer);
@@ -311,15 +257,7 @@ contract PegStabilityModule is
address to,
uint256 amountFeiIn,
uint256 minAmountOut
- )
- external
- virtual
- override
- nonReentrant
- whenNotPaused
- whileRedemptionsNotPaused
- returns (uint256 amountOut)
- {
+ ) external virtual override nonReentrant whenNotPaused whileRedemptionsNotPaused returns (uint256 amountOut) {
amountOut = _redeem(to, amountFeiIn, minAmountOut);
}
@@ -329,15 +267,7 @@ contract PegStabilityModule is
address to,
uint256 amountIn,
uint256 minAmountOut
- )
- external
- virtual
- override
- nonReentrant
- whenNotPaused
- whileMintingNotPaused
- returns (uint256 amountFeiOut)
- {
+ ) external virtual override nonReentrant whenNotPaused whileMintingNotPaused returns (uint256 amountFeiOut) {
amountFeiOut = _mint(to, amountIn, minAmountOut);
}
@@ -347,12 +277,7 @@ contract PegStabilityModule is
/// First get oracle price of token
/// Then figure out how many dollars that amount in is worth by multiplying price * amount.
/// ensure decimals are normalized if on underlying they are not 18
- function getMintAmountOut(uint256 amountIn)
- public
- view
- override
- returns (uint256 amountFeiOut)
- {
+ function getMintAmountOut(uint256 amountIn) public view override returns (uint256 amountFeiOut) {
amountFeiOut = _getMintAmountOut(amountIn);
}
@@ -360,12 +285,7 @@ contract PegStabilityModule is
/// First get oracle price of token
/// Then figure out how many dollars that amount in is worth by multiplying price * amount.
/// ensure decimals are normalized if on underlying they are not 18
- function getRedeemAmountOut(uint256 amountFeiIn)
- public
- view
- override
- returns (uint256 amountTokenOut)
- {
+ function getRedeemAmountOut(uint256 amountFeiIn) public view override returns (uint256 amountTokenOut) {
amountTokenOut = _getRedeemAmountOut(amountFeiIn);
}
@@ -395,12 +315,7 @@ contract PegStabilityModule is
}
/// @notice override default behavior of not checking fei balance
- function resistantBalanceAndFei()
- public
- view
- override
- returns (uint256, uint256)
- {
+ function resistantBalanceAndFei() public view override returns (uint256, uint256) {
return (balance(), feiBalance());
}
@@ -408,12 +323,7 @@ contract PegStabilityModule is
/// @notice helper function to get mint amount out based on current market prices
/// @dev will revert if price is outside of bounds and bounded PSM is being used
- function _getMintAmountOut(uint256 amountIn)
- internal
- view
- virtual
- returns (uint256 amountFeiOut)
- {
+ function _getMintAmountOut(uint256 amountIn) internal view virtual returns (uint256 amountFeiOut) {
Decimal.D256 memory price = readOracle();
_validatePriceRange(price);
@@ -427,19 +337,13 @@ contract PegStabilityModule is
/// @notice helper function to get redeem amount out based on current market prices
/// @dev will revert if price is outside of bounds and bounded PSM is being used
- function _getRedeemAmountOut(uint256 amountFeiIn)
- internal
- view
- virtual
- returns (uint256 amountTokenOut)
- {
+ function _getRedeemAmountOut(uint256 amountFeiIn) internal view virtual returns (uint256 amountTokenOut) {
Decimal.D256 memory price = readOracle();
_validatePriceRange(price);
/// get amount of dollars being provided
Decimal.D256 memory adjustedAmountIn = Decimal.from(
- (amountFeiIn *
- (Constants.BASIS_POINTS_GRANULARITY - redeemFeeBasisPoints)) /
+ (amountFeiIn * (Constants.BASIS_POINTS_GRANULARITY - redeemFeeBasisPoints)) /
Constants.BASIS_POINTS_GRANULARITY
);
@@ -449,8 +353,9 @@ contract PegStabilityModule is
}
/// @notice Allocates a portion of escrowed PCV to a target PCV deposit
- function _allocate(uint256 amount) internal {
+ function _allocate(uint256 amount) internal virtual {
_transfer(address(surplusTarget), amount);
+
surplusTarget.deposit();
emit AllocateSurplus(msg.sender, amount);
@@ -471,19 +376,12 @@ contract PegStabilityModule is
}
/// @notice mint amount of FEI to the specified user on a rate limit
- function _mintFei(address to, uint256 amount)
- internal
- override(CoreRef, RateLimitedMinter)
- {
+ function _mintFei(address to, uint256 amount) internal override(CoreRef, RateLimitedMinter) {
super._mintFei(to, amount);
}
// ----------- Hooks -----------
/// @notice overriden function in the bounded PSM
- function _validatePriceRange(Decimal.D256 memory price)
- internal
- view
- virtual
- {}
+ function _validatePriceRange(Decimal.D256 memory price) internal view virtual {}
}
diff --git a/contracts/peg/PriceBoundPSM.sol b/contracts/peg/PriceBoundPSM.sol
index 7aca13f90..629538f20 100644
--- a/contracts/peg/PriceBoundPSM.sol
+++ b/contracts/peg/PriceBoundPSM.sol
@@ -51,20 +51,12 @@ contract PriceBoundPSM is PegStabilityModule, IPriceBound {
}
/// @notice sets the floor price in BP
- function setOracleFloorBasisPoints(uint256 newFloorBasisPoints)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setOracleFloorBasisPoints(uint256 newFloorBasisPoints) external override onlyGovernorOrAdmin {
_setFloorBasisPoints(newFloorBasisPoints);
}
/// @notice sets the ceiling price in BP
- function setOracleCeilingBasisPoints(uint256 newCeilingBasisPoints)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setOracleCeilingBasisPoints(uint256 newCeilingBasisPoints) external override onlyGovernorOrAdmin {
_setCeilingBasisPoints(newCeilingBasisPoints);
}
@@ -72,21 +64,20 @@ contract PriceBoundPSM is PegStabilityModule, IPriceBound {
return _validPrice(readOracle());
}
+ /// @notice Allocates a portion of escrowed PCV to a target PCV deposit
+ function _allocate(uint256 amount) internal override {
+ _transfer(address(surplusTarget), amount);
+
+ emit AllocateSurplus(msg.sender, amount);
+ }
+
/// @notice helper function to set the ceiling in basis points
function _setCeilingBasisPoints(uint256 newCeilingBasisPoints) internal {
+ require(newCeilingBasisPoints != 0, "PegStabilityModule: invalid ceiling");
require(
- newCeilingBasisPoints != 0,
- "PegStabilityModule: invalid ceiling"
- );
- require(
- Decimal
- .ratio(
- newCeilingBasisPoints,
- Constants.BASIS_POINTS_GRANULARITY
- )
- .greaterThan(
- Decimal.ratio(floor, Constants.BASIS_POINTS_GRANULARITY)
- ),
+ Decimal.ratio(newCeilingBasisPoints, Constants.BASIS_POINTS_GRANULARITY).greaterThan(
+ Decimal.ratio(floor, Constants.BASIS_POINTS_GRANULARITY)
+ ),
"PegStabilityModule: ceiling must be greater than floor"
);
uint256 oldCeiling = ceiling;
@@ -99,11 +90,9 @@ contract PriceBoundPSM is PegStabilityModule, IPriceBound {
function _setFloorBasisPoints(uint256 newFloorBasisPoints) internal {
require(newFloorBasisPoints != 0, "PegStabilityModule: invalid floor");
require(
- Decimal
- .ratio(newFloorBasisPoints, Constants.BASIS_POINTS_GRANULARITY)
- .lessThan(
- Decimal.ratio(ceiling, Constants.BASIS_POINTS_GRANULARITY)
- ),
+ Decimal.ratio(newFloorBasisPoints, Constants.BASIS_POINTS_GRANULARITY).lessThan(
+ Decimal.ratio(ceiling, Constants.BASIS_POINTS_GRANULARITY)
+ ),
"PegStabilityModule: floor must be less than ceiling"
);
uint256 oldFloor = floor;
@@ -113,26 +102,14 @@ contract PriceBoundPSM is PegStabilityModule, IPriceBound {
}
/// @notice helper function to determine if price is within a valid range
- function _validPrice(Decimal.D256 memory price)
- internal
- view
- returns (bool valid)
- {
+ function _validPrice(Decimal.D256 memory price) internal view returns (bool valid) {
valid =
- price.greaterThan(
- Decimal.ratio(floor, Constants.BASIS_POINTS_GRANULARITY)
- ) &&
- price.lessThan(
- Decimal.ratio(ceiling, Constants.BASIS_POINTS_GRANULARITY)
- );
+ price.greaterThan(Decimal.ratio(floor, Constants.BASIS_POINTS_GRANULARITY)) &&
+ price.lessThan(Decimal.ratio(ceiling, Constants.BASIS_POINTS_GRANULARITY));
}
/// @notice reverts if the price is greater than or equal to the ceiling or less than or equal to the floor
- function _validatePriceRange(Decimal.D256 memory price)
- internal
- view
- override
- {
+ function _validatePriceRange(Decimal.D256 memory price) internal view override {
require(_validPrice(price), "PegStabilityModule: price out of bounds");
}
}
diff --git a/contracts/pods/GovernanceMetadataRegistry.sol b/contracts/pods/GovernanceMetadataRegistry.sol
new file mode 100644
index 000000000..31e6fdd4b
--- /dev/null
+++ b/contracts/pods/GovernanceMetadataRegistry.sol
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+import {CoreRef} from "../refs/CoreRef.sol";
+import {TribeRoles} from "../core/TribeRoles.sol";
+
+/// @title Metadata registry for Pods
+/// @notice Exposes a single public state changing method that should be called as part of a Pods proposal
+/// @dev Expected that a call is made to this GovernanceMetadataRegistry contract as the first function call in a proposal
+/// submitted to a pod
+contract GovernanceMetadataRegistry is CoreRef {
+ /// @notice Mapping identifying whether a particular proposal metadata was submitted for registration
+ /// @dev Maps the hash of the proposal metadata to a bool identifying if it was submitted
+ mapping(bytes32 => bool) public registration;
+
+ /// @notice Event that logs the metadata associated with a pod proposal
+ event RegisterProposal(uint256 indexed podId, uint256 indexed proposalId, string metadata);
+
+ constructor(address _core) CoreRef(_core) {}
+
+ /// @notice Get whether a pod proposal has been registered
+ /// @param podId Unique identifier of the pod for which metadata is being registered
+ /// @param proposalId Unique identifier of the proposal for which metadata is being registered
+ /// @param metadata Proposal metadata
+ function isProposalRegistered(
+ uint256 podId,
+ uint256 proposalId,
+ string memory metadata
+ ) external view returns (bool) {
+ bytes32 proposalHash = keccak256(abi.encode(podId, proposalId, metadata));
+ return registration[proposalHash];
+ }
+
+ /// @notice Register a pod proposal. Specifically used as a layer ontop of a Gnosis safe to emit
+ /// proposal metadata
+ /// @param podId Unique identifier of the pod for which metadata is being registered
+ /// @param proposalId Unique identifier of the proposal for which metadata is being registered
+ /// @param metadata Proposal metadata
+ function registerProposal(
+ uint256 podId,
+ uint256 proposalId,
+ string memory metadata
+ ) external onlyTribeRole(TribeRoles.POD_METADATA_REGISTER_ROLE) {
+ require(bytes(metadata).length > 0, "Metadata must be non-empty");
+
+ bytes32 proposalHash = keccak256(abi.encode(podId, proposalId, metadata));
+ require(registration[proposalHash] == false, "Proposal already registered");
+ registration[proposalHash] = true;
+ emit RegisterProposal(podId, proposalId, metadata);
+ }
+}
diff --git a/contracts/pods/PodAdminGateway.sol b/contracts/pods/PodAdminGateway.sol
new file mode 100644
index 000000000..3bca19c9c
--- /dev/null
+++ b/contracts/pods/PodAdminGateway.sol
@@ -0,0 +1,194 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {MemberToken} from "@orcaprotocol/contracts/contracts/MemberToken.sol";
+import {ControllerV1} from "@orcaprotocol/contracts/contracts/ControllerV1.sol";
+import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
+import {CoreRef} from "../refs/CoreRef.sol";
+import {ICore} from "../core/ICore.sol";
+import {Core} from "../core/Core.sol";
+import {TribeRoles} from "../core/TribeRoles.sol";
+import {IPodAdminGateway} from "./interfaces/IPodAdminGateway.sol";
+import {IPodFactory} from "./interfaces/IPodFactory.sol";
+
+/// @title PodAdminGateway for TRIBE Governance pods
+/// @notice Acts as a gateway for admin functionality and vetos in the TRIBE governance pod system
+/// @dev Contract is intended to be set as the podAdmin for all deployed Orca pods. Specifically enables:
+/// 1. Adding a member to a pod
+/// 2. Removing a member from a pod
+/// 3. Transferring a pod member
+/// 4. Toggling a pod membership transfer switch
+/// 5. Vetoing a pod proposal
+contract PodAdminGateway is CoreRef, IPodAdminGateway {
+ /// @notice Orca membership token for the pods. Handles permissioning pod members
+ MemberToken private immutable memberToken;
+
+ /// @notice Pod factory which creates optimistic pods and acts as a source of information
+ IPodFactory public immutable podFactory;
+
+ constructor(
+ address _core,
+ address _memberToken,
+ address _podFactory
+ ) CoreRef(_core) {
+ memberToken = MemberToken(_memberToken);
+ podFactory = IPodFactory(_podFactory);
+ }
+
+ //////////////////////// GETTERS ////////////////////////////////
+ /// @notice Calculate the specific pod admin role identifier
+ /// @dev This role is able to add pod members, remove pod members, lock and unlock transfers and veto
+ /// proposals
+ function getSpecificPodAdminRole(uint256 _podId) public pure override returns (bytes32) {
+ return keccak256(abi.encode(_podId, "_ORCA_POD", "_ADMIN"));
+ }
+
+ /// @notice Calculate the specific pod guardian role identifier
+ /// @dev This role is able to remove pod members and veto pod proposals
+ function getSpecificPodGuardianRole(uint256 _podId) public pure override returns (bytes32) {
+ return keccak256(abi.encode(_podId, "_ORCA_POD", "_GUARDIAN"));
+ }
+
+ ///////////////////////// ADMIN PRIVILEDGES ////////////////////////////
+
+ /// @notice Admin functionality to add a member to a pod
+ /// @dev Permissioned to GOVERNOR, POD_ADMIN and POD_ADD_MEMBER_ROLE
+ function addPodMember(uint256 _podId, address _member)
+ external
+ override
+ hasAnyOfThreeRoles(TribeRoles.GOVERNOR, TribeRoles.POD_ADMIN, getSpecificPodAdminRole(_podId))
+ {
+ _addMemberToPod(_podId, _member);
+ }
+
+ /// @notice Internal method to add a member to a pod
+ function _addMemberToPod(uint256 _podId, address _member) internal {
+ emit AddPodMember(_podId, _member);
+ memberToken.mint(_member, _podId, bytes(""));
+ }
+
+ /// @notice Admin functionality to batch add a member to a pod
+ /// @dev Permissioned to GOVERNOR, POD_ADMIN and POD_ADMIN_REMOVE_MEMBER
+ function batchAddPodMember(uint256 _podId, address[] calldata _members)
+ external
+ override
+ hasAnyOfThreeRoles(TribeRoles.GOVERNOR, TribeRoles.POD_ADMIN, getSpecificPodAdminRole(_podId))
+ {
+ uint256 numMembers = _members.length;
+ for (uint256 i = 0; i < numMembers; ) {
+ _addMemberToPod(_podId, _members[i]);
+ // i is constrained by being < _members.length
+ unchecked {
+ i += 1;
+ }
+ }
+ }
+
+ /// @notice Admin functionality to remove a member from a pod.
+ /// @dev Permissioned to GOVERNOR, POD_ADMIN, GUARDIAN and POD_ADMIN_REMOVE_MEMBER
+ function removePodMember(uint256 _podId, address _member)
+ external
+ override
+ hasAnyOfFiveRoles(
+ TribeRoles.GOVERNOR,
+ TribeRoles.POD_ADMIN,
+ TribeRoles.GUARDIAN,
+ getSpecificPodGuardianRole(_podId),
+ getSpecificPodAdminRole(_podId)
+ )
+ {
+ _removePodMember(_podId, _member);
+ }
+
+ /// @notice Internal method to remove a member from a pod
+ function _removePodMember(uint256 _podId, address _member) internal {
+ emit RemovePodMember(_podId, _member);
+ memberToken.burn(_member, _podId);
+ }
+
+ /// @notice Admin functionality to batch remove a member from a pod
+ /// @dev Permissioned to GOVERNOR, POD_ADMIN, GUARDIAN and POD_ADMIN_REMOVE_MEMBER
+ function batchRemovePodMember(uint256 _podId, address[] calldata _members)
+ external
+ override
+ hasAnyOfFiveRoles(
+ TribeRoles.GOVERNOR,
+ TribeRoles.POD_ADMIN,
+ TribeRoles.GUARDIAN,
+ getSpecificPodGuardianRole(_podId),
+ getSpecificPodAdminRole(_podId)
+ )
+ {
+ uint256 numMembers = _members.length;
+ for (uint256 i = 0; i < numMembers; ) {
+ _removePodMember(_podId, _members[i]);
+
+ // i is constrained by being < _members.length
+ unchecked {
+ i += 1;
+ }
+ }
+ }
+
+ /// @notice Admin functionality to turn off pod membership transfer
+ /// @dev Permissioned to GOVERNOR, POD_ADMIN and the specific pod admin role
+ function lockMembershipTransfers(uint256 _podId)
+ external
+ override
+ hasAnyOfThreeRoles(TribeRoles.GOVERNOR, TribeRoles.POD_ADMIN, getSpecificPodAdminRole(_podId))
+ {
+ _setMembershipTransferLock(_podId, true);
+ }
+
+ /// @notice Admin functionality to turn on pod membership transfers
+ /// @dev Permissioned to GOVERNOR, POD_ADMIN and the specific pod admin role
+ function unlockMembershipTransfers(uint256 _podId)
+ external
+ override
+ hasAnyOfThreeRoles(TribeRoles.GOVERNOR, TribeRoles.POD_ADMIN, getSpecificPodAdminRole(_podId))
+ {
+ _setMembershipTransferLock(_podId, false);
+ }
+
+ /// @notice Internal method to toggle a pod membership transfer lock
+ function _setMembershipTransferLock(uint256 _podId, bool _lock) internal {
+ ControllerV1 podController = ControllerV1(memberToken.memberController(_podId));
+ podController.setPodTransferLock(_podId, _lock);
+ emit PodMembershipTransferLock(_podId, _lock);
+ }
+
+ /// @notice Transfer the admin of a pod to a new address
+ /// @dev Permissioned to GOVERNOR, POD_ADMIN and the specific pod admin role
+ function transferAdmin(uint256 _podId, address _newAdmin)
+ external
+ hasAnyOfThreeRoles(TribeRoles.GOVERNOR, TribeRoles.POD_ADMIN, getSpecificPodAdminRole(_podId))
+ {
+ ControllerV1 podController = ControllerV1(memberToken.memberController(_podId));
+ address oldPodAdmin = podController.podAdmin(_podId);
+
+ podController.updatePodAdmin(_podId, _newAdmin);
+ emit UpdatePodAdmin(_podId, oldPodAdmin, _newAdmin);
+ }
+
+ /////////////// VETO CONTROLLER /////////////////
+
+ /// @notice Allow a proposal to be vetoed in a pod timelock
+ /// @dev Permissioned to GOVERNOR, POD_VETO_ADMIN, GUARDIAN, POD_ADMIN and the specific
+ /// pod admin and guardian roles
+ function veto(uint256 _podId, bytes32 _proposalId)
+ external
+ override
+ hasAnyOfSixRoles(
+ TribeRoles.GOVERNOR,
+ TribeRoles.POD_VETO_ADMIN,
+ TribeRoles.GUARDIAN,
+ TribeRoles.POD_ADMIN,
+ getSpecificPodGuardianRole(_podId),
+ getSpecificPodAdminRole(_podId)
+ )
+ {
+ address _podTimelock = podFactory.getPodTimelock(_podId);
+ emit VetoTimelock(_podId, _podTimelock, _proposalId);
+ TimelockController(payable(_podTimelock)).cancel(_proposalId);
+ }
+}
diff --git a/contracts/pods/PodExecutor.sol b/contracts/pods/PodExecutor.sol
new file mode 100644
index 000000000..b55e5b670
--- /dev/null
+++ b/contracts/pods/PodExecutor.sol
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {ITimelock} from "../dao/timelock/ITimelock.sol";
+import {CoreRef} from "../refs/CoreRef.sol";
+
+/// @title PodExecutor
+/// @notice Executor gateway contract that allows any address to execute prepared timelock transactions
+/// @dev Access is granted to this contract to execute transactions on a timelock
+contract PodExecutor is CoreRef {
+ event ExecuteTransaction(address timelock, bytes32 dataHash);
+
+ constructor(address _core) CoreRef(_core) {}
+
+ /// @notice Execute a timelock transaction. Must have EXECUTOR_ROLE on the appropriate timelock
+ function execute(
+ address timelock,
+ address target,
+ uint256 value,
+ bytes calldata data,
+ bytes32 predecessor,
+ bytes32 salt
+ ) public payable whenNotPaused {
+ bytes32 dataPayloadHash = keccak256(data);
+ ITimelock(timelock).execute(target, value, data, predecessor, salt);
+ emit ExecuteTransaction(timelock, dataPayloadHash);
+ }
+
+ /// @notice Batch execute transactions on a set of timelocks. Must have EXECUTE_ROLE on the appropriate timelocks
+ function executeBatch(
+ address[] memory timelock,
+ address[] memory target,
+ uint256[] memory value,
+ bytes[] calldata data,
+ bytes32[] memory predecessor,
+ bytes32[] memory salt
+ ) external payable whenNotPaused {
+ for (uint256 i = 0; i < timelock.length; i += 1) {
+ execute(timelock[i], target[i], value[i], data[i], predecessor[i], salt[i]);
+ }
+ }
+}
diff --git a/contracts/pods/PodFactory.sol b/contracts/pods/PodFactory.sol
new file mode 100644
index 000000000..0629506be
--- /dev/null
+++ b/contracts/pods/PodFactory.sol
@@ -0,0 +1,268 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
+import {ControllerV1} from "@orcaprotocol/contracts/contracts/ControllerV1.sol";
+import {MemberToken} from "@orcaprotocol/contracts/contracts/MemberToken.sol";
+import {IGnosisSafe} from "./interfaces//IGnosisSafe.sol";
+import {IPodFactory} from "./interfaces/IPodFactory.sol";
+
+import {TribeRoles} from "../core/TribeRoles.sol";
+import {CoreRef} from "../refs/CoreRef.sol";
+import {ICore} from "../core/ICore.sol";
+import {PodAdminGateway} from "./PodAdminGateway.sol";
+import {PodExecutor} from "./PodExecutor.sol";
+
+/// @title PodFactory for TRIBE Governance pods
+/// @notice A factory to create optimistic pods used in the Tribe Governance system
+/// @dev This contract is primarily a factory contract which can be used to deploy
+/// more optimistic governance pods. It will create an Orca pod and if specified,
+/// deploy a timelock alongside it. The timelock and Orca pod are linked.
+contract PodFactory is CoreRef, IPodFactory {
+ /// @notice Orca membership token for the pods. Handles permissioning pod members
+ MemberToken public immutable memberToken;
+
+ /// @notice Public contract that has EXECUTOR_ROLE on all pod timelocks, to allow permissionless execution
+ PodExecutor public immutable podExecutor;
+
+ /// @notice Default podController used to create pods
+ ControllerV1 public override defaultPodController;
+
+ /// @notice Mapping between podId and it's timelock
+ mapping(uint256 => address) public override getPodTimelock;
+
+ /// @notice Mapping between timelock and podId
+ mapping(address => uint256) public getPodId;
+
+ /// @notice Created pod safe addresses
+ address[] private podSafeAddresses;
+
+ /// @notice Track whether the one time use Council pod was used
+ bool public tribalCouncilDeployed;
+
+ /// @notice Minimum delay of a pod timelock, if one is to be created with one
+ uint256 public constant MIN_TIMELOCK_DELAY = 1 days;
+
+ /// @param _core Fei core address
+ /// @param _memberToken Membership token that manages the Orca pod membership
+ /// @param _defaultPodController Default pod controller that will be used to create pods initially
+ /// @param _podExecutor Public contract that will be granted the role to execute transactions on all timelocks
+ constructor(
+ address _core,
+ address _memberToken,
+ address _defaultPodController,
+ address _podExecutor
+ ) CoreRef(_core) {
+ podExecutor = PodExecutor(_podExecutor);
+ defaultPodController = ControllerV1(_defaultPodController);
+ memberToken = MemberToken(_memberToken);
+ }
+
+ ///////////////////// GETTERS ///////////////////////
+
+ /// @notice Get the number of pods this factory has created
+ function getNumberOfPods() external view override returns (uint256) {
+ return podSafeAddresses.length;
+ }
+
+ /// @notice Get the safe addresses of all pods created by this factory
+ function getPodSafeAddresses() external view override returns (address[] memory) {
+ return podSafeAddresses;
+ }
+
+ /// @notice Get the member token
+ function getMemberToken() external view override returns (MemberToken) {
+ return memberToken;
+ }
+
+ /// @notice Get the pod controller for a podId
+ function getPodController(uint256 podId) external view override returns (ControllerV1) {
+ return ControllerV1(memberToken.memberController(podId));
+ }
+
+ /// @notice Get the address of the Gnosis safe that represents a pod
+ /// @param podId Unique id for the orca pod
+ function getPodSafe(uint256 podId) public view override returns (address) {
+ ControllerV1 podController = ControllerV1(memberToken.memberController(podId));
+ return podController.podIdToSafe(podId);
+ }
+
+ /// @notice Get the number of pod members
+ /// @param podId Unique id for the orca pod
+ function getNumMembers(uint256 podId) external view override returns (uint256) {
+ address safe = getPodSafe(podId);
+ address[] memory members = IGnosisSafe(safe).getOwners();
+ return uint256(members.length);
+ }
+
+ /// @notice Get all members on the pod
+ /// @param podId Unique id for the orca pod
+ function getPodMembers(uint256 podId) public view override returns (address[] memory) {
+ ControllerV1 podController = ControllerV1(memberToken.memberController(podId));
+ address safeAddress = podController.podIdToSafe(podId);
+ return IGnosisSafe(safeAddress).getOwners();
+ }
+
+ /// @notice Get the signer threshold on the pod
+ /// @param podId Unique id for the orca pod
+ function getPodThreshold(uint256 podId) external view override returns (uint256) {
+ address safe = getPodSafe(podId);
+ uint256 threshold = uint256(IGnosisSafe(safe).getThreshold());
+ return threshold;
+ }
+
+ /// @notice Get the next pod id
+ function getNextPodId() external view override returns (uint256) {
+ return memberToken.getNextAvailablePodId();
+ }
+
+ /// @notice Get the podAdmin from the pod controller
+ /// @param podId Unique id for the orca pod
+ function getPodAdmin(uint256 podId) external view override returns (address) {
+ ControllerV1 podController = ControllerV1(memberToken.memberController(podId));
+ return podController.podAdmin(podId);
+ }
+
+ /// @notice Get whether membership transfers are enabled for a pod
+ function getIsMembershipTransferLocked(uint256 podId) external view override returns (bool) {
+ ControllerV1 podController = ControllerV1(memberToken.memberController(podId));
+ return podController.isTransferLocked(podId);
+ }
+
+ //////////////////// STATE-CHANGING API ////////////////////
+
+ /// @notice Deploy the genesis pod, one time use method. It will not lock membership transfers, has to be done
+ /// in a seperate call to the PodAdminGateway
+ function deployCouncilPod(PodConfig calldata _config)
+ external
+ override
+ returns (
+ uint256,
+ address,
+ address
+ )
+ {
+ require(!tribalCouncilDeployed, "Genesis pod already deployed");
+ tribalCouncilDeployed = true;
+ return _createOptimisticPod(_config);
+ }
+
+ /// @notice Create an Orca pod with timelock. Callable by the DAO and the Tribal Council
+ /// Returns podId, pod timelock address and the Pod Gnosis Safe address
+ /// This will lock membership transfers by default
+ function createOptimisticPod(PodConfig calldata _config)
+ public
+ override
+ hasAnyOfTwoRoles(TribeRoles.GOVERNOR, TribeRoles.POD_ADMIN)
+ returns (
+ uint256,
+ address,
+ address
+ )
+ {
+ (uint256 podId, address timelock, address safe) = _createOptimisticPod(_config);
+
+ // Disable membership transfers by default
+ PodAdminGateway(_config.admin).lockMembershipTransfers(podId);
+ return (podId, timelock, safe);
+ }
+
+ /// @notice Update the default pod controller
+ function updateDefaultPodController(address _newDefaultController)
+ external
+ override
+ hasAnyOfTwoRoles(TribeRoles.GOVERNOR, TribeRoles.POD_ADMIN)
+ {
+ emit UpdateDefaultPodController(address(defaultPodController), _newDefaultController);
+ defaultPodController = ControllerV1(_newDefaultController);
+ }
+
+ //////////////////////// INTERNAL ////////////////////////////
+
+ /// @notice Internal method to create a child optimistic pod
+ /// @param _config Pod configuraton
+ function _createOptimisticPod(PodConfig calldata _config)
+ internal
+ returns (
+ uint256,
+ address,
+ address
+ )
+ {
+ uint256 podId = memberToken.getNextAvailablePodId();
+
+ address safeAddress = _createPod(
+ _config.members,
+ _config.threshold,
+ _config.label,
+ _config.ensString,
+ _config.imageUrl,
+ _config.admin,
+ podId
+ );
+
+ // Timelock will by default be address(0) if no `minDelay` is provided
+ address timelock;
+ if (_config.minDelay != 0) {
+ require(_config.minDelay >= MIN_TIMELOCK_DELAY, "Min delay too small");
+ timelock = address(_createTimelock(safeAddress, _config.minDelay, address(podExecutor), _config.admin));
+ // Set mapping from podId to timelock for reference
+ getPodTimelock[podId] = timelock;
+ getPodId[timelock] = podId;
+ }
+
+ podSafeAddresses.push(safeAddress);
+ emit CreatePod(podId, safeAddress, timelock);
+ return (podId, timelock, safeAddress);
+ }
+
+ /// @notice Create an Orca pod - a Gnosis Safe with a membership wrapper
+ function _createPod(
+ address[] calldata _members,
+ uint256 _threshold,
+ bytes32 _label,
+ string calldata _ensString,
+ string calldata _imageUrl,
+ address _admin,
+ uint256 podId
+ ) internal returns (address) {
+ defaultPodController.createPod(_members, _threshold, _admin, _label, _ensString, podId, _imageUrl);
+ return defaultPodController.podIdToSafe(podId);
+ }
+
+ /// @notice Create a timelock, linking to an Orca pod
+ /// @param safeAddress Address of the Gnosis Safe
+ /// @param minDelay Delay on the timelock
+ /// @param publicExecutor Non-permissioned smart contract that
+ /// allows any address to execute a ready transaction
+ /// @param podAdmin Address which is the admin of the Orca pods
+ /// @dev Roles that individual addresses are granted on the relevant timelock:
+ // safeAddress - PROPOSER_ROLE, CANCELLER_ROLE, EXECUTOR_ROLE
+ // podAdmin - CANCELLER_ROLE
+ // publicExecutor - EXECUTOR_ROLE
+ function _createTimelock(
+ address safeAddress,
+ uint256 minDelay,
+ address publicExecutor,
+ address podAdmin
+ ) internal returns (address) {
+ address[] memory proposers = new address[](2);
+ proposers[0] = safeAddress;
+ proposers[1] = podAdmin;
+
+ address[] memory executors = new address[](2);
+ executors[0] = safeAddress;
+ executors[1] = publicExecutor;
+
+ TimelockController timelock = new TimelockController(minDelay, proposers, executors);
+
+ // Revoke PROPOSER_ROLE priviledges from podAdmin. Only pod Safe can propose
+ timelock.revokeRole(timelock.PROPOSER_ROLE(), podAdmin);
+
+ // Revoke TIMELOCK_ADMIN_ROLE priviledges from deployer factory
+ timelock.revokeRole(timelock.TIMELOCK_ADMIN_ROLE(), address(this));
+
+ emit CreateTimelock(address(timelock));
+ return address(timelock);
+ }
+}
diff --git a/contracts/pods/RoleBastion.sol b/contracts/pods/RoleBastion.sol
new file mode 100644
index 000000000..c755f2b7a
--- /dev/null
+++ b/contracts/pods/RoleBastion.sol
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {TribeRoles} from "../core/TribeRoles.sol";
+import {CoreRef} from "../refs/CoreRef.sol";
+import {Core} from "../core/Core.sol";
+
+/// @title RoleBastion
+/// @notice Used by ROLE_ADMIN to create new roles. Granted GOVERNOR role with a simple API
+contract RoleBastion is CoreRef {
+ event BastionRoleCreate(bytes32 indexed role, bytes32 roleAdmin);
+
+ constructor(address _core) CoreRef(_core) {}
+
+ /// @notice Create a role whose admin is the ROLE_ADMIN
+ /// @param role Role to be created
+ /// @dev Function is used by an address with ROLE_ADMIN, e.g. the TribalCouncil, to create
+ /// non-major roles. A check is made to ensure that the role to be created does not
+ /// have an admin i.e. that it is a new admin.
+ /// Specificially, can not create the bytes32(0) role as this is set as the CONTRACT_ADMIN_ROLE
+ /// in core and has not been created yet.
+ function createRole(bytes32 role) external onlyTribeRole(TribeRoles.ROLE_ADMIN) whenNotPaused {
+ require(role != bytes32(0), "Can not create zero role");
+
+ bytes32 roleAdmin = core().getRoleAdmin(role);
+ require(roleAdmin == bytes32(0), "Role already exists");
+ emit BastionRoleCreate(role, TribeRoles.ROLE_ADMIN);
+ core().createRole(role, TribeRoles.ROLE_ADMIN);
+ }
+}
diff --git a/contracts/pods/interfaces/IGnosisSafe.sol b/contracts/pods/interfaces/IGnosisSafe.sol
new file mode 100644
index 000000000..01b56c688
--- /dev/null
+++ b/contracts/pods/interfaces/IGnosisSafe.sol
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+interface IGnosisSafe {
+ enum Operation {
+ Call,
+ DelegateCall
+ }
+
+ /// @dev Allows a Module to execute a Safe transaction without any further confirmations.
+ /// @param to Destination address of module transaction.
+ /// @param value Ether value of module transaction.
+ /// @param data Data payload of module transaction.
+ /// @param operation Operation type of module transaction.
+ function execTransactionFromModule(
+ address to,
+ uint256 value,
+ bytes calldata data,
+ Operation operation
+ ) external returns (bool success);
+
+ function execTransaction(
+ address to,
+ uint256 value,
+ bytes calldata data,
+ Operation operation,
+ uint256 safeTxGas,
+ uint256 baseGas,
+ uint256 gasPrice,
+ address gasToken,
+ address payable refundReceiver,
+ bytes memory signatures
+ ) external payable returns (bool success);
+
+ function approveHash(bytes32 hashToApprove) external;
+
+ function encodeTransactionData(
+ address to,
+ uint256 value,
+ bytes calldata data,
+ Operation operation,
+ uint256 safeTxGas,
+ uint256 baseGas,
+ uint256 gasPrice,
+ address gasToken,
+ address refundReceiver,
+ uint256 _nonce
+ ) external view returns (bytes memory);
+
+ /// @dev Returns array of owners.
+ /// @return Array of Safe owners.
+ function getOwners() external view returns (address[] memory);
+
+ function isOwner(address owner) external view returns (bool);
+
+ function getThreshold() external view returns (uint256);
+
+ /// @dev Returns array of modules.
+ /// @param start Start of the page.
+ /// @param pageSize Maximum number of modules that should be returned.
+ /// @return array Array of modules.
+ /// @return next Start of the next page.
+ function getModulesPaginated(address start, uint256 pageSize)
+ external
+ view
+ returns (address[] memory array, address next);
+
+ /// @dev Returns if an module is enabled
+ /// @return True if the module is enabled
+ function isModuleEnabled(address module) external view returns (bool);
+}
diff --git a/contracts/pods/interfaces/IPodAdminGateway.sol b/contracts/pods/interfaces/IPodAdminGateway.sol
new file mode 100644
index 000000000..366b34db3
--- /dev/null
+++ b/contracts/pods/interfaces/IPodAdminGateway.sol
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+interface IPodAdminGateway {
+ event AddPodMember(uint256 indexed podId, address member);
+ event RemovePodMember(uint256 indexed podId, address member);
+ event UpdatePodAdmin(uint256 indexed podId, address oldPodAdmin, address newPodAdmin);
+ event PodMembershipTransferLock(uint256 indexed podId, bool lock);
+
+ // Veto functionality
+ event VetoTimelock(uint256 indexed podId, address indexed timelock, bytes32 proposalId);
+
+ function getSpecificPodAdminRole(uint256 _podId) external pure returns (bytes32);
+
+ function getSpecificPodGuardianRole(uint256 _podId) external pure returns (bytes32);
+
+ function addPodMember(uint256 _podId, address _member) external;
+
+ function batchAddPodMember(uint256 _podId, address[] calldata _members) external;
+
+ function removePodMember(uint256 _podId, address _member) external;
+
+ function batchRemovePodMember(uint256 _podId, address[] calldata _members) external;
+
+ function lockMembershipTransfers(uint256 _podId) external;
+
+ function unlockMembershipTransfers(uint256 _podId) external;
+
+ function veto(uint256 _podId, bytes32 proposalId) external;
+}
diff --git a/contracts/pods/interfaces/IPodFactory.sol b/contracts/pods/interfaces/IPodFactory.sol
new file mode 100644
index 000000000..a45ae785c
--- /dev/null
+++ b/contracts/pods/interfaces/IPodFactory.sol
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {ControllerV1} from "@orcaprotocol/contracts/contracts/ControllerV1.sol";
+import {MemberToken} from "@orcaprotocol/contracts/contracts/MemberToken.sol";
+
+interface IPodFactory {
+ /// @notice Configuration used when creating a pod
+ /// @param members List of members to be added to the pod
+ /// @param threshold Number of members that need to approve a transaction on the Gnosis safe
+ /// @param label Metadata, Human readable label for the pod
+ /// @param ensString Metadata, ENS name of the pod
+ /// @param imageUrl Metadata, URL to a image to represent the pod in frontends
+ /// @param minDelay Delay on the timelock
+ struct PodConfig {
+ address[] members;
+ uint256 threshold;
+ bytes32 label;
+ string ensString;
+ string imageUrl;
+ address admin;
+ uint256 minDelay;
+ }
+
+ event CreatePod(uint256 indexed podId, address indexed safeAddress, address indexed timelock);
+ event CreateTimelock(address indexed timelock);
+ event UpdatePodController(address indexed oldController, address indexed newController);
+
+ event UpdateDefaultPodController(address indexed oldController, address indexed newController);
+
+ function deployCouncilPod(PodConfig calldata _config)
+ external
+ returns (
+ uint256,
+ address,
+ address
+ );
+
+ function defaultPodController() external view returns (ControllerV1);
+
+ function getMemberToken() external view returns (MemberToken);
+
+ function getPodSafeAddresses() external view returns (address[] memory);
+
+ function getNumberOfPods() external view returns (uint256);
+
+ function getPodController(uint256 podId) external view returns (ControllerV1);
+
+ function getPodSafe(uint256 podId) external view returns (address);
+
+ function getPodTimelock(uint256 podId) external view returns (address);
+
+ function getNumMembers(uint256 podId) external view returns (uint256);
+
+ function getPodMembers(uint256 podId) external view returns (address[] memory);
+
+ function getPodThreshold(uint256 podId) external view returns (uint256);
+
+ function getIsMembershipTransferLocked(uint256 podId) external view returns (bool);
+
+ function getNextPodId() external view returns (uint256);
+
+ function getPodAdmin(uint256 podId) external view returns (address);
+
+ function createOptimisticPod(PodConfig calldata _config)
+ external
+ returns (
+ uint256,
+ address,
+ address
+ );
+
+ function updateDefaultPodController(address _newDefaultController) external;
+}
diff --git a/contracts/refs/CoreRef.sol b/contracts/refs/CoreRef.sol
index 9ca333597..434329d36 100644
--- a/contracts/refs/CoreRef.sol
+++ b/contracts/refs/CoreRef.sol
@@ -43,10 +43,7 @@ abstract contract CoreRef is ICoreRef, Pausable {
}
modifier onlyPCVController() {
- require(
- _core.isPCVController(msg.sender),
- "CoreRef: Caller is not a PCV controller"
- );
+ require(_core.isPCVController(msg.sender), "CoreRef: Caller is not a PCV controller");
_;
}
@@ -59,10 +56,7 @@ abstract contract CoreRef is ICoreRef, Pausable {
}
modifier onlyGovernor() {
- require(
- _core.isGovernor(msg.sender),
- "CoreRef: Caller is not a governor"
- );
+ require(_core.isGovernor(msg.sender), "CoreRef: Caller is not a governor");
_;
}
@@ -76,9 +70,7 @@ abstract contract CoreRef is ICoreRef, Pausable {
modifier isGovernorOrGuardianOrAdmin() {
require(
- _core.isGovernor(msg.sender) ||
- _core.isGuardian(msg.sender) ||
- isContractAdmin(msg.sender),
+ _core.isGovernor(msg.sender) || _core.isGuardian(msg.sender) || isContractAdmin(msg.sender),
"CoreRef: Caller is not governor or guardian or admin"
);
_;
@@ -92,11 +84,7 @@ abstract contract CoreRef is ICoreRef, Pausable {
// Modifiers to allow any combination of roles
modifier hasAnyOfTwoRoles(bytes32 role1, bytes32 role2) {
- require(
- _core.hasRole(role1, msg.sender) ||
- _core.hasRole(role2, msg.sender),
- "UNAUTHORIZED"
- );
+ require(_core.hasRole(role1, msg.sender) || _core.hasRole(role2, msg.sender), "UNAUTHORIZED");
_;
}
@@ -106,9 +94,7 @@ abstract contract CoreRef is ICoreRef, Pausable {
bytes32 role3
) {
require(
- _core.hasRole(role1, msg.sender) ||
- _core.hasRole(role2, msg.sender) ||
- _core.hasRole(role3, msg.sender),
+ _core.hasRole(role1, msg.sender) || _core.hasRole(role2, msg.sender) || _core.hasRole(role3, msg.sender),
"UNAUTHORIZED"
);
_;
@@ -148,27 +134,38 @@ abstract contract CoreRef is ICoreRef, Pausable {
_;
}
+ modifier hasAnyOfSixRoles(
+ bytes32 role1,
+ bytes32 role2,
+ bytes32 role3,
+ bytes32 role4,
+ bytes32 role5,
+ bytes32 role6
+ ) {
+ require(
+ _core.hasRole(role1, msg.sender) ||
+ _core.hasRole(role2, msg.sender) ||
+ _core.hasRole(role3, msg.sender) ||
+ _core.hasRole(role4, msg.sender) ||
+ _core.hasRole(role5, msg.sender) ||
+ _core.hasRole(role6, msg.sender),
+ "UNAUTHORIZED"
+ );
+ _;
+ }
+
modifier onlyFei() {
require(msg.sender == address(_fei), "CoreRef: Caller is not FEI");
_;
}
/// @notice sets a new admin role for this contract
- function setContractAdminRole(bytes32 newContractAdminRole)
- external
- override
- onlyGovernor
- {
+ function setContractAdminRole(bytes32 newContractAdminRole) external override onlyGovernor {
_setContractAdminRole(newContractAdminRole);
}
/// @notice returns whether a given address has the admin role for this contract
- function isContractAdmin(address _admin)
- public
- view
- override
- returns (bool)
- {
+ function isContractAdmin(address _admin) public view override returns (bool) {
return _core.hasRole(CONTRACT_ADMIN_ROLE, _admin);
}
@@ -225,9 +222,6 @@ abstract contract CoreRef is ICoreRef, Pausable {
function _setContractAdminRole(bytes32 newContractAdminRole) internal {
bytes32 oldContractAdminRole = CONTRACT_ADMIN_ROLE;
CONTRACT_ADMIN_ROLE = newContractAdminRole;
- emit ContractAdminRoleUpdate(
- oldContractAdminRole,
- newContractAdminRole
- );
+ emit ContractAdminRoleUpdate(oldContractAdminRole, newContractAdminRole);
}
}
diff --git a/contracts/refs/ICoreRef.sol b/contracts/refs/ICoreRef.sol
index 614f9a89d..0d50cd7b8 100644
--- a/contracts/refs/ICoreRef.sol
+++ b/contracts/refs/ICoreRef.sol
@@ -10,10 +10,7 @@ interface ICoreRef {
event CoreUpdate(address indexed oldCore, address indexed newCore);
- event ContractAdminRoleUpdate(
- bytes32 indexed oldContractAdminRole,
- bytes32 indexed newContractAdminRole
- );
+ event ContractAdminRoleUpdate(bytes32 indexed oldContractAdminRole, bytes32 indexed newContractAdminRole);
// ----------- Governor only state changing api -----------
diff --git a/contracts/refs/IOracleRef.sol b/contracts/refs/IOracleRef.sol
index 54c2baa8b..cf2131136 100644
--- a/contracts/refs/IOracleRef.sol
+++ b/contracts/refs/IOracleRef.sol
@@ -12,15 +12,9 @@ interface IOracleRef {
event InvertUpdate(bool oldDoInvert, bool newDoInvert);
- event DecimalsNormalizerUpdate(
- int256 oldDecimalsNormalizer,
- int256 newDecimalsNormalizer
- );
+ event DecimalsNormalizerUpdate(int256 oldDecimalsNormalizer, int256 newDecimalsNormalizer);
- event BackupOracleUpdate(
- address indexed oldBackupOracle,
- address indexed newBackupOracle
- );
+ event BackupOracleUpdate(address indexed oldBackupOracle, address indexed newBackupOracle);
// ----------- State changing API -----------
@@ -48,8 +42,5 @@ interface IOracleRef {
function readOracle() external view returns (Decimal.D256 memory);
- function invert(Decimal.D256 calldata price)
- external
- pure
- returns (Decimal.D256 memory);
+ function invert(Decimal.D256 calldata price) external pure returns (Decimal.D256 memory);
}
diff --git a/contracts/refs/IUniRef.sol b/contracts/refs/IUniRef.sol
index 468dcc082..48e0e2a6f 100644
--- a/contracts/refs/IUniRef.sol
+++ b/contracts/refs/IUniRef.sol
@@ -20,8 +20,5 @@ interface IUniRef {
function token() external view returns (address);
- function getReserves()
- external
- view
- returns (uint256 feiReserves, uint256 tokenReserves);
+ function getReserves() external view returns (uint256 feiReserves, uint256 tokenReserves);
}
diff --git a/contracts/refs/OracleRef.sol b/contracts/refs/OracleRef.sol
index e7ba5e6e9..63a9757fc 100644
--- a/contracts/refs/OracleRef.sol
+++ b/contracts/refs/OracleRef.sol
@@ -59,21 +59,13 @@ abstract contract OracleRef is IOracleRef, CoreRef {
/// @notice sets the new decimalsNormalizer
/// @param newDecimalsNormalizer the new decimalsNormalizer
- function setDecimalsNormalizer(int256 newDecimalsNormalizer)
- external
- override
- onlyGovernor
- {
+ function setDecimalsNormalizer(int256 newDecimalsNormalizer) external override onlyGovernor {
_setDecimalsNormalizer(newDecimalsNormalizer);
}
/// @notice sets the referenced backup oracle
/// @param newBackupOracle the new backup oracle to reference
- function setBackupOracle(address newBackupOracle)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setBackupOracle(address newBackupOracle) external override onlyGovernorOrAdmin {
_setBackupOracle(newBackupOracle);
}
@@ -81,12 +73,7 @@ abstract contract OracleRef is IOracleRef, CoreRef {
/// @param price the peg price to invert
/// @return the inverted peg as a Decimal
/// @dev the inverted peg would be X per FEI
- function invert(Decimal.D256 memory price)
- public
- pure
- override
- returns (Decimal.D256 memory)
- {
+ function invert(Decimal.D256 memory price) public pure override returns (Decimal.D256 memory) {
return Decimal.one().div(price);
}
@@ -150,16 +137,12 @@ abstract contract OracleRef is IOracleRef, CoreRef {
function _setDecimalsNormalizer(int256 newDecimalsNormalizer) internal {
int256 oldDecimalsNormalizer = decimalsNormalizer;
decimalsNormalizer = newDecimalsNormalizer;
- emit DecimalsNormalizerUpdate(
- oldDecimalsNormalizer,
- newDecimalsNormalizer
- );
+ emit DecimalsNormalizerUpdate(oldDecimalsNormalizer, newDecimalsNormalizer);
}
function _setDecimalsNormalizerFromToken(address token) internal {
int256 feiDecimals = 18;
- int256 _decimalsNormalizer = feiDecimals -
- int256(uint256(IERC20Metadata(token).decimals()));
+ int256 _decimalsNormalizer = feiDecimals - int256(uint256(IERC20Metadata(token).decimals()));
if (doInvert) {
_decimalsNormalizer = -1 * _decimalsNormalizer;
diff --git a/contracts/refs/UniRef.sol b/contracts/refs/UniRef.sol
index 476a787e9..b340e0702 100644
--- a/contracts/refs/UniRef.sol
+++ b/contracts/refs/UniRef.sol
@@ -37,17 +37,10 @@ abstract contract UniRef is IUniRef, OracleRef {
}
/// @notice pair reserves with fei listed first
- function getReserves()
- public
- view
- override
- returns (uint256 feiReserves, uint256 tokenReserves)
- {
+ function getReserves() public view override returns (uint256 feiReserves, uint256 tokenReserves) {
address token0 = pair.token0();
(uint256 reserve0, uint256 reserve1, ) = pair.getReserves();
- (feiReserves, tokenReserves) = address(fei()) == token0
- ? (reserve0, reserve1)
- : (reserve1, reserve0);
+ (feiReserves, tokenReserves) = address(fei()) == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
return (feiReserves, tokenReserves);
}
diff --git a/contracts/sentinel/PCVSentinel.sol b/contracts/sentinel/PCVSentinel.sol
index 741dc8add..a7563e1b3 100644
--- a/contracts/sentinel/PCVSentinel.sol
+++ b/contracts/sentinel/PCVSentinel.sol
@@ -58,11 +58,7 @@ contract PCVSentinel is IPCVSentinel, CoreRef, ReentrancyGuard {
* @notice adds a guard contract to the PCV Sentinel
* @param guard the guard-contract to add
*/
- function knight(address guard)
- external
- override
- hasAnyOfTwoRoles(TribeRoles.GUARDIAN, TribeRoles.GOVERNOR)
- {
+ function knight(address guard) external override hasAnyOfTwoRoles(TribeRoles.GUARDIAN, TribeRoles.GOVERNOR) {
guards.add(guard);
// Inform the kingdom of this glorious news
@@ -73,11 +69,7 @@ contract PCVSentinel is IPCVSentinel, CoreRef, ReentrancyGuard {
* @notice removes a guard
* @param traitor the guard-contract to remove
*/
- function slay(address traitor)
- external
- override
- hasAnyOfTwoRoles(TribeRoles.GUARDIAN, TribeRoles.GOVERNOR)
- {
+ function slay(address traitor) external override hasAnyOfTwoRoles(TribeRoles.GUARDIAN, TribeRoles.GOVERNOR) {
guards.remove(traitor);
// Inform the kingdom of this sudden and inevitable betrayal
@@ -94,23 +86,14 @@ contract PCVSentinel is IPCVSentinel, CoreRef, ReentrancyGuard {
require(guards.contains(guard), "Guard does not exist.");
require(IGuard(guard).check(), "No need to protec.");
- (
- address[] memory targets,
- bytes[] memory calldatas,
- uint256[] memory values
- ) = IGuard(guard).getProtecActions();
+ (address[] memory targets, bytes[] memory calldatas, uint256[] memory values) = IGuard(guard)
+ .getProtecActions();
for (uint256 i = 0; i < targets.length; i++) {
require(targets[i] != address(this), "Cannot target self.");
require(address(this).balance >= values[i], "Insufficient ETH.");
- (bool success, bytes memory returndata) = targets[i].call{
- value: values[i]
- }(calldatas[i]);
- Address.verifyCallResult(
- success,
- returndata,
- "Guard sub-action failed with empty error message."
- );
+ (bool success, bytes memory returndata) = targets[i].call{value: values[i]}(calldatas[i]);
+ Address.verifyCallResult(success, returndata, "Guard sub-action failed with empty error message.");
}
emit Protected(guard);
diff --git a/contracts/sentinel/guards/examples/MultiActionGuard.sol b/contracts/sentinel/guards/examples/MultiActionGuard.sol
index fa4633c8c..a13b3ba44 100644
--- a/contracts/sentinel/guards/examples/MultiActionGuard.sol
+++ b/contracts/sentinel/guards/examples/MultiActionGuard.sol
@@ -4,16 +4,11 @@ pragma solidity ^0.8.4;
import "../../IGuard.sol";
contract MultiActionGuard is IGuard {
- address private constant ONE =
- address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
- address private constant TWO =
- address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
- address private constant THREE =
- address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
- address private constant FOUR =
- address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
- address private constant FIVE =
- address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
+ address private constant ONE = address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
+ address private constant TWO = address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
+ address private constant THREE = address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
+ address private constant FOUR = address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
+ address private constant FIVE = address(0x11e52c75998fe2E7928B191bfc5B25937Ca16741);
function check() external view override returns (bool) {
if (address(block.coinbase).balance % 2 == 0) return true;
diff --git a/contracts/staking/ITribalChief.sol b/contracts/staking/ITribalChief.sol
index d5d06b1c5..28ef3a297 100644
--- a/contracts/staking/ITribalChief.sol
+++ b/contracts/staking/ITribalChief.sol
@@ -24,10 +24,7 @@ interface ITribalChief {
}
/// @notice view only functions that return data on pools, user deposit(s), tribe distributed per block, and other constants
- function rewardMultipliers(uint256 _pid, uint128 _blocksLocked)
- external
- view
- returns (uint128);
+ function rewardMultipliers(uint256 _pid, uint128 _blocksLocked) external view returns (uint128);
function stakedToken(uint256 _index) external view returns (IERC20);
@@ -44,20 +41,11 @@ interface ITribalChief {
function tribePerBlock() external view returns (uint256);
- function pendingRewards(uint256 _pid, address _user)
- external
- view
- returns (uint256);
+ function pendingRewards(uint256 _pid, address _user) external view returns (uint256);
- function getTotalStakedInPool(uint256 pid, address user)
- external
- view
- returns (uint256);
+ function getTotalStakedInPool(uint256 pid, address user) external view returns (uint256);
- function openUserDeposits(uint256 pid, address user)
- external
- view
- returns (uint256);
+ function openUserDeposits(uint256 pid, address user) external view returns (uint256);
function numPools() external view returns (uint256);
diff --git a/contracts/staking/StakingTokenWrapper.sol b/contracts/staking/StakingTokenWrapper.sol
index d8f2145ae..1a9ce7a87 100644
--- a/contracts/staking/StakingTokenWrapper.sol
+++ b/contracts/staking/StakingTokenWrapper.sol
@@ -20,9 +20,7 @@ contract StakingTokenWrapper is ERC20, Initializable {
/// @notice constructor for the StakingTokenWrapper
/// @param _tribalChief the TribalChief contract
/// @param _beneficiary the recipient of all harvested TRIBE
- constructor(ITribalChief _tribalChief, address _beneficiary)
- ERC20("TribalChief Staking Wrapper", "TKN")
- {
+ constructor(ITribalChief _tribalChief, address _beneficiary) ERC20("TribalChief Staking Wrapper", "TKN") {
tribalChief = _tribalChief;
beneficiary = _beneficiary;
}
@@ -30,10 +28,7 @@ contract StakingTokenWrapper is ERC20, Initializable {
/// @notice initialize the pool with this token as the sole staker
/// @param _pid the pool id of the staking pool associated with this token
function init(uint256 _pid) external initializer {
- require(
- address(tribalChief.stakedToken(_pid)) == address(this),
- "StakedTokenWrapper: invalid pid"
- );
+ require(address(tribalChief.stakedToken(_pid)) == address(this), "StakedTokenWrapper: invalid pid");
pid = _pid;
uint256 amount = 1e18;
diff --git a/contracts/staking/TribalChief.sol b/contracts/staking/TribalChief.sol
index 73de0385e..c945a87af 100644
--- a/contracts/staking/TribalChief.sol
+++ b/contracts/staking/TribalChief.sol
@@ -106,24 +106,9 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
/// decimals for rewards multiplier
uint256 public SCALE_FACTOR;
- event Deposit(
- address indexed user,
- uint256 indexed pid,
- uint256 amount,
- uint256 indexed depositID
- );
- event Withdraw(
- address indexed user,
- uint256 indexed pid,
- uint256 amount,
- address indexed to
- );
- event EmergencyWithdraw(
- address indexed user,
- uint256 indexed pid,
- uint256 amount,
- address indexed to
- );
+ event Deposit(address indexed user, uint256 indexed pid, uint256 amount, uint256 indexed depositID);
+ event Withdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
+ event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
event Harvest(address indexed user, uint256 indexed pid, uint256 amount);
event LogPoolAddition(
uint256 indexed pid,
@@ -131,17 +116,8 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
IERC20 indexed stakedToken,
IRewarder indexed rewarder
);
- event LogSetPool(
- uint256 indexed pid,
- uint256 allocPoint,
- IRewarder indexed rewarder,
- bool overwrite
- );
- event LogPoolMultiplier(
- uint256 indexed pid,
- uint128 indexed lockLength,
- uint256 indexed multiplier
- );
+ event LogSetPool(uint256 indexed pid, uint256 allocPoint, IRewarder indexed rewarder, bool overwrite);
+ event LogPoolMultiplier(uint256 indexed pid, uint128 indexed lockLength, uint256 indexed multiplier);
event LogUpdatePool(
uint256 indexed pid,
uint128 indexed lastRewardBlock,
@@ -177,15 +153,9 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
/// make sure to call the update pool function before hitting this function
/// this will ensure that all of the rewards a user earned previously get paid out
/// @param newBlockReward The new amount of tribe per block to distribute
- function updateBlockReward(uint256 newBlockReward)
- external
- onlyGovernorOrAdmin
- {
+ function updateBlockReward(uint256 newBlockReward) external onlyGovernorOrAdmin {
if (isContractAdmin(msg.sender)) {
- require(
- newBlockReward < tribalChiefTribePerBlock,
- "TribalChief: admin can only lower reward rate"
- );
+ require(newBlockReward < tribalChiefTribePerBlock, "TribalChief: admin can only lower reward rate");
}
tribalChiefTribePerBlock = newBlockReward;
@@ -250,20 +220,12 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
}
/// @notice Returns the number of user deposits in a single pool.
- function openUserDeposits(uint256 pid, address user)
- public
- view
- returns (uint256)
- {
+ function openUserDeposits(uint256 pid, address user) public view returns (uint256) {
return depositInfo[pid][user].length;
}
/// @notice Returns the amount a user deposited in a single pool.
- function getTotalStakedInPool(uint256 pid, address user)
- public
- view
- returns (uint256)
- {
+ function getTotalStakedInPool(uint256 pid, address user) public view returns (uint256) {
uint256 amount = 0;
for (uint256 i = 0; i < depositInfo[pid][user].length; i++) {
DepositInfo storage poolDeposit = depositInfo[pid][user][i];
@@ -284,10 +246,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
IRewarder _rewarder,
RewardData[] calldata rewardData
) external onlyGovernorOrAdmin {
- require(
- allocPoint > 0,
- "pool must have allocation points to be created"
- );
+ require(allocPoint > 0, "pool must have allocation points to be created");
uint128 lastRewardBlock = block.number.toUint128();
totalAllocPoint += allocPoint;
stakedToken.push(_stakedToken);
@@ -300,10 +259,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
for (uint256 i = 0; i < rewardData.length; i++) {
// if locklength is 0 and multiplier is not equal to scale factor, revert
if (rewardData[i].lockLength == 0) {
- require(
- rewardData[i].rewardMultiplier == SCALE_FACTOR,
- "invalid multiplier for 0 lock length"
- );
+ require(rewardData[i].rewardMultiplier == SCALE_FACTOR, "invalid multiplier for 0 lock length");
} else {
// else, assert that multplier is greater than or equal to scale factor
require(
@@ -312,13 +268,8 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
);
}
- rewardMultipliers[pid][rewardData[i].lockLength] = rewardData[i]
- .rewardMultiplier;
- emit LogPoolMultiplier(
- pid,
- rewardData[i].lockLength,
- rewardData[i].rewardMultiplier
- );
+ rewardMultipliers[pid][rewardData[i].lockLength] = rewardData[i].rewardMultiplier;
+ emit LogPoolMultiplier(pid, rewardData[i].lockLength, rewardData[i].rewardMultiplier);
}
poolInfo.push(
@@ -348,9 +299,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
// we must update the pool before applying set so that all previously accrued rewards
// are paid out before alloc points change
updatePool(_pid);
- totalAllocPoint =
- (totalAllocPoint - poolInfo[_pid].allocPoint) +
- _allocPoint;
+ totalAllocPoint = (totalAllocPoint - poolInfo[_pid].allocPoint) + _allocPoint;
require(totalAllocPoint > 0, "total allocation points cannot be 0");
poolInfo[_pid].allocPoint = _allocPoint;
@@ -358,12 +307,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
rewarder[_pid] = _rewarder;
}
- emit LogSetPool(
- _pid,
- _allocPoint,
- overwrite ? _rewarder : rewarder[_pid],
- overwrite
- );
+ emit LogSetPool(_pid, _allocPoint, overwrite ? _rewarder : rewarder[_pid], overwrite);
}
/// @notice Reset the given pool's TRIBE allocation to 0 and unlock the pool.
@@ -392,34 +336,24 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
/// @param _pid The index of the pool. See `poolInfo`.
/// @param _user Address of user.
/// @return pending TRIBE reward for a given user.
- function pendingRewards(uint256 _pid, address _user)
- external
- view
- returns (uint256)
- {
+ function pendingRewards(uint256 _pid, address _user) external view returns (uint256) {
PoolInfo storage pool = poolInfo[_pid];
UserInfo storage user = userInfo[_pid][_user];
uint256 accTribePerShare = pool.accTribePerShare;
- if (
- block.number > pool.lastRewardBlock && pool.virtualTotalSupply != 0
- ) {
+ if (block.number > pool.lastRewardBlock && pool.virtualTotalSupply != 0) {
// this is the block delta
uint256 blocks = block.number - pool.lastRewardBlock;
// this is the amount of tribe this pool is entitled to for the last n blocks
- uint256 tribeReward = (blocks * tribePerBlock() * pool.allocPoint) /
- totalAllocPoint;
+ uint256 tribeReward = (blocks * tribePerBlock() * pool.allocPoint) / totalAllocPoint;
// this is the new tribe per each pool share
- accTribePerShare =
- accTribePerShare +
- ((tribeReward * ACC_TRIBE_PRECISION) / pool.virtualTotalSupply);
+ accTribePerShare = accTribePerShare + ((tribeReward * ACC_TRIBE_PRECISION) / pool.virtualTotalSupply);
}
// use the virtual amount to calculate the users share of the pool and their pending rewards
return
- (((user.virtualAmount * accTribePerShare) / ACC_TRIBE_PRECISION)
- .toInt256() - user.rewardDebt).toUint256();
+ (((user.virtualAmount * accTribePerShare) / ACC_TRIBE_PRECISION).toInt256() - user.rewardDebt).toUint256();
}
/// @notice Update reward variables for all pools. Be careful of gas spending!
@@ -444,20 +378,11 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
uint256 virtualSupply = pool.virtualTotalSupply;
if (virtualSupply > 0 && totalAllocPoint != 0) {
uint256 blocks = block.number - pool.lastRewardBlock;
- uint256 tribeReward = (blocks *
- tribePerBlock() *
- pool.allocPoint) / totalAllocPoint;
- pool.accTribePerShare =
- pool.accTribePerShare +
- ((tribeReward * ACC_TRIBE_PRECISION) / virtualSupply);
+ uint256 tribeReward = (blocks * tribePerBlock() * pool.allocPoint) / totalAllocPoint;
+ pool.accTribePerShare = pool.accTribePerShare + ((tribeReward * ACC_TRIBE_PRECISION) / virtualSupply);
}
pool.lastRewardBlock = block.number.toUint128();
- emit LogUpdatePool(
- pid,
- pool.lastRewardBlock,
- virtualSupply,
- pool.accTribePerShare
- );
+ emit LogUpdatePool(pid, pool.lastRewardBlock, virtualSupply, pool.accTribePerShare);
}
}
@@ -493,8 +418,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
userPoolData.virtualAmount += virtualAmountDelta;
// update reward debt after virtual amount is set by multiplying virtual amount delta by tribe per share
// this tells us when the user deposited and allows us to calculate their rewards later
- userPoolData.rewardDebt += ((virtualAmountDelta *
- pool.accTribePerShare) / ACC_TRIBE_PRECISION).toInt256();
+ userPoolData.rewardDebt += ((virtualAmountDelta * pool.accTribePerShare) / ACC_TRIBE_PRECISION).toInt256();
// pool virtual total supply needs to increase here
pool.virtualTotalSupply += virtualAmountDelta;
@@ -505,32 +429,18 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
// Interactions
IRewarder _rewarder = rewarder[pid];
if (address(_rewarder) != address(0)) {
- _rewarder.onSushiReward(
- pid,
- msg.sender,
- msg.sender,
- 0,
- userPoolData.virtualAmount
- );
+ _rewarder.onSushiReward(pid, msg.sender, msg.sender, 0, userPoolData.virtualAmount);
}
stakedToken[pid].safeTransferFrom(msg.sender, address(this), amount);
- emit Deposit(
- msg.sender,
- pid,
- amount,
- depositInfo[pid][msg.sender].length - 1
- );
+ emit Deposit(msg.sender, pid, amount, depositInfo[pid][msg.sender].length - 1);
}
/// @notice Withdraw staked tokens from pool.
/// @param pid The index of the pool. See `poolInfo`.
/// @param to Receiver of the tokens.
- function withdrawAllAndHarvest(uint256 pid, address to)
- external
- nonReentrant
- {
+ function withdrawAllAndHarvest(uint256 pid, address to) external nonReentrant {
// update the pool, so that accTribePerShare is accurate, then harvest
updatePool(pid);
_harvest(pid, to);
@@ -547,9 +457,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
// if the user has locked the tokens for at least the
// lockup period or the pool has been unlocked, allow
// user to withdraw their principle from this deposit, otherwise skip this action
- if (
- poolDeposit.unlockBlock > block.number && pool.unlocked == false
- ) {
+ if (poolDeposit.unlockBlock > block.number && pool.unlocked == false) {
continue;
}
@@ -559,9 +467,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
// gather the virtual and regular amount delta
unlockedTotalAmount += poolDeposit.amount;
- virtualLiquidityDelta +=
- (poolDeposit.amount * poolDeposit.multiplier) /
- SCALE_FACTOR;
+ virtualLiquidityDelta += (poolDeposit.amount * poolDeposit.multiplier) / SCALE_FACTOR;
// zero out the user object as their amount will be withdrawn and all pending tribe will be paid out
poolDeposit.unlockBlock = 0;
@@ -589,8 +495,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
// Here, we just have to make the reward debt equal to:
// (current tribe per share * the virtual liquidity) / ACC_TRIBE_PRECISION
// of that user so that it is accurate.
- user.rewardDebt = ((user.virtualAmount * pool.accTribePerShare) /
- ACC_TRIBE_PRECISION).toInt256();
+ user.rewardDebt = ((user.virtualAmount * pool.accTribePerShare) / ACC_TRIBE_PRECISION).toInt256();
}
// regardless of whether or not we removed all of this users liquidity from the pool, we will need to
@@ -629,20 +534,15 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
// if the user has locked the tokens for at least the
// lockup period or the pool has been unlocked by the governor,
// allow user to withdraw their principle
- require(
- poolDeposit.unlockBlock <= block.number || pool.unlocked == true,
- "tokens locked"
- );
+ require(poolDeposit.unlockBlock <= block.number || pool.unlocked == true, "tokens locked");
- uint256 virtualAmountDelta = (amount * poolDeposit.multiplier) /
- SCALE_FACTOR;
+ uint256 virtualAmountDelta = (amount * poolDeposit.multiplier) / SCALE_FACTOR;
// Effects
poolDeposit.amount -= amount;
user.rewardDebt =
user.rewardDebt -
- ((virtualAmountDelta * pool.accTribePerShare) / ACC_TRIBE_PRECISION)
- .toInt256();
+ ((virtualAmountDelta * pool.accTribePerShare) / ACC_TRIBE_PRECISION).toInt256();
user.virtualAmount -= virtualAmountDelta;
pool.virtualTotalSupply -= virtualAmountDelta;
@@ -660,13 +560,10 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
UserInfo storage user = userInfo[pid][msg.sender];
// assumption here is that we will never go over 2^256 -1
- int256 accumulatedTribe = ((user.virtualAmount *
- pool.accTribePerShare) / ACC_TRIBE_PRECISION).toInt256();
+ int256 accumulatedTribe = ((user.virtualAmount * pool.accTribePerShare) / ACC_TRIBE_PRECISION).toInt256();
// this should never happen
- assert(
- accumulatedTribe >= 0 && accumulatedTribe - user.rewardDebt >= 0
- );
+ assert(accumulatedTribe >= 0 && accumulatedTribe - user.rewardDebt >= 0);
uint256 pendingTribe = (accumulatedTribe - user.rewardDebt).toUint256();
@@ -683,13 +580,7 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
IRewarder _rewarder = rewarder[pid];
if (address(_rewarder) != address(0)) {
- _rewarder.onSushiReward(
- pid,
- msg.sender,
- to,
- pendingTribe,
- user.virtualAmount
- );
+ _rewarder.onSushiReward(pid, msg.sender, to, pendingTribe, user.virtualAmount);
}
emit Harvest(msg.sender, pid, pendingTribe);
@@ -722,19 +613,13 @@ contract TribalChief is CoreRef, ReentrancyGuard, Initializable {
// if the user has locked the tokens for at least the
// lockup period or the pool has been unlocked, allow
// user to withdraw their principle
- require(
- poolDeposit.unlockBlock <= block.number ||
- pool.unlocked == true,
- "tokens locked"
- );
+ require(poolDeposit.unlockBlock <= block.number || pool.unlocked == true, "tokens locked");
totalUnlocked += poolDeposit.amount;
// update the aggregated deposit virtual amount
// update the virtualTotalSupply
- virtualLiquidityDelta +=
- (poolDeposit.amount * poolDeposit.multiplier) /
- SCALE_FACTOR;
+ virtualLiquidityDelta += (poolDeposit.amount * poolDeposit.multiplier) / SCALE_FACTOR;
}
// subtract virtualLiquidity Delta from the virtual total supply of this pool
diff --git a/contracts/staking/TribalChiefSyncExtension.sol b/contracts/staking/TribalChiefSyncExtension.sol
index 446f3fa36..e43da9378 100644
--- a/contracts/staking/TribalChiefSyncExtension.sol
+++ b/contracts/staking/TribalChiefSyncExtension.sol
@@ -26,9 +26,7 @@ contract TribalChiefSyncExtension {
}
/// @notice Sync a rewards rate change automatically using pre-approved map
- function autoDecreaseRewards(
- IAutoRewardsDistributor[] calldata distributors
- ) external update(distributors) {
+ function autoDecreaseRewards(IAutoRewardsDistributor[] calldata distributors) external update(distributors) {
tribalChiefSync.autoDecreaseRewards();
}
@@ -50,13 +48,7 @@ contract TribalChiefSyncExtension {
bytes32 salt,
IAutoRewardsDistributor[] calldata distributors
) external update(distributors) {
- tribalChiefSync.addPool(
- allocPoint,
- stakedToken,
- rewarder,
- rewardData,
- salt
- );
+ tribalChiefSync.addPool(allocPoint, stakedToken, rewarder, rewardData, salt);
}
/// @notice Sync a pool set action
diff --git a/contracts/staking/TribalChiefSyncV2.sol b/contracts/staking/TribalChiefSyncV2.sol
index acb456b50..593f00f1e 100644
--- a/contracts/staking/TribalChiefSyncV2.sol
+++ b/contracts/staking/TribalChiefSyncV2.sol
@@ -98,8 +98,7 @@ contract TribalChiefSyncV2 {
}
function isRewardDecreaseAvailable() public view returns (bool) {
- return
- rewardsArray.length > 0 && nextRewardTimestamp() < block.timestamp;
+ return rewardsArray.length > 0 && nextRewardTimestamp() < block.timestamp;
}
function nextRewardTimestamp() public view returns (uint256) {
@@ -111,14 +110,8 @@ contract TribalChiefSyncV2 {
}
/// @notice Sync a rewards rate change
- function decreaseRewards(uint256 tribePerBlock, bytes32 salt)
- external
- update
- {
- bytes memory data = abi.encodeWithSelector(
- tribalChief.updateBlockReward.selector,
- tribePerBlock
- );
+ function decreaseRewards(uint256 tribePerBlock, bytes32 salt) external update {
+ bytes memory data = abi.encodeWithSelector(tribalChief.updateBlockReward.selector, tribePerBlock);
timelock.execute(address(tribalChief), 0, data, bytes32(0), salt);
}
@@ -148,22 +141,13 @@ contract TribalChiefSyncV2 {
bool overwrite,
bytes32 salt
) external update {
- bytes memory data = abi.encodeWithSelector(
- tribalChief.set.selector,
- pid,
- allocPoint,
- rewarder,
- overwrite
- );
+ bytes memory data = abi.encodeWithSelector(tribalChief.set.selector, pid, allocPoint, rewarder, overwrite);
timelock.execute(address(tribalChief), 0, data, bytes32(0), salt);
}
/// @notice Sync a pool reset rewards action
function resetPool(uint256 pid, bytes32 salt) external update {
- bytes memory data = abi.encodeWithSelector(
- tribalChief.resetRewards.selector,
- pid
- );
+ bytes memory data = abi.encodeWithSelector(tribalChief.resetRewards.selector, pid);
timelock.execute(address(tribalChief), 0, data, bytes32(0), salt);
}
}
diff --git a/contracts/test/integration/IntegrationTest.t.sol b/contracts/test/integration/IntegrationTest.t.sol
index 62a8b744a..70282492e 100644
--- a/contracts/test/integration/IntegrationTest.t.sol
+++ b/contracts/test/integration/IntegrationTest.t.sol
@@ -4,6 +4,8 @@ pragma solidity ^0.8.0;
import {DSTest} from "../utils/DSTest.sol";
import {StdLib} from "../utils/StdLib.sol";
+// Note: IntegrationTest contracts must contain IntegrationTest in the name
+// in order for the test runner to identify it as an integration test
contract IntegrationTest is DSTest, StdLib {
function setUp() public {}
diff --git a/contracts/test/integration/fixtures/Gnosis.sol b/contracts/test/integration/fixtures/Gnosis.sol
new file mode 100644
index 000000000..b7bac7ec5
--- /dev/null
+++ b/contracts/test/integration/fixtures/Gnosis.sol
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {IGnosisSafe} from "../../../pods/interfaces/IGnosisSafe.sol";
+import {Vm} from "../../utils/Vm.sol";
+
+/// @notice Create a Gnosis Safe transaction
+function createGnosisTx(
+ address safe,
+ address txTarget,
+ bytes memory txData,
+ uint256 ownerPrivateKey,
+ Vm vm
+) returns (bool) {
+ {
+ bytes memory gnosisDataToSign = IGnosisSafe(safe).encodeTransactionData(
+ txTarget,
+ 0, // value
+ txData,
+ IGnosisSafe.Operation.Call, // Operation
+ 1_000_000, // safeTxGas
+ 0, // baseGas
+ 0, // gasPrice
+ address(0), // gasToken
+ payable(address(0)), // refundReceiver
+ 0 // Nonce
+ );
+
+ (uint8 v, bytes32 r, bytes32 s) = vm.sign(ownerPrivateKey, keccak256(gnosisDataToSign));
+ bytes memory signatures = abi.encodePacked(r, s, v);
+
+ bool success = IGnosisSafe(safe).execTransaction(
+ txTarget, // should the target be the timelock or the dummy contract?
+ 0, // value
+ txData, // 1m max
+ IGnosisSafe.Operation.Call, // CALL, rather than DELEGATECALL
+ 1_000_000, // safeTxGas
+ 0, // baseGas
+ 0, // gasPrice
+ address(0), // gasToken
+ payable(address(0)), // refundReceiver
+ signatures // Packed signatures
+ );
+ return success;
+ }
+}
diff --git a/contracts/test/integration/fixtures/MainnetAddresses.sol b/contracts/test/integration/fixtures/MainnetAddresses.sol
new file mode 100644
index 000000000..8338e38b1
--- /dev/null
+++ b/contracts/test/integration/fixtures/MainnetAddresses.sol
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+library MainnetAddresses {
+ address public constant FEI_DAO_TIMELOCK = 0xd51dbA7a94e1adEa403553A8235C302cEbF41a3c;
+ address public constant CORE = 0x8d5ED43dCa8C2F7dFB20CF7b53CC7E593635d7b9;
+ address public constant TRIBE = 0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B;
+ address public constant MEMBER_TOKEN = 0x0762aA185b6ed2dCA77945Ebe92De705e0C37AE3;
+ address public constant ORCA_POD_CONTROLLER_V1 = 0xD89AAd5348A34E440E72f5F596De4fA7e291A3e8;
+ address public constant ORCA_POD_CONTROLLER_V1_2 = 0x17FDC2Eaf2bd46f3e1052CCbccD9e6AD0296C42c;
+}
diff --git a/contracts/test/integration/fixtures/Orca.sol b/contracts/test/integration/fixtures/Orca.sol
new file mode 100644
index 000000000..7814eadd4
--- /dev/null
+++ b/contracts/test/integration/fixtures/Orca.sol
@@ -0,0 +1,149 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
+import {MemberToken} from "@orcaprotocol/contracts/contracts/MemberToken.sol";
+import {ControllerV1} from "@orcaprotocol/contracts/contracts/ControllerV1.sol";
+import {InviteToken} from "@orcaprotocol/contracts/contracts/InviteToken.sol";
+import {IPodFactory} from "../../../pods/interfaces/IPodFactory.sol";
+import {PodFactory} from "../../../pods/PodFactory.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {PodAdminGateway} from "../../../pods/PodAdminGateway.sol";
+import {MainnetAddresses} from "../fixtures/MainnetAddresses.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+import {Core} from "../../../core/Core.sol";
+
+function createPod(
+ ControllerV1 controller,
+ MemberToken memberToken,
+ address[] memory members,
+ address podAdmin
+) returns (uint256) {
+ // Number of members required to sign a transaction
+ uint256 threshold = 2;
+ bytes32 podLabel = bytes32("hellopod");
+ string memory ensString = "hellopod.eth";
+ string memory imageUrl = "hellopod.come";
+
+ // Get the next podId
+ uint256 expectedPodId = memberToken.getNextAvailablePodId();
+
+ controller.createPod(members, threshold, podAdmin, podLabel, ensString, expectedPodId, imageUrl);
+ return expectedPodId;
+}
+
+function setupTimelock(
+ address proposer,
+ address executor,
+ address core
+) returns (TimelockController) {
+ address[] memory proposers = new address[](1);
+ proposers[0] = proposer;
+
+ address[] memory executors = new address[](1);
+ executors[0] = executor;
+ TimelockController timelock = new TimelockController(0, proposers, executors);
+ return timelock;
+}
+
+/// @notice Mint SHIP tokens to an address. SHIP tokens required to deploy
+/// Orca pods in beta release
+function mintOrcaTokens(
+ address to,
+ uint256 amount,
+ Vm vm
+) {
+ address shipToken = 0x872EdeaD0c56930777A82978d4D7deAE3A2d1539;
+ address priviledgedShip = 0x2149A222feD42fefc3A120B3DdA34482190fC666;
+
+ InviteToken inviteToken = InviteToken(shipToken);
+
+ vm.prank(priviledgedShip);
+ inviteToken.mint(to, amount);
+}
+
+/// @notice Pod with a timelock
+function getPodParamsWithTimelock(address podAdmin) pure returns (IPodFactory.PodConfig memory) {
+ bytes32 label = bytes32("hellopod");
+ uint256 minDelay = 2 days;
+ return getBasePodParams(label, minDelay, podAdmin);
+}
+
+/// @notice Pod without a timelock, minDelay is set to 0
+function getPodParamsWithNoTimelock(address podAdmin) pure returns (IPodFactory.PodConfig memory) {
+ bytes32 label = bytes32("hellopod");
+ uint256 minDelay = 0;
+ return getBasePodParams(label, minDelay, podAdmin);
+}
+
+/// @notice Genesis pod, the TribalCouncil, with a timelock
+function getCouncilPodParams(address podAdmin) pure returns (IPodFactory.PodConfig memory) {
+ bytes32 label = bytes32("tribalcouncil");
+ uint256 minDelay = 2 days;
+ return getBasePodParams(label, minDelay, podAdmin);
+}
+
+function getBasePodParams(
+ bytes32 label,
+ uint256 minDelay,
+ address podAdmin
+) pure returns (IPodFactory.PodConfig memory) {
+ uint256 threshold = 1;
+ string memory ensString = "hellopod.eth";
+ string memory imageUrl = "hellopod.com";
+
+ address[] memory members = new address[](3);
+ members[0] = address(0x201);
+ members[1] = address(0x202);
+ members[2] = address(0x203);
+
+ IPodFactory.PodConfig memory config = IPodFactory.PodConfig({
+ members: members,
+ threshold: threshold,
+ label: label,
+ ensString: ensString,
+ imageUrl: imageUrl,
+ admin: podAdmin,
+ minDelay: minDelay
+ });
+ return config;
+}
+
+/// @dev Deploy pod factory and use to create a pod
+function deployPodWithSystem(
+ address core,
+ address podController,
+ address memberToken,
+ address podExecutor,
+ address podDeployer, // must be GOVERNOR or have POD_ADMIN role
+ Vm vm
+)
+ returns (
+ uint256,
+ address,
+ address,
+ address,
+ address,
+ IPodFactory.PodConfig memory
+ )
+{
+ // 1. Deploy PodFactory
+ PodFactory factory = new PodFactory(core, memberToken, podController, podExecutor);
+ mintOrcaTokens(address(factory), 2, vm);
+
+ // 2. Deploy PodAdminGateway
+ PodAdminGateway podAdminGateway = new PodAdminGateway(MainnetAddresses.CORE, memberToken, address(factory));
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(address(podAdminGateway));
+
+ // Grant POD_ADMIN role to factory
+ vm.startPrank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ Core(core).createRole(TribeRoles.POD_ADMIN, TribeRoles.GOVERNOR);
+ Core(core).grantRole(TribeRoles.POD_ADMIN, address(factory));
+ vm.stopPrank();
+
+ vm.deal(address(factory), 1000 ether);
+ vm.prank(podDeployer);
+ (uint256 podId, address podTimelock, address safe) = factory.createOptimisticPod(podConfig);
+
+ return (podId, podTimelock, safe, address(factory), address(podAdminGateway), podConfig);
+}
diff --git a/contracts/test/integration/governance/GovernanceMetadataRegistry.t.sol b/contracts/test/integration/governance/GovernanceMetadataRegistry.t.sol
new file mode 100644
index 000000000..23b4395ce
--- /dev/null
+++ b/contracts/test/integration/governance/GovernanceMetadataRegistry.t.sol
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {DSTest} from "../../utils/DSTest.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+import {GovernanceMetadataRegistry} from "../../../pods/GovernanceMetadataRegistry.sol";
+import {Core} from "../../../core/Core.sol";
+import {MainnetAddresses} from "../fixtures/MainnetAddresses.sol";
+
+contract GovernanceMetadataRegistryIntegrationTest is DSTest {
+ GovernanceMetadataRegistry registry;
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+
+ address priviledgedRegistrationAddress = address(0x10);
+
+ function setUp() public {
+ vm.startPrank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ Core(MainnetAddresses.CORE).createRole(TribeRoles.POD_METADATA_REGISTER_ROLE, TribeRoles.GOVERNOR);
+ Core(MainnetAddresses.CORE).grantRole(TribeRoles.POD_METADATA_REGISTER_ROLE, priviledgedRegistrationAddress);
+ vm.stopPrank();
+
+ registry = new GovernanceMetadataRegistry(MainnetAddresses.CORE);
+ }
+
+ function testRegisterProposal() public {
+ string memory proposalMetadata = "FIP_X: Perform Upgrade. This FIP will upgrade the contracts in the...";
+ uint256 podId = uint256(1);
+ uint256 proposalId = uint256(1);
+
+ assertFalse(registry.isProposalRegistered(podId, proposalId, proposalMetadata));
+
+ vm.prank(priviledgedRegistrationAddress);
+ registry.registerProposal(podId, proposalId, proposalMetadata);
+
+ assertTrue(registry.isProposalRegistered(podId, proposalId, proposalMetadata));
+ }
+
+ function testRegisterFailsIfIncorrectRole() public {
+ string memory proposalMetadata = "FIP_X: Perform Upgrade. This FIP will upgrade the contracts in the...";
+ uint256 podId = uint256(1);
+ uint256 proposalId = uint256(1);
+
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+ registry.registerProposal(podId, proposalId, proposalMetadata);
+ }
+
+ function testCanNotReRegisterProposal() public {
+ string memory proposalMetadata = "FIP_X: Perform Upgrade. This FIP will upgrade the contracts in the...";
+ uint256 podId = uint256(1);
+ uint256 proposalId = uint256(1);
+
+ vm.prank(priviledgedRegistrationAddress);
+ registry.registerProposal(podId, proposalId, proposalMetadata);
+
+ vm.expectRevert(bytes("Proposal already registered"));
+ vm.prank(priviledgedRegistrationAddress);
+ registry.registerProposal(podId, proposalId, proposalMetadata);
+ }
+}
diff --git a/contracts/test/integration/governance/NopeDAO.t.sol b/contracts/test/integration/governance/NopeDAO.t.sol
new file mode 100644
index 000000000..87a1f9771
--- /dev/null
+++ b/contracts/test/integration/governance/NopeDAO.t.sol
@@ -0,0 +1,215 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
+import {ERC20VotesComp} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol";
+import {DSTest} from "../../utils/DSTest.sol";
+import {IPodFactory} from "../../../pods/interfaces/IPodFactory.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+import {NopeDAO} from "../../../dao/nopeDAO/NopeDAO.sol";
+import {Core} from "../../../core/Core.sol";
+import {PodFactory} from "../../../pods/PodFactory.sol";
+import {MainnetAddresses} from "../fixtures/MainnetAddresses.sol";
+import {deployPodWithSystem} from "../fixtures/Orca.sol";
+import {PodAdminGateway} from "../../../pods/PodAdminGateway.sol";
+import {DummyStorage} from "../../utils/Fixtures.sol";
+import {IPodFactory} from "../../../pods/interfaces/IPodFactory.sol";
+
+contract NopeDAOIntegrationTest is DSTest {
+ uint256 excessQuorumTribe = (11e6) * (10**18);
+
+ uint256 podId;
+ address podTimelock;
+ address safe;
+
+ address private user = address(0x1);
+ address private podExecutor = address(0x2);
+ address private podAdmin;
+ address private factory;
+ IPodFactory.PodConfig podConfig;
+
+ NopeDAO nopeDAO;
+ Core core = Core(MainnetAddresses.CORE);
+ ERC20VotesComp tribe = ERC20VotesComp(MainnetAddresses.TRIBE);
+
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+
+ function setUp() public {
+ nopeDAO = new NopeDAO(tribe, MainnetAddresses.CORE);
+
+ // Transfer Tribe from treasury to a user
+ vm.prank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ core.allocateTribe(user, excessQuorumTribe);
+
+ // Self-delegate that Tribe
+ vm.prank(user);
+ tribe.delegate(user);
+
+ // Create POD_VETO_ADMIN role and grant to NopeDAO
+ vm.startPrank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ core.createRole(TribeRoles.POD_VETO_ADMIN, TribeRoles.GOVERNOR);
+ core.grantRole(TribeRoles.POD_VETO_ADMIN, address(nopeDAO));
+ vm.stopPrank();
+
+ // Create pod, using a podFactory
+ (podId, podTimelock, safe, factory, podAdmin, podConfig) = deployPodWithSystem(
+ MainnetAddresses.CORE,
+ MainnetAddresses.ORCA_POD_CONTROLLER_V1_2,
+ MainnetAddresses.MEMBER_TOKEN,
+ podExecutor,
+ MainnetAddresses.FEI_DAO_TIMELOCK,
+ vm
+ );
+ }
+
+ /// @notice Validate that inital setup worked
+ function testInitialState() public {
+ assertTrue(core.hasRole(TribeRoles.POD_VETO_ADMIN, address(nopeDAO)));
+ }
+
+ /// @notice Validate that the GOVERNOR can update the NopeDAO settings
+ function testGovernorCanUpdateQuroum() public {
+ uint256 newQuorum = 15_000_000e18;
+ vm.prank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ nopeDAO.setQuorum(newQuorum);
+
+ uint256 updatedQuorum = nopeDAO.quorum(0);
+ assertEq(updatedQuorum, newQuorum);
+ }
+
+ function testGovernorCanUpdateVotingDelay() public {
+ uint256 newVotingDelay = 10;
+ vm.prank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ nopeDAO.setVotingDelay(newVotingDelay);
+
+ uint256 updatedVotingDelay = nopeDAO.votingDelay();
+ assertEq(updatedVotingDelay, newVotingDelay);
+ }
+
+ function testGovernorCanUpdateVotingPeriod() public {
+ uint256 newVotingPeriod = 86_400;
+ vm.prank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ nopeDAO.setVotingPeriod(newVotingPeriod);
+
+ uint256 updatedVotingPeriod = nopeDAO.votingPeriod();
+ assertEq(updatedVotingPeriod, newVotingPeriod);
+ }
+
+ function testGovernorCanUpdateProposalThreshold() public {
+ uint256 newProposalThreshold = 100;
+ vm.prank(MainnetAddresses.FEI_DAO_TIMELOCK);
+ nopeDAO.setProposalThreshold(newProposalThreshold);
+
+ uint256 updatedProposalThreshold = nopeDAO.proposalThreshold();
+ assertEq(updatedProposalThreshold, newProposalThreshold);
+ }
+
+ /// @notice Validate that NopeDAO can not update it's own governor settings
+ function testCanNotUpdateOwnGovernorSettings() public {
+ vm.roll(block.number + 1);
+
+ address[] memory targets = new address[](1);
+ targets[0] = address(nopeDAO);
+
+ uint256[] memory values = new uint256[](1);
+ values[0] = uint256(0);
+
+ uint256 newVotingDelay = 10;
+ bytes[] memory calldatas = new bytes[](1);
+ bytes memory data = abi.encodePacked(bytes4(keccak256(bytes("setVotingDelay(uint256)"))), newVotingDelay);
+ calldatas[0] = data;
+
+ string memory description = "Dummy proposal";
+ bytes32 descriptionHash = keccak256(bytes(description));
+
+ vm.prank(user);
+ uint256 proposalId = nopeDAO.propose(targets, values, calldatas, description);
+ vm.roll(block.number + 1);
+
+ // Cast a vote for the proposal, in excess of quorum
+ vm.prank(user);
+ nopeDAO.castVote(proposalId, 1);
+
+ // No need to skip to end of voting, can execute immediately
+
+ // Validate proposal is now successful
+ uint8 state = uint8(nopeDAO.state(proposalId));
+ assertEq(state, uint8(4));
+
+ // Execute and validate nopeDAO can not update it's own governor settings
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+ nopeDAO.execute(targets, values, calldatas, descriptionHash);
+ }
+
+ /// @notice Validate that the NopeDAO can veto a proposal in a pod timelock
+ function testNope() public {
+ vm.roll(block.number + 1);
+
+ // 1. Deploy Dummy contract to perform a transaction on
+ DummyStorage dummyContract = new DummyStorage();
+ assertEq(dummyContract.getVariable(), 5);
+
+ TimelockController timelockContract = TimelockController(payable(podTimelock));
+
+ // 2. Schedle a transaction from the Pod's safe address to timelock. Transaction sets a variable on a dummy contract
+ uint256 newDummyContractVar = 10;
+ bytes memory timelockExecutionTxData = abi.encodePacked(
+ bytes4(keccak256(bytes("setVariable(uint256)"))),
+ newDummyContractVar
+ );
+
+ vm.prank(safe);
+ timelockContract.schedule(
+ address(dummyContract),
+ 0,
+ timelockExecutionTxData,
+ bytes32(0),
+ bytes32("1"),
+ podConfig.minDelay
+ );
+
+ // 3. Validate that transaction is in timelock
+ bytes32 timelockProposalId = timelockContract.hashOperation(
+ address(dummyContract),
+ 0,
+ timelockExecutionTxData,
+ bytes32(0),
+ bytes32("1")
+ );
+ assertTrue(timelockContract.isOperationPending(timelockProposalId));
+
+ // 4. Prepare NopeDAO transaction to veto the Safe proposal
+ // Need veto to come from nopeDAO to the podAdminGateway
+ address[] memory targets = new address[](1);
+ targets[0] = podAdmin;
+
+ uint256[] memory values = new uint256[](1);
+ values[0] = uint256(0);
+
+ bytes[] memory calldatas = new bytes[](1);
+ bytes memory data = abi.encodeWithSignature("veto(uint256,bytes32)", podId, timelockProposalId);
+ calldatas[0] = data;
+
+ string memory description = "Veto proposal";
+ bytes32 descriptionHash = keccak256(bytes(description));
+
+ uint256 nopeDAOProposalId = nopeDAO.propose(targets, values, calldatas, description);
+
+ // 5. Have user with >quorum delegated TRIBE veto
+ vm.roll(block.number + 1);
+ // Cast a vote for the proposal, in excess of quorum
+ vm.prank(user);
+ nopeDAO.castVote(nopeDAOProposalId, 1);
+
+ uint8 state = uint8(nopeDAO.state(nopeDAOProposalId));
+ assertEq(state, uint8(4));
+
+ // Will send cancel transaction to podAdminGateway
+ nopeDAO.execute(targets, values, calldatas, descriptionHash);
+
+ // 6. Verify that timelocked transaction was vetoed
+ uint256 proposalTimestampReady = timelockContract.getTimestamp(timelockProposalId);
+ assertEq(proposalTimestampReady, 0);
+ }
+}
diff --git a/contracts/test/integration/governance/OptimisticPodTest.t.sol b/contracts/test/integration/governance/OptimisticPodTest.t.sol
new file mode 100644
index 000000000..ea8577a43
--- /dev/null
+++ b/contracts/test/integration/governance/OptimisticPodTest.t.sol
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
+import {MemberToken} from "@orcaprotocol/contracts/contracts/MemberToken.sol";
+import {ControllerV1} from "@orcaprotocol/contracts/contracts/ControllerV1.sol";
+import {IGnosisSafe} from "../../../pods/interfaces/IGnosisSafe.sol";
+
+import {createPod, setupTimelock, mintOrcaTokens} from "../fixtures/Orca.sol";
+import {MainnetAddresses} from "../fixtures/MainnetAddresses.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {DSTest} from "../../utils/DSTest.sol";
+
+/// @dev Tests for the optimistic governance pod unit. This is composed of an
+/// Orca pod and an optimistic timelock. Key agents involved are:
+/// - Orca pod: a Gnosis Safe with a membership wrapper.
+/// It is the Gnosis safe from which transactions are sent to
+/// the optimistic timelock
+/// - Optimistic timelock: a timelock from which transactions are sent to the protocol
+contract OptimisticPodIntegrationTest is DSTest {
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+
+ MemberToken memberToken = MemberToken(MainnetAddresses.MEMBER_TOKEN);
+
+ ControllerV1 controller = ControllerV1(MainnetAddresses.ORCA_POD_CONTROLLER_V1_2);
+
+ address proposer = address(0x1);
+ address executor = address(0x2);
+ address podAdmin = address(0x3);
+
+ address member1 = address(0x4);
+ address member2 = address(0x5);
+ address member3 = address(0x6);
+
+ uint256 podId;
+ uint256 numPodMembers;
+
+ function setUp() public {
+ mintOrcaTokens(address(this), 1, vm);
+
+ // Note: Gnosis safe creation fails if < 3 members
+ address[] memory members = new address[](3);
+ members[0] = member1;
+ members[1] = member2;
+ members[2] = member3;
+
+ numPodMembers = members.length;
+
+ podId = createPod(controller, memberToken, members, podAdmin);
+ }
+
+ /// @notice Validate that a pod can be created
+ function testCreatePod() public {
+ address safeAddress = controller.podIdToSafe(podId);
+ assert(safeAddress != address(0));
+
+ // Validate membership
+ address[] memory members = IGnosisSafe(safeAddress).getOwners();
+ assertEq(members.length, 3);
+
+ address setPodAdmin = controller.podAdmin(podId);
+ assertEq(setPodAdmin, podAdmin);
+ }
+
+ /// @notice Verify that the pod is set as the proposer and can propose on the timelock
+ function testLinkTimelockController() public {
+ address safeAddress = controller.podIdToSafe(podId);
+ TimelockController timelock = setupTimelock(safeAddress, safeAddress, MainnetAddresses.CORE);
+
+ // Be able to call propose via pod/safe. This verifies that the safe has onlyPropose role
+ vm.prank(safeAddress);
+ timelock.schedule(address(0x10), 5, "", bytes32("testing"), bytes32("random"), 0);
+ }
+
+ /// @notice Validate that a member can be removed from a pod by the admin
+ /// Note: Orca sets the memberTokenID to be the podId
+ function testRemovePodMember() public {
+ address safeAddress = controller.podIdToSafe(podId);
+ assertEq(IGnosisSafe(safeAddress).getOwners().length, numPodMembers);
+
+ // PodAdmin removes a member. This simulates the DAO removing a Tribal Council member
+ vm.prank(podAdmin);
+ memberToken.burn(member1, podId);
+
+ // Validate membership removed
+ uint256 hasMemberToken = memberToken.balanceOf(member1, podId);
+ assertEq(hasMemberToken, 0);
+
+ // Validate not an owner of the safe
+ address[] memory members = IGnosisSafe(safeAddress).getOwners();
+ bool isOwner = IGnosisSafe(safeAddress).isOwner(member1);
+ assertFalse(isOwner);
+ assertEq(members.length, 2);
+ assertEq(members[0], member2);
+ assertEq(members[1], member3);
+ }
+
+ /// @notice Validate that a member can be added to a pod
+ function testAddPodMember() public {
+ address newMember = address(0x30);
+ address safeAddress = controller.podIdToSafe(podId);
+
+ // PodAdmin adds a new member
+ vm.prank(podAdmin);
+ memberToken.mint(newMember, podId, bytes(""));
+
+ // Validate membership added
+ uint256 hasMemberToken = memberToken.balanceOf(member1, podId);
+ assertEq(hasMemberToken, 1);
+
+ // Validate member is a Safe Owner
+ address[] memory members = IGnosisSafe(safeAddress).getOwners();
+ bool isOwner = IGnosisSafe(safeAddress).isOwner(newMember);
+ assertTrue(isOwner);
+ assertEq(members.length, numPodMembers + 1);
+ assertEq(members[0], newMember);
+ assertEq(members[1], member1);
+ assertEq(members[2], member2);
+ assertEq(members[3], member3);
+ }
+
+ /// @notice Validate that add pod member is permissioned
+ function testAddPodMemberPermissioned() public {
+ address newMember = address(0x30);
+
+ vm.expectRevert(bytes("No Rules Set"));
+ memberToken.mint(newMember, podId, bytes(""));
+ }
+}
diff --git a/contracts/test/integration/governance/PodAdminGateway.t.sol b/contracts/test/integration/governance/PodAdminGateway.t.sol
new file mode 100644
index 000000000..d227cf3af
--- /dev/null
+++ b/contracts/test/integration/governance/PodAdminGateway.t.sol
@@ -0,0 +1,290 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
+import {ControllerV1} from "@orcaprotocol/contracts/contracts/ControllerV1.sol";
+import {MemberToken} from "@orcaprotocol/contracts/contracts/MemberToken.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {DSTest} from "../../utils/DSTest.sol";
+import {PodFactory} from "../../../pods/PodFactory.sol";
+import {PodAdminGateway} from "../../../pods/PodAdminGateway.sol";
+import {IPodAdminGateway} from "../../../pods/interfaces/IPodAdminGateway.sol";
+import {mintOrcaTokens, getPodParamsWithTimelock} from "../fixtures/Orca.sol";
+import {IPodFactory} from "../../../pods/interfaces/IPodFactory.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+import {ICore} from "../../../core/ICore.sol";
+import {MainnetAddresses} from "../fixtures/MainnetAddresses.sol";
+import {Core} from "../../../core/Core.sol";
+
+contract PodAdminGatewayIntegrationTest is DSTest {
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+
+ PodFactory factory;
+ PodAdminGateway podAdminGateway;
+ IPodFactory.PodConfig podConfig;
+ uint256 podId;
+ bytes32 testRole;
+ address timelock;
+ address safe;
+ address private podExecutor = address(0x500);
+
+ address core = MainnetAddresses.CORE;
+ address memberToken = MainnetAddresses.MEMBER_TOKEN;
+ address podController = MainnetAddresses.ORCA_POD_CONTROLLER_V1_2;
+ address feiDAOTimelock = MainnetAddresses.FEI_DAO_TIMELOCK;
+
+ function setUp() public {
+ // 1. Deploy pod factory
+ factory = new PodFactory(core, memberToken, podController, podExecutor);
+
+ // 2. Deploy pod admin gateway, to expose pod admin functionality
+ podAdminGateway = new PodAdminGateway(core, memberToken, address(factory));
+
+ // Grant the factory the relevant roles to disable membership locks
+ vm.startPrank(feiDAOTimelock);
+ Core(core).createRole(TribeRoles.POD_ADMIN, TribeRoles.GOVERNOR);
+ Core(core).grantRole(TribeRoles.POD_ADMIN, address(factory));
+ vm.stopPrank();
+
+ // 3. Make config for pod, mint Orca tokens to factory
+ IPodFactory.PodConfig memory config = getPodParamsWithTimelock(address(podAdminGateway));
+ podConfig = config;
+ mintOrcaTokens(address(factory), 2, vm);
+
+ // 4. Create pod
+ vm.prank(feiDAOTimelock);
+ (podId, timelock, safe) = factory.createOptimisticPod(podConfig);
+ }
+
+ /// @notice Validate that podAdminGateway contract pod admin, and initial state is valid
+ function testInitialState() public {
+ address podAdmin = factory.getPodAdmin(podId);
+ assertEq(podAdmin, address(podAdminGateway));
+
+ // Validate PodAdminGateway has CANCELLER role, this will allow it to veto
+ TimelockController timelockContract = TimelockController(payable(timelock));
+ assertTrue(timelockContract.hasRole(timelockContract.CANCELLER_ROLE(), address(podAdminGateway)));
+
+ assertTrue(factory.getIsMembershipTransferLocked(podId));
+ }
+
+ /// @notice Validate that a podAdmin can be added for a particular pod by the GOVERNOR
+ function testAddPodMember() public {
+ address newMember = address(0x11);
+
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.addPodMember(podId, newMember);
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length + 1);
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], newMember);
+ }
+
+ /// @notice Validate that a podAdmin can be removed for a particular pod
+ function testRemovePodMember() public {
+ address memberToRemove = podConfig.members[0];
+
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.removePodMember(podId, memberToRemove);
+
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length - 1);
+
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], podConfig.members[1]);
+ assertEq(podMembers[1], podConfig.members[2]);
+ }
+
+ /// @notice Validate that members can be removed by batch
+ function testBatchRemoveMembers() public {
+ address[] memory membersToRemove = new address[](2);
+ membersToRemove[0] = podConfig.members[0];
+ membersToRemove[1] = podConfig.members[1];
+
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.batchRemovePodMember(podId, membersToRemove);
+
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length - membersToRemove.length);
+
+ // Should only be 1 podMember left - the last
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], podConfig.members[2]);
+ }
+
+ /// @notice Validate that members can be added by batch
+ function testBatchAddMembers() public {
+ address[] memory membersToAdd = new address[](2);
+ membersToAdd[0] = address(0x11);
+ membersToAdd[1] = address(0x12);
+
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.batchAddPodMember(podId, membersToAdd);
+
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length + membersToAdd.length);
+
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], membersToAdd[1]);
+ assertEq(podMembers[1], membersToAdd[0]);
+ }
+
+ /// @notice Validate can lock membership transfers
+ function testLockMembershipTransfer() public {
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.lockMembershipTransfers(podId);
+
+ bool memberTransfersLocked = factory.getIsMembershipTransferLocked(podId);
+ assertTrue(memberTransfersLocked);
+ }
+
+ /// @notice Validate can unlock membership transfers
+ function testUnLockMembershipTransfer() public {
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.lockMembershipTransfers(podId);
+
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.unlockMembershipTransfers(podId);
+
+ bool memberTransfersLocked = factory.getIsMembershipTransferLocked(podId);
+ assertFalse(memberTransfersLocked);
+ }
+
+ /// @notice Transfer pod admin to new admin
+ function testTransferPodAdmin() public {
+ address memberToRemove = podConfig.members[0];
+ address newAdmin = address(0x22);
+
+ vm.prank(feiDAOTimelock);
+ podAdminGateway.transferAdmin(podId, newAdmin);
+
+ address newAdminOnFactory = factory.getPodAdmin(podId);
+ assertEq(newAdminOnFactory, newAdmin);
+
+ address newAdminOnController = ControllerV1(podController).podAdmin(podId);
+ assertEq(newAdminOnController, newAdmin);
+
+ // Validate new pod admin can perform an admin function, such as removing a member
+ vm.prank(newAdmin);
+ MemberToken(memberToken).burn(memberToRemove, podId);
+
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length - 1);
+
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], podConfig.members[1]);
+ assertEq(podMembers[1], podConfig.members[2]);
+ }
+
+ /// @notice Validate that a non-PodAdmin fails to call a priviledged admin method
+ function testNonAdminFailsToRemoveMember() public {
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+ podAdminGateway.removePodMember(podId, podConfig.members[0]);
+ }
+
+ /// @notice Validate that specific pod admin role is computed is expected
+ function testGetSpecificPodAdminRole() public {
+ bytes32 specificAdminRole = keccak256(abi.encode(podId, "_ORCA_POD", "_ADMIN"));
+ assertEq(specificAdminRole, podAdminGateway.getSpecificPodAdminRole(podId));
+ }
+
+ /// @notice Validate that specific pod guardian role is computed is expected
+ function testGetSpecificPodGuardianRole() public {
+ bytes32 specificGuardianRole = keccak256(abi.encode(podId, "_ORCA_POD", "_GUARDIAN"));
+ assertEq(specificGuardianRole, podAdminGateway.getSpecificPodGuardianRole(podId));
+ }
+
+ /// @notice Validate that the specific pod admin can add a member to a pod
+ function testSpecificPodAdminCanAdd() public {
+ address userWithSpecificRole = address(0x11);
+
+ // Create role in core
+ bytes32 specificAdminRole = keccak256(abi.encode(podId, "_ORCA_POD", "_ADMIN"));
+
+ vm.startPrank(feiDAOTimelock);
+ ICore(core).createRole(specificAdminRole, TribeRoles.GOVERNOR);
+ ICore(core).grantRole(specificAdminRole, userWithSpecificRole);
+ vm.stopPrank();
+
+ address newMember = address(0x12);
+ vm.prank(userWithSpecificRole);
+ podAdminGateway.addPodMember(podId, newMember);
+
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length + 1);
+
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], newMember);
+ }
+
+ /// @notice Validate that the specific pod admin can remove members
+ function testSpecificPodAdminCanRemove() public {
+ address userWithSpecificRole = address(0x11);
+
+ // Create role in core
+ bytes32 specificPodAdmin = keccak256(abi.encode(podId, "_ORCA_POD", "_ADMIN"));
+
+ vm.startPrank(feiDAOTimelock);
+ ICore(core).createRole(specificPodAdmin, TribeRoles.GOVERNOR);
+ ICore(core).grantRole(specificPodAdmin, userWithSpecificRole);
+ vm.stopPrank();
+
+ vm.prank(userWithSpecificRole);
+ podAdminGateway.removePodMember(podId, podConfig.members[0]);
+
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length - 1);
+
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], podConfig.members[1]);
+ assertEq(podMembers[1], podConfig.members[2]);
+ }
+
+ /// @notice Validate that the specific pod guardian can remove members
+ function testSpecificPodGuardianCanRemove() public {
+ address userWithSpecificRole = address(0x11);
+
+ // Create role in core
+ bytes32 specificPodGuardian = keccak256(abi.encode(podId, "_ORCA_POD", "_GUARDIAN"));
+
+ vm.startPrank(feiDAOTimelock);
+ ICore(core).createRole(specificPodGuardian, TribeRoles.GOVERNOR);
+ ICore(core).grantRole(specificPodGuardian, userWithSpecificRole);
+ vm.stopPrank();
+
+ vm.prank(userWithSpecificRole);
+ podAdminGateway.removePodMember(podId, podConfig.members[0]);
+
+ uint256 numPodMembers = factory.getNumMembers(podId);
+ assertEq(numPodMembers, podConfig.members.length - 1);
+
+ address[] memory podMembers = factory.getPodMembers(podId);
+ assertEq(podMembers[0], podConfig.members[1]);
+ assertEq(podMembers[1], podConfig.members[2]);
+ }
+
+ /// @notice Validate that the veto role functions
+ function testVetoPermission() public {
+ // Following revert indicates that the access control check has been passed
+ vm.prank(feiDAOTimelock);
+ vm.expectRevert(bytes("TimelockController: operation cannot be cancelled"));
+ podAdminGateway.veto(podId, bytes32("5"));
+ }
+
+ /// @notice Validate that the specific pod amdin can veto
+ function testSpecificPodAdminCanVeto() public {
+ address userWithSpecificRole = address(0x11);
+
+ // Create role in core
+ bytes32 specificPodAdmin = keccak256(abi.encode(podId, "_ORCA_POD", "_ADMIN"));
+
+ vm.startPrank(feiDAOTimelock);
+ ICore(core).createRole(specificPodAdmin, TribeRoles.GOVERNOR);
+ ICore(core).grantRole(specificPodAdmin, userWithSpecificRole);
+ vm.stopPrank();
+
+ vm.prank(userWithSpecificRole);
+ vm.expectRevert(bytes("TimelockController: operation cannot be cancelled"));
+ podAdminGateway.veto(podId, bytes32("5"));
+ }
+}
diff --git a/contracts/test/integration/governance/PodFactory.t.sol b/contracts/test/integration/governance/PodFactory.t.sol
new file mode 100644
index 000000000..d4fced083
--- /dev/null
+++ b/contracts/test/integration/governance/PodFactory.t.sol
@@ -0,0 +1,374 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {TimelockController} from "@openzeppelin/contracts/governance/TimelockController.sol";
+import {ControllerV1} from "@orcaprotocol/contracts/contracts/ControllerV1.sol";
+import {MemberToken} from "@orcaprotocol/contracts/contracts/MemberToken.sol";
+import {IGnosisSafe} from "../../../pods/interfaces/IGnosisSafe.sol";
+import {PodFactory} from "../../../pods/PodFactory.sol";
+import {PodExecutor} from "../../../pods/PodExecutor.sol";
+import {IPodFactory} from "../../../pods/interfaces/IPodFactory.sol";
+import {Core} from "../../../core/Core.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+import {PodAdminGateway} from "../../../pods/PodAdminGateway.sol";
+
+import {DSTest} from "../../utils/DSTest.sol";
+import {mintOrcaTokens, getPodParamsWithTimelock, getCouncilPodParams, getPodParamsWithNoTimelock} from "../fixtures/Orca.sol";
+import {DummyStorage} from "../../utils/Fixtures.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {MainnetAddresses} from "../fixtures/MainnetAddresses.sol";
+
+/// @notice Validate PodFactory critical functionality such as creating pods
+/// @dev PodAdmin can not also be a pod member
+contract PodFactoryIntegrationTest is DSTest {
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+
+ PodFactory factory;
+ PodExecutor podExecutor;
+ address private podAdmin;
+
+ address core = MainnetAddresses.CORE;
+ address memberToken = MainnetAddresses.MEMBER_TOKEN;
+ address podController = MainnetAddresses.ORCA_POD_CONTROLLER_V1_2;
+ address feiDAOTimelock = MainnetAddresses.FEI_DAO_TIMELOCK;
+
+ function setUp() public {
+ // 0. Deploy pod executor
+ podExecutor = new PodExecutor(core);
+
+ // 1. Deploy pod factory
+ factory = new PodFactory(core, memberToken, podController, address(podExecutor));
+
+ // 2. Deploy pod admin gateway
+ PodAdminGateway podAdminGateway = new PodAdminGateway(core, memberToken, address(factory));
+ podAdmin = address(podAdminGateway);
+
+ mintOrcaTokens(address(factory), 2, vm);
+
+ // Grant factory the PodAdmin role, to by default disable pod membership transfers
+ vm.startPrank(feiDAOTimelock);
+ Core(core).createRole(TribeRoles.POD_ADMIN, TribeRoles.GOVERNOR);
+ Core(core).grantRole(TribeRoles.POD_ADMIN, address(factory));
+ vm.stopPrank();
+ }
+
+ /// @notice Validate initial factory state
+ function testInitialState() public {
+ assertEq(factory.getNumberOfPods(), 0);
+ assertEq(address(factory.podExecutor()), address(podExecutor));
+ assertEq(address(factory.getMemberToken()), memberToken);
+ assertEq(factory.MIN_TIMELOCK_DELAY(), 1 days);
+ assertEq(address(factory.defaultPodController()), podController);
+
+ address[] memory podSafeAddresses = factory.getPodSafeAddresses();
+ assertEq(podSafeAddresses.length, 0);
+
+ // Validate has PodAdmin role
+ bool hasPodAdminRole = Core(core).hasRole(TribeRoles.POD_ADMIN, address(factory));
+ assertTrue(hasPodAdminRole);
+
+ uint256 nextPodId = factory.getNextPodId();
+ assertGt(nextPodId, 0);
+ }
+
+ function testDeployGenesisPod() public {
+ IPodFactory.PodConfig memory councilConfig = getCouncilPodParams(podAdmin);
+ (uint256 councilPodId, address councilTimelock, address councilSafe) = factory.deployCouncilPod(councilConfig);
+
+ uint256 numMembers = factory.getNumMembers(councilPodId);
+ assertEq(numMembers, councilConfig.members.length);
+
+ uint256 storedThreshold = factory.getPodThreshold(councilPodId);
+ assertEq(storedThreshold, councilConfig.threshold);
+
+ address[] memory storedMembers = factory.getPodMembers(councilPodId);
+ assertEq(storedMembers[0], councilConfig.members[0]);
+ assertEq(storedMembers[1], councilConfig.members[1]);
+ assertEq(storedMembers[2], councilConfig.members[2]);
+
+ assertEq(factory.getNumberOfPods(), 1);
+ address[] memory podSafeAddresses = factory.getPodSafeAddresses();
+ assertEq(podSafeAddresses.length, 1);
+ assertEq(podSafeAddresses[0], councilSafe);
+
+ assertEq(address(factory.getPodController(councilPodId)), podController);
+ }
+
+ function testCanOnlyDeployGenesisOnce() public {
+ IPodFactory.PodConfig memory councilConfig = getCouncilPodParams(podAdmin);
+ (uint256 councilPodId, address councilTimelock, address genesisSafe) = factory.deployCouncilPod(councilConfig);
+
+ IPodFactory.PodConfig memory config = getPodParamsWithTimelock(podAdmin);
+ vm.expectRevert(bytes("Genesis pod already deployed"));
+ factory.deployCouncilPod(config);
+ }
+
+ /// @notice Validate that a non-authorised address fails to create a pod
+ function testOnlyAuthedUsersCanCreatePod() public {
+ IPodFactory.PodConfig memory councilConfig = getCouncilPodParams(podAdmin);
+
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+ address fraud = address(0x10);
+ vm.prank(fraud);
+ factory.createOptimisticPod(councilConfig);
+ }
+
+ /// @notice Validate that a GOVERNOR role can create a pod
+ function testGovernorCanCreatePod() public {
+ IPodFactory.PodConfig memory councilConfig = getCouncilPodParams(podAdmin);
+
+ vm.prank(feiDAOTimelock);
+ factory.createOptimisticPod(councilConfig);
+ }
+
+ /// @notice Validate that the PodDeployerRole is able to deploy pods
+ function testPodAdminCanDeploy() public {
+ address dummyTribalCouncil = address(0x1);
+
+ // Create ROLE_ADMIN, POD_ADMIN role and grant ROLE_ADMIN to a dummyTribalCouncil address
+ vm.startPrank(feiDAOTimelock);
+ Core(core).createRole(TribeRoles.ROLE_ADMIN, TribeRoles.GOVERNOR);
+ Core(core).createRole(TribeRoles.POD_ADMIN, TribeRoles.ROLE_ADMIN);
+ Core(core).grantRole(TribeRoles.ROLE_ADMIN, dummyTribalCouncil);
+ vm.stopPrank();
+
+ // Grant POD_ADMIN to a dummy address
+ address dummyPodAdmin = address(0x2);
+ vm.prank(dummyTribalCouncil);
+ Core(core).grantRole(TribeRoles.POD_ADMIN, dummyPodAdmin);
+
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+ vm.prank(dummyPodAdmin);
+ factory.createOptimisticPod(podConfig);
+ }
+
+ function testUpdatePodAdmin() public {
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+
+ vm.prank(feiDAOTimelock);
+ (uint256 podId, , ) = factory.createOptimisticPod(podConfig);
+
+ address newAdmin = address(0x10);
+ vm.prank(podAdmin);
+ ControllerV1(podController).updatePodAdmin(podId, newAdmin);
+ assertEq(ControllerV1(podController).podAdmin(podId), newAdmin);
+ assertEq(factory.getPodAdmin(podId), newAdmin);
+ }
+
+ function testPodDeployment() public {
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+
+ vm.prank(feiDAOTimelock);
+ (uint256 podId, address timelock, address safe) = factory.createOptimisticPod(podConfig);
+
+ ///// Validate Safe component of the Pod
+ address safeAddress = factory.getPodSafe(podId);
+ assertEq(safe, safeAddress);
+
+ uint256 numMembers = factory.getNumMembers(podId);
+ assertEq(numMembers, podConfig.members.length);
+
+ uint256 storedThreshold = factory.getPodThreshold(podId);
+ assertEq(storedThreshold, podConfig.threshold);
+
+ address[] memory storedMembers = factory.getPodMembers(podId);
+ assertEq(storedMembers[0], podConfig.members[0]);
+ assertEq(storedMembers[1], podConfig.members[1]);
+ assertEq(storedMembers[2], podConfig.members[2]);
+
+ assertEq(factory.getNumberOfPods(), 1);
+ address[] memory podSafeAddresses = factory.getPodSafeAddresses();
+ assertEq(podSafeAddresses.length, 1);
+ assertEq(podSafeAddresses[0], safe);
+
+ ///// Validate timelock component of pod
+ assertEq(timelock, factory.getPodTimelock(podId));
+ TimelockController timelockContract = TimelockController(payable(timelock));
+
+ // Gnosis safe should be: PROPOSER, EXECUTOR, CANCELLOR
+ assertTrue(timelockContract.hasRole(timelockContract.PROPOSER_ROLE(), safe));
+ assertTrue(timelockContract.hasRole(timelockContract.EXECUTOR_ROLE(), safe));
+ assertTrue(timelockContract.hasRole(timelockContract.CANCELLER_ROLE(), safe));
+
+ // PodExecutor should be: EXECUTOR
+ assertTrue(timelockContract.hasRole(timelockContract.EXECUTOR_ROLE(), address(podExecutor)));
+
+ // PodAdmin should be: CANCELLOR
+ assertTrue(timelockContract.hasRole(timelockContract.CANCELLER_ROLE(), podAdmin));
+
+ // Min delay of timelock
+ assertEq(timelockContract.getMinDelay(), podConfig.minDelay);
+
+ // Validate factory does not have TIMELOCK_ADMIN_ROLE
+ assertFalse(timelockContract.hasRole(timelockContract.TIMELOCK_ADMIN_ROLE(), address(factory)));
+
+ //// Validate that membership transfers are disabled
+ bool membershipLocked = factory.getIsMembershipTransferLocked(podId);
+ assertEq(membershipLocked, true);
+ }
+
+ /// @notice Validate that a pod can not be created with an insufficent min delay on timelock
+ function testCanNotDeployPodWithInsufficientTimelock() public {
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+
+ uint256 insufficientDelay = factory.MIN_TIMELOCK_DELAY() - 1;
+ podConfig.minDelay = insufficientDelay;
+
+ vm.prank(feiDAOTimelock);
+ vm.expectRevert(bytes("Min delay too small"));
+ factory.createOptimisticPod(podConfig);
+ }
+
+ /// @notice Validate can create a pod without a timelock
+ function testCanDeployPodWithNoTimelock() public {
+ IPodFactory.PodConfig memory podConfigNoTimelock = getPodParamsWithNoTimelock(podAdmin);
+
+ vm.prank(feiDAOTimelock);
+ (uint256 podId, address timelock, address safe) = factory.createOptimisticPod(podConfigNoTimelock);
+
+ assertEq(timelock, address(0));
+ assertEq(timelock, factory.getPodTimelock(podId));
+ assertEq(safe, factory.getPodSafe(podId));
+
+ // Pod without a timelock will report podId of 0
+ assertEq(0, factory.getPodId(timelock));
+ }
+
+ /// @notice Validate that the podId to timelock mapping is correct
+ function testTimelockStorageOnDeploy() public {
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+
+ vm.prank(feiDAOTimelock);
+ (uint256 podId, address timelock, address safe) = factory.createOptimisticPod(podConfig);
+
+ assertEq(timelock, factory.getPodTimelock(podId));
+ assertEq(safe, factory.getPodSafe(podId));
+ assertEq(podId, factory.getPodId(timelock));
+ }
+
+ /// @notice Validate that multiple pods can be deployed with the correct admin set
+ function testDeployMultiplePods() public {
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+
+ podConfig.label = bytes32("A");
+
+ vm.prank(feiDAOTimelock);
+ (uint256 podAId, , address podASafeAddress) = factory.createOptimisticPod(podConfig);
+ assertEq(factory.getNumberOfPods(), 1);
+ address[] memory firstPodAddresses = factory.getPodSafeAddresses();
+ assertEq(firstPodAddresses[0], podASafeAddress);
+
+ address podAAdmin = ControllerV1(podController).podAdmin(podAId);
+ assertEq(podAAdmin, podAdmin);
+
+ podConfig.label = bytes32("B");
+ vm.prank(feiDAOTimelock);
+ (uint256 podBId, , address podBSafeAddress) = factory.createOptimisticPod(podConfig);
+ assertEq(factory.getNumberOfPods(), 2);
+
+ address[] memory secondPodAddresses = factory.getPodSafeAddresses();
+
+ assertEq(secondPodAddresses[0], podASafeAddress);
+ assertEq(secondPodAddresses[1], podBSafeAddress);
+
+ assertEq(podBId, podAId + 1);
+ address podBAdmin = ControllerV1(podController).podAdmin(podBId);
+ assertEq(podBAdmin, podAdmin);
+ }
+
+ /// @notice Validate that can create a transaction in the pod and that it progresses to the timelock
+ function testCreateTxInOptimisticPod() public {
+ vm.warp(1);
+ vm.roll(1);
+
+ // 1. Deploy Dummy contract to perform a transaction on
+ DummyStorage dummyContract = new DummyStorage();
+ assertEq(dummyContract.getVariable(), 5);
+
+ // 2. Deploy pod
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+ vm.prank(feiDAOTimelock);
+ (, address podTimelock, address safe) = factory.createOptimisticPod(podConfig);
+
+ TimelockController timelockContract = TimelockController(payable(podTimelock));
+
+ // 3. Schedle a transaction from the Pod's safe address to timelock. Transaction sets a variable on a dummy contract
+ uint256 newDummyContractVar = 10;
+ bytes memory timelockExecutionTxData = abi.encodePacked(
+ bytes4(keccak256(bytes("setVariable(uint256)"))),
+ newDummyContractVar
+ );
+
+ vm.prank(safe);
+ timelockContract.schedule(
+ address(dummyContract),
+ 0,
+ timelockExecutionTxData,
+ bytes32(0),
+ bytes32("1"),
+ podConfig.minDelay
+ );
+
+ // 4. Validate that transaction is in timelock
+ bytes32 txHash = timelockContract.hashOperation(
+ address(dummyContract),
+ 0,
+ timelockExecutionTxData,
+ bytes32(0),
+ bytes32("1")
+ );
+ assertTrue(timelockContract.isOperationPending(txHash));
+
+ // 5. Fast forward to execution time in timelock
+ vm.warp(podConfig.minDelay + 10);
+ vm.roll(podConfig.minDelay + 10);
+
+ // 6. Execute transaction and validate state is updated
+ podExecutor.execute(podTimelock, address(dummyContract), 0, timelockExecutionTxData, bytes32(0), bytes32("1"));
+
+ assertTrue(timelockContract.isOperationDone(txHash));
+ assertEq(dummyContract.getVariable(), newDummyContractVar);
+ }
+
+ /// @notice Validate that the default pod controller can be updated
+ function testUpdateDefaultPodController() public {
+ address newDefaultPodController = address(0x123);
+ vm.prank(feiDAOTimelock);
+ factory.updateDefaultPodController(newDefaultPodController);
+ assertEq(address(factory.defaultPodController()), newDefaultPodController);
+ }
+
+ /// @notice Validate that a pod controller can be updated and that will be reflected
+ /// on the pod factory
+ function testPodControllerUpdate() public {
+ IPodFactory.PodConfig memory podConfig = getPodParamsWithTimelock(podAdmin);
+
+ // Set default to old version, to create pod with old controller
+ vm.prank(feiDAOTimelock);
+ factory.updateDefaultPodController(MainnetAddresses.ORCA_POD_CONTROLLER_V1);
+ assertEq(address(factory.defaultPodController()), MainnetAddresses.ORCA_POD_CONTROLLER_V1);
+
+ vm.prank(feiDAOTimelock);
+ (uint256 podId, address timelock, address safe) = factory.deployCouncilPod(podConfig);
+
+ // 1. Get pod controller
+ address defaultPodController = address(factory.defaultPodController());
+ address initialPodController = address(factory.getPodController(podId));
+ assertEq(defaultPodController, initialPodController);
+
+ // 2. Pod migrates it's own pod controller to another minor version
+ vm.prank(safe);
+ ControllerV1(initialPodController).migratePodController(
+ podId,
+ MainnetAddresses.ORCA_POD_CONTROLLER_V1_2,
+ MainnetAddresses.ORCA_POD_CONTROLLER_V1_2
+ );
+
+ // 3. Verify pod's controller was updated on the memberToken and factory
+ address newPodControllerOnFactory = address(factory.getPodController(podId));
+ address expectedNewPodController = MemberToken(memberToken).memberController(podId);
+
+ assertEq(expectedNewPodController, newPodControllerOnFactory);
+ assertEq(newPodControllerOnFactory, MainnetAddresses.ORCA_POD_CONTROLLER_V1_2);
+ }
+}
diff --git a/contracts/test/integration/governance/RoleBastion.t.sol b/contracts/test/integration/governance/RoleBastion.t.sol
new file mode 100644
index 000000000..afb006326
--- /dev/null
+++ b/contracts/test/integration/governance/RoleBastion.t.sol
@@ -0,0 +1,109 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {DSTest} from "../../utils/DSTest.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {getCore, getAddresses, FeiTestAddresses} from "../../utils/Fixtures.sol";
+import {RoleBastion} from "../../../pods/RoleBastion.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+import {Core} from "../../../core/Core.sol";
+
+contract RoleBastionIntegrationTest is DSTest {
+ address tribalCouncil = address(0x1);
+ address guardian = address(0x2);
+
+ FeiTestAddresses addresses;
+ Core core;
+ RoleBastion roleBastion;
+
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+
+ function setUp() public {
+ addresses = getAddresses();
+ core = getCore();
+ roleBastion = new RoleBastion(address(core));
+
+ // 1. Grant tribalCouncil ROLE_ADMIN role
+ vm.startPrank(addresses.governorAddress);
+ core.createRole(TribeRoles.ROLE_ADMIN, TribeRoles.GOVERNOR);
+ core.grantRole(TribeRoles.ROLE_ADMIN, tribalCouncil);
+ vm.stopPrank();
+
+ // 2. Grant roleBastion GOVERNOR
+ vm.startPrank(addresses.governorAddress);
+ core.grantRole(TribeRoles.GOVERNOR, address(roleBastion));
+ vm.stopPrank();
+
+ // 3. Create a mock Guardian to pause the contract
+ vm.startPrank(addresses.governorAddress);
+ core.createRole(TribeRoles.GUARDIAN, TribeRoles.GOVERNOR);
+ core.grantRole(TribeRoles.GUARDIAN, guardian);
+ vm.stopPrank();
+ }
+
+ /// @notice Validate initial state of roleCreator
+ function testInitialState() public {
+ assertTrue(core.hasRole(TribeRoles.GOVERNOR, address(roleBastion)));
+ assertTrue(core.hasRole(TribeRoles.ROLE_ADMIN, tribalCouncil));
+ }
+
+ /// @notice Validate that roleCreator can create a role
+ function testCreateNewRole() public {
+ bytes32 newRole = keccak256("DUMMY_ROLE");
+
+ vm.prank(tribalCouncil);
+ roleBastion.createRole(newRole);
+
+ // Validate created role exists and has the appropriate admin
+ bytes32 createdRoleAdmin = core.getRoleAdmin(newRole);
+ assertEq(createdRoleAdmin, TribeRoles.ROLE_ADMIN);
+ }
+
+ /// @notice Validate that created role can be granted by core
+ function testCreatedRoleCanBeGranted() public {
+ bytes32 newRole = keccak256("DUMMY_ROLE");
+
+ vm.prank(tribalCouncil);
+ roleBastion.createRole(newRole);
+
+ address roleReceiver = address(0x3);
+ vm.prank(tribalCouncil); // ROLE_ADMIN is transferring the role
+ core.grantRole(newRole, roleReceiver);
+
+ // Validate address received role
+ assertTrue(core.hasRole(newRole, roleReceiver));
+ }
+
+ /// @notice Validate that roleCreator can not create an already existing role
+ function testCanNotCreateExistingRole() public {
+ bytes32 existingRole = TribeRoles.MINTER;
+
+ vm.startPrank(tribalCouncil);
+ vm.expectRevert(bytes("Role already exists"));
+ roleBastion.createRole(existingRole);
+ vm.stopPrank();
+ }
+
+ /// @notice Validate that can not create a role of bytes32(0), which is the
+ /// CONTRACT_ADMIN_ROLE in core
+ function testCanNotCreateZeroRole() public {
+ bytes32 zeroRole = bytes32(0);
+ vm.startPrank(tribalCouncil);
+ vm.expectRevert(bytes("Can not create zero role"));
+ roleBastion.createRole(zeroRole);
+ vm.stopPrank();
+ }
+
+ /// @notice Validate can not create a role when paused
+ function testCanPause() public {
+ vm.prank(guardian);
+ roleBastion.pause();
+
+ bool isPaused = roleBastion.paused();
+ assertTrue(isPaused);
+
+ vm.startPrank(tribalCouncil);
+ vm.expectRevert(bytes("Pausable: paused"));
+ roleBastion.createRole(keccak256("DUMMY_ROLE"));
+ }
+}
diff --git a/contracts/test/Fei.t.sol b/contracts/test/unit/Fei.t.sol
similarity index 70%
rename from contracts/test/Fei.t.sol
rename to contracts/test/unit/Fei.t.sol
index 7b86a78d2..ecb2e436c 100644
--- a/contracts/test/Fei.t.sol
+++ b/contracts/test/unit/Fei.t.sol
@@ -2,13 +2,13 @@ pragma solidity ^0.8.4;
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
-import {IFei} from "../fei/IFei.sol";
-import {Fei} from "../fei/Fei.sol";
-import {ICore} from "../core/ICore.sol";
-import {Core} from "../core/Core.sol";
-import {Vm} from "./utils/Vm.sol";
-import {DSTest} from "./utils/DSTest.sol";
-import {getCore, getAddresses, FeiTestAddresses} from "./utils/Fixtures.sol";
+import {IFei} from "../../fei/IFei.sol";
+import {Fei} from "../../fei/Fei.sol";
+import {ICore} from "../../core/ICore.sol";
+import {Core} from "../../core/Core.sol";
+import {Vm} from "../utils/Vm.sol";
+import {DSTest} from "../utils/DSTest.sol";
+import {getCore, getAddresses, FeiTestAddresses} from "../utils/Fixtures.sol";
contract FeiTest is DSTest {
IFei private fei;
diff --git a/contracts/test/unit/NonCustodialPSM.t.sol b/contracts/test/unit/NonCustodialPSM.t.sol
new file mode 100644
index 000000000..ca4869580
--- /dev/null
+++ b/contracts/test/unit/NonCustodialPSM.t.sol
@@ -0,0 +1,432 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {ERC20, IERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
+
+import {MockPCVDepositV2} from "../../mock/MockPCVDepositV2.sol";
+import {IPCVDeposit} from "../../pcv/IPCVDeposit.sol";
+import {MockERC20} from "../../mock/MockERC20.sol";
+import {ICore} from "../../core/ICore.sol";
+import {ConstantOracle} from "../../oracle/ConstantOracle.sol";
+import {Core} from "../../core/Core.sol";
+import {IFei, Fei} from "../../fei/Fei.sol";
+import {NonCustodialPSM, GlobalRateLimitedMinter} from "../../peg/NonCustodialPSM.sol";
+import {Vm} from "./../utils/Vm.sol";
+import {DSTest} from "./../utils/DSTest.sol";
+import {getCore, getAddresses, FeiTestAddresses} from "./../utils/Fixtures.sol";
+
+contract NonCustodialPSMTest is DSTest {
+ using SafeCast for *;
+
+ GlobalRateLimitedMinter private rateLimitedMinter;
+ NonCustodialPSM private psm;
+ ICore private core;
+ IFei private fei;
+
+ /// ------------ Minting and RateLimited System Params ------------
+
+ uint256 public constant mintAmount = 10_000_000e18;
+ uint256 public constant bufferCap = 10_000_000e18;
+ uint256 public constant individualMaxBufferCap = 5_000_000e18;
+ uint256 public constant rps = 10_000e18;
+
+ /// ------------ Oracle System Params ------------
+
+ /// @notice prices during test will increase 1% monthly
+ int256 public constant monthlyChangeRateBasisPoints = 100;
+ uint256 public constant maxDeviationThresholdBasisPoints = 1_000;
+
+ MockERC20 public underlyingToken;
+ MockPCVDepositV2 public pcvDeposit;
+ ConstantOracle public oracle;
+
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+ FeiTestAddresses public addresses = getAddresses();
+
+ function setUp() public {
+ core = getCore();
+
+ fei = core.fei();
+
+ underlyingToken = new MockERC20();
+ pcvDeposit = new MockPCVDepositV2(address(core), address(underlyingToken), 0, 0);
+
+ rateLimitedMinter = new GlobalRateLimitedMinter(
+ address(core),
+ rps,
+ rps,
+ rps,
+ individualMaxBufferCap,
+ bufferCap
+ );
+
+ oracle = new ConstantOracle(address(core), 10000);
+
+ NonCustodialPSM.OracleParams memory oracleParams = NonCustodialPSM.OracleParams({
+ coreAddress: address(core),
+ oracleAddress: address(oracle),
+ backupOracle: address(0),
+ decimalsNormalizer: 0
+ });
+
+ NonCustodialPSM.RateLimitedParams memory multiRateLimitedParams = NonCustodialPSM.RateLimitedParams({
+ maxRateLimitPerSecond: rps,
+ rateLimitPerSecond: rps,
+ bufferCap: bufferCap
+ });
+
+ NonCustodialPSM.PSMParams memory PSMParams = NonCustodialPSM.PSMParams({
+ mintFeeBasisPoints: 0,
+ redeemFeeBasisPoints: 0,
+ underlyingToken: underlyingToken,
+ pcvDeposit: pcvDeposit,
+ rateLimitedMinter: rateLimitedMinter
+ });
+
+ /// create PSM
+ psm = new NonCustodialPSM(oracleParams, multiRateLimitedParams, PSMParams);
+
+ vm.startPrank(addresses.governorAddress);
+
+ /// grant the PSM the PCV Controller role
+ core.grantMinter(addresses.governorAddress);
+ core.grantMinter(address(rateLimitedMinter));
+ core.grantPCVController(address(psm));
+ core.grantPCVController(addresses.governorAddress);
+ rateLimitedMinter.addAddress(address(psm), uint112(rps), uint112(bufferCap));
+
+ /// mint fei to the user
+ fei.mint(address(this), mintAmount);
+
+ vm.stopPrank();
+
+ /// mint the PSM and user some stable coins
+ underlyingToken.mint(address(pcvDeposit), mintAmount);
+ underlyingToken.mint(address(this), mintAmount);
+
+ /// invest all excess tokens in the PCV deposit
+ pcvDeposit.deposit();
+ }
+
+ /// @notice PSM is set up correctly, all state variables and balances are correct
+ function testPSMSetup() public {
+ uint256 startingPSMUnderlyingBalance = underlyingToken.balanceOf(address(psm));
+ uint256 startingUserfeiBalance = fei.balanceOf(address(this));
+
+ assertEq(startingPSMUnderlyingBalance, 0);
+ assertEq(startingUserfeiBalance, mintAmount);
+
+ assertTrue(core.isPCVController(address(psm)));
+ assertTrue(core.isMinter(address(rateLimitedMinter)));
+ }
+
+ /// @notice PSM is set up correctly and view functions are working
+ function testGetRedeemAmountOut() public {
+ uint256 amountfeiIn = 100;
+ assertEq(psm.getRedeemAmountOut(amountfeiIn), amountfeiIn);
+ }
+
+ /// @notice PSM is set up correctly and view functions are working
+ function testGetMaxMintAmountOut() public {
+ assertEq(psm.getMaxMintAmountOut(), bufferCap);
+
+ vm.startPrank(addresses.governorAddress);
+ fei.mint(address(psm), mintAmount);
+ vm.stopPrank();
+
+ assertEq(psm.getMaxMintAmountOut(), bufferCap + mintAmount);
+ }
+
+ /// @notice PSM is set up correctly and view functions are working
+ function testGetMintAmountOut() public {
+ uint256 amountfeiIn = 100;
+ assertEq(psm.getMintAmountOut(amountfeiIn), amountfeiIn);
+ }
+
+ /// @notice pcv deposit receives underlying token on mint
+ function testSwapUnderlyingForfei() public {
+ underlyingToken.approve(address(psm), mintAmount);
+ psm.mint(address(this), mintAmount, mintAmount);
+
+ uint256 endingUserfeiBalance = fei.balanceOf(address(this));
+ uint256 endingPSMUnderlyingBalance = underlyingToken.balanceOf(address(psm));
+ uint256 endingPCVDepositUnderlyingBalance = underlyingToken.balanceOf(address(pcvDeposit));
+
+ assertEq(endingPCVDepositUnderlyingBalance, mintAmount * 2);
+ assertEq(endingPSMUnderlyingBalance, 0);
+ assertEq(endingUserfeiBalance, mintAmount * 2);
+ }
+
+ /// @notice pcv deposit gets depleted on redeem
+ function testSwapfeiForUnderlying() public {
+ fei.approve(address(psm), mintAmount);
+ psm.redeem(address(this), mintAmount, mintAmount);
+
+ uint256 endingUserfeiBalance = fei.balanceOf(address(this));
+ uint256 endingUserUnderlyingBalance = underlyingToken.balanceOf(address(this));
+ uint256 endingPSMUnderlyingBalance = underlyingToken.balanceOf(address(psm));
+ uint256 endingPCVDepositUnderlyingBalance = underlyingToken.balanceOf(address(pcvDeposit));
+
+ assertEq(endingPSMUnderlyingBalance, 0);
+ assertEq(endingUserfeiBalance, 0);
+ assertEq(endingUserUnderlyingBalance, mintAmount * 2);
+ assertEq(endingPCVDepositUnderlyingBalance, 0);
+ }
+
+ /// @notice pcv deposit gets depleted on redeem
+ function testUnderlyingBufferDepletion() public {
+ uint256 bufferStart = psm.buffer();
+
+ fei.approve(address(psm), mintAmount);
+ psm.redeem(address(this), mintAmount, mintAmount);
+
+ uint256 bufferEnd = psm.buffer();
+ uint256 endingUserfeiBalance = fei.balanceOf(address(this));
+ uint256 endingUserUnderlyingBalance = underlyingToken.balanceOf(address(this));
+ uint256 endingPSMUnderlyingBalance = underlyingToken.balanceOf(address(psm));
+ uint256 endingPCVDepositUnderlyingBalance = underlyingToken.balanceOf(address(pcvDeposit));
+
+ assertEq(endingPSMUnderlyingBalance, 0);
+ assertEq(endingUserfeiBalance, 0);
+ assertEq(endingUserUnderlyingBalance, mintAmount * 2);
+ assertEq(endingPCVDepositUnderlyingBalance, 0);
+ assertEq(bufferStart, bufferCap);
+ assertEq(bufferEnd, bufferCap - mintAmount);
+ }
+
+ /// @notice global rate limited minter buffer on the PSM gets depleted on mint
+ function testfeiBufferDepletion() public {
+ uint256 bufferStart = rateLimitedMinter.individualBuffer(address(psm));
+
+ underlyingToken.approve(address(psm), mintAmount);
+ psm.mint(address(this), mintAmount, mintAmount);
+
+ uint256 bufferEnd = rateLimitedMinter.individualBuffer(address(psm));
+ uint256 endingUserfeiBalance = fei.balanceOf(address(this));
+ uint256 endingPSMUnderlyingBalance = underlyingToken.balanceOf(address(psm));
+ uint256 endingPCVDepositUnderlyingBalance = underlyingToken.balanceOf(address(pcvDeposit));
+
+ assertEq(endingPCVDepositUnderlyingBalance, mintAmount * 2);
+ assertEq(endingPSMUnderlyingBalance, 0);
+ assertEq(endingUserfeiBalance, mintAmount * 2);
+
+ assertEq(bufferStart, bufferCap);
+ assertEq(bufferEnd, bufferCap - mintAmount);
+ }
+
+ /// @notice replenishable rate limited minter buffer on the PSM gets increased on mint
+ function testBufferReplenishment() public {
+ /// drain buffer
+ fei.approve(address(psm), mintAmount);
+ psm.redeem(address(this), mintAmount, mintAmount);
+
+ uint256 bufferStart = psm.bufferStored();
+
+ underlyingToken.approve(address(psm), mintAmount);
+ psm.mint(address(this), mintAmount, mintAmount);
+
+ uint256 bufferEnd = psm.bufferStored();
+
+ assertEq(bufferEnd - bufferStart, mintAmount);
+ }
+
+ /// @notice replenishable rate limited minter buffer on the PSM gets increased on mint
+ function testBufferReplenishmentDoesNotCompound() public {
+ vm.prank(addresses.governorAddress);
+ fei.mint(address(this), mintAmount * 10);
+ fei.approve(address(psm), mintAmount * 10);
+ /// drain buffer
+ psm.redeem(address(this), mintAmount, mintAmount);
+
+ // approve token for minting
+ underlyingToken.approve(address(psm), mintAmount);
+
+ vm.warp(block.timestamp + 100); // replenish buffer by 1m
+
+ uint256 delta = block.timestamp - psm.lastBufferUsedTime();
+ uint256 individualMintAmount = 100_000e18;
+
+ uint256 bufferStart = psm.buffer();
+ uint256 bufferStored = psm.bufferStored();
+ assertEq(bufferStart, rps * delta);
+
+ psm.mint(address(this), individualMintAmount, 0);
+
+ uint256 currBuffer = psm.buffer();
+ bufferStored = psm.bufferStored();
+ assertApproxEq(currBuffer.toInt256(), (rps * delta + individualMintAmount).toInt256(), 1); /// allow 1 basis point of deviation between expected and actual
+
+ psm.mint(address(this), individualMintAmount, 0);
+
+ bufferStored = psm.bufferStored();
+ uint256 bufferEnd = psm.buffer();
+ assertApproxEq(bufferEnd.toInt256(), (rps * delta + individualMintAmount * 2).toInt256(), 1); /// allow 1 basis point of deviation between expected and actual
+ }
+
+ /// @notice redeem fails without approval
+ function testSwapfeiForUnderlyingFailsWithoutApproval() public {
+ vm.expectRevert(bytes("ERC20: insufficient allowance"));
+
+ psm.redeem(address(this), mintAmount, mintAmount);
+ }
+
+ /// @notice mint fails without approval
+ function testSwapUnderlyingForfeiFailsWithoutApproval() public {
+ vm.expectRevert(bytes("ERC20: insufficient allowance"));
+
+ psm.mint(address(this), mintAmount, mintAmount);
+ }
+
+ /// @notice withdraw erc20 fails without correct permissions
+ function testERC20WithdrawFailure() public {
+ vm.expectRevert(bytes("CoreRef: Caller is not a PCV controller"));
+
+ psm.withdrawERC20(address(underlyingToken), address(this), 100);
+ }
+
+ /// @notice withdraw erc20 succeeds with correct permissions
+ function testERC20WithdrawSuccess() public {
+ vm.startPrank(addresses.governorAddress);
+
+ core.grantPCVController(address(this));
+ underlyingToken.mint(address(psm), mintAmount);
+
+ vm.stopPrank();
+
+ uint256 startingBalance = underlyingToken.balanceOf(address(this));
+ psm.withdrawERC20(address(underlyingToken), address(this), mintAmount);
+ uint256 endingBalance = underlyingToken.balanceOf(address(this));
+
+ assertEq(endingBalance - startingBalance, mintAmount);
+ }
+
+ /// @notice set global rate limited minter fails when caller is not governor
+ function testSetGlobalRateLimitedMinterFailure() public {
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+
+ psm.setGlobalRateLimitedMinter(GlobalRateLimitedMinter(address(this)));
+ }
+
+ /// @notice set global rate limited minter fails when caller is governor and new address is 0
+ function testSetGlobalRateLimitedMinterFailureZeroAddress() public {
+ vm.startPrank(addresses.governorAddress);
+
+ vm.expectRevert(bytes("PegStabilityModule: Invalid new GlobalRateLimitedMinter"));
+ psm.setGlobalRateLimitedMinter(GlobalRateLimitedMinter(address(0)));
+
+ vm.stopPrank();
+ }
+
+ /// @notice set global rate limited minter succeeds when caller is governor
+ function testSetGlobalRateLimitedMinterSuccess() public {
+ vm.startPrank(addresses.governorAddress);
+
+ psm.setGlobalRateLimitedMinter(GlobalRateLimitedMinter(address(this)));
+
+ assertEq(address(psm.rateLimitedMinter()), address(this));
+
+ vm.stopPrank();
+ }
+
+ /// @notice set global rate limited minter fails when caller is governor and new address is 0
+ function testSetPCVDepositFailureZeroAddress() public {
+ vm.startPrank(addresses.governorAddress);
+
+ vm.expectRevert(bytes("PegStabilityModule: Invalid new PCVDeposit"));
+ psm.setPCVDeposit(IPCVDeposit(address(0)));
+
+ vm.stopPrank();
+ }
+
+ /// @notice set PCV deposit fails when caller is governor and new address is 0
+ function testSetPCVDepositFailureNonGovernor() public {
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+ psm.setPCVDeposit(IPCVDeposit(address(0)));
+ }
+
+ /* Disabled - we deploy to a pcv deposit v1
+ /// @notice set PCV deposit fails when caller is governor and new address is 0
+ function testSetPCVDepositFailureUnderlyingTokenMismatch() public {
+ vm.startPrank(addresses.governorAddress);
+
+ MockPCVDepositV2 newPCVDeposit = new MockPCVDepositV2(
+ address(core),
+ address(fei),
+ 0,
+ 0
+ );
+
+ vm.expectRevert(bytes("PegStabilityModule: Underlying token mismatch"));
+
+ psm.setPCVDeposit(IPCVDeposit(address(newPCVDeposit)));
+
+ vm.stopPrank();
+ }
+ */
+
+ /// @notice set PCV Deposit succeeds when caller is governor and underlying tokens match
+ function testSetPCVDepositSuccess() public {
+ vm.startPrank(addresses.governorAddress);
+
+ MockPCVDepositV2 newPCVDeposit = new MockPCVDepositV2(address(core), address(underlyingToken), 0, 0);
+
+ psm.setPCVDeposit(IPCVDeposit(address(newPCVDeposit)));
+
+ vm.stopPrank();
+
+ assertEq(address(newPCVDeposit), address(psm.pcvDeposit()));
+ }
+
+ /// @notice set mint fee succeeds
+ function testSetMintFeeSuccess() public {
+ vm.startPrank(addresses.governorAddress);
+ psm.setMintFee(100);
+ vm.stopPrank();
+
+ assertEq(psm.mintFeeBasisPoints(), 100);
+ }
+
+ /// @notice set mint fee fails unauthorized
+ function testSetMintFeeFailsWithoutCorrectRoles() public {
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+
+ psm.setMintFee(100);
+ }
+
+ /// @notice set redeem fee succeeds
+ function testSetRedeemFeeSuccess() public {
+ vm.startPrank(addresses.governorAddress);
+ psm.setRedeemFee(100);
+ vm.stopPrank();
+
+ assertEq(psm.redeemFeeBasisPoints(), 100);
+ }
+
+ /// @notice set redeem fee fails unauthorized
+ function testSetRedeemFeeFailsWithoutCorrectRoles() public {
+ vm.expectRevert(bytes("UNAUTHORIZED"));
+
+ psm.setRedeemFee(100);
+ }
+
+ /// @notice redeem fails when paused
+ function testRedeemFailsWhenPaused() public {
+ vm.startPrank(addresses.governorAddress);
+ psm.pauseRedeem();
+ vm.stopPrank();
+
+ vm.expectRevert(bytes("PegStabilityModule: Redeem paused"));
+ psm.redeem(address(this), 100, 100);
+ }
+
+ /// @notice mint fails when paused
+ function testMintFailsWhenPaused() public {
+ vm.startPrank(addresses.governorAddress);
+ psm.pauseMint();
+ vm.stopPrank();
+
+ vm.expectRevert(bytes("PegStabilityModule: Minting paused"));
+ psm.mint(address(this), 100, 100);
+ }
+}
diff --git a/contracts/test/unit/governance/NopeDAO.t.sol b/contracts/test/unit/governance/NopeDAO.t.sol
new file mode 100644
index 000000000..04443b976
--- /dev/null
+++ b/contracts/test/unit/governance/NopeDAO.t.sol
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
+import {ERC20VotesComp} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol";
+import {Core} from "../../../core/Core.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {DSTest} from "../../utils/DSTest.sol";
+import {NopeDAO} from "../../../dao/nopeDAO/NopeDAO.sol";
+import {getCore, getAddresses, FeiTestAddresses, DummyStorage} from "../../utils/Fixtures.sol";
+import {Tribe} from "../../../tribe/Tribe.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+
+/// @notice Fixture to create a dummy proposal
+function createDummyProposal(address dummyContract, uint256 newVariable)
+ returns (
+ address[] memory,
+ uint256[] memory,
+ bytes[] memory,
+ string memory,
+ bytes32
+ )
+{
+ address[] memory targets = new address[](1);
+ targets[0] = dummyContract;
+
+ uint256[] memory values = new uint256[](1);
+ values[0] = uint256(0);
+
+ bytes[] memory calldatas = new bytes[](1);
+ bytes memory data = abi.encodePacked(bytes4(keccak256(bytes("setVariable(uint256)"))), newVariable);
+ calldatas[0] = data;
+
+ string memory description = "Dummy proposal";
+ bytes32 descriptionHash = keccak256(bytes(description));
+ return (targets, values, calldatas, description, descriptionHash);
+}
+
+contract NopeDAOTest is DSTest {
+ address user = address(0x1);
+ uint256 excessQuorumTribe = (11e6) * (10**18);
+ address tribeAddress;
+ ERC20VotesComp tribe;
+
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+ NopeDAO private nopeDAO;
+ Core private core;
+
+ FeiTestAddresses public addresses = getAddresses();
+
+ function setUp() public {
+ // 1. Setup core
+ // - this also deploys Fei and Tribe
+ core = getCore();
+
+ // 2. Setup Tribe and transfer some to a test address
+ tribeAddress = address(core.tribe());
+
+ vm.prank(addresses.governorAddress);
+ core.allocateTribe(user, excessQuorumTribe);
+
+ tribe = ERC20VotesComp(tribeAddress);
+
+ vm.prank(user);
+ tribe.delegate(user);
+
+ // 3. Deploy NopeDAO
+ nopeDAO = new NopeDAO(tribe, address(core));
+ }
+
+ /// @notice Validate initial state of the NopeDAO
+ function testInitialState() public {
+ uint256 quorum = nopeDAO.quorum(uint256(0));
+ assertEq(quorum, 10_000_000e18);
+
+ uint256 votingDelay = nopeDAO.votingDelay();
+ assertEq(votingDelay, 0);
+
+ uint256 votingPeriod = nopeDAO.votingPeriod();
+ uint256 fourDays = 86400 * 4;
+ assertEq(votingPeriod, fourDays);
+
+ uint256 proposalThreshold = nopeDAO.proposalThreshold();
+ assertEq(proposalThreshold, 0);
+
+ address token = address(nopeDAO.token());
+ assertEq(token, tribeAddress);
+
+ uint256 userVoteWeight = tribe.getCurrentVotes(user);
+ assertEq(userVoteWeight, excessQuorumTribe);
+ }
+
+ /// @notice Validate the quick reaction governor and that state is set to SUCCEEDED as soon as quorum is reached
+ function testQuickReaction() public {
+ vm.roll(1); // Make block number non-zero, for getVotes accounting
+
+ DummyStorage dummyStorageContract = new DummyStorage();
+ uint256 newVariable = 10;
+ (
+ address[] memory targets,
+ uint256[] memory values,
+ bytes[] memory calldatas,
+ string memory description,
+
+ ) = createDummyProposal(address(dummyStorageContract), newVariable);
+
+ // Propose and validate state
+ uint256 proposalId = nopeDAO.propose(targets, values, calldatas, description);
+
+ // 1. Validate Pending
+ uint8 statePending = uint8(nopeDAO.state(proposalId));
+ assertEq(statePending, uint8(0)); // pending
+ vm.roll(block.number + 1);
+
+ // 2. Validate Active
+ uint8 stateActive = uint8(nopeDAO.state(proposalId));
+ assertEq(stateActive, uint8(1)); // active
+ vm.roll(block.number + 1);
+
+ // 3. Validate Succeeded, without a need for fast forwarding in time. Quorum reached when pass vote
+ vm.prank(user);
+ nopeDAO.castVote(proposalId, 1);
+ uint8 stateSucceeded = uint8(nopeDAO.state(proposalId));
+ assertEq(stateSucceeded, uint8(4)); // succeeded
+ }
+
+ /// @notice Validate that a DAO proposal can be executed.
+ /// Specifically, targets a dummy mock contract
+ function testProposalExecutes() public {
+ vm.roll(block.number + 1); // Make block number non-zero, for getVotes accounting
+ DummyStorage dummyStorageContract = new DummyStorage();
+ assertEq(dummyStorageContract.getVariable(), uint256(5));
+
+ uint256 newVariable = 10;
+ (
+ address[] memory targets,
+ uint256[] memory values,
+ bytes[] memory calldatas,
+ string memory description,
+ bytes32 descriptionHash
+ ) = createDummyProposal(address(dummyStorageContract), newVariable);
+
+ vm.prank(user);
+ uint256 proposalId = nopeDAO.propose(targets, values, calldatas, description);
+
+ // Advance past the 1 voting block
+ vm.roll(block.number + 1);
+
+ // Cast a vote for the proposal, in excess of quorum
+ vm.prank(user);
+ nopeDAO.castVote(proposalId, 1);
+
+ // Validate proposal is now successful
+ uint8 state = uint8(nopeDAO.state(proposalId));
+ assertEq(state, uint8(4));
+
+ // Execute
+ nopeDAO.execute(targets, values, calldatas, descriptionHash);
+
+ // Validate that dummy test contract was interacted with as expected
+ uint256 updatedVariable = dummyStorageContract.getVariable();
+ assertEq(updatedVariable, newVariable);
+ }
+}
diff --git a/contracts/test/unit/governance/PodExecutor.t.sol b/contracts/test/unit/governance/PodExecutor.t.sol
new file mode 100644
index 000000000..0205cb0c5
--- /dev/null
+++ b/contracts/test/unit/governance/PodExecutor.t.sol
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.0;
+
+import {DSTest} from "../../utils/DSTest.sol";
+import {Vm} from "../../utils/Vm.sol";
+import {getCore, getAddresses, FeiTestAddresses} from "../../utils/Fixtures.sol";
+import {PodExecutor} from "../../../pods/PodExecutor.sol";
+import {TribeRoles} from "../../../core/TribeRoles.sol";
+import {Core} from "../../../core/Core.sol";
+
+contract PodExecutorTest is DSTest {
+ FeiTestAddresses addresses;
+ Core core;
+ PodExecutor podExecutor;
+
+ Vm public constant vm = Vm(HEVM_ADDRESS);
+
+ function setUp() public {
+ addresses = getAddresses();
+ core = getCore();
+ podExecutor = new PodExecutor(address(core));
+
+ vm.startPrank(addresses.governorAddress);
+ core.createRole(TribeRoles.GOVERNOR, TribeRoles.GOVERNOR);
+ core.grantRole(TribeRoles.GOVERNOR, addresses.governorAddress);
+ vm.stopPrank();
+ }
+
+ /// @notice Validate initial state of roleCreator
+ function testCanPause() public {
+ vm.prank(addresses.governorAddress);
+ podExecutor.pause();
+
+ vm.expectRevert(bytes("Pausable: paused"));
+ podExecutor.execute(address(1), address(2), uint256(3), bytes("0x4"), bytes32(0), bytes32("0x123"));
+ }
+
+ /// @notice Validate that only an authenticated address can pause
+ function testOnlyAuthedAddressCanPause() public {
+ vm.expectRevert(bytes("CoreRef: Caller is not a guardian or governor"));
+ podExecutor.pause();
+ }
+}
diff --git a/contracts/test/utils/DSTest.sol b/contracts/test/utils/DSTest.sol
index b16c3e3e8..9e5d336cf 100644
--- a/contracts/test/utils/DSTest.sol
+++ b/contracts/test/utils/DSTest.sol
@@ -13,6 +13,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+import {Deviation} from "../../utils/Deviation.sol";
+
pragma solidity >=0.4.23;
contract DSTest {
@@ -38,8 +40,7 @@ contract DSTest {
bool public IS_TEST = true;
bool public failed;
- address constant HEVM_ADDRESS =
- address(bytes20(uint160(uint256(keccak256("hevm cheat code")))));
+ address constant HEVM_ADDRESS = address(bytes20(uint160(uint256(keccak256("hevm cheat code")))));
modifier mayRevert() {
_;
@@ -59,6 +60,24 @@ contract DSTest {
emit log_named_uint("gas", startGas - endGas);
}
+ function assertApproxEq(
+ int256 a,
+ int256 b,
+ uint8 allowableDeviation
+ ) internal {
+ if (a != b) {
+ uint256 deviation = Deviation.calculateDeviationThresholdBasisPoints(a, b);
+ if (deviation > allowableDeviation) {
+ emit log("Error: a == b not satisfied, deviation exceeded [int]");
+ emit log_named_int(" Expected", b);
+ emit log_named_int(" Actual", a);
+ emit log_named_int(" Max Dev", int8(allowableDeviation));
+ emit log_named_int("actual Dev", int256(deviation));
+ fail();
+ }
+ }
+ }
+
function assertTrue(bool condition) internal {
if (!condition) {
emit log("Error: Assertion Failed");
@@ -611,11 +630,7 @@ contract DSTest {
}
}
- function checkEq0(bytes memory a, bytes memory b)
- internal
- pure
- returns (bool ok)
- {
+ function checkEq0(bytes memory a, bytes memory b) internal pure returns (bool ok) {
ok = true;
if (a.length == b.length) {
for (uint256 i = 0; i < a.length; i++) {
diff --git a/contracts/test/utils/Fixtures.sol b/contracts/test/utils/Fixtures.sol
index 01dd45903..8c76563ca 100644
--- a/contracts/test/utils/Fixtures.sol
+++ b/contracts/test/utils/Fixtures.sol
@@ -39,9 +39,7 @@ function getAddresses() pure returns (FeiTestAddresses memory) {
/// @dev Deploy and configure Core
function getCore() returns (Core) {
- address HEVM_ADDRESS = address(
- bytes20(uint160(uint256(keccak256("hevm cheat code"))))
- );
+ address HEVM_ADDRESS = address(bytes20(uint160(uint256(keccak256("hevm cheat code")))));
Vm vm = Vm(HEVM_ADDRESS);
FeiTestAddresses memory addresses = getAddresses();
@@ -58,3 +56,16 @@ function getCore() returns (Core) {
vm.stopPrank();
return core;
}
+
+/// @notice Dummy contract used to test NopeDAO and Safe proposals
+contract DummyStorage {
+ uint256 private variable = 5;
+
+ function getVariable() external view returns (uint256) {
+ return variable;
+ }
+
+ function setVariable(uint256 x) external {
+ variable = x;
+ }
+}
diff --git a/contracts/test/utils/StdLib.sol b/contracts/test/utils/StdLib.sol
index e3d8fa526..98a0b5209 100644
--- a/contracts/test/utils/StdLib.sol
+++ b/contracts/test/utils/StdLib.sol
@@ -7,8 +7,7 @@ import "./Vm.sol";
abstract contract StdLib {
// we use a custom name that is unlikely to cause collisions so this contract
// can be inherited easily
- Vm constant vm_std_cheats =
- Vm(address(uint160(uint256(keccak256("hevm cheat code")))));
+ Vm constant vm_std_cheats = Vm(address(uint160(uint256(keccak256("hevm cheat code")))));
// Skip forward or rewind time by the specified number of seconds
function skip(uint256 time) public {
@@ -73,14 +72,8 @@ abstract contract StdLib {
// Deploys a contract by fetching the contract bytecode from
// the artifacts directory
- function deployCode(string memory what, bytes memory args)
- public
- returns (address addr)
- {
- bytes memory bytecode = abi.encodePacked(
- vm_std_cheats.getCode(what),
- args
- );
+ function deployCode(string memory what, bytes memory args) public returns (address addr) {
+ bytes memory bytecode = abi.encodePacked(vm_std_cheats.getCode(what), args);
assembly {
addr := create(0, add(bytecode, 0x20), mload(bytecode))
}
@@ -95,24 +88,15 @@ abstract contract StdLib {
}
library stdError {
- bytes public constant assertionError =
- abi.encodeWithSignature("Panic(uint256)", 0x01);
- bytes public constant arithmeticError =
- abi.encodeWithSignature("Panic(uint256)", 0x11);
- bytes public constant divisionError =
- abi.encodeWithSignature("Panic(uint256)", 0x12);
- bytes public constant enumConversionError =
- abi.encodeWithSignature("Panic(uint256)", 0x21);
- bytes public constant encodeStorageError =
- abi.encodeWithSignature("Panic(uint256)", 0x22);
- bytes public constant popError =
- abi.encodeWithSignature("Panic(uint256)", 0x31);
- bytes public constant indexOOBError =
- abi.encodeWithSignature("Panic(uint256)", 0x32);
- bytes public constant memOverflowError =
- abi.encodeWithSignature("Panic(uint256)", 0x41);
- bytes public constant zeroVarError =
- abi.encodeWithSignature("Panic(uint256)", 0x51);
+ bytes public constant assertionError = abi.encodeWithSignature("Panic(uint256)", 0x01);
+ bytes public constant arithmeticError = abi.encodeWithSignature("Panic(uint256)", 0x11);
+ bytes public constant divisionError = abi.encodeWithSignature("Panic(uint256)", 0x12);
+ bytes public constant enumConversionError = abi.encodeWithSignature("Panic(uint256)", 0x21);
+ bytes public constant encodeStorageError = abi.encodeWithSignature("Panic(uint256)", 0x22);
+ bytes public constant popError = abi.encodeWithSignature("Panic(uint256)", 0x31);
+ bytes public constant indexOOBError = abi.encodeWithSignature("Panic(uint256)", 0x32);
+ bytes public constant memOverflowError = abi.encodeWithSignature("Panic(uint256)", 0x41);
+ bytes public constant zeroVarError = abi.encodeWithSignature("Panic(uint256)", 0x51);
}
struct StdStorage {
@@ -133,8 +117,7 @@ library stdStorage {
event SlotFound(address who, bytes4 fsig, bytes32 keysHash, uint256 slot);
event WARNING_UninitedSlot(address who, uint256 slot);
- Vm constant stdstore_vm =
- Vm(address(uint160(uint256(keccak256("hevm cheat code")))));
+ Vm constant stdstore_vm = Vm(address(uint160(uint256(keccak256("hevm cheat code")))));
function sigs(string memory sigStr) internal pure returns (bytes4) {
return bytes4(keccak256(bytes(sigStr)));
@@ -153,13 +136,8 @@ library stdStorage {
bytes32[] memory ins = self._keys;
// calldata to test against
- if (
- self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]
- ) {
- return
- self.slots[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ];
+ if (self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]) {
+ return self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))];
}
bytes memory cald = abi.encodePacked(fsig, flatten(ins));
stdstore_vm.record();
@@ -178,18 +156,9 @@ library stdStorage {
if (fdat != curr) {
revert PackedSlot(reads[0]);
}
- emit SlotFound(
- who,
- fsig,
- keccak256(abi.encodePacked(ins, field_depth)),
- uint256(reads[0])
- );
- self.slots[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ] = uint256(reads[0]);
- self.finds[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ] = true;
+ emit SlotFound(who, fsig, keccak256(abi.encodePacked(ins, field_depth)), uint256(reads[0]));
+ self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = uint256(reads[0]);
+ self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = true;
} else if (reads.length > 1) {
for (uint256 i = 0; i < reads.length; i++) {
bytes32 prev = stdstore_vm.load(who, reads[i]);
@@ -205,18 +174,9 @@ library stdStorage {
if (fdat == bytes32(hex"1337")) {
// we found which of the slots is the actual one
- emit SlotFound(
- who,
- fsig,
- keccak256(abi.encodePacked(ins, field_depth)),
- uint256(reads[i])
- );
- self.slots[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ] = uint256(reads[i]);
- self.finds[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ] = true;
+ emit SlotFound(who, fsig, keccak256(abi.encodePacked(ins, field_depth)), uint256(reads[i]));
+ self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = uint256(reads[i]);
+ self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))] = true;
stdstore_vm.store(who, reads[i], prev);
break;
}
@@ -226,75 +186,47 @@ library stdStorage {
revert NotStorage(fsig);
}
- if (
- !self.finds[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ]
- ) revert NotFound(fsig);
+ if (!self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]) revert NotFound(fsig);
delete self._target;
delete self._sig;
delete self._keys;
delete self._depth;
- return
- self.slots[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ];
+ return self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))];
}
- function target(StdStorage storage self, address _target)
- internal
- returns (StdStorage storage)
- {
+ function target(StdStorage storage self, address _target) internal returns (StdStorage storage) {
self._target = _target;
return self;
}
- function sig(StdStorage storage self, bytes4 _sig)
- internal
- returns (StdStorage storage)
- {
+ function sig(StdStorage storage self, bytes4 _sig) internal returns (StdStorage storage) {
self._sig = _sig;
return self;
}
- function sig(StdStorage storage self, string memory _sig)
- internal
- returns (StdStorage storage)
- {
+ function sig(StdStorage storage self, string memory _sig) internal returns (StdStorage storage) {
self._sig = sigs(_sig);
return self;
}
- function with_key(StdStorage storage self, address who)
- internal
- returns (StdStorage storage)
- {
+ function with_key(StdStorage storage self, address who) internal returns (StdStorage storage) {
self._keys.push(bytes32(uint256(uint160(who))));
return self;
}
- function with_key(StdStorage storage self, uint256 amt)
- internal
- returns (StdStorage storage)
- {
+ function with_key(StdStorage storage self, uint256 amt) internal returns (StdStorage storage) {
self._keys.push(bytes32(amt));
return self;
}
- function with_key(StdStorage storage self, bytes32 key)
- internal
- returns (StdStorage storage)
- {
+ function with_key(StdStorage storage self, bytes32 key) internal returns (StdStorage storage) {
self._keys.push(key);
return self;
}
- function depth(StdStorage storage self, uint256 _depth)
- internal
- returns (StdStorage storage)
- {
+ function depth(StdStorage storage self, uint256 _depth) internal returns (StdStorage storage) {
self._depth = _depth;
return self;
}
@@ -314,16 +246,10 @@ library stdStorage {
bytes32[] memory ins = self._keys;
bytes memory cald = abi.encodePacked(fsig, flatten(ins));
- if (
- !self.finds[who][fsig][
- keccak256(abi.encodePacked(ins, field_depth))
- ]
- ) {
+ if (!self.finds[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]) {
find(self);
}
- bytes32 slot = bytes32(
- self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]
- );
+ bytes32 slot = bytes32(self.slots[who][fsig][keccak256(abi.encodePacked(ins, field_depth))]);
bytes32 fdat;
{
@@ -342,11 +268,7 @@ library stdStorage {
delete self._depth;
}
- function bytesToBytes32(bytes memory b, uint256 offset)
- public
- pure
- returns (bytes32)
- {
+ function bytesToBytes32(bytes memory b, uint256 offset) public pure returns (bytes32) {
bytes32 out;
for (uint256 i = 0; i < 32; i++) {
diff --git a/contracts/test/utils/Vm.sol b/contracts/test/utils/Vm.sol
index 5f99c0c4a..f38cf2bc2 100644
--- a/contracts/test/utils/Vm.sol
+++ b/contracts/test/utils/Vm.sol
@@ -66,9 +66,7 @@ interface Vm {
function record() external;
// Gets all accessed reads and write slot from a recording session, for a given address
- function accesses(address)
- external
- returns (bytes32[] memory reads, bytes32[] memory writes);
+ function accesses(address) external returns (bytes32[] memory reads, bytes32[] memory writes);
// Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData).
// Call this function, then emit an event, then call a function. Internally after the call, we check if
diff --git a/contracts/timelocks/ITimelockedDelegator.sol b/contracts/timelocks/ITimelockedDelegator.sol
index e7e87d478..d3259dbee 100644
--- a/contracts/timelocks/ITimelockedDelegator.sol
+++ b/contracts/timelocks/ITimelockedDelegator.sol
@@ -25,10 +25,7 @@ interface ITimelockedDelegator {
// ----------- Getters -----------
- function delegateContract(address delegatee)
- external
- view
- returns (address);
+ function delegateContract(address delegatee) external view returns (address);
function delegateAmount(address delegatee) external view returns (uint256);
diff --git a/contracts/timelocks/ITokenTimelock.sol b/contracts/timelocks/ITokenTimelock.sol
index 78be0ff55..4c1b8466d 100644
--- a/contracts/timelocks/ITokenTimelock.sol
+++ b/contracts/timelocks/ITokenTimelock.sol
@@ -8,11 +8,7 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
interface ITokenTimelock {
// ----------- Events -----------
- event Release(
- address indexed _beneficiary,
- address indexed _recipient,
- uint256 _amount
- );
+ event Release(address indexed _beneficiary, address indexed _recipient, uint256 _amount);
event BeneficiaryUpdate(address indexed _beneficiary);
event PendingBeneficiaryUpdate(address indexed _pendingBeneficiary);
diff --git a/contracts/timelocks/LinearTimelockedDelegator.sol b/contracts/timelocks/LinearTimelockedDelegator.sol
index bf62c6e01..a5b779bb5 100644
--- a/contracts/timelocks/LinearTimelockedDelegator.sol
+++ b/contracts/timelocks/LinearTimelockedDelegator.sol
@@ -26,16 +26,7 @@ contract LinearTimelockedDelegator is LinearTokenTimelock {
uint256 _cliff,
address _clawbackAdmin,
uint256 _startTime
- )
- LinearTokenTimelock(
- _beneficiary,
- _duration,
- _token,
- _cliff,
- _clawbackAdmin,
- _startTime
- )
- {}
+ ) LinearTokenTimelock(_beneficiary, _duration, _token, _cliff, _clawbackAdmin, _startTime) {}
/// @notice accept beneficiary role over timelocked TRIBE
/// @dev _setBeneficiary internal call checks msg.sender == pendingBeneficiary
diff --git a/contracts/timelocks/LinearTokenTimelock.sol b/contracts/timelocks/LinearTokenTimelock.sol
index 318ef48c5..97cc2b5f5 100644
--- a/contracts/timelocks/LinearTokenTimelock.sol
+++ b/contracts/timelocks/LinearTokenTimelock.sol
@@ -11,15 +11,7 @@ contract LinearTokenTimelock is TokenTimelock {
uint256 _cliffDuration,
address _clawbackAdmin,
uint256 _startTime
- )
- TokenTimelock(
- _beneficiary,
- _duration,
- _cliffDuration,
- _lockedToken,
- _clawbackAdmin
- )
- {
+ ) TokenTimelock(_beneficiary, _duration, _cliffDuration, _lockedToken, _clawbackAdmin) {
if (_startTime != 0) {
startTime = _startTime;
}
diff --git a/contracts/timelocks/QuadraticTimelockedDelegator.sol b/contracts/timelocks/QuadraticTimelockedDelegator.sol
index ce88db551..7da9de4c1 100644
--- a/contracts/timelocks/QuadraticTimelockedDelegator.sol
+++ b/contracts/timelocks/QuadraticTimelockedDelegator.sol
@@ -26,16 +26,7 @@ contract QuadraticTimelockedDelegator is QuadraticTokenTimelock {
uint256 _cliff,
address _clawbackAdmin,
uint256 _startTime
- )
- QuadraticTokenTimelock(
- _beneficiary,
- _duration,
- _token,
- _cliff,
- _clawbackAdmin,
- _startTime
- )
- {}
+ ) QuadraticTokenTimelock(_beneficiary, _duration, _token, _cliff, _clawbackAdmin, _startTime) {}
/// @notice accept beneficiary role over timelocked TRIBE
function acceptBeneficiary() public override {
diff --git a/contracts/timelocks/QuadraticTimelockedSubdelegator.sol b/contracts/timelocks/QuadraticTimelockedSubdelegator.sol
index ef812de0e..49daa18a7 100644
--- a/contracts/timelocks/QuadraticTimelockedSubdelegator.sol
+++ b/contracts/timelocks/QuadraticTimelockedSubdelegator.sol
@@ -30,10 +30,7 @@ contract Delegatee is Ownable {
/// @title a timelock for TRIBE allowing for sub-delegation
/// @author Fei Protocol
/// @notice allows the timelocked TRIBE to be delegated by the beneficiary while locked
-contract QuadtraticTimelockedSubdelegator is
- ITimelockedDelegator,
- QuadraticTokenTimelock
-{
+contract QuadtraticTimelockedSubdelegator is ITimelockedDelegator, QuadraticTokenTimelock {
/// @notice associated delegate proxy contract for a delegatee
mapping(address => address) public override delegateContract;
@@ -60,31 +57,15 @@ contract QuadtraticTimelockedSubdelegator is
address _tribe,
uint256 _cliff,
uint256 _startTime
- )
- QuadraticTokenTimelock(
- _beneficiary,
- _duration,
- _tribe,
- _cliff,
- address(0),
- _startTime
- )
- {
+ ) QuadraticTokenTimelock(_beneficiary, _duration, _tribe, _cliff, address(0), _startTime) {
tribe = ITribe(_tribe);
}
/// @notice delegate locked TRIBE to a delegatee
/// @param delegatee the target address to delegate to
/// @param amount the amount of TRIBE to delegate. Will increment existing delegated TRIBE
- function delegate(address delegatee, uint256 amount)
- public
- override
- onlyBeneficiary
- {
- require(
- amount <= _tribeBalance(),
- "TimelockedDelegator: Not enough Tribe"
- );
+ function delegate(address delegatee, uint256 amount) public override onlyBeneficiary {
+ require(amount <= _tribeBalance(), "TimelockedDelegator: Not enough Tribe");
// withdraw and include an existing delegation
if (delegateContract[delegatee] != address(0)) {
@@ -92,9 +73,7 @@ contract QuadtraticTimelockedSubdelegator is
}
ITribe _tribe = tribe;
- address _delegateContract = address(
- new Delegatee(delegatee, address(_tribe))
- );
+ address _delegateContract = address(new Delegatee(delegatee, address(_tribe)));
delegateContract[delegatee] = _delegateContract;
delegateAmount[delegatee] = amount;
@@ -108,17 +87,9 @@ contract QuadtraticTimelockedSubdelegator is
/// @notice return delegated TRIBE to the timelock
/// @param delegatee the target address to undelegate from
/// @return the amount of TRIBE returned
- function undelegate(address delegatee)
- public
- override
- onlyBeneficiary
- returns (uint256)
- {
+ function undelegate(address delegatee) public override onlyBeneficiary returns (uint256) {
address _delegateContract = delegateContract[delegatee];
- require(
- _delegateContract != address(0),
- "TimelockedDelegator: Delegate contract nonexistent"
- );
+ require(_delegateContract != address(0), "TimelockedDelegator: Delegate contract nonexistent");
Delegatee(_delegateContract).withdraw();
diff --git a/contracts/timelocks/QuadraticTokenTimelock.sol b/contracts/timelocks/QuadraticTokenTimelock.sol
index dabd3455f..c57493439 100644
--- a/contracts/timelocks/QuadraticTokenTimelock.sol
+++ b/contracts/timelocks/QuadraticTokenTimelock.sol
@@ -11,15 +11,7 @@ contract QuadraticTokenTimelock is TokenTimelock {
uint256 _cliffDuration,
address _clawbackAdmin,
uint256 _startTime
- )
- TokenTimelock(
- _beneficiary,
- _duration,
- _cliffDuration,
- _lockedToken,
- _clawbackAdmin
- )
- {
+ ) TokenTimelock(_beneficiary, _duration, _cliffDuration, _lockedToken, _clawbackAdmin) {
if (_startTime != 0) {
startTime = _startTime;
}
diff --git a/contracts/timelocks/TimelockedDelegator.sol b/contracts/timelocks/TimelockedDelegator.sol
index dd96c9679..51049c197 100644
--- a/contracts/timelocks/TimelockedDelegator.sol
+++ b/contracts/timelocks/TimelockedDelegator.sol
@@ -60,15 +60,8 @@ contract TimelockedDelegator is ITimelockedDelegator, LinearTokenTimelock {
/// @notice delegate locked TRIBE to a delegatee
/// @param delegatee the target address to delegate to
/// @param amount the amount of TRIBE to delegate. Will increment existing delegated TRIBE
- function delegate(address delegatee, uint256 amount)
- public
- override
- onlyBeneficiary
- {
- require(
- amount <= _tribeBalance(),
- "TimelockedDelegator: Not enough Tribe"
- );
+ function delegate(address delegatee, uint256 amount) public override onlyBeneficiary {
+ require(amount <= _tribeBalance(), "TimelockedDelegator: Not enough Tribe");
// withdraw and include an existing delegation
if (delegateContract[delegatee] != address(0)) {
@@ -76,9 +69,7 @@ contract TimelockedDelegator is ITimelockedDelegator, LinearTokenTimelock {
}
ITribe _tribe = tribe;
- address _delegateContract = address(
- new Delegatee(delegatee, address(_tribe))
- );
+ address _delegateContract = address(new Delegatee(delegatee, address(_tribe)));
delegateContract[delegatee] = _delegateContract;
delegateAmount[delegatee] = amount;
@@ -92,17 +83,9 @@ contract TimelockedDelegator is ITimelockedDelegator, LinearTokenTimelock {
/// @notice return delegated TRIBE to the timelock
/// @param delegatee the target address to undelegate from
/// @return the amount of TRIBE returned
- function undelegate(address delegatee)
- public
- override
- onlyBeneficiary
- returns (uint256)
- {
+ function undelegate(address delegatee) public override onlyBeneficiary returns (uint256) {
address _delegateContract = delegateContract[delegatee];
- require(
- _delegateContract != address(0),
- "TimelockedDelegator: Delegate contract nonexistent"
- );
+ require(_delegateContract != address(0), "TimelockedDelegator: Delegate contract nonexistent");
Delegatee(_delegateContract).withdraw();
diff --git a/contracts/timelocks/TokenTimelock.sol b/contracts/timelocks/TokenTimelock.sol
index b7a6fb3c9..648ba74fc 100644
--- a/contracts/timelocks/TokenTimelock.sol
+++ b/contracts/timelocks/TokenTimelock.sol
@@ -35,10 +35,7 @@ abstract contract TokenTimelock is ITokenTimelock, Timed {
address _clawbackAdmin
) Timed(_duration) {
require(_duration != 0, "TokenTimelock: duration is 0");
- require(
- _beneficiary != address(0),
- "TokenTimelock: Beneficiary must not be 0 address"
- );
+ require(_beneficiary != address(0), "TokenTimelock: Beneficiary must not be 0 address");
beneficiary = _beneficiary;
_initTimed();
@@ -61,39 +58,23 @@ abstract contract TokenTimelock is ITokenTimelock, Timed {
}
modifier onlyBeneficiary() {
- require(
- msg.sender == beneficiary,
- "TokenTimelock: Caller is not a beneficiary"
- );
+ require(msg.sender == beneficiary, "TokenTimelock: Caller is not a beneficiary");
_;
}
/// @notice releases `amount` unlocked tokens to address `to`
- function release(address to, uint256 amount)
- external
- override
- onlyBeneficiary
- balanceCheck
- {
+ function release(address to, uint256 amount) external override onlyBeneficiary balanceCheck {
require(amount != 0, "TokenTimelock: no amount desired");
require(passedCliff(), "TokenTimelock: Cliff not passed");
uint256 available = availableForRelease();
- require(
- amount <= available,
- "TokenTimelock: not enough released tokens"
- );
+ require(amount <= available, "TokenTimelock: not enough released tokens");
_release(to, amount);
}
/// @notice releases maximum unlocked tokens to address `to`
- function releaseMax(address to)
- external
- override
- onlyBeneficiary
- balanceCheck
- {
+ function releaseMax(address to) external override onlyBeneficiary balanceCheck {
require(passedCliff(), "TokenTimelock: Cliff not passed");
_release(to, availableForRelease());
}
@@ -112,21 +93,13 @@ abstract contract TokenTimelock is ITokenTimelock, Timed {
function availableForRelease() public view override returns (uint256) {
uint256 elapsed = timeSinceStart();
- uint256 totalAvailable = _proportionAvailable(
- initialBalance,
- elapsed,
- duration
- );
+ uint256 totalAvailable = _proportionAvailable(initialBalance, elapsed, duration);
uint256 netAvailable = totalAvailable - alreadyReleasedAmount();
return netAvailable;
}
/// @notice current beneficiary can appoint new beneficiary, which must be accepted
- function setPendingBeneficiary(address _pendingBeneficiary)
- public
- override
- onlyBeneficiary
- {
+ function setPendingBeneficiary(address _pendingBeneficiary) public override onlyBeneficiary {
pendingBeneficiary = _pendingBeneficiary;
emit PendingBeneficiaryUpdate(_pendingBeneficiary);
}
@@ -137,10 +110,7 @@ abstract contract TokenTimelock is ITokenTimelock, Timed {
}
function clawback() public balanceCheck {
- require(
- msg.sender == clawbackAdmin,
- "TokenTimelock: Only clawbackAdmin"
- );
+ require(msg.sender == clawbackAdmin, "TokenTimelock: Only clawbackAdmin");
if (passedCliff()) {
_release(beneficiary, availableForRelease());
}
@@ -158,10 +128,7 @@ abstract contract TokenTimelock is ITokenTimelock, Timed {
) internal pure virtual returns (uint256);
function _setBeneficiary(address newBeneficiary) internal {
- require(
- newBeneficiary == pendingBeneficiary,
- "TokenTimelock: Caller is not pending beneficiary"
- );
+ require(newBeneficiary == pendingBeneficiary, "TokenTimelock: Caller is not pending beneficiary");
beneficiary = newBeneficiary;
emit BeneficiaryUpdate(newBeneficiary);
pendingBeneficiary = address(0);
diff --git a/contracts/tribe/ITribeMinter.sol b/contracts/tribe/ITribeMinter.sol
index ad203fe83..0a6565117 100644
--- a/contracts/tribe/ITribeMinter.sol
+++ b/contracts/tribe/ITribeMinter.sol
@@ -13,18 +13,9 @@ interface ITribe is IERC20 {
/// @author Fei Protocol
interface ITribeMinter {
// ----------- Events -----------
- event AnnualMaxInflationUpdate(
- uint256 oldAnnualMaxInflationBasisPoints,
- uint256 newAnnualMaxInflationBasisPoints
- );
- event TribeTreasuryUpdate(
- address indexed oldTribeTreasury,
- address indexed newTribeTreasury
- );
- event TribeRewardsDripperUpdate(
- address indexed oldTribeRewardsDripper,
- address indexed newTribeRewardsDripper
- );
+ event AnnualMaxInflationUpdate(uint256 oldAnnualMaxInflationBasisPoints, uint256 newAnnualMaxInflationBasisPoints);
+ event TribeTreasuryUpdate(address indexed oldTribeTreasury, address indexed newTribeTreasury);
+ event TribeRewardsDripperUpdate(address indexed oldTribeRewardsDripper, address indexed newTribeRewardsDripper);
// ----------- Public state changing api -----------
@@ -42,9 +33,7 @@ interface ITribeMinter {
function setTribeRewardsDripper(address newTribeRewardsDripper) external;
- function setAnnualMaxInflationBasisPoints(
- uint256 newAnnualMaxInflationBasisPoints
- ) external;
+ function setAnnualMaxInflationBasisPoints(uint256 newAnnualMaxInflationBasisPoints) external;
// ----------- Getters -----------
diff --git a/contracts/tribe/Tribe.sol b/contracts/tribe/Tribe.sol
index 5f2dc27a9..33bbfef1a 100644
--- a/contracts/tribe/Tribe.sol
+++ b/contracts/tribe/Tribe.sol
@@ -47,9 +47,7 @@ contract Tribe {
/// @notice The EIP-712 typehash for the contract's domain
bytes32 public constant DOMAIN_TYPEHASH =
- keccak256(
- "EIP712Domain(string name,uint256 chainId,address verifyingContract)"
- );
+ keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)");
/// @notice The EIP-712 typehash for the delegation struct used by the contract
bytes32 public constant DELEGATION_TYPEHASH =
@@ -57,9 +55,7 @@ contract Tribe {
/// @notice The EIP-712 typehash for the permit struct used by the contract
bytes32 public constant PERMIT_TYPEHASH =
- keccak256(
- "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
- );
+ keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
/// @notice A record of states for signing / validating signatures
mapping(address => uint256) public nonces;
@@ -68,28 +64,16 @@ contract Tribe {
event MinterChanged(address minter, address newMinter);
/// @notice An event thats emitted when an account changes its delegate
- event DelegateChanged(
- address indexed delegator,
- address indexed fromDelegate,
- address indexed toDelegate
- );
+ event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);
/// @notice An event thats emitted when a delegate account's vote balance changes
- event DelegateVotesChanged(
- address indexed delegate,
- uint256 previousBalance,
- uint256 newBalance
- );
+ event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);
/// @notice The standard EIP-20 transfer event
event Transfer(address indexed from, address indexed to, uint256 amount);
/// @notice The standard EIP-20 approval event
- event Approval(
- address indexed owner,
- address indexed spender,
- uint256 amount
- );
+ event Approval(address indexed owner, address indexed spender, uint256 amount);
/**
* @notice Construct a new Tribe token
@@ -108,10 +92,7 @@ contract Tribe {
* @param minter_ The address of the new minter
*/
function setMinter(address minter_) external {
- require(
- msg.sender == minter,
- "Tribe: only the minter can change the minter address"
- );
+ require(msg.sender == minter, "Tribe: only the minter can change the minter address");
emit MinterChanged(minter, minter_);
minter = minter_;
}
@@ -123,29 +104,15 @@ contract Tribe {
*/
function mint(address dst, uint256 rawAmount) external {
require(msg.sender == minter, "Tribe: only the minter can mint");
- require(
- dst != address(0),
- "Tribe: cannot transfer to the zero address"
- );
+ require(dst != address(0), "Tribe: cannot transfer to the zero address");
// mint the amount
uint96 amount = safe96(rawAmount, "Tribe: amount exceeds 96 bits");
- uint96 safeSupply = safe96(
- totalSupply,
- "Tribe: totalSupply exceeds 96 bits"
- );
- totalSupply = add96(
- safeSupply,
- amount,
- "Tribe: totalSupply exceeds 96 bits"
- );
+ uint96 safeSupply = safe96(totalSupply, "Tribe: totalSupply exceeds 96 bits");
+ totalSupply = add96(safeSupply, amount, "Tribe: totalSupply exceeds 96 bits");
// transfer the amount to the recipient
- balances[dst] = add96(
- balances[dst],
- amount,
- "Tribe: transfer amount overflows"
- );
+ balances[dst] = add96(balances[dst], amount, "Tribe: transfer amount overflows");
emit Transfer(address(0), dst, amount);
// move delegates
@@ -158,11 +125,7 @@ contract Tribe {
* @param spender The address of the account spending the funds
* @return The number of tokens approved
*/
- function allowance(address account, address spender)
- external
- view
- returns (uint256)
- {
+ function allowance(address account, address spender) external view returns (uint256) {
return allowances[account][spender];
}
@@ -174,10 +137,7 @@ contract Tribe {
* @param rawAmount The number of tokens that are approved (2^256-1 means infinite)
* @return Whether or not the approval succeeded
*/
- function approve(address spender, uint256 rawAmount)
- external
- returns (bool)
- {
+ function approve(address spender, uint256 rawAmount) external returns (bool) {
uint96 amount;
if (rawAmount == type(uint256).max) {
amount = type(uint96).max;
@@ -218,26 +178,12 @@ contract Tribe {
}
bytes32 domainSeparator = keccak256(
- abi.encode(
- DOMAIN_TYPEHASH,
- keccak256(bytes(name)),
- getChainId(),
- address(this)
- )
+ abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))
);
bytes32 structHash = keccak256(
- abi.encode(
- PERMIT_TYPEHASH,
- owner,
- spender,
- rawAmount,
- nonces[owner]++,
- deadline
- )
- );
- bytes32 digest = keccak256(
- abi.encodePacked("\x19\x01", domainSeparator, structHash)
+ abi.encode(PERMIT_TYPEHASH, owner, spender, rawAmount, nonces[owner]++, deadline)
);
+ bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
address signatory = ecrecover(digest, v, r, s);
require(signatory != address(0), "Tribe: invalid signature");
require(signatory == owner, "Tribe: unauthorized");
@@ -286,11 +232,7 @@ contract Tribe {
uint96 amount = safe96(rawAmount, "Tribe: amount exceeds 96 bits");
if (spender != src && spenderAllowance != type(uint96).max) {
- uint96 newAllowance = sub96(
- spenderAllowance,
- amount,
- "Tribe: transfer amount exceeds spender allowance"
- );
+ uint96 newAllowance = sub96(spenderAllowance, amount, "Tribe: transfer amount exceeds spender allowance");
allowances[src][spender] = newAllowance;
emit Approval(src, spender, newAllowance);
@@ -326,19 +268,10 @@ contract Tribe {
bytes32 s
) public {
bytes32 domainSeparator = keccak256(
- abi.encode(
- DOMAIN_TYPEHASH,
- keccak256(bytes(name)),
- getChainId(),
- address(this)
- )
- );
- bytes32 structHash = keccak256(
- abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)
- );
- bytes32 digest = keccak256(
- abi.encodePacked("\x19\x01", domainSeparator, structHash)
+ abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))
);
+ bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry));
+ bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
address signatory = ecrecover(digest, v, r, s);
require(signatory != address(0), "Tribe: invalid signature");
require(nonce == nonces[signatory]++, "Tribe: invalid nonce");
@@ -353,8 +286,7 @@ contract Tribe {
*/
function getCurrentVotes(address account) external view returns (uint96) {
uint32 nCheckpoints = numCheckpoints[account];
- return
- nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
+ return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0;
}
/**
@@ -364,11 +296,7 @@ contract Tribe {
* @param blockNumber The block number to get the vote balance at
* @return The number of votes the account had as of the given block
*/
- function getPriorVotes(address account, uint256 blockNumber)
- public
- view
- returns (uint96)
- {
+ function getPriorVotes(address account, uint256 blockNumber) public view returns (uint96) {
require(blockNumber < block.number, "Tribe: not yet determined");
uint32 nCheckpoints = numCheckpoints[account];
@@ -417,25 +345,11 @@ contract Tribe {
address dst,
uint96 amount
) internal {
- require(
- src != address(0),
- "Tribe: cannot transfer from the zero address"
- );
- require(
- dst != address(0),
- "Tribe: cannot transfer to the zero address"
- );
+ require(src != address(0), "Tribe: cannot transfer from the zero address");
+ require(dst != address(0), "Tribe: cannot transfer to the zero address");
- balances[src] = sub96(
- balances[src],
- amount,
- "Tribe: transfer amount exceeds balance"
- );
- balances[dst] = add96(
- balances[dst],
- amount,
- "Tribe: transfer amount overflows"
- );
+ balances[src] = sub96(balances[src], amount, "Tribe: transfer amount exceeds balance");
+ balances[dst] = add96(balances[dst], amount, "Tribe: transfer amount overflows");
emit Transfer(src, dst, amount);
_moveDelegates(delegates[src], delegates[dst], amount);
@@ -449,27 +363,15 @@ contract Tribe {
if (srcRep != dstRep && amount > 0) {
if (srcRep != address(0)) {
uint32 srcRepNum = numCheckpoints[srcRep];
- uint96 srcRepOld = srcRepNum > 0
- ? checkpoints[srcRep][srcRepNum - 1].votes
- : 0;
- uint96 srcRepNew = sub96(
- srcRepOld,
- amount,
- "Tribe: vote amount underflows"
- );
+ uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0;
+ uint96 srcRepNew = sub96(srcRepOld, amount, "Tribe: vote amount underflows");
_writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew);
}
if (dstRep != address(0)) {
uint32 dstRepNum = numCheckpoints[dstRep];
- uint96 dstRepOld = dstRepNum > 0
- ? checkpoints[dstRep][dstRepNum - 1].votes
- : 0;
- uint96 dstRepNew = add96(
- dstRepOld,
- amount,
- "Tribe: vote amount overflows"
- );
+ uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0;
+ uint96 dstRepNew = add96(dstRepOld, amount, "Tribe: vote amount overflows");
_writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew);
}
}
@@ -481,41 +383,24 @@ contract Tribe {
uint96 oldVotes,
uint96 newVotes
) internal {
- uint32 blockNumber = safe32(
- block.number,
- "Tribe: block number exceeds 32 bits"
- );
+ uint32 blockNumber = safe32(block.number, "Tribe: block number exceeds 32 bits");
- if (
- nCheckpoints > 0 &&
- checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber
- ) {
+ if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) {
checkpoints[delegatee][nCheckpoints - 1].votes = newVotes;
} else {
- checkpoints[delegatee][nCheckpoints] = Checkpoint(
- blockNumber,
- newVotes
- );
+ checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes);
numCheckpoints[delegatee] = nCheckpoints + 1;
}
emit DelegateVotesChanged(delegatee, oldVotes, newVotes);
}
- function safe32(uint256 n, string memory errorMessage)
- internal
- pure
- returns (uint32)
- {
+ function safe32(uint256 n, string memory errorMessage) internal pure returns (uint32) {
require(n < 2**32, errorMessage);
return uint32(n);
}
- function safe96(uint256 n, string memory errorMessage)
- internal
- pure
- returns (uint96)
- {
+ function safe96(uint256 n, string memory errorMessage) internal pure returns (uint96) {
require(n < 2**96, errorMessage);
return uint96(n);
}
diff --git a/contracts/tribe/TribeMinter.sol b/contracts/tribe/TribeMinter.sol
index c3065bb18..9166d0b61 100644
--- a/contracts/tribe/TribeMinter.sol
+++ b/contracts/tribe/TribeMinter.sol
@@ -76,10 +76,7 @@ contract TribeMinter is ITribeMinter, RateLimited, Ownable {
function poke() public override {
uint256 newBufferCap = idealBufferCap();
uint256 oldBufferCap = bufferCap;
- require(
- newBufferCap != oldBufferCap,
- "TribeMinter: No rate limit change needed"
- );
+ require(newBufferCap != oldBufferCap, "TribeMinter: No rate limit change needed");
_setBufferCap(newBufferCap);
_setRateLimitPerSecond(newBufferCap / Constants.ONE_YEAR);
@@ -98,11 +95,7 @@ contract TribeMinter is ITribeMinter, RateLimited, Ownable {
/// @notice mints TRIBE to the target address, subject to rate limit
/// @param to the address to send TRIBE to
/// @param amount the amount of TRIBE to send
- function mint(address to, uint256 amount)
- external
- override
- onlyGovernorOrAdmin
- {
+ function mint(address to, uint256 amount) external override onlyGovernorOrAdmin {
// first apply rate limit
_depleteBuffer(amount);
@@ -111,54 +104,40 @@ contract TribeMinter is ITribeMinter, RateLimited, Ownable {
}
/// @notice sets the new TRIBE treasury address
- function setTribeTreasury(address newTribeTreasury)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setTribeTreasury(address newTribeTreasury) external override onlyGovernorOrAdmin {
address oldTribeTreasury = tribeTreasury;
tribeTreasury = newTribeTreasury;
emit TribeTreasuryUpdate(oldTribeTreasury, newTribeTreasury);
}
/// @notice sets the new TRIBE treasury rewards dripper
- function setTribeRewardsDripper(address newTribeRewardsDripper)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setTribeRewardsDripper(address newTribeRewardsDripper) external override onlyGovernorOrAdmin {
address oldTribeRewardsDripper = tribeRewardsDripper;
tribeRewardsDripper = newTribeRewardsDripper;
- emit TribeTreasuryUpdate(
- oldTribeRewardsDripper,
- newTribeRewardsDripper
- );
+ emit TribeTreasuryUpdate(oldTribeRewardsDripper, newTribeRewardsDripper);
}
/// @notice changes the TRIBE minter address
/// @param newMinter the new minter address
function setMinter(address newMinter) external override onlyOwner {
- require(
- newMinter != address(0),
- "TribeReserveStabilizer: zero address"
- );
+ require(newMinter != address(0), "TribeReserveStabilizer: zero address");
ITribe _tribe = ITribe(address(tribe()));
_tribe.setMinter(newMinter);
}
/// @notice sets the max annual inflation relative to current supply
/// @param newAnnualMaxInflationBasisPoints the new max inflation % denominated in basis points (1/10000)
- function setAnnualMaxInflationBasisPoints(
- uint256 newAnnualMaxInflationBasisPoints
- ) external override onlyGovernorOrAdmin {
+ function setAnnualMaxInflationBasisPoints(uint256 newAnnualMaxInflationBasisPoints)
+ external
+ override
+ onlyGovernorOrAdmin
+ {
_setAnnualMaxInflationBasisPoints(newAnnualMaxInflationBasisPoints);
}
/// @notice return the ideal buffer cap based on TRIBE circulating supply
function idealBufferCap() public view override returns (uint256) {
- return
- (tribeCirculatingSupply() * annualMaxInflationBasisPoints) /
- Constants.BASIS_POINTS_GRANULARITY;
+ return (tribeCirculatingSupply() * annualMaxInflationBasisPoints) / Constants.BASIS_POINTS_GRANULARITY;
}
/// @notice return the TRIBE supply, subtracting locked TRIBE
@@ -213,28 +192,19 @@ contract TribeMinter is ITribeMinter, RateLimited, Ownable {
}
}
- function _setAnnualMaxInflationBasisPoints(
- uint256 newAnnualMaxInflationBasisPoints
- ) internal {
+ function _setAnnualMaxInflationBasisPoints(uint256 newAnnualMaxInflationBasisPoints) internal {
uint256 oldAnnualMaxInflationBasisPoints = annualMaxInflationBasisPoints;
- require(
- newAnnualMaxInflationBasisPoints != 0,
- "TribeMinter: cannot have 0 inflation"
- );
+ require(newAnnualMaxInflationBasisPoints != 0, "TribeMinter: cannot have 0 inflation");
// make sure the new inflation is strictly lower, unless the old inflation is 0 (which is only true upon construction)
require(
- newAnnualMaxInflationBasisPoints <
- oldAnnualMaxInflationBasisPoints ||
+ newAnnualMaxInflationBasisPoints < oldAnnualMaxInflationBasisPoints ||
oldAnnualMaxInflationBasisPoints == 0,
"TribeMinter: cannot increase max inflation"
);
annualMaxInflationBasisPoints = newAnnualMaxInflationBasisPoints;
- emit AnnualMaxInflationUpdate(
- oldAnnualMaxInflationBasisPoints,
- newAnnualMaxInflationBasisPoints
- );
+ emit AnnualMaxInflationUpdate(oldAnnualMaxInflationBasisPoints, newAnnualMaxInflationBasisPoints);
}
}
diff --git a/contracts/tribe/stabilizer/IReserveStabilizer.sol b/contracts/tribe/stabilizer/IReserveStabilizer.sol
index 7a1bed4df..f60e9b646 100644
--- a/contracts/tribe/stabilizer/IReserveStabilizer.sol
+++ b/contracts/tribe/stabilizer/IReserveStabilizer.sol
@@ -5,16 +5,9 @@ pragma solidity ^0.8.4;
/// @author Fei Protocol
interface IReserveStabilizer {
// ----------- Events -----------
- event FeiExchange(
- address indexed to,
- uint256 feiAmountIn,
- uint256 amountOut
- );
-
- event UsdPerFeiRateUpdate(
- uint256 oldUsdPerFeiBasisPoints,
- uint256 newUsdPerFeiBasisPoints
- );
+ event FeiExchange(address indexed to, uint256 feiAmountIn, uint256 amountOut);
+
+ event UsdPerFeiRateUpdate(uint256 oldUsdPerFeiBasisPoints, uint256 newUsdPerFeiBasisPoints);
// ----------- State changing api -----------
diff --git a/contracts/tribe/stabilizer/ITribeReserveStabilizer.sol b/contracts/tribe/stabilizer/ITribeReserveStabilizer.sol
index 142183010..ea6df418e 100644
--- a/contracts/tribe/stabilizer/ITribeReserveStabilizer.sol
+++ b/contracts/tribe/stabilizer/ITribeReserveStabilizer.sol
@@ -20,13 +20,9 @@ interface ITribeReserveStabilizer {
// ----------- Governor only state changing api -----------
- function setCollateralizationOracle(
- ICollateralizationOracle newCollateralizationOracle
- ) external;
+ function setCollateralizationOracle(ICollateralizationOracle newCollateralizationOracle) external;
- function setCollateralizationThreshold(
- uint256 newCollateralizationThresholdBasisPoints
- ) external;
+ function setCollateralizationThreshold(uint256 newCollateralizationThresholdBasisPoints) external;
function startOracleDelayCountdown() external;
@@ -36,13 +32,7 @@ interface ITribeReserveStabilizer {
function isCollateralizationBelowThreshold() external view returns (bool);
- function collateralizationOracle()
- external
- view
- returns (ICollateralizationOracle);
+ function collateralizationOracle() external view returns (ICollateralizationOracle);
- function collateralizationThreshold()
- external
- view
- returns (Decimal.D256 calldata);
+ function collateralizationThreshold() external view returns (Decimal.D256 calldata);
}
diff --git a/contracts/tribe/stabilizer/ReserveStabilizer.sol b/contracts/tribe/stabilizer/ReserveStabilizer.sol
index f830a0f7e..8be83e1cc 100644
--- a/contracts/tribe/stabilizer/ReserveStabilizer.sol
+++ b/contracts/tribe/stabilizer/ReserveStabilizer.sol
@@ -55,13 +55,7 @@ contract ReserveStabilizer is OracleRef, IReserveStabilizer, PCVDeposit {
/// @notice exchange FEI for tokens from the reserves
/// @param feiAmount of FEI to sell
- function exchangeFei(uint256 feiAmount)
- public
- virtual
- override
- whenNotPaused
- returns (uint256 amountOut)
- {
+ function exchangeFei(uint256 feiAmount) public virtual override whenNotPaused returns (uint256 amountOut) {
updateOracle();
fei().transferFrom(msg.sender, address(this), feiAmount);
@@ -75,26 +69,15 @@ contract ReserveStabilizer is OracleRef, IReserveStabilizer, PCVDeposit {
/// @notice returns the amount out of tokens from the reserves for a given amount of FEI
/// @param amountFeiIn the amount of FEI in
- function getAmountOut(uint256 amountFeiIn)
- public
- view
- override
- returns (uint256)
- {
- uint256 adjustedAmountIn = (amountFeiIn * usdPerFeiBasisPoints) /
- Constants.BASIS_POINTS_GRANULARITY;
+ function getAmountOut(uint256 amountFeiIn) public view override returns (uint256) {
+ uint256 adjustedAmountIn = (amountFeiIn * usdPerFeiBasisPoints) / Constants.BASIS_POINTS_GRANULARITY;
return readOracle().mul(adjustedAmountIn).asUint256();
}
/// @notice withdraw tokens from the reserves
/// @param to address to send tokens
/// @param amountOut amount of tokens to send
- function withdraw(address to, uint256 amountOut)
- external
- virtual
- override
- onlyPCVController
- {
+ function withdraw(address to, uint256 amountOut) external virtual override onlyPCVController {
_transfer(to, amountOut);
emit Withdrawal(msg.sender, to, amountOut);
}
@@ -115,21 +98,14 @@ contract ReserveStabilizer is OracleRef, IReserveStabilizer, PCVDeposit {
/// @notice sets the USD per FEI exchange rate rate
/// @param newUsdPerFeiBasisPoints the USD per FEI exchange rate denominated in basis points (1/10000)
- function setUsdPerFeiRate(uint256 newUsdPerFeiBasisPoints)
- external
- override
- onlyGovernorOrAdmin
- {
+ function setUsdPerFeiRate(uint256 newUsdPerFeiBasisPoints) external override onlyGovernorOrAdmin {
require(
newUsdPerFeiBasisPoints <= Constants.BASIS_POINTS_GRANULARITY,
"ReserveStabilizer: Exceeds bp granularity"
);
uint256 oldUsdPerFeiBasisPoints = usdPerFeiBasisPoints;
usdPerFeiBasisPoints = newUsdPerFeiBasisPoints;
- emit UsdPerFeiRateUpdate(
- oldUsdPerFeiBasisPoints,
- newUsdPerFeiBasisPoints
- );
+ emit UsdPerFeiRateUpdate(oldUsdPerFeiBasisPoints, newUsdPerFeiBasisPoints);
}
function _transfer(address to, uint256 amount) internal virtual {
diff --git a/contracts/tribe/stabilizer/TribeReserveStabilizer.sol b/contracts/tribe/stabilizer/TribeReserveStabilizer.sol
index 3ba81b2e5..2f21a600b 100644
--- a/contracts/tribe/stabilizer/TribeReserveStabilizer.sol
+++ b/contracts/tribe/stabilizer/TribeReserveStabilizer.sol
@@ -9,11 +9,7 @@ import "@openzeppelin/contracts/utils/math/Math.sol";
/// @title implementation for a TRIBE Reserve Stabilizer
/// @author Fei Protocol
-contract TribeReserveStabilizer is
- ITribeReserveStabilizer,
- ReserveStabilizer,
- Timed
-{
+contract TribeReserveStabilizer is ITribeReserveStabilizer, ReserveStabilizer, Timed {
using Decimal for Decimal.D256;
/// @notice a collateralization oracle
@@ -43,29 +39,17 @@ contract TribeReserveStabilizer is
ITribeMinter _tribeMinter,
uint256 _osmDuration
)
- ReserveStabilizer(
- _core,
- _tribeOracle,
- _backupOracle,
- IERC20(address(0)),
- _usdPerFeiBasisPoints
- )
+ ReserveStabilizer(_core, _tribeOracle, _backupOracle, IERC20(address(0)), _usdPerFeiBasisPoints)
Timed(_osmDuration)
{
collateralizationOracle = _collateralizationOracle;
- emit CollateralizationOracleUpdate(
- address(0),
- address(_collateralizationOracle)
- );
+ emit CollateralizationOracleUpdate(address(0), address(_collateralizationOracle));
_collateralizationThreshold = Decimal.ratio(
_collateralizationThresholdBasisPoints,
Constants.BASIS_POINTS_GRANULARITY
);
- emit CollateralizationThresholdUpdate(
- 0,
- _collateralizationThresholdBasisPoints
- );
+ emit CollateralizationThresholdUpdate(0, _collateralizationThresholdBasisPoints);
// Setting token here because it isn't available until after CoreRef is constructed
// This does skip the _setDecimalsNormalizerFromToken call in ReserveStabilizer constructor, but it isn't needed because TRIBE is 18 decimals
@@ -76,16 +60,8 @@ contract TribeReserveStabilizer is
/// @notice exchange FEI for minted TRIBE
/// @dev the timer counts down from first time below threshold and opens after window
- function exchangeFei(uint256 feiAmount)
- public
- override
- afterTime
- returns (uint256)
- {
- require(
- isCollateralizationBelowThreshold(),
- "TribeReserveStabilizer: Collateralization ratio above threshold"
- );
+ function exchangeFei(uint256 feiAmount) public override afterTime returns (uint256) {
+ require(isCollateralizationBelowThreshold(), "TribeReserveStabilizer: Collateralization ratio above threshold");
return super.exchangeFei(feiAmount);
}
@@ -96,24 +72,15 @@ contract TribeReserveStabilizer is
/// @notice check whether collateralization ratio is below the threshold set
/// @dev returns false if the oracle is invalid
- function isCollateralizationBelowThreshold()
- public
- view
- override
- returns (bool)
- {
- (Decimal.D256 memory ratio, bool valid) = collateralizationOracle
- .read();
+ function isCollateralizationBelowThreshold() public view override returns (bool) {
+ (Decimal.D256 memory ratio, bool valid) = collateralizationOracle.read();
return valid && ratio.lessThanOrEqualTo(_collateralizationThreshold);
}
/// @notice delay the opening of the TribeReserveStabilizer until oracle delay duration is met
function startOracleDelayCountdown() external override {
- require(
- isCollateralizationBelowThreshold(),
- "TribeReserveStabilizer: Collateralization ratio above threshold"
- );
+ require(isCollateralizationBelowThreshold(), "TribeReserveStabilizer: Collateralization ratio above threshold");
require(!isTimeStarted(), "TribeReserveStabilizer: timer started");
_initTimed();
}
@@ -129,28 +96,26 @@ contract TribeReserveStabilizer is
}
/// @notice set the Collateralization oracle
- function setCollateralizationOracle(
- ICollateralizationOracle newCollateralizationOracle
- ) external override onlyGovernor {
- require(
- address(newCollateralizationOracle) != address(0),
- "TribeReserveStabilizer: zero address"
- );
+ function setCollateralizationOracle(ICollateralizationOracle newCollateralizationOracle)
+ external
+ override
+ onlyGovernor
+ {
+ require(address(newCollateralizationOracle) != address(0), "TribeReserveStabilizer: zero address");
address oldCollateralizationOracle = address(collateralizationOracle);
collateralizationOracle = newCollateralizationOracle;
- emit CollateralizationOracleUpdate(
- oldCollateralizationOracle,
- address(newCollateralizationOracle)
- );
+ emit CollateralizationOracleUpdate(oldCollateralizationOracle, address(newCollateralizationOracle));
}
/// @notice set the collateralization threshold below which exchanging becomes active
- function setCollateralizationThreshold(
- uint256 newCollateralizationThresholdBasisPoints
- ) external override onlyGovernor {
+ function setCollateralizationThreshold(uint256 newCollateralizationThresholdBasisPoints)
+ external
+ override
+ onlyGovernor
+ {
uint256 oldCollateralizationThresholdBasisPoints = _collateralizationThreshold
- .mul(Constants.BASIS_POINTS_GRANULARITY)
- .asUint256();
+ .mul(Constants.BASIS_POINTS_GRANULARITY)
+ .asUint256();
_collateralizationThreshold = Decimal.ratio(
newCollateralizationThresholdBasisPoints,
Constants.BASIS_POINTS_GRANULARITY
@@ -162,12 +127,7 @@ contract TribeReserveStabilizer is
}
/// @notice the collateralization threshold below which exchanging becomes active
- function collateralizationThreshold()
- external
- view
- override
- returns (Decimal.D256 memory)
- {
+ function collateralizationThreshold() external view override returns (Decimal.D256 memory) {
return _collateralizationThreshold;
}
diff --git a/contracts/utils/Deviation.sol b/contracts/utils/Deviation.sol
new file mode 100644
index 000000000..eff551087
--- /dev/null
+++ b/contracts/utils/Deviation.sol
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {Constants} from "./../Constants.sol";
+import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
+
+/// @title contract that determines whether or not a new value is within
+/// an acceptable deviation threshold
+/// @author Elliot Friedman, FEI Protocol
+library Deviation {
+ using SafeCast for *;
+
+ /// @notice event that is emitted when the threshold is changed
+ event DeviationThresholdUpdate(uint256 oldThreshold, uint256 newThreshold);
+
+ /// @notice return the percent deviation between a and b in basis points terms
+ function calculateDeviationThresholdBasisPoints(int256 a, int256 b) internal pure returns (uint256) {
+ int256 delta = a - b;
+ int256 basisPoints = (delta * Constants.BP_INT) / a;
+
+ return (basisPoints < 0 ? basisPoints * -1 : basisPoints).toUint256();
+ }
+
+ /// @notice function to return whether or not the new price is within
+ /// the acceptable deviation threshold
+ function isWithinDeviationThreshold(
+ uint256 maxDeviationThresholdBasisPoints,
+ int256 oldValue,
+ int256 newValue
+ ) internal pure returns (bool) {
+ return maxDeviationThresholdBasisPoints >= calculateDeviationThresholdBasisPoints(oldValue, newValue);
+ }
+}
diff --git a/contracts/utils/GlobalRateLimitedMinter.sol b/contracts/utils/GlobalRateLimitedMinter.sol
new file mode 100644
index 000000000..f5f1dd4a1
--- /dev/null
+++ b/contracts/utils/GlobalRateLimitedMinter.sol
@@ -0,0 +1,56 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {MultiRateLimited} from "./MultiRateLimited.sol";
+import {IGlobalRateLimitedMinter} from "./IGlobalRateLimitedMinter.sol";
+import {CoreRef} from "./../refs/CoreRef.sol";
+import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
+
+/// @notice global contract to handle rate limited minting of Fei on a global level
+/// allows whitelisted minters to call in and specify the address to mint Fei to within
+/// that contract's limits
+contract GlobalRateLimitedMinter is MultiRateLimited, IGlobalRateLimitedMinter {
+ /// @param coreAddress address of the core contract
+ /// @param _globalMaxRateLimitPerSecond maximum amount of Fei that can replenish per second ever, this amount cannot be changed by governance
+ /// @param _perAddressRateLimitMaximum maximum rate limit per second per address
+ /// @param _maxRateLimitPerSecondPerAddress maximum rate limit per second per address in multi rate limited
+ /// @param _maxBufferCap maximum buffer cap in multi rate limited contract
+ /// @param _globalBufferCap maximum global buffer cap
+ constructor(
+ address coreAddress,
+ uint256 _globalMaxRateLimitPerSecond,
+ uint256 _perAddressRateLimitMaximum,
+ uint256 _maxRateLimitPerSecondPerAddress,
+ uint256 _maxBufferCap,
+ uint256 _globalBufferCap
+ )
+ CoreRef(coreAddress)
+ MultiRateLimited(
+ _globalMaxRateLimitPerSecond,
+ _perAddressRateLimitMaximum,
+ _maxRateLimitPerSecondPerAddress,
+ _maxBufferCap,
+ _globalBufferCap
+ )
+ {}
+
+ /// @notice mint Fei to the target address and deplete the buffer
+ /// pausable and depletes the msg.sender's buffer
+ /// @param to the recipient address of the minted Fei
+ /// @param amount the amount of Fei to mint
+ function mint(address to, uint256 amount) external virtual override whenNotPaused {
+ _depleteIndividualBuffer(msg.sender, amount);
+ _mintFei(to, amount);
+ }
+
+ /// @notice mint Fei to the target address and deplete the whole rate limited
+ /// minter's buffer, pausable and completely depletes the msg.sender's buffer
+ /// @param to the recipient address of the minted Fei
+ /// mints all Fei that msg.sender has in the buffer
+ function mintMaxAllowableFei(address to) external virtual override whenNotPaused {
+ uint256 amount = Math.min(individualBuffer(msg.sender), buffer());
+
+ _depleteIndividualBuffer(msg.sender, amount);
+ _mintFei(to, amount);
+ }
+}
diff --git a/contracts/utils/IGlobalRateLimitedMinter.sol b/contracts/utils/IGlobalRateLimitedMinter.sol
new file mode 100644
index 000000000..c1105a864
--- /dev/null
+++ b/contracts/utils/IGlobalRateLimitedMinter.sol
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import "./IMultiRateLimited.sol";
+
+/// @notice global contract to handle rate limited minting of Fei on a global level
+/// allows whitelisted minters to call in and specify the address to mint Fei to within
+/// the calling contract's limits
+interface IGlobalRateLimitedMinter is IMultiRateLimited {
+ /// @notice function that all Fei minters call to mint Fei
+ /// pausable and depletes the msg.sender's buffer
+ /// @param to the recipient address of the minted Fei
+ /// @param amount the amount of Fei to mint
+ function mint(address to, uint256 amount) external;
+
+ /// @notice mint Fei to the target address and deplete the whole rate limited
+ /// minter's buffer, pausable and completely depletes the msg.sender's buffer
+ /// @param to the recipient address of the minted Fei
+ /// mints all Fei that msg.sender has in the buffer
+ function mintMaxAllowableFei(address to) external;
+}
diff --git a/contracts/utils/IMultiRateLimited.sol b/contracts/utils/IMultiRateLimited.sol
new file mode 100644
index 000000000..bd6972fd4
--- /dev/null
+++ b/contracts/utils/IMultiRateLimited.sol
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+/// @title interface for putting a rate limit on how fast a contract can perform an action, e.g. Minting
+/// @author Fei Protocol
+interface IMultiRateLimited {
+ // ----------- Events -----------
+
+ /// @notice emitted when a buffer is eaten into
+ event IndividualBufferUsed(address rateLimitedAddress, uint256 amountUsed, uint256 bufferRemaining);
+
+ /// @notice emitted when rate limit is updated
+ event IndividualRateLimitPerSecondUpdate(
+ address rateLimitedAddress,
+ uint256 oldRateLimitPerSecond,
+ uint256 newRateLimitPerSecond
+ );
+
+ /// @notice emitted when the non gov buffer cap max is updated
+ event MultiBufferCapUpdate(uint256 oldBufferCap, uint256 newBufferCap);
+
+ /// @notice emitted when the non gov buffer rate limit per second max is updated
+ event MultiMaxRateLimitPerSecondUpdate(uint256 oldMaxRateLimitPerSecond, uint256 newMaxRateLimitPerSecond);
+
+ // ----------- View API -----------
+
+ /// @notice the rate per second for each address
+ function getRateLimitPerSecond(address) external view returns (uint256);
+
+ /// @notice the last time the buffer was used by each address
+ function getLastBufferUsedTime(address) external view returns (uint256);
+
+ /// @notice the cap of the buffer that can be used at once
+ function getBufferCap(address) external view returns (uint256);
+
+ /// @notice the amount of action that can be used before hitting limit
+ /// @dev replenishes at rateLimitPerSecond per second up to bufferCap
+ function individualBuffer(address) external view returns (uint112);
+
+ // ----------- Governance State Changing API -----------
+
+ /// @notice update the non gov max rate limit per second
+ function updateMaxRateLimitPerSecond(uint256 newMaxRateLimitPerSecond) external;
+
+ /// @notice update the non gov max buffer cap
+ function updateMaxBufferCap(uint256 newBufferCap) external;
+
+ /// @notice add an authorized contract, its per second replenishment and buffer set to the non governor caps
+ function addAddressAsMinter(address) external;
+
+ /// @notice add an authorized contract, its per second replenishment and buffer
+ function addAddress(
+ address,
+ uint112,
+ uint112
+ ) external;
+
+ /// @notice update an authorized contract
+ function updateAddress(
+ address,
+ uint112,
+ uint112
+ ) external;
+
+ /// @notice remove an authorized contract
+ function removeAddress(address) external;
+}
diff --git a/contracts/utils/Incentivized.sol b/contracts/utils/Incentivized.sol
index 0d0e62adb..bcab5764d 100644
--- a/contracts/utils/Incentivized.sol
+++ b/contracts/utils/Incentivized.sol
@@ -9,10 +9,7 @@ abstract contract Incentivized is CoreRef {
/// @notice FEI incentive for calling keeper functions
uint256 public incentiveAmount;
- event IncentiveUpdate(
- uint256 oldIncentiveAmount,
- uint256 newIncentiveAmount
- );
+ event IncentiveUpdate(uint256 oldIncentiveAmount, uint256 newIncentiveAmount);
constructor(uint256 _incentiveAmount) {
incentiveAmount = _incentiveAmount;
@@ -20,10 +17,7 @@ abstract contract Incentivized is CoreRef {
}
/// @notice set the incentiveAmount
- function setIncentiveAmount(uint256 newIncentiveAmount)
- public
- onlyGovernor
- {
+ function setIncentiveAmount(uint256 newIncentiveAmount) public onlyGovernor {
uint256 oldIncentiveAmount = incentiveAmount;
incentiveAmount = newIncentiveAmount;
emit IncentiveUpdate(oldIncentiveAmount, newIncentiveAmount);
diff --git a/contracts/utils/MultiRateLimited.sol b/contracts/utils/MultiRateLimited.sol
new file mode 100644
index 000000000..15f2b1f8d
--- /dev/null
+++ b/contracts/utils/MultiRateLimited.sol
@@ -0,0 +1,275 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+pragma solidity ^0.8.4;
+
+import {CoreRef} from "../refs/CoreRef.sol";
+import {TribeRoles} from "./../core/TribeRoles.sol";
+import {RateLimited} from "./RateLimited.sol";
+import {IMultiRateLimited} from "./IMultiRateLimited.sol";
+import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
+import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
+
+/// @title abstract contract for putting a rate limit on how fast an address can perform an action e.g. Minting
+/// there are two buffers, one buffer which is each individual addresses's current buffer,
+/// and then there is a global buffer which is the buffer that each individual address must respect as well
+/// @author Elliot Friedman, Fei Protocol
+/// this contract was made abstract so that other contracts that already construct an instance of CoreRef
+/// do not collide with this one
+abstract contract MultiRateLimited is RateLimited, IMultiRateLimited {
+ using SafeCast for *;
+
+ /// @notice the struct containing all information per rate limited address
+ struct RateLimitData {
+ uint32 lastBufferUsedTime;
+ uint112 bufferCap;
+ uint112 bufferStored;
+ uint112 rateLimitPerSecond;
+ }
+
+ /// @notice rate limited address information
+ mapping(address => RateLimitData) public rateLimitPerAddress;
+
+ /// @notice max rate limit per second allowable by non governor per contract
+ uint256 public individualMaxRateLimitPerSecond;
+
+ /// @notice max buffer cap allowable by non governor per contract
+ uint256 public individualMaxBufferCap;
+
+ /// @param _maxRateLimitPerSecond maximum amount of fei that can replenish per second ever, this amount cannot be changed by governance
+ /// @param _rateLimitPerSecond maximum rate limit per second per address
+ /// @param _individualMaxRateLimitPerSecond maximum rate limit per second per address in multi rate limited
+ /// @param _individualMaxBufferCap maximum buffer cap in multi rate limited
+ /// @param _globalBufferCap maximum global buffer cap
+ constructor(
+ uint256 _maxRateLimitPerSecond,
+ uint256 _rateLimitPerSecond,
+ uint256 _individualMaxRateLimitPerSecond,
+ uint256 _individualMaxBufferCap,
+ uint256 _globalBufferCap
+ ) RateLimited(_maxRateLimitPerSecond, _rateLimitPerSecond, _globalBufferCap, false) {
+ require(_individualMaxBufferCap < _globalBufferCap, "MultiRateLimited: max buffer cap invalid");
+
+ individualMaxRateLimitPerSecond = _individualMaxRateLimitPerSecond;
+ individualMaxBufferCap = _individualMaxBufferCap;
+ }
+
+ modifier addressIsRegistered(address rateLimitedAddress) {
+ require(
+ rateLimitPerAddress[rateLimitedAddress].lastBufferUsedTime != 0,
+ "MultiRateLimited: rate limit address does not exist"
+ );
+ _;
+ }
+
+ // ----------- Governor and Admin only state changing api -----------
+
+ /// @notice update the ADD_MINTER_ROLE rate limit per second
+ /// @param newRateLimitPerSecond new maximum rate limit per second for add minter role
+ function updateMaxRateLimitPerSecond(uint256 newRateLimitPerSecond) external override onlyGovernor {
+ require(
+ newRateLimitPerSecond <= MAX_RATE_LIMIT_PER_SECOND,
+ "MultiRateLimited: exceeds global max rate limit per second"
+ );
+
+ uint256 oldMaxRateLimitPerSecond = individualMaxRateLimitPerSecond;
+ individualMaxRateLimitPerSecond = newRateLimitPerSecond;
+
+ emit MultiMaxRateLimitPerSecondUpdate(oldMaxRateLimitPerSecond, newRateLimitPerSecond);
+ }
+
+ /// @notice update the ADD_MINTER_ROLE max buffer cap
+ /// @param newBufferCap new buffer cap for ADD_MINTER_ROLE added addresses
+ function updateMaxBufferCap(uint256 newBufferCap) external override onlyGovernor {
+ require(newBufferCap <= bufferCap, "MultiRateLimited: exceeds global buffer cap");
+
+ uint256 oldBufferCap = individualMaxBufferCap;
+ individualMaxBufferCap = newBufferCap;
+
+ emit MultiBufferCapUpdate(oldBufferCap, newBufferCap);
+ }
+
+ /// @notice add an authorized rateLimitedAddress contract
+ /// @param rateLimitedAddress the new address to add as a rateLimitedAddress
+ /// @param _rateLimitPerSecond the rate limit per second for this rateLimitedAddress
+ /// @param _bufferCap the buffer cap for this rateLimitedAddress
+ function addAddress(
+ address rateLimitedAddress,
+ uint112 _rateLimitPerSecond,
+ uint112 _bufferCap
+ ) external override onlyGovernor {
+ _addAddress(rateLimitedAddress, _rateLimitPerSecond, _bufferCap);
+ }
+
+ /// @notice add an authorized rateLimitedAddress contract
+ /// @param rateLimitedAddress the address whose buffer and rate limit per second will be set
+ /// @param _rateLimitPerSecond the new rate limit per second for this rateLimitedAddress
+ /// @param _bufferCap the new buffer cap for this rateLimitedAddress
+ function updateAddress(
+ address rateLimitedAddress,
+ uint112 _rateLimitPerSecond,
+ uint112 _bufferCap
+ )
+ external
+ override
+ addressIsRegistered(rateLimitedAddress)
+ hasAnyOfTwoRoles(TribeRoles.ADD_MINTER_ROLE, TribeRoles.GOVERNOR)
+ {
+ if (core().hasRole(TribeRoles.ADD_MINTER_ROLE, msg.sender)) {
+ require(
+ _rateLimitPerSecond <= individualMaxRateLimitPerSecond,
+ "MultiRateLimited: rate limit per second exceeds non governor allowable amount"
+ );
+ require(
+ _bufferCap <= individualMaxBufferCap,
+ "MultiRateLimited: max buffer cap exceeds non governor allowable amount"
+ );
+ }
+ require(_bufferCap <= bufferCap, "MultiRateLimited: buffercap too high");
+ require(_rateLimitPerSecond <= MAX_RATE_LIMIT_PER_SECOND, "MultiRateLimited: rateLimitPerSecond too high");
+
+ _updateAddress(rateLimitedAddress, _rateLimitPerSecond, _bufferCap);
+ }
+
+ /// @notice add an authorized rateLimitedAddress contract
+ /// @param rateLimitedAddress the new address to add as a rateLimitedAddress
+ /// gives the newly added contract the maximum allowable rate limit per second and buffer cap
+ function addAddressAsMinter(address rateLimitedAddress)
+ external
+ override
+ onlyTribeRole(TribeRoles.ADD_MINTER_ROLE)
+ {
+ _addAddress(rateLimitedAddress, uint112(individualMaxRateLimitPerSecond), uint112(individualMaxBufferCap));
+ }
+
+ /// @notice add an authorized rateLimitedAddress contract
+ /// @param rateLimitedAddress the new address to add as a rateLimitedAddress
+ /// gives the newly added contract the maximum allowable rate limit per second and buffer cap
+ function addAddressAsMinter(
+ address rateLimitedAddress,
+ uint112 _rateLimitPerSecond,
+ uint112 _bufferCap
+ ) external onlyTribeRole(TribeRoles.ADD_MINTER_ROLE) {
+ require(_rateLimitPerSecond <= individualMaxRateLimitPerSecond, "MultiRateLimited: rlps exceeds role amt");
+ require(_bufferCap <= individualMaxBufferCap, "MultiRateLimited: buffercap exceeds role amt");
+ _addAddress(rateLimitedAddress, _rateLimitPerSecond, _bufferCap);
+ }
+
+ /// @notice remove an authorized rateLimitedAddress contract
+ /// @param rateLimitedAddress the address to remove from the whitelist of addresses
+ function removeAddress(address rateLimitedAddress)
+ external
+ override
+ addressIsRegistered(rateLimitedAddress)
+ onlyGuardianOrGovernor
+ {
+ uint256 oldRateLimitPerSecond = rateLimitPerAddress[rateLimitedAddress].rateLimitPerSecond;
+
+ delete rateLimitPerAddress[rateLimitedAddress];
+
+ emit IndividualRateLimitPerSecondUpdate(rateLimitedAddress, oldRateLimitPerSecond, 0);
+ }
+
+ // ----------- Getters -----------
+
+ /// @notice the amount of action used before hitting limit
+ /// @dev replenishes at rateLimitPerSecond per second up to bufferCap
+ /// @param rateLimitedAddress the address whose buffer will be returned
+ /// @return the buffer of the specified rate limited address
+ function individualBuffer(address rateLimitedAddress) public view override returns (uint112) {
+ RateLimitData memory rateLimitData = rateLimitPerAddress[rateLimitedAddress];
+
+ uint256 elapsed = block.timestamp - rateLimitData.lastBufferUsedTime;
+ return
+ uint112(
+ Math.min(
+ rateLimitData.bufferStored + (rateLimitData.rateLimitPerSecond * elapsed),
+ rateLimitData.bufferCap
+ )
+ );
+ }
+
+ /// @notice the rate per second for each address
+ function getRateLimitPerSecond(address limiter) external view override returns (uint256) {
+ return rateLimitPerAddress[limiter].rateLimitPerSecond;
+ }
+
+ /// @notice the last time the buffer was used by each address
+ function getLastBufferUsedTime(address limiter) external view override returns (uint256) {
+ return rateLimitPerAddress[limiter].lastBufferUsedTime;
+ }
+
+ /// @notice the cap of the buffer that can be used at once
+ function getBufferCap(address limiter) external view override returns (uint256) {
+ return rateLimitPerAddress[limiter].bufferCap;
+ }
+
+ // ----------- Helper Methods -----------
+
+ function _updateAddress(
+ address rateLimitedAddress,
+ uint112 _rateLimitPerSecond,
+ uint112 _bufferCap
+ ) internal {
+ RateLimitData storage rateLimitData = rateLimitPerAddress[rateLimitedAddress];
+
+ uint112 oldRateLimitPerSecond = rateLimitData.rateLimitPerSecond;
+ uint112 currentBufferStored = individualBuffer(rateLimitedAddress);
+ uint32 newBlockTimestamp = block.timestamp.toUint32();
+
+ rateLimitData.bufferStored = currentBufferStored;
+ rateLimitData.lastBufferUsedTime = newBlockTimestamp;
+ rateLimitData.bufferCap = _bufferCap;
+ rateLimitData.rateLimitPerSecond = _rateLimitPerSecond;
+
+ emit IndividualRateLimitPerSecondUpdate(rateLimitedAddress, oldRateLimitPerSecond, _rateLimitPerSecond);
+ }
+
+ /// @param rateLimitedAddress the new address to add as a rateLimitedAddress
+ /// @param _rateLimitPerSecond the rate limit per second for this rateLimitedAddress
+ /// @param _bufferCap the buffer cap for this rateLimitedAddress
+ function _addAddress(
+ address rateLimitedAddress,
+ uint112 _rateLimitPerSecond,
+ uint112 _bufferCap
+ ) internal {
+ require(_bufferCap <= bufferCap, "MultiRateLimited: new buffercap too high");
+ require(
+ rateLimitPerAddress[rateLimitedAddress].lastBufferUsedTime == 0,
+ "MultiRateLimited: address already added"
+ );
+ require(_rateLimitPerSecond <= MAX_RATE_LIMIT_PER_SECOND, "MultiRateLimited: rateLimitPerSecond too high");
+
+ RateLimitData memory rateLimitData = RateLimitData({
+ lastBufferUsedTime: block.timestamp.toUint32(),
+ bufferCap: _bufferCap,
+ rateLimitPerSecond: _rateLimitPerSecond,
+ bufferStored: _bufferCap
+ });
+
+ rateLimitPerAddress[rateLimitedAddress] = rateLimitData;
+
+ emit IndividualRateLimitPerSecondUpdate(rateLimitedAddress, 0, _rateLimitPerSecond);
+ }
+
+ /// @notice the method that enforces the rate limit. Decreases buffer by "amount".
+ /// @param rateLimitedAddress the address whose buffer will be depleted
+ /// @param amount the amount to remove from the rateLimitedAddress's buffer
+ function _depleteIndividualBuffer(address rateLimitedAddress, uint256 amount) internal {
+ _depleteBuffer(amount);
+
+ uint256 newBuffer = individualBuffer(rateLimitedAddress);
+
+ require(newBuffer != 0, "MultiRateLimited: no rate limit buffer");
+ require(amount <= newBuffer, "MultiRateLimited: rate limit hit");
+
+ uint32 lastBufferUsedTime = block.timestamp.toUint32();
+
+ uint112 newBufferStored = uint112(newBuffer - amount);
+ uint112 currentBufferCap = rateLimitPerAddress[rateLimitedAddress].bufferCap;
+
+ rateLimitPerAddress[rateLimitedAddress].lastBufferUsedTime = lastBufferUsedTime;
+ rateLimitPerAddress[rateLimitedAddress].bufferCap = currentBufferCap;
+ rateLimitPerAddress[rateLimitedAddress].bufferStored = newBufferStored;
+
+ emit IndividualBufferUsed(rateLimitedAddress, amount, newBuffer - amount);
+ }
+}
diff --git a/contracts/utils/OtcEscrow.sol b/contracts/utils/OtcEscrow.sol
index ca802b603..2a3ee75de 100644
--- a/contracts/utils/OtcEscrow.sol
+++ b/contracts/utils/OtcEscrow.sol
@@ -47,11 +47,7 @@ contract OtcEscrow {
/// @dev Either counterparty may execute swap if sufficient token approval is given by recipient
function swap() public onlyApprovedParties {
// Transfer expected receivedToken from beneficiary
- IERC20(receivedToken).safeTransferFrom(
- beneficiary,
- recipient,
- receivedAmount
- );
+ IERC20(receivedToken).safeTransferFrom(beneficiary, recipient, receivedAmount);
// Transfer sentToken to beneficiary
IERC20(sentToken).safeTransfer(address(beneficiary), sentAmount);
@@ -65,9 +61,7 @@ contract OtcEscrow {
}
function revokeReceivedToken() external onlyApprovedParties {
- uint256 receivedTokenBalance = IERC20(receivedToken).balanceOf(
- address(this)
- );
+ uint256 receivedTokenBalance = IERC20(receivedToken).balanceOf(address(this));
IERC20(receivedToken).safeTransfer(beneficiary, receivedTokenBalance);
}
}
diff --git a/contracts/utils/RateLimited.sol b/contracts/utils/RateLimited.sol
index 0f59963ed..ed7bb5268 100644
--- a/contracts/utils/RateLimited.sol
+++ b/contracts/utils/RateLimited.sol
@@ -23,14 +23,11 @@ abstract contract RateLimited is CoreRef {
bool public doPartialAction;
/// @notice the buffer at the timestamp of lastBufferUsedTime
- uint256 private _bufferStored;
+ uint256 public bufferStored;
event BufferUsed(uint256 amountUsed, uint256 bufferRemaining);
event BufferCapUpdate(uint256 oldBufferCap, uint256 newBufferCap);
- event RateLimitPerSecondUpdate(
- uint256 oldRateLimitPerSecond,
- uint256 newRateLimitPerSecond
- );
+ event RateLimitPerSecondUpdate(uint256 oldRateLimitPerSecond, uint256 newRateLimitPerSecond);
constructor(
uint256 _maxRateLimitPerSecond,
@@ -41,12 +38,9 @@ abstract contract RateLimited is CoreRef {
lastBufferUsedTime = block.timestamp;
_setBufferCap(_bufferCap);
- _bufferStored = _bufferCap;
+ bufferStored = _bufferCap;
- require(
- _rateLimitPerSecond <= _maxRateLimitPerSecond,
- "RateLimited: rateLimitPerSecond too high"
- );
+ require(_rateLimitPerSecond <= _maxRateLimitPerSecond, "RateLimited: rateLimitPerSecond too high");
_setRateLimitPerSecond(_rateLimitPerSecond);
MAX_RATE_LIMIT_PER_SECOND = _maxRateLimitPerSecond;
@@ -54,26 +48,15 @@ abstract contract RateLimited is CoreRef {
}
/// @notice set the rate limit per second
- function setRateLimitPerSecond(uint256 newRateLimitPerSecond)
- external
- virtual
- onlyGovernorOrAdmin
- {
- require(
- newRateLimitPerSecond <= MAX_RATE_LIMIT_PER_SECOND,
- "RateLimited: rateLimitPerSecond too high"
- );
+ function setRateLimitPerSecond(uint256 newRateLimitPerSecond) external virtual onlyGovernorOrAdmin {
+ require(newRateLimitPerSecond <= MAX_RATE_LIMIT_PER_SECOND, "RateLimited: rateLimitPerSecond too high");
_updateBufferStored();
_setRateLimitPerSecond(newRateLimitPerSecond);
}
/// @notice set the buffer cap
- function setBufferCap(uint256 newBufferCap)
- external
- virtual
- onlyGovernorOrAdmin
- {
+ function setBufferCap(uint256 newBufferCap) external virtual onlyGovernorOrAdmin {
_setBufferCap(newBufferCap);
}
@@ -81,8 +64,7 @@ abstract contract RateLimited is CoreRef {
/// @dev replenishes at rateLimitPerSecond per second up to bufferCap
function buffer() public view returns (uint256) {
uint256 elapsed = block.timestamp - lastBufferUsedTime;
- return
- Math.min(_bufferStored + (rateLimitPerSecond * elapsed), bufferCap);
+ return Math.min(bufferStored + (rateLimitPerSecond * elapsed), bufferCap);
}
/**
@@ -92,7 +74,7 @@ abstract contract RateLimited is CoreRef {
2. Reverts
Depending on whether doPartialAction is true or false
*/
- function _depleteBuffer(uint256 amount) internal returns (uint256) {
+ function _depleteBuffer(uint256 amount) internal virtual returns (uint256) {
uint256 newBuffer = buffer();
uint256 usedAmount = amount;
@@ -103,23 +85,38 @@ abstract contract RateLimited is CoreRef {
require(newBuffer != 0, "RateLimited: no rate limit buffer");
require(usedAmount <= newBuffer, "RateLimited: rate limit hit");
- _bufferStored = newBuffer - usedAmount;
+ bufferStored = newBuffer - usedAmount;
lastBufferUsedTime = block.timestamp;
- emit BufferUsed(usedAmount, _bufferStored);
+ emit BufferUsed(usedAmount, bufferStored);
return usedAmount;
}
+ /// @notice function to replenish buffer
+ /// @param amount to increase buffer by if under buffer cap
+ function _replenishBuffer(uint256 amount) internal {
+ uint256 newBuffer = buffer();
+
+ uint256 _bufferCap = bufferCap; /// gas opti, save an SLOAD
+
+ /// cannot replenish any further if already at buffer cap
+ if (newBuffer == _bufferCap) {
+ return;
+ }
+
+ lastBufferUsedTime = block.timestamp;
+
+ /// ensure that bufferStored cannot be gt buffer cap
+ bufferStored = Math.min(newBuffer + amount, _bufferCap);
+ }
+
function _setRateLimitPerSecond(uint256 newRateLimitPerSecond) internal {
uint256 oldRateLimitPerSecond = rateLimitPerSecond;
rateLimitPerSecond = newRateLimitPerSecond;
- emit RateLimitPerSecondUpdate(
- oldRateLimitPerSecond,
- newRateLimitPerSecond
- );
+ emit RateLimitPerSecondUpdate(oldRateLimitPerSecond, newRateLimitPerSecond);
}
function _setBufferCap(uint256 newBufferCap) internal {
@@ -132,11 +129,11 @@ abstract contract RateLimited is CoreRef {
}
function _resetBuffer() internal {
- _bufferStored = bufferCap;
+ bufferStored = bufferCap;
}
function _updateBufferStored() internal {
- _bufferStored = buffer();
+ bufferStored = buffer();
lastBufferUsedTime = block.timestamp;
}
}
diff --git a/foundry.toml b/foundry.toml
index 73553bb7e..9e460937c 100644
--- a/foundry.toml
+++ b/foundry.toml
@@ -1,6 +1,6 @@
[default]
optimizer = true
-optimizer_runs = 20000
+optimizer_runs = 200
lib-paths = "node_modules"
contracts = "contracts"
diff --git a/hardhat.config.ts b/hardhat.config.ts
index 99679fdb1..1831a6987 100644
--- a/hardhat.config.ts
+++ b/hardhat.config.ts
@@ -7,6 +7,7 @@ import 'hardhat-gas-reporter';
import 'hardhat-contract-sizer';
import 'solidity-coverage';
import 'tsconfig-paths/register';
+import '@nomiclabs/hardhat-etherscan';
import * as dotenv from 'dotenv';
@@ -20,6 +21,7 @@ const enableMainnetForking = process.env.ENABLE_MAINNET_FORKING;
const mainnetAlchemyApiKey = process.env.MAINNET_ALCHEMY_API_KEY;
const runAllTests = process.env.RUN_ALL_TESTS;
const useJSONTestReporter = process.env.REPORT_TEST_RESULTS_AS_JSON;
+const etherscanKey = process.env.ETHERSCAN_API_KEY;
if (!(process.env.NODE_OPTIONS && process.env.NODE_OPTIONS.includes('max-old-space-size'))) {
throw new Error(
@@ -45,7 +47,9 @@ export default {
gasReporter: {
enabled: !!process.env.REPORT_GAS
},
-
+ etherscan: {
+ apiKey: etherscanKey
+ },
networks: {
hardhat: {
gas: 12e6,
@@ -53,7 +57,7 @@ export default {
forking: enableMainnetForking
? {
url: `https://eth-mainnet.alchemyapi.io/v2/${mainnetAlchemyApiKey}`,
- blockNumber: 14629315
+ blockNumber: 14723389 // Friday, May 6th
}
: undefined
},
@@ -70,7 +74,7 @@ export default {
mainnet: {
url: `https://eth-mainnet.alchemyapi.io/v2/${mainnetAlchemyApiKey}`,
accounts: privateKey ? [privateKey] : [],
- gasPrice: 150000000000
+ gasPrice: 70000000000
}
},
@@ -93,6 +97,15 @@ export default {
runs: 200
}
}
+ },
+ {
+ version: '0.8.7',
+ settings: {
+ optimizer: {
+ enabled: true,
+ runs: 200
+ }
+ }
}
]
},
diff --git a/package-lock.json b/package-lock.json
index ccff4fb68..b2a02539e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,10 +11,14 @@
"dependencies": {
"@balancer-labs/v2-pool-weighted": "^2.0.1",
"@chainlink/contracts": "^0.1.7",
+ "@gnosis.pm/safe-core-sdk": "^2.1.0",
+ "@gnosis.pm/safe-deployments": "^1.12.0",
+ "@gnosis.pm/safe-ethers-lib": "^1.1.0",
"@nomiclabs/hardhat-waffle": "^2.0.3",
- "@openzeppelin/contracts": "^4.4.2",
+ "@openzeppelin/contracts": "4.6.0",
"@openzeppelin/test-environment": "^0.1.7",
"@openzeppelin/test-helpers": "^0.5.15",
+ "@orcaprotocol/contracts": "^5.0.1",
"@rari-capital/solmate": "^6.2.0",
"@uniswap/lib": "^1.1.2",
"@uniswap/v2-core": "^1.0.1",
@@ -30,11 +34,12 @@
"devDependencies": {
"@idle-finance/hardhat-proposals-plugin": "^0.2.3",
"@nomiclabs/hardhat-ethers": "^2.0.5",
+ "@nomiclabs/hardhat-etherscan": "^3.0.3",
"@typechain/ethers-v5": "^7.1.2",
"@typechain/hardhat": "^2.3.0",
"@types/chai": "^4.3.1",
- "@types/mocha": "^9.1.0",
- "@types/node": "^17.0.25",
+ "@types/mocha": "^9.1.1",
+ "@types/node": "^17.0.30",
"@typescript-eslint/eslint-plugin": "^4.31.2",
"@typescript-eslint/parser": "^4.31.2",
"chai-bn": "^0.3.1",
@@ -46,7 +51,7 @@
"ethereum-waffle": "^3.4.4",
"ethers": "^5.6.4",
"husky": "^7.0.4",
- "lint-staged": "^12.4.0",
+ "lint-staged": "^12.4.1",
"mocha": "^9.2.2",
"mocha-junit-reporter": "^2.0.2",
"mocha-multi-reporters": "^1.5.1",
@@ -54,11 +59,11 @@
"prettier-plugin-solidity": "^1.0.0-beta.19",
"solhint": "^3.3.7",
"solhint-plugin-prettier": "^0.0.5",
- "solidity-coverage": "^0.7.20",
+ "solidity-coverage": "^0.7.21",
"ts-node": "^10.7.0",
"tsconfig-paths": "^3.14.1",
"typechain": "^5.2.0",
- "typescript": "^4.6.3"
+ "typescript": "^4.6.4"
},
"engines": {
"node": ">=16.0.0",
@@ -84,9 +89,9 @@
}
},
"node_modules/@babel/highlight": {
- "version": "7.16.10",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
- "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
+ "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
@@ -98,9 +103,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.17.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz",
- "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==",
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
+ "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
@@ -223,6 +228,15 @@
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
"optional": true
},
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
"node_modules/@cspotcode/source-map-consumer": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
@@ -263,29 +277,222 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
+ "node_modules/@ensdomains/buffer": {
+ "version": "0.0.13",
+ "resolved": "https://registry.npmjs.org/@ensdomains/buffer/-/buffer-0.0.13.tgz",
+ "integrity": "sha512-8aA+U/e4S54ebPwcge1HHvvpgXLKxPd6EOSegMlrTvBnKB8RwB3OpNyflaikD6KqzIwDaBaH8bvnTrMcfpV7oQ==",
+ "dependencies": {
+ "@nomiclabs/hardhat-truffle5": "^2.0.0"
+ }
+ },
"node_modules/@ensdomains/ens": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.3.tgz",
- "integrity": "sha512-btC+fGze//ml8SMNCx5DgwM8+kG2t+qDCZrqlL/2+PV4CNxnRIpR3egZ49D9FqS52PFoYLmz6MaQfl7AO3pUMA==",
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz",
+ "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==",
"deprecated": "Please use @ensdomains/ens-contracts",
"dependencies": {
"bluebird": "^3.5.2",
"eth-ens-namehash": "^2.0.8",
- "ethereumjs-testrpc": "^6.0.3",
- "ganache-cli": "^6.1.0",
"solc": "^0.4.20",
"testrpc": "0.0.1",
"web3-utils": "^1.0.0-beta.31"
}
},
+ "node_modules/@ensdomains/ens-contracts": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ens-contracts/-/ens-contracts-0.0.7.tgz",
+ "integrity": "sha512-adlWSrtBh85CNM1hsrsNxWrSx6g37DOCkWP5vBT/HtXnpNtvL49Z1Ueum55lN8YifTWo2Kqb1mgPojjLY99f5w==",
+ "dependencies": {
+ "@ensdomains/buffer": "^0.0.13",
+ "@ensdomains/solsha1": "0.0.3",
+ "@openzeppelin/contracts": "^4.1.0",
+ "dns-packet": "^5.3.0",
+ "name-wrapper": "^1.0.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ },
+ "node_modules/@ensdomains/ens/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/solc": {
+ "version": "0.4.26",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz",
+ "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==",
+ "dependencies": {
+ "fs-extra": "^0.30.0",
+ "memorystream": "^0.3.1",
+ "require-from-string": "^1.1.0",
+ "semver": "^5.3.0",
+ "yargs": "^4.7.1"
+ },
+ "bin": {
+ "solcjs": "solcjs"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+ },
+ "node_modules/@ensdomains/ens/node_modules/yargs": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz",
+ "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=",
+ "dependencies": {
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "lodash.assign": "^4.0.3",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.1",
+ "which-module": "^1.0.0",
+ "window-size": "^0.2.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^2.4.1"
+ }
+ },
+ "node_modules/@ensdomains/ens/node_modules/yargs-parser": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
+ "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
+ "dependencies": {
+ "camelcase": "^3.0.0",
+ "lodash.assign": "^4.0.6"
+ }
+ },
"node_modules/@ensdomains/ensjs": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.0.1.tgz",
- "integrity": "sha512-gZLntzE1xqPNkPvaHdJlV5DXHms8JbHBwrXc2xNrL1AylERK01Lj/txCCZyVQqFd3TvUO1laDbfUv8VII0qrjg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz",
+ "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.3",
+ "@ensdomains/ens": "0.4.5",
"@ensdomains/resolver": "0.2.4",
"content-hash": "^2.5.2",
"eth-ens-namehash": "^2.0.8",
@@ -293,12 +500,25 @@
"js-sha3": "^0.8.0"
}
},
+ "node_modules/@ensdomains/eth-ens-namehash": {
+ "version": "2.0.15",
+ "resolved": "https://registry.npmjs.org/@ensdomains/eth-ens-namehash/-/eth-ens-namehash-2.0.15.tgz",
+ "integrity": "sha512-JRDFP6+Hczb1E0/HhIg0PONgBYasfGfDheujmfxaZaAv/NAH4jE6Kf48WbqfRZdxt4IZI3jl3Ri7sZ1nP09lgw=="
+ },
"node_modules/@ensdomains/resolver": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz",
"integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA==",
"deprecated": "Please use @ensdomains/ens-contracts"
},
+ "node_modules/@ensdomains/solsha1": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@ensdomains/solsha1/-/solsha1-0.0.3.tgz",
+ "integrity": "sha512-uhuG5LzRt/UJC0Ux83cE2rCKwSleRePoYdQVcqPN1wyf3/ekMzT/KZUF9+v7/AG5w9jlMLCQkUM50vfjr0Yu9Q==",
+ "dependencies": {
+ "hash-test-vectors": "^1.3.2"
+ }
+ },
"node_modules/@eslint/eslintrc": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
@@ -513,19 +733,6 @@
"node": ">=10.0"
}
},
- "node_modules/@ethereum-waffle/ens/node_modules/@ensdomains/ens": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz",
- "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==",
- "deprecated": "Please use @ensdomains/ens-contracts",
- "dependencies": {
- "bluebird": "^3.5.2",
- "eth-ens-namehash": "^2.0.8",
- "solc": "^0.4.20",
- "testrpc": "0.0.1",
- "web3-utils": "^1.0.0-beta.31"
- }
- },
"node_modules/@ethereum-waffle/mock-contract": {
"version": "3.4.4",
"resolved": "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-3.4.4.tgz",
@@ -554,98 +761,40 @@
}
},
"node_modules/@ethereumjs/block": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.1.tgz",
- "integrity": "sha512-o5d/zpGl4SdVfdTfrsq9ZgYMXddc0ucKMiFW5OphBCX+ep4xzYnSjboFcZXT2V/tcSBr84VrKWWp21CGVb3DGw==",
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.2.tgz",
+ "integrity": "sha512-mOqYWwMlAZpYUEOEqt7EfMFuVL2eyLqWWIzcf4odn6QgXY8jBI2NhVuJncrMCKeMZrsJAe7/auaRRB6YcdH+Qw==",
"dependencies": {
- "@ethereumjs/common": "^2.6.1",
- "@ethereumjs/tx": "^3.5.0",
+ "@ethereumjs/common": "^2.6.3",
+ "@ethereumjs/tx": "^3.5.1",
"ethereumjs-util": "^7.1.4",
- "merkle-patricia-tree": "^4.2.3"
- }
- },
- "node_modules/@ethereumjs/block/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
+ "merkle-patricia-tree": "^4.2.4"
}
},
"node_modules/@ethereumjs/blockchain": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.1.tgz",
- "integrity": "sha512-JS2jeKxl3tlaa5oXrZ8mGoVBCz6YqsGG350XVNtHAtNZXKk7pU3rH4xzF2ru42fksMMqzFLzKh9l4EQzmNWDqA==",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.2.tgz",
+ "integrity": "sha512-Jz26iJmmsQtngerW6r5BDFaew/f2mObLrRZo3rskLOx1lmtMZ8+TX/vJexmivrnWgmAsTdNWhlKUYY4thPhPig==",
"dependencies": {
- "@ethereumjs/block": "^3.6.0",
- "@ethereumjs/common": "^2.6.0",
+ "@ethereumjs/block": "^3.6.2",
+ "@ethereumjs/common": "^2.6.3",
"@ethereumjs/ethash": "^1.1.0",
- "debug": "^2.2.0",
- "ethereumjs-util": "^7.1.3",
+ "debug": "^4.3.3",
+ "ethereumjs-util": "^7.1.4",
"level-mem": "^5.0.1",
"lru-cache": "^5.1.1",
"semaphore-async-await": "^1.5.1"
}
},
- "node_modules/@ethereumjs/blockchain/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/@ethereumjs/blockchain/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@ethereumjs/blockchain/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
"node_modules/@ethereumjs/common": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.2.tgz",
- "integrity": "sha512-vDwye5v0SVeuDky4MtKsu+ogkH2oFUV8pBKzH/eNBzT8oI91pKa8WyzDuYuxOQsgNgv5R34LfFDh2aaw3H4HbQ==",
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.4.tgz",
+ "integrity": "sha512-RDJh/R/EAr+B7ZRg5LfJ0BIpf/1LydFgYdvZEuTraojCbVypO2sQ+QnpP5u2wJf9DASyooKqu8O4FJEWUV6NXw==",
"dependencies": {
"crc-32": "^1.2.0",
"ethereumjs-util": "^7.1.4"
}
},
- "node_modules/@ethereumjs/common/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/@ethereumjs/ethash": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@ethereumjs/ethash/-/ethash-1.1.0.tgz",
@@ -666,79 +815,34 @@
"safe-buffer": "^5.1.1"
}
},
- "node_modules/@ethereumjs/ethash/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/@ethereumjs/tx": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.0.tgz",
- "integrity": "sha512-/+ZNbnJhQhXC83Xuvy6I9k4jT5sXiV0tMR9C+AzSSpcCV64+NB8dTE1m3x98RYMqb8+TLYWA+HML4F5lfXTlJw==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.1.tgz",
+ "integrity": "sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA==",
"dependencies": {
- "@ethereumjs/common": "^2.6.1",
+ "@ethereumjs/common": "^2.6.3",
"ethereumjs-util": "^7.1.4"
}
},
- "node_modules/@ethereumjs/tx/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/@ethereumjs/vm": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.7.1.tgz",
- "integrity": "sha512-NiFm5FMaeDGZ9ojBL+Y9Y/xhW6S4Fgez+zPBM402T5kLsfeAR9mrRVckYhvkGVJ6FMwsY820CLjYP5OVwMjLTg==",
- "dependencies": {
- "@ethereumjs/block": "^3.6.1",
- "@ethereumjs/blockchain": "^5.5.1",
- "@ethereumjs/common": "^2.6.2",
- "@ethereumjs/tx": "^3.5.0",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.0.tgz",
+ "integrity": "sha512-0IRsj4IuF8lFDWVVLc4mFOImaSX8VWF8CGm3mXHG/LLlQ/Tryy/kKXMw/bU9D+Zw03CdteW+wCGqNFS6+mPjpg==",
+ "dependencies": {
+ "@ethereumjs/block": "^3.6.2",
+ "@ethereumjs/blockchain": "^5.5.2",
+ "@ethereumjs/common": "^2.6.4",
+ "@ethereumjs/tx": "^3.5.1",
"async-eventemitter": "^0.2.4",
"core-js-pure": "^3.0.1",
"debug": "^4.3.3",
"ethereumjs-util": "^7.1.4",
"functional-red-black-tree": "^1.0.1",
"mcl-wasm": "^0.7.1",
- "merkle-patricia-tree": "^4.2.3",
+ "merkle-patricia-tree": "^4.2.4",
"rustbn.js": "~0.2.0"
}
},
- "node_modules/@ethereumjs/vm/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/@ethersproject/abi": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.1.tgz",
@@ -958,6 +1062,31 @@
"@ethersproject/transactions": "^5.6.0"
}
},
+ "node_modules/@ethersproject/hardware-wallets": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hardware-wallets/-/hardware-wallets-5.6.0.tgz",
+ "integrity": "sha512-jq/9osE7mfH6Ur4/N2/EdrgRuXacXlCzp5Irvyy8sWM3xMuzg2Git8czEFdFFTfLO6IBVxfEi1ANb+76tsa8BA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/hw-app-eth": "5.27.2",
+ "@ledgerhq/hw-transport": "5.26.0",
+ "@ledgerhq/hw-transport-u2f": "5.26.0",
+ "ethers": "^5.6.0"
+ },
+ "optionalDependencies": {
+ "@ledgerhq/hw-transport-node-hid": "5.26.0"
+ }
+ },
"node_modules/@ethersproject/hash": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz",
@@ -1423,6 +1552,93 @@
"@ethersproject/strings": "^5.6.0"
}
},
+ "node_modules/@gnosis.pm/mock-contract": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/mock-contract/-/mock-contract-4.0.0.tgz",
+ "integrity": "sha512-SkRq2KwPx6vo0LAjSc8JhgQstrQFXRyn2yqquIfub7r2WHi5nUbF8beeSSXsd36hvBcQxQfmOIYNYRpj9JOhrQ=="
+ },
+ "node_modules/@gnosis.pm/safe-contracts": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-contracts/-/safe-contracts-1.3.0.tgz",
+ "integrity": "sha512-1p+1HwGvxGUVzVkFjNzglwHrLNA67U/axP0Ct85FzzH8yhGJb4t9jDjPYocVMzLorDoWAfKicGy1akPY9jXRVw==",
+ "peerDependencies": {
+ "ethers": "^5.1.4"
+ }
+ },
+ "node_modules/@gnosis.pm/safe-core-sdk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk/-/safe-core-sdk-2.1.0.tgz",
+ "integrity": "sha512-x2qrJsVxHsCVldh3rr/IljXetBNo5iHAfsxOj+C3QIkuq66lIs0p0njobl6e2x+A/xYCy+UIa8j8T39YUOJSJA==",
+ "dependencies": {
+ "@ethersproject/solidity": "^5.6.0",
+ "@gnosis.pm/safe-core-sdk-types": "^1.1.0",
+ "@gnosis.pm/safe-deployments": "^1.12.0",
+ "ethereumjs-util": "^7.1.4",
+ "semver": "^7.3.5",
+ "web3-utils": "^1.7.1"
+ }
+ },
+ "node_modules/@gnosis.pm/safe-core-sdk-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk-types/-/safe-core-sdk-types-1.1.0.tgz",
+ "integrity": "sha512-VvEqWCliA6KXwt9N4YTzN5JcqnhLxLjUTU7trpQqQ7wU9OQcF+Kdrer86wDOF5lYZVE24zudw1s4gW3dxUkm6A==",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.6.0",
+ "@ethersproject/contracts": "^5.6.0",
+ "@gnosis.pm/safe-deployments": "^1.12.0",
+ "web3-core": "^1.7.1"
+ }
+ },
+ "node_modules/@gnosis.pm/safe-core-sdk-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk-utils/-/safe-core-sdk-utils-1.1.0.tgz",
+ "integrity": "sha512-ZH1Ps3qsreczKHHfBb34dj55LDTiU7WAeKD7jgKnhiloGWRniLv+cbBfwFQNAezoyANvgyI5ky64wgwm1bm1YA==",
+ "dependencies": {
+ "@gnosis.pm/safe-core-sdk-types": "^1.1.0",
+ "web3-utils": "^1.7.1"
+ }
+ },
+ "node_modules/@gnosis.pm/safe-deployments": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-deployments/-/safe-deployments-1.12.0.tgz",
+ "integrity": "sha512-fNwQqTdBushxlkqp8WpgXVP9HTePa/VFWM9VYPzbSsdqYqSUnXYDDOMyHH3H6eNltwRV8RVp/cxqUZLrvQ3YPg=="
+ },
+ "node_modules/@gnosis.pm/safe-ethers-lib": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-ethers-lib/-/safe-ethers-lib-1.1.0.tgz",
+ "integrity": "sha512-MG01hGu/3q/sl9fXE3sU7CMVpVMJ4k9/ro1JVZaE29jmsar1cHFUOJNws7Do3orxTLQZ2egkARcmyv+l673FoA==",
+ "dependencies": {
+ "@gnosis.pm/safe-core-sdk-types": "^1.1.0",
+ "@gnosis.pm/safe-core-sdk-utils": "^1.1.0"
+ },
+ "peerDependencies": {
+ "ethers": "^5.5.3"
+ }
+ },
+ "node_modules/@gnosis.pm/zodiac": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/zodiac/-/zodiac-1.0.7.tgz",
+ "integrity": "sha512-ejoe7IdagjjEPZp9J/Cgk/ZaNjDwMJznvaVVxwFmkJWuP1oN+wjBStML1UpSwRGueRnoJiDofrjVKKntcpLuxQ==",
+ "dependencies": {
+ "@gnosis.pm/mock-contract": "^4.0.0",
+ "@gnosis.pm/safe-contracts": "1.3.0",
+ "@openzeppelin/contracts": "^4.3.2",
+ "@openzeppelin/contracts-upgradeable": "^4.2.0",
+ "argv": "^0.0.2",
+ "dotenv": "^8.0.0",
+ "ethers": "^5.4.6",
+ "solc": "^0.8.6",
+ "yargs": "^16.1.1"
+ }
+ },
+ "node_modules/@gnosis.pm/zodiac/node_modules/dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
@@ -1454,10 +1670,182 @@
"hardhat": "^2.0.0"
}
},
+ "node_modules/@ledgerhq/cryptoassets": {
+ "version": "5.53.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-5.53.0.tgz",
+ "integrity": "sha512-M3ibc3LRuHid5UtL7FI3IC6nMEppvly98QHFoSa7lJU0HDzQxY6zHec/SPM4uuJUC8sXoGVAiRJDkgny54damw==",
+ "peer": true,
+ "dependencies": {
+ "invariant": "2"
+ }
+ },
+ "node_modules/@ledgerhq/devices": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz",
+ "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==",
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/errors": "^5.50.0",
+ "@ledgerhq/logs": "^5.50.0",
+ "rxjs": "6",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@ledgerhq/errors": {
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz",
+ "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==",
+ "peer": true
+ },
+ "node_modules/@ledgerhq/hw-app-eth": {
+ "version": "5.27.2",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-5.27.2.tgz",
+ "integrity": "sha512-llNdrE894cCN8j6yxJEUniciyLVcLmu5N0UmIJLOObztG+5rOF4bX54h4SreTWK+E10Z0CzHSeyE5Lz/tVcqqQ==",
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/cryptoassets": "^5.27.2",
+ "@ledgerhq/errors": "^5.26.0",
+ "@ledgerhq/hw-transport": "^5.26.0",
+ "bignumber.js": "^9.0.1",
+ "rlp": "^2.2.6"
+ }
+ },
+ "node_modules/@ledgerhq/hw-transport": {
+ "version": "5.26.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.26.0.tgz",
+ "integrity": "sha512-NFeJOJmyEfAX8uuIBTpocWHcz630sqPcXbu864Q+OCBm4EK5UOKV1h/pX7e0xgNIKY8zhJ/O4p4cIZp9tnXLHQ==",
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/devices": "^5.26.0",
+ "@ledgerhq/errors": "^5.26.0",
+ "events": "^3.2.0"
+ }
+ },
+ "node_modules/@ledgerhq/hw-transport-node-hid": {
+ "version": "5.26.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.26.0.tgz",
+ "integrity": "sha512-qhaefZVZatJ6UuK8Wb6WSFNOLWc2mxcv/xgsfKi5HJCIr4bPF/ecIeN+7fRcEaycxj4XykY6Z4A7zDVulfFH4w==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/devices": "^5.26.0",
+ "@ledgerhq/errors": "^5.26.0",
+ "@ledgerhq/hw-transport": "^5.26.0",
+ "@ledgerhq/hw-transport-node-hid-noevents": "^5.26.0",
+ "@ledgerhq/logs": "^5.26.0",
+ "lodash": "^4.17.20",
+ "node-hid": "1.3.0",
+ "usb": "^1.6.3"
+ }
+ },
+ "node_modules/@ledgerhq/hw-transport-node-hid-noevents": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz",
+ "integrity": "sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/devices": "^5.51.1",
+ "@ledgerhq/errors": "^5.50.0",
+ "@ledgerhq/hw-transport": "^5.51.1",
+ "@ledgerhq/logs": "^5.50.0",
+ "node-hid": "2.1.1"
+ }
+ },
+ "node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/@ledgerhq/hw-transport": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz",
+ "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/devices": "^5.51.1",
+ "@ledgerhq/errors": "^5.50.0",
+ "events": "^3.3.0"
+ }
+ },
+ "node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/node-addon-api": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
+ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/node-hid": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-2.1.1.tgz",
+ "integrity": "sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==",
+ "hasInstallScript": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "node-addon-api": "^3.0.2",
+ "prebuild-install": "^6.0.0"
+ },
+ "bin": {
+ "hid-showdevices": "src/show-devices.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/prebuild-install": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz",
+ "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.21.0",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@ledgerhq/hw-transport-u2f": {
+ "version": "5.26.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.26.0.tgz",
+ "integrity": "sha512-QTxP1Rsh+WZ184LUOelYVLeaQl3++V3I2jFik+l9JZtakwEHjD0XqOT750xpYNL/vfHsy31Wlz+oicdxGzFk+w==",
+ "deprecated": "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md",
+ "peer": true,
+ "dependencies": {
+ "@ledgerhq/errors": "^5.26.0",
+ "@ledgerhq/hw-transport": "^5.26.0",
+ "@ledgerhq/logs": "^5.26.0",
+ "u2f-api": "0.2.7"
+ }
+ },
+ "node_modules/@ledgerhq/logs": {
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz",
+ "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==",
+ "peer": true
+ },
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz",
+ "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg=="
+ },
"node_modules/@metamask/eth-sig-util": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.0.tgz",
- "integrity": "sha512-LczOjjxY4A7XYloxzyxJIHONELmUxVZncpOLoClpEcTiebiVdM46KRPYXGuULro9oNNR2xdVx3yoKiQjdfWmoA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz",
+ "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==",
"dependencies": {
"ethereumjs-abi": "^0.6.8",
"ethereumjs-util": "^6.2.1",
@@ -1469,6 +1857,49 @@
"node": ">=12.0.0"
}
},
+ "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@metamask/eth-sig-util/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
+ "node_modules/@noble/hashes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz",
+ "integrity": "sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg=="
+ },
+ "node_modules/@noble/secp256k1": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.5.tgz",
+ "integrity": "sha512-sZ1W6gQzYnu45wPrWx8D3kwI2/U29VYTx9OjbDAd7jwRItJ0cSTMPRL/C8AWZFn9kWFLQGqEXVEE86w4Z8LpIQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -1513,6 +1944,111 @@
"hardhat": "^2.0.0"
}
},
+ "node_modules/@nomiclabs/hardhat-etherscan": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.0.3.tgz",
+ "integrity": "sha512-OfNtUKc/ZwzivmZnnpwWREfaYncXteKHskn3yDnz+fPBZ6wfM4GR+d5RwjREzYFWE+o5iR9ruXhWw/8fejWM9g==",
+ "dev": true,
+ "dependencies": {
+ "@ethersproject/abi": "^5.1.2",
+ "@ethersproject/address": "^5.0.2",
+ "cbor": "^5.0.2",
+ "debug": "^4.1.1",
+ "fs-extra": "^7.0.1",
+ "semver": "^6.3.0",
+ "undici": "^4.14.1"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.4"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-etherscan/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-etherscan/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-etherscan/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-etherscan/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-truffle5": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.5.tgz",
+ "integrity": "sha512-taTWfieMP3Rvj+y90DgdNpviUJ4zxgjpW0V8D++uPkg5R7HXVWBTf43a1PYw+cBhcqN29P9gB1zSS1HC+uz1Mw==",
+ "dependencies": {
+ "@nomiclabs/truffle-contract": "^4.2.23",
+ "@types/chai": "^4.2.0",
+ "chai": "^4.2.0",
+ "ethereumjs-util": "^7.1.3",
+ "fs-extra": "^7.0.1"
+ },
+ "peerDependencies": {
+ "@nomiclabs/hardhat-web3": "^2.0.0",
+ "hardhat": "^2.6.4",
+ "web3": "^1.0.0-beta.36"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-truffle5/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-truffle5/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/@nomiclabs/hardhat-truffle5/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/@nomiclabs/hardhat-waffle": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.3.tgz",
@@ -1528,6 +2064,106 @@
"hardhat": "^2.0.0"
}
},
+ "node_modules/@nomiclabs/hardhat-web3": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz",
+ "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==",
+ "peer": true,
+ "dependencies": {
+ "@types/bignumber.js": "^5.0.0"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.0",
+ "web3": "^1.0.0-beta.36"
+ }
+ },
+ "node_modules/@nomiclabs/truffle-contract": {
+ "version": "4.2.23",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/truffle-contract/-/truffle-contract-4.2.23.tgz",
+ "integrity": "sha512-Khj/Ts9r0LqEpGYhISbc+8WTOd6qJ4aFnDR+Ew+neqcjGnhwrIvuihNwPFWU6hDepW3Xod6Y+rTo90N8sLRDjw==",
+ "dependencies": {
+ "@truffle/blockchain-utils": "^0.0.25",
+ "@truffle/contract-schema": "^3.2.5",
+ "@truffle/debug-utils": "^4.2.9",
+ "@truffle/error": "^0.0.11",
+ "@truffle/interface-adapter": "^0.4.16",
+ "bignumber.js": "^7.2.1",
+ "ethereum-ens": "^0.8.0",
+ "ethers": "^4.0.0-beta.1",
+ "source-map-support": "^0.5.19"
+ },
+ "peerDependencies": {
+ "web3": "^1.2.1",
+ "web3-core-helpers": "^1.2.1",
+ "web3-core-promievent": "^1.2.1",
+ "web3-eth-abi": "^1.2.1",
+ "web3-utils": "^1.2.1"
+ }
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/ethers": {
+ "version": "4.0.49",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz",
+ "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==",
+ "dependencies": {
+ "aes-js": "3.0.0",
+ "bn.js": "^4.11.9",
+ "elliptic": "6.5.4",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
+ }
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/scrypt-js": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
+ "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw=="
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/setimmediate": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
+ "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48="
+ },
+ "node_modules/@nomiclabs/truffle-contract/node_modules/uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details."
+ },
"node_modules/@openzeppelin/contract-loader": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz",
@@ -1567,9 +2203,14 @@
}
},
"node_modules/@openzeppelin/contracts": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.5.0.tgz",
- "integrity": "sha512-fdkzKPYMjrRiPK6K4y64e6GzULR7R7RwxSigHS8DDp7aWDeoReqsQI+cxHV1UuhAqX69L1lAaWDxenfP+xiqzA=="
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.6.0.tgz",
+ "integrity": "sha512-8vi4d50NNya/bQqCmaVzvHNmwHvS0OBKb7HNtuNwEE3scXWrP31fKQoGxNMT+KbzmrNZzatE3QK5p2gFONI/hg=="
+ },
+ "node_modules/@openzeppelin/contracts-upgradeable": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz",
+ "integrity": "sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA=="
},
"node_modules/@openzeppelin/test-environment": {
"version": "0.1.9",
@@ -1639,6 +2280,49 @@
"semver": "bin/semver"
}
},
+ "node_modules/@orcaprotocol/contracts": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/@orcaprotocol/contracts/-/contracts-5.2.4.tgz",
+ "integrity": "sha512-0LUJ2mf1CfdkLGQWSJdpXhySb+/hWGOol7KlgeZTWbZIvHwKF2C9xJHOWTchpttZdAqC+znSpwlYOyYK3xg6pw==",
+ "dependencies": {
+ "@ensdomains/ens-contracts": "0.0.7",
+ "@ensdomains/ensjs": "^2.0.1",
+ "@ensdomains/eth-ens-namehash": "^2.0.15",
+ "@gnosis.pm/safe-contracts": "^1.3.0",
+ "@gnosis.pm/safe-core-sdk": "^0.2.0",
+ "@gnosis.pm/safe-deployments": "^1.1.0",
+ "@gnosis.pm/zodiac": "^1.0.3",
+ "@openzeppelin/contracts": "^4.3.1",
+ "dotenv": "^10.0.0",
+ "ethers": "^5.6.0",
+ "hardhat": "^2.5.0",
+ "hardhat-deploy": "^0.9.0",
+ "solc": "^0.8.7",
+ "web3": "^1.3.6"
+ }
+ },
+ "node_modules/@orcaprotocol/contracts/node_modules/@gnosis.pm/safe-core-sdk": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk/-/safe-core-sdk-0.2.0.tgz",
+ "integrity": "sha512-HofU9KvbdMyoblvVyjTAEGNjdte4CamIfbZ5VgmAZhm2j8DwVJ6kqqRjGVar36eOv3sfozuJmnZwkPMM9BaV8Q==",
+ "dependencies": {
+ "@gnosis.pm/safe-core-sdk-types": "^0.1.1",
+ "ethereumjs-util": "^7.0.10"
+ }
+ },
+ "node_modules/@orcaprotocol/contracts/node_modules/@gnosis.pm/safe-core-sdk-types": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk-types/-/safe-core-sdk-types-0.1.1.tgz",
+ "integrity": "sha512-PghXGDaI5Foq37nZGmI90U2OKMeGtxh5KqkDqou9aFHwGVa/nf9HRQPxG9/XUzcyfe9OlKttDlJnR3XnC3dSDw=="
+ },
+ "node_modules/@orcaprotocol/contracts/node_modules/dotenv": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@rari-capital/solmate": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.2.0.tgz",
@@ -1717,6 +2401,48 @@
"ms": "^2.1.1"
}
},
+ "node_modules/@scure/base": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.0.0.tgz",
+ "integrity": "sha512-gIVaYhUsy+9s58m/ETjSJVKHhKTBMmcRb9cEV5/5dwvfDlfORjKrFsDeDHWRrm6RjcPvCLZFwGJjAjLj1gg4HA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/@scure/bip32": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.0.1.tgz",
+ "integrity": "sha512-AU88KKTpQ+YpTLoicZ/qhFhRRIo96/tlb+8YmDDHR9yiKVjSsFZiefJO4wjS2PMTkz5/oIcw84uAq/8pleQURA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "@noble/hashes": "~1.0.0",
+ "@noble/secp256k1": "~1.5.2",
+ "@scure/base": "~1.0.0"
+ }
+ },
+ "node_modules/@scure/bip39": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.0.0.tgz",
+ "integrity": "sha512-HrtcikLbd58PWOkl02k9V6nXWQyoa7A0+Ek9VF7z17DDk9XZAFUcIdqfh0jJXLypmizc5/8P6OxoUeKliiWv4w==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "@noble/hashes": "~1.0.0",
+ "@scure/base": "~1.0.0"
+ }
+ },
"node_modules/@sentry/core": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
@@ -1870,66 +2596,82 @@
}
},
"node_modules/@truffle/abi-utils": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.8.tgz",
- "integrity": "sha512-n/9ojMthWuP1hg9JveuxctxWoRoKTh+/17RTSwlTlXTyP/kfoNxr1JcLecybXUDOIsLJ4uskqxVUZQDvj1B0PQ==",
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.13.tgz",
+ "integrity": "sha512-WzjyNvx+naXmG/XKF+xLI+tJZLUlPGkd29rY4xBCiY9m/xWk0ZUL6gvVvnRr3leLJkBweJUSBiGUW770V8hHOg==",
"dependencies": {
"change-case": "3.0.2",
- "faker": "^5.3.1",
+ "faker": "5.5.3",
"fast-check": "^2.12.1"
}
},
"node_modules/@truffle/blockchain-utils": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.0.tgz",
- "integrity": "sha512-9mzYXPQkjOc23rHQM1i630i3ackITWP1cxf3PvBObaAnGqwPCQuqtmZtNDPdvN+YpOLpBGpZIdYolI91xLdJNQ=="
+ "version": "0.0.25",
+ "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.25.tgz",
+ "integrity": "sha512-XA5m0BfAWtysy5ChHyiAf1fXbJxJXphKk+eZ9Rb9Twi6fn3Jg4gnHNwYXJacYFEydqT5vr2s4Ou812JHlautpw==",
+ "dependencies": {
+ "source-map-support": "^0.5.19"
+ }
},
"node_modules/@truffle/codec": {
- "version": "0.11.25",
- "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.11.25.tgz",
- "integrity": "sha512-ZLKxSBznktm6sxHvyoyytfgh9XKxn1Sx7ByG6vLeJX5+2kUeAZ/RrtVm8Zd03vxr8WvmzWiU9jL7RFFH5NdpMw==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.7.1.tgz",
+ "integrity": "sha512-mNd6KnW6J0UB1zafGBXDlTEbCMvWpmPAJmzv7aF/nAIaN/F8UePSCiQ1OTQP39Rprj6GFiCCaWVnBAwum6UGSg==",
"dependencies": {
- "@truffle/abi-utils": "^0.2.8",
- "@truffle/compile-common": "^0.7.26",
"big.js": "^5.2.2",
- "bn.js": "^5.1.3",
- "cbor": "^5.1.0",
- "debug": "^4.3.1",
+ "bn.js": "^4.11.8",
+ "borc": "^2.1.2",
+ "debug": "^4.1.0",
"lodash.clonedeep": "^4.5.0",
"lodash.escaperegexp": "^4.1.2",
"lodash.partition": "^4.6.0",
"lodash.sum": "^4.0.2",
- "semver": "^7.3.4",
+ "semver": "^6.3.0",
+ "source-map-support": "^0.5.19",
"utf8": "^3.0.0",
- "web3-utils": "1.5.3"
+ "web3-utils": "1.2.9"
}
},
+ "node_modules/@truffle/codec/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/@truffle/codec/node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz",
+ "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=",
"dependencies": {
"bn.js": "^4.11.6",
"elliptic": "^6.4.0",
"xhr-request-promise": "^0.1.2"
}
},
- "node_modules/@truffle/codec/node_modules/eth-lib/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/@truffle/codec/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@truffle/codec/node_modules/underscore": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
},
"node_modules/@truffle/codec/node_modules/web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz",
+ "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==",
"dependencies": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
+ "bn.js": "4.11.8",
+ "eth-lib": "0.2.7",
"ethereum-bloom-filters": "^1.0.6",
"ethjs-unit": "0.1.6",
"number-to-bn": "1.7.0",
"randombytes": "^2.1.0",
+ "underscore": "1.9.1",
"utf8": "3.0.0"
},
"engines": {
@@ -1937,30 +2679,35 @@
}
},
"node_modules/@truffle/codec/node_modules/web3-utils/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
},
"node_modules/@truffle/compile-common": {
- "version": "0.7.26",
- "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.26.tgz",
- "integrity": "sha512-eHcplTfknX8ezBxxJgKBH6+AD3ufwo+fnlJd+JnMmPb6ndMcxyDpP/eepjLSNfzUdQSkd9n7ECvA0QIOdnNQuQ==",
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.31.tgz",
+ "integrity": "sha512-BGhWPd6NoI4VZfYBg+RgrCyLaxxq40vDOp6Ouofa1NQdN6LSPwlqWf0JWvPIKFNRp+TA9aWRHGmZntYyE94OZg==",
"dependencies": {
- "@truffle/error": "^0.0.15",
+ "@truffle/error": "^0.1.0",
"colors": "1.4.0"
}
},
+ "node_modules/@truffle/compile-common/node_modules/@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg=="
+ },
"node_modules/@truffle/contract": {
- "version": "4.4.7",
- "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.4.7.tgz",
- "integrity": "sha512-327jjHAHmCfpmstUDVVFH4kLMpQh47/QyzKBiOkjaTX97wd0WrqXlCZYn1hMmcP08j4GnoIzvecZn3zW0xizSQ==",
+ "version": "4.5.7",
+ "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.7.tgz",
+ "integrity": "sha512-OAYebW3SwOpsfobGq4uC6ShI9Lzisg9CUGvKyjnSNO2eq5KbvDn9xVFB0DHS6xCLfQa+2ONWeVMnxLtIcmbUig==",
"dependencies": {
"@ensdomains/ensjs": "^2.0.1",
- "@truffle/blockchain-utils": "^0.1.0",
- "@truffle/contract-schema": "^3.4.4",
- "@truffle/debug-utils": "^6.0.7",
- "@truffle/error": "^0.0.15",
- "@truffle/interface-adapter": "^0.5.11",
+ "@truffle/blockchain-utils": "^0.1.3",
+ "@truffle/contract-schema": "^3.4.7",
+ "@truffle/debug-utils": "^6.0.19",
+ "@truffle/error": "^0.1.0",
+ "@truffle/interface-adapter": "^0.5.15",
"bignumber.js": "^7.2.1",
"debug": "^4.3.1",
"ethers": "^4.0.32",
@@ -1972,14 +2719,95 @@
}
},
"node_modules/@truffle/contract-schema": {
- "version": "3.4.4",
- "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.4.tgz",
- "integrity": "sha512-xWgrm6WRM2jmT04w7dP7aVbS2qyP9XPmH/mybQtFXMjJ/8BZlp0yltC8QOs8sGl6q8Ws7acp19YtRkLdK6SsmQ==",
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.7.tgz",
+ "integrity": "sha512-vbOHMq/a8rVPh+cFMBDDGPqqiKrXXOc+f1kB4znfh3ewOX8rJxZhGJvdMm3WNMJHR5RstqDV7ZIZ7ePwtSXH8Q==",
"dependencies": {
"ajv": "^6.10.0",
"debug": "^4.3.1"
}
},
+ "node_modules/@truffle/contract/node_modules/@ethersproject/abi": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
+ "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "dependencies": {
+ "@ethersproject/address": "^5.0.4",
+ "@ethersproject/bignumber": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.4",
+ "@ethersproject/constants": "^5.0.4",
+ "@ethersproject/hash": "^5.0.4",
+ "@ethersproject/keccak256": "^5.0.3",
+ "@ethersproject/logger": "^5.0.5",
+ "@ethersproject/properties": "^5.0.3",
+ "@ethersproject/strings": "^5.0.4"
+ }
+ },
+ "node_modules/@truffle/contract/node_modules/@truffle/blockchain-utils": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.3.tgz",
+ "integrity": "sha512-K21Wf10u6VmS12/f9OrLN98f1RCqzrmuM2zlsly4b7BF/Xdh55Iq/jNSOnsNUJa+6Iaqqz6zeidquCYu9nTFng=="
+ },
+ "node_modules/@truffle/contract/node_modules/@truffle/codec": {
+ "version": "0.12.9",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.12.9.tgz",
+ "integrity": "sha512-lk89f7MXOVDAUZ7stjkG2zK5MvYsxxaTR5m2LcbulMcS5KetBNj5COKQaDoIIfY79a8Bjrlvl5pLhmP/Drb9mw==",
+ "dependencies": {
+ "@truffle/abi-utils": "^0.2.13",
+ "@truffle/compile-common": "^0.7.31",
+ "big.js": "^6.0.3",
+ "bn.js": "^5.1.3",
+ "cbor": "^5.1.0",
+ "debug": "^4.3.1",
+ "lodash": "^4.17.21",
+ "semver": "^7.3.4",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.5.3"
+ }
+ },
+ "node_modules/@truffle/contract/node_modules/@truffle/debug-utils": {
+ "version": "6.0.19",
+ "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.19.tgz",
+ "integrity": "sha512-EUrsCLF/+olOF8a0r0GOVpscNRbvLEhIHKTcHlpgQXoH46LcCbrxH2q5Lwwqmz7qDRTwp6f1UmSN37Rl5Ag5mQ==",
+ "dependencies": {
+ "@truffle/codec": "^0.12.9",
+ "@trufflesuite/chromafi": "^3.0.0",
+ "bn.js": "^5.1.3",
+ "chalk": "^2.4.2",
+ "debug": "^4.3.1",
+ "highlightjs-solidity": "^2.0.5"
+ }
+ },
+ "node_modules/@truffle/contract/node_modules/@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg=="
+ },
+ "node_modules/@truffle/contract/node_modules/@truffle/interface-adapter": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.15.tgz",
+ "integrity": "sha512-e6kSlSfn7XovKrrQ4lLUjog/cvwAelRNZLk7sfJ9pigZ+NRTlFmtrcWGUYgNIGuhAb48wYiRBEnkFIpqKGTtBw==",
+ "dependencies": {
+ "bn.js": "^5.1.3",
+ "ethers": "^4.0.32",
+ "web3": "1.5.3"
+ }
+ },
+ "node_modules/@truffle/contract/node_modules/@trufflesuite/chromafi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz",
+ "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"
+ }
+ },
"node_modules/@truffle/contract/node_modules/@types/bn.js": {
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
@@ -1989,19 +2817,34 @@
}
},
"node_modules/@truffle/contract/node_modules/@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
},
"node_modules/@truffle/contract/node_modules/aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
"integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
},
- "node_modules/@truffle/contract/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/@truffle/contract/node_modules/big.js": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.1.1.tgz",
+ "integrity": "sha512-1vObw81a8ylZO5ePrtMay0n018TcftpTA5HFKDaSuiUDBo8biRBtjIobw60OpwuvrGk+FsxKamqN4cnmj/eXdg==",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/bigjs"
+ }
+ },
+ "node_modules/@truffle/contract/node_modules/bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==",
+ "engines": {
+ "node": "*"
+ }
},
"node_modules/@truffle/contract/node_modules/eth-lib": {
"version": "0.2.8",
@@ -2013,33 +2856,10 @@
"xhr-request-promise": "^0.1.2"
}
},
- "node_modules/@truffle/contract/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@truffle/contract/node_modules/ethereumjs-util/node_modules/@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@truffle/contract/node_modules/ethereumjs-util/node_modules/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
+ "node_modules/@truffle/contract/node_modules/eth-lib/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/@truffle/contract/node_modules/ethers": {
"version": "4.0.49",
@@ -2057,6 +2877,11 @@
"xmlhttprequest": "1.8.0"
}
},
+ "node_modules/@truffle/contract/node_modules/ethers/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/@truffle/contract/node_modules/eventemitter3": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
@@ -2071,6 +2896,19 @@
"minimalistic-assert": "^1.0.0"
}
},
+ "node_modules/@truffle/contract/node_modules/highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@truffle/contract/node_modules/highlightjs-solidity": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.5.tgz",
+ "integrity": "sha512-ReXxQSGQkODMUgHcWzVSnfDCDrL2HshOYgw3OlIYmfHeRzUPkfJTUIp95pK4CmbiNG2eMTOmNLpfCz9Zq7Cwmg=="
+ },
"node_modules/@truffle/contract/node_modules/js-sha3": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
@@ -2141,6 +2979,18 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/contract/node_modules/web3-core-helpers": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz",
+ "integrity": "sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw==",
+ "dependencies": {
+ "web3-eth-iban": "1.5.3",
+ "web3-utils": "1.5.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/@truffle/contract/node_modules/web3-core-method": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz",
@@ -2157,6 +3007,17 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/contract/node_modules/web3-core-promievent": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz",
+ "integrity": "sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg==",
+ "dependencies": {
+ "eventemitter3": "4.0.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/@truffle/contract/node_modules/web3-core-requestmanager": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz",
@@ -2214,6 +3075,18 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/contract/node_modules/web3-eth-abi": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz",
+ "integrity": "sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg==",
+ "dependencies": {
+ "@ethersproject/abi": "5.0.7",
+ "web3-utils": "1.5.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/@truffle/contract/node_modules/web3-eth-accounts": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz",
@@ -2285,6 +3158,23 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/contract/node_modules/web3-eth-iban": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz",
+ "integrity": "sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw==",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.5.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@truffle/contract/node_modules/web3-eth-iban/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/@truffle/contract/node_modules/web3-eth-personal": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz",
@@ -2383,32 +3273,53 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/contract/node_modules/web3-utils/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/@truffle/debug-utils": {
- "version": "6.0.7",
- "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.7.tgz",
- "integrity": "sha512-ou8rYfdn3h0MqLqkA4vCNCsnrcy5rlDDMGEHhdG3vEqqWU4XaKu9jDzky5HcirDx+5iD6egR9SObnTBqg5tGzQ==",
+ "version": "4.2.14",
+ "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-4.2.14.tgz",
+ "integrity": "sha512-g5UTX2DPTzrjRjBJkviGI2IrQRTTSvqjmNWCNZNXP+vgQKNxL9maLZhQ6oA3BuuByVW/kusgYeXt8+W1zynC8g==",
"dependencies": {
- "@truffle/codec": "^0.11.25",
- "@trufflesuite/chromafi": "^2.2.2",
- "bn.js": "^5.1.3",
+ "@truffle/codec": "^0.7.1",
+ "@trufflesuite/chromafi": "^2.2.1",
"chalk": "^2.4.2",
- "debug": "^4.3.1",
- "highlightjs-solidity": "^2.0.3"
+ "debug": "^4.1.0",
+ "highlight.js": "^9.15.8",
+ "highlightjs-solidity": "^1.0.18"
}
},
"node_modules/@truffle/error": {
- "version": "0.0.15",
- "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.15.tgz",
- "integrity": "sha512-keiYGlVAH7GLggqMpB+XorT7NkOlr3qeBc56thI2WP0eas3qstlyrc0WvckXJ2LXrOfcR2uH6f0Nk6FIxaKXSA=="
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.11.tgz",
+ "integrity": "sha512-ju6TucjlJkfYMmdraYY/IBJaFb+Sa+huhYtOoyOJ+G29KcgytUVnDzKGwC7Kgk6IsxQMm62Mc1E0GZzFbGGipw=="
},
"node_modules/@truffle/interface-adapter": {
- "version": "0.5.11",
- "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.11.tgz",
- "integrity": "sha512-HXLm+r1KdT8nHzJht1iK6EnHBKIjSYHdDfebBMCqmRCsMoUXvUJ0KsIxvDG758MafB12pjx5gsNn4XzzfksSBQ==",
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.24.tgz",
+ "integrity": "sha512-2Zho4dJbm/XGwNleY7FdxcjXiAR3SzdGklgrAW4N/YVmltaJv6bT56ACIbPNN6AdzkTSTO65OlsB/63sfSa/VA==",
"dependencies": {
"bn.js": "^5.1.3",
"ethers": "^4.0.32",
- "web3": "1.5.3"
+ "web3": "1.3.6"
+ }
+ },
+ "node_modules/@truffle/interface-adapter/node_modules/@ethersproject/abi": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
+ "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "dependencies": {
+ "@ethersproject/address": "^5.0.4",
+ "@ethersproject/bignumber": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.4",
+ "@ethersproject/constants": "^5.0.4",
+ "@ethersproject/hash": "^5.0.4",
+ "@ethersproject/keccak256": "^5.0.3",
+ "@ethersproject/logger": "^5.0.5",
+ "@ethersproject/properties": "^5.0.3",
+ "@ethersproject/strings": "^5.0.4"
}
},
"node_modules/@truffle/interface-adapter/node_modules/@types/bn.js": {
@@ -2420,23 +3331,15 @@
}
},
"node_modules/@truffle/interface-adapter/node_modules/@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
},
"node_modules/@truffle/interface-adapter/node_modules/aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
"integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
},
- "node_modules/@truffle/interface-adapter/node_modules/bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
- "engines": {
- "node": "*"
- }
- },
"node_modules/@truffle/interface-adapter/node_modules/eth-lib": {
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
@@ -2452,29 +3355,6 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/@truffle/interface-adapter/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@truffle/interface-adapter/node_modules/ethereumjs-util/node_modules/@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@truffle/interface-adapter/node_modules/ethers": {
"version": "4.0.49",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz",
@@ -2525,6 +3405,11 @@
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
"integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48="
},
+ "node_modules/@truffle/interface-adapter/node_modules/underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
+ },
"node_modules/@truffle/interface-adapter/node_modules/uuid": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
@@ -2532,135 +3417,176 @@
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details."
},
"node_modules/@truffle/interface-adapter/node_modules/web3": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz",
- "integrity": "sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.3.6.tgz",
+ "integrity": "sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA==",
"hasInstallScript": true,
"dependencies": {
- "web3-bzz": "1.5.3",
- "web3-core": "1.5.3",
- "web3-eth": "1.5.3",
- "web3-eth-personal": "1.5.3",
- "web3-net": "1.5.3",
- "web3-shh": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-bzz": "1.3.6",
+ "web3-core": "1.3.6",
+ "web3-eth": "1.3.6",
+ "web3-eth-personal": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-shh": "1.3.6",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-bzz": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.3.tgz",
- "integrity": "sha512-SlIkAqG0eS6cBS9Q2eBOTI1XFzqh83RqGJWnyrNZMDxUwsTVHL+zNnaPShVPvrWQA1Ub5b0bx1Kc5+qJVxsTJg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.3.6.tgz",
+ "integrity": "sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw==",
"hasInstallScript": true,
"dependencies": {
"@types/node": "^12.12.6",
"got": "9.6.0",
- "swarm-js": "^0.1.40"
+ "swarm-js": "^0.1.40",
+ "underscore": "1.12.1"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-core": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.3.tgz",
- "integrity": "sha512-ACTbu8COCu+0eUNmd9pG7Q9EVsNkAg2w3Y7SqhDr+zjTgbSHZV01jXKlapm9z+G3AN/BziV3zGwudClJ4u4xXQ==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.6.tgz",
+ "integrity": "sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q==",
"dependencies": {
"@types/bn.js": "^4.11.5",
"@types/node": "^12.12.6",
"bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-requestmanager": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-requestmanager": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@truffle/interface-adapter/node_modules/web3-core-helpers": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz",
+ "integrity": "sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA==",
+ "dependencies": {
+ "underscore": "1.12.1",
+ "web3-eth-iban": "1.3.6",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-core-method": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz",
- "integrity": "sha512-8wJrwQ2qD9ibWieF9oHXwrJsUGrv3XAtEkNeyvyNMpktNTIjxJ2jaFGQUuLiyUrMubD18XXgLk4JS6PJU4Loeg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.6.tgz",
+ "integrity": "sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg==",
"dependencies": {
- "@ethereumjs/common": "^2.4.0",
"@ethersproject/transactions": "^5.0.0-beta.135",
- "web3-core-helpers": "1.5.3",
- "web3-core-promievent": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-utils": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@truffle/interface-adapter/node_modules/web3-core-promievent": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz",
+ "integrity": "sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw==",
+ "dependencies": {
+ "eventemitter3": "4.0.4"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-core-requestmanager": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz",
- "integrity": "sha512-9k/Bze2rs8ONix5IZR+hYdMNQv+ark2Ek2kVcrFgWO+LdLgZui/rn8FikPunjE+ub7x7pJaKCgVRbYFXjo3ZWg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz",
+ "integrity": "sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA==",
"dependencies": {
+ "underscore": "1.12.1",
"util": "^0.12.0",
- "web3-core-helpers": "1.5.3",
- "web3-providers-http": "1.5.3",
- "web3-providers-ipc": "1.5.3",
- "web3-providers-ws": "1.5.3"
+ "web3-core-helpers": "1.3.6",
+ "web3-providers-http": "1.3.6",
+ "web3-providers-ipc": "1.3.6",
+ "web3-providers-ws": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-core-subscriptions": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.3.tgz",
- "integrity": "sha512-L2m9vG1iRN6thvmv/HQwO2YLhOQlmZU8dpLG6GSo9FBN14Uch868Swk0dYVr3rFSYjZ/GETevSXU+O+vhCummA==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz",
+ "integrity": "sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g==",
"dependencies": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-eth": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.3.tgz",
- "integrity": "sha512-saFurA1L23Bd7MEf7cBli6/jRdMhD4X/NaMiO2mdMMCXlPujoudlIJf+VWpRWJpsbDFdu7XJ2WHkmBYT5R3p1Q==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.3.6.tgz",
+ "integrity": "sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA==",
+ "dependencies": {
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-eth-accounts": "1.3.6",
+ "web3-eth-contract": "1.3.6",
+ "web3-eth-ens": "1.3.6",
+ "web3-eth-iban": "1.3.6",
+ "web3-eth-personal": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@truffle/interface-adapter/node_modules/web3-eth-abi": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz",
+ "integrity": "sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ==",
"dependencies": {
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-eth-abi": "1.5.3",
- "web3-eth-accounts": "1.5.3",
- "web3-eth-contract": "1.5.3",
- "web3-eth-ens": "1.5.3",
- "web3-eth-iban": "1.5.3",
- "web3-eth-personal": "1.5.3",
- "web3-net": "1.5.3",
- "web3-utils": "1.5.3"
+ "@ethersproject/abi": "5.0.7",
+ "underscore": "1.12.1",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-eth-accounts": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz",
- "integrity": "sha512-pdGhXgeBaEJENMvRT6W9cmji3Zz/46ugFSvmnLLw79qi5EH7XJhKISNVb41eWCrs4am5GhI67GLx5d2s2a72iw==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz",
+ "integrity": "sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA==",
"dependencies": {
- "@ethereumjs/common": "^2.3.0",
- "@ethereumjs/tx": "^3.2.1",
"crypto-browserify": "3.12.0",
"eth-lib": "0.2.8",
- "ethereumjs-util": "^7.0.10",
+ "ethereumjs-common": "^1.3.2",
+ "ethereumjs-tx": "^2.1.1",
"scrypt-js": "^3.0.1",
+ "underscore": "1.12.1",
"uuid": "3.3.2",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
@@ -2681,76 +3607,95 @@
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-eth-contract": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz",
- "integrity": "sha512-Gdlt1L6cdHe83k7SdV6xhqCytVtOZkjD0kY/15x441AuuJ4JLubCHuqu69k2Dr3tWifHYVys/vG8QE/W16syGg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz",
+ "integrity": "sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA==",
"dependencies": {
"@types/bn.js": "^4.11.5",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-promievent": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-eth-abi": "1.5.3",
- "web3-utils": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-eth-ens": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.3.tgz",
- "integrity": "sha512-QmGFFtTGElg0E+3xfCIFhiUF+1imFi9eg/cdsRMUZU4F1+MZCC/ee+IAelYLfNTGsEslCqfAusliKOT9DdGGnw==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz",
+ "integrity": "sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA==",
"dependencies": {
"content-hash": "^2.5.2",
"eth-ens-namehash": "2.0.8",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-promievent": "1.5.3",
- "web3-eth-abi": "1.5.3",
- "web3-eth-contract": "1.5.3",
- "web3-utils": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-eth-contract": "1.3.6",
+ "web3-utils": "1.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@truffle/interface-adapter/node_modules/web3-eth-iban": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz",
+ "integrity": "sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ==",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/interface-adapter/node_modules/web3-eth-iban/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/@truffle/interface-adapter/node_modules/web3-eth-personal": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz",
- "integrity": "sha512-JzibJafR7ak/Icas8uvos3BmUNrZw1vShuNR5Cxjo+vteOC8XMqz1Vr7RH65B4bmlfb3bm9xLxetUHO894+Sew==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz",
+ "integrity": "sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ==",
"dependencies": {
"@types/node": "^12.12.6",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-net": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-net": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.3.tgz",
- "integrity": "sha512-0W/xHIPvgVXPSdLu0iZYnpcrgNnhzHMC888uMlGP5+qMCt8VuflUZHy7tYXae9Mzsg1kxaJAS5lHVNyeNw4CoQ==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.3.6.tgz",
+ "integrity": "sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw==",
"dependencies": {
- "web3-core": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-utils": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-providers-http": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.3.tgz",
- "integrity": "sha512-5DpUyWGHtDAr2RYmBu34Fu+4gJuBAuNx2POeiJIooUtJ+Mu6pIx4XkONWH6V+Ez87tZAVAsFOkJRTYuzMr3rPw==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.6.tgz",
+ "integrity": "sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q==",
"dependencies": {
- "web3-core-helpers": "1.5.3",
+ "web3-core-helpers": "1.3.6",
"xhr2-cookies": "1.1.0"
},
"engines": {
@@ -2758,24 +3703,26 @@
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-providers-ipc": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.3.tgz",
- "integrity": "sha512-JmeAptugVpmXI39LGxUSAymx0NOFdgpuI1hGQfIhbEAcd4sv7fhfd5D+ZU4oLHbRI8IFr4qfGU0uhR8BXhDzlg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz",
+ "integrity": "sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA==",
"dependencies": {
"oboe": "2.1.5",
- "web3-core-helpers": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-providers-ws": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.3.tgz",
- "integrity": "sha512-6DhTw4Q7nm5CFYEUHOJM0gAb3xFx+9gWpVveg3YxJ/ybR1BUvEWo3bLgIJJtX56cYX0WyY6DS35a7f0LOI1kVg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz",
+ "integrity": "sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ==",
"dependencies": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.5.3",
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6",
"websocket": "^1.0.32"
},
"engines": {
@@ -2783,24 +3730,24 @@
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-shh": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.3.tgz",
- "integrity": "sha512-COfEXfsqoV/BkcsNLRxQqnWc1Teb8/9GxdGag5GtPC5gQC/vsN+7hYVJUwNxY9LtJPKYTij2DHHnx6UkITng+Q==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.3.6.tgz",
+ "integrity": "sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw==",
"hasInstallScript": true,
"dependencies": {
- "web3-core": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-net": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-net": "1.3.6"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@truffle/interface-adapter/node_modules/web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
"dependencies": {
"bn.js": "^4.11.9",
"eth-lib": "0.2.8",
@@ -2808,6 +3755,7 @@
"ethjs-unit": "0.1.6",
"number-to-bn": "1.7.0",
"randombytes": "^2.1.0",
+ "underscore": "1.12.1",
"utf8": "3.0.0"
},
"engines": {
@@ -2820,13 +3768,47 @@
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/@truffle/provider": {
- "version": "0.2.45",
- "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.2.45.tgz",
- "integrity": "sha512-PGxdqUeubLTjTDFVhVhcSNx3/RfH/bTIQYwjb6v/Gd+6BvNN87d0FQWdEHp3/PnywXEeRDWg4HZDpWBYRqwwEw==",
+ "version": "0.2.53",
+ "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.2.53.tgz",
+ "integrity": "sha512-hd/0hYL4FcSXKH8PRZCC/p3YFbHokAZFs01xq/G7g5S/XpDVAgdfq9LeNKA6H+S8t8vlOMeLBTE1Z/6agSHdaQ==",
+ "dev": true,
+ "dependencies": {
+ "@truffle/error": "^0.1.0",
+ "@truffle/interface-adapter": "^0.5.15",
+ "web3": "1.5.3"
+ }
+ },
+ "node_modules/@truffle/provider/node_modules/@ethersproject/abi": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
+ "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "dev": true,
+ "dependencies": {
+ "@ethersproject/address": "^5.0.4",
+ "@ethersproject/bignumber": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.4",
+ "@ethersproject/constants": "^5.0.4",
+ "@ethersproject/hash": "^5.0.4",
+ "@ethersproject/keccak256": "^5.0.3",
+ "@ethersproject/logger": "^5.0.5",
+ "@ethersproject/properties": "^5.0.3",
+ "@ethersproject/strings": "^5.0.4"
+ }
+ },
+ "node_modules/@truffle/provider/node_modules/@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg==",
+ "dev": true
+ },
+ "node_modules/@truffle/provider/node_modules/@truffle/interface-adapter": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.15.tgz",
+ "integrity": "sha512-e6kSlSfn7XovKrrQ4lLUjog/cvwAelRNZLk7sfJ9pigZ+NRTlFmtrcWGUYgNIGuhAb48wYiRBEnkFIpqKGTtBw==",
"dev": true,
"dependencies": {
- "@truffle/error": "^0.0.15",
- "@truffle/interface-adapter": "^0.5.11",
+ "bn.js": "^5.1.3",
+ "ethers": "^4.0.32",
"web3": "1.5.3"
}
},
@@ -2840,19 +3822,16 @@
}
},
"node_modules/@truffle/provider/node_modules/@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA==",
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA==",
"dev": true
},
- "node_modules/@truffle/provider/node_modules/bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
- "dev": true,
- "engines": {
- "node": "*"
- }
+ "node_modules/@truffle/provider/node_modules/aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=",
+ "dev": true
},
"node_modules/@truffle/provider/node_modules/eth-lib": {
"version": "0.2.8",
@@ -2871,30 +3850,28 @@
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true
},
- "node_modules/@truffle/provider/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
+ "node_modules/@truffle/provider/node_modules/ethers": {
+ "version": "4.0.49",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz",
+ "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==",
"dev": true,
"dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
+ "aes-js": "3.0.0",
+ "bn.js": "^4.11.9",
+ "elliptic": "6.5.4",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
}
},
- "node_modules/@truffle/provider/node_modules/ethereumjs-util/node_modules/@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
+ "node_modules/@truffle/provider/node_modules/ethers/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
},
"node_modules/@truffle/provider/node_modules/eventemitter3": {
"version": "4.0.4",
@@ -2902,16 +3879,41 @@
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
"dev": true
},
- "node_modules/@truffle/provider/node_modules/uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "node_modules/@truffle/provider/node_modules/hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
"dev": true,
- "bin": {
- "uuid": "bin/uuid"
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
}
},
+ "node_modules/@truffle/provider/node_modules/js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ },
+ "node_modules/@truffle/provider/node_modules/scrypt-js": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
+ "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==",
+ "dev": true
+ },
+ "node_modules/@truffle/provider/node_modules/setimmediate": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
+ "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=",
+ "dev": true
+ },
+ "node_modules/@truffle/provider/node_modules/uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "dev": true
+ },
"node_modules/@truffle/provider/node_modules/web3": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz",
@@ -2964,6 +3966,19 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/provider/node_modules/web3-core-helpers": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz",
+ "integrity": "sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw==",
+ "dev": true,
+ "dependencies": {
+ "web3-eth-iban": "1.5.3",
+ "web3-utils": "1.5.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/@truffle/provider/node_modules/web3-core-method": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz",
@@ -2981,6 +3996,18 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/provider/node_modules/web3-core-promievent": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz",
+ "integrity": "sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg==",
+ "dev": true,
+ "dependencies": {
+ "eventemitter3": "4.0.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/@truffle/provider/node_modules/web3-core-requestmanager": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz",
@@ -3033,6 +4060,19 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/provider/node_modules/web3-eth-abi": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz",
+ "integrity": "sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg==",
+ "dev": true,
+ "dependencies": {
+ "@ethersproject/abi": "5.0.7",
+ "web3-utils": "1.5.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/@truffle/provider/node_modules/web3-eth-accounts": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz",
@@ -3055,6 +4095,22 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "dev": true
+ },
+ "node_modules/@truffle/provider/node_modules/web3-eth-accounts/node_modules/uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "dev": true,
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
"node_modules/@truffle/provider/node_modules/web3-eth-contract": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz",
@@ -3093,6 +4149,25 @@
"node": ">=8.0.0"
}
},
+ "node_modules/@truffle/provider/node_modules/web3-eth-iban": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz",
+ "integrity": "sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw==",
+ "dev": true,
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.5.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@truffle/provider/node_modules/web3-eth-iban/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ },
"node_modules/@truffle/provider/node_modules/web3-eth-personal": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz",
@@ -3225,6 +4300,14 @@
"super-split": "^1.1.0"
}
},
+ "node_modules/@trufflesuite/chromafi/node_modules/highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/@tsconfig/node10": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
@@ -3286,6 +4369,16 @@
"resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz",
"integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ=="
},
+ "node_modules/@types/bignumber.js": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz",
+ "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==",
+ "deprecated": "This is a stub types definition for bignumber.js (https://github.com/MikeMcl/bignumber.js/). bignumber.js provides its own type definitions, so you don't need @types/bignumber.js installed!",
+ "peer": true,
+ "dependencies": {
+ "bignumber.js": "*"
+ }
+ },
"node_modules/@types/bn.js": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
@@ -3326,9 +4419,9 @@
}
},
"node_modules/@types/json-schema": {
- "version": "7.0.9",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
- "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
"dev": true
},
"node_modules/@types/json5": {
@@ -3372,15 +4465,15 @@
}
},
"node_modules/@types/mocha": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz",
- "integrity": "sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==",
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
+ "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
"dev": true
},
"node_modules/@types/node": {
- "version": "17.0.25",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz",
- "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w=="
+ "version": "17.0.30",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz",
+ "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw=="
},
"node_modules/@types/node-fetch": {
"version": "2.6.1",
@@ -3400,9 +4493,9 @@
}
},
"node_modules/@types/prettier": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz",
- "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA=="
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz",
+ "integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw=="
},
"node_modules/@types/qs": {
"version": "6.9.7",
@@ -3443,9 +4536,9 @@
}
},
"node_modules/@types/sinonjs__fake-timers": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
- "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g=="
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz",
+ "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA=="
},
"node_modules/@types/underscore": {
"version": "1.11.4",
@@ -3728,25 +4821,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-dynamic-import": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
- "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
- "dependencies": {
- "acorn": "^4.0.3"
- }
- },
- "node_modules/acorn-dynamic-import/node_modules/acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -3825,38 +4899,6 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "dependencies": {
- "kind-of": "^3.0.2",
- "longest": "^1.0.1",
- "repeat-string": "^1.5.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/align-text/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
@@ -3913,9 +4955,9 @@
}
},
"node_modules/ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
"engines": {
"node": ">=4"
}
@@ -3954,6 +4996,57 @@
"node": ">= 8"
}
},
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/are-we-there-yet": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ }
+ },
+ "node_modules/are-we-there-yet/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/are-we-there-yet/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/are-we-there-yet/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"node_modules/arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
@@ -3968,11 +5061,21 @@
"sprintf-js": "~1.0.2"
}
},
+ "node_modules/argv": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz",
+ "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=",
+ "engines": {
+ "node": ">=0.6.10"
+ }
+ },
"node_modules/arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "optional": true,
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dependencies": {
+ "arr-flatten": "^1.0.1"
+ },
"engines": {
"node": ">=0.10.0"
}
@@ -3981,7 +5084,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -3990,7 +5092,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
"integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4048,23 +5149,23 @@
}
},
"node_modules/array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "optional": true,
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/array.prototype.flat": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
- "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
+ "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -4102,15 +5203,6 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
- "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
- "dependencies": {
- "object-assign": "^4.1.1",
- "util": "0.10.3"
- }
- },
"node_modules/assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
@@ -4119,19 +5211,6 @@
"node": ">=0.8"
}
},
- "node_modules/assert/node_modules/inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
- },
- "node_modules/assert/node_modules/util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "dependencies": {
- "inherits": "2.0.1"
- }
- },
"node_modules/assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
@@ -4144,7 +5223,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4165,9 +5243,9 @@
}
},
"node_modules/async": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dependencies": {
"lodash": "^4.17.14"
}
@@ -4175,8 +5253,7 @@
"node_modules/async-each": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
- "optional": true
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
},
"node_modules/async-eventemitter": {
"version": "0.2.4",
@@ -4208,7 +5285,6 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "optional": true,
"bin": {
"atob": "bin/atob.js"
},
@@ -4240,6 +5316,14 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
},
+ "node_modules/axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "dependencies": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -4249,7 +5333,6 @@
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "optional": true,
"dependencies": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -4275,7 +5358,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "optional": true,
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -4283,40 +5365,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/base/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/base/node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
+ "node_modules/base/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"engines": {
"node": ">=0.10.0"
}
@@ -4375,9 +5427,9 @@
}
},
"node_modules/bignumber.js": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
- "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==",
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
+ "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
"engines": {
"node": "*"
}
@@ -4394,22 +5446,27 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "optional": true,
"dependencies": {
"file-uri-to-path": "1.0.0"
}
},
- "node_modules/bip66": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz",
- "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=",
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "optional": true,
+ "peer": true,
"dependencies": {
- "safe-buffer": "^5.0.1"
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
}
},
"node_modules/blakejs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz",
- "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg=="
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"node_modules/bluebird": {
"version": "3.7.2",
@@ -4422,23 +5479,26 @@
"integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
},
"node_modules/body-parser": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
- "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"dependencies": {
- "bytes": "3.1.1",
+ "bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.8.1",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.9.6",
- "raw-body": "2.4.2",
- "type-is": "~1.6.18"
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/body-parser/node_modules/debug": {
@@ -4454,22 +5514,28 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.9.6",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
+ "node_modules/borc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz",
+ "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==",
+ "dependencies": {
+ "bignumber.js": "^9.0.0",
+ "buffer": "^5.5.0",
+ "commander": "^2.15.0",
+ "ieee754": "^1.1.13",
+ "iso-url": "~0.4.7",
+ "json-text-sequence": "~0.1.0",
+ "readable-stream": "^3.6.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -4559,14 +5625,6 @@
"safe-buffer": "^5.2.0"
}
},
- "node_modules/browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "dependencies": {
- "pako": "~1.0.5"
- }
- },
"node_modules/bs58": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
@@ -4640,15 +5698,10 @@
"node": ">=6.14.2"
}
},
- "node_modules/builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
- },
"node_modules/bytes": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
- "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
@@ -4657,7 +5710,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "optional": true,
"dependencies": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -4673,6 +5725,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/cache-base/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/cacheable-request": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
@@ -4800,26 +5860,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/cbor/node_modules/bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "dependencies": {
- "align-text": "^0.1.3",
- "lazy-cache": "^1.0.3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/chai": {
"version": "4.3.6",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
@@ -4928,15 +5968,15 @@
}
},
"node_modules/cheerio-select": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz",
- "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz",
+ "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==",
"dependencies": {
- "css-select": "^4.1.3",
- "css-what": "^5.0.1",
+ "css-select": "^4.3.0",
+ "css-what": "^6.0.1",
"domelementtype": "^2.2.0",
- "domhandler": "^4.2.0",
- "domutils": "^2.7.0"
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0"
},
"funding": {
"url": "https://github.com/sponsors/fb55"
@@ -5023,7 +6063,6 @@
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "optional": true,
"dependencies": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
@@ -5034,6 +6073,90 @@
"node": ">=0.10.0"
}
},
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
@@ -5055,9 +6178,9 @@
}
},
"node_modules/cli-table3": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz",
- "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz",
+ "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==",
"dependencies": {
"string-width": "^4.2.0"
},
@@ -5065,7 +6188,7 @@
"node": "10.* || >= 12.*"
},
"optionalDependencies": {
- "colors": "1.4.0"
+ "@colors/colors": "1.5.0"
}
},
"node_modules/cli-truncate": {
@@ -5103,9 +6226,9 @@
"dev": true
},
"node_modules/cli-truncate/node_modules/string-width": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz",
- "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"dependencies": {
"eastasianwidth": "^0.2.0",
@@ -5177,6 +6300,23 @@
"mimic-response": "^1.0.0"
}
},
+ "node_modules/clone-response/node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
"node_modules/code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -5189,7 +6329,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "optional": true,
"dependencies": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
@@ -5255,19 +6394,14 @@
}
},
"node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "dev": true,
- "engines": {
- "node": ">= 12"
- }
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"node_modules/component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "optional": true
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"node_modules/concat-map": {
"version": "0.0.1",
@@ -5321,10 +6455,12 @@
"integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
"dev": true
},
- "node_modules/console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "optional": true,
+ "peer": true
},
"node_modules/constant-case": {
"version": "2.0.0",
@@ -5335,11 +6471,6 @@
"upper-case": "^1.1.1"
}
},
- "node_modules/constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
- },
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -5391,15 +6522,14 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/core-js-pure": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.0.tgz",
- "integrity": "sha512-VaJUunCZLnxuDbo1rNOzwbet9E1K9joiXS5+DQMPtgxd24wfsZbJZMMfQLGYMlCUvSxLfsRUUhoOR2x28mFfeg==",
+ "version": "3.22.2",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.2.tgz",
+ "integrity": "sha512-Lb+/XT4WC4PaCWWtZpNPaXmjiNDUe5CJuUtbkMrIM1kb1T/jJoAIp+bkVP/r5lHzMr+ZAAF8XHp7+my6Ol0ysQ==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -5451,19 +6581,6 @@
"node": ">=4"
}
},
- "node_modules/cosmiconfig/node_modules/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "dependencies": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/cosmiconfig/node_modules/resolve-from": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
@@ -5474,13 +6591,9 @@
}
},
"node_modules/crc-32": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz",
- "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==",
- "dependencies": {
- "exit-on-epipe": "~1.0.1",
- "printj": "~1.3.1"
- },
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
"bin": {
"crc32": "bin/crc32.njs"
},
@@ -5596,13 +6709,13 @@
"integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q=="
},
"node_modules/css-select": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz",
- "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
"dependencies": {
"boolbase": "^1.0.0",
- "css-what": "^5.1.0",
- "domhandler": "^4.3.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
"domutils": "^2.8.0",
"nth-check": "^2.0.1"
},
@@ -5611,9 +6724,9 @@
}
},
"node_modules/css-what": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
- "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
"engines": {
"node": ">= 6"
},
@@ -5648,9 +6761,9 @@
"dev": true
},
"node_modules/debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
@@ -5683,14 +6796,16 @@
}
},
"node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+ "optional": true,
+ "peer": true,
"dependencies": {
- "mimic-response": "^1.0.0"
+ "mimic-response": "^2.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
"node_modules/deep-eql": {
@@ -5704,6 +6819,16 @@
"node": ">=0.12"
}
},
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -5743,28 +6868,40 @@
}
},
"node_modules/define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
"dependencies": {
- "object-keys": "^1.0.12"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "optional": true,
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dependencies": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
},
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/define-property/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -5773,12 +6910,24 @@
"node": ">=0.4.0"
}
},
+ "node_modules/delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/delimit-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz",
+ "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs="
+ },
"node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/des.js": {
@@ -5791,9 +6940,13 @@
}
},
"node_modules/destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
},
"node_modules/detect-indent": {
"version": "5.0.0",
@@ -5803,6 +6956,19 @@
"node": ">=4"
}
},
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "optional": true,
+ "peer": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/detect-port": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz",
@@ -5870,6 +7036,17 @@
"node": ">=8"
}
},
+ "node_modules/dns-packet": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz",
+ "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==",
+ "dependencies": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -5883,9 +7060,9 @@
}
},
"node_modules/dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.0",
@@ -5900,19 +7077,10 @@
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
- "node_modules/domain-browser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
- "engines": {
- "node": ">=0.4",
- "npm": ">=1.2"
- }
- },
"node_modules/domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"funding": [
{
"type": "github",
@@ -5921,9 +7089,9 @@
]
},
"node_modules/domhandler": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz",
- "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
"dependencies": {
"domelementtype": "^2.2.0"
},
@@ -5963,19 +7131,6 @@
"node": ">=12"
}
},
- "node_modules/drbg.js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz",
- "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=",
- "dependencies": {
- "browserify-aes": "^1.0.6",
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/duplexer3": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
@@ -6021,17 +7176,15 @@
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.1.0.tgz",
+ "integrity": "sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg==",
+ "dev": true
},
- "node_modules/emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "engines": {
- "node": ">= 4"
- }
+ "node_modules/encode-utf8": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
},
"node_modules/encodeurl": {
"version": "1.0.2",
@@ -6063,20 +7216,6 @@
"once": "^1.4.0"
}
},
- "node_modules/enhanced-resolve": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
- "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.4.0",
- "object-assign": "^4.0.1",
- "tapable": "^0.2.7"
- },
- "engines": {
- "node": ">=4.3.0 <5.0.0 || >=5.10"
- }
- },
"node_modules/enquirer": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
@@ -6104,6 +7243,11 @@
"node": ">=6"
}
},
+ "node_modules/eol": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+ "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+ },
"node_modules/errno": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
@@ -6124,9 +7268,9 @@
}
},
"node_modules/es-abstract": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
- "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz",
+ "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==",
"dependencies": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
@@ -6134,15 +7278,15 @@
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
- "has-symbols": "^1.0.2",
+ "has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
- "is-negative-zero": "^2.0.1",
+ "is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.1",
+ "is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
- "is-weakref": "^1.0.1",
- "object-inspect": "^1.11.0",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
"string.prototype.trimend": "^1.0.4",
@@ -6156,6 +7300,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
"node_modules/es-to-primitive": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
@@ -6173,13 +7326,17 @@
}
},
"node_modules/es5-ext": {
- "version": "0.10.53",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
- "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "version": "0.10.61",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz",
+ "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==",
+ "hasInstallScript": true,
"dependencies": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
}
},
"node_modules/es6-iterator": {
@@ -6192,40 +7349,6 @@
"es6-symbol": "^3.1.1"
}
},
- "node_modules/es6-map": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
- "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
- "dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
- "es6-set": "~0.1.5",
- "es6-symbol": "~3.1.1",
- "event-emitter": "~0.3.5"
- }
- },
- "node_modules/es6-set": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
- "dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
- "es6-symbol": "3.1.1",
- "event-emitter": "~0.3.5"
- }
- },
- "node_modules/es6-set/node_modules/es6-symbol": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
- "dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
"node_modules/es6-symbol": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
@@ -6235,17 +7358,6 @@
"ext": "^1.1.2"
}
},
- "node_modules/es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
- }
- },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -6362,20 +7474,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/escope": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
- "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
- "dependencies": {
- "es6-map": "^0.1.3",
- "es6-weak-map": "^2.0.1",
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/eslint": {
"version": "7.32.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
@@ -6892,6 +7990,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -6903,6 +8002,7 @@
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
"engines": {
"node": ">=4.0"
}
@@ -6911,6 +8011,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
"engines": {
"node": ">=4.0"
}
@@ -6947,15 +8048,15 @@
"integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
},
"node_modules/eth-gas-reporter": {
- "version": "0.2.24",
- "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.24.tgz",
- "integrity": "sha512-RbXLC2bnuPHzIMU/rnLXXlb6oiHEEKu7rq2UrAX/0mfo0Lzrr/kb9QTjWjfz8eNvc+uu6J8AuBwI++b+MLNI2w==",
+ "version": "0.2.25",
+ "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz",
+ "integrity": "sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ==",
"dependencies": {
"@ethersproject/abi": "^5.0.0-beta.146",
"@solidity-parser/parser": "^0.14.0",
"cli-table3": "^0.5.0",
"colors": "1.4.0",
- "ethereumjs-util": "6.2.0",
+ "ethereum-cryptography": "^1.0.3",
"ethers": "^4.0.40",
"fs-readdir-recursive": "^1.1.0",
"lodash": "^4.17.14",
@@ -6976,14 +8077,6 @@
}
}
},
- "node_modules/eth-gas-reporter/node_modules/@types/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/eth-gas-reporter/node_modules/aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
@@ -6998,9 +8091,9 @@
}
},
"node_modules/eth-gas-reporter/node_modules/ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"engines": {
"node": ">=6"
}
@@ -7117,18 +8210,15 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
- "node_modules/eth-gas-reporter/node_modules/ethereumjs-util": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz",
- "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==",
+ "node_modules/eth-gas-reporter/node_modules/ethereum-cryptography": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.0.3.tgz",
+ "integrity": "sha512-NQLTW0x0CosoVb/n79x/TRHtfvS3hgNUPTUSCu0vM+9k6IIhHFFrAOJReneexjZsoZxMjJHnJn4lrE8EbnSyqQ==",
"dependencies": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "ethjs-util": "0.1.6",
- "keccak": "^2.0.0",
- "rlp": "^2.2.3",
- "secp256k1": "^3.0.1"
+ "@noble/hashes": "1.0.0",
+ "@noble/secp256k1": "1.5.5",
+ "@scure/bip32": "1.0.1",
+ "@scure/bip39": "1.0.0"
}
},
"node_modules/eth-gas-reporter/node_modules/ethers": {
@@ -7169,6 +8259,20 @@
"flat": "cli.js"
}
},
+ "node_modules/eth-gas-reporter/node_modules/fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "deprecated": "\"Please update to latest v2.3 or v2.2\"",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/eth-gas-reporter/node_modules/glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
@@ -7241,21 +8345,6 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/eth-gas-reporter/node_modules/keccak": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz",
- "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==",
- "hasInstallScript": true,
- "dependencies": {
- "bindings": "^1.5.0",
- "inherits": "^2.0.4",
- "nan": "^2.14.0",
- "safe-buffer": "^5.2.0"
- },
- "engines": {
- "node": ">=5.12.0"
- }
- },
"node_modules/eth-gas-reporter/node_modules/locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
@@ -7290,6 +8379,17 @@
"node": "*"
}
},
+ "node_modules/eth-gas-reporter/node_modules/mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
"node_modules/eth-gas-reporter/node_modules/mocha": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz",
@@ -7381,30 +8481,16 @@
"node": ">= 8"
}
},
+ "node_modules/eth-gas-reporter/node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
"node_modules/eth-gas-reporter/node_modules/scrypt-js": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
"integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw=="
},
- "node_modules/eth-gas-reporter/node_modules/secp256k1": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz",
- "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==",
- "hasInstallScript": true,
- "dependencies": {
- "bindings": "^1.5.0",
- "bip66": "^1.1.5",
- "bn.js": "^4.11.8",
- "create-hash": "^1.2.0",
- "drbg.js": "^1.0.1",
- "elliptic": "^6.5.2",
- "nan": "^2.14.0",
- "safe-buffer": "^5.1.2"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
"node_modules/eth-gas-reporter/node_modules/setimmediate": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
@@ -7458,6 +8544,19 @@
"which": "bin/which"
}
},
+ "node_modules/eth-gas-reporter/node_modules/which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "node_modules/eth-gas-reporter/node_modules/wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
"node_modules/eth-gas-reporter/node_modules/wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
@@ -7626,6 +8725,24 @@
"setimmediate": "^1.0.5"
}
},
+ "node_modules/ethereum-ens": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ethereum-ens/-/ethereum-ens-0.8.0.tgz",
+ "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"
+ }
+ },
+ "node_modules/ethereum-ens/node_modules/js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
+ },
"node_modules/ethereum-waffle": {
"version": "3.4.4",
"resolved": "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz",
@@ -7653,24 +8770,20 @@
"ethereumjs-util": "^6.0.0"
}
},
+ "node_modules/ethereumjs-abi/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/ethereumjs-abi/node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/ethereumjs-testrpc": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/ethereumjs-testrpc/-/ethereumjs-testrpc-6.0.3.tgz",
- "integrity": "sha512-lAxxsxDKK69Wuwqym2K49VpXtBvLEsXr1sryNG4AkvL5DomMdeCBbu3D87UEevKenLHBiT8GTjARwN6Yj039gA==",
- "deprecated": "ethereumjs-testrpc has been renamed to ganache-cli, please use this package from now on.",
- "dependencies": {
- "webpack": "^3.0.0"
- },
- "bin": {
- "testrpc": "build/cli.node.js"
- }
- },
- "node_modules/ethereumjs-util": {
+ "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
"integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
@@ -7684,7 +8797,23 @@
"rlp": "^2.2.3"
}
},
- "node_modules/ethereumjs-util/node_modules/@types/bn.js": {
+ "node_modules/ethereumjs-common": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz",
+ "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==",
+ "deprecated": "New package name format for new versions: @ethereumjs/common. Please update."
+ },
+ "node_modules/ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.",
+ "dependencies": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "node_modules/ethereumjs-tx/node_modules/@types/bn.js": {
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
"integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
@@ -7692,11 +8821,40 @@
"@types/node": "*"
}
},
- "node_modules/ethereumjs-util/node_modules/bn.js": {
+ "node_modules/ethereumjs-tx/node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
+ "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
+ "node_modules/ethereumjs-util": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
+ "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
+ "dependencies": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.2.4"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
"node_modules/ethereumjs-wallet": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz",
@@ -7713,6 +8871,33 @@
"uuid": "^3.3.2"
}
},
+ "node_modules/ethereumjs-wallet/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/ethereumjs-wallet/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/ethereumjs-wallet/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
"node_modules/ethers": {
"version": "5.6.4",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.4.tgz",
@@ -7815,15 +9000,6 @@
"npm": ">=3"
}
},
- "node_modules/event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
"node_modules/event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
@@ -7841,6 +9017,7 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "peer": true,
"engines": {
"node": ">=0.8.x"
}
@@ -7888,79 +9065,108 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/exit-on-epipe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
- "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==",
+ "node_modules/expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dependencies": {
+ "is-posix-bracket": "^0.1.0"
+ },
"engines": {
- "node": ">=0.8"
+ "node": ">=0.10.0"
}
},
- "node_modules/expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "optional": true,
+ "node_modules/expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "fill-range": "^2.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/expand-brackets/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "optional": true,
+ "node_modules/expand-range/node_modules/fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
"dependencies": {
- "ms": "2.0.0"
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/expand-brackets/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "optional": true
+ "node_modules/expand-range/node_modules/is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-range/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
},
"node_modules/express": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
- "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.0.tgz",
+ "integrity": "sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg==",
"dependencies": {
- "accepts": "~1.3.7",
+ "accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.1",
+ "body-parser": "1.20.0",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.1",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "~1.1.2",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
+ "http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
- "qs": "6.9.6",
+ "qs": "6.10.3",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.17.2",
- "serve-static": "1.14.2",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
"setprototypeof": "1.2.0",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -7970,9 +9176,9 @@
}
},
"node_modules/express/node_modules/cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"engines": {
"node": ">= 0.6"
}
@@ -7990,17 +9196,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
- "node_modules/express/node_modules/qs": {
- "version": "6.9.6",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/ext": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz",
@@ -8020,12 +9215,23 @@
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "optional": true,
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"dependencies": {
- "is-extendable": "^0.1.0"
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extend-shallow/node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
},
"engines": {
"node": ">=0.10.0"
@@ -8046,70 +9252,20 @@
}
},
"node_modules/extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "optional": true,
- "dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "optional": true,
- "dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"dependencies": {
- "kind-of": "^6.0.0"
+ "is-extglob": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/extglob/node_modules/is-data-descriptor": {
+ "node_modules/extglob/node_modules/is-extglob": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extglob/node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
"engines": {
"node": ">=0.10.0"
}
@@ -8128,11 +9284,11 @@
"integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g=="
},
"node_modules/fast-check": {
- "version": "2.21.0",
- "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-2.21.0.tgz",
- "integrity": "sha512-hkTRytqMceXfnSwPnryIqKkxKJjfcvtVqJrWRb8tgmfyUsGajIgQqDFxCJ+As+l9VLUCcmx6XIYoXeQe2Ih0UA==",
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-2.25.0.tgz",
+ "integrity": "sha512-wRUT2KD2lAmT75WNIJIHECawoUUMHM0I5jrlLXGtGeqmPL8jl/EldUDjY1VCp6fDY8yflyfUeIOsOBrIbIiArg==",
"dependencies": {
- "pure-rand": "^5.0.0"
+ "pure-rand": "^5.0.1"
},
"engines": {
"node": ">=8.0.0"
@@ -8216,7 +9372,16 @@
"node_modules/file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "optional": true
+ },
+ "node_modules/filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
"node_modules/fill-range": {
"version": "7.0.1",
@@ -8230,16 +9395,16 @@
}
},
"node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"engines": {
@@ -8329,10 +9494,18 @@
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"dev": true
},
+ "node_modules/fmix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz",
+ "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=",
+ "dependencies": {
+ "imul": "^1.0.0"
+ }
+ },
"node_modules/follow-redirects": {
- "version": "1.14.8",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
- "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
"funding": [
{
"type": "individual",
@@ -8352,7 +9525,17 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dependencies": {
+ "for-in": "^1.0.1"
+ },
"engines": {
"node": ">=0.10.0"
}
@@ -8400,7 +9583,6 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
- "optional": true,
"dependencies": {
"map-cache": "^0.2.2"
},
@@ -8416,6 +9598,13 @@
"node": ">= 0.6"
}
},
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "optional": true,
+ "peer": true
+ },
"node_modules/fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -8448,6 +9637,19 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -8458,3588 +9660,3451 @@
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
},
- "node_modules/ganache-cli": {
- "version": "6.12.2",
- "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz",
- "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==",
+ "node_modules/ganache-core": {
+ "version": "2.13.2",
+ "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz",
+ "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==",
"bundleDependencies": [
- "source-map-support",
- "yargs",
- "ethereumjs-util"
+ "keccak"
],
- "deprecated": "ganache-cli is now ganache; visit https://trfl.io/g7 for details",
+ "deprecated": "ganache-core is now ganache; visit https://trfl.io/g7 for details",
+ "hasShrinkwrap": true,
"dependencies": {
+ "abstract-leveldown": "3.0.0",
+ "async": "2.6.2",
+ "bip39": "2.5.0",
+ "cachedown": "1.0.0",
+ "clone": "2.1.2",
+ "debug": "3.2.6",
+ "encoding-down": "5.0.4",
+ "eth-sig-util": "3.0.0",
+ "ethereumjs-abi": "0.6.8",
+ "ethereumjs-account": "3.0.0",
+ "ethereumjs-block": "2.2.2",
+ "ethereumjs-common": "1.5.0",
+ "ethereumjs-tx": "2.1.2",
"ethereumjs-util": "6.2.1",
+ "ethereumjs-vm": "4.2.0",
+ "heap": "0.2.6",
+ "keccak": "3.0.1",
+ "level-sublevel": "6.6.4",
+ "levelup": "3.1.1",
+ "lodash": "4.17.20",
+ "lru-cache": "5.1.1",
+ "merkle-patricia-tree": "3.0.0",
+ "patch-package": "6.2.2",
+ "seedrandom": "3.0.1",
"source-map-support": "0.5.12",
- "yargs": "13.2.4"
+ "tmp": "0.1.0",
+ "web3-provider-engine": "14.2.1",
+ "websocket": "1.0.32"
},
- "bin": {
- "ganache-cli": "cli.js"
+ "engines": {
+ "node": ">=8.9.0"
+ },
+ "optionalDependencies": {
+ "ethereumjs-wallet": "0.6.5",
+ "web3": "1.2.11"
}
},
- "node_modules/ganache-cli/node_modules/@types/bn.js": {
- "version": "4.11.6",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/abi": {
+ "version": "5.0.0-beta.153",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@types/node": "*"
+ "@ethersproject/address": ">=5.0.0-beta.128",
+ "@ethersproject/bignumber": ">=5.0.0-beta.130",
+ "@ethersproject/bytes": ">=5.0.0-beta.129",
+ "@ethersproject/constants": ">=5.0.0-beta.128",
+ "@ethersproject/hash": ">=5.0.0-beta.128",
+ "@ethersproject/keccak256": ">=5.0.0-beta.127",
+ "@ethersproject/logger": ">=5.0.0-beta.129",
+ "@ethersproject/properties": ">=5.0.0-beta.131",
+ "@ethersproject/strings": ">=5.0.0-beta.130"
}
},
- "node_modules/ganache-cli/node_modules/@types/node": {
- "version": "14.11.2",
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/@types/pbkdf2": {
- "version": "3.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/abstract-provider": {
+ "version": "5.0.8",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@types/node": "*"
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/networks": "^5.0.7",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/transactions": "^5.0.9",
+ "@ethersproject/web": "^5.0.12"
}
},
- "node_modules/ganache-cli/node_modules/@types/secp256k1": {
- "version": "4.0.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/abstract-signer": {
+ "version": "5.0.10",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@types/node": "*"
+ "@ethersproject/abstract-provider": "^5.0.8",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7"
}
},
- "node_modules/ganache-cli/node_modules/ansi-regex": {
- "version": "4.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/address": {
+ "version": "5.0.9",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
- "engines": {
- "node": ">=6"
+ "optional": true,
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/rlp": "^5.0.7"
}
},
- "node_modules/ganache-cli/node_modules/ansi-styles": {
- "version": "3.2.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/base64": {
+ "version": "5.0.7",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
+ "@ethersproject/bytes": "^5.0.9"
}
},
- "node_modules/ganache-cli/node_modules/base-x": {
- "version": "3.0.8",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/bignumber": {
+ "version": "5.0.13",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "safe-buffer": "^5.0.1"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "bn.js": "^4.4.0"
}
},
- "node_modules/ganache-cli/node_modules/blakejs": {
- "version": "1.1.0",
- "inBundle": true,
- "license": "CC0-1.0"
- },
- "node_modules/ganache-cli/node_modules/bn.js": {
- "version": "4.11.9",
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/brorand": {
- "version": "1.1.0",
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/browserify-aes": {
- "version": "1.2.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/bytes": {
+ "version": "5.0.9",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "@ethersproject/logger": "^5.0.8"
}
},
- "node_modules/ganache-cli/node_modules/bs58": {
- "version": "4.0.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/constants": {
+ "version": "5.0.8",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "base-x": "^3.0.2"
+ "@ethersproject/bignumber": "^5.0.13"
}
},
- "node_modules/ganache-cli/node_modules/bs58check": {
- "version": "2.1.2",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/hash": {
+ "version": "5.0.10",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
+ "@ethersproject/abstract-signer": "^5.0.10",
+ "@ethersproject/address": "^5.0.9",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/strings": "^5.0.8"
}
},
- "node_modules/ganache-cli/node_modules/buffer-from": {
- "version": "1.1.1",
- "inBundle": true,
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/@ethersproject/keccak256": {
+ "version": "5.0.7",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@ethersproject/bytes": "^5.0.9",
+ "js-sha3": "0.5.7"
+ }
},
- "node_modules/ganache-cli/node_modules/buffer-xor": {
- "version": "1.0.3",
- "inBundle": true,
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/@ethersproject/logger": {
+ "version": "5.0.8",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "optional": true
},
- "node_modules/ganache-cli/node_modules/camelcase": {
- "version": "5.3.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/networks": {
+ "version": "5.0.7",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
- "engines": {
- "node": ">=6"
+ "optional": true,
+ "dependencies": {
+ "@ethersproject/logger": "^5.0.8"
}
},
- "node_modules/ganache-cli/node_modules/cipher-base": {
- "version": "1.0.4",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/properties": {
+ "version": "5.0.7",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "@ethersproject/logger": "^5.0.8"
}
},
- "node_modules/ganache-cli/node_modules/cliui": {
- "version": "5.0.0",
- "inBundle": true,
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/@ethersproject/rlp": {
+ "version": "5.0.7",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8"
}
},
- "node_modules/ganache-cli/node_modules/color-convert": {
- "version": "1.9.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/signing-key": {
+ "version": "5.0.8",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "color-name": "1.1.3"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "elliptic": "6.5.3"
}
},
- "node_modules/ganache-cli/node_modules/color-name": {
- "version": "1.1.3",
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/create-hash": {
- "version": "1.2.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/strings": {
+ "version": "5.0.8",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/constants": "^5.0.8",
+ "@ethersproject/logger": "^5.0.8"
}
},
- "node_modules/ganache-cli/node_modules/create-hmac": {
- "version": "1.1.7",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/transactions": {
+ "version": "5.0.9",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "@ethersproject/address": "^5.0.9",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/constants": "^5.0.8",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/rlp": "^5.0.7",
+ "@ethersproject/signing-key": "^5.0.8"
}
},
- "node_modules/ganache-cli/node_modules/cross-spawn": {
- "version": "6.0.5",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@ethersproject/web": {
+ "version": "5.0.12",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"license": "MIT",
+ "optional": true,
"dependencies": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- },
+ "@ethersproject/base64": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/strings": "^5.0.8"
+ }
+ },
+ "node_modules/ganache-core/node_modules/@sindresorhus/is": {
+ "version": "0.14.0",
+ "license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=4.8"
+ "node": ">=6"
}
},
- "node_modules/ganache-cli/node_modules/decamelize": {
- "version": "1.2.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@szmarczak/http-timer": {
+ "version": "1.1.2",
"license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "defer-to-connect": "^1.0.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/ganache-cli/node_modules/elliptic": {
- "version": "6.5.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@types/bn.js": {
+ "version": "4.11.6",
"license": "MIT",
"dependencies": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
+ "@types/node": "*"
}
},
- "node_modules/ganache-cli/node_modules/emoji-regex": {
- "version": "7.0.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@types/node": {
+ "version": "14.14.20",
"license": "MIT"
},
- "node_modules/ganache-cli/node_modules/end-of-stream": {
- "version": "1.4.4",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@types/pbkdf2": {
+ "version": "3.1.0",
"license": "MIT",
"dependencies": {
- "once": "^1.4.0"
+ "@types/node": "*"
}
},
- "node_modules/ganache-cli/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/@types/secp256k1": {
+ "version": "4.0.1",
"license": "MIT",
"dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
+ "@types/node": "*"
}
},
- "node_modules/ganache-cli/node_modules/ethereumjs-util": {
- "version": "6.2.1",
- "inBundle": true,
- "license": "MPL-2.0",
- "dependencies": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
- }
+ "node_modules/ganache-core/node_modules/@yarnpkg/lockfile": {
+ "version": "1.1.0",
+ "license": "BSD-2-Clause"
},
- "node_modules/ganache-cli/node_modules/ethjs-util": {
- "version": "0.1.6",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/abstract-leveldown": {
+ "version": "3.0.0",
"license": "MIT",
"dependencies": {
- "is-hex-prefixed": "1.0.0",
- "strip-hex-prefix": "1.0.0"
+ "xtend": "~4.0.0"
},
"engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "node": ">=4"
}
},
- "node_modules/ganache-cli/node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/accepts": {
+ "version": "1.3.7",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-cli/node_modules/execa": {
- "version": "1.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/aes-js": {
+ "version": "3.1.2",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/ajv": {
+ "version": "6.12.6",
"license": "MIT",
"dependencies": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/ganache-cli/node_modules/find-up": {
- "version": "3.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/ansi-styles": {
+ "version": "3.2.1",
"license": "MIT",
"dependencies": {
- "locate-path": "^3.0.0"
+ "color-convert": "^1.9.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=4"
}
},
- "node_modules/ganache-cli/node_modules/get-caller-file": {
- "version": "2.0.5",
- "inBundle": true,
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/arr-diff": {
+ "version": "4.0.0",
+ "license": "MIT",
"engines": {
- "node": "6.* || 8.* || >= 10.*"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/get-stream": {
- "version": "4.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/arr-flatten": {
+ "version": "1.1.0",
"license": "MIT",
- "dependencies": {
- "pump": "^3.0.0"
- },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/hash-base": {
+ "node_modules/ganache-core/node_modules/arr-union": {
"version": "3.1.0",
- "inBundle": true,
"license": "MIT",
- "dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/hash.js": {
- "version": "1.1.7",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/array-flatten": {
+ "version": "1.1.1",
"license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
+ "optional": true
},
- "node_modules/ganache-cli/node_modules/hmac-drbg": {
- "version": "1.0.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/array-unique": {
+ "version": "0.3.2",
"license": "MIT",
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/inherits": {
- "version": "2.0.4",
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/ganache-cli/node_modules/invert-kv": {
- "version": "2.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/asn1": {
+ "version": "0.2.4",
"license": "MIT",
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
}
},
- "node_modules/ganache-cli/node_modules/is-fullwidth-code-point": {
- "version": "2.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/asn1.js": {
+ "version": "5.4.1",
"license": "MIT",
- "engines": {
- "node": ">=4"
+ "optional": true,
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
}
},
- "node_modules/ganache-cli/node_modules/is-hex-prefixed": {
+ "node_modules/ganache-core/node_modules/assert-plus": {
"version": "1.0.0",
- "inBundle": true,
"license": "MIT",
"engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "node": ">=0.8"
}
},
- "node_modules/ganache-cli/node_modules/is-stream": {
- "version": "1.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/assign-symbols": {
+ "version": "1.0.0",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/isexe": {
- "version": "2.0.0",
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/ganache-cli/node_modules/keccak": {
- "version": "3.0.1",
- "hasInstallScript": true,
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/async": {
+ "version": "2.6.2",
"license": "MIT",
"dependencies": {
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
- },
- "engines": {
- "node": ">=10.0.0"
+ "lodash": "^4.17.11"
}
},
- "node_modules/ganache-cli/node_modules/lcid": {
- "version": "2.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/async-eventemitter": {
+ "version": "0.2.4",
"license": "MIT",
"dependencies": {
- "invert-kv": "^2.0.0"
+ "async": "^2.4.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/async-limiter": {
+ "version": "1.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/asynckit": {
+ "version": "0.4.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/atob": {
+ "version": "2.1.2",
+ "license": "(MIT OR Apache-2.0)",
+ "bin": {
+ "atob": "bin/atob.js"
},
"engines": {
- "node": ">=6"
+ "node": ">= 4.5.0"
}
},
- "node_modules/ganache-cli/node_modules/locate-path": {
- "version": "3.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ganache-core/node_modules/aws4": {
+ "version": "1.11.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/babel-code-frame": {
+ "version": "6.26.0",
"license": "MIT",
"dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ }
+ },
+ "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/map-age-cleaner": {
- "version": "0.1.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-styles": {
+ "version": "2.2.1",
"license": "MIT",
- "dependencies": {
- "p-defer": "^1.0.0"
- },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/md5.js": {
- "version": "1.3.5",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/chalk": {
+ "version": "1.1.3",
"license": "MIT",
"dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/mem": {
- "version": "4.3.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/js-tokens": {
+ "version": "3.0.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/strip-ansi": {
+ "version": "3.0.1",
"license": "MIT",
"dependencies": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
+ "ansi-regex": "^2.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/mimic-fn": {
- "version": "2.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/supports-color": {
+ "version": "2.0.0",
"license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=0.8.0"
}
},
- "node_modules/ganache-cli/node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "inBundle": true,
- "license": "ISC"
+ "node_modules/ganache-core/node_modules/babel-core": {
+ "version": "6.26.3",
+ "license": "MIT",
+ "dependencies": {
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
+ }
},
- "node_modules/ganache-cli/node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "inBundle": true,
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/babel-core/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
},
- "node_modules/ganache-cli/node_modules/nice-try": {
- "version": "1.0.5",
- "inBundle": true,
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/babel-core/node_modules/json5": {
+ "version": "0.5.1",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ }
},
- "node_modules/ganache-cli/node_modules/node-addon-api": {
- "version": "2.0.2",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-core/node_modules/ms": {
+ "version": "2.0.0",
"license": "MIT"
},
- "node_modules/ganache-cli/node_modules/node-gyp-build": {
- "version": "4.2.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-core/node_modules/slash": {
+ "version": "1.0.0",
"license": "MIT",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-cli/node_modules/npm-run-path": {
- "version": "2.0.2",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-generator": {
+ "version": "6.26.1",
"license": "MIT",
"dependencies": {
- "path-key": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
}
},
- "node_modules/ganache-cli/node_modules/once": {
- "version": "1.4.0",
- "inBundle": true,
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
+ "node_modules/ganache-core/node_modules/babel-generator/node_modules/jsesc": {
+ "version": "1.3.0",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
}
},
- "node_modules/ganache-cli/node_modules/os-locale": {
- "version": "3.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "execa": "^1.0.0",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/p-defer": {
- "version": "1.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-call-delegate": {
+ "version": "6.24.1",
"license": "MIT",
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/p-finally": {
- "version": "1.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-define-map": {
+ "version": "6.26.0",
"license": "MIT",
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
- "node_modules/ganache-cli/node_modules/p-is-promise": {
- "version": "2.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
"license": "MIT",
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/p-limit": {
- "version": "2.3.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-function-name": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/p-locate": {
- "version": "3.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-get-function-arity": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/p-try": {
- "version": "2.2.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-hoist-variables": {
+ "version": "6.24.1",
"license": "MIT",
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/path-exists": {
- "version": "3.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
"license": "MIT",
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/path-key": {
- "version": "2.0.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-regex": {
+ "version": "6.26.0",
"license": "MIT",
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
- "node_modules/ganache-cli/node_modules/pbkdf2": {
- "version": "3.1.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- },
- "engines": {
- "node": ">=0.12"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/pump": {
- "version": "3.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helper-replace-supers": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/randombytes": {
- "version": "2.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-helpers": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "safe-buffer": "^5.1.0"
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/readable-stream": {
- "version": "3.6.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-messages": {
+ "version": "6.23.0",
"license": "MIT",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/require-directory": {
- "version": "2.1.1",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/require-main-filename": {
- "version": "2.0.0",
- "inBundle": true,
- "license": "ISC"
+ "node_modules/ganache-core/node_modules/babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "license": "MIT"
},
- "node_modules/ganache-cli/node_modules/ripemd160": {
- "version": "2.0.2",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/rlp": {
- "version": "2.2.6",
- "inBundle": true,
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "license": "MIT",
"dependencies": {
- "bn.js": "^4.11.1"
- },
- "bin": {
- "rlp": "bin/rlp"
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/safe-buffer": {
- "version": "5.2.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/scrypt-js": {
- "version": "3.0.1",
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/secp256k1": {
- "version": "4.0.2",
- "hasInstallScript": true,
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
"license": "MIT",
"dependencies": {
- "elliptic": "^6.5.2",
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
- },
- "engines": {
- "node": ">=10.0.0"
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/semver": {
- "version": "5.7.1",
- "inBundle": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver"
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "license": "MIT",
+ "dependencies": {
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
- "node_modules/ganache-cli/node_modules/set-blocking": {
- "version": "2.0.0",
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/ganache-cli/node_modules/setimmediate": {
- "version": "1.0.5",
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/sha.js": {
- "version": "2.4.11",
- "inBundle": true,
- "license": "(MIT AND BSD-3-Clause)",
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "bin": {
- "sha.js": "bin.js"
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/shebang-command": {
- "version": "1.2.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "shebang-regex": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/shebang-regex": {
- "version": "1.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/signal-exit": {
- "version": "3.0.3",
- "inBundle": true,
- "license": "ISC"
- },
- "node_modules/ganache-cli/node_modules/source-map": {
- "version": "0.6.1",
- "inBundle": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "license": "MIT",
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/source-map-support": {
- "version": "0.5.12",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
"license": "MIT",
"dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/string_decoder": {
- "version": "1.3.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "safe-buffer": "~5.2.0"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/string-width": {
- "version": "3.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
"license": "MIT",
"dependencies": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- },
- "engines": {
- "node": ">=6"
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-cli/node_modules/strip-ansi": {
- "version": "5.2.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/strip-eof": {
- "version": "1.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
}
},
- "node_modules/ganache-cli/node_modules/strip-hex-prefix": {
- "version": "1.0.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "is-hex-prefixed": "1.0.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/util-deprecate": {
- "version": "1.0.2",
- "inBundle": true,
- "license": "MIT"
- },
- "node_modules/ganache-cli/node_modules/which": {
- "version": "1.3.1",
- "inBundle": true,
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "license": "MIT",
"dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/which-module": {
- "version": "2.0.0",
- "inBundle": true,
- "license": "ISC"
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "license": "MIT",
+ "dependencies": {
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
+ }
},
- "node_modules/ganache-cli/node_modules/wrap-ansi": {
- "version": "5.1.0",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
- },
- "engines": {
- "node": ">=6"
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/wrappy": {
- "version": "1.0.2",
- "inBundle": true,
- "license": "ISC"
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "license": "MIT",
+ "dependencies": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
},
- "node_modules/ganache-cli/node_modules/y18n": {
- "version": "4.0.0",
- "inBundle": true,
- "license": "ISC"
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "license": "MIT",
+ "dependencies": {
+ "babel-runtime": "^6.22.0"
+ }
},
- "node_modules/ganache-cli/node_modules/yargs": {
- "version": "13.2.4",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
"license": "MIT",
"dependencies": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
- "os-locale": "^3.1.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.1.0"
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-cli/node_modules/yargs-parser": {
- "version": "13.1.2",
- "inBundle": true,
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "license": "MIT",
"dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-core": {
- "version": "2.13.2",
- "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz",
- "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==",
- "bundleDependencies": [
- "keccak"
- ],
- "deprecated": "ganache-core is now ganache; visit https://trfl.io/g7 for details",
- "hasShrinkwrap": true,
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "license": "MIT",
"dependencies": {
- "abstract-leveldown": "3.0.0",
- "async": "2.6.2",
- "bip39": "2.5.0",
- "cachedown": "1.0.0",
- "clone": "2.1.2",
- "debug": "3.2.6",
- "encoding-down": "5.0.4",
- "eth-sig-util": "3.0.0",
- "ethereumjs-abi": "0.6.8",
- "ethereumjs-account": "3.0.0",
- "ethereumjs-block": "2.2.2",
- "ethereumjs-common": "1.5.0",
- "ethereumjs-tx": "2.1.2",
- "ethereumjs-util": "6.2.1",
- "ethereumjs-vm": "4.2.0",
- "heap": "0.2.6",
- "keccak": "3.0.1",
- "level-sublevel": "6.6.4",
- "levelup": "3.1.1",
- "lodash": "4.17.20",
- "lru-cache": "5.1.1",
- "merkle-patricia-tree": "3.0.0",
- "patch-package": "6.2.2",
- "seedrandom": "3.0.1",
- "source-map-support": "0.5.12",
- "tmp": "0.1.0",
- "web3-provider-engine": "14.2.1",
- "websocket": "1.0.32"
- },
- "engines": {
- "node": ">=8.9.0"
- },
- "optionalDependencies": {
- "ethereumjs-wallet": "0.6.5",
- "web3": "1.2.11"
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/abi": {
- "version": "5.0.0-beta.153",
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/address": ">=5.0.0-beta.128",
- "@ethersproject/bignumber": ">=5.0.0-beta.130",
- "@ethersproject/bytes": ">=5.0.0-beta.129",
- "@ethersproject/constants": ">=5.0.0-beta.128",
- "@ethersproject/hash": ">=5.0.0-beta.128",
- "@ethersproject/keccak256": ">=5.0.0-beta.127",
- "@ethersproject/logger": ">=5.0.0-beta.129",
- "@ethersproject/properties": ">=5.0.0-beta.131",
- "@ethersproject/strings": ">=5.0.0-beta.130"
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/abstract-provider": {
- "version": "5.0.8",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/networks": "^5.0.7",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/transactions": "^5.0.9",
- "@ethersproject/web": "^5.0.12"
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/abstract-signer": {
- "version": "5.0.10",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/abstract-provider": "^5.0.8",
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7"
+ "regenerator-transform": "^0.10.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/address": {
- "version": "5.0.9",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/keccak256": "^5.0.7",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/rlp": "^5.0.7"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/base64": {
- "version": "5.0.7",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-preset-env": {
+ "version": "1.7.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bytes": "^5.0.9"
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0",
+ "browserslist": "^3.2.6",
+ "invariant": "^2.2.2",
+ "semver": "^5.3.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/bignumber": {
- "version": "5.0.13",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-preset-env/node_modules/semver": {
+ "version": "5.7.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/ganache-core/node_modules/babel-register": {
+ "version": "6.26.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "bn.js": "^4.4.0"
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/bytes": {
- "version": "5.0.9",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-register/node_modules/source-map-support": {
+ "version": "0.4.18",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/logger": "^5.0.8"
+ "source-map": "^0.5.6"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/constants": {
- "version": "5.0.8",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-runtime": {
+ "version": "6.26.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bignumber": "^5.0.13"
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/hash": {
- "version": "5.0.10",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-template": {
+ "version": "6.26.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/abstract-signer": "^5.0.10",
- "@ethersproject/address": "^5.0.9",
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/keccak256": "^5.0.7",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/strings": "^5.0.8"
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/keccak256": {
- "version": "5.0.7",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-traverse": {
+ "version": "6.26.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bytes": "^5.0.9",
- "js-sha3": "0.5.7"
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/logger": {
- "version": "5.0.8",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-traverse/node_modules/debug": {
+ "version": "2.6.9",
"license": "MIT",
- "optional": true
+ "dependencies": {
+ "ms": "2.0.0"
+ }
},
- "node_modules/ganache-core/node_modules/@ethersproject/networks": {
- "version": "5.0.7",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-traverse/node_modules/globals": {
+ "version": "9.18.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/babel-traverse/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/babel-types": {
+ "version": "6.26.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/logger": "^5.0.8"
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/properties": {
- "version": "5.0.7",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babel-types/node_modules/to-fast-properties": {
+ "version": "1.0.3",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/babelify": {
+ "version": "7.3.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/logger": "^5.0.8"
+ "babel-core": "^6.0.14",
+ "object-assign": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/rlp": {
- "version": "5.0.7",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/babylon": {
+ "version": "6.18.0",
+ "license": "MIT",
+ "bin": {
+ "babylon": "bin/babylon.js"
+ }
+ },
+ "node_modules/ganache-core/node_modules/backoff": {
+ "version": "2.5.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8"
+ "precond": "0.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/signing-key": {
- "version": "5.0.8",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/balanced-match": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/base": {
+ "version": "0.11.2",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "elliptic": "6.5.3"
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/strings": {
- "version": "5.0.8",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/base-x": {
+ "version": "3.0.8",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/constants": "^5.0.8",
- "@ethersproject/logger": "^5.0.8"
+ "safe-buffer": "^5.0.1"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/transactions": {
- "version": "5.0.9",
- "funding": [
- {
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
- },
- {
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
- }
- ],
+ "node_modules/ganache-core/node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@ethersproject/address": "^5.0.9",
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/constants": "^5.0.8",
- "@ethersproject/keccak256": "^5.0.7",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/rlp": "^5.0.7",
- "@ethersproject/signing-key": "^5.0.8"
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/@ethersproject/web": {
- "version": "5.0.12",
+ "node_modules/ganache-core/node_modules/base64-js": {
+ "version": "1.5.1",
"funding": [
{
- "type": "individual",
- "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
},
{
- "type": "individual",
- "url": "https://www.buymeacoffee.com/ricmoo"
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
}
],
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "node_modules/ganache-core/node_modules/bcrypt-pbkdf/node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "license": "Unlicense"
+ },
+ "node_modules/ganache-core/node_modules/bignumber.js": {
+ "version": "9.0.1",
"license": "MIT",
"optional": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ganache-core/node_modules/bip39": {
+ "version": "2.5.0",
+ "license": "ISC",
"dependencies": {
- "@ethersproject/base64": "^5.0.7",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/strings": "^5.0.8"
+ "create-hash": "^1.1.0",
+ "pbkdf2": "^3.0.9",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "unorm": "^1.3.3"
}
},
- "node_modules/ganache-core/node_modules/@sindresorhus/is": {
- "version": "0.14.0",
+ "node_modules/ganache-core/node_modules/blakejs": {
+ "version": "1.1.0",
+ "license": "CC0-1.0"
+ },
+ "node_modules/ganache-core/node_modules/bluebird": {
+ "version": "3.7.2",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/bn.js": {
+ "version": "4.11.9",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/body-parser": {
+ "version": "1.19.0",
"license": "MIT",
"optional": true,
+ "dependencies": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
"engines": {
- "node": ">=6"
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/@szmarczak/http-timer": {
- "version": "1.1.2",
+ "node_modules/ganache-core/node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
"license": "MIT",
"optional": true,
"dependencies": {
- "defer-to-connect": "^1.0.1"
- },
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/body-parser/node_modules/qs": {
+ "version": "6.7.0",
+ "license": "BSD-3-Clause",
+ "optional": true,
"engines": {
- "node": ">=6"
+ "node": ">=0.6"
}
},
- "node_modules/ganache-core/node_modules/@types/bn.js": {
- "version": "4.11.6",
+ "node_modules/ganache-core/node_modules/brace-expansion": {
+ "version": "1.1.11",
"license": "MIT",
"dependencies": {
- "@types/node": "*"
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/ganache-core/node_modules/@types/node": {
- "version": "14.14.20",
+ "node_modules/ganache-core/node_modules/brorand": {
+ "version": "1.1.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/@types/pbkdf2": {
- "version": "3.1.0",
+ "node_modules/ganache-core/node_modules/browserify-aes": {
+ "version": "1.2.0",
"license": "MIT",
"dependencies": {
- "@types/node": "*"
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
}
},
- "node_modules/ganache-core/node_modules/@types/secp256k1": {
- "version": "4.0.1",
+ "node_modules/ganache-core/node_modules/browserify-cipher": {
+ "version": "1.0.1",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "@types/node": "*"
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/@yarnpkg/lockfile": {
- "version": "1.1.0",
- "license": "BSD-2-Clause"
+ "node_modules/ganache-core/node_modules/browserify-des": {
+ "version": "1.0.2",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
},
- "node_modules/ganache-core/node_modules/abstract-leveldown": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/browserify-rsa": {
+ "version": "4.1.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "xtend": "~4.0.0"
- },
- "engines": {
- "node": ">=4"
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
}
},
- "node_modules/ganache-core/node_modules/accepts": {
- "version": "1.3.7",
+ "node_modules/ganache-core/node_modules/browserify-rsa/node_modules/bn.js": {
+ "version": "5.1.3",
"license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/browserify-sign": {
+ "version": "4.2.1",
+ "license": "ISC",
"optional": true,
"dependencies": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
- },
- "engines": {
- "node": ">= 0.6"
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
}
},
- "node_modules/ganache-core/node_modules/aes-js": {
- "version": "3.1.2",
+ "node_modules/ganache-core/node_modules/browserify-sign/node_modules/bn.js": {
+ "version": "5.1.3",
"license": "MIT",
"optional": true
},
- "node_modules/ganache-core/node_modules/ajv": {
- "version": "6.12.6",
+ "node_modules/ganache-core/node_modules/browserify-sign/node_modules/readable-stream": {
+ "version": "3.6.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "engines": {
+ "node": ">= 6"
}
},
- "node_modules/ganache-core/node_modules/ansi-styles": {
- "version": "3.2.1",
+ "node_modules/ganache-core/node_modules/browserslist": {
+ "version": "3.2.8",
"license": "MIT",
"dependencies": {
- "color-convert": "^1.9.0"
+ "caniuse-lite": "^1.0.30000844",
+ "electron-to-chromium": "^1.3.47"
},
- "engines": {
- "node": ">=4"
+ "bin": {
+ "browserslist": "cli.js"
}
},
- "node_modules/ganache-core/node_modules/arr-diff": {
- "version": "4.0.0",
+ "node_modules/ganache-core/node_modules/bs58": {
+ "version": "4.0.1",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "base-x": "^3.0.2"
}
},
- "node_modules/ganache-core/node_modules/arr-flatten": {
- "version": "1.1.0",
+ "node_modules/ganache-core/node_modules/bs58check": {
+ "version": "2.1.2",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
}
},
- "node_modules/ganache-core/node_modules/arr-union": {
- "version": "3.1.0",
+ "node_modules/ganache-core/node_modules/buffer": {
+ "version": "5.7.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
}
},
- "node_modules/ganache-core/node_modules/array-flatten": {
+ "node_modules/ganache-core/node_modules/buffer-from": {
"version": "1.1.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/buffer-to-arraybuffer": {
+ "version": "0.0.5",
"license": "MIT",
"optional": true
},
- "node_modules/ganache-core/node_modules/array-unique": {
- "version": "0.3.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/ganache-core/node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/asn1": {
- "version": "0.2.4",
+ "node_modules/ganache-core/node_modules/bufferutil": {
+ "version": "4.0.3",
+ "hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "safer-buffer": "~2.1.0"
+ "node-gyp-build": "^4.2.0"
}
},
- "node_modules/ganache-core/node_modules/asn1.js": {
- "version": "5.4.1",
+ "node_modules/ganache-core/node_modules/bytes": {
+ "version": "3.1.0",
"license": "MIT",
"optional": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/ganache-core/node_modules/assert-plus": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/ganache-core/node_modules/assign-symbols": {
- "version": "1.0.0",
- "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/async": {
- "version": "2.6.2",
+ "node_modules/ganache-core/node_modules/bytewise": {
+ "version": "1.1.0",
"license": "MIT",
"dependencies": {
- "lodash": "^4.17.11"
+ "bytewise-core": "^1.2.2",
+ "typewise": "^1.0.3"
}
},
- "node_modules/ganache-core/node_modules/async-eventemitter": {
- "version": "0.2.4",
+ "node_modules/ganache-core/node_modules/bytewise-core": {
+ "version": "1.2.3",
"license": "MIT",
"dependencies": {
- "async": "^2.4.0"
+ "typewise-core": "^1.2"
}
},
- "node_modules/ganache-core/node_modules/async-limiter": {
+ "node_modules/ganache-core/node_modules/cache-base": {
"version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/asynckit": {
- "version": "0.4.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/atob": {
- "version": "2.1.2",
- "license": "(MIT OR Apache-2.0)",
- "bin": {
- "atob": "bin/atob.js"
+ "license": "MIT",
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
},
"engines": {
- "node": ">= 4.5.0"
- }
- },
- "node_modules/ganache-core/node_modules/aws-sign2": {
- "version": "0.7.0",
- "license": "Apache-2.0",
- "engines": {
- "node": "*"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/aws4": {
- "version": "1.11.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/babel-code-frame": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/cacheable-request": {
+ "version": "6.1.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-regex": {
- "version": "2.1.1",
+ "node_modules/ganache-core/node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "2.0.0",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/ansi-styles": {
- "version": "2.2.1",
+ "node_modules/ganache-core/node_modules/cachedown": {
+ "version": "1.0.0",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "abstract-leveldown": "^2.4.1",
+ "lru-cache": "^3.2.0"
}
},
- "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/chalk": {
- "version": "1.1.3",
+ "node_modules/ganache-core/node_modules/cachedown/node_modules/abstract-leveldown": {
+ "version": "2.7.2",
"license": "MIT",
"dependencies": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/js-tokens": {
- "version": "3.0.2",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/cachedown/node_modules/lru-cache": {
+ "version": "3.2.0",
+ "license": "ISC",
+ "dependencies": {
+ "pseudomap": "^1.0.1"
+ }
},
- "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/strip-ansi": {
- "version": "3.0.1",
+ "node_modules/ganache-core/node_modules/call-bind": {
+ "version": "1.0.2",
"license": "MIT",
"dependencies": {
- "ansi-regex": "^2.0.0"
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
},
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/babel-code-frame/node_modules/supports-color": {
- "version": "2.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
+ "node_modules/ganache-core/node_modules/caniuse-lite": {
+ "version": "1.0.30001174",
+ "license": "CC-BY-4.0"
},
- "node_modules/ganache-core/node_modules/babel-core": {
- "version": "6.26.3",
+ "node_modules/ganache-core/node_modules/caseless": {
+ "version": "0.12.0",
+ "license": "Apache-2.0"
+ },
+ "node_modules/ganache-core/node_modules/chalk": {
+ "version": "2.4.2",
"license": "MIT",
"dependencies": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/babel-core/node_modules/debug": {
- "version": "2.6.9",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/checkpoint-store": {
+ "version": "1.1.0",
+ "license": "ISC",
"dependencies": {
- "ms": "2.0.0"
+ "functional-red-black-tree": "^1.0.1"
}
},
- "node_modules/ganache-core/node_modules/babel-core/node_modules/json5": {
- "version": "0.5.1",
- "license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- }
+ "node_modules/ganache-core/node_modules/chownr": {
+ "version": "1.1.4",
+ "license": "ISC",
+ "optional": true
},
- "node_modules/ganache-core/node_modules/babel-core/node_modules/ms": {
+ "node_modules/ganache-core/node_modules/ci-info": {
"version": "2.0.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/babel-core/node_modules/slash": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/cids": {
+ "version": "0.7.5",
"license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "class-is": "^1.1.0",
+ "multibase": "~0.6.0",
+ "multicodec": "^1.0.0",
+ "multihashes": "~0.4.15"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.0.0",
+ "npm": ">=3.0.0"
}
},
- "node_modules/ganache-core/node_modules/babel-generator": {
- "version": "6.26.1",
+ "node_modules/ganache-core/node_modules/cids/node_modules/multicodec": {
+ "version": "1.0.4",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
+ "buffer": "^5.6.0",
+ "varint": "^5.0.0"
}
},
- "node_modules/ganache-core/node_modules/babel-generator/node_modules/jsesc": {
- "version": "1.3.0",
+ "node_modules/ganache-core/node_modules/cipher-base": {
+ "version": "1.0.4",
"license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-builder-binary-assignment-operator-visitor": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/class-is": {
+ "version": "1.1.0",
"license": "MIT",
- "dependencies": {
- "babel-helper-explode-assignable-expression": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/babel-helper-call-delegate": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/class-utils": {
+ "version": "0.3.6",
"license": "MIT",
"dependencies": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-define-map": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
"license": "MIT",
"dependencies": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-explode-assignable-expression": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-function-name": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-get-function-arity": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/is-buffer": {
+ "version": "1.1.6",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-hoist-variables": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-optimise-call-expression": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/is-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-regex": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/class-utils/node_modules/kind-of": {
+ "version": "5.1.0",
"license": "MIT",
- "dependencies": {
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/clone": {
+ "version": "2.1.2",
"license": "MIT",
- "dependencies": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "engines": {
+ "node": ">=0.8"
}
},
- "node_modules/ganache-core/node_modules/babel-helper-replace-supers": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/clone-response": {
+ "version": "1.0.2",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "mimic-response": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/babel-helpers": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/collection-visit": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-messages": {
- "version": "6.23.0",
+ "node_modules/ganache-core/node_modules/color-convert": {
+ "version": "1.9.3",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0"
+ "color-name": "1.1.3"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-check-es2015-constants": {
- "version": "6.22.0",
+ "node_modules/ganache-core/node_modules/color-name": {
+ "version": "1.1.3",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/combined-stream": {
+ "version": "1.0.8",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0"
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-syntax-async-functions": {
- "version": "6.13.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/babel-plugin-syntax-exponentiation-operator": {
- "version": "6.13.0",
+ "node_modules/ganache-core/node_modules/component-emitter": {
+ "version": "1.3.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/babel-plugin-syntax-trailing-function-commas": {
- "version": "6.22.0",
+ "node_modules/ganache-core/node_modules/concat-map": {
+ "version": "0.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-async-to-generator": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/concat-stream": {
+ "version": "1.6.2",
+ "engines": [
+ "node >= 0.8"
+ ],
"license": "MIT",
"dependencies": {
- "babel-helper-remap-async-to-generator": "^6.24.1",
- "babel-plugin-syntax-async-functions": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-arrow-functions": {
- "version": "6.22.0",
+ "node_modules/ganache-core/node_modules/content-disposition": {
+ "version": "0.5.3",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-runtime": "^6.22.0"
+ "safe-buffer": "5.1.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoped-functions": {
- "version": "6.22.0",
+ "node_modules/ganache-core/node_modules/content-disposition/node_modules/safe-buffer": {
+ "version": "5.1.2",
"license": "MIT",
- "dependencies": {
- "babel-runtime": "^6.22.0"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-block-scoping": {
- "version": "6.26.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/content-hash": {
+ "version": "2.5.2",
+ "license": "ISC",
+ "optional": true,
"dependencies": {
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "cids": "^0.7.1",
+ "multicodec": "^0.5.5",
+ "multihashes": "^0.4.15"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-classes": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/content-type": {
+ "version": "1.0.4",
"license": "MIT",
- "dependencies": {
- "babel-helper-define-map": "^6.24.1",
- "babel-helper-function-name": "^6.24.1",
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-helper-replace-supers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-computed-properties": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/convert-source-map": {
+ "version": "1.7.0",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "safe-buffer": "~5.1.1"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-destructuring": {
- "version": "6.23.0",
- "license": "MIT",
- "dependencies": {
- "babel-runtime": "^6.22.0"
- }
+ "node_modules/ganache-core/node_modules/convert-source-map/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-duplicate-keys": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/cookie": {
+ "version": "0.4.0",
"license": "MIT",
- "dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-for-of": {
- "version": "6.23.0",
+ "node_modules/ganache-core/node_modules/cookie-signature": {
+ "version": "1.0.6",
"license": "MIT",
- "dependencies": {
- "babel-runtime": "^6.22.0"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-function-name": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/cookiejar": {
+ "version": "2.1.2",
"license": "MIT",
- "dependencies": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-literals": {
- "version": "6.22.0",
+ "node_modules/ganache-core/node_modules/core-js": {
+ "version": "2.6.12",
+ "hasInstallScript": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/core-js-pure": {
+ "version": "3.8.2",
+ "hasInstallScript": true,
"license": "MIT",
- "dependencies": {
- "babel-runtime": "^6.22.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-amd": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/core-util-is": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/cors": {
+ "version": "2.8.5",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.2",
+ "node_modules/ganache-core/node_modules/create-ecdh": {
+ "version": "4.0.4",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-plugin-transform-strict-mode": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-types": "^6.26.0"
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-systemjs": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/create-hash": {
+ "version": "1.2.0",
"license": "MIT",
"dependencies": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-modules-umd": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/create-hmac": {
+ "version": "1.1.7",
"license": "MIT",
"dependencies": {
- "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-object-super": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/cross-fetch": {
+ "version": "2.2.3",
"license": "MIT",
"dependencies": {
- "babel-helper-replace-supers": "^6.24.1",
- "babel-runtime": "^6.22.0"
+ "node-fetch": "2.1.2",
+ "whatwg-fetch": "2.0.4"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-parameters": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/crypto-browserify": {
+ "version": "3.12.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-helper-call-delegate": "^6.24.1",
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ },
+ "engines": {
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-shorthand-properties": {
- "version": "6.24.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/d": {
+ "version": "1.0.1",
+ "license": "ISC",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-spread": {
- "version": "6.22.0",
+ "node_modules/ganache-core/node_modules/dashdash": {
+ "version": "1.14.1",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0"
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-sticky-regex": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/debug": {
+ "version": "3.2.6",
"license": "MIT",
"dependencies": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "ms": "^2.1.1"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-template-literals": {
- "version": "6.22.0",
+ "node_modules/ganache-core/node_modules/decode-uri-component": {
+ "version": "0.2.0",
"license": "MIT",
- "dependencies": {
- "babel-runtime": "^6.22.0"
+ "engines": {
+ "node": ">=0.10"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-typeof-symbol": {
- "version": "6.23.0",
+ "node_modules/ganache-core/node_modules/decompress-response": {
+ "version": "3.3.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-runtime": "^6.22.0"
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-es2015-unicode-regex": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/deep-equal": {
+ "version": "1.1.1",
"license": "MIT",
"dependencies": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "regexpu-core": "^2.0.0"
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-exponentiation-operator": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/defer-to-connect": {
+ "version": "1.1.3",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/deferred-leveldown": {
+ "version": "4.0.2",
"license": "MIT",
"dependencies": {
- "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "abstract-leveldown": "~5.0.0",
+ "inherits": "^2.0.3"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-regenerator": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/deferred-leveldown/node_modules/abstract-leveldown": {
+ "version": "5.0.0",
"license": "MIT",
"dependencies": {
- "regenerator-transform": "^0.10.0"
+ "xtend": "~4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/babel-plugin-transform-strict-mode": {
- "version": "6.24.1",
+ "node_modules/ganache-core/node_modules/define-properties": {
+ "version": "1.1.3",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "object-keys": "^1.0.12"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/ganache-core/node_modules/babel-preset-env": {
- "version": "1.7.0",
+ "node_modules/ganache-core/node_modules/define-property": {
+ "version": "2.0.2",
"license": "MIT",
"dependencies": {
- "babel-plugin-check-es2015-constants": "^6.22.0",
- "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
- "babel-plugin-transform-async-to-generator": "^6.22.0",
- "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
- "babel-plugin-transform-es2015-classes": "^6.23.0",
- "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
- "babel-plugin-transform-es2015-destructuring": "^6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
- "babel-plugin-transform-es2015-for-of": "^6.23.0",
- "babel-plugin-transform-es2015-function-name": "^6.22.0",
- "babel-plugin-transform-es2015-literals": "^6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
- "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
- "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
- "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
- "babel-plugin-transform-es2015-object-super": "^6.22.0",
- "babel-plugin-transform-es2015-parameters": "^6.23.0",
- "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
- "babel-plugin-transform-es2015-spread": "^6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
- "babel-plugin-transform-es2015-template-literals": "^6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
- "babel-plugin-transform-exponentiation-operator": "^6.22.0",
- "babel-plugin-transform-regenerator": "^6.22.0",
- "browserslist": "^3.2.6",
- "invariant": "^2.2.2",
- "semver": "^5.3.0"
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-preset-env/node_modules/semver": {
- "version": "5.7.1",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver"
+ "node_modules/ganache-core/node_modules/defined": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
}
},
- "node_modules/ganache-core/node_modules/babel-register": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/depd": {
+ "version": "1.1.2",
"license": "MIT",
- "dependencies": {
- "babel-core": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "home-or-tmp": "^2.0.0",
- "lodash": "^4.17.4",
- "mkdirp": "^0.5.1",
- "source-map-support": "^0.4.15"
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/babel-register/node_modules/source-map-support": {
- "version": "0.4.18",
+ "node_modules/ganache-core/node_modules/des.js": {
+ "version": "1.0.1",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "source-map": "^0.5.6"
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/babel-runtime": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/destroy": {
+ "version": "1.0.4",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/detect-indent": {
+ "version": "4.0.0",
"license": "MIT",
"dependencies": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "repeating": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/babel-template": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/diffie-hellman": {
+ "version": "5.0.3",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
}
},
- "node_modules/ganache-core/node_modules/babel-traverse": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/dom-walk": {
+ "version": "0.1.2"
+ },
+ "node_modules/ganache-core/node_modules/dotignore": {
+ "version": "0.1.2",
"license": "MIT",
"dependencies": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
+ "minimatch": "^3.0.4"
+ },
+ "bin": {
+ "ignored": "bin/ignored"
}
},
- "node_modules/ganache-core/node_modules/babel-traverse/node_modules/debug": {
- "version": "2.6.9",
+ "node_modules/ganache-core/node_modules/duplexer3": {
+ "version": "0.1.4",
+ "license": "BSD-3-Clause",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/ecc-jsbn": {
+ "version": "0.1.2",
"license": "MIT",
"dependencies": {
- "ms": "2.0.0"
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
}
},
- "node_modules/ganache-core/node_modules/babel-traverse/node_modules/globals": {
- "version": "9.18.0",
+ "node_modules/ganache-core/node_modules/ee-first": {
+ "version": "1.1.1",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/babel-traverse/node_modules/ms": {
- "version": "2.0.0",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/electron-to-chromium": {
+ "version": "1.3.636",
+ "license": "ISC"
},
- "node_modules/ganache-core/node_modules/babel-types": {
- "version": "6.26.0",
+ "node_modules/ganache-core/node_modules/elliptic": {
+ "version": "6.5.3",
"license": "MIT",
"dependencies": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/babel-types/node_modules/to-fast-properties": {
- "version": "1.0.3",
+ "node_modules/ganache-core/node_modules/encodeurl": {
+ "version": "1.0.2",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/babelify": {
- "version": "7.3.0",
+ "node_modules/ganache-core/node_modules/encoding": {
+ "version": "0.1.13",
"license": "MIT",
"dependencies": {
- "babel-core": "^6.0.14",
- "object-assign": "^4.0.0"
+ "iconv-lite": "^0.6.2"
}
},
- "node_modules/ganache-core/node_modules/babylon": {
- "version": "6.18.0",
+ "node_modules/ganache-core/node_modules/encoding-down": {
+ "version": "5.0.4",
"license": "MIT",
- "bin": {
- "babylon": "bin/babylon.js"
+ "dependencies": {
+ "abstract-leveldown": "^5.0.0",
+ "inherits": "^2.0.3",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0",
+ "xtend": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/backoff": {
- "version": "2.5.0",
+ "node_modules/ganache-core/node_modules/encoding-down/node_modules/abstract-leveldown": {
+ "version": "5.0.0",
"license": "MIT",
"dependencies": {
- "precond": "0.2"
+ "xtend": "~4.0.0"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/balanced-match": {
- "version": "1.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/base": {
- "version": "0.11.2",
+ "node_modules/ganache-core/node_modules/encoding/node_modules/iconv-lite": {
+ "version": "0.6.2",
"license": "MIT",
"dependencies": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/base-x": {
- "version": "3.0.8",
+ "node_modules/ganache-core/node_modules/end-of-stream": {
+ "version": "1.4.4",
"license": "MIT",
"dependencies": {
- "safe-buffer": "^5.0.1"
+ "once": "^1.4.0"
}
},
- "node_modules/ganache-core/node_modules/base/node_modules/define-property": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/errno": {
+ "version": "0.1.8",
"license": "MIT",
"dependencies": {
- "is-descriptor": "^1.0.0"
+ "prr": "~1.0.1"
},
- "engines": {
- "node": ">=0.10.0"
+ "bin": {
+ "errno": "cli.js"
}
},
- "node_modules/ganache-core/node_modules/base64-js": {
- "version": "1.5.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/bcrypt-pbkdf": {
- "version": "1.0.2",
- "license": "BSD-3-Clause",
+ "node_modules/ganache-core/node_modules/es-abstract": {
+ "version": "1.18.0-next.1",
+ "license": "MIT",
"dependencies": {
- "tweetnacl": "^0.14.3"
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-negative-zero": "^2.0.0",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/bcrypt-pbkdf/node_modules/tweetnacl": {
- "version": "0.14.5",
- "license": "Unlicense"
- },
- "node_modules/ganache-core/node_modules/bignumber.js": {
- "version": "9.0.1",
+ "node_modules/ganache-core/node_modules/es-to-primitive": {
+ "version": "1.2.1",
"license": "MIT",
- "optional": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
"engines": {
- "node": "*"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/bip39": {
- "version": "2.5.0",
+ "node_modules/ganache-core/node_modules/es5-ext": {
+ "version": "0.10.53",
"license": "ISC",
"dependencies": {
- "create-hash": "^1.1.0",
- "pbkdf2": "^3.0.9",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "unorm": "^1.3.3"
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
}
},
- "node_modules/ganache-core/node_modules/blakejs": {
- "version": "1.1.0",
- "license": "CC0-1.0"
- },
- "node_modules/ganache-core/node_modules/bluebird": {
- "version": "3.7.2",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/bn.js": {
- "version": "4.11.9",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/body-parser": {
- "version": "1.19.0",
+ "node_modules/ganache-core/node_modules/es6-iterator": {
+ "version": "2.0.3",
"license": "MIT",
- "optional": true,
"dependencies": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
- },
- "engines": {
- "node": ">= 0.8"
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
}
},
- "node_modules/ganache-core/node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "license": "MIT",
- "optional": true,
+ "node_modules/ganache-core/node_modules/es6-symbol": {
+ "version": "3.1.3",
+ "license": "ISC",
"dependencies": {
- "ms": "2.0.0"
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
}
},
- "node_modules/ganache-core/node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/escape-html": {
+ "version": "1.0.3",
"license": "MIT",
"optional": true
},
- "node_modules/ganache-core/node_modules/body-parser/node_modules/qs": {
- "version": "6.7.0",
- "license": "BSD-3-Clause",
- "optional": true,
+ "node_modules/ganache-core/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "license": "MIT",
"engines": {
- "node": ">=0.6"
+ "node": ">=0.8.0"
}
},
- "node_modules/ganache-core/node_modules/brace-expansion": {
- "version": "1.1.11",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "node_modules/ganache-core/node_modules/esutils": {
+ "version": "2.0.3",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/brorand": {
- "version": "1.1.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/browserify-aes": {
- "version": "1.2.0",
+ "node_modules/ganache-core/node_modules/etag": {
+ "version": "1.8.1",
"license": "MIT",
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/browserify-cipher": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/eth-block-tracker": {
+ "version": "3.0.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
+ "eth-query": "^2.1.0",
+ "ethereumjs-tx": "^1.3.3",
+ "ethereumjs-util": "^5.1.3",
+ "ethjs-util": "^0.1.3",
+ "json-rpc-engine": "^3.6.0",
+ "pify": "^2.3.0",
+ "tape": "^4.6.3"
}
},
- "node_modules/ganache-core/node_modules/browserify-des": {
- "version": "1.0.2",
- "license": "MIT",
- "optional": true,
+ "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-tx": {
+ "version": "1.3.7",
+ "license": "MPL-2.0",
"dependencies": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
}
},
- "node_modules/ganache-core/node_modules/browserify-rsa": {
- "version": "4.1.0",
- "license": "MIT",
- "optional": true,
+ "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "bn.js": "^5.0.0",
- "randombytes": "^2.0.1"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/browserify-rsa/node_modules/bn.js": {
- "version": "5.1.3",
+ "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/pify": {
+ "version": "2.3.0",
"license": "MIT",
- "optional": true
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/browserify-sign": {
- "version": "4.2.1",
+ "node_modules/ganache-core/node_modules/eth-ens-namehash": {
+ "version": "2.0.8",
"license": "ISC",
"optional": true,
"dependencies": {
- "bn.js": "^5.1.1",
- "browserify-rsa": "^4.0.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.5.3",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.5",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
+ "idna-uts46-hx": "^2.3.1",
+ "js-sha3": "^0.5.7"
}
},
- "node_modules/ganache-core/node_modules/browserify-sign/node_modules/bn.js": {
- "version": "5.1.3",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/eth-json-rpc-infura": {
+ "version": "3.2.1",
+ "license": "ISC",
+ "dependencies": {
+ "cross-fetch": "^2.1.1",
+ "eth-json-rpc-middleware": "^1.5.0",
+ "json-rpc-engine": "^3.4.0",
+ "json-rpc-error": "^2.0.0"
+ }
},
- "node_modules/ganache-core/node_modules/browserify-sign/node_modules/readable-stream": {
- "version": "3.6.0",
- "license": "MIT",
- "optional": true,
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware": {
+ "version": "1.6.0",
+ "license": "ISC",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "async": "^2.5.0",
+ "eth-query": "^2.1.2",
+ "eth-tx-summary": "^3.1.2",
+ "ethereumjs-block": "^1.6.0",
+ "ethereumjs-tx": "^1.3.3",
+ "ethereumjs-util": "^5.1.2",
+ "ethereumjs-vm": "^2.1.0",
+ "fetch-ponyfill": "^4.0.0",
+ "json-rpc-engine": "^3.6.0",
+ "json-rpc-error": "^2.0.0",
+ "json-stable-stringify": "^1.0.1",
+ "promise-to-callback": "^1.0.0",
+ "tape": "^4.6.3"
}
},
- "node_modules/ganache-core/node_modules/browserslist": {
- "version": "3.2.8",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/abstract-leveldown": {
+ "version": "2.6.3",
"license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30000844",
- "electron-to-chromium": "^1.3.47"
- },
- "bin": {
- "browserslist": "cli.js"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/bs58": {
- "version": "4.0.1",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/deferred-leveldown": {
+ "version": "1.2.2",
"license": "MIT",
"dependencies": {
- "base-x": "^3.0.2"
+ "abstract-leveldown": "~2.6.0"
}
},
- "node_modules/ganache-core/node_modules/bs58check": {
- "version": "2.1.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-account": {
+ "version": "2.0.5",
+ "license": "MPL-2.0",
"dependencies": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/buffer": {
- "version": "5.7.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block": {
+ "version": "1.7.1",
+ "license": "MPL-2.0",
"dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/buffer-from": {
- "version": "1.1.1",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block/node_modules/ethereum-common": {
+ "version": "0.2.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/buffer-to-arraybuffer": {
- "version": "0.0.5",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/buffer-xor": {
- "version": "1.0.3",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-tx": {
+ "version": "1.3.7",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
+ }
},
- "node_modules/ganache-core/node_modules/bufferutil": {
- "version": "4.0.3",
- "hasInstallScript": true,
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "node-gyp-build": "^4.2.0"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/bytes": {
- "version": "3.1.0",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.8"
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm": {
+ "version": "2.6.0",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/bytewise": {
- "version": "1.1.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": {
+ "version": "2.2.2",
+ "license": "MPL-2.0",
"dependencies": {
- "bytewise-core": "^1.2.2",
- "typewise": "^1.0.3"
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/bytewise-core": {
- "version": "1.2.3",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "typewise-core": "^1.2"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/cache-base": {
- "version": "1.0.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": {
+ "version": "2.1.2",
+ "license": "MPL-2.0",
"dependencies": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
}
},
- "node_modules/ganache-core/node_modules/cacheable-request": {
- "version": "6.1.0",
- "license": "MIT",
- "optional": true,
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^3.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^1.0.2"
- },
- "engines": {
- "node": ">=8"
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/ganache-core/node_modules/cacheable-request/node_modules/lowercase-keys": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/isarray": {
+ "version": "0.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-codec": {
+ "version": "7.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-errors": {
+ "version": "1.0.5",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "errno": "~0.1.1"
}
},
- "node_modules/ganache-core/node_modules/cachedown": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream": {
+ "version": "1.3.1",
"license": "MIT",
"dependencies": {
- "abstract-leveldown": "^2.4.1",
- "lru-cache": "^3.2.0"
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/cachedown/node_modules/abstract-leveldown": {
- "version": "2.7.2",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream/node_modules/readable-stream": {
+ "version": "1.1.14",
"license": "MIT",
"dependencies": {
- "xtend": "~4.0.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/cachedown/node_modules/lru-cache": {
- "version": "3.2.0",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws": {
+ "version": "0.0.0",
+ "license": "MIT",
"dependencies": {
- "pseudomap": "^1.0.1"
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
}
},
- "node_modules/ganache-core/node_modules/call-bind": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/readable-stream": {
+ "version": "1.0.34",
"license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/caniuse-lite": {
- "version": "1.0.30001174",
- "license": "CC-BY-4.0"
- },
- "node_modules/ganache-core/node_modules/caseless": {
- "version": "0.12.0",
- "license": "Apache-2.0"
- },
- "node_modules/ganache-core/node_modules/chalk": {
- "version": "2.4.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/xtend": {
+ "version": "2.1.2",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "object-keys": "~0.4.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.4"
}
},
- "node_modules/ganache-core/node_modules/checkpoint-store": {
- "version": "1.1.0",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/levelup": {
+ "version": "1.3.9",
+ "license": "MIT",
"dependencies": {
- "functional-red-black-tree": "^1.0.1"
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/chownr": {
- "version": "1.1.4",
- "license": "ISC",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/ci-info": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ltgt": {
+ "version": "2.2.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/cids": {
- "version": "0.7.5",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown": {
+ "version": "1.4.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "buffer": "^5.5.0",
- "class-is": "^1.1.0",
- "multibase": "~0.6.0",
- "multicodec": "^1.0.0",
- "multihashes": "~0.4.15"
- },
- "engines": {
- "node": ">=4.0.0",
- "npm": ">=3.0.0"
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
}
},
- "node_modules/ganache-core/node_modules/cids/node_modules/multicodec": {
- "version": "1.0.4",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown/node_modules/abstract-leveldown": {
+ "version": "2.7.2",
"license": "MIT",
- "optional": true,
"dependencies": {
- "buffer": "^5.6.0",
- "varint": "^5.0.0"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/cipher-base": {
- "version": "1.0.4",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree": {
+ "version": "2.3.2",
+ "license": "MPL-2.0",
"dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
}
},
- "node_modules/ganache-core/node_modules/class-is": {
- "version": "1.1.0",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree/node_modules/async": {
+ "version": "1.5.2",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/class-utils": {
- "version": "0.3.6",
- "license": "MIT",
- "dependencies": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/object-keys": {
+ "version": "0.4.0",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/class-utils/node_modules/define-property": {
- "version": "0.2.5",
- "license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/semver": {
+ "version": "5.4.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
}
},
- "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/eth-lib": {
+ "version": "0.1.29",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "nano-json-stream-parser": "^0.1.2",
+ "servify": "^0.1.12",
+ "ws": "^3.0.0",
+ "xhr-request-promise": "^0.1.2"
}
},
- "node_modules/ganache-core/node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-query": {
+ "version": "2.1.2",
+ "license": "ISC",
"dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
+ "json-rpc-random-id": "^1.0.0",
+ "xtend": "^4.0.1"
}
},
- "node_modules/ganache-core/node_modules/class-utils/node_modules/is-buffer": {
- "version": "1.1.6",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-sig-util": {
+ "version": "3.0.0",
+ "license": "ISC",
"dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "buffer": "^5.2.1",
+ "elliptic": "^6.4.0",
+ "ethereumjs-abi": "0.6.5",
+ "ethereumjs-util": "^5.1.1",
+ "tweetnacl": "^1.0.0",
+ "tweetnacl-util": "^0.15.0"
}
},
- "node_modules/ganache-core/node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi": {
+ "version": "0.6.5",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
+ "bn.js": "^4.10.0",
+ "ethereumjs-util": "^4.3.0"
}
},
- "node_modules/ganache-core/node_modules/class-utils/node_modules/is-descriptor": {
- "version": "0.1.6",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": {
+ "version": "4.5.1",
+ "license": "MPL-2.0",
"dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "bn.js": "^4.8.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.0.0"
}
},
- "node_modules/ganache-core/node_modules/class-utils/node_modules/kind-of": {
- "version": "5.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/clone": {
- "version": "2.1.2",
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
+ "node_modules/ganache-core/node_modules/eth-tx-summary": {
+ "version": "3.2.4",
+ "license": "ISC",
+ "dependencies": {
+ "async": "^2.1.2",
+ "clone": "^2.0.0",
+ "concat-stream": "^1.5.1",
+ "end-of-stream": "^1.1.0",
+ "eth-query": "^2.0.2",
+ "ethereumjs-block": "^1.4.1",
+ "ethereumjs-tx": "^1.1.1",
+ "ethereumjs-util": "^5.0.1",
+ "ethereumjs-vm": "^2.6.0",
+ "through2": "^2.0.3"
}
},
- "node_modules/ganache-core/node_modules/clone-response": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/abstract-leveldown": {
+ "version": "2.6.3",
"license": "MIT",
- "optional": true,
"dependencies": {
- "mimic-response": "^1.0.0"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/collection-visit": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/deferred-leveldown": {
+ "version": "1.2.2",
"license": "MIT",
"dependencies": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "abstract-leveldown": "~2.6.0"
}
},
- "node_modules/ganache-core/node_modules/color-convert": {
- "version": "1.9.3",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-account": {
+ "version": "2.0.5",
+ "license": "MPL-2.0",
"dependencies": {
- "color-name": "1.1.3"
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/color-name": {
- "version": "1.1.3",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/combined-stream": {
- "version": "1.0.8",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block": {
+ "version": "1.7.1",
+ "license": "MPL-2.0",
"dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/component-emitter": {
- "version": "1.3.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/concat-map": {
- "version": "0.0.1",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block/node_modules/ethereum-common": {
+ "version": "0.2.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/concat-stream": {
- "version": "1.6.2",
- "engines": [
- "node >= 0.8"
- ],
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-tx": {
+ "version": "1.3.7",
+ "license": "MPL-2.0",
"dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
}
},
- "node_modules/ganache-core/node_modules/content-disposition": {
- "version": "0.5.3",
- "license": "MIT",
- "optional": true,
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "safe-buffer": "5.1.2"
- },
- "engines": {
- "node": ">= 0.6"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/content-disposition/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/content-hash": {
- "version": "2.5.2",
- "license": "ISC",
- "optional": true,
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm": {
+ "version": "2.6.0",
+ "license": "MPL-2.0",
"dependencies": {
- "cids": "^0.7.1",
- "multicodec": "^0.5.5",
- "multihashes": "^0.4.15"
- }
- },
- "node_modules/ganache-core/node_modules/content-type": {
- "version": "1.0.4",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.6"
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/convert-source-map": {
- "version": "1.7.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": {
+ "version": "2.2.2",
+ "license": "MPL-2.0",
"dependencies": {
- "safe-buffer": "~5.1.1"
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/convert-source-map/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/cookie": {
- "version": "0.4.0",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.6"
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/cookie-signature": {
- "version": "1.0.6",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/cookiejar": {
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": {
"version": "2.1.2",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/copy-descriptor": {
- "version": "0.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "license": "MPL-2.0",
+ "dependencies": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
}
},
- "node_modules/ganache-core/node_modules/core-js": {
- "version": "2.6.12",
- "hasInstallScript": true,
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/core-js-pure": {
- "version": "3.8.2",
- "hasInstallScript": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/ganache-core/node_modules/core-util-is": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/isarray": {
+ "version": "0.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/cors": {
- "version": "2.8.5",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-codec": {
+ "version": "7.0.1",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/create-ecdh": {
- "version": "4.0.4",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-errors": {
+ "version": "1.0.5",
"license": "MIT",
- "optional": true,
"dependencies": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
+ "errno": "~0.1.1"
}
},
- "node_modules/ganache-core/node_modules/create-hash": {
- "version": "1.2.0",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream": {
+ "version": "1.3.1",
"license": "MIT",
"dependencies": {
- "cipher-base": "^1.0.1",
"inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/create-hmac": {
- "version": "1.1.7",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream/node_modules/readable-stream": {
+ "version": "1.1.14",
"license": "MIT",
"dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/cross-fetch": {
- "version": "2.2.3",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws": {
+ "version": "0.0.0",
"license": "MIT",
"dependencies": {
- "node-fetch": "2.1.2",
- "whatwg-fetch": "2.0.4"
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
}
},
- "node_modules/ganache-core/node_modules/crypto-browserify": {
- "version": "3.12.0",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/readable-stream": {
+ "version": "1.0.34",
"license": "MIT",
- "optional": true,
- "dependencies": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/ganache-core/node_modules/d": {
- "version": "1.0.1",
- "license": "ISC",
"dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/dashdash": {
- "version": "1.14.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/xtend": {
+ "version": "2.1.2",
"dependencies": {
- "assert-plus": "^1.0.0"
+ "object-keys": "~0.4.0"
},
"engines": {
- "node": ">=0.10"
+ "node": ">=0.4"
}
},
- "node_modules/ganache-core/node_modules/debug": {
- "version": "3.2.6",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/levelup": {
+ "version": "1.3.9",
"license": "MIT",
"dependencies": {
- "ms": "^2.1.1"
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/decode-uri-component": {
- "version": "0.2.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ltgt": {
+ "version": "2.2.1",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/decompress-response": {
- "version": "3.3.0",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown": {
+ "version": "1.4.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "mimic-response": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
}
},
- "node_modules/ganache-core/node_modules/deep-equal": {
- "version": "1.1.1",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown/node_modules/abstract-leveldown": {
+ "version": "2.7.2",
"license": "MIT",
"dependencies": {
- "is-arguments": "^1.0.4",
- "is-date-object": "^1.0.1",
- "is-regex": "^1.0.4",
- "object-is": "^1.0.1",
- "object-keys": "^1.1.1",
- "regexp.prototype.flags": "^1.2.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/defer-to-connect": {
- "version": "1.1.3",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/deferred-leveldown": {
- "version": "4.0.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree": {
+ "version": "2.3.2",
+ "license": "MPL-2.0",
"dependencies": {
- "abstract-leveldown": "~5.0.0",
- "inherits": "^2.0.3"
- },
- "engines": {
- "node": ">=6"
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
}
},
- "node_modules/ganache-core/node_modules/deferred-leveldown/node_modules/abstract-leveldown": {
- "version": "5.0.0",
- "license": "MIT",
- "dependencies": {
- "xtend": "~4.0.0"
- },
- "engines": {
- "node": ">=6"
- }
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree/node_modules/async": {
+ "version": "1.5.2",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/define-properties": {
- "version": "1.1.3",
- "license": "MIT",
- "dependencies": {
- "object-keys": "^1.0.12"
- },
- "engines": {
- "node": ">= 0.4"
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/object-keys": {
+ "version": "0.4.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/semver": {
+ "version": "5.4.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
}
},
- "node_modules/ganache-core/node_modules/define-property": {
- "version": "2.0.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ethashjs": {
+ "version": "0.0.8",
+ "license": "MPL-2.0",
"dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "async": "^2.1.2",
+ "buffer-xor": "^2.0.1",
+ "ethereumjs-util": "^7.0.2",
+ "miller-rabin": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/defined": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/ethashjs/node_modules/bn.js": {
+ "version": "5.1.3",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/delayed-stream": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/ethashjs/node_modules/buffer-xor": {
+ "version": "2.0.2",
"license": "MIT",
- "engines": {
- "node": ">=0.4.0"
+ "dependencies": {
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/depd": {
- "version": "1.1.2",
- "license": "MIT",
- "optional": true,
+ "node_modules/ganache-core/node_modules/ethashjs/node_modules/ethereumjs-util": {
+ "version": "7.0.7",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.4"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=10.0.0"
}
},
- "node_modules/ganache-core/node_modules/des.js": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/ethereum-bloom-filters": {
+ "version": "1.0.7",
"license": "MIT",
"optional": true,
"dependencies": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
+ "js-sha3": "^0.8.0"
}
},
- "node_modules/ganache-core/node_modules/destroy": {
- "version": "1.0.4",
+ "node_modules/ganache-core/node_modules/ethereum-bloom-filters/node_modules/js-sha3": {
+ "version": "0.8.0",
"license": "MIT",
"optional": true
},
- "node_modules/ganache-core/node_modules/detect-indent": {
- "version": "4.0.0",
+ "node_modules/ganache-core/node_modules/ethereum-common": {
+ "version": "0.0.18",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ethereum-cryptography": {
+ "version": "0.1.3",
"license": "MIT",
"dependencies": {
- "repeating": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
}
},
- "node_modules/ganache-core/node_modules/diffie-hellman": {
- "version": "5.0.3",
+ "node_modules/ganache-core/node_modules/ethereumjs-abi": {
+ "version": "0.6.8",
"license": "MIT",
- "optional": true,
"dependencies": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
+ "bn.js": "^4.11.8",
+ "ethereumjs-util": "^6.0.0"
}
},
- "node_modules/ganache-core/node_modules/dom-walk": {
- "version": "0.1.2"
- },
- "node_modules/ganache-core/node_modules/dotignore": {
- "version": "0.1.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/ethereumjs-account": {
+ "version": "3.0.0",
+ "license": "MPL-2.0",
"dependencies": {
- "minimatch": "^3.0.4"
- },
- "bin": {
- "ignored": "bin/ignored"
+ "ethereumjs-util": "^6.0.0",
+ "rlp": "^2.2.1",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/duplexer3": {
- "version": "0.1.4",
- "license": "BSD-3-Clause",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/ethereumjs-block": {
+ "version": "2.2.2",
+ "license": "MPL-2.0",
"dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/ee-first": {
- "version": "1.1.1",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/electron-to-chromium": {
- "version": "1.3.636",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/elliptic": {
- "version": "6.5.3",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/abstract-leveldown": {
+ "version": "2.6.3",
"license": "MIT",
"dependencies": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/encodeurl": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/deferred-leveldown": {
+ "version": "1.2.2",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.8"
+ "dependencies": {
+ "abstract-leveldown": "~2.6.0"
}
},
- "node_modules/ganache-core/node_modules/encoding": {
- "version": "0.1.13",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "iconv-lite": "^0.6.2"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/encoding-down": {
- "version": "5.0.4",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/isarray": {
+ "version": "0.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-codec": {
+ "version": "7.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-errors": {
+ "version": "1.0.5",
"license": "MIT",
"dependencies": {
- "abstract-leveldown": "^5.0.0",
- "inherits": "^2.0.3",
- "level-codec": "^9.0.0",
- "level-errors": "^2.0.0",
- "xtend": "^4.0.1"
- },
- "engines": {
- "node": ">=6"
+ "errno": "~0.1.1"
}
},
- "node_modules/ganache-core/node_modules/encoding-down/node_modules/abstract-leveldown": {
- "version": "5.0.0",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream": {
+ "version": "1.3.1",
"license": "MIT",
"dependencies": {
- "xtend": "~4.0.0"
- },
- "engines": {
- "node": ">=6"
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/encoding/node_modules/iconv-lite": {
- "version": "0.6.2",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": {
+ "version": "1.1.14",
"license": "MIT",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/end-of-stream": {
- "version": "1.4.4",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws": {
+ "version": "0.0.0",
"license": "MIT",
"dependencies": {
- "once": "^1.4.0"
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
}
},
- "node_modules/ganache-core/node_modules/errno": {
- "version": "0.1.8",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": {
+ "version": "1.0.34",
"license": "MIT",
"dependencies": {
- "prr": "~1.0.1"
- },
- "bin": {
- "errno": "cli.js"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/es-abstract": {
- "version": "1.18.0-next.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": {
+ "version": "2.1.2",
"dependencies": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
+ "object-keys": "~0.4.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=0.4"
}
},
- "node_modules/ganache-core/node_modules/es-to-primitive": {
- "version": "1.2.1",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/levelup": {
+ "version": "1.3.9",
"license": "MIT",
"dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/es5-ext": {
- "version": "0.10.53",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ltgt": {
+ "version": "2.2.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown": {
+ "version": "1.4.1",
+ "license": "MIT",
"dependencies": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
}
},
- "node_modules/ganache-core/node_modules/es6-iterator": {
- "version": "2.0.3",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": {
+ "version": "2.7.2",
"license": "MIT",
"dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/es6-symbol": {
- "version": "3.1.3",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": {
+ "version": "2.3.2",
+ "license": "MPL-2.0",
"dependencies": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
}
},
- "node_modules/ganache-core/node_modules/escape-html": {
- "version": "1.0.3",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": {
+ "version": "1.5.2",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/object-keys": {
+ "version": "0.4.0",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/esutils": {
- "version": "2.0.3",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/etag": {
- "version": "1.8.1",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.6"
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/semver": {
+ "version": "5.4.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
}
},
- "node_modules/ganache-core/node_modules/eth-block-tracker": {
- "version": "3.0.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ethereumjs-blockchain": {
+ "version": "4.0.4",
+ "license": "MPL-2.0",
"dependencies": {
- "eth-query": "^2.1.0",
- "ethereumjs-tx": "^1.3.3",
- "ethereumjs-util": "^5.1.3",
- "ethjs-util": "^0.1.3",
- "json-rpc-engine": "^3.6.0",
- "pify": "^2.3.0",
- "tape": "^4.6.3"
+ "async": "^2.6.1",
+ "ethashjs": "~0.0.7",
+ "ethereumjs-block": "~2.2.2",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.1.0",
+ "flow-stoplight": "^1.0.0",
+ "level-mem": "^3.0.1",
+ "lru-cache": "^5.1.1",
+ "rlp": "^2.2.2",
+ "semaphore": "^1.1.0"
}
},
- "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-tx": {
- "version": "1.3.7",
+ "node_modules/ganache-core/node_modules/ethereumjs-common": {
+ "version": "1.5.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ethereumjs-tx": {
+ "version": "2.1.2",
"license": "MPL-2.0",
"dependencies": {
- "ethereum-common": "^0.0.18",
- "ethereumjs-util": "^5.0.0"
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
}
},
- "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/ethereumjs-util": {
- "version": "5.2.1",
+ "node_modules/ganache-core/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
"license": "MPL-2.0",
"dependencies": {
+ "@types/bn.js": "^4.11.3",
"bn.js": "^4.11.0",
"create-hash": "^1.1.2",
"elliptic": "^6.5.2",
"ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/ganache-core/node_modules/eth-block-tracker/node_modules/pify": {
- "version": "2.3.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/ganache-core/node_modules/ethereumjs-vm": {
+ "version": "4.2.0",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "core-js-pure": "^3.0.1",
+ "ethereumjs-account": "^3.0.0",
+ "ethereumjs-block": "^2.2.2",
+ "ethereumjs-blockchain": "^4.0.3",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.2",
+ "ethereumjs-util": "^6.2.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1",
+ "util.promisify": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/eth-ens-namehash": {
- "version": "2.0.8",
- "license": "ISC",
- "optional": true,
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/abstract-leveldown": {
+ "version": "2.6.3",
+ "license": "MIT",
"dependencies": {
- "idna-uts46-hx": "^2.3.1",
- "js-sha3": "^0.5.7"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-infura": {
- "version": "3.2.1",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/deferred-leveldown": {
+ "version": "1.2.2",
+ "license": "MIT",
"dependencies": {
- "cross-fetch": "^2.1.1",
- "eth-json-rpc-middleware": "^1.5.0",
- "json-rpc-engine": "^3.4.0",
- "json-rpc-error": "^2.0.0"
+ "abstract-leveldown": "~2.6.0"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware": {
- "version": "1.6.0",
- "license": "ISC",
- "dependencies": {
- "async": "^2.5.0",
- "eth-query": "^2.1.2",
- "eth-tx-summary": "^3.1.2",
- "ethereumjs-block": "^1.6.0",
- "ethereumjs-tx": "^1.3.3",
- "ethereumjs-util": "^5.1.2",
- "ethereumjs-vm": "^2.1.0",
- "fetch-ponyfill": "^4.0.0",
- "json-rpc-engine": "^3.6.0",
- "json-rpc-error": "^2.0.0",
- "json-stable-stringify": "^1.0.1",
- "promise-to-callback": "^1.0.0",
- "tape": "^4.6.3"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/abstract-leveldown": {
- "version": "2.6.3",
- "license": "MIT",
- "dependencies": {
- "xtend": "~4.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/deferred-leveldown": {
- "version": "1.2.2",
- "license": "MIT",
- "dependencies": {
- "abstract-leveldown": "~2.6.0"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-account": {
- "version": "2.0.5",
- "license": "MPL-2.0",
- "dependencies": {
- "ethereumjs-util": "^5.0.0",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block": {
- "version": "1.7.1",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.0.1",
- "ethereum-common": "0.2.0",
- "ethereumjs-tx": "^1.2.2",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-block/node_modules/ethereum-common": {
- "version": "0.2.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-tx": {
- "version": "1.3.7",
- "license": "MPL-2.0",
- "dependencies": {
- "ethereum-common": "^0.0.18",
- "ethereumjs-util": "^5.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm": {
- "version": "2.6.0",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.1.2",
- "async-eventemitter": "^0.2.2",
- "ethereumjs-account": "^2.0.3",
- "ethereumjs-block": "~2.2.0",
- "ethereumjs-common": "^1.1.0",
- "ethereumjs-util": "^6.0.0",
- "fake-merkle-patricia-tree": "^1.0.1",
- "functional-red-black-tree": "^1.0.1",
- "merkle-patricia-tree": "^2.3.2",
- "rustbn.js": "~0.2.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": {
- "version": "2.2.2",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.0.1",
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-tx": "^2.1.1",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": {
- "version": "2.1.2",
- "license": "MPL-2.0",
- "dependencies": {
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-util": "^6.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": {
- "version": "6.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
- }
- },
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/isarray": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/isarray": {
"version": "0.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-codec": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-codec": {
"version": "7.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-errors": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-errors": {
"version": "1.0.5",
"license": "MIT",
"dependencies": {
"errno": "~0.1.1"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream": {
"version": "1.3.1",
"license": "MIT",
"dependencies": {
@@ -12049,7 +13114,7 @@
"xtend": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-iterator-stream/node_modules/readable-stream": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": {
"version": "1.1.14",
"license": "MIT",
"dependencies": {
@@ -12059,7 +13124,7 @@
"string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws": {
"version": "0.0.0",
"license": "MIT",
"dependencies": {
@@ -12067,7 +13132,7 @@
"xtend": "~2.1.1"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/readable-stream": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": {
"version": "1.0.34",
"license": "MIT",
"dependencies": {
@@ -12077,7 +13142,7 @@
"string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/level-ws/node_modules/xtend": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": {
"version": "2.1.2",
"dependencies": {
"object-keys": "~0.4.0"
@@ -12086,7 +13151,7 @@
"node": ">=0.4"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/levelup": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/levelup": {
"version": "1.3.9",
"license": "MIT",
"dependencies": {
@@ -12099,11 +13164,11 @@
"xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/ltgt": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/ltgt": {
"version": "2.2.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown": {
"version": "1.4.1",
"license": "MIT",
"dependencies": {
@@ -12115,14 +13180,14 @@
"safe-buffer": "~5.1.1"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/memdown/node_modules/abstract-leveldown": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": {
"version": "2.7.2",
"license": "MIT",
"dependencies": {
"xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": {
"version": "2.3.2",
"license": "MPL-2.0",
"dependencies": {
@@ -12136,965 +13201,864 @@
"semaphore": ">=1.0.1"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/merkle-patricia-tree/node_modules/async": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": {
"version": "1.5.2",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/object-keys": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/object-keys": {
"version": "0.4.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/safe-buffer": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/safe-buffer": {
"version": "5.1.2",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/semver": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/semver": {
"version": "5.4.1",
"license": "ISC",
"bin": {
"semver": "bin/semver"
}
},
- "node_modules/ganache-core/node_modules/eth-json-rpc-middleware/node_modules/string_decoder": {
+ "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/string_decoder": {
"version": "0.10.31",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-lib": {
- "version": "0.1.29",
+ "node_modules/ganache-core/node_modules/ethereumjs-wallet": {
+ "version": "0.6.5",
"license": "MIT",
"optional": true,
"dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "nano-json-stream-parser": "^0.1.2",
- "servify": "^0.1.12",
- "ws": "^3.0.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "node_modules/ganache-core/node_modules/eth-query": {
- "version": "2.1.2",
- "license": "ISC",
- "dependencies": {
- "json-rpc-random-id": "^1.0.0",
- "xtend": "^4.0.1"
- }
- },
- "node_modules/ganache-core/node_modules/eth-sig-util": {
- "version": "3.0.0",
- "license": "ISC",
- "dependencies": {
- "buffer": "^5.2.1",
- "elliptic": "^6.4.0",
- "ethereumjs-abi": "0.6.5",
- "ethereumjs-util": "^5.1.1",
- "tweetnacl": "^1.0.0",
- "tweetnacl-util": "^0.15.0"
+ "aes-js": "^3.1.1",
+ "bs58check": "^2.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethereumjs-util": "^6.0.0",
+ "randombytes": "^2.0.6",
+ "safe-buffer": "^5.1.2",
+ "scryptsy": "^1.2.1",
+ "utf8": "^3.0.0",
+ "uuid": "^3.3.2"
}
},
- "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi": {
- "version": "0.6.5",
+ "node_modules/ganache-core/node_modules/ethjs-unit": {
+ "version": "0.1.6",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "bn.js": "^4.10.0",
- "ethereumjs-util": "^4.3.0"
- }
- },
- "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-abi/node_modules/ethereumjs-util": {
- "version": "4.5.1",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.8.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.0.0"
+ "bn.js": "4.11.6",
+ "number-to-bn": "1.7.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/ganache-core/node_modules/eth-sig-util/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
+ "node_modules/ganache-core/node_modules/ethjs-unit/node_modules/bn.js": {
+ "version": "4.11.6",
+ "license": "MIT",
+ "optional": true
},
- "node_modules/ganache-core/node_modules/eth-tx-summary": {
- "version": "3.2.4",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/ethjs-util": {
+ "version": "0.1.6",
+ "license": "MIT",
"dependencies": {
- "async": "^2.1.2",
- "clone": "^2.0.0",
- "concat-stream": "^1.5.1",
- "end-of-stream": "^1.1.0",
- "eth-query": "^2.0.2",
- "ethereumjs-block": "^1.4.1",
- "ethereumjs-tx": "^1.1.1",
- "ethereumjs-util": "^5.0.1",
- "ethereumjs-vm": "^2.6.0",
- "through2": "^2.0.3"
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/abstract-leveldown": {
- "version": "2.6.3",
+ "node_modules/ganache-core/node_modules/eventemitter3": {
+ "version": "4.0.4",
"license": "MIT",
- "dependencies": {
- "xtend": "~4.0.0"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/deferred-leveldown": {
- "version": "1.2.2",
+ "node_modules/ganache-core/node_modules/events": {
+ "version": "3.2.0",
"license": "MIT",
- "dependencies": {
- "abstract-leveldown": "~2.6.0"
+ "engines": {
+ "node": ">=0.8.x"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-account": {
- "version": "2.0.5",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "license": "MIT",
"dependencies": {
- "ethereumjs-util": "^5.0.0",
- "rlp": "^2.0.0",
+ "md5.js": "^1.3.4",
"safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block": {
- "version": "1.7.1",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.0.1",
- "ethereum-common": "0.2.0",
- "ethereumjs-tx": "^1.2.2",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
- }
- },
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-block/node_modules/ethereum-common": {
- "version": "0.2.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-tx": {
- "version": "1.3.7",
- "license": "MPL-2.0",
- "dependencies": {
- "ethereum-common": "^0.0.18",
- "ethereumjs-util": "^5.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "license": "MIT",
"dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm": {
- "version": "2.6.0",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
"dependencies": {
- "async": "^2.1.2",
- "async-eventemitter": "^0.2.2",
- "ethereumjs-account": "^2.0.3",
- "ethereumjs-block": "~2.2.0",
- "ethereumjs-common": "^1.1.0",
- "ethereumjs-util": "^6.0.0",
- "fake-merkle-patricia-tree": "^1.0.1",
- "functional-red-black-tree": "^1.0.1",
- "merkle-patricia-tree": "^2.3.2",
- "rustbn.js": "~0.2.0",
- "safe-buffer": "^5.1.1"
+ "ms": "2.0.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": {
- "version": "2.2.2",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "license": "MIT",
"dependencies": {
- "async": "^2.0.1",
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-tx": "^2.1.1",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "license": "MIT",
"dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": {
- "version": "2.1.2",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "license": "MIT",
"dependencies": {
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-util": "^6.0.0"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": {
- "version": "6.2.1",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "license": "MIT",
"dependencies": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/isarray": {
- "version": "0.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-codec": {
- "version": "7.0.1",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-buffer": {
+ "version": "1.1.6",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-errors": {
- "version": "1.0.5",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
"license": "MIT",
"dependencies": {
- "errno": "~0.1.1"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream": {
- "version": "1.3.1",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "level-errors": "^1.0.3",
- "readable-stream": "^1.0.33",
- "xtend": "^4.0.0"
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-iterator-stream/node_modules/readable-stream": {
- "version": "1.1.14",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws": {
- "version": "0.0.0",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-extendable": {
+ "version": "0.1.1",
"license": "MIT",
- "dependencies": {
- "readable-stream": "~1.0.15",
- "xtend": "~2.1.1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/readable-stream": {
- "version": "1.0.34",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/kind-of": {
+ "version": "5.1.0",
"license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/level-ws/node_modules/xtend": {
- "version": "2.1.2",
- "dependencies": {
- "object-keys": "~0.4.0"
- },
"engines": {
- "node": ">=0.4"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/levelup": {
- "version": "1.3.9",
+ "node_modules/ganache-core/node_modules/expand-brackets/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/express": {
+ "version": "4.17.1",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "deferred-leveldown": "~1.2.1",
- "level-codec": "~7.0.0",
- "level-errors": "~1.0.3",
- "level-iterator-stream": "~1.3.0",
- "prr": "~1.0.1",
- "semver": "~5.4.1",
- "xtend": "~4.0.0"
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/ltgt": {
- "version": "2.2.1",
+ "node_modules/ganache-core/node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/express/node_modules/qs": {
+ "version": "6.7.0",
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/ganache-core/node_modules/express/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/ext": {
+ "version": "1.4.0",
+ "license": "ISC",
+ "dependencies": {
+ "type": "^2.0.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/ext/node_modules/type": {
+ "version": "2.1.0",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/extend": {
+ "version": "3.0.2",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown": {
- "version": "1.4.1",
+ "node_modules/ganache-core/node_modules/extend-shallow": {
+ "version": "3.0.2",
"license": "MIT",
"dependencies": {
- "abstract-leveldown": "~2.7.1",
- "functional-red-black-tree": "^1.0.1",
- "immediate": "^3.2.3",
- "inherits": "~2.0.1",
- "ltgt": "~2.2.0",
- "safe-buffer": "~5.1.1"
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/memdown/node_modules/abstract-leveldown": {
- "version": "2.7.2",
+ "node_modules/ganache-core/node_modules/extglob": {
+ "version": "2.0.4",
"license": "MIT",
"dependencies": {
- "xtend": "~4.0.0"
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree": {
- "version": "2.3.2",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "license": "MIT",
"dependencies": {
- "async": "^1.4.2",
- "ethereumjs-util": "^5.0.0",
- "level-ws": "0.0.0",
- "levelup": "^1.2.1",
- "memdown": "^1.0.0",
- "readable-stream": "^2.0.0",
- "rlp": "^2.0.0",
- "semaphore": ">=1.0.1"
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/merkle-patricia-tree/node_modules/async": {
- "version": "1.5.2",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/object-keys": {
- "version": "0.4.0",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/extglob/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/safe-buffer": {
- "version": "5.1.2",
+ "node_modules/ganache-core/node_modules/extsprintf": {
+ "version": "1.3.0",
+ "engines": [
+ "node >=0.6.0"
+ ],
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/semver": {
- "version": "5.4.1",
+ "node_modules/ganache-core/node_modules/fake-merkle-patricia-tree": {
+ "version": "1.0.1",
"license": "ISC",
- "bin": {
- "semver": "bin/semver"
+ "dependencies": {
+ "checkpoint-store": "^1.1.0"
}
},
- "node_modules/ganache-core/node_modules/eth-tx-summary/node_modules/string_decoder": {
- "version": "0.10.31",
+ "node_modules/ganache-core/node_modules/fast-deep-equal": {
+ "version": "3.1.3",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/ethashjs": {
- "version": "0.0.8",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/fetch-ponyfill": {
+ "version": "4.1.0",
+ "license": "MIT",
"dependencies": {
- "async": "^2.1.2",
- "buffer-xor": "^2.0.1",
- "ethereumjs-util": "^7.0.2",
- "miller-rabin": "^4.0.0"
+ "node-fetch": "~1.7.1"
}
},
- "node_modules/ganache-core/node_modules/ethashjs/node_modules/bn.js": {
- "version": "5.1.3",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/is-stream": {
+ "version": "1.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/ethashjs/node_modules/buffer-xor": {
- "version": "2.0.2",
+ "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/node-fetch": {
+ "version": "1.7.3",
"license": "MIT",
"dependencies": {
- "safe-buffer": "^5.1.1"
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
}
},
- "node_modules/ganache-core/node_modules/ethashjs/node_modules/ethereumjs-util": {
- "version": "7.0.7",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/finalhandler": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.4"
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/ethereum-bloom-filters": {
- "version": "1.0.7",
+ "node_modules/ganache-core/node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
"license": "MIT",
"optional": true,
"dependencies": {
- "js-sha3": "^0.8.0"
+ "ms": "2.0.0"
}
},
- "node_modules/ganache-core/node_modules/ethereum-bloom-filters/node_modules/js-sha3": {
- "version": "0.8.0",
+ "node_modules/ganache-core/node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
"license": "MIT",
"optional": true
},
- "node_modules/ganache-core/node_modules/ethereum-common": {
- "version": "0.0.18",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root": {
+ "version": "1.2.1",
+ "license": "Apache-2.0",
"dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
+ "fs-extra": "^4.0.3",
+ "micromatch": "^3.1.4"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-abi": {
- "version": "0.6.8",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces": {
+ "version": "2.3.2",
"license": "MIT",
"dependencies": {
- "bn.js": "^4.11.8",
- "ethereumjs-util": "^6.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-account": {
- "version": "3.0.0",
- "license": "MPL-2.0",
- "dependencies": {
- "ethereumjs-util": "^6.0.0",
- "rlp": "^2.2.1",
- "safe-buffer": "^5.1.1"
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block": {
- "version": "2.2.2",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "license": "MIT",
"dependencies": {
- "async": "^2.0.1",
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-tx": "^2.1.1",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/abstract-leveldown": {
- "version": "2.6.3",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range": {
+ "version": "4.0.0",
"license": "MIT",
"dependencies": {
- "xtend": "~4.0.0"
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/deferred-leveldown": {
- "version": "1.2.2",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
"license": "MIT",
"dependencies": {
- "abstract-leveldown": "~2.6.0"
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fs-extra": {
+ "version": "4.0.3",
+ "license": "MIT",
"dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/isarray": {
- "version": "0.0.1",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-buffer": {
+ "version": "1.1.6",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-codec": {
- "version": "7.0.1",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-errors": {
- "version": "1.0.5",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number": {
+ "version": "3.0.0",
"license": "MIT",
"dependencies": {
- "errno": "~0.1.1"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream": {
- "version": "1.3.1",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "level-errors": "^1.0.3",
- "readable-stream": "^1.0.33",
- "xtend": "^4.0.0"
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-iterator-stream/node_modules/readable-stream": {
- "version": "1.1.14",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/micromatch": {
+ "version": "3.1.10",
"license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws": {
- "version": "0.0.0",
+ "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/to-regex-range": {
+ "version": "2.1.1",
"license": "MIT",
"dependencies": {
- "readable-stream": "~1.0.15",
- "xtend": "~2.1.1"
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/readable-stream": {
- "version": "1.0.34",
+ "node_modules/ganache-core/node_modules/flow-stoplight": {
+ "version": "1.0.0",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/for-each": {
+ "version": "0.3.3",
"license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "is-callable": "^1.1.3"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/level-ws/node_modules/xtend": {
- "version": "2.1.2",
- "dependencies": {
- "object-keys": "~0.4.0"
- },
+ "node_modules/ganache-core/node_modules/for-in": {
+ "version": "1.0.2",
+ "license": "MIT",
"engines": {
- "node": ">=0.4"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/levelup": {
- "version": "1.3.9",
+ "node_modules/ganache-core/node_modules/forever-agent": {
+ "version": "0.6.1",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ganache-core/node_modules/form-data": {
+ "version": "2.3.3",
"license": "MIT",
"dependencies": {
- "deferred-leveldown": "~1.2.1",
- "level-codec": "~7.0.0",
- "level-errors": "~1.0.3",
- "level-iterator-stream": "~1.3.0",
- "prr": "~1.0.1",
- "semver": "~5.4.1",
- "xtend": "~4.0.0"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/ltgt": {
- "version": "2.2.1",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/forwarded": {
+ "version": "0.1.2",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown": {
- "version": "1.4.1",
+ "node_modules/ganache-core/node_modules/fragment-cache": {
+ "version": "0.2.1",
"license": "MIT",
"dependencies": {
- "abstract-leveldown": "~2.7.1",
- "functional-red-black-tree": "^1.0.1",
- "immediate": "^3.2.3",
- "inherits": "~2.0.1",
- "ltgt": "~2.2.0",
- "safe-buffer": "~5.1.1"
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/memdown/node_modules/abstract-leveldown": {
- "version": "2.7.2",
+ "node_modules/ganache-core/node_modules/fresh": {
+ "version": "0.5.2",
"license": "MIT",
- "dependencies": {
- "xtend": "~4.0.0"
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree": {
- "version": "2.3.2",
- "license": "MPL-2.0",
+ "node_modules/ganache-core/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "license": "MIT",
"dependencies": {
- "async": "^1.4.2",
- "ethereumjs-util": "^5.0.0",
- "level-ws": "0.0.0",
- "levelup": "^1.2.1",
- "memdown": "^1.0.0",
- "readable-stream": "^2.0.0",
- "rlp": "^2.0.0",
- "semaphore": ">=1.0.1"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/merkle-patricia-tree/node_modules/async": {
- "version": "1.5.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/object-keys": {
- "version": "0.4.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/semver": {
- "version": "5.4.1",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-block/node_modules/string_decoder": {
- "version": "0.10.31",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-blockchain": {
- "version": "4.0.4",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.6.1",
- "ethashjs": "~0.0.7",
- "ethereumjs-block": "~2.2.2",
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-util": "^6.1.0",
- "flow-stoplight": "^1.0.0",
- "level-mem": "^3.0.1",
- "lru-cache": "^5.1.1",
- "rlp": "^2.2.2",
- "semaphore": "^1.1.0"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-common": {
- "version": "1.5.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-tx": {
- "version": "2.1.2",
- "license": "MPL-2.0",
- "dependencies": {
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-util": "^6.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-util": {
- "version": "6.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm": {
- "version": "4.2.0",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.1.2",
- "async-eventemitter": "^0.2.2",
- "core-js-pure": "^3.0.1",
- "ethereumjs-account": "^3.0.0",
- "ethereumjs-block": "^2.2.2",
- "ethereumjs-blockchain": "^4.0.3",
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-tx": "^2.1.2",
- "ethereumjs-util": "^6.2.0",
- "fake-merkle-patricia-tree": "^1.0.1",
- "functional-red-black-tree": "^1.0.1",
- "merkle-patricia-tree": "^2.3.2",
- "rustbn.js": "~0.2.0",
- "safe-buffer": "^5.1.1",
- "util.promisify": "^1.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/abstract-leveldown": {
- "version": "2.6.3",
- "license": "MIT",
- "dependencies": {
- "xtend": "~4.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/deferred-leveldown": {
- "version": "1.2.2",
- "license": "MIT",
- "dependencies": {
- "abstract-leveldown": "~2.6.0"
- }
+ "node_modules/ganache-core/node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "license": "ISC"
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/isarray": {
- "version": "0.0.1",
+ "node_modules/ganache-core/node_modules/function-bind": {
+ "version": "1.1.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-codec": {
- "version": "7.0.1",
+ "node_modules/ganache-core/node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-errors": {
- "version": "1.0.5",
- "license": "MIT",
- "dependencies": {
- "errno": "~0.1.1"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream": {
- "version": "1.3.1",
+ "node_modules/ganache-core/node_modules/get-intrinsic": {
+ "version": "1.0.2",
"license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "level-errors": "^1.0.3",
- "readable-stream": "^1.0.33",
- "xtend": "^4.0.0"
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-iterator-stream/node_modules/readable-stream": {
- "version": "1.1.14",
+ "node_modules/ganache-core/node_modules/get-stream": {
+ "version": "5.2.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws": {
- "version": "0.0.0",
+ "node_modules/ganache-core/node_modules/get-value": {
+ "version": "2.0.6",
"license": "MIT",
- "dependencies": {
- "readable-stream": "~1.0.15",
- "xtend": "~2.1.1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/readable-stream": {
- "version": "1.0.34",
+ "node_modules/ganache-core/node_modules/getpass": {
+ "version": "0.1.7",
"license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "assert-plus": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/level-ws/node_modules/xtend": {
- "version": "2.1.2",
+ "node_modules/ganache-core/node_modules/glob": {
+ "version": "7.1.3",
+ "license": "ISC",
"dependencies": {
- "object-keys": "~0.4.0"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"engines": {
- "node": ">=0.4"
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/levelup": {
- "version": "1.3.9",
+ "node_modules/ganache-core/node_modules/global": {
+ "version": "4.4.0",
"license": "MIT",
"dependencies": {
- "deferred-leveldown": "~1.2.1",
- "level-codec": "~7.0.0",
- "level-errors": "~1.0.3",
- "level-iterator-stream": "~1.3.0",
- "prr": "~1.0.1",
- "semver": "~5.4.1",
- "xtend": "~4.0.0"
+ "min-document": "^2.19.0",
+ "process": "^0.11.10"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/ltgt": {
- "version": "2.2.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown": {
- "version": "1.4.1",
+ "node_modules/ganache-core/node_modules/got": {
+ "version": "9.6.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "abstract-leveldown": "~2.7.1",
- "functional-red-black-tree": "^1.0.1",
- "immediate": "^3.2.3",
- "inherits": "~2.0.1",
- "ltgt": "~2.2.0",
- "safe-buffer": "~5.1.1"
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.6"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/memdown/node_modules/abstract-leveldown": {
- "version": "2.7.2",
+ "node_modules/ganache-core/node_modules/got/node_modules/get-stream": {
+ "version": "4.1.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "xtend": "~4.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree": {
- "version": "2.3.2",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^1.4.2",
- "ethereumjs-util": "^5.0.0",
- "level-ws": "0.0.0",
- "levelup": "^1.2.1",
- "memdown": "^1.0.0",
- "readable-stream": "^2.0.0",
- "rlp": "^2.0.0",
- "semaphore": ">=1.0.1"
- }
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/async": {
- "version": "1.5.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/object-keys": {
- "version": "0.4.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/graceful-fs": {
+ "version": "4.2.4",
+ "license": "ISC"
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/semver": {
- "version": "5.4.1",
+ "node_modules/ganache-core/node_modules/har-schema": {
+ "version": "2.0.0",
"license": "ISC",
- "bin": {
- "semver": "bin/semver"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/ethereumjs-vm/node_modules/string_decoder": {
- "version": "0.10.31",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/ethereumjs-wallet": {
- "version": "0.6.5",
+ "node_modules/ganache-core/node_modules/har-validator": {
+ "version": "5.1.5",
"license": "MIT",
- "optional": true,
"dependencies": {
- "aes-js": "^3.1.1",
- "bs58check": "^2.1.2",
- "ethereum-cryptography": "^0.1.3",
- "ethereumjs-util": "^6.0.0",
- "randombytes": "^2.0.6",
- "safe-buffer": "^5.1.2",
- "scryptsy": "^1.2.1",
- "utf8": "^3.0.0",
- "uuid": "^3.3.2"
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/ethjs-unit": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/has": {
+ "version": "1.0.3",
"license": "MIT",
- "optional": true,
"dependencies": {
- "bn.js": "4.11.6",
- "number-to-bn": "1.7.0"
+ "function-bind": "^1.1.1"
},
"engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "node": ">= 0.4.0"
}
},
- "node_modules/ganache-core/node_modules/ethjs-unit/node_modules/bn.js": {
- "version": "4.11.6",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/ethjs-util": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/has-ansi": {
+ "version": "2.0.0",
"license": "MIT",
"dependencies": {
- "is-hex-prefixed": "1.0.0",
- "strip-hex-prefix": "1.0.0"
+ "ansi-regex": "^2.0.0"
},
"engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/eventemitter3": {
- "version": "4.0.4",
+ "node_modules/ganache-core/node_modules/has-ansi/node_modules/ansi-regex": {
+ "version": "2.1.1",
"license": "MIT",
- "optional": true
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/events": {
- "version": "3.2.0",
+ "node_modules/ganache-core/node_modules/has-flag": {
+ "version": "3.0.0",
"license": "MIT",
"engines": {
- "node": ">=0.8.x"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/evp_bytestokey": {
- "version": "1.0.3",
+ "node_modules/ganache-core/node_modules/has-symbol-support-x": {
+ "version": "1.4.2",
"license": "MIT",
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
+ "optional": true,
+ "engines": {
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets": {
- "version": "2.1.4",
+ "node_modules/ganache-core/node_modules/has-symbols": {
+ "version": "1.0.1",
"license": "MIT",
- "dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/debug": {
- "version": "2.6.9",
+ "node_modules/ganache-core/node_modules/has-to-string-tag-x": {
+ "version": "1.4.1",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "ms": "2.0.0"
+ "has-symbol-support-x": "^1.4.1"
+ },
+ "engines": {
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/define-property": {
- "version": "0.2.5",
+ "node_modules/ganache-core/node_modules/has-value": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "is-descriptor": "^0.1.0"
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/extend-shallow": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/has-values": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "is-extendable": "^0.1.0"
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/has-values/node_modules/is-buffer": {
+ "version": "1.1.6",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/has-values/node_modules/is-number": {
+ "version": "3.0.0",
"license": "MIT",
"dependencies": {
"kind-of": "^3.0.2"
@@ -13103,7 +14067,7 @@
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "node_modules/ganache-core/node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
"version": "3.2.2",
"license": "MIT",
"dependencies": {
@@ -13113,2427 +14077,2477 @@
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-buffer": {
- "version": "1.1.6",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor": {
- "version": "0.1.4",
+ "node_modules/ganache-core/node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
"license": "MIT",
"dependencies": {
- "kind-of": "^3.0.2"
+ "is-buffer": "^1.1.5"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/hash-base": {
+ "version": "3.1.0",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/hash-base/node_modules/readable-stream": {
+ "version": "3.6.0",
"license": "MIT",
"dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 6"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/is-extendable": {
- "version": "0.1.1",
+ "node_modules/ganache-core/node_modules/hash.js": {
+ "version": "1.1.7",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/kind-of": {
- "version": "5.1.0",
+ "node_modules/ganache-core/node_modules/heap": {
+ "version": "0.2.6"
+ },
+ "node_modules/ganache-core/node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/ganache-core/node_modules/home-or-tmp": {
+ "version": "2.0.0",
"license": "MIT",
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/expand-brackets/node_modules/ms": {
- "version": "2.0.0",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/http-cache-semantics": {
+ "version": "4.1.0",
+ "license": "BSD-2-Clause",
+ "optional": true
},
- "node_modules/ganache-core/node_modules/express": {
- "version": "4.17.1",
+ "node_modules/ganache-core/node_modules/http-errors": {
+ "version": "1.7.2",
"license": "MIT",
"optional": true,
"dependencies": {
- "accepts": "~1.3.7",
- "array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
- "content-type": "~1.0.4",
- "cookie": "0.4.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
"depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.1.2",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
+ "inherits": "2.0.3",
"setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
},
"engines": {
- "node": ">= 0.10.0"
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/express/node_modules/qs": {
- "version": "6.7.0",
- "license": "BSD-3-Clause",
- "optional": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/ganache-core/node_modules/express/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/http-errors/node_modules/inherits": {
+ "version": "2.0.3",
+ "license": "ISC",
"optional": true
},
- "node_modules/ganache-core/node_modules/ext": {
- "version": "1.4.0",
+ "node_modules/ganache-core/node_modules/http-https": {
+ "version": "1.0.0",
"license": "ISC",
- "dependencies": {
- "type": "^2.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/ext/node_modules/type": {
- "version": "2.1.0",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/extend": {
- "version": "3.0.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/extend-shallow": {
- "version": "3.0.2",
- "license": "MIT",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/extglob": {
- "version": "2.0.4",
+ "node_modules/ganache-core/node_modules/http-signature": {
+ "version": "1.2.0",
"license": "MIT",
"dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
}
},
- "node_modules/ganache-core/node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/iconv-lite": {
+ "version": "0.4.24",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "is-descriptor": "^1.0.0"
+ "safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/extglob/node_modules/extend-shallow": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/idna-uts46-hx": {
+ "version": "2.3.1",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "is-extendable": "^0.1.0"
+ "punycode": "2.1.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.0.0"
}
},
- "node_modules/ganache-core/node_modules/extglob/node_modules/is-extendable": {
- "version": "0.1.1",
+ "node_modules/ganache-core/node_modules/idna-uts46-hx/node_modules/punycode": {
+ "version": "2.1.0",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/extsprintf": {
- "version": "1.3.0",
- "engines": [
- "node >=0.6.0"
+ "node_modules/ganache-core/node_modules/ieee754": {
+ "version": "1.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ganache-core/node_modules/immediate": {
+ "version": "3.2.3",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/fake-merkle-patricia-tree": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/inflight": {
+ "version": "1.0.6",
"license": "ISC",
"dependencies": {
- "checkpoint-store": "^1.1.0"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
- "node_modules/ganache-core/node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/inherits": {
+ "version": "2.0.4",
+ "license": "ISC"
},
- "node_modules/ganache-core/node_modules/fetch-ponyfill": {
- "version": "4.1.0",
+ "node_modules/ganache-core/node_modules/invariant": {
+ "version": "2.2.4",
"license": "MIT",
"dependencies": {
- "node-fetch": "~1.7.1"
+ "loose-envify": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/is-stream": {
- "version": "1.1.0",
+ "node_modules/ganache-core/node_modules/ipaddr.js": {
+ "version": "1.9.1",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.10"
}
},
- "node_modules/ganache-core/node_modules/fetch-ponyfill/node_modules/node-fetch": {
- "version": "1.7.3",
+ "node_modules/ganache-core/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "encoding": "^0.1.11",
- "is-stream": "^1.0.1"
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/finalhandler": {
- "version": "1.1.2",
+ "node_modules/ganache-core/node_modules/is-arguments": {
+ "version": "1.1.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
+ "call-bind": "^1.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
+ "node_modules/ganache-core/node_modules/is-callable": {
+ "version": "1.2.2",
"license": "MIT",
- "optional": true,
- "dependencies": {
- "ms": "2.0.0"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/finalhandler/node_modules/ms": {
+ "node_modules/ganache-core/node_modules/is-ci": {
"version": "2.0.0",
"license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root": {
- "version": "1.2.1",
- "license": "Apache-2.0",
"dependencies": {
- "fs-extra": "^4.0.3",
- "micromatch": "^3.1.4"
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces": {
- "version": "2.3.2",
+ "node_modules/ganache-core/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "kind-of": "^6.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/braces/node_modules/extend-shallow": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/is-date-object": {
+ "version": "1.0.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ganache-core/node_modules/is-descriptor": {
+ "version": "1.0.2",
"license": "MIT",
"dependencies": {
- "is-extendable": "^0.1.0"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range": {
- "version": "4.0.0",
+ "node_modules/ganache-core/node_modules/is-extendable": {
+ "version": "1.0.1",
"license": "MIT",
"dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
+ "is-plain-object": "^2.0.4"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fill-range/node_modules/extend-shallow": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/is-finite": {
+ "version": "1.1.0",
"license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
"engines": {
"node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/fs-extra": {
- "version": "4.0.3",
+ "node_modules/ganache-core/node_modules/is-fn": {
+ "version": "1.0.0",
"license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-buffer": {
- "version": "1.1.6",
+ "node_modules/ganache-core/node_modules/is-function": {
+ "version": "1.0.2",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-extendable": {
- "version": "0.1.1",
+ "node_modules/ganache-core/node_modules/is-hex-prefixed": {
+ "version": "1.0.0",
"license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/is-negative-zero": {
+ "version": "2.0.1",
"license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
+ "engines": {
+ "node": ">= 0.4"
},
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ganache-core/node_modules/is-object": {
+ "version": "1.0.2",
+ "license": "MIT",
+ "optional": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ganache-core/node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "license": "MIT",
+ "optional": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/is-plain-object": {
+ "version": "2.0.4",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "isobject": "^3.0.1"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/micromatch": {
- "version": "3.1.10",
+ "node_modules/ganache-core/node_modules/is-regex": {
+ "version": "1.1.1",
"license": "MIT",
"dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "has-symbols": "^1.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/find-yarn-workspace-root/node_modules/to-regex-range": {
- "version": "2.1.1",
+ "node_modules/ganache-core/node_modules/is-retry-allowed": {
+ "version": "1.2.0",
"license": "MIT",
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
+ "optional": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/flow-stoplight": {
- "version": "1.0.0",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/for-each": {
- "version": "0.3.3",
+ "node_modules/ganache-core/node_modules/is-symbol": {
+ "version": "1.0.3",
"license": "MIT",
"dependencies": {
- "is-callable": "^1.1.3"
+ "has-symbols": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/for-in": {
+ "node_modules/ganache-core/node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/is-windows": {
"version": "1.0.2",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/forever-agent": {
- "version": "0.6.1",
- "license": "Apache-2.0",
- "engines": {
- "node": "*"
- }
+ "node_modules/ganache-core/node_modules/isarray": {
+ "version": "1.0.0",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/form-data": {
- "version": "2.3.3",
+ "node_modules/ganache-core/node_modules/isexe": {
+ "version": "2.0.0",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/isobject": {
+ "version": "3.0.1",
"license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
"engines": {
- "node": ">= 0.12"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/forwarded": {
+ "node_modules/ganache-core/node_modules/isstream": {
"version": "0.1.2",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.6"
- }
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/fragment-cache": {
- "version": "0.2.1",
+ "node_modules/ganache-core/node_modules/isurl": {
+ "version": "1.0.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "map-cache": "^0.2.2"
+ "has-to-string-tag-x": "^1.2.0",
+ "is-object": "^1.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 4"
}
},
- "node_modules/ganache-core/node_modules/fresh": {
- "version": "0.5.2",
+ "node_modules/ganache-core/node_modules/js-sha3": {
+ "version": "0.5.7",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.6"
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/js-tokens": {
+ "version": "4.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/jsbn": {
+ "version": "0.1.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/json-buffer": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/json-rpc-engine": {
+ "version": "3.8.0",
+ "license": "ISC",
+ "dependencies": {
+ "async": "^2.0.1",
+ "babel-preset-env": "^1.7.0",
+ "babelify": "^7.3.0",
+ "json-rpc-error": "^2.0.0",
+ "promise-to-callback": "^1.0.0",
+ "safe-event-emitter": "^1.0.1"
}
},
- "node_modules/ganache-core/node_modules/fs-extra": {
- "version": "7.0.1",
+ "node_modules/ganache-core/node_modules/json-rpc-error": {
+ "version": "2.0.0",
"license": "MIT",
"dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
+ "inherits": "^2.0.1"
}
},
- "node_modules/ganache-core/node_modules/fs.realpath": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/json-rpc-random-id": {
+ "version": "1.0.1",
"license": "ISC"
},
- "node_modules/ganache-core/node_modules/function-bind": {
- "version": "1.1.1",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/json-schema": {
+ "version": "0.2.3"
},
- "node_modules/ganache-core/node_modules/functional-red-black-tree": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/get-intrinsic": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/json-stable-stringify": {
+ "version": "1.0.1",
"license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "jsonify": "~0.0.0"
}
},
- "node_modules/ganache-core/node_modules/get-stream": {
- "version": "5.2.0",
+ "node_modules/ganache-core/node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/jsonfile": {
+ "version": "4.0.0",
"license": "MIT",
- "optional": true,
- "dependencies": {
- "pump": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
}
},
- "node_modules/ganache-core/node_modules/get-value": {
- "version": "2.0.6",
+ "node_modules/ganache-core/node_modules/jsonify": {
+ "version": "0.0.0",
+ "license": "Public Domain"
+ },
+ "node_modules/ganache-core/node_modules/jsprim": {
+ "version": "1.4.1",
+ "engines": [
+ "node >=0.6.0"
+ ],
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
}
},
- "node_modules/ganache-core/node_modules/getpass": {
- "version": "0.1.7",
+ "node_modules/ganache-core/node_modules/keccak": {
+ "version": "3.0.1",
+ "hasInstallScript": true,
+ "inBundle": true,
"license": "MIT",
"dependencies": {
- "assert-plus": "^1.0.0"
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
}
},
- "node_modules/ganache-core/node_modules/glob": {
- "version": "7.1.3",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/keyv": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
+ "json-buffer": "3.0.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/kind-of": {
+ "version": "6.0.3",
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/global": {
- "version": "4.4.0",
+ "node_modules/ganache-core/node_modules/klaw-sync": {
+ "version": "6.0.0",
"license": "MIT",
"dependencies": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
+ "graceful-fs": "^4.1.11"
}
},
- "node_modules/ganache-core/node_modules/got": {
- "version": "9.6.0",
+ "node_modules/ganache-core/node_modules/level-codec": {
+ "version": "9.0.2",
"license": "MIT",
- "optional": true,
"dependencies": {
- "@sindresorhus/is": "^0.14.0",
- "@szmarczak/http-timer": "^1.1.2",
- "cacheable-request": "^6.0.0",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^4.1.0",
- "lowercase-keys": "^1.0.1",
- "mimic-response": "^1.0.1",
- "p-cancelable": "^1.0.0",
- "to-readable-stream": "^1.0.0",
- "url-parse-lax": "^3.0.0"
+ "buffer": "^5.6.0"
},
"engines": {
- "node": ">=8.6"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/got/node_modules/get-stream": {
- "version": "4.1.0",
+ "node_modules/ganache-core/node_modules/level-errors": {
+ "version": "2.0.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "pump": "^3.0.0"
+ "errno": "~0.1.1"
},
"engines": {
"node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/graceful-fs": {
- "version": "4.2.4",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/har-schema": {
- "version": "2.0.0",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/level-iterator-stream": {
+ "version": "2.0.3",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.5",
+ "xtend": "^4.0.0"
+ },
"engines": {
"node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/har-validator": {
- "version": "5.1.5",
+ "node_modules/ganache-core/node_modules/level-mem": {
+ "version": "3.0.1",
"license": "MIT",
"dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
+ "level-packager": "~4.0.0",
+ "memdown": "~3.0.0"
},
"engines": {
"node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/has": {
- "version": "1.0.3",
+ "node_modules/ganache-core/node_modules/level-mem/node_modules/abstract-leveldown": {
+ "version": "5.0.0",
"license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1"
+ "xtend": "~4.0.0"
},
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/has-ansi": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/level-mem/node_modules/ltgt": {
+ "version": "2.2.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/level-mem/node_modules/memdown": {
+ "version": "3.0.0",
"license": "MIT",
"dependencies": {
- "ansi-regex": "^2.0.0"
+ "abstract-leveldown": "~5.0.0",
+ "functional-red-black-tree": "~1.0.1",
+ "immediate": "~3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/has-ansi/node_modules/ansi-regex": {
- "version": "2.1.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/ganache-core/node_modules/level-mem/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/has-flag": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/level-packager": {
+ "version": "4.0.1",
"license": "MIT",
+ "dependencies": {
+ "encoding-down": "~5.0.0",
+ "levelup": "^3.0.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/has-symbol-support-x": {
- "version": "1.4.2",
+ "node_modules/ganache-core/node_modules/level-post": {
+ "version": "1.0.7",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": "*"
+ "dependencies": {
+ "ltgt": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/has-symbols": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/level-sublevel": {
+ "version": "6.6.4",
"license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "dependencies": {
+ "bytewise": "~1.1.0",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0",
+ "level-iterator-stream": "^2.0.3",
+ "ltgt": "~2.1.1",
+ "pull-defer": "^0.2.2",
+ "pull-level": "^2.0.3",
+ "pull-stream": "^3.6.8",
+ "typewiselite": "~1.0.0",
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/has-to-string-tag-x": {
- "version": "1.4.1",
+ "node_modules/ganache-core/node_modules/level-ws": {
+ "version": "1.0.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "has-symbol-support-x": "^1.4.1"
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.8",
+ "xtend": "^4.0.1"
},
"engines": {
- "node": "*"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/has-value": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/levelup": {
+ "version": "3.1.1",
"license": "MIT",
"dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
+ "deferred-leveldown": "~4.0.0",
+ "level-errors": "~2.0.0",
+ "level-iterator-stream": "~3.0.0",
+ "xtend": "~4.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/has-values": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/levelup/node_modules/level-iterator-stream": {
+ "version": "3.0.1",
"license": "MIT",
"dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "xtend": "^4.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/has-values/node_modules/is-buffer": {
- "version": "1.1.6",
+ "node_modules/ganache-core/node_modules/lodash": {
+ "version": "4.17.20",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/has-values/node_modules/is-number": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/looper": {
+ "version": "2.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/loose-envify": {
+ "version": "1.4.0",
"license": "MIT",
"dependencies": {
- "kind-of": "^3.0.2"
+ "js-tokens": "^3.0.0 || ^4.0.0"
},
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/ganache-core/node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "optional": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "license": "ISC",
"dependencies": {
- "is-buffer": "^1.1.5"
- },
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/ganache-core/node_modules/ltgt": {
+ "version": "2.1.3",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/map-cache": {
+ "version": "0.2.2",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
+ "node_modules/ganache-core/node_modules/map-visit": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "object-visit": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/hash-base": {
- "version": "3.1.0",
+ "node_modules/ganache-core/node_modules/md5.js": {
+ "version": "1.3.5",
"license": "MIT",
"dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
- "engines": {
- "node": ">=4"
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
- "node_modules/ganache-core/node_modules/hash-base/node_modules/readable-stream": {
- "version": "3.6.0",
+ "node_modules/ganache-core/node_modules/media-typer": {
+ "version": "0.3.0",
"license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
+ "optional": true,
"engines": {
- "node": ">= 6"
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/hash.js": {
- "version": "1.1.7",
+ "node_modules/ganache-core/node_modules/merge-descriptors": {
+ "version": "1.0.1",
"license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/merkle-patricia-tree": {
+ "version": "3.0.0",
+ "license": "MPL-2.0",
"dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
+ "async": "^2.6.1",
+ "ethereumjs-util": "^5.2.0",
+ "level-mem": "^3.0.1",
+ "level-ws": "^1.0.0",
+ "readable-stream": "^3.0.6",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
}
},
- "node_modules/ganache-core/node_modules/heap": {
- "version": "0.2.6"
- },
- "node_modules/ganache-core/node_modules/hmac-drbg": {
- "version": "1.0.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/home-or-tmp": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/readable-stream": {
+ "version": "3.6.0",
"license": "MIT",
"dependencies": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.1"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 6"
}
},
- "node_modules/ganache-core/node_modules/http-cache-semantics": {
- "version": "4.1.0",
- "license": "BSD-2-Clause",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/http-errors": {
- "version": "1.7.2",
+ "node_modules/ganache-core/node_modules/methods": {
+ "version": "1.1.2",
"license": "MIT",
"optional": true,
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- },
"engines": {
"node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/http-errors/node_modules/inherits": {
- "version": "2.0.3",
- "license": "ISC",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/http-https": {
- "version": "1.0.0",
- "license": "ISC",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/http-signature": {
- "version": "1.2.0",
+ "node_modules/ganache-core/node_modules/miller-rabin": {
+ "version": "4.0.1",
"license": "MIT",
"dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
},
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
}
},
- "node_modules/ganache-core/node_modules/iconv-lite": {
- "version": "0.4.24",
+ "node_modules/ganache-core/node_modules/mime": {
+ "version": "1.6.0",
"license": "MIT",
"optional": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "bin": {
+ "mime": "cli.js"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/idna-uts46-hx": {
- "version": "2.3.1",
+ "node_modules/ganache-core/node_modules/mime-db": {
+ "version": "1.45.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/ganache-core/node_modules/mime-types": {
+ "version": "2.1.28",
"license": "MIT",
- "optional": true,
"dependencies": {
- "punycode": "2.1.0"
+ "mime-db": "1.45.0"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/idna-uts46-hx/node_modules/punycode": {
- "version": "2.1.0",
+ "node_modules/ganache-core/node_modules/mimic-response": {
+ "version": "1.0.1",
"license": "MIT",
"optional": true,
"engines": {
- "node": ">=6"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/ieee754": {
- "version": "1.2.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause"
+ "node_modules/ganache-core/node_modules/min-document": {
+ "version": "2.19.0",
+ "dependencies": {
+ "dom-walk": "^0.1.0"
+ }
},
- "node_modules/ganache-core/node_modules/immediate": {
- "version": "3.2.3",
+ "node_modules/ganache-core/node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/inflight": {
- "version": "1.0.6",
+ "node_modules/ganache-core/node_modules/minimatch": {
+ "version": "3.0.4",
"license": "ISC",
"dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/inherits": {
- "version": "2.0.4",
- "license": "ISC"
+ "node_modules/ganache-core/node_modules/minimist": {
+ "version": "1.2.5",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/invariant": {
- "version": "2.2.4",
+ "node_modules/ganache-core/node_modules/minizlib": {
+ "version": "1.3.3",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "loose-envify": "^1.0.0"
+ "minipass": "^2.9.0"
}
},
- "node_modules/ganache-core/node_modules/ipaddr.js": {
- "version": "1.9.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/minizlib/node_modules/minipass": {
+ "version": "2.9.0",
+ "license": "ISC",
"optional": true,
- "engines": {
- "node": ">= 0.10"
+ "dependencies": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
}
},
- "node_modules/ganache-core/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/mixin-deep": {
+ "version": "1.3.2",
"license": "MIT",
"dependencies": {
- "kind-of": "^6.0.0"
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/is-arguments": {
- "version": "1.1.0",
+ "node_modules/ganache-core/node_modules/mkdirp": {
+ "version": "0.5.5",
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
+ "minimist": "^1.2.5"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "bin": {
+ "mkdirp": "bin/cmd.js"
}
},
- "node_modules/ganache-core/node_modules/is-callable": {
- "version": "1.2.2",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
+ "node_modules/ganache-core/node_modules/mkdirp-promise": {
+ "version": "5.0.1",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "mkdirp": "*"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/is-ci": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/mock-fs": {
+ "version": "4.13.0",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/ms": {
+ "version": "2.1.3",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/multibase": {
+ "version": "0.6.1",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "ci-info": "^2.0.0"
- },
- "bin": {
- "is-ci": "bin.js"
+ "base-x": "^3.0.8",
+ "buffer": "^5.5.0"
}
},
- "node_modules/ganache-core/node_modules/is-data-descriptor": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/multicodec": {
+ "version": "0.5.7",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "varint": "^5.0.0"
}
},
- "node_modules/ganache-core/node_modules/is-date-object": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/multihashes": {
+ "version": "0.4.21",
"license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "optional": true,
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "multibase": "^0.7.0",
+ "varint": "^5.0.0"
}
},
- "node_modules/ganache-core/node_modules/is-descriptor": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/multihashes/node_modules/multibase": {
+ "version": "0.7.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "base-x": "^3.0.8",
+ "buffer": "^5.5.0"
}
},
- "node_modules/ganache-core/node_modules/is-extendable": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/nano-json-stream-parser": {
+ "version": "0.1.2",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/nanomatch": {
+ "version": "1.2.13",
"license": "MIT",
"dependencies": {
- "is-plain-object": "^2.0.4"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/is-finite": {
- "version": "1.1.0",
+ "node_modules/ganache-core/node_modules/negotiator": {
+ "version": "0.6.2",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/is-fn": {
+ "node_modules/ganache-core/node_modules/next-tick": {
"version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/is-function": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/nice-try": {
+ "version": "1.0.5",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/is-hex-prefixed": {
- "version": "1.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
- }
+ "node_modules/ganache-core/node_modules/node-addon-api": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/is-negative-zero": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/node-fetch": {
+ "version": "2.1.2",
"license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "4.x || >=6.0.0"
}
},
- "node_modules/ganache-core/node_modules/is-object": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/node-gyp-build": {
+ "version": "4.2.3",
+ "inBundle": true,
"license": "MIT",
- "optional": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
}
},
- "node_modules/ganache-core/node_modules/is-plain-obj": {
- "version": "1.1.0",
+ "node_modules/ganache-core/node_modules/normalize-url": {
+ "version": "4.5.0",
"license": "MIT",
"optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/ganache-core/node_modules/is-plain-object": {
- "version": "2.0.4",
+ "node_modules/ganache-core/node_modules/number-to-bn": {
+ "version": "1.7.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "isobject": "^3.0.1"
+ "bn.js": "4.11.6",
+ "strip-hex-prefix": "1.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/ganache-core/node_modules/is-regex": {
- "version": "1.1.1",
+ "node_modules/ganache-core/node_modules/number-to-bn/node_modules/bn.js": {
+ "version": "4.11.6",
"license": "MIT",
- "dependencies": {
- "has-symbols": "^1.0.1"
- },
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/oauth-sign": {
+ "version": "0.9.0",
+ "license": "Apache-2.0",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/is-retry-allowed": {
- "version": "1.2.0",
+ "node_modules/ganache-core/node_modules/object-assign": {
+ "version": "4.1.1",
"license": "MIT",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/is-symbol": {
- "version": "1.0.3",
+ "node_modules/ganache-core/node_modules/object-copy": {
+ "version": "0.1.0",
"license": "MIT",
"dependencies": {
- "has-symbols": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/ganache-core/node_modules/is-typedarray": {
- "version": "1.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/is-windows": {
- "version": "1.0.2",
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/isarray": {
- "version": "1.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/isexe": {
- "version": "2.0.0",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/isobject": {
- "version": "3.0.1",
+ "node_modules/ganache-core/node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
"license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/isstream": {
- "version": "0.1.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/isurl": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/object-copy/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
- "optional": true,
"dependencies": {
- "has-to-string-tag-x": "^1.2.0",
- "is-object": "^1.0.1"
+ "kind-of": "^3.0.2"
},
"engines": {
- "node": ">= 4"
- }
- },
- "node_modules/ganache-core/node_modules/js-sha3": {
- "version": "0.5.7",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/js-tokens": {
- "version": "4.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/jsbn": {
- "version": "0.1.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/json-buffer": {
- "version": "3.0.0",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/json-rpc-engine": {
- "version": "3.8.0",
- "license": "ISC",
- "dependencies": {
- "async": "^2.0.1",
- "babel-preset-env": "^1.7.0",
- "babelify": "^7.3.0",
- "json-rpc-error": "^2.0.0",
- "promise-to-callback": "^1.0.0",
- "safe-event-emitter": "^1.0.1"
- }
- },
- "node_modules/ganache-core/node_modules/json-rpc-error": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/json-rpc-random-id": {
- "version": "1.0.1",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/json-schema": {
- "version": "0.2.3"
- },
- "node_modules/ganache-core/node_modules/json-schema-traverse": {
- "version": "0.4.1",
+ "node_modules/ganache-core/node_modules/object-copy/node_modules/is-buffer": {
+ "version": "1.1.6",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/json-stable-stringify": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "jsonify": "~0.0.0"
- }
- },
- "node_modules/ganache-core/node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/jsonfile": {
- "version": "4.0.0",
- "license": "MIT",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/ganache-core/node_modules/jsonify": {
- "version": "0.0.0",
- "license": "Public Domain"
- },
- "node_modules/ganache-core/node_modules/jsprim": {
- "version": "1.4.1",
- "engines": [
- "node >=0.6.0"
- ],
+ "node_modules/ganache-core/node_modules/object-copy/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
"license": "MIT",
"dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/keccak": {
- "version": "3.0.1",
- "hasInstallScript": true,
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
"dependencies": {
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/keyv": {
- "version": "3.1.0",
+ "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": {
+ "version": "5.1.0",
"license": "MIT",
- "optional": true,
- "dependencies": {
- "json-buffer": "3.0.0"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/kind-of": {
- "version": "6.0.3",
+ "node_modules/ganache-core/node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/klaw-sync": {
- "version": "6.0.0",
+ "node_modules/ganache-core/node_modules/object-inspect": {
+ "version": "1.9.0",
"license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.1.11"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/level-codec": {
- "version": "9.0.2",
+ "node_modules/ganache-core/node_modules/object-is": {
+ "version": "1.1.4",
"license": "MIT",
"dependencies": {
- "buffer": "^5.6.0"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/level-errors": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/object-keys": {
+ "version": "1.1.1",
"license": "MIT",
- "dependencies": {
- "errno": "~0.1.1"
- },
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
}
},
- "node_modules/ganache-core/node_modules/level-iterator-stream": {
- "version": "2.0.3",
+ "node_modules/ganache-core/node_modules/object-visit": {
+ "version": "1.0.1",
"license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.5",
- "xtend": "^4.0.0"
+ "isobject": "^3.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/level-mem": {
- "version": "3.0.1",
+ "node_modules/ganache-core/node_modules/object.assign": {
+ "version": "4.1.2",
"license": "MIT",
"dependencies": {
- "level-packager": "~4.0.0",
- "memdown": "~3.0.0"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "has-symbols": "^1.0.1",
+ "object-keys": "^1.1.1"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/level-mem/node_modules/abstract-leveldown": {
- "version": "5.0.0",
+ "node_modules/ganache-core/node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.1",
"license": "MIT",
"dependencies": {
- "xtend": "~4.0.0"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.1"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/level-mem/node_modules/ltgt": {
- "version": "2.2.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/level-mem/node_modules/memdown": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/object.pick": {
+ "version": "1.3.0",
"license": "MIT",
"dependencies": {
- "abstract-leveldown": "~5.0.0",
- "functional-red-black-tree": "~1.0.1",
- "immediate": "~3.2.3",
- "inherits": "~2.0.1",
- "ltgt": "~2.2.0",
- "safe-buffer": "~5.1.1"
+ "isobject": "^3.0.1"
},
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/level-mem/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/level-packager": {
- "version": "4.0.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/oboe": {
+ "version": "2.1.4",
+ "license": "BSD",
+ "optional": true,
"dependencies": {
- "encoding-down": "~5.0.0",
- "levelup": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
+ "http-https": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/level-post": {
- "version": "1.0.7",
+ "node_modules/ganache-core/node_modules/on-finished": {
+ "version": "2.3.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "ltgt": "^2.1.2"
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/level-sublevel": {
- "version": "6.6.4",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/once": {
+ "version": "1.4.0",
+ "license": "ISC",
"dependencies": {
- "bytewise": "~1.1.0",
- "level-codec": "^9.0.0",
- "level-errors": "^2.0.0",
- "level-iterator-stream": "^2.0.3",
- "ltgt": "~2.1.1",
- "pull-defer": "^0.2.2",
- "pull-level": "^2.0.3",
- "pull-stream": "^3.6.8",
- "typewiselite": "~1.0.0",
- "xtend": "~4.0.0"
+ "wrappy": "1"
}
},
- "node_modules/ganache-core/node_modules/level-ws": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/os-homedir": {
+ "version": "1.0.2",
"license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.8",
- "xtend": "^4.0.1"
- },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/levelup": {
- "version": "3.1.1",
+ "node_modules/ganache-core/node_modules/os-tmpdir": {
+ "version": "1.0.2",
"license": "MIT",
- "dependencies": {
- "deferred-leveldown": "~4.0.0",
- "level-errors": "~2.0.0",
- "level-iterator-stream": "~3.0.0",
- "xtend": "~4.0.0"
- },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/levelup/node_modules/level-iterator-stream": {
- "version": "3.0.1",
+ "node_modules/ganache-core/node_modules/p-cancelable": {
+ "version": "1.1.0",
"license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.6",
- "xtend": "^4.0.0"
- },
+ "optional": true,
"engines": {
"node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/lodash": {
- "version": "4.17.20",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/looper": {
- "version": "2.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/loose-envify": {
- "version": "1.4.0",
+ "node_modules/ganache-core/node_modules/p-timeout": {
+ "version": "1.2.1",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
+ "p-finally": "^1.0.0"
},
- "bin": {
- "loose-envify": "cli.js"
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/lowercase-keys": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/p-timeout/node_modules/p-finally": {
+ "version": "1.0.0",
"license": "MIT",
"optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/lru-cache": {
- "version": "5.1.1",
+ "node_modules/ganache-core/node_modules/parse-asn1": {
+ "version": "5.1.6",
"license": "ISC",
+ "optional": true,
"dependencies": {
- "yallist": "^3.0.2"
+ "asn1.js": "^5.2.0",
+ "browserify-aes": "^1.0.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/ltgt": {
- "version": "2.1.3",
+ "node_modules/ganache-core/node_modules/parse-headers": {
+ "version": "2.0.3",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/map-cache": {
- "version": "0.2.2",
+ "node_modules/ganache-core/node_modules/parseurl": {
+ "version": "1.3.3",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/map-visit": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/pascalcase": {
+ "version": "0.1.1",
"license": "MIT",
- "dependencies": {
- "object-visit": "^1.0.0"
- },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/md5.js": {
- "version": "1.3.5",
+ "node_modules/ganache-core/node_modules/patch-package": {
+ "version": "6.2.2",
"license": "MIT",
"dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/ganache-core/node_modules/media-typer": {
- "version": "0.3.0",
- "license": "MIT",
- "optional": true,
+ "@yarnpkg/lockfile": "^1.1.0",
+ "chalk": "^2.4.2",
+ "cross-spawn": "^6.0.5",
+ "find-yarn-workspace-root": "^1.2.1",
+ "fs-extra": "^7.0.1",
+ "is-ci": "^2.0.0",
+ "klaw-sync": "^6.0.0",
+ "minimist": "^1.2.0",
+ "rimraf": "^2.6.3",
+ "semver": "^5.6.0",
+ "slash": "^2.0.0",
+ "tmp": "^0.0.33"
+ },
+ "bin": {
+ "patch-package": "index.js"
+ },
"engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/ganache-core/node_modules/merge-descriptors": {
- "version": "1.0.1",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/merkle-patricia-tree": {
- "version": "3.0.0",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.6.1",
- "ethereumjs-util": "^5.2.0",
- "level-mem": "^3.0.1",
- "level-ws": "^1.0.0",
- "readable-stream": "^3.0.6",
- "rlp": "^2.0.0",
- "semaphore": ">=1.0.1"
- }
- },
- "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "npm": ">5"
}
},
- "node_modules/ganache-core/node_modules/merkle-patricia-tree/node_modules/readable-stream": {
- "version": "3.6.0",
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/cross-spawn": {
+ "version": "6.0.5",
"license": "MIT",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
},
"engines": {
- "node": ">= 6"
+ "node": ">=4.8"
}
},
- "node_modules/ganache-core/node_modules/methods": {
- "version": "1.1.2",
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/path-key": {
+ "version": "2.0.1",
"license": "MIT",
- "optional": true,
"engines": {
- "node": ">= 0.6"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/miller-rabin": {
- "version": "4.0.1",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- },
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/semver": {
+ "version": "5.7.1",
+ "license": "ISC",
"bin": {
- "miller-rabin": "bin/miller-rabin"
+ "semver": "bin/semver"
}
},
- "node_modules/ganache-core/node_modules/mime": {
- "version": "1.6.0",
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-command": {
+ "version": "1.2.0",
"license": "MIT",
- "optional": true,
- "bin": {
- "mime": "cli.js"
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/mime-db": {
- "version": "1.45.0",
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-regex": {
+ "version": "1.0.0",
"license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/mime-types": {
- "version": "2.1.28",
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/slash": {
+ "version": "2.0.0",
"license": "MIT",
- "dependencies": {
- "mime-db": "1.45.0"
- },
"engines": {
- "node": ">= 0.6"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/mimic-response": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/tmp": {
+ "version": "0.0.33",
"license": "MIT",
- "optional": true,
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=0.6.0"
}
},
- "node_modules/ganache-core/node_modules/min-document": {
- "version": "2.19.0",
+ "node_modules/ganache-core/node_modules/patch-package/node_modules/which": {
+ "version": "1.3.1",
+ "license": "ISC",
"dependencies": {
- "dom-walk": "^0.1.0"
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
}
},
- "node_modules/ganache-core/node_modules/minimalistic-assert": {
+ "node_modules/ganache-core/node_modules/path-is-absolute": {
"version": "1.0.1",
- "license": "ISC"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/path-parse": {
+ "version": "1.0.6",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/minimatch": {
- "version": "3.0.4",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/path-to-regexp": {
+ "version": "0.1.7",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/pbkdf2": {
+ "version": "3.1.1",
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
},
"engines": {
- "node": "*"
+ "node": ">=0.12"
}
},
- "node_modules/ganache-core/node_modules/minimist": {
- "version": "1.2.5",
+ "node_modules/ganache-core/node_modules/performance-now": {
+ "version": "2.1.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/minizlib": {
- "version": "1.3.3",
+ "node_modules/ganache-core/node_modules/posix-character-classes": {
+ "version": "0.1.1",
"license": "MIT",
- "optional": true,
- "dependencies": {
- "minipass": "^2.9.0"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/minizlib/node_modules/minipass": {
- "version": "2.9.0",
- "license": "ISC",
- "optional": true,
- "dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
+ "node_modules/ganache-core/node_modules/precond": {
+ "version": "0.2.3",
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/mixin-deep": {
- "version": "1.3.2",
+ "node_modules/ganache-core/node_modules/prepend-http": {
+ "version": "2.0.0",
"license": "MIT",
- "dependencies": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/mkdirp": {
- "version": "0.5.5",
+ "node_modules/ganache-core/node_modules/private": {
+ "version": "0.1.8",
"license": "MIT",
- "dependencies": {
- "minimist": "^1.2.5"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/ganache-core/node_modules/mkdirp-promise": {
- "version": "5.0.1",
- "license": "ISC",
- "optional": true,
- "dependencies": {
- "mkdirp": "*"
- },
"engines": {
- "node": ">=4"
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/mock-fs": {
- "version": "4.13.0",
+ "node_modules/ganache-core/node_modules/process": {
+ "version": "0.11.10",
"license": "MIT",
- "optional": true
+ "engines": {
+ "node": ">= 0.6.0"
+ }
},
- "node_modules/ganache-core/node_modules/ms": {
- "version": "2.1.3",
+ "node_modules/ganache-core/node_modules/process-nextick-args": {
+ "version": "2.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/multibase": {
- "version": "0.6.1",
+ "node_modules/ganache-core/node_modules/promise-to-callback": {
+ "version": "1.0.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "base-x": "^3.0.8",
- "buffer": "^5.5.0"
+ "is-fn": "^1.0.0",
+ "set-immediate-shim": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/multicodec": {
- "version": "0.5.7",
+ "node_modules/ganache-core/node_modules/proxy-addr": {
+ "version": "2.0.6",
"license": "MIT",
"optional": true,
"dependencies": {
- "varint": "^5.0.0"
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
}
},
- "node_modules/ganache-core/node_modules/multihashes": {
- "version": "0.4.21",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "multibase": "^0.7.0",
- "varint": "^5.0.0"
- }
+ "node_modules/ganache-core/node_modules/prr": {
+ "version": "1.0.1",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/multihashes/node_modules/multibase": {
- "version": "0.7.0",
+ "node_modules/ganache-core/node_modules/pseudomap": {
+ "version": "1.0.2",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/psl": {
+ "version": "1.8.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/public-encrypt": {
+ "version": "4.0.3",
"license": "MIT",
"optional": true,
"dependencies": {
- "base-x": "^3.0.8",
- "buffer": "^5.5.0"
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
- "node_modules/ganache-core/node_modules/nano-json-stream-parser": {
- "version": "0.1.2",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/pull-cat": {
+ "version": "1.1.11",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/nanomatch": {
- "version": "1.2.13",
+ "node_modules/ganache-core/node_modules/pull-defer": {
+ "version": "0.2.3",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/pull-level": {
+ "version": "2.0.4",
"license": "MIT",
"dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "level-post": "^1.0.7",
+ "pull-cat": "^1.1.9",
+ "pull-live": "^1.0.1",
+ "pull-pushable": "^2.0.0",
+ "pull-stream": "^3.4.0",
+ "pull-window": "^2.1.4",
+ "stream-to-pull-stream": "^1.7.1"
}
},
- "node_modules/ganache-core/node_modules/negotiator": {
- "version": "0.6.2",
+ "node_modules/ganache-core/node_modules/pull-live": {
+ "version": "1.0.1",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 0.6"
+ "dependencies": {
+ "pull-cat": "^1.1.9",
+ "pull-stream": "^3.4.0"
}
},
- "node_modules/ganache-core/node_modules/next-tick": {
- "version": "1.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/nice-try": {
- "version": "1.0.5",
+ "node_modules/ganache-core/node_modules/pull-pushable": {
+ "version": "2.2.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/node-addon-api": {
- "version": "2.0.2",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/pull-stream": {
+ "version": "3.6.14",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/node-fetch": {
- "version": "2.1.2",
+ "node_modules/ganache-core/node_modules/pull-window": {
+ "version": "2.1.4",
"license": "MIT",
- "engines": {
- "node": "4.x || >=6.0.0"
+ "dependencies": {
+ "looper": "^2.0.0"
}
},
- "node_modules/ganache-core/node_modules/node-gyp-build": {
- "version": "4.2.3",
- "inBundle": true,
+ "node_modules/ganache-core/node_modules/pump": {
+ "version": "3.0.0",
"license": "MIT",
- "bin": {
- "node-gyp-build": "bin.js",
- "node-gyp-build-optional": "optional.js",
- "node-gyp-build-test": "build-test.js"
+ "optional": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
},
- "node_modules/ganache-core/node_modules/normalize-url": {
- "version": "4.5.0",
+ "node_modules/ganache-core/node_modules/punycode": {
+ "version": "2.1.1",
"license": "MIT",
- "optional": true,
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/number-to-bn": {
- "version": "1.7.0",
+ "node_modules/ganache-core/node_modules/qs": {
+ "version": "6.5.2",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/ganache-core/node_modules/query-string": {
+ "version": "5.1.1",
"license": "MIT",
"optional": true,
"dependencies": {
- "bn.js": "4.11.6",
- "strip-hex-prefix": "1.0.0"
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
},
"engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/number-to-bn/node_modules/bn.js": {
- "version": "4.11.6",
+ "node_modules/ganache-core/node_modules/randombytes": {
+ "version": "2.1.0",
"license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/oauth-sign": {
- "version": "0.9.0",
- "license": "Apache-2.0",
- "engines": {
- "node": "*"
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
}
},
- "node_modules/ganache-core/node_modules/object-assign": {
- "version": "4.1.1",
+ "node_modules/ganache-core/node_modules/randomfill": {
+ "version": "1.0.4",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "optional": true,
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
}
},
- "node_modules/ganache-core/node_modules/object-copy": {
- "version": "0.1.0",
+ "node_modules/ganache-core/node_modules/range-parser": {
+ "version": "1.2.1",
"license": "MIT",
- "dependencies": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/object-copy/node_modules/define-property": {
- "version": "0.2.5",
+ "node_modules/ganache-core/node_modules/raw-body": {
+ "version": "2.4.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "is-descriptor": "^0.1.0"
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/object-copy/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/readable-stream": {
+ "version": "2.3.7",
"license": "MIT",
"dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/ganache-core/node_modules/object-copy/node_modules/is-buffer": {
- "version": "1.1.6",
+ "node_modules/ganache-core/node_modules/readable-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/object-copy/node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/regenerate": {
+ "version": "1.4.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/regenerator-transform": {
+ "version": "0.10.1",
+ "license": "BSD",
"dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
}
},
- "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/regex-not": {
+ "version": "1.0.2",
"license": "MIT",
"dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
+ "node_modules/ganache-core/node_modules/regexp.prototype.flags": {
+ "version": "1.3.0",
"license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/object-copy/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/regexp.prototype.flags/node_modules/es-abstract": {
+ "version": "1.17.7",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ganache-core/node_modules/object-inspect": {
- "version": "1.9.0",
- "license": "MIT",
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/object-is": {
- "version": "1.1.4",
+ "node_modules/ganache-core/node_modules/regexpu-core": {
+ "version": "2.0.0",
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "node_modules/ganache-core/node_modules/regjsgen": {
+ "version": "0.2.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/regjsparser": {
+ "version": "0.1.5",
+ "license": "BSD",
+ "dependencies": {
+ "jsesc": "~0.5.0"
},
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/ganache-core/node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/ganache-core/node_modules/repeat-element": {
+ "version": "1.1.3",
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/object-keys": {
- "version": "1.1.1",
+ "node_modules/ganache-core/node_modules/repeat-string": {
+ "version": "1.6.1",
"license": "MIT",
"engines": {
- "node": ">= 0.4"
+ "node": ">=0.10"
}
},
- "node_modules/ganache-core/node_modules/object-visit": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/repeating": {
+ "version": "2.0.1",
"license": "MIT",
"dependencies": {
- "isobject": "^3.0.0"
+ "is-finite": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/object.assign": {
- "version": "4.1.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/request": {
+ "version": "2.88.2",
+ "license": "Apache-2.0",
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 6"
}
},
- "node_modules/ganache-core/node_modules/object.getownpropertydescriptors": {
- "version": "2.1.1",
+ "node_modules/ganache-core/node_modules/resolve-url": {
+ "version": "0.2.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/responselike": {
+ "version": "1.0.2",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "lowercase-keys": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/object.pick": {
- "version": "1.3.0",
+ "node_modules/ganache-core/node_modules/resumer": {
+ "version": "0.0.0",
"license": "MIT",
"dependencies": {
- "isobject": "^3.0.1"
- },
+ "through": "~2.3.4"
+ }
+ },
+ "node_modules/ganache-core/node_modules/ret": {
+ "version": "0.1.15",
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.12"
}
},
- "node_modules/ganache-core/node_modules/oboe": {
- "version": "2.1.4",
- "license": "BSD",
- "optional": true,
+ "node_modules/ganache-core/node_modules/rimraf": {
+ "version": "2.6.3",
+ "license": "ISC",
"dependencies": {
- "http-https": "^1.0.0"
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
}
},
- "node_modules/ganache-core/node_modules/on-finished": {
- "version": "2.3.0",
+ "node_modules/ganache-core/node_modules/ripemd160": {
+ "version": "2.0.2",
"license": "MIT",
- "optional": true,
"dependencies": {
- "ee-first": "1.1.1"
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/ganache-core/node_modules/rlp": {
+ "version": "2.2.6",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "bn.js": "^4.11.1"
},
- "engines": {
- "node": ">= 0.8"
+ "bin": {
+ "rlp": "bin/rlp"
}
},
- "node_modules/ganache-core/node_modules/once": {
- "version": "1.4.0",
+ "node_modules/ganache-core/node_modules/rustbn.js": {
+ "version": "0.2.0",
+ "license": "(MIT OR Apache-2.0)"
+ },
+ "node_modules/ganache-core/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/safe-event-emitter": {
+ "version": "1.0.1",
"license": "ISC",
"dependencies": {
- "wrappy": "1"
+ "events": "^3.0.0"
}
},
- "node_modules/ganache-core/node_modules/os-homedir": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/safe-regex": {
+ "version": "1.1.0",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "ret": "~0.1.10"
}
},
- "node_modules/ganache-core/node_modules/os-tmpdir": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/scrypt-js": {
+ "version": "3.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/scryptsy": {
+ "version": "1.2.1",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "pbkdf2": "^3.0.3"
+ }
+ },
+ "node_modules/ganache-core/node_modules/secp256k1": {
+ "version": "4.0.2",
+ "hasInstallScript": true,
"license": "MIT",
+ "dependencies": {
+ "elliptic": "^6.5.2",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10.0.0"
}
},
- "node_modules/ganache-core/node_modules/p-cancelable": {
+ "node_modules/ganache-core/node_modules/seedrandom": {
+ "version": "3.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/semaphore": {
"version": "1.1.0",
- "license": "MIT",
- "optional": true,
"engines": {
- "node": ">=6"
+ "node": ">=0.8.0"
}
},
- "node_modules/ganache-core/node_modules/p-timeout": {
- "version": "1.2.1",
+ "node_modules/ganache-core/node_modules/send": {
+ "version": "0.17.1",
"license": "MIT",
"optional": true,
"dependencies": {
- "p-finally": "^1.0.0"
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
},
"engines": {
- "node": ">=4"
+ "node": ">= 0.8.0"
}
},
- "node_modules/ganache-core/node_modules/p-timeout/node_modules/p-finally": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
"license": "MIT",
"optional": true,
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "ms": "2.0.0"
}
},
- "node_modules/ganache-core/node_modules/parse-asn1": {
- "version": "5.1.6",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/send/node_modules/ms": {
+ "version": "2.1.1",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/serve-static": {
+ "version": "1.14.1",
+ "license": "MIT",
"optional": true,
"dependencies": {
- "asn1.js": "^5.2.0",
- "browserify-aes": "^1.0.0",
- "evp_bytestokey": "^1.0.0",
- "pbkdf2": "^3.0.3",
- "safe-buffer": "^5.1.1"
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/ganache-core/node_modules/parse-headers": {
- "version": "2.0.3",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/parseurl": {
- "version": "1.3.3",
+ "node_modules/ganache-core/node_modules/servify": {
+ "version": "0.1.12",
"license": "MIT",
"optional": true,
+ "dependencies": {
+ "body-parser": "^1.16.0",
+ "cors": "^2.8.1",
+ "express": "^4.14.0",
+ "request": "^2.79.0",
+ "xhr": "^2.3.3"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/pascalcase": {
- "version": "0.1.1",
+ "node_modules/ganache-core/node_modules/set-immediate-shim": {
+ "version": "1.0.1",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package": {
- "version": "6.2.2",
+ "node_modules/ganache-core/node_modules/set-value": {
+ "version": "2.0.1",
"license": "MIT",
"dependencies": {
- "@yarnpkg/lockfile": "^1.1.0",
- "chalk": "^2.4.2",
- "cross-spawn": "^6.0.5",
- "find-yarn-workspace-root": "^1.2.1",
- "fs-extra": "^7.0.1",
- "is-ci": "^2.0.0",
- "klaw-sync": "^6.0.0",
- "minimist": "^1.2.0",
- "rimraf": "^2.6.3",
- "semver": "^5.6.0",
- "slash": "^2.0.0",
- "tmp": "^0.0.33"
- },
- "bin": {
- "patch-package": "index.js"
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
},
"engines": {
- "npm": ">5"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/cross-spawn": {
- "version": "6.0.5",
+ "node_modules/ganache-core/node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
"license": "MIT",
"dependencies": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "is-extendable": "^0.1.0"
},
"engines": {
- "node": ">=4.8"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/path-key": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/set-value/node_modules/is-extendable": {
+ "version": "0.1.1",
"license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/semver": {
- "version": "5.7.1",
+ "node_modules/ganache-core/node_modules/setimmediate": {
+ "version": "1.0.5",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/setprototypeof": {
+ "version": "1.1.1",
"license": "ISC",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/sha.js": {
+ "version": "2.4.11",
+ "license": "(MIT AND BSD-3-Clause)",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
"bin": {
- "semver": "bin/semver"
+ "sha.js": "bin.js"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-command": {
- "version": "1.2.0",
+ "node_modules/ganache-core/node_modules/simple-concat": {
+ "version": "1.0.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/simple-get": {
+ "version": "2.8.1",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "shebang-regex": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/shebang-regex": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/snapdragon": {
+ "version": "0.8.2",
"license": "MIT",
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/slash": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/snapdragon-node": {
+ "version": "2.1.1",
"license": "MIT",
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/tmp": {
- "version": "0.0.33",
+ "node_modules/ganache-core/node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "os-tmpdir": "~1.0.2"
+ "is-descriptor": "^1.0.0"
},
"engines": {
- "node": ">=0.6.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/patch-package/node_modules/which": {
- "version": "1.3.1",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "license": "MIT",
"dependencies": {
- "isexe": "^2.0.0"
+ "kind-of": "^3.2.0"
},
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/ganache-core/node_modules/path-is-absolute": {
- "version": "1.0.1",
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/path-parse": {
- "version": "1.0.6",
+ "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/is-buffer": {
+ "version": "1.1.6",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/path-to-regexp": {
- "version": "0.1.7",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/pbkdf2": {
- "version": "3.1.1",
+ "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "is-buffer": "^1.1.5"
},
"engines": {
- "node": ">=0.12"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/performance-now": {
- "version": "2.1.0",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/debug": {
+ "version": "2.6.9",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
},
- "node_modules/ganache-core/node_modules/posix-character-classes": {
- "version": "0.1.1",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
"license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/precond": {
- "version": "0.2.3",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/prepend-http": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
- "optional": true,
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/private": {
- "version": "0.1.8",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/process": {
- "version": "0.11.10",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-buffer": {
+ "version": "1.1.6",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
"license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
"engines": {
- "node": ">= 0.6.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/process-nextick-args": {
- "version": "2.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/promise-to-callback": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "is-fn": "^1.0.0",
- "set-immediate-shim": "^1.0.1"
+ "is-buffer": "^1.1.5"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/proxy-addr": {
- "version": "2.0.6",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
- "optional": true,
"dependencies": {
- "forwarded": "~0.1.2",
- "ipaddr.js": "1.9.1"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/prr": {
- "version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/pseudomap": {
- "version": "1.0.2",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/psl": {
- "version": "1.8.0",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/public-encrypt": {
- "version": "4.0.3",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/kind-of": {
+ "version": "5.1.0",
"license": "MIT",
- "optional": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/pull-cat": {
- "version": "1.1.11",
+ "node_modules/ganache-core/node_modules/snapdragon/node_modules/ms": {
+ "version": "2.0.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/pull-defer": {
- "version": "0.2.3",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/source-map": {
+ "version": "0.5.7",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/pull-level": {
- "version": "2.0.4",
+ "node_modules/ganache-core/node_modules/source-map-resolve": {
+ "version": "0.5.3",
"license": "MIT",
"dependencies": {
- "level-post": "^1.0.7",
- "pull-cat": "^1.1.9",
- "pull-live": "^1.0.1",
- "pull-pushable": "^2.0.0",
- "pull-stream": "^3.4.0",
- "pull-window": "^2.1.4",
- "stream-to-pull-stream": "^1.7.1"
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
}
},
- "node_modules/ganache-core/node_modules/pull-live": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/source-map-support": {
+ "version": "0.5.12",
"license": "MIT",
"dependencies": {
- "pull-cat": "^1.1.9",
- "pull-stream": "^3.4.0"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
},
- "node_modules/ganache-core/node_modules/pull-pushable": {
- "version": "2.2.0",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/ganache-core/node_modules/pull-stream": {
- "version": "3.6.14",
+ "node_modules/ganache-core/node_modules/source-map-url": {
+ "version": "0.4.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/pull-window": {
- "version": "2.1.4",
+ "node_modules/ganache-core/node_modules/split-string": {
+ "version": "3.1.0",
"license": "MIT",
"dependencies": {
- "looper": "^2.0.0"
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/pump": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/sshpk": {
+ "version": "1.16.1",
"license": "MIT",
- "optional": true,
"dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/punycode": {
- "version": "2.1.1",
+ "node_modules/ganache-core/node_modules/sshpk/node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "license": "Unlicense"
+ },
+ "node_modules/ganache-core/node_modules/static-extend": {
+ "version": "0.1.2",
"license": "MIT",
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/qs": {
- "version": "6.5.2",
- "license": "BSD-3-Clause",
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
"engines": {
- "node": ">=0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/query-string": {
- "version": "5.1.1",
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
- "optional": true,
"dependencies": {
- "decode-uri-component": "^0.2.0",
- "object-assign": "^4.1.0",
- "strict-uri-encode": "^1.0.0"
+ "kind-of": "^3.0.2"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/randombytes": {
- "version": "2.1.0",
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "safe-buffer": "^5.1.0"
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/randomfill": {
- "version": "1.0.4",
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/is-buffer": {
+ "version": "1.1.6",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
"license": "MIT",
- "optional": true,
"dependencies": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/range-parser": {
- "version": "1.2.1",
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
- "optional": true,
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/raw-body": {
- "version": "2.4.0",
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/is-descriptor": {
+ "version": "0.1.6",
"license": "MIT",
- "optional": true,
"dependencies": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/readable-stream": {
- "version": "2.3.7",
+ "node_modules/ganache-core/node_modules/static-extend/node_modules/kind-of": {
+ "version": "5.1.0",
"license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/statuses": {
+ "version": "1.5.0",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "node_modules/ganache-core/node_modules/regenerate": {
- "version": "1.4.2",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/stream-to-pull-stream": {
+ "version": "1.7.3",
+ "license": "MIT",
+ "dependencies": {
+ "looper": "^3.0.0",
+ "pull-stream": "^3.2.3"
+ }
},
- "node_modules/ganache-core/node_modules/regenerator-runtime": {
- "version": "0.11.1",
+ "node_modules/ganache-core/node_modules/stream-to-pull-stream/node_modules/looper": {
+ "version": "3.0.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/regenerator-transform": {
- "version": "0.10.1",
- "license": "BSD",
- "dependencies": {
- "babel-runtime": "^6.18.0",
- "babel-types": "^6.19.0",
- "private": "^0.1.6"
+ "node_modules/ganache-core/node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/regex-not": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/string_decoder": {
+ "version": "1.1.1",
"license": "MIT",
"dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/ganache-core/node_modules/regexp.prototype.flags": {
- "version": "1.3.0",
+ "node_modules/ganache-core/node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/string.prototype.trim": {
+ "version": "1.2.3",
"license": "MIT",
"dependencies": {
+ "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.17.0-next.1"
+ "es-abstract": "^1.18.0-next.1"
},
"engines": {
"node": ">= 0.4"
@@ -15542,2957 +16556,2462 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/regexp.prototype.flags/node_modules/es-abstract": {
- "version": "1.17.7",
+ "node_modules/ganache-core/node_modules/string.prototype.trimend": {
+ "version": "1.0.3",
"license": "MIT",
"dependencies": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/regexpu-core": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/string.prototype.trimstart": {
+ "version": "1.0.3",
"license": "MIT",
"dependencies": {
- "regenerate": "^1.2.1",
- "regjsgen": "^0.2.0",
- "regjsparser": "^0.1.4"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/regjsgen": {
- "version": "0.2.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/regjsparser": {
- "version": "0.1.5",
- "license": "BSD",
+ "node_modules/ganache-core/node_modules/strip-hex-prefix": {
+ "version": "1.0.0",
+ "license": "MIT",
"dependencies": {
- "jsesc": "~0.5.0"
+ "is-hex-prefixed": "1.0.0"
},
- "bin": {
- "regjsparser": "bin/parser"
- }
- },
- "node_modules/ganache-core/node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "bin": {
- "jsesc": "bin/jsesc"
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/ganache-core/node_modules/repeat-element": {
- "version": "1.1.3",
+ "node_modules/ganache-core/node_modules/supports-color": {
+ "version": "5.5.0",
"license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/repeat-string": {
- "version": "1.6.1",
+ "node_modules/ganache-core/node_modules/swarm-js": {
+ "version": "0.1.40",
"license": "MIT",
- "engines": {
- "node": ">=0.10"
+ "optional": true,
+ "dependencies": {
+ "bluebird": "^3.5.0",
+ "buffer": "^5.0.5",
+ "eth-lib": "^0.1.26",
+ "fs-extra": "^4.0.2",
+ "got": "^7.1.0",
+ "mime-types": "^2.1.16",
+ "mkdirp-promise": "^5.0.1",
+ "mock-fs": "^4.1.0",
+ "setimmediate": "^1.0.5",
+ "tar": "^4.0.2",
+ "xhr-request": "^1.0.1"
}
},
- "node_modules/ganache-core/node_modules/repeating": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/swarm-js/node_modules/fs-extra": {
+ "version": "4.0.3",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "is-finite": "^1.0.0"
- },
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "node_modules/ganache-core/node_modules/swarm-js/node_modules/get-stream": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/request": {
- "version": "2.88.2",
- "license": "Apache-2.0",
+ "node_modules/ganache-core/node_modules/swarm-js/node_modules/got": {
+ "version": "7.1.0",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
+ "decompress-response": "^3.2.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "p-cancelable": "^0.3.0",
+ "p-timeout": "^1.1.1",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "url-parse-lax": "^1.0.0",
+ "url-to-options": "^1.0.1"
},
"engines": {
- "node": ">= 6"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/resolve-url": {
- "version": "0.2.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/responselike": {
- "version": "1.0.2",
+ "node_modules/ganache-core/node_modules/swarm-js/node_modules/is-stream": {
+ "version": "1.1.0",
"license": "MIT",
"optional": true,
- "dependencies": {
- "lowercase-keys": "^1.0.0"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/resumer": {
- "version": "0.0.0",
+ "node_modules/ganache-core/node_modules/swarm-js/node_modules/p-cancelable": {
+ "version": "0.3.0",
"license": "MIT",
- "dependencies": {
- "through": "~2.3.4"
+ "optional": true,
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/ret": {
- "version": "0.1.15",
+ "node_modules/ganache-core/node_modules/swarm-js/node_modules/prepend-http": {
+ "version": "1.0.4",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.12"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/rimraf": {
- "version": "2.6.3",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/swarm-js/node_modules/url-parse-lax": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "glob": "^7.1.3"
+ "prepend-http": "^1.0.1"
},
- "bin": {
- "rimraf": "bin.js"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/ripemd160": {
- "version": "2.0.2",
+ "node_modules/ganache-core/node_modules/tape": {
+ "version": "4.13.3",
"license": "MIT",
"dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "node_modules/ganache-core/node_modules/rlp": {
- "version": "2.2.6",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.11.1"
+ "deep-equal": "~1.1.1",
+ "defined": "~1.0.0",
+ "dotignore": "~0.1.2",
+ "for-each": "~0.3.3",
+ "function-bind": "~1.1.1",
+ "glob": "~7.1.6",
+ "has": "~1.0.3",
+ "inherits": "~2.0.4",
+ "is-regex": "~1.0.5",
+ "minimist": "~1.2.5",
+ "object-inspect": "~1.7.0",
+ "resolve": "~1.17.0",
+ "resumer": "~0.0.0",
+ "string.prototype.trim": "~1.2.1",
+ "through": "~2.3.8"
},
"bin": {
- "rlp": "bin/rlp"
+ "tape": "bin/tape"
}
},
- "node_modules/ganache-core/node_modules/rustbn.js": {
- "version": "0.2.0",
- "license": "(MIT OR Apache-2.0)"
- },
- "node_modules/ganache-core/node_modules/safe-buffer": {
- "version": "5.2.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/safe-event-emitter": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/tape/node_modules/glob": {
+ "version": "7.1.6",
"license": "ISC",
"dependencies": {
- "events": "^3.0.0"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/ganache-core/node_modules/safe-regex": {
- "version": "1.1.0",
+ "node_modules/ganache-core/node_modules/tape/node_modules/is-regex": {
+ "version": "1.0.5",
"license": "MIT",
"dependencies": {
- "ret": "~0.1.10"
+ "has": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/safer-buffer": {
- "version": "2.1.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/scrypt-js": {
- "version": "3.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/scryptsy": {
- "version": "1.2.1",
+ "node_modules/ganache-core/node_modules/tape/node_modules/object-inspect": {
+ "version": "1.7.0",
"license": "MIT",
- "optional": true,
- "dependencies": {
- "pbkdf2": "^3.0.3"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/secp256k1": {
- "version": "4.0.2",
- "hasInstallScript": true,
+ "node_modules/ganache-core/node_modules/tape/node_modules/resolve": {
+ "version": "1.17.0",
"license": "MIT",
"dependencies": {
- "elliptic": "^6.5.2",
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
+ "path-parse": "^1.0.6"
},
- "engines": {
- "node": ">=10.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/seedrandom": {
- "version": "3.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/semaphore": {
- "version": "1.1.0",
+ "node_modules/ganache-core/node_modules/tar": {
+ "version": "4.4.13",
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
+ },
"engines": {
- "node": ">=0.8.0"
+ "node": ">=4.5"
}
},
- "node_modules/ganache-core/node_modules/send": {
- "version": "0.17.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/tar/node_modules/fs-minipass": {
+ "version": "1.2.7",
+ "license": "ISC",
"optional": true,
"dependencies": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "~1.7.2",
- "mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "engines": {
- "node": ">= 0.8.0"
+ "minipass": "^2.6.0"
}
},
- "node_modules/ganache-core/node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/tar/node_modules/minipass": {
+ "version": "2.9.0",
+ "license": "ISC",
"optional": true,
"dependencies": {
- "ms": "2.0.0"
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
}
},
- "node_modules/ganache-core/node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/through": {
+ "version": "2.3.8",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/send/node_modules/ms": {
- "version": "2.1.1",
+ "node_modules/ganache-core/node_modules/through2": {
+ "version": "2.0.5",
"license": "MIT",
- "optional": true
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
},
- "node_modules/ganache-core/node_modules/serve-static": {
- "version": "1.14.1",
+ "node_modules/ganache-core/node_modules/timed-out": {
+ "version": "4.0.1",
"license": "MIT",
"optional": true,
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.1"
- },
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/servify": {
- "version": "0.1.12",
+ "node_modules/ganache-core/node_modules/tmp": {
+ "version": "0.1.0",
"license": "MIT",
- "optional": true,
"dependencies": {
- "body-parser": "^1.16.0",
- "cors": "^2.8.1",
- "express": "^4.14.0",
- "request": "^2.79.0",
- "xhr": "^2.3.3"
+ "rimraf": "^2.6.3"
},
"engines": {
"node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/set-immediate-shim": {
- "version": "1.0.1",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ganache-core/node_modules/set-value": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/to-object-path": {
+ "version": "0.3.0",
"license": "MIT",
"dependencies": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
+ "kind-of": "^3.0.2"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/set-value/node_modules/extend-shallow": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/to-object-path/node_modules/is-buffer": {
+ "version": "1.1.6",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
"license": "MIT",
"dependencies": {
- "is-extendable": "^0.1.0"
+ "is-buffer": "^1.1.5"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/set-value/node_modules/is-extendable": {
- "version": "0.1.1",
+ "node_modules/ganache-core/node_modules/to-readable-stream": {
+ "version": "1.0.0",
"license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/setimmediate": {
- "version": "1.0.5",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/setprototypeof": {
- "version": "1.1.1",
- "license": "ISC",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/sha.js": {
- "version": "2.4.11",
- "license": "(MIT AND BSD-3-Clause)",
+ "node_modules/ganache-core/node_modules/to-regex": {
+ "version": "3.0.2",
+ "license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
},
- "bin": {
- "sha.js": "bin.js"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/simple-concat": {
- "version": "1.0.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/simple-get": {
- "version": "2.8.1",
+ "node_modules/ganache-core/node_modules/toidentifier": {
+ "version": "1.0.0",
"license": "MIT",
"optional": true,
- "dependencies": {
- "decompress-response": "^3.3.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
+ "engines": {
+ "node": ">=0.6"
}
},
- "node_modules/ganache-core/node_modules/snapdragon": {
- "version": "0.8.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/tough-cookie": {
+ "version": "2.5.0",
+ "license": "BSD-3-Clause",
"dependencies": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.8"
}
},
- "node_modules/ganache-core/node_modules/snapdragon-node": {
- "version": "2.1.1",
+ "node_modules/ganache-core/node_modules/trim-right": {
+ "version": "1.0.1",
"license": "MIT",
- "dependencies": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon-node/node_modules/define-property": {
- "version": "1.0.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "license": "Apache-2.0",
"dependencies": {
- "is-descriptor": "^1.0.0"
+ "safe-buffer": "^5.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/snapdragon-util": {
- "version": "3.0.1",
+ "node_modules/ganache-core/node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "license": "Unlicense"
+ },
+ "node_modules/ganache-core/node_modules/tweetnacl-util": {
+ "version": "0.15.1",
+ "license": "Unlicense"
+ },
+ "node_modules/ganache-core/node_modules/type": {
+ "version": "1.2.0",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/type-is": {
+ "version": "1.6.18",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "kind-of": "^3.2.0"
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.6"
}
},
- "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/is-buffer": {
- "version": "1.1.6",
+ "node_modules/ganache-core/node_modules/typedarray": {
+ "version": "0.0.6",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/snapdragon-util/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
+ "is-typedarray": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/debug": {
- "version": "2.6.9",
+ "node_modules/ganache-core/node_modules/typewise": {
+ "version": "1.0.3",
"license": "MIT",
"dependencies": {
- "ms": "2.0.0"
+ "typewise-core": "^1.2.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/define-property": {
- "version": "0.2.5",
+ "node_modules/ganache-core/node_modules/typewise-core": {
+ "version": "1.2.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/typewiselite": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/ultron": {
+ "version": "1.1.1",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/underscore": {
+ "version": "1.9.1",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/union-value": {
+ "version": "1.0.1",
"license": "MIT",
"dependencies": {
- "is-descriptor": "^0.1.0"
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/extend-shallow": {
- "version": "2.0.1",
+ "node_modules/ganache-core/node_modules/union-value/node_modules/is-extendable": {
+ "version": "0.1.1",
"license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/universalify": {
+ "version": "0.1.2",
"license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 4.0.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
+ "node_modules/ganache-core/node_modules/unorm": {
+ "version": "1.6.0",
+ "license": "MIT or GPL-2.0",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-buffer": {
- "version": "1.1.6",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/unpipe": {
+ "version": "1.0.0",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor": {
- "version": "0.1.4",
+ "node_modules/ganache-core/node_modules/unset-value": {
+ "version": "1.0.0",
"license": "MIT",
"dependencies": {
- "kind-of": "^3.0.2"
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
"license": "MIT",
"dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "isarray": "1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/is-extendable": {
- "version": "0.1.1",
+ "node_modules/ganache-core/node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/kind-of": {
- "version": "5.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/ganache-core/node_modules/uri-js": {
+ "version": "4.4.1",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
}
},
- "node_modules/ganache-core/node_modules/snapdragon/node_modules/ms": {
- "version": "2.0.0",
+ "node_modules/ganache-core/node_modules/urix": {
+ "version": "0.1.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/source-map": {
- "version": "0.5.7",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ganache-core/node_modules/source-map-resolve": {
- "version": "0.5.3",
+ "node_modules/ganache-core/node_modules/url-parse-lax": {
+ "version": "3.0.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
+ "prepend-http": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/source-map-support": {
- "version": "0.5.12",
+ "node_modules/ganache-core/node_modules/url-set-query": {
+ "version": "1.0.0",
"license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "license": "BSD-3-Clause",
+ "node_modules/ganache-core/node_modules/url-to-options": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 4"
}
},
- "node_modules/ganache-core/node_modules/source-map-url": {
- "version": "0.4.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/split-string": {
- "version": "3.1.0",
+ "node_modules/ganache-core/node_modules/use": {
+ "version": "3.1.1",
"license": "MIT",
- "dependencies": {
- "extend-shallow": "^3.0.0"
- },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/sshpk": {
- "version": "1.16.1",
+ "node_modules/ganache-core/node_modules/utf-8-validate": {
+ "version": "5.0.4",
+ "hasInstallScript": true,
"license": "MIT",
"dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "node-gyp-build": "^4.2.0"
}
},
- "node_modules/ganache-core/node_modules/sshpk/node_modules/tweetnacl": {
- "version": "0.14.5",
- "license": "Unlicense"
+ "node_modules/ganache-core/node_modules/utf8": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "optional": true
},
- "node_modules/ganache-core/node_modules/static-extend": {
- "version": "0.1.2",
+ "node_modules/ganache-core/node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/util.promisify": {
+ "version": "1.1.1",
"license": "MIT",
"dependencies": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "for-each": "^0.3.3",
+ "has-symbols": "^1.0.1",
+ "object.getownpropertydescriptors": "^2.1.1"
},
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/static-extend/node_modules/define-property": {
- "version": "0.2.5",
+ "node_modules/ganache-core/node_modules/utils-merge": {
+ "version": "1.0.1",
"license": "MIT",
- "dependencies": {
- "is-descriptor": "^0.1.0"
- },
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4.0"
}
},
- "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
+ "node_modules/ganache-core/node_modules/uuid": {
+ "version": "3.4.0",
"license": "MIT",
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "bin": {
+ "uuid": "bin/uuid"
}
},
- "node_modules/ganache-core/node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/varint": {
+ "version": "5.0.2",
"license": "MIT",
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/vary": {
+ "version": "1.1.2",
+ "license": "MIT",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.8"
}
},
- "node_modules/ganache-core/node_modules/static-extend/node_modules/is-buffer": {
- "version": "1.1.6",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor": {
- "version": "0.1.4",
+ "node_modules/ganache-core/node_modules/verror": {
+ "version": "1.10.0",
+ "engines": [
+ "node >=0.6.0"
+ ],
"license": "MIT",
"dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
}
},
- "node_modules/ganache-core/node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3": {
+ "version": "1.2.11",
+ "hasInstallScript": true,
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "is-buffer": "^1.1.5"
+ "web3-bzz": "1.2.11",
+ "web3-core": "1.2.11",
+ "web3-eth": "1.2.11",
+ "web3-eth-personal": "1.2.11",
+ "web3-net": "1.2.11",
+ "web3-shh": "1.2.11",
+ "web3-utils": "1.2.11"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/static-extend/node_modules/is-descriptor": {
- "version": "0.1.6",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-bzz": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "@types/node": "^12.12.6",
+ "got": "9.6.0",
+ "swarm-js": "^0.1.40",
+ "underscore": "1.9.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/static-extend/node_modules/kind-of": {
- "version": "5.1.0",
+ "node_modules/ganache-core/node_modules/web3-bzz/node_modules/@types/node": {
+ "version": "12.19.12",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
+ "optional": true
},
- "node_modules/ganache-core/node_modules/statuses": {
- "version": "1.5.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-core": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/ganache-core/node_modules/stream-to-pull-stream": {
- "version": "1.7.3",
- "license": "MIT",
"dependencies": {
- "looper": "^3.0.0",
- "pull-stream": "^3.2.3"
+ "@types/bn.js": "^4.11.5",
+ "@types/node": "^12.12.6",
+ "bignumber.js": "^9.0.0",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-requestmanager": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/stream-to-pull-stream/node_modules/looper": {
- "version": "3.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/strict-uri-encode": {
- "version": "1.1.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-core-helpers": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
+ "dependencies": {
+ "underscore": "1.9.1",
+ "web3-eth-iban": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/string_decoder": {
- "version": "1.1.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-core-method": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "@ethersproject/transactions": "^5.0.0-beta.135",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-promievent": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/string.prototype.trim": {
- "version": "1.2.3",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-core-promievent": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
+ "eventemitter3": "4.0.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/string.prototype.trimend": {
- "version": "1.0.3",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-core-requestmanager": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11",
+ "web3-providers-http": "1.2.11",
+ "web3-providers-ipc": "1.2.11",
+ "web3-providers-ws": "1.2.11"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/string.prototype.trimstart": {
- "version": "1.0.3",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-core-subscriptions": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "eventemitter3": "4.0.4",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/strip-hex-prefix": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/web3-core/node_modules/@types/node": {
+ "version": "12.19.12",
"license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/web3-eth": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "is-hex-prefixed": "1.0.0"
+ "underscore": "1.9.1",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-eth-abi": "1.2.11",
+ "web3-eth-accounts": "1.2.11",
+ "web3-eth-contract": "1.2.11",
+ "web3-eth-ens": "1.2.11",
+ "web3-eth-iban": "1.2.11",
+ "web3-eth-personal": "1.2.11",
+ "web3-net": "1.2.11",
+ "web3-utils": "1.2.11"
},
"engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/supports-color": {
- "version": "5.5.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-eth-abi": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "has-flag": "^3.0.0"
+ "@ethersproject/abi": "5.0.0-beta.153",
+ "underscore": "1.9.1",
+ "web3-utils": "1.2.11"
},
"engines": {
- "node": ">=4"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/swarm-js": {
- "version": "0.1.40",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-eth-accounts": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
"dependencies": {
- "bluebird": "^3.5.0",
- "buffer": "^5.0.5",
- "eth-lib": "^0.1.26",
- "fs-extra": "^4.0.2",
- "got": "^7.1.0",
- "mime-types": "^2.1.16",
- "mkdirp-promise": "^5.0.1",
- "mock-fs": "^4.1.0",
- "setimmediate": "^1.0.5",
- "tar": "^4.0.2",
- "xhr-request": "^1.0.1"
+ "crypto-browserify": "3.12.0",
+ "eth-lib": "0.2.8",
+ "ethereumjs-common": "^1.3.2",
+ "ethereumjs-tx": "^2.1.1",
+ "scrypt-js": "^3.0.1",
+ "underscore": "1.9.1",
+ "uuid": "3.3.2",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/swarm-js/node_modules/fs-extra": {
- "version": "4.0.3",
+ "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/eth-lib": {
+ "version": "0.2.8",
"license": "MIT",
"optional": true,
"dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
}
},
- "node_modules/ganache-core/node_modules/swarm-js/node_modules/get-stream": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/uuid": {
+ "version": "3.3.2",
"license": "MIT",
"optional": true,
- "engines": {
- "node": ">=4"
+ "bin": {
+ "uuid": "bin/uuid"
}
},
- "node_modules/ganache-core/node_modules/swarm-js/node_modules/got": {
- "version": "7.1.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-eth-contract": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
"dependencies": {
- "decompress-response": "^3.2.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-plain-obj": "^1.1.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "p-cancelable": "^0.3.0",
- "p-timeout": "^1.1.1",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "url-parse-lax": "^1.0.0",
- "url-to-options": "^1.0.1"
+ "@types/bn.js": "^4.11.5",
+ "underscore": "1.9.1",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-promievent": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-eth-abi": "1.2.11",
+ "web3-utils": "1.2.11"
},
"engines": {
- "node": ">=4"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/swarm-js/node_modules/is-stream": {
- "version": "1.1.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-eth-ens": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
+ "dependencies": {
+ "content-hash": "^2.5.2",
+ "eth-ens-namehash": "2.0.8",
+ "underscore": "1.9.1",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-promievent": "1.2.11",
+ "web3-eth-abi": "1.2.11",
+ "web3-eth-contract": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/swarm-js/node_modules/p-cancelable": {
- "version": "0.3.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-eth-iban": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.2.11"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/swarm-js/node_modules/prepend-http": {
- "version": "1.0.4",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-eth-personal": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
+ "dependencies": {
+ "@types/node": "^12.12.6",
+ "web3-core": "1.2.11",
+ "web3-core-helpers": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-net": "1.2.11",
+ "web3-utils": "1.2.11"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/swarm-js/node_modules/url-parse-lax": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/web3-eth-personal/node_modules/@types/node": {
+ "version": "12.19.12",
"license": "MIT",
+ "optional": true
+ },
+ "node_modules/ganache-core/node_modules/web3-net": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
"dependencies": {
- "prepend-http": "^1.0.1"
+ "web3-core": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-utils": "1.2.11"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/tape": {
- "version": "4.13.3",
+ "node_modules/ganache-core/node_modules/web3-provider-engine": {
+ "version": "14.2.1",
"license": "MIT",
"dependencies": {
- "deep-equal": "~1.1.1",
- "defined": "~1.0.0",
- "dotignore": "~0.1.2",
- "for-each": "~0.3.3",
- "function-bind": "~1.1.1",
- "glob": "~7.1.6",
- "has": "~1.0.3",
- "inherits": "~2.0.4",
- "is-regex": "~1.0.5",
- "minimist": "~1.2.5",
- "object-inspect": "~1.7.0",
- "resolve": "~1.17.0",
- "resumer": "~0.0.0",
- "string.prototype.trim": "~1.2.1",
- "through": "~2.3.8"
- },
- "bin": {
- "tape": "bin/tape"
+ "async": "^2.5.0",
+ "backoff": "^2.5.0",
+ "clone": "^2.0.0",
+ "cross-fetch": "^2.1.0",
+ "eth-block-tracker": "^3.0.0",
+ "eth-json-rpc-infura": "^3.1.0",
+ "eth-sig-util": "3.0.0",
+ "ethereumjs-block": "^1.2.2",
+ "ethereumjs-tx": "^1.2.0",
+ "ethereumjs-util": "^5.1.5",
+ "ethereumjs-vm": "^2.3.4",
+ "json-rpc-error": "^2.0.0",
+ "json-stable-stringify": "^1.0.1",
+ "promise-to-callback": "^1.0.0",
+ "readable-stream": "^2.2.9",
+ "request": "^2.85.0",
+ "semaphore": "^1.0.3",
+ "ws": "^5.1.1",
+ "xhr": "^2.2.0",
+ "xtend": "^4.0.1"
}
},
- "node_modules/ganache-core/node_modules/tape/node_modules/glob": {
- "version": "7.1.6",
- "license": "ISC",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/abstract-leveldown": {
+ "version": "2.6.3",
+ "license": "MIT",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/tape/node_modules/is-regex": {
- "version": "1.0.5",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/deferred-leveldown": {
+ "version": "1.2.2",
"license": "MIT",
"dependencies": {
- "has": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "abstract-leveldown": "~2.6.0"
}
},
- "node_modules/ganache-core/node_modules/tape/node_modules/object-inspect": {
- "version": "1.7.0",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/eth-sig-util": {
+ "version": "1.4.2",
+ "license": "ISC",
+ "dependencies": {
+ "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
+ "ethereumjs-util": "^5.1.1"
+ }
},
- "node_modules/ganache-core/node_modules/tape/node_modules/resolve": {
- "version": "1.17.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-account": {
+ "version": "2.0.5",
+ "license": "MPL-2.0",
"dependencies": {
- "path-parse": "^1.0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/tar": {
- "version": "4.4.13",
- "license": "ISC",
- "optional": true,
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block": {
+ "version": "1.7.1",
+ "license": "MPL-2.0",
"dependencies": {
- "chownr": "^1.1.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.8.6",
- "minizlib": "^1.2.1",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.3"
- },
- "engines": {
- "node": ">=4.5"
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/tar/node_modules/fs-minipass": {
- "version": "1.2.7",
- "license": "ISC",
- "optional": true,
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block/node_modules/ethereum-common": {
+ "version": "0.2.0",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-tx": {
+ "version": "1.3.7",
+ "license": "MPL-2.0",
"dependencies": {
- "minipass": "^2.6.0"
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
}
},
- "node_modules/ganache-core/node_modules/tar/node_modules/minipass": {
- "version": "2.9.0",
- "license": "ISC",
- "optional": true,
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/through": {
- "version": "2.3.8",
- "license": "MIT"
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm": {
+ "version": "2.6.0",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
+ }
},
- "node_modules/ganache-core/node_modules/through2": {
- "version": "2.0.5",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": {
+ "version": "2.2.2",
+ "license": "MPL-2.0",
"dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/ganache-core/node_modules/timed-out": {
- "version": "4.0.1",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/ganache-core/node_modules/tmp": {
- "version": "0.1.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": {
+ "version": "2.1.2",
+ "license": "MPL-2.0",
"dependencies": {
- "rimraf": "^2.6.3"
- },
- "engines": {
- "node": ">=6"
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
}
},
- "node_modules/ganache-core/node_modules/to-object-path": {
- "version": "0.3.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "license": "MPL-2.0",
"dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/ganache-core/node_modules/to-object-path/node_modules/is-buffer": {
- "version": "1.1.6",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/isarray": {
+ "version": "0.0.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/to-object-path/node_modules/kind-of": {
- "version": "3.2.2",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-codec": {
+ "version": "7.0.1",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-errors": {
+ "version": "1.0.5",
"license": "MIT",
"dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
+ "errno": "~0.1.1"
}
},
- "node_modules/ganache-core/node_modules/to-readable-stream": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream": {
+ "version": "1.3.1",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=6"
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/to-regex": {
- "version": "3.0.2",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream/node_modules/readable-stream": {
+ "version": "1.1.14",
"license": "MIT",
"dependencies": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/toidentifier": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws": {
+ "version": "0.0.0",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/ganache-core/node_modules/tough-cookie": {
- "version": "2.5.0",
- "license": "BSD-3-Clause",
"dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=0.8"
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
}
},
- "node_modules/ganache-core/node_modules/trim-right": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/readable-stream": {
+ "version": "1.0.34",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
},
- "node_modules/ganache-core/node_modules/tunnel-agent": {
- "version": "0.6.0",
- "license": "Apache-2.0",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/xtend": {
+ "version": "2.1.2",
"dependencies": {
- "safe-buffer": "^5.0.1"
+ "object-keys": "~0.4.0"
},
"engines": {
- "node": "*"
+ "node": ">=0.4"
}
},
- "node_modules/ganache-core/node_modules/tweetnacl": {
- "version": "1.0.3",
- "license": "Unlicense"
- },
- "node_modules/ganache-core/node_modules/tweetnacl-util": {
- "version": "0.15.1",
- "license": "Unlicense"
- },
- "node_modules/ganache-core/node_modules/type": {
- "version": "1.2.0",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/type-is": {
- "version": "1.6.18",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/levelup": {
+ "version": "1.3.9",
"license": "MIT",
- "optional": true,
"dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/typedarray": {
- "version": "0.0.6",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ltgt": {
+ "version": "2.2.1",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown": {
+ "version": "1.4.1",
"license": "MIT",
"dependencies": {
- "is-typedarray": "^1.0.0"
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
}
},
- "node_modules/ganache-core/node_modules/typewise": {
- "version": "1.0.3",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown/node_modules/abstract-leveldown": {
+ "version": "2.7.2",
"license": "MIT",
"dependencies": {
- "typewise-core": "^1.2.0"
+ "xtend": "~4.0.0"
}
},
- "node_modules/ganache-core/node_modules/typewise-core": {
- "version": "1.2.0",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree": {
+ "version": "2.3.2",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ }
+ },
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree/node_modules/async": {
+ "version": "1.5.2",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/typewiselite": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/object-keys": {
+ "version": "0.4.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/ultron": {
- "version": "1.1.1",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
},
- "node_modules/ganache-core/node_modules/underscore": {
- "version": "1.9.1",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/semver": {
+ "version": "5.4.1",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
},
- "node_modules/ganache-core/node_modules/union-value": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ws": {
+ "version": "5.2.2",
"license": "MIT",
"dependencies": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "async-limiter": "~1.0.0"
}
},
- "node_modules/ganache-core/node_modules/union-value/node_modules/is-extendable": {
- "version": "0.1.1",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-providers-http": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
+ "dependencies": {
+ "web3-core-helpers": "1.2.11",
+ "xhr2-cookies": "1.1.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/universalify": {
- "version": "0.1.2",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-providers-ipc": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
+ "dependencies": {
+ "oboe": "2.1.4",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11"
+ },
"engines": {
- "node": ">= 4.0.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/unorm": {
- "version": "1.6.0",
- "license": "MIT or GPL-2.0",
+ "node_modules/ganache-core/node_modules/web3-providers-ws": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
+ "dependencies": {
+ "eventemitter3": "4.0.4",
+ "underscore": "1.9.1",
+ "web3-core-helpers": "1.2.11",
+ "websocket": "^1.0.31"
+ },
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/unpipe": {
- "version": "1.0.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-shh": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
"optional": true,
+ "dependencies": {
+ "web3-core": "1.2.11",
+ "web3-core-method": "1.2.11",
+ "web3-core-subscriptions": "1.2.11",
+ "web3-net": "1.2.11"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/unset-value": {
- "version": "1.0.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/web3-utils": {
+ "version": "1.2.11",
+ "license": "LGPL-3.0",
+ "optional": true,
"dependencies": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
+ "bn.js": "^4.11.9",
+ "eth-lib": "0.2.8",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "underscore": "1.9.1",
+ "utf8": "3.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value": {
- "version": "0.3.1",
+ "node_modules/ganache-core/node_modules/web3-utils/node_modules/eth-lib": {
+ "version": "0.2.8",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
}
},
- "node_modules/ganache-core/node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
- "version": "2.1.0",
- "license": "MIT",
+ "node_modules/ganache-core/node_modules/websocket": {
+ "version": "1.0.32",
+ "license": "Apache-2.0",
"dependencies": {
- "isarray": "1.0.0"
+ "bufferutil": "^4.0.1",
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "typedarray-to-buffer": "^3.1.5",
+ "utf-8-validate": "^5.0.2",
+ "yaeti": "^0.0.6"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.0.0"
}
},
- "node_modules/ganache-core/node_modules/unset-value/node_modules/has-values": {
- "version": "0.1.4",
+ "node_modules/ganache-core/node_modules/websocket/node_modules/debug": {
+ "version": "2.6.9",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ganache-core/node_modules/uri-js": {
- "version": "4.4.1",
- "license": "BSD-2-Clause",
"dependencies": {
- "punycode": "^2.1.0"
+ "ms": "2.0.0"
}
},
- "node_modules/ganache-core/node_modules/urix": {
- "version": "0.1.0",
+ "node_modules/ganache-core/node_modules/websocket/node_modules/ms": {
+ "version": "2.0.0",
"license": "MIT"
},
- "node_modules/ganache-core/node_modules/url-parse-lax": {
- "version": "3.0.0",
+ "node_modules/ganache-core/node_modules/whatwg-fetch": {
+ "version": "2.0.4",
+ "license": "MIT"
+ },
+ "node_modules/ganache-core/node_modules/wrappy": {
+ "version": "1.0.2",
+ "license": "ISC"
+ },
+ "node_modules/ganache-core/node_modules/ws": {
+ "version": "3.3.3",
"license": "MIT",
"optional": true,
"dependencies": {
- "prepend-http": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
}
},
- "node_modules/ganache-core/node_modules/url-set-query": {
- "version": "1.0.0",
+ "node_modules/ganache-core/node_modules/ws/node_modules/safe-buffer": {
+ "version": "5.1.2",
"license": "MIT",
"optional": true
},
- "node_modules/ganache-core/node_modules/url-to-options": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/xhr": {
+ "version": "2.6.0",
"license": "MIT",
- "optional": true,
- "engines": {
- "node": ">= 4"
+ "dependencies": {
+ "global": "~4.4.0",
+ "is-function": "^1.0.1",
+ "parse-headers": "^2.0.0",
+ "xtend": "^4.0.0"
}
},
- "node_modules/ganache-core/node_modules/use": {
- "version": "3.1.1",
+ "node_modules/ganache-core/node_modules/xhr-request": {
+ "version": "1.1.0",
"license": "MIT",
- "engines": {
- "node": ">=0.10.0"
+ "optional": true,
+ "dependencies": {
+ "buffer-to-arraybuffer": "^0.0.5",
+ "object-assign": "^4.1.1",
+ "query-string": "^5.0.1",
+ "simple-get": "^2.7.0",
+ "timed-out": "^4.0.1",
+ "url-set-query": "^1.0.0",
+ "xhr": "^2.0.4"
}
},
- "node_modules/ganache-core/node_modules/utf-8-validate": {
- "version": "5.0.4",
- "hasInstallScript": true,
+ "node_modules/ganache-core/node_modules/xhr-request-promise": {
+ "version": "0.1.3",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "node-gyp-build": "^4.2.0"
+ "xhr-request": "^1.1.0"
}
},
- "node_modules/ganache-core/node_modules/utf8": {
- "version": "3.0.0",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/util-deprecate": {
- "version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/util.promisify": {
- "version": "1.1.1",
+ "node_modules/ganache-core/node_modules/xhr2-cookies": {
+ "version": "1.1.0",
"license": "MIT",
+ "optional": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "for-each": "^0.3.3",
- "has-symbols": "^1.0.1",
- "object.getownpropertydescriptors": "^2.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "cookiejar": "^2.1.1"
}
},
- "node_modules/ganache-core/node_modules/utils-merge": {
- "version": "1.0.1",
+ "node_modules/ganache-core/node_modules/xtend": {
+ "version": "4.0.2",
"license": "MIT",
- "optional": true,
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=0.4"
}
},
- "node_modules/ganache-core/node_modules/uuid": {
- "version": "3.4.0",
+ "node_modules/ganache-core/node_modules/yaeti": {
+ "version": "0.0.6",
"license": "MIT",
- "bin": {
- "uuid": "bin/uuid"
+ "engines": {
+ "node": ">=0.10.32"
}
},
- "node_modules/ganache-core/node_modules/varint": {
- "version": "5.0.2",
- "license": "MIT",
- "optional": true
+ "node_modules/ganache-core/node_modules/yallist": {
+ "version": "3.1.1",
+ "license": "ISC"
},
- "node_modules/ganache-core/node_modules/vary": {
- "version": "1.1.2",
- "license": "MIT",
+ "node_modules/gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"optional": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ganache-core/node_modules/verror": {
- "version": "1.10.0",
- "engines": [
- "node >=0.6.0"
- ],
- "license": "MIT",
+ "peer": true,
"dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
}
},
- "node_modules/ganache-core/node_modules/web3": {
- "version": "1.2.11",
- "hasInstallScript": true,
- "license": "LGPL-3.0",
+ "node_modules/gauge/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"optional": true,
- "dependencies": {
- "web3-bzz": "1.2.11",
- "web3-core": "1.2.11",
- "web3-eth": "1.2.11",
- "web3-eth-personal": "1.2.11",
- "web3-net": "1.2.11",
- "web3-shh": "1.2.11",
- "web3-utils": "1.2.11"
- },
+ "peer": true,
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-bzz": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
+ "node_modules/gauge/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"optional": true,
+ "peer": true,
"dependencies": {
- "@types/node": "^12.12.6",
- "got": "9.6.0",
- "swarm-js": "^0.1.40",
- "underscore": "1.9.1"
+ "number-is-nan": "^1.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-bzz/node_modules/@types/node": {
- "version": "12.19.12",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/web3-core": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
+ "node_modules/gauge/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"optional": true,
+ "peer": true,
"dependencies": {
- "@types/bn.js": "^4.11.5",
- "@types/node": "^12.12.6",
- "bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.2.11",
- "web3-core-method": "1.2.11",
- "web3-core-requestmanager": "1.2.11",
- "web3-utils": "1.2.11"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-core-helpers": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
+ "node_modules/gauge/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"optional": true,
+ "peer": true,
"dependencies": {
- "underscore": "1.9.1",
- "web3-eth-iban": "1.2.11",
- "web3-utils": "1.2.11"
+ "ansi-regex": "^2.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-core-method": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
- "dependencies": {
- "@ethersproject/transactions": "^5.0.0-beta.135",
- "underscore": "1.9.1",
- "web3-core-helpers": "1.2.11",
- "web3-core-promievent": "1.2.11",
- "web3-core-subscriptions": "1.2.11",
- "web3-utils": "1.2.11"
- },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"engines": {
- "node": ">=8.0.0"
+ "node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/ganache-core/node_modules/web3-core-promievent": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
- "dependencies": {
- "eventemitter3": "4.0.4"
- },
+ "node_modules/get-func-name": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
+ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
"engines": {
- "node": ">=8.0.0"
+ "node": "*"
}
},
- "node_modules/ganache-core/node_modules/web3-core-requestmanager": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/get-intrinsic": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+ "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
"dependencies": {
- "underscore": "1.9.1",
- "web3-core-helpers": "1.2.11",
- "web3-providers-http": "1.2.11",
- "web3-providers-ipc": "1.2.11",
- "web3-providers-ws": "1.2.11"
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1"
},
- "engines": {
- "node": ">=8.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/web3-core-subscriptions": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
- "dependencies": {
- "eventemitter3": "4.0.4",
- "underscore": "1.9.1",
- "web3-core-helpers": "1.2.11"
- },
+ "node_modules/get-port": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
+ "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/web3-core/node_modules/@types/node": {
- "version": "12.19.12",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/web3-eth": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
- "dependencies": {
- "underscore": "1.9.1",
- "web3-core": "1.2.11",
- "web3-core-helpers": "1.2.11",
- "web3-core-method": "1.2.11",
- "web3-core-subscriptions": "1.2.11",
- "web3-eth-abi": "1.2.11",
- "web3-eth-accounts": "1.2.11",
- "web3-eth-contract": "1.2.11",
- "web3-eth-ens": "1.2.11",
- "web3-eth-iban": "1.2.11",
- "web3-eth-personal": "1.2.11",
- "web3-net": "1.2.11",
- "web3-utils": "1.2.11"
- },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
"engines": {
- "node": ">=8.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-abi": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
"dependencies": {
- "@ethersproject/abi": "5.0.0-beta.153",
- "underscore": "1.9.1",
- "web3-utils": "1.2.11"
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-accounts": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
- "dependencies": {
- "crypto-browserify": "3.12.0",
- "eth-lib": "0.2.8",
- "ethereumjs-common": "^1.3.2",
- "ethereumjs-tx": "^2.1.1",
- "scrypt-js": "^3.0.1",
- "underscore": "1.9.1",
- "uuid": "3.3.2",
- "web3-core": "1.2.11",
- "web3-core-helpers": "1.2.11",
- "web3-core-method": "1.2.11",
- "web3-utils": "1.2.11"
- },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/eth-lib": {
- "version": "0.2.8",
- "license": "MIT",
- "optional": true,
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
+ "assert-plus": "^1.0.0"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-accounts/node_modules/uuid": {
- "version": "3.3.2",
- "license": "MIT",
- "optional": true,
+ "node_modules/ghost-testrpc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz",
+ "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "node-emoji": "^1.10.0"
+ },
"bin": {
- "uuid": "bin/uuid"
+ "testrpc-sc": "index.js"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-contract": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
"optional": true,
+ "peer": true
+ },
+ "node_modules/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"dependencies": {
- "@types/bn.js": "^4.11.5",
- "underscore": "1.9.1",
- "web3-core": "1.2.11",
- "web3-core-helpers": "1.2.11",
- "web3-core-method": "1.2.11",
- "web3-core-promievent": "1.2.11",
- "web3-core-subscriptions": "1.2.11",
- "web3-eth-abi": "1.2.11",
- "web3-utils": "1.2.11"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-ens": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
"dependencies": {
- "content-hash": "^2.5.2",
- "eth-ens-namehash": "2.0.8",
- "underscore": "1.9.1",
- "web3-core": "1.2.11",
- "web3-core-helpers": "1.2.11",
- "web3-core-promievent": "1.2.11",
- "web3-eth-abi": "1.2.11",
- "web3-eth-contract": "1.2.11",
- "web3-utils": "1.2.11"
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-iban": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/glob-base/node_modules/glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.2.11"
- },
+ "is-glob": "^2.0.0"
+ }
+ },
+ "node_modules/glob-base/node_modules/is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-personal": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/glob-base/node_modules/is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dependencies": {
- "@types/node": "^12.12.6",
- "web3-core": "1.2.11",
- "web3-core-helpers": "1.2.11",
- "web3-core-method": "1.2.11",
- "web3-net": "1.2.11",
- "web3-utils": "1.2.11"
+ "is-extglob": "^1.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-eth-personal/node_modules/@types/node": {
- "version": "12.19.12",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/web3-net": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dependencies": {
- "web3-core": "1.2.11",
- "web3-core-method": "1.2.11",
- "web3-utils": "1.2.11"
+ "is-glob": "^4.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 6"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine": {
- "version": "14.2.1",
- "license": "MIT",
+ "node_modules/global": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
+ "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
"dependencies": {
- "async": "^2.5.0",
- "backoff": "^2.5.0",
- "clone": "^2.0.0",
- "cross-fetch": "^2.1.0",
- "eth-block-tracker": "^3.0.0",
- "eth-json-rpc-infura": "^3.1.0",
- "eth-sig-util": "3.0.0",
- "ethereumjs-block": "^1.2.2",
- "ethereumjs-tx": "^1.2.0",
- "ethereumjs-util": "^5.1.5",
- "ethereumjs-vm": "^2.3.4",
- "json-rpc-error": "^2.0.0",
- "json-stable-stringify": "^1.0.1",
- "promise-to-callback": "^1.0.0",
- "readable-stream": "^2.2.9",
- "request": "^2.85.0",
- "semaphore": "^1.0.3",
- "ws": "^5.1.1",
- "xhr": "^2.2.0",
- "xtend": "^4.0.1"
+ "min-document": "^2.19.0",
+ "process": "^0.11.10"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/abstract-leveldown": {
- "version": "2.6.3",
- "license": "MIT",
+ "node_modules/global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
"dependencies": {
- "xtend": "~4.0.0"
+ "global-prefix": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/deferred-leveldown": {
- "version": "1.2.2",
- "license": "MIT",
+ "node_modules/global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
"dependencies": {
- "abstract-leveldown": "~2.6.0"
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/eth-sig-util": {
- "version": "1.4.2",
- "license": "ISC",
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
"dependencies": {
- "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git",
- "ethereumjs-util": "^5.1.1"
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-account": {
- "version": "2.0.5",
- "license": "MPL-2.0",
+ "node_modules/globals": {
+ "version": "13.13.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
+ "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "dev": true,
"dependencies": {
- "ethereumjs-util": "^5.0.0",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block": {
- "version": "1.7.1",
- "license": "MPL-2.0",
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
"dependencies": {
- "async": "^2.0.1",
- "ethereum-common": "0.2.0",
- "ethereumjs-tx": "^1.2.2",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-block/node_modules/ethereum-common": {
- "version": "0.2.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-tx": {
- "version": "1.3.7",
- "license": "MPL-2.0",
+ "node_modules/got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
"dependencies": {
- "ethereum-common": "^0.0.18",
- "ethereumjs-util": "^5.0.0"
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.6"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
+ "node_modules/got/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
"dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm": {
- "version": "2.6.0",
- "license": "MPL-2.0",
+ "node_modules/got/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dependencies": {
- "async": "^2.1.2",
- "async-eventemitter": "^0.2.2",
- "ethereumjs-account": "^2.0.3",
- "ethereumjs-block": "~2.2.0",
- "ethereumjs-common": "^1.1.0",
- "ethereumjs-util": "^6.0.0",
- "fake-merkle-patricia-tree": "^1.0.1",
- "functional-red-black-tree": "^1.0.1",
- "merkle-patricia-tree": "^2.3.2",
- "rustbn.js": "~0.2.0",
- "safe-buffer": "^5.1.1"
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block": {
- "version": "2.2.2",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^2.0.1",
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-tx": "^2.1.1",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
+ "node_modules/got/node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
- "version": "5.2.1",
- "license": "MPL-2.0",
- "dependencies": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
+ "node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": {
- "version": "2.1.2",
- "license": "MPL-2.0",
- "dependencies": {
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-util": "^6.0.0"
+ "node_modules/growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "engines": {
+ "node": ">=4.x"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ethereumjs-vm/node_modules/ethereumjs-util": {
- "version": "6.2.1",
- "license": "MPL-2.0",
+ "node_modules/handlebars": {
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
+ "dev": true,
"dependencies": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.0",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/isarray": {
- "version": "0.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-codec": {
- "version": "7.0.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-errors": {
- "version": "1.0.5",
- "license": "MIT",
- "dependencies": {
- "errno": "~0.1.1"
+ "node_modules/handlebars/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream": {
- "version": "1.3.1",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1",
- "level-errors": "^1.0.3",
- "readable-stream": "^1.0.33",
- "xtend": "^4.0.0"
+ "node_modules/har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-iterator-stream/node_modules/readable-stream": {
- "version": "1.1.14",
- "license": "MIT",
+ "node_modules/har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "deprecated": "this library is no longer supported",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws": {
- "version": "0.0.0",
- "license": "MIT",
+ "node_modules/hardhat": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.9.3.tgz",
+ "integrity": "sha512-7Vw99RbYbMZ15UzegOR/nqIYIqddZXvLwJGaX5sX4G5bydILnbjmDU6g3jMKJSiArEixS3vHAEaOs5CW1JQ3hg==",
"dependencies": {
- "readable-stream": "~1.0.15",
- "xtend": "~2.1.1"
+ "@ethereumjs/block": "^3.6.0",
+ "@ethereumjs/blockchain": "^5.5.0",
+ "@ethereumjs/common": "^2.6.0",
+ "@ethereumjs/tx": "^3.4.0",
+ "@ethereumjs/vm": "^5.6.0",
+ "@ethersproject/abi": "^5.1.2",
+ "@metamask/eth-sig-util": "^4.0.0",
+ "@sentry/node": "^5.18.1",
+ "@solidity-parser/parser": "^0.14.1",
+ "@types/bn.js": "^5.1.0",
+ "@types/lru-cache": "^5.1.0",
+ "abort-controller": "^3.0.0",
+ "adm-zip": "^0.4.16",
+ "aggregate-error": "^3.0.0",
+ "ansi-escapes": "^4.3.0",
+ "chalk": "^2.4.2",
+ "chokidar": "^3.4.0",
+ "ci-info": "^2.0.0",
+ "debug": "^4.1.1",
+ "enquirer": "^2.3.0",
+ "env-paths": "^2.2.0",
+ "ethereum-cryptography": "^0.1.2",
+ "ethereumjs-abi": "^0.6.8",
+ "ethereumjs-util": "^7.1.3",
+ "find-up": "^2.1.0",
+ "fp-ts": "1.19.3",
+ "fs-extra": "^7.0.1",
+ "glob": "^7.1.3",
+ "immutable": "^4.0.0-rc.12",
+ "io-ts": "1.10.4",
+ "lodash": "^4.17.11",
+ "merkle-patricia-tree": "^4.2.2",
+ "mnemonist": "^0.38.0",
+ "mocha": "^9.2.0",
+ "p-map": "^4.0.0",
+ "qs": "^6.7.0",
+ "raw-body": "^2.4.1",
+ "resolve": "1.17.0",
+ "semver": "^6.3.0",
+ "slash": "^3.0.0",
+ "solc": "0.7.3",
+ "source-map-support": "^0.5.13",
+ "stacktrace-parser": "^0.1.10",
+ "true-case-path": "^2.2.1",
+ "tsort": "0.0.1",
+ "undici": "^4.14.1",
+ "uuid": "^8.3.2",
+ "ws": "^7.4.6"
+ },
+ "bin": {
+ "hardhat": "internal/cli/cli.js"
+ },
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || ^16.0.0"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/readable-stream": {
- "version": "1.0.34",
- "license": "MIT",
+ "node_modules/hardhat-contract-sizer": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.5.1.tgz",
+ "integrity": "sha512-28yRb73e30aBVaZOOHTlHZFIdIasA/iFunIehrUviIJTubvdQjtSiQUo2wexHFtt71mQeMPP8qjw2sdbgatDnQ==",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "chalk": "^4.0.0",
+ "cli-table3": "^0.6.0"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.0"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/level-ws/node_modules/xtend": {
- "version": "2.1.2",
+ "node_modules/hardhat-contract-sizer/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
- "object-keys": "~0.4.0"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=0.4"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/levelup": {
- "version": "1.3.9",
- "license": "MIT",
+ "node_modules/hardhat-contract-sizer/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
- "deferred-leveldown": "~1.2.1",
- "level-codec": "~7.0.0",
- "level-errors": "~1.0.3",
- "level-iterator-stream": "~1.3.0",
- "prr": "~1.0.1",
- "semver": "~5.4.1",
- "xtend": "~4.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ltgt": {
- "version": "2.2.1",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown": {
- "version": "1.4.1",
- "license": "MIT",
+ "node_modules/hardhat-contract-sizer/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
- "abstract-leveldown": "~2.7.1",
- "functional-red-black-tree": "^1.0.1",
- "immediate": "^3.2.3",
- "inherits": "~2.0.1",
- "ltgt": "~2.2.0",
- "safe-buffer": "~5.1.1"
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/memdown/node_modules/abstract-leveldown": {
- "version": "2.7.2",
- "license": "MIT",
- "dependencies": {
- "xtend": "~4.0.0"
- }
+ "node_modules/hardhat-contract-sizer/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree": {
- "version": "2.3.2",
- "license": "MPL-2.0",
- "dependencies": {
- "async": "^1.4.2",
- "ethereumjs-util": "^5.0.0",
- "level-ws": "0.0.0",
- "levelup": "^1.2.1",
- "memdown": "^1.0.0",
- "readable-stream": "^2.0.0",
- "rlp": "^2.0.0",
- "semaphore": ">=1.0.1"
+ "node_modules/hardhat-contract-sizer/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/merkle-patricia-tree/node_modules/async": {
- "version": "1.5.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/object-keys": {
- "version": "0.4.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/semver": {
- "version": "5.4.1",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver"
+ "node_modules/hardhat-contract-sizer/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/string_decoder": {
- "version": "0.10.31",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/web3-provider-engine/node_modules/ws": {
- "version": "5.2.2",
- "license": "MIT",
- "dependencies": {
- "async-limiter": "~1.0.0"
+ "node_modules/hardhat-deploy": {
+ "version": "0.9.29",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.9.29.tgz",
+ "integrity": "sha512-8tIGszPFmOaXtyloCbASiZPvoAgLNGGL/Ubys3YW/oj4dvoPa8G6YDyaOCdsAhsENZ+QgR280NFSG9JdN7SU9Q==",
+ "dependencies": {
+ "@ethersproject/abi": "^5.4.0",
+ "@ethersproject/abstract-signer": "^5.4.1",
+ "@ethersproject/address": "^5.4.0",
+ "@ethersproject/bignumber": "^5.4.1",
+ "@ethersproject/bytes": "^5.4.0",
+ "@ethersproject/constants": "^5.4.0",
+ "@ethersproject/contracts": "^5.4.1",
+ "@ethersproject/providers": "^5.4.4",
+ "@ethersproject/solidity": "^5.4.0",
+ "@ethersproject/transactions": "^5.4.0",
+ "@ethersproject/wallet": "^5.4.0",
+ "@types/qs": "^6.9.7",
+ "axios": "^0.21.1",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.2",
+ "debug": "^4.3.2",
+ "enquirer": "^2.3.6",
+ "form-data": "^4.0.0",
+ "fs-extra": "^10.0.0",
+ "match-all": "^1.2.6",
+ "murmur-128": "^0.2.1",
+ "qs": "^6.9.4"
+ },
+ "peerDependencies": {
+ "@ethersproject/hardware-wallets": "^5.0.14",
+ "hardhat": "^2.6.8"
}
},
- "node_modules/ganache-core/node_modules/web3-providers-http": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/hardhat-deploy/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
- "web3-core-helpers": "1.2.11",
- "xhr2-cookies": "1.1.0"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/ganache-core/node_modules/web3-providers-ipc": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/hardhat-deploy/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
- "oboe": "2.1.4",
- "underscore": "1.9.1",
- "web3-core-helpers": "1.2.11"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/ganache-core/node_modules/web3-providers-ws": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/hardhat-deploy/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
- "eventemitter3": "4.0.4",
- "underscore": "1.9.1",
- "web3-core-helpers": "1.2.11",
- "websocket": "^1.0.31"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=7.0.0"
}
},
- "node_modules/ganache-core/node_modules/web3-shh": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/hardhat-deploy/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/hardhat-deploy/node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
- "web3-core": "1.2.11",
- "web3-core-method": "1.2.11",
- "web3-core-subscriptions": "1.2.11",
- "web3-net": "1.2.11"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 6"
}
},
- "node_modules/ganache-core/node_modules/web3-utils": {
- "version": "1.2.11",
- "license": "LGPL-3.0",
- "optional": true,
+ "node_modules/hardhat-deploy/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dependencies": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
- "ethereum-bloom-filters": "^1.0.6",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "underscore": "1.9.1",
- "utf8": "3.0.0"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=12"
}
},
- "node_modules/ganache-core/node_modules/web3-utils/node_modules/eth-lib": {
- "version": "0.2.8",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
+ "node_modules/hardhat-deploy/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/ganache-core/node_modules/websocket": {
- "version": "1.0.32",
- "license": "Apache-2.0",
+ "node_modules/hardhat-deploy/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
- "bufferutil": "^4.0.1",
- "debug": "^2.2.0",
- "es5-ext": "^0.10.50",
- "typedarray-to-buffer": "^3.1.5",
- "utf-8-validate": "^5.0.2",
- "yaeti": "^0.0.6"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=8"
}
},
- "node_modules/ganache-core/node_modules/websocket/node_modules/debug": {
- "version": "2.6.9",
- "license": "MIT",
+ "node_modules/hardhat-gas-reporter": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.8.tgz",
+ "integrity": "sha512-1G5thPnnhcwLHsFnl759f2tgElvuwdkzxlI65fC9PwxYMEe9cmjkVAAWTf3/3y8uP6ZSPiUiOW8PgZnykmZe0g==",
"dependencies": {
- "ms": "2.0.0"
+ "array-uniq": "1.0.3",
+ "eth-gas-reporter": "^0.2.24",
+ "sha1": "^1.1.1"
+ },
+ "peerDependencies": {
+ "hardhat": "^2.0.2"
}
},
- "node_modules/ganache-core/node_modules/websocket/node_modules/ms": {
- "version": "2.0.0",
- "license": "MIT"
- },
- "node_modules/ganache-core/node_modules/whatwg-fetch": {
- "version": "2.0.4",
- "license": "MIT"
+ "node_modules/hardhat/node_modules/commander": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
+ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
},
- "node_modules/ganache-core/node_modules/wrappy": {
- "version": "1.0.2",
- "license": "ISC"
- },
- "node_modules/ganache-core/node_modules/ws": {
- "version": "3.3.3",
- "license": "MIT",
- "optional": true,
+ "node_modules/hardhat/node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dependencies": {
- "async-limiter": "~1.0.0",
- "safe-buffer": "~5.1.0",
- "ultron": "~1.1.0"
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/ws/node_modules/safe-buffer": {
- "version": "5.1.2",
- "license": "MIT",
- "optional": true
- },
- "node_modules/ganache-core/node_modules/xhr": {
- "version": "2.6.0",
- "license": "MIT",
+ "node_modules/hardhat/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
"dependencies": {
- "global": "~4.4.0",
- "is-function": "^1.0.1",
- "parse-headers": "^2.0.0",
- "xtend": "^4.0.0"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
}
},
- "node_modules/ganache-core/node_modules/xhr-request": {
- "version": "1.1.0",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "buffer-to-arraybuffer": "^0.0.5",
- "object-assign": "^4.1.1",
- "query-string": "^5.0.1",
- "simple-get": "^2.7.0",
- "timed-out": "^4.0.1",
- "url-set-query": "^1.0.0",
- "xhr": "^2.0.4"
+ "node_modules/hardhat/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
}
},
- "node_modules/ganache-core/node_modules/xhr-request-promise": {
- "version": "0.1.3",
- "license": "MIT",
- "optional": true,
+ "node_modules/hardhat/node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"dependencies": {
- "xhr-request": "^1.1.0"
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/xhr2-cookies": {
- "version": "1.1.0",
- "license": "MIT",
- "optional": true,
+ "node_modules/hardhat/node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dependencies": {
- "cookiejar": "^2.1.1"
+ "p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/xtend": {
- "version": "4.0.2",
- "license": "MIT",
+ "node_modules/hardhat/node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
"engines": {
- "node": ">=0.4"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/yaeti": {
- "version": "0.0.6",
- "license": "MIT",
+ "node_modules/hardhat/node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
"engines": {
- "node": ">=0.10.32"
+ "node": ">=4"
}
},
- "node_modules/ganache-core/node_modules/yallist": {
- "version": "3.1.1",
- "license": "ISC"
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "node_modules/hardhat/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
"engines": {
- "node": "6.* || 8.* || >= 10.*"
+ "node": ">=4"
}
},
- "node_modules/get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "node_modules/hardhat/node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"engines": {
- "node": "*"
+ "node": ">=0.10.0"
}
},
- "node_modules/get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "node_modules/hardhat/node_modules/resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "path-parse": "^1.0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/get-port": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
- "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
- "engines": {
- "node": ">=4"
+ "node_modules/hardhat/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
}
},
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node_modules/hardhat/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "node_modules/hardhat/node_modules/solc": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz",
+ "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "command-exists": "^1.2.8",
+ "commander": "3.0.2",
+ "follow-redirects": "^1.12.1",
+ "fs-extra": "^0.30.0",
+ "js-sha3": "0.8.0",
+ "memorystream": "^0.3.1",
+ "require-from-string": "^2.0.0",
+ "semver": "^5.5.0",
+ "tmp": "0.0.33"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "solcjs": "solcjs"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
- "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
"dependencies": {
- "assert-plus": "^1.0.0"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
}
},
- "node_modules/ghost-testrpc": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz",
- "integrity": "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ==",
- "dev": true,
- "dependencies": {
- "chalk": "^2.4.2",
- "node-emoji": "^1.10.0"
- },
+ "node_modules/hardhat/node_modules/solc/node_modules/jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/hardhat/node_modules/solc/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"bin": {
- "testrpc-sc": "index.js"
+ "semver": "bin/semver"
}
},
- "node_modules/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
+ "node_modules/hardhat/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">= 4.0.0"
}
},
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "node_modules/hardhat/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dependencies": {
- "is-glob": "^4.0.1"
+ "function-bind": "^1.1.1"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 0.4.0"
}
},
- "node_modules/global": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
- "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
- "dependencies": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/global-modules": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
- "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
- "dev": true,
- "dependencies": {
- "global-prefix": "^3.0.0"
- },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"engines": {
- "node": ">=6"
+ "node": ">=4"
}
},
- "node_modules/global-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
- "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
- "dev": true,
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
"dependencies": {
- "ini": "^1.3.5",
- "kind-of": "^6.0.2",
- "which": "^1.3.1"
+ "get-intrinsic": "^1.1.1"
},
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbol-support-x": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
+ "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
"engines": {
- "node": ">=6"
+ "node": "*"
}
},
- "node_modules/global-prefix/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
},
- "bin": {
- "which": "bin/which"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/globals": {
- "version": "13.12.1",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz",
- "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==",
- "dev": true,
+ "node_modules/has-to-string-tag-x": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
+ "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
"dependencies": {
- "type-fest": "^0.20.2"
+ "has-symbol-support-x": "^1.4.1"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": "*"
}
},
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dev": true,
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
+ "has-symbols": "^1.0.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/got": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
"dependencies": {
- "@sindresorhus/is": "^0.14.0",
- "@szmarczak/http-timer": "^1.1.2",
- "cacheable-request": "^6.0.0",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^4.1.0",
- "lowercase-keys": "^1.0.1",
- "mimic-response": "^1.0.1",
- "p-cancelable": "^1.0.0",
- "to-readable-stream": "^1.0.0",
- "url-parse-lax": "^3.0.0"
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
},
"engines": {
- "node": ">=8.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/got/node_modules/get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "dependencies": {
- "pump": "^3.0.0"
- },
+ "node_modules/has-value/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/graceful-fs": {
- "version": "4.2.9",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
- },
- "node_modules/growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
"engines": {
- "node": ">=4.x"
+ "node": ">=0.10.0"
}
},
- "node_modules/handlebars": {
- "version": "4.7.7",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
- "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
- "dev": true,
+ "node_modules/has-values/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dependencies": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "wordwrap": "^1.0.0"
- },
- "bin": {
- "handlebars": "bin/handlebars"
+ "kind-of": "^3.0.2"
},
"engines": {
- "node": ">=0.4.7"
- },
- "optionalDependencies": {
- "uglify-js": "^3.1.4"
+ "node": ">=0.10.0"
}
},
- "node_modules/handlebars/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true,
+ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "deprecated": "this library is no longer supported",
+ "node_modules/hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
"dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=4"
}
},
- "node_modules/hardhat": {
- "version": "2.9.3",
- "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.9.3.tgz",
- "integrity": "sha512-7Vw99RbYbMZ15UzegOR/nqIYIqddZXvLwJGaX5sX4G5bydILnbjmDU6g3jMKJSiArEixS3vHAEaOs5CW1JQ3hg==",
- "dependencies": {
- "@ethereumjs/block": "^3.6.0",
- "@ethereumjs/blockchain": "^5.5.0",
- "@ethereumjs/common": "^2.6.0",
- "@ethereumjs/tx": "^3.4.0",
- "@ethereumjs/vm": "^5.6.0",
- "@ethersproject/abi": "^5.1.2",
- "@metamask/eth-sig-util": "^4.0.0",
- "@sentry/node": "^5.18.1",
- "@solidity-parser/parser": "^0.14.1",
- "@types/bn.js": "^5.1.0",
- "@types/lru-cache": "^5.1.0",
- "abort-controller": "^3.0.0",
- "adm-zip": "^0.4.16",
- "aggregate-error": "^3.0.0",
- "ansi-escapes": "^4.3.0",
- "chalk": "^2.4.2",
- "chokidar": "^3.4.0",
- "ci-info": "^2.0.0",
- "debug": "^4.1.1",
- "enquirer": "^2.3.0",
- "env-paths": "^2.2.0",
- "ethereum-cryptography": "^0.1.2",
- "ethereumjs-abi": "^0.6.8",
- "ethereumjs-util": "^7.1.3",
- "find-up": "^2.1.0",
- "fp-ts": "1.19.3",
- "fs-extra": "^7.0.1",
- "glob": "^7.1.3",
- "immutable": "^4.0.0-rc.12",
- "io-ts": "1.10.4",
- "lodash": "^4.17.11",
- "merkle-patricia-tree": "^4.2.2",
- "mnemonist": "^0.38.0",
- "mocha": "^9.2.0",
- "p-map": "^4.0.0",
- "qs": "^6.7.0",
- "raw-body": "^2.4.1",
- "resolve": "1.17.0",
- "semver": "^6.3.0",
- "slash": "^3.0.0",
- "solc": "0.7.3",
- "source-map-support": "^0.5.13",
- "stacktrace-parser": "^0.1.10",
- "true-case-path": "^2.2.1",
- "tsort": "0.0.1",
- "undici": "^4.14.1",
- "uuid": "^8.3.2",
- "ws": "^7.4.6"
- },
- "bin": {
- "hardhat": "internal/cli/cli.js"
- },
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || ^16.0.0"
- }
- },
- "node_modules/hardhat-contract-sizer": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/hardhat-contract-sizer/-/hardhat-contract-sizer-2.5.1.tgz",
- "integrity": "sha512-28yRb73e30aBVaZOOHTlHZFIdIasA/iFunIehrUviIJTubvdQjtSiQUo2wexHFtt71mQeMPP8qjw2sdbgatDnQ==",
- "dependencies": {
- "chalk": "^4.0.0",
- "cli-table3": "^0.6.0"
- },
- "peerDependencies": {
- "hardhat": "^2.0.0"
- }
- },
- "node_modules/hardhat-contract-sizer/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/hardhat-contract-sizer/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/hardhat-contract-sizer/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/hardhat-contract-sizer/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/hardhat-contract-sizer/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat-contract-sizer/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/hardhat-gas-reporter": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.8.tgz",
- "integrity": "sha512-1G5thPnnhcwLHsFnl759f2tgElvuwdkzxlI65fC9PwxYMEe9cmjkVAAWTf3/3y8uP6ZSPiUiOW8PgZnykmZe0g==",
- "dependencies": {
- "array-uniq": "1.0.3",
- "eth-gas-reporter": "^0.2.24",
- "sha1": "^1.1.1"
- },
- "peerDependencies": {
- "hardhat": "^2.0.2"
- }
- },
- "node_modules/hardhat/node_modules/commander": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
- "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
- },
- "node_modules/hardhat/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/hardhat/node_modules/find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dependencies": {
- "locate-path": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hardhat/node_modules/fs-extra": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
- "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/hardhat/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/hardhat/node_modules/locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dependencies": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hardhat/node_modules/p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dependencies": {
- "p-try": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hardhat/node_modules/p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dependencies": {
- "p-limit": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hardhat/node_modules/p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hardhat/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hardhat/node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/hardhat/node_modules/resolve": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
- "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
- "dependencies": {
- "path-parse": "^1.0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hardhat/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/hardhat/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/hardhat/node_modules/solc": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz",
- "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==",
- "dependencies": {
- "command-exists": "^1.2.8",
- "commander": "3.0.2",
- "follow-redirects": "^1.12.1",
- "fs-extra": "^0.30.0",
- "js-sha3": "0.8.0",
- "memorystream": "^0.3.1",
- "require-from-string": "^2.0.0",
- "semver": "^5.5.0",
- "tmp": "0.0.33"
- },
- "bin": {
- "solcjs": "solcjs"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
- "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0",
- "path-is-absolute": "^1.0.0",
- "rimraf": "^2.2.8"
- }
- },
- "node_modules/hardhat/node_modules/solc/node_modules/jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/hardhat/node_modules/solc/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/hardhat/node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/hardhat/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/has-symbol-support-x": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
- "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-to-string-tag-x": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
- "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
- "dependencies": {
- "has-symbol-support-x": "^1.4.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "optional": true,
- "dependencies": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
- "optional": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "optional": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/is-number/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/has-values/node_modules/kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "optional": true,
- "dependencies": {
- "is-buffer": "^1.1.5"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "node_modules/hash-test-vectors": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/hash-test-vectors/-/hash-test-vectors-1.3.2.tgz",
+ "integrity": "sha1-8FD94a/0bsKNz09w5OMjjNUAD0w="
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"dependencies": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
@@ -18516,17 +19035,19 @@
}
},
"node_modules/highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "version": "9.18.5",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz",
+ "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==",
+ "deprecated": "Support has ended for 9.x series. Upgrade to @latest",
+ "hasInstallScript": true,
"engines": {
"node": "*"
}
},
"node_modules/highlightjs-solidity": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.3.tgz",
- "integrity": "sha512-tjFm5dtIE61VQBzjlZmkCtY5fLs3CaEABbVuUNyXeW+UuOCsxMg3MsPFy0kCelHP74hPpkoqDejLrbnV1axAIw=="
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-1.2.2.tgz",
+ "integrity": "sha512-+cZ+1+nAO5Pi6c70TKuMcPmwqLECxiYhnQc1MxdXckK94zyWFMNZADzu98ECNlf5xCRdNh+XKp+eklmRU+Dniw=="
},
"node_modules/hmac-drbg": {
"version": "1.0.1",
@@ -18581,18 +19102,18 @@
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
+ "statuses": "2.0.1",
"toidentifier": "1.0.1"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/http-https": {
@@ -18627,15 +19148,10 @@
"npm": ">=1.3.7"
}
},
- "node_modules/https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
- },
"node_modules/https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -18744,8 +19260,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/imurmurhash": {
- "version": "0.1.4",
+ "node_modules/imul": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz",
+ "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true,
@@ -18779,7 +19303,7 @@
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
+ "devOptional": true
},
"node_modules/inquirer": {
"version": "6.5.2",
@@ -18869,18 +19393,6 @@
"node": ">=4"
}
},
- "node_modules/inquirer/node_modules/rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "dependencies": {
- "tslib": "^1.9.0"
- },
- "engines": {
- "npm": ">=2.0.0"
- }
- },
"node_modules/inquirer/node_modules/string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -18919,20 +19431,14 @@
}
},
"node_modules/inquirer/node_modules/strip-ansi/node_modules/ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"dev": true,
"engines": {
"node": ">=6"
}
},
- "node_modules/inquirer/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
"node_modules/internal-slot": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
@@ -18950,10 +19456,20 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
"integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true,
"engines": {
"node": ">= 0.10"
}
},
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "peer": true,
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"node_modules/invert-kv": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
@@ -18979,24 +19495,11 @@
}
},
"node_modules/is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "optional": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-accessor-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "kind-of": "^6.0.0"
},
"engines": {
"node": ">=0.10.0"
@@ -19087,9 +19590,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
"dependencies": {
"has": "^1.0.3"
},
@@ -19098,24 +19601,11 @@
}
},
"node_modules/is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "optional": true,
- "dependencies": {
- "kind-of": "^3.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-data-descriptor/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "kind-of": "^6.0.0"
},
"engines": {
"node": ">=0.10.0"
@@ -19136,28 +19626,18 @@
}
},
"node_modules/is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "optional": true,
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dependencies": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/is-descriptor/node_modules/kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-directory": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
@@ -19181,11 +19661,29 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dependencies": {
+ "is-primitive": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -19277,9 +19775,9 @@
}
},
"node_modules/is-number-object": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -19310,7 +19808,6 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "optional": true,
"dependencies": {
"isobject": "^3.0.1"
},
@@ -19318,6 +19815,30 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-plain-object/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
@@ -19342,9 +19863,12 @@
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
- "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -19456,7 +19980,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -19482,11 +20005,21 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
+ "node_modules/iso-url": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz",
+ "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "optional": true,
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
"engines": {
"node": ">=0.10.0"
}
@@ -19513,11 +20046,18 @@
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
"integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
+ "node_modules/js-string-escape": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
+ "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/js-yaml": {
"version": "3.14.1",
@@ -19542,11 +20082,6 @@
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
},
- "node_modules/json-loader": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
- "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
- },
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -19574,10 +20109,19 @@
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
+ "node_modules/json-text-sequence": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz",
+ "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=",
+ "dependencies": {
+ "delimit-stream": "0.1.0"
+ }
+ },
"node_modules/json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
"dependencies": {
"minimist": "^1.2.0"
},
@@ -19645,7 +20189,6 @@
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
"integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "devOptional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -19666,14 +20209,6 @@
"graceful-fs": "^4.1.11"
}
},
- "node_modules/lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/lcid": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
@@ -19814,9 +20349,9 @@
}
},
"node_modules/lint-staged": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.0.tgz",
- "integrity": "sha512-3X7MR0h9b7qf4iXf/1n7RlVAx+EzpAZXoCEMhVSpaBlgKDfH2ewf+QUm7BddFyq29v4dgPP+8+uYpWuSWx035A==",
+ "version": "12.4.1",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.1.tgz",
+ "integrity": "sha512-PTXgzpflrQ+pODQTG116QNB+Q6uUTDg5B5HqGvNhoQSGt8Qy+MA/6zSnR8n38+sxP5TapzeQGTvoKni0KRS8Vg==",
"dev": true,
"dependencies": {
"cli-truncate": "^3.1.0",
@@ -19844,10 +20379,19 @@
"url": "https://opencollective.com/lint-staged"
}
},
+ "node_modules/lint-staged/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "dev": true,
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/lint-staged/node_modules/supports-color": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
- "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz",
+ "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==",
"dev": true,
"engines": {
"node": ">=12"
@@ -19857,9 +20401,9 @@
}
},
"node_modules/listr2": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.3.tgz",
- "integrity": "sha512-9pGuRUYKN7/4KW7ociiIpj9c32ZnlvC4Z/yH+Tcpi84eW5Znqh2dq78fB9vvcrCw5GohOMXtuMP5ZVC4fTD8BA==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz",
+ "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==",
"dev": true,
"dependencies": {
"cli-truncate": "^2.1.0",
@@ -19867,7 +20411,7 @@
"log-update": "^4.0.0",
"p-map": "^4.0.0",
"rfdc": "^1.3.0",
- "rxjs": "^7.5.4",
+ "rxjs": "^7.5.5",
"through": "^2.3.8",
"wrap-ansi": "^7.0.0"
},
@@ -19941,6 +20485,15 @@
"node": ">=8"
}
},
+ "node_modules/listr2/node_modules/rxjs": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz",
+ "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/listr2/node_modules/slice-ansi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
@@ -19970,6 +20523,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/load-json-file/node_modules/parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dependencies": {
+ "error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/load-json-file/node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
@@ -19989,27 +20553,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/loader-runner": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
- "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
- "engines": {
- "node": ">=4.3.0 <5.0.0 || >=5.10"
- }
- },
- "node_modules/loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -20258,18 +20801,22 @@
"node": ">=8"
}
},
- "node_modules/longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "peer": true,
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
}
},
"node_modules/loupe": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.3.tgz",
- "integrity": "sha512-krIV4Cf1BIGIx2t1e6tucThhrBemUnIUjMtD2vN4mrMxnxpBvrcosBSpooqunBqP/hOEEV1w/Cr1YskGtqw5Jg==",
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
+ "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
"dependencies": {
"get-func-name": "^2.0.0"
}
@@ -20323,7 +20870,6 @@
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
"integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -20332,7 +20878,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
- "optional": true,
"dependencies": {
"object-visit": "^1.0.0"
},
@@ -20345,6 +20890,16 @@
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
"integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q=="
},
+ "node_modules/match-all": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/match-all/-/match-all-1.2.6.tgz",
+ "integrity": "sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ=="
+ },
+ "node_modules/math-random": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A=="
+ },
"node_modules/mcl-wasm": {
"version": "0.7.9",
"resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz",
@@ -20437,42 +20992,6 @@
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz",
"integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw="
},
- "node_modules/memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "dependencies": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
- }
- },
- "node_modules/memory-fs/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/memory-fs/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/memory-fs/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
"node_modules/memorystream": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
@@ -20502,9 +21021,9 @@
}
},
"node_modules/merkle-patricia-tree": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.3.tgz",
- "integrity": "sha512-S4xevdXl5KvdBGgUxhQcxoep0onqXiIhzfwZp4M78kIuJH3Pu9o9IUgqhzSFOR2ykLO6t265026Xb6PY0q2UFQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz",
+ "integrity": "sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w==",
"dependencies": {
"@types/levelup": "^4.3.0",
"ethereumjs-util": "^7.1.4",
@@ -20514,21 +21033,6 @@
"semaphore-async-await": "^1.5.1"
}
},
- "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/merkletreejs": {
"version": "0.2.31",
"resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.2.31.tgz",
@@ -20544,14 +21048,6 @@
"node": ">= 7.6.0"
}
},
- "node_modules/merkletreejs/node_modules/bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
- "engines": {
- "node": "*"
- }
- },
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -20561,12 +21057,12 @@
}
},
"node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
},
"engines": {
"node": ">=8.6"
@@ -20601,19 +21097,19 @@
}
},
"node_modules/mime-db": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
- "version": "2.1.34",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
- "mime-db": "1.51.0"
+ "mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
@@ -20629,11 +21125,16 @@
}
},
"node_modules/mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
+ "optional": true,
+ "peer": true,
"engines": {
- "node": ">=4"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/min-document": {
@@ -20699,7 +21200,6 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "optional": true,
"dependencies": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -20712,7 +21212,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -20721,16 +21220,23 @@
}
},
"node_modules/mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dependencies": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
},
"bin": {
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "optional": true,
+ "peer": true
+ },
"node_modules/mkdirp-promise": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
@@ -20866,6 +21372,27 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
+ "node_modules/mocha/node_modules/debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mocha/node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
"node_modules/mocha/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -21032,16 +21559,124 @@
"buffer": "^5.5.0"
}
},
+ "node_modules/murmur-128": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz",
+ "integrity": "sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==",
+ "dependencies": {
+ "encode-utf8": "^1.0.2",
+ "fmix": "^0.1.0",
+ "imul": "^1.0.0"
+ }
+ },
"node_modules/mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
+ "node_modules/name-wrapper": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/name-wrapper/-/name-wrapper-1.0.0.tgz",
+ "integrity": "sha512-7wTdz1ees+Q3GXFu/Mp76owXzWqYp+k2bB/W0yRnfFtnzU5Y8ga6VKbgl+UWYuCfndy0ylRSQpHPom/mEsDVqg==",
+ "dependencies": {
+ "@ensdomains/ens-contracts": "0.0.3",
+ "@nomiclabs/hardhat-ethers": "^2.0.0",
+ "@nomiclabs/hardhat-waffle": "^2.0.0",
+ "@openzeppelin/contracts": "^4.0.0",
+ "chalk": "^4.1.0",
+ "ethereum-waffle": "^3.1.1",
+ "ethers": "^5.0.17",
+ "hardhat": "^2.0.4",
+ "node-watch": "^0.7.0",
+ "qrcode-terminal": "^0.12.0",
+ "ramda": "^0.27.1",
+ "solium": "^1.2.5"
+ }
+ },
+ "node_modules/name-wrapper/node_modules/@ensdomains/buffer": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/@ensdomains/buffer/-/buffer-0.0.10.tgz",
+ "integrity": "sha512-EOFqiWnN36EyyBAgHFTsabFcFICUALt41SiDm/4pAw4V36R4lD4wHcnZcqCYki9m1fMaeWGHrdqxmrMa8iiSTQ=="
+ },
+ "node_modules/name-wrapper/node_modules/@ensdomains/ens-contracts": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ens-contracts/-/ens-contracts-0.0.3.tgz",
+ "integrity": "sha512-da67JjAFjl8gLDDAqYQs5PSvth9usBcD7clXiXpfvJTMJnZnR+c/cG6xrkVgL4qEP7jmI+iEoj0y29qFtupy2w==",
+ "dependencies": {
+ "@ensdomains/buffer": "^0.0.10",
+ "@openzeppelin/contracts": "^4.1.0"
+ }
+ },
+ "node_modules/name-wrapper/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/name-wrapper/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/name-wrapper/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/name-wrapper/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/name-wrapper/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/name-wrapper/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/nan": {
"version": "2.15.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
- "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ=="
+ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
+ "optional": true
},
"node_modules/nano-base32": {
"version": "1.0.1",
@@ -21068,7 +21703,6 @@
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "optional": true,
"dependencies": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -21086,81 +21720,28 @@
"node": ">=0.10.0"
}
},
- "node_modules/nanomatch/node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "optional": true,
- "dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
+ "node_modules/nanomatch/node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/nanomatch/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
+ "node_modules/nanomatch/node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/nanomatch/node_modules/is-descriptor": {
+ "node_modules/napi-build-utils": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nanomatch/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
"optional": true,
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
+ "peer": true
},
"node_modules/natural-compare": {
"version": "1.4.0",
@@ -21179,12 +21760,13 @@
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
},
"node_modules/next-tick": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
"node_modules/nice-try": {
"version": "1.0.5",
@@ -21199,6 +21781,26 @@
"lower-case": "^1.1.1"
}
},
+ "node_modules/node-abi": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
+ "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "semver": "^5.4.1"
+ }
+ },
+ "node_modules/node-abi/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "optional": true,
+ "peer": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
"node_modules/node-addon-api": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
@@ -21250,103 +21852,41 @@
}
},
"node_modules/node-gyp-build": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz",
- "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
+ "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==",
"bin": {
"node-gyp-build": "bin.js",
"node-gyp-build-optional": "optional.js",
"node-gyp-build-test": "build-test.js"
}
},
- "node_modules/node-libs-browser": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
- "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
- "dependencies": {
- "assert": "^1.1.1",
- "browserify-zlib": "^0.2.0",
- "buffer": "^4.3.0",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.11.0",
- "domain-browser": "^1.1.1",
- "events": "^3.0.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "0.0.1",
- "process": "^0.11.10",
- "punycode": "^1.2.4",
- "querystring-es3": "^0.2.0",
- "readable-stream": "^2.3.3",
- "stream-browserify": "^2.0.1",
- "stream-http": "^2.7.2",
- "string_decoder": "^1.0.0",
- "timers-browserify": "^2.0.4",
- "tty-browserify": "0.0.0",
- "url": "^0.11.0",
- "util": "^0.11.0",
- "vm-browserify": "^1.0.1"
- }
- },
- "node_modules/node-libs-browser/node_modules/buffer": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
- "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
- "dependencies": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
- "node_modules/node-libs-browser/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "node_modules/node-libs-browser/node_modules/path-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
- "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
- },
- "node_modules/node-libs-browser/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "node_modules/node-libs-browser/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/node-libs-browser/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/node-libs-browser/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/node-hid": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz",
+ "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==",
+ "hasInstallScript": true,
+ "optional": true,
+ "peer": true,
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "bindings": "^1.5.0",
+ "nan": "^2.14.0",
+ "node-abi": "^2.18.0",
+ "prebuild-install": "^5.3.4"
+ },
+ "bin": {
+ "hid-showdevices": "src/show-devices.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/node-libs-browser/node_modules/util": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
- "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
- "dependencies": {
- "inherits": "2.0.3"
+ "node_modules/node-watch": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
+ "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==",
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/nofilter": {
@@ -21357,6 +21897,13 @@
"node": ">=8"
}
},
+ "node_modules/noop-logger": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
+ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
+ "optional": true,
+ "peer": true
+ },
"node_modules/nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
@@ -21416,6 +21963,19 @@
"node": ">=8"
}
},
+ "node_modules/npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
"node_modules/nth-check": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
@@ -21473,7 +22033,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
- "optional": true,
"dependencies": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
@@ -21483,11 +22042,64 @@
"node": ">=0.10.0"
}
},
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object-copy/node_modules/kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -21515,7 +22127,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
- "optional": true,
"dependencies": {
"isobject": "^3.0.0"
},
@@ -21523,6 +22134,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/object-visit/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object.assign": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
@@ -21570,11 +22189,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dependencies": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "optional": true,
"dependencies": {
"isobject": "^3.0.1"
},
@@ -21582,6 +22212,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/object.pick/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object.values": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
@@ -21600,9 +22238,9 @@
}
},
"node_modules/obliterator": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.1.tgz",
- "integrity": "sha512-XnkiCrrBcIZQitJPAI36mrrpEUvatbte8hLcTcQwKA1v9NkCKasSi+UAguLsLDs/out7MoRzAlmz7VXvY6ph6w=="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.3.tgz",
+ "integrity": "sha512-qN5lHhArxl/789Bp3XCpssAYy7cvOdRzxzflmGEJaiipAT2b/USr1XvKjYyssPOwQ/3KjV1e8Ed9po9rie6E6A=="
},
"node_modules/oboe": {
"version": "2.1.5",
@@ -21613,9 +22251,9 @@
}
},
"node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dependencies": {
"ee-first": "1.1.1"
},
@@ -21678,11 +22316,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
- },
"node_modules/os-locale": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
@@ -21833,20 +22466,55 @@
"resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
"integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104="
},
+ "node_modules/parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dependencies": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/parse-glob/node_modules/is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/parse-glob/node_modules/is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dependencies": {
+ "is-extglob": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/parse-headers": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz",
- "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw=="
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
+ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
},
"node_modules/parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
"dependencies": {
- "error-ex": "^1.2.0"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
"node_modules/parse5": {
@@ -21883,7 +22551,6 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -22036,12 +22703,6 @@
"no-case": "^2.2.0"
}
},
- "node_modules/path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
- "optional": true
- },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -22115,6 +22776,17 @@
"node": ">=0.12"
}
},
+ "node_modules/pegjs": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz",
+ "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=",
+ "bin": {
+ "pegjs": "bin/pegjs"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -22175,7 +22847,6 @@
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -22186,6 +22857,36 @@
"integrity": "sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ==",
"hasInstallScript": true
},
+ "node_modules/prebuild-install": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz",
+ "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.7.0",
+ "noop-logger": "^0.1.1",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0",
+ "which-pm-runs": "^1.0.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -22203,6 +22904,14 @@
"node": ">=4"
}
},
+ "node_modules/preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/prettier": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
@@ -22249,12 +22958,6 @@
"prettier": "^2.3.0"
}
},
- "node_modules/prettier-plugin-solidity/node_modules/emoji-regex": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.0.0.tgz",
- "integrity": "sha512-KmJa8l6uHi1HrBI34udwlzZY1jOEuID/ft4d8BSSEdRyap7PwBEt910453PJa5MuGvxkLqlt4Uvhu7tttFHViw==",
- "dev": true
- },
"node_modules/prettier-plugin-solidity/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -22267,17 +22970,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/printj": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz",
- "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg==",
- "bin": {
- "printj": "bin/printj.njs"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@@ -22371,14 +23063,22 @@
}
},
"node_modules/pure-rand": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.0.tgz",
- "integrity": "sha512-lD2/y78q+7HqBx2SaT6OT4UcwtvXNRfEpzYEzl0EQ+9gZq2Qi3fa0HDnYPeqQwhlHJFBUhT7AO3mLU3+8bynHA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.1.tgz",
+ "integrity": "sha512-ksWccjmXOHU2gJBnH0cK1lSYdvSZ0zLoCMSz/nTGh6hDvCSgcRxDyIcOBD6KNxFz3xhMPm/T267Tbe2JRymKEQ==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/fast-check"
}
},
+ "node_modules/qrcode-terminal": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
+ "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==",
+ "bin": {
+ "qrcode-terminal": "bin/qrcode-terminal.js"
+ }
+ },
"node_modules/qs": {
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
@@ -22415,14 +23115,6 @@
"node": ">=0.4.x"
}
},
- "node_modules/querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
- "engines": {
- "node": ">=0.4.x"
- }
- },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -22443,6 +23135,32 @@
}
]
},
+ "node_modules/ramda": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
+ "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA=="
+ },
+ "node_modules/randomatic": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "dependencies": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/randomatic/node_modules/is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -22469,12 +23187,12 @@
}
},
"node_modules/raw-body": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
- "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dependencies": {
- "bytes": "3.1.1",
- "http-errors": "1.8.1",
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
@@ -22482,6 +23200,32 @@
"node": ">= 0.8"
}
},
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -22616,39 +23360,24 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
- "node_modules/regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "optional": true,
+ "node_modules/regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
"dependencies": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
+ "is-equal-shallow": "^0.1.3"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/regex-not/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/regex-not/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dependencies": {
- "is-plain-object": "^2.0.4"
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
},
"engines": {
"node": ">=0.10.0"
@@ -22669,14 +23398,12 @@
"node_modules/remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
- "optional": true
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
"node_modules/repeat-element": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
"integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
- "optional": true,
"engines": {
"node": ">=0.10.0"
}
@@ -22819,9 +23546,9 @@
}
},
"node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
},
"node_modules/resolve": {
"version": "1.22.0",
@@ -22852,8 +23579,7 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "deprecated": "https://github.com/lydell/resolve-url#deprecated",
- "optional": true
+ "deprecated": "https://github.com/lydell/resolve-url#deprecated"
},
"node_modules/responselike": {
"version": "1.0.2",
@@ -22880,7 +23606,6 @@
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "optional": true,
"engines": {
"node": ">=0.12"
}
@@ -22901,17 +23626,6 @@
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
"dev": true
},
- "node_modules/right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "dependencies": {
- "align-text": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -22993,14 +23707,21 @@
"integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA=="
},
"node_modules/rxjs": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz",
- "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==",
- "dev": true,
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"dependencies": {
- "tslib": "^2.1.0"
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
}
},
+ "node_modules/rxjs/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -23024,7 +23745,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
- "optional": true,
"dependencies": {
"ret": "~0.1.10"
}
@@ -23169,9 +23889,9 @@
}
},
"node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -23199,23 +23919,23 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/send": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
- "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dependencies": {
"debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "1.8.1",
+ "http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"range-parser": "~1.2.1",
- "statuses": "~1.5.0"
+ "statuses": "2.0.1"
},
"engines": {
"node": ">= 0.8.0"
@@ -23257,14 +23977,14 @@
}
},
"node_modules/serve-static": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
- "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.2"
+ "send": "0.18.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -23294,7 +24014,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "optional": true,
"dependencies": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -23305,6 +24024,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
@@ -23446,11 +24176,13 @@
]
},
"node_modules/simple-get": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
- "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
+ "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
+ "optional": true,
+ "peer": true,
"dependencies": {
- "decompress-response": "^3.3.0",
+ "decompress-response": "^4.2.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
}
@@ -23503,7 +24235,6 @@
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "optional": true,
"dependencies": {
"base": "^0.11.1",
"debug": "^2.2.0",
@@ -23522,7 +24253,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "optional": true,
"dependencies": {
"define-property": "^1.0.0",
"isobject": "^3.0.0",
@@ -23536,7 +24266,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "optional": true,
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -23544,40 +24273,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/snapdragon-node/node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
+ "node_modules/snapdragon-node/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"engines": {
"node": ">=0.10.0"
}
@@ -23586,7 +24285,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "optional": true,
"dependencies": {
"kind-of": "^3.2.0"
},
@@ -23598,7 +24296,6 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -23610,209 +24307,154 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "optional": true,
"dependencies": {
"ms": "2.0.0"
}
},
- "node_modules/snapdragon/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "optional": true
- },
- "node_modules/snapdragon/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "optional": true,
+ "node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc": {
- "version": "0.4.26",
- "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz",
- "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==",
+ "node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dependencies": {
- "fs-extra": "^0.30.0",
- "memorystream": "^0.3.1",
- "require-from-string": "^1.1.0",
- "semver": "^5.3.0",
- "yargs": "^4.7.1"
+ "is-extendable": "^0.1.0"
},
- "bin": {
- "solcjs": "solcjs"
- }
- },
- "node_modules/solc/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "node_modules/snapdragon/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "node_modules/solc/node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "is-buffer": "^1.1.5"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/fs-extra": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
- "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0",
- "path-is-absolute": "^1.0.0",
- "rimraf": "^2.2.8"
- }
- },
- "node_modules/solc/node_modules/get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
- },
- "node_modules/solc/node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "node_modules/snapdragon/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dependencies": {
- "number-is-nan": "^1.0.0"
+ "kind-of": "^3.0.2"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/solc/node_modules/require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
- },
- "node_modules/solc/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dependencies": {
- "glob": "^7.1.3"
+ "is-buffer": "^1.1.5"
},
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/solc/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "bin": {
- "semver": "bin/semver"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "node_modules/snapdragon/node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
+ "node_modules/snapdragon/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+ "node_modules/snapdragon/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
- "node_modules/solc/node_modules/wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
+ "node_modules/snapdragon/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/solc/node_modules/y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+ "node_modules/sol-digger": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/sol-digger/-/sol-digger-0.0.2.tgz",
+ "integrity": "sha1-QGxKnTHiaef4jrHC6hATGOXgkCU="
},
- "node_modules/solc/node_modules/yargs": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz",
- "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=",
+ "node_modules/sol-explore": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sol-explore/-/sol-explore-1.6.1.tgz",
+ "integrity": "sha1-tZ8HPGn+MyVg1aEMMrqMp/KYbPs="
+ },
+ "node_modules/solc": {
+ "version": "0.8.13",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.13.tgz",
+ "integrity": "sha512-C0yTN+rjEOGO6uVOXI8+EKa75SFMuZpQ2tryex4QxWIg0HRWZvCHKfVPuLZ5wx06Sb6GBp6uQA5yqQyXZnXOJw==",
"dependencies": {
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "lodash.assign": "^4.0.3",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.1",
- "which-module": "^1.0.0",
- "window-size": "^0.2.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^2.4.1"
+ "command-exists": "^1.2.8",
+ "commander": "^8.1.0",
+ "follow-redirects": "^1.12.1",
+ "js-sha3": "0.8.0",
+ "memorystream": "^0.3.1",
+ "semver": "^5.5.0",
+ "tmp": "0.0.33"
+ },
+ "bin": {
+ "solcjs": "solc.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
}
},
- "node_modules/solc/node_modules/yargs-parser": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
- "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
- "dependencies": {
- "camelcase": "^3.0.0",
- "lodash.assign": "^4.0.6"
+ "node_modules/solc/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/solc/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
}
},
"node_modules/solhint": {
@@ -23869,9 +24511,9 @@
}
},
"node_modules/solhint/node_modules/ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"dev": true,
"engines": {
"node": ">=6"
@@ -24296,9 +24938,9 @@
"dev": true
},
"node_modules/solidity-coverage": {
- "version": "0.7.20",
- "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.20.tgz",
- "integrity": "sha512-edOXTugUYdqxrtEnIn4vgrGjLPxdexcL0WD8LzAvVA3d1dwgcfRO3k8xQR02ZQnOnWMBi8Cqs0F+kAQQp3JW8g==",
+ "version": "0.7.21",
+ "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.21.tgz",
+ "integrity": "sha512-O8nuzJ9yXiKUx3NdzVvHrUW0DxoNVcGzq/I7NzewNO9EZE3wYAQ4l8BwcnV64r4aC/HB6Vnw/q2sF0BQHv/3fg==",
"dev": true,
"dependencies": {
"@solidity-parser/parser": "^0.14.0",
@@ -24375,258 +25017,296 @@
"node": ">= 4.0.0"
}
},
- "node_modules/source-list-map": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
- },
- "node_modules/source-map": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
- "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
- "dev": true,
- "optional": true,
- "dependencies": {
- "amdefine": ">=0.0.4"
+ "node_modules/solium": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/solium/-/solium-1.2.5.tgz",
+ "integrity": "sha512-NuNrm7fp8JcDN/P+SAdM5TVa4wYDtwVtLY/rG4eBOZrC5qItsUhmQKR/YhjszaEW4c8tNUYhkhQcwOsS25znpw==",
+ "dependencies": {
+ "ajv": "^5.2.2",
+ "chokidar": "^1.6.0",
+ "colors": "^1.1.2",
+ "commander": "^2.9.0",
+ "diff": "^3.5.0",
+ "eol": "^0.9.1",
+ "js-string-escape": "^1.0.1",
+ "lodash": "^4.14.2",
+ "sol-digger": "0.0.2",
+ "sol-explore": "1.6.1",
+ "solium-plugin-security": "0.1.1",
+ "solparse": "2.2.8",
+ "text-table": "^0.2.0"
},
- "engines": {
- "node": ">=0.8.0"
+ "bin": {
+ "solium": "bin/solium.js"
}
},
- "node_modules/source-map-resolve": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
- "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
- "optional": true,
+ "node_modules/solium-plugin-security": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/solium-plugin-security/-/solium-plugin-security-0.1.1.tgz",
+ "integrity": "sha512-kpLirBwIq4mhxk0Y/nn5cQ6qdJTI+U1LO3gpoNIcqNaW+sI058moXBe2UiHs+9wvF9IzYD49jcKhFTxcR9u9SQ==",
+ "peerDependencies": {
+ "solium": "^1.0.0"
+ }
+ },
+ "node_modules/solium/node_modules/ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"dependencies": {
- "atob": "^2.1.2",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
}
},
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "node_modules/solium/node_modules/anymatch": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
"dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
+ "micromatch": "^2.1.5",
+ "normalize-path": "^2.0.0"
}
},
- "node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "node_modules/solium/node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/source-map-url": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
- "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
- "deprecated": "See https://github.com/lydell/source-map-url#deprecated",
- "optional": true
- },
- "node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "node_modules/solium/node_modules/braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ "node_modules/solium/node_modules/chokidar": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.",
+ "dependencies": {
+ "anymatch": "^1.3.0",
+ "async-each": "^1.0.0",
+ "glob-parent": "^2.0.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.0.0"
+ }
},
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "node_modules/solium/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "ms": "2.0.0"
}
},
- "node_modules/spdx-license-ids": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
- "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g=="
+ "node_modules/solium/node_modules/diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
},
- "node_modules/split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "optional": true,
+ "node_modules/solium/node_modules/fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+ },
+ "node_modules/solium/node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dependencies": {
- "extend-shallow": "^3.0.0"
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/split-string/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
+ "node_modules/solium/node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "is-extendable": "^0.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/split-string/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "node_modules/solium/node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.",
+ "hasInstallScript": true,
"optional": true,
+ "os": [
+ "darwin"
+ ],
"dependencies": {
- "is-plain-object": "^2.0.4"
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 4.0"
}
},
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ "node_modules/solium/node_modules/glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dependencies": {
+ "is-glob": "^2.0.0"
+ }
},
- "node_modules/sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
+ "node_modules/solium/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
+ "kind-of": "^3.0.2"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/sshpk/node_modules/tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ "node_modules/solium/node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/stacktrace-parser": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
- "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "node_modules/solium/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dependencies": {
- "type-fest": "^0.7.1"
+ "kind-of": "^3.0.2"
},
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/stacktrace-parser/node_modules/type-fest": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
- "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
+ "node_modules/solium/node_modules/is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
- "optional": true,
+ "node_modules/solium/node_modules/is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dependencies": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
+ "is-extglob": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "node_modules/solium/node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/stealthy-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
- "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
+ "node_modules/solium/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/stream-browserify": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
- "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
- "dependencies": {
- "inherits": "~2.0.1",
- "readable-stream": "^2.0.2"
- }
+ "node_modules/solium/node_modules/json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
},
- "node_modules/stream-browserify/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "node_modules/solium/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/stream-browserify/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/stream-browserify/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/solium/node_modules/micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/stream-http": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
- "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "node_modules/solium/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/solium/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"dependencies": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.6",
- "to-arraybuffer": "^1.0.0",
- "xtend": "^4.0.0"
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/stream-http/node_modules/readable-stream": {
+ "node_modules/solium/node_modules/readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
@@ -24640,1765 +25320,1576 @@
"util-deprecate": "~1.0.1"
}
},
- "node_modules/stream-http/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/stream-http/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/solium/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
}
},
- "node_modules/strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "node_modules/solium/node_modules/readdirp/node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-argv": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
- "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
- "dev": true,
+ "node_modules/solium/node_modules/readdirp/node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"engines": {
- "node": ">=0.6.19"
+ "node": ">=0.10.0"
}
},
- "node_modules/string-template": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
- "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y="
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "node_modules/solium/node_modules/readdirp/node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/string-width/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/solium/node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "is-extendable": "^0.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "node_modules/solium/node_modules/readdirp/node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "node_modules/solium/node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "is-descriptor": "^0.1.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "node_modules/solium/node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dependencies": {
- "ansi-regex": "^3.0.0"
+ "is-extendable": "^0.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "node_modules/solium/node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dependencies": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "node_modules/solium/node_modules/readdirp/node_modules/expand-brackets/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
+ "node_modules/solium/node_modules/readdirp/node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-hex-prefix": {
+ "node_modules/solium/node_modules/readdirp/node_modules/extglob/node_modules/define-property": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
- "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dependencies": {
- "is-hex-prefixed": "1.0.0"
+ "is-descriptor": "^1.0.0"
},
"engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-indent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
- "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "node_modules/solium/node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/solium/node_modules/readdirp/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/super-split": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/super-split/-/super-split-1.1.0.tgz",
- "integrity": "sha512-I4bA5mgcb6Fw5UJ+EkpzqXfiuvVGS/7MuND+oBxNFmxu3ugLNrdIatzBLfhFRMVMLxgSsRy+TjIktgkF9RFSNQ=="
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "node_modules/solium/node_modules/readdirp/node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dependencies": {
- "has-flag": "^3.0.0"
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/swap-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
- "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=",
- "dependencies": {
- "lower-case": "^1.1.1",
- "upper-case": "^1.1.1"
- }
+ "node_modules/solium/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
- "node_modules/swarm-js": {
- "version": "0.1.40",
- "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz",
- "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==",
+ "node_modules/solium/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
- "bluebird": "^3.5.0",
- "buffer": "^5.0.5",
- "eth-lib": "^0.1.26",
- "fs-extra": "^4.0.2",
- "got": "^7.1.0",
- "mime-types": "^2.1.16",
- "mkdirp-promise": "^5.0.1",
- "mock-fs": "^4.1.0",
- "setimmediate": "^1.0.5",
- "tar": "^4.0.2",
- "xhr-request": "^1.0.1"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/swarm-js/node_modules/fs-extra": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
- "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "node_modules/solium/node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "node_modules/swarm-js/node_modules/get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/swarm-js/node_modules/got": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
- "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
+ "node_modules/solparse": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/solparse/-/solparse-2.2.8.tgz",
+ "integrity": "sha512-Tm6hdfG72DOxD40SD+T5ddbekWglNWjzDRSNq7ZDIOHVsyaJSeeunUuWNj4DE7uDrJK3tGQuX0ZTDZWNYsGPMA==",
"dependencies": {
- "decompress-response": "^3.2.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-plain-obj": "^1.1.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "isurl": "^1.0.0-alpha5",
- "lowercase-keys": "^1.0.0",
- "p-cancelable": "^0.3.0",
- "p-timeout": "^1.1.1",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "url-parse-lax": "^1.0.0",
- "url-to-options": "^1.0.1"
+ "mocha": "^4.0.1",
+ "pegjs": "^0.10.0",
+ "yargs": "^10.0.3"
},
- "engines": {
- "node": ">=4"
+ "bin": {
+ "solidity-parser": "cli.js"
}
},
- "node_modules/swarm-js/node_modules/is-plain-obj": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "node_modules/solparse/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/swarm-js/node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/solparse/node_modules/browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8="
},
- "node_modules/swarm-js/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
+ "node_modules/solparse/node_modules/cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dependencies": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
}
},
- "node_modules/swarm-js/node_modules/p-cancelable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
- "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
- "engines": {
- "node": ">=4"
+ "node_modules/solparse/node_modules/commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="
+ },
+ "node_modules/solparse/node_modules/cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dependencies": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
}
},
- "node_modules/swarm-js/node_modules/p-timeout": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "node_modules/solparse/node_modules/debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dependencies": {
- "p-finally": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
+ "ms": "2.0.0"
}
},
- "node_modules/swarm-js/node_modules/prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "node_modules/solparse/node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/swarm-js/node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "node_modules/solparse/node_modules/diff": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
"engines": {
- "node": ">= 4.0.0"
+ "node": ">=0.3.1"
}
},
- "node_modules/swarm-js/node_modules/url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "node_modules/solparse/node_modules/execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"dependencies": {
- "prepend-http": "^1.0.1"
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/sync-request": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz",
- "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==",
+ "node_modules/solparse/node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dependencies": {
- "http-response-object": "^3.0.1",
- "sync-rpc": "^1.2.1",
- "then-request": "^6.0.0"
+ "locate-path": "^2.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=4"
}
},
- "node_modules/sync-rpc": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz",
- "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==",
- "dependencies": {
- "get-port": "^3.1.0"
- }
+ "node_modules/solparse/node_modules/get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
},
- "node_modules/table": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
- "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
- "dev": true,
- "dependencies": {
- "ajv": "^8.0.1",
- "lodash.truncate": "^4.4.2",
- "slice-ansi": "^4.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1"
- },
+ "node_modules/solparse/node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
"engines": {
- "node": ">=10.0.0"
+ "node": ">=4"
}
},
- "node_modules/table/node_modules/ajv": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz",
- "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==",
- "dev": true,
+ "node_modules/solparse/node_modules/glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/table/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true,
"engines": {
- "node": ">=8"
+ "node": "*"
}
},
- "node_modules/table/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/solparse/node_modules/growl": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=4.x"
}
},
- "node_modules/table/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
+ "node_modules/solparse/node_modules/has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"engines": {
- "node": ">=7.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/table/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "node_modules/solparse/node_modules/he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "bin": {
+ "he": "bin/he"
+ }
},
- "node_modules/table/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
+ "node_modules/solparse/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
- "node_modules/table/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/table/node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "dev": true,
+ "node_modules/solparse/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/table/node_modules/slice-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
- "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
- "dev": true,
+ "node_modules/solparse/node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ "node": ">=4"
}
},
- "node_modules/table/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
+ "node_modules/solparse/node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/solparse/node_modules/minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "node_modules/solparse/node_modules/mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
+ "dependencies": {
+ "minimist": "0.0.8"
},
- "engines": {
- "node": ">=8"
+ "bin": {
+ "mkdirp": "bin/cmd.js"
}
},
- "node_modules/tapable": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
- "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==",
+ "node_modules/solparse/node_modules/mocha": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
+ "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
+ "dependencies": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.11.0",
+ "debug": "3.1.0",
+ "diff": "3.3.1",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.3",
+ "he": "1.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "4.4.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha"
+ },
"engines": {
- "node": ">=0.6"
+ "node": ">= 4.0.0"
}
},
- "node_modules/tar": {
- "version": "4.4.19",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
- "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
+ "node_modules/solparse/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/solparse/node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"dependencies": {
- "chownr": "^1.1.4",
- "fs-minipass": "^1.2.7",
- "minipass": "^2.9.0",
- "minizlib": "^1.3.3",
- "mkdirp": "^0.5.5",
- "safe-buffer": "^5.2.1",
- "yallist": "^3.1.1"
+ "path-key": "^2.0.0"
},
"engines": {
- "node": ">=4.5"
+ "node": ">=4"
}
},
- "node_modules/test-value": {
+ "node_modules/solparse/node_modules/os-locale": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
- "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
"dependencies": {
- "array-back": "^1.0.3",
- "typical": "^2.6.0"
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/test-value/node_modules/array-back": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
- "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
+ "node_modules/solparse/node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dependencies": {
- "typical": "^2.6.0"
+ "p-try": "^1.0.0"
},
"engines": {
- "node": ">=0.12.0"
+ "node": ">=4"
}
},
- "node_modules/testrpc": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz",
- "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==",
- "deprecated": "testrpc has been renamed to ganache-cli, please use this package from now on."
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
- "dev": true
- },
- "node_modules/then-request": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz",
- "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==",
+ "node_modules/solparse/node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"dependencies": {
- "@types/concat-stream": "^1.6.0",
- "@types/form-data": "0.0.33",
- "@types/node": "^8.0.0",
- "@types/qs": "^6.2.31",
- "caseless": "~0.12.0",
- "concat-stream": "^1.6.0",
- "form-data": "^2.2.0",
- "http-basic": "^8.1.1",
- "http-response-object": "^3.0.1",
- "promise": "^8.0.0",
- "qs": "^6.4.0"
+ "p-limit": "^1.1.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=4"
}
},
- "node_modules/then-request/node_modules/@types/node": {
- "version": "8.10.66",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
- "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw=="
+ "node_modules/solparse/node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "node_modules/then-request/node_modules/form-data": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
- "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
+ "node_modules/solparse/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/solparse/node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/solparse/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
+ "shebang-regex": "^1.0.0"
},
"engines": {
- "node": ">= 0.12"
+ "node": ">=0.10.0"
}
},
- "node_modules/through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
- },
- "node_modules/timed-out": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "node_modules/solparse/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "node_modules/solparse/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dependencies": {
- "setimmediate": "^1.0.4"
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
},
"engines": {
- "node": ">=0.6.0"
+ "node": ">=4"
}
},
- "node_modules/title-case": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
- "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=",
+ "node_modules/solparse/node_modules/supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dependencies": {
- "no-case": "^2.2.0",
- "upper-case": "^1.0.3"
+ "has-flag": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "node_modules/solparse/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dependencies": {
- "os-tmpdir": "~1.0.2"
+ "isexe": "^2.0.0"
},
- "engines": {
- "node": ">=0.6.0"
+ "bin": {
+ "which": "bin/which"
}
},
- "node_modules/to-arraybuffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
+ "node_modules/solparse/node_modules/which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
- "node_modules/to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "optional": true,
+ "node_modules/solparse/node_modules/wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"dependencies": {
- "kind-of": "^3.0.2"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/to-object-path/node_modules/kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
+ "node_modules/solparse/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dependencies": {
- "is-buffer": "^1.1.5"
+ "number-is-nan": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/to-readable-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
- "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "node_modules/solparse/node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "optional": true,
+ "node_modules/solparse/node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dependencies": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
+ "ansi-regex": "^2.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "node_modules/solparse/node_modules/y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+ },
+ "node_modules/solparse/node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "node_modules/solparse/node_modules/yargs": {
+ "version": "10.1.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz",
+ "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==",
"dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^8.1.0"
}
},
- "node_modules/to-regex/node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "optional": true,
+ "node_modules/solparse/node_modules/yargs-parser": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz",
+ "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==",
"dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "camelcase": "^4.1.0"
}
},
- "node_modules/to-regex/node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "node_modules/source-map": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
+ "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "dev": true,
"optional": true,
"dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "amdefine": ">=0.0.4"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.8.0"
}
},
- "node_modules/to-regex/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
+ "node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
"dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
}
},
- "node_modules/to-regex/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dependencies": {
- "kind-of": "^6.0.0"
- },
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/to-regex/node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
+ "node_modules/source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "deprecated": "See https://github.com/lydell/source-map-url#deprecated"
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
"dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
}
},
- "node_modules/to-regex/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dependencies": {
- "is-plain-object": "^2.0.4"
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
+ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g=="
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
- "node_modules/tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "node_modules/sshpk": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
+ "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
"dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
},
"engines": {
- "node": ">=0.8"
+ "node": ">=0.10.0"
}
},
- "node_modules/tough-cookie/node_modules/punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "node_modules/sshpk/node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "node_modules/stacktrace-parser": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz",
+ "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==",
+ "dependencies": {
+ "type-fest": "^0.7.1"
+ },
"engines": {
"node": ">=6"
}
},
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
- },
- "node_modules/treeify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz",
- "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==",
+ "node_modules/stacktrace-parser/node_modules/type-fest": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz",
+ "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==",
"engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/true-case-path": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz",
- "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q=="
- },
- "node_modules/try-require": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/try-require/-/try-require-1.2.1.tgz",
- "integrity": "sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I="
- },
- "node_modules/ts-essentials": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz",
- "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==",
- "dev": true,
- "peerDependencies": {
- "typescript": ">=3.7.0"
+ "node": ">=8"
}
},
- "node_modules/ts-generator": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ts-generator/-/ts-generator-0.1.1.tgz",
- "integrity": "sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ==",
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
"dependencies": {
- "@types/mkdirp": "^0.5.2",
- "@types/prettier": "^2.1.1",
- "@types/resolve": "^0.0.8",
- "chalk": "^2.4.1",
- "glob": "^7.1.2",
- "mkdirp": "^0.5.1",
- "prettier": "^2.1.2",
- "resolve": "^1.8.1",
- "ts-essentials": "^1.0.0"
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
},
- "bin": {
- "ts-generator": "dist/cli/run.js"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ts-generator/node_modules/ts-essentials": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz",
- "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ=="
- },
- "node_modules/ts-node": {
- "version": "10.7.0",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
- "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
- "dev": true,
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"dependencies": {
- "@cspotcode/source-map-support": "0.7.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.0",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
+ "is-descriptor": "^0.1.0"
},
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/ts-node/node_modules/acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
+ "node_modules/static-extend/node_modules/is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dependencies": {
+ "kind-of": "^3.0.2"
},
"engines": {
- "node": ">=0.4.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ts-node/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
+ "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
"engines": {
- "node": ">=0.3.1"
+ "node": ">=0.10.0"
}
},
- "node_modules/tsconfig-paths": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
- "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
- "dev": true,
+ "node_modules/static-extend/node_modules/is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.1",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/tsort": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
- "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y="
- },
- "node_modules/tsutils": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
- "dev": true,
+ "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dependencies": {
- "tslib": "^1.8.1"
+ "is-buffer": "^1.1.5"
},
"engines": {
- "node": ">= 6"
- },
- "peerDependencies": {
- "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ "node": ">=0.10.0"
}
},
- "node_modules/tsutils/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "node_modules/static-extend/node_modules/is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dependencies": {
- "safe-buffer": "^5.0.1"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=0.10.0"
}
},
- "node_modules/tweetnacl": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
- "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
- },
- "node_modules/tweetnacl-util": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
- "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
- },
- "node_modules/type": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
- "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
+ "node_modules/static-extend/node_modules/kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"engines": {
- "node": ">=4"
+ "node": ">= 0.8"
}
},
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
+ "node_modules/stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
+ "node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"engines": {
- "node": ">= 0.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/typechain": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/typechain/-/typechain-5.2.0.tgz",
- "integrity": "sha512-0INirvQ+P+MwJOeMct+WLkUE4zov06QxC96D+i3uGFEHoiSkZN70MKDQsaj8zkL86wQwByJReI2e7fOUwECFuw==",
- "dev": true,
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
- "@types/prettier": "^2.1.1",
- "command-line-args": "^4.0.7",
- "debug": "^4.1.1",
- "fs-extra": "^7.0.0",
- "glob": "^7.1.6",
- "js-sha3": "^0.8.0",
- "lodash": "^4.17.15",
- "mkdirp": "^1.0.4",
- "prettier": "^2.1.2",
- "ts-essentials": "^7.0.1"
- },
- "bin": {
- "typechain": "dist/cli/cli.js"
- },
- "peerDependencies": {
- "typescript": ">=4.1.0"
+ "safe-buffer": "~5.2.0"
}
},
- "node_modules/typechain/node_modules/fs-extra": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
- "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "node_modules/string-argv": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
"dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
"engines": {
- "node": ">=6 <7 || >=8"
+ "node": ">=0.6.19"
}
},
- "node_modules/typechain/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "dev": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
+ "node_modules/string-template": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
+ "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y="
},
- "node_modules/typechain/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=8"
}
},
- "node_modules/typechain/node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
- "node": ">= 4.0.0"
+ "node": ">=8"
}
},
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ "node_modules/string-width/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dependencies": {
- "is-typedarray": "^1.0.0"
+ "node_modules/string-width/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/typescript": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
- "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
},
"engines": {
- "node": ">=4.2.0"
+ "node": ">=8"
}
},
- "node_modules/typical": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
- "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
- },
- "node_modules/uglify-js": {
- "version": "3.15.1",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz",
- "integrity": "sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==",
- "dev": true,
- "optional": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
+ "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
},
- "engines": {
- "node": ">=0.8.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "optional": true
- },
- "node_modules/uglifyjs-webpack-plugin": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
- "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
- "hasInstallScript": true,
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
+ "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
"dependencies": {
- "source-map": "^0.5.6",
- "uglify-js": "^2.8.29",
- "webpack-sources": "^1.0.1"
- },
- "engines": {
- "node": ">=4.3.0 <5.0.0 || >=5.10"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
},
- "peerDependencies": {
- "webpack": "^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "dependencies": {
- "center-align": "^0.1.1",
- "right-align": "^0.1.1",
- "wordwrap": "0.0.2"
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "node_modules/strip-hex-prefix": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz",
+ "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=",
"dependencies": {
- "source-map": "~0.5.1",
- "yargs": "~3.10.0"
- },
- "bin": {
- "uglifyjs": "bin/uglifyjs"
+ "is-hex-prefixed": "1.0.0"
},
"engines": {
- "node": ">=0.8.0"
- },
- "optionalDependencies": {
- "uglify-to-browserify": "~1.0.0"
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "node_modules/strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=4"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"engines": {
- "node": ">=0.4.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/uglifyjs-webpack-plugin/node_modules/yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "node_modules/super-split": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/super-split/-/super-split-1.1.0.tgz",
+ "integrity": "sha512-I4bA5mgcb6Fw5UJ+EkpzqXfiuvVGS/7MuND+oBxNFmxu3ugLNrdIatzBLfhFRMVMLxgSsRy+TjIktgkF9RFSNQ=="
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dependencies": {
- "camelcase": "^1.0.2",
- "cliui": "^2.1.0",
- "decamelize": "^1.0.0",
- "window-size": "0.1.0"
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/ultron": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
- "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
- },
- "node_modules/unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
- "which-boxed-primitive": "^1.0.2"
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/undici": {
- "version": "4.16.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz",
- "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==",
- "engines": {
- "node": ">=12.18"
+ "node_modules/swap-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=",
+ "dependencies": {
+ "lower-case": "^1.1.1",
+ "upper-case": "^1.1.1"
}
},
- "node_modules/union-value": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "optional": true,
+ "node_modules/swarm-js": {
+ "version": "0.1.40",
+ "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz",
+ "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==",
"dependencies": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
+ "bluebird": "^3.5.0",
+ "buffer": "^5.0.5",
+ "eth-lib": "^0.1.26",
+ "fs-extra": "^4.0.2",
+ "got": "^7.1.0",
+ "mime-types": "^2.1.16",
+ "mkdirp-promise": "^5.0.1",
+ "mock-fs": "^4.1.0",
+ "setimmediate": "^1.0.5",
+ "tar": "^4.0.2",
+ "xhr-request": "^1.0.1"
+ }
+ },
+ "node_modules/swarm-js/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "engines": {
- "node": ">= 10.0.0"
+ "node_modules/swarm-js/node_modules/fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "node_modules/swarm-js/node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
"engines": {
- "node": ">= 0.8"
+ "node": ">=4"
}
},
- "node_modules/unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
- "optional": true,
+ "node_modules/swarm-js/node_modules/got": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
+ "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==",
"dependencies": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
+ "decompress-response": "^3.2.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-plain-obj": "^1.1.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "isurl": "^1.0.0-alpha5",
+ "lowercase-keys": "^1.0.0",
+ "p-cancelable": "^0.3.0",
+ "p-timeout": "^1.1.1",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "url-parse-lax": "^1.0.0",
+ "url-to-options": "^1.0.1"
},
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/swarm-js/node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/unset-value/node_modules/has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
- "optional": true,
- "dependencies": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
+ "node_modules/swarm-js/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "optional": true,
+ "node_modules/swarm-js/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/swarm-js/node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/swarm-js/node_modules/p-cancelable": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
+ "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/swarm-js/node_modules/p-timeout": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
+ "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
"dependencies": {
- "isarray": "1.0.0"
+ "p-finally": "^1.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4"
}
},
- "node_modules/unset-value/node_modules/has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
- "optional": true,
+ "node_modules/swarm-js/node_modules/prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
- "optional": true,
+ "node_modules/swarm-js/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"engines": {
- "node": ">=4",
- "yarn": "*"
+ "node": ">= 4.0.0"
}
},
- "node_modules/upper-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
- "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
- },
- "node_modules/upper-case-first": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
- "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
+ "node_modules/swarm-js/node_modules/url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
"dependencies": {
- "upper-case": "^1.1.1"
+ "prepend-http": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "node_modules/sync-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz",
+ "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==",
"dependencies": {
- "punycode": "^2.1.0"
+ "http-response-object": "^3.0.1",
+ "sync-rpc": "^1.2.1",
+ "then-request": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "deprecated": "Please see https://github.com/lydell/urix#deprecated",
- "optional": true
- },
- "node_modules/url": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "node_modules/sync-rpc": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz",
+ "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==",
"dependencies": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
+ "get-port": "^3.1.0"
}
},
- "node_modules/url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "node_modules/table": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
+ "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "dev": true,
"dependencies": {
- "prepend-http": "^2.0.0"
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
},
"engines": {
- "node": ">=4"
+ "node": ">=10.0.0"
}
},
- "node_modules/url-set-query": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
- "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
},
- "node_modules/url-to-options": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "node_modules/table/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
"engines": {
- "node": ">= 4"
+ "node": ">=8"
}
},
- "node_modules/url/node_modules/punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
- },
- "node_modules/use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "optional": true,
+ "node_modules/table/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/utf-8-validate": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz",
- "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==",
- "hasInstallScript": true,
+ "node_modules/table/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"dependencies": {
- "node-gyp-build": "^4.3.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=6.14.2"
+ "node": ">=7.0.0"
}
},
- "node_modules/utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
- "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
+ "node_modules/table/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
- "node_modules/util": {
- "version": "0.12.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
- "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
- "dependencies": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "safe-buffer": "^5.1.2",
- "which-typed-array": "^1.1.2"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
"engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "bin": {
- "uuid": "bin/uuid"
+ "node": ">=8"
}
},
- "node_modules/v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
- "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
+ "node_modules/table/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
},
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/varint": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
- "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "node_modules/table/node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
"engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/vm-browserify": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
- "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
- },
- "node_modules/watchpack": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
- "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+ "node_modules/table/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
"dependencies": {
- "graceful-fs": "^4.1.2",
- "neo-async": "^2.5.0"
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
},
- "optionalDependencies": {
- "chokidar": "^3.4.1",
- "watchpack-chokidar2": "^2.0.1"
- }
- },
- "node_modules/watchpack-chokidar2": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
- "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
- "optional": true,
- "dependencies": {
- "chokidar": "^2.1.8"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "optional": true,
- "dependencies": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
- "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "optional": true,
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
"dependencies": {
- "remove-trailing-separator": "^1.0.1"
+ "ansi-regex": "^5.0.1"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/binary-extensions": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/watchpack-chokidar2/node_modules/braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "optional": true,
+ "node_modules/tar": {
+ "version": "4.4.19",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
+ "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
"dependencies": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
+ "chownr": "^1.1.4",
+ "fs-minipass": "^1.2.7",
+ "minipass": "^2.9.0",
+ "minizlib": "^1.3.3",
+ "mkdirp": "^0.5.5",
+ "safe-buffer": "^5.2.1",
+ "yallist": "^3.1.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.5"
}
},
- "node_modules/watchpack-chokidar2/node_modules/chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies",
+ "node_modules/tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
"optional": true,
+ "peer": true,
"dependencies": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
- },
- "optionalDependencies": {
- "fsevents": "^1.2.7"
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
}
},
- "node_modules/watchpack-chokidar2/node_modules/define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"optional": true,
+ "peer": true,
"dependencies": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/watchpack-chokidar2/node_modules/fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "optional": true,
+ "node_modules/test-value": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
+ "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=",
"dependencies": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
+ "array-back": "^1.0.3",
+ "typical": "^2.6.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
- "optional": true,
- "dependencies": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "optional": true,
+ "node_modules/test-value/node_modules/array-back": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
+ "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
"dependencies": {
- "is-extglob": "^2.1.0"
+ "typical": "^2.6.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.12.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
+ "node_modules/testrpc": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz",
+ "integrity": "sha512-afH1hO+SQ/VPlmaLUFj2636QMeDvPCeQMc/9RBMW0IfjNe9gFD9Ra3ShqYkB7py0do1ZcCna/9acHyzTJ+GcNA==",
+ "deprecated": "testrpc has been renamed to ganache-cli, please use this package from now on."
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ },
+ "node_modules/then-request": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz",
+ "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==",
"dependencies": {
- "kind-of": "^6.0.0"
+ "@types/concat-stream": "^1.6.0",
+ "@types/form-data": "0.0.33",
+ "@types/node": "^8.0.0",
+ "@types/qs": "^6.2.31",
+ "caseless": "~0.12.0",
+ "concat-stream": "^1.6.0",
+ "form-data": "^2.2.0",
+ "http-basic": "^8.1.1",
+ "http-response-object": "^3.0.1",
+ "promise": "^8.0.0",
+ "qs": "^6.4.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
- "optional": true,
+ "node_modules/then-request/node_modules/@types/node": {
+ "version": "8.10.66",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz",
+ "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw=="
+ },
+ "node_modules/then-request/node_modules/form-data": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
+ "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
"dependencies": {
- "binary-extensions": "^1.0.0"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.12"
}
},
- "node_modules/watchpack-chokidar2/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "node_modules/timed-out": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
+ "node_modules/title-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
+ "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=",
"dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "no-case": "^2.2.0",
+ "upper-case": "^1.0.3"
}
},
- "node_modules/watchpack-chokidar2/node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dependencies": {
- "is-plain-object": "^2.0.4"
+ "os-tmpdir": "~1.0.2"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.6.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "optional": true,
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -26406,11 +26897,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": {
+ "node_modules/to-object-path/node_modules/kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -26418,870 +26908,902 @@
"node": ">=0.10.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "optional": true,
- "dependencies": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
+ "node_modules/to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/watchpack-chokidar2/node_modules/micromatch/node_modules/extend-shallow": {
+ "node_modules/to-regex": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "optional": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
- "optional": true,
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dependencies": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
+ "is-number": "^7.0.0"
},
"engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/watchpack-chokidar2/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "optional": true
- },
- "node_modules/watchpack-chokidar2/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "optional": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
+ "node": ">=8.0"
}
},
- "node_modules/watchpack-chokidar2/node_modules/to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
- "optional": true,
- "dependencies": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.6"
}
},
- "node_modules/web3": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.0.tgz",
- "integrity": "sha512-n39O7QQNkpsjhiHMJ/6JY6TaLbdX+2FT5iGs8tb3HbIWOhPm4+a7UDbr5Lkm+gLa9aRKWesZs5D5hWyEvg4aJA==",
- "hasInstallScript": true,
+ "node_modules/tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"dependencies": {
- "web3-bzz": "1.7.0",
- "web3-core": "1.7.0",
- "web3-eth": "1.7.0",
- "web3-eth-personal": "1.7.0",
- "web3-net": "1.7.0",
- "web3-shh": "1.7.0",
- "web3-utils": "1.7.0"
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.8"
}
},
- "node_modules/web3-bzz": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.0.tgz",
- "integrity": "sha512-XPhTWUnZa8gnARfiqaag3jJ9+6+a66Li8OikgBUJoMUqPuQTCJPncTbGYqOJIfRFGavEAdlMnfYXx9lvgv2ZPw==",
- "hasInstallScript": true,
- "dependencies": {
- "@types/node": "^12.12.6",
- "got": "9.6.0",
- "swarm-js": "^0.1.40"
- },
+ "node_modules/tough-cookie/node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=6"
}
},
- "node_modules/web3-bzz/node_modules/@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
},
- "node_modules/web3-core": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.0.tgz",
- "integrity": "sha512-U/CRL53h3T5KHl8L3njzCBT7fCaHkbE6BGJe3McazvFldRbfTDEHXkUJCyM30ZD0RoLi3aDfTVeFIusmEyCctA==",
- "dependencies": {
- "@types/bn.js": "^4.11.5",
- "@types/node": "^12.12.6",
- "bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-requestmanager": "1.7.0",
- "web3-utils": "1.7.0"
- },
+ "node_modules/treeify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz",
+ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.6"
}
},
- "node_modules/web3-core-helpers": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz",
- "integrity": "sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw==",
- "dependencies": {
- "web3-eth-iban": "1.5.3",
- "web3-utils": "1.5.3"
- },
- "engines": {
- "node": ">=8.0.0"
- }
+ "node_modules/true-case-path": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz",
+ "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q=="
},
- "node_modules/web3-core-helpers/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/try-require": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/try-require/-/try-require-1.2.1.tgz",
+ "integrity": "sha1-NEiaLKwMCcHMEO2RugEVlNQzO+I="
},
- "node_modules/web3-core-helpers/node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
- "dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
+ "node_modules/ts-essentials": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-7.0.3.tgz",
+ "integrity": "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==",
+ "dev": true,
+ "peerDependencies": {
+ "typescript": ">=3.7.0"
}
},
- "node_modules/web3-core-helpers/node_modules/web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
+ "node_modules/ts-generator": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/ts-generator/-/ts-generator-0.1.1.tgz",
+ "integrity": "sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ==",
"dependencies": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
- "ethereum-bloom-filters": "^1.0.6",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "@types/mkdirp": "^0.5.2",
+ "@types/prettier": "^2.1.1",
+ "@types/resolve": "^0.0.8",
+ "chalk": "^2.4.1",
+ "glob": "^7.1.2",
+ "mkdirp": "^0.5.1",
+ "prettier": "^2.1.2",
+ "resolve": "^1.8.1",
+ "ts-essentials": "^1.0.0"
},
- "engines": {
- "node": ">=8.0.0"
+ "bin": {
+ "ts-generator": "dist/cli/run.js"
}
},
- "node_modules/web3-core-method": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.0.tgz",
- "integrity": "sha512-43Om+kZX8wU5u1pJ28TltF9e9pSTRph6b8wrOb6wgXAfPHqMulq6UTBJWjXXIRVN46Eiqv0nflw35hp9bbgnbA==",
- "dependencies": {
- "@ethersproject/transactions": "^5.0.0-beta.135",
- "web3-core-helpers": "1.7.0",
- "web3-core-promievent": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-method/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/web3-core-method/node_modules/eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
+ "node_modules/ts-generator/node_modules/ts-essentials": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz",
+ "integrity": "sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ=="
},
- "node_modules/web3-core-method/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/ts-node": {
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
+ "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
+ "dev": true,
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "@cspotcode/source-map-support": "0.7.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.0",
+ "yn": "3.1.1"
},
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-method/node_modules/web3-core-promievent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.0.tgz",
- "integrity": "sha512-xPH66XeC0K0k29GoRd0vyPQ07yxERPRd4yVPrbMzGAz/e9E4M3XN//XK6+PdfGvGw3fx8VojS+tNIMiw+PujbQ==",
- "dependencies": {
- "eventemitter3": "4.0.4"
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
},
- "engines": {
- "node": ">=8.0.0"
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
}
},
- "node_modules/web3-core-method/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "node_modules/ts-node/node_modules/acorn": {
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.4.0"
}
},
- "node_modules/web3-core-promievent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz",
- "integrity": "sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg==",
- "dependencies": {
- "eventemitter3": "4.0.4"
- },
+ "node_modules/ts-node/node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.3.1"
}
},
- "node_modules/web3-core-promievent/node_modules/eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "node_modules/web3-core-requestmanager": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.0.tgz",
- "integrity": "sha512-rA3dBTBPrt+eIfTAQ2/oYNTN/2wbZaYNR3pFZGqG8+2oCK03+7oQyz4sWISKy/nYQhURh4GK01rs9sN4o/Tq9w==",
+ "node_modules/tsconfig-paths": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
+ "dev": true,
"dependencies": {
- "util": "^0.12.0",
- "web3-core-helpers": "1.7.0",
- "web3-providers-http": "1.7.0",
- "web3-providers-ipc": "1.7.0",
- "web3-providers-ws": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
}
},
- "node_modules/web3-core-requestmanager/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
- "node_modules/web3-core-requestmanager/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
+ "node_modules/tsort": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz",
+ "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y="
},
- "node_modules/web3-core-requestmanager/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "tslib": "^1.8.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
- "node_modules/web3-core-subscriptions": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.0.tgz",
- "integrity": "sha512-6giF8pyJrPmWrRpc2WLoVCvQdMMADp20ZpAusEW72axauZCNlW1XfTjs0i4QHQBfdd2lFp65qad9IuATPhuzrQ==",
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dependencies": {
- "eventemitter3": "4.0.4",
- "web3-core-helpers": "1.7.0"
+ "safe-buffer": "^5.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": "*"
}
},
- "node_modules/web3-core-subscriptions/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
},
- "node_modules/web3-core-subscriptions/node_modules/eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
+ "node_modules/tweetnacl-util": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
},
- "node_modules/web3-core-subscriptions/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
+ "node_modules/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
},
- "node_modules/web3-core-subscriptions/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "prelude-ls": "^1.2.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 0.8.0"
}
},
- "node_modules/web3-core/node_modules/@types/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
- "dependencies": {
- "@types/node": "*"
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/web3-core/node_modules/@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
- },
- "node_modules/web3-core/node_modules/bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
"engines": {
- "node": "*"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/web3-core/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/web3-core/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 0.6"
}
},
- "node_modules/web3-core/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/typechain": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typechain/-/typechain-5.2.0.tgz",
+ "integrity": "sha512-0INirvQ+P+MwJOeMct+WLkUE4zov06QxC96D+i3uGFEHoiSkZN70MKDQsaj8zkL86wQwByJReI2e7fOUwECFuw==",
+ "dev": true,
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "@types/prettier": "^2.1.1",
+ "command-line-args": "^4.0.7",
+ "debug": "^4.1.1",
+ "fs-extra": "^7.0.0",
+ "glob": "^7.1.6",
+ "js-sha3": "^0.8.0",
+ "lodash": "^4.17.15",
+ "mkdirp": "^1.0.4",
+ "prettier": "^2.1.2",
+ "ts-essentials": "^7.0.1"
},
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.0.tgz",
- "integrity": "sha512-3uYwjMjn/MZjKIzXCt4YL9ja/k9X5shfa4lKparZhZE6uesmu+xmSmrEFXA/e9qcveF50jkV7frjkT8H+cLYtw==",
- "dependencies": {
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-eth-abi": "1.7.0",
- "web3-eth-accounts": "1.7.0",
- "web3-eth-contract": "1.7.0",
- "web3-eth-ens": "1.7.0",
- "web3-eth-iban": "1.7.0",
- "web3-eth-personal": "1.7.0",
- "web3-net": "1.7.0",
- "web3-utils": "1.7.0"
+ "bin": {
+ "typechain": "dist/cli/cli.js"
},
- "engines": {
- "node": ">=8.0.0"
+ "peerDependencies": {
+ "typescript": ">=4.1.0"
}
},
- "node_modules/web3-eth-abi": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz",
- "integrity": "sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg==",
+ "node_modules/typechain/node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
"dependencies": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.5.3"
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
},
"engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-abi/node_modules/@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
- "dependencies": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
+ "node": ">=6 <7 || >=8"
}
},
- "node_modules/web3-eth-abi/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/web3-eth-abi/node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
- "dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
+ "node_modules/typechain/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
}
},
- "node_modules/web3-eth-abi/node_modules/web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
- "ethereum-bloom-filters": "^1.0.6",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "node_modules/typechain/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=10"
}
},
- "node_modules/web3-eth-accounts": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.0.tgz",
- "integrity": "sha512-Zwm7TlQXdXGRuS6+ib1YsR5fQwpfnFyL6UAZg1zERdrUrs3IkCZSL3yCP/8ZYbAjdTEwWljoott2iSqXNH09ug==",
- "dependencies": {
- "@ethereumjs/common": "^2.5.0",
- "@ethereumjs/tx": "^3.3.2",
- "crypto-browserify": "3.12.0",
- "eth-lib": "0.2.8",
- "ethereumjs-util": "^7.0.10",
- "scrypt-js": "^3.0.1",
- "uuid": "3.3.2",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-utils": "1.7.0"
- },
+ "node_modules/typechain/node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
"engines": {
- "node": ">=8.0.0"
+ "node": ">= 4.0.0"
}
},
- "node_modules/web3-eth-accounts/node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
+ "is-typedarray": "^1.0.0"
}
},
- "node_modules/web3-eth-accounts/node_modules/eth-lib/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/web3-eth-accounts/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
+ "node_modules/typescript": {
+ "version": "4.6.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
+ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=4.2.0"
}
},
- "node_modules/web3-eth-accounts/node_modules/uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "bin": {
- "uuid": "bin/uuid"
- }
+ "node_modules/typical": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
+ "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
},
- "node_modules/web3-eth-accounts/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "node_modules/u2f-api": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz",
+ "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==",
+ "peer": true
+ },
+ "node_modules/uglify-js": {
+ "version": "3.15.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz",
+ "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==",
+ "dev": true,
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.8.0"
}
},
- "node_modules/web3-eth-accounts/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
},
- "engines": {
- "node": ">=8.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/web3-eth-accounts/node_modules/web3-eth-iban/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/underscore": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz",
+ "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA=="
},
- "node_modules/web3-eth-contract": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.0.tgz",
- "integrity": "sha512-2LY1Xwxu5rx468nqHuhvupQAIpytxIUj3mGL9uexszkhrQf05THVe3i4OnUCzkeN6B2cDztNOqLT3j9SSnVQDg==",
- "dependencies": {
- "@types/bn.js": "^4.11.5",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-promievent": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-eth-abi": "1.7.0",
- "web3-utils": "1.7.0"
- },
+ "node_modules/undici": {
+ "version": "4.16.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz",
+ "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==",
"engines": {
- "node": ">=8.0.0"
+ "node": ">=12.18"
}
},
- "node_modules/web3-eth-contract/node_modules/@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dependencies": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/web3-eth-contract/node_modules/@types/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
- "dependencies": {
- "@types/node": "*"
+ "node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "engines": {
+ "node": ">= 10.0.0"
}
},
- "node_modules/web3-eth-contract/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/web3-eth-contract/node_modules/eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "node_modules/web3-eth-contract/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/web3-eth-contract/node_modules/web3-core-promievent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.0.tgz",
- "integrity": "sha512-xPH66XeC0K0k29GoRd0vyPQ07yxERPRd4yVPrbMzGAz/e9E4M3XN//XK6+PdfGvGw3fx8VojS+tNIMiw+PujbQ==",
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
"dependencies": {
- "eventemitter3": "4.0.4"
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/web3-eth-contract/node_modules/web3-eth-abi": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz",
- "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==",
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
"dependencies": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.7.0"
+ "isarray": "1.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/web3-eth-contract/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
+ },
+ "node_modules/upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "upper-case": "^1.1.1"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "deprecated": "Please see https://github.com/lydell/urix#deprecated"
+ },
+ "node_modules/url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dependencies": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "node_modules/url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dependencies": {
+ "prepend-http": "^2.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=4"
}
},
- "node_modules/web3-eth-ens": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.0.tgz",
- "integrity": "sha512-I1bikYJJWQ/FJZIAvwsGOvzAgcRIkosWG4s1L6veRoXaU8OEJFeh4s00KcfHDxg7GWZZGbUSbdbzKpwRbWnvkg==",
+ "node_modules/url-set-query": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
+ "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
+ },
+ "node_modules/url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ },
+ "node_modules/usb": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/usb/-/usb-1.9.2.tgz",
+ "integrity": "sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==",
+ "hasInstallScript": true,
+ "optional": true,
+ "peer": true,
"dependencies": {
- "content-hash": "^2.5.2",
- "eth-ens-namehash": "2.0.8",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-promievent": "1.7.0",
- "web3-eth-abi": "1.7.0",
- "web3-eth-contract": "1.7.0",
- "web3-utils": "1.7.0"
+ "node-addon-api": "^4.2.0",
+ "node-gyp-build": "^4.3.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=10.16.0"
}
},
- "node_modules/web3-eth-ens/node_modules/@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "node_modules/usb/node_modules/node-addon-api": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
+ "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/utf-8-validate": {
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz",
+ "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==",
+ "hasInstallScript": true,
"dependencies": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=6.14.2"
}
},
- "node_modules/web3-eth-ens/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/utf8": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
},
- "node_modules/web3-eth-ens/node_modules/eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
+ "node_modules/util": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
+ "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "safe-buffer": "^5.1.2",
+ "which-typed-array": "^1.1.2"
+ }
},
- "node_modules/web3-eth-ens/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/varint": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "node_modules/web3": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.3.tgz",
+ "integrity": "sha512-UgBvQnKIXncGYzsiGacaiHtm0xzQ/JtGqcSO/ddzQHYxnNuwI72j1Pb4gskztLYihizV9qPNQYHMSCiBlStI9A==",
+ "hasInstallScript": true,
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-bzz": "1.7.3",
+ "web3-core": "1.7.3",
+ "web3-eth": "1.7.3",
+ "web3-eth-personal": "1.7.3",
+ "web3-net": "1.7.3",
+ "web3-shh": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-ens/node_modules/web3-core-promievent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.0.tgz",
- "integrity": "sha512-xPH66XeC0K0k29GoRd0vyPQ07yxERPRd4yVPrbMzGAz/e9E4M3XN//XK6+PdfGvGw3fx8VojS+tNIMiw+PujbQ==",
+ "node_modules/web3-bzz": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.3.tgz",
+ "integrity": "sha512-y2i2IW0MfSqFc1JBhBSQ59Ts9xE30hhxSmLS13jLKWzie24/An5dnoGarp2rFAy20tevJu1zJVPYrEl14jiL5w==",
+ "hasInstallScript": true,
"dependencies": {
- "eventemitter3": "4.0.4"
+ "@types/node": "^12.12.6",
+ "got": "9.6.0",
+ "swarm-js": "^0.1.40"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-ens/node_modules/web3-eth-abi": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz",
- "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==",
+ "node_modules/web3-bzz/node_modules/@types/node": {
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
+ },
+ "node_modules/web3-core": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.3.tgz",
+ "integrity": "sha512-4RNxueGyevD1XSjdHE57vz/YWRHybpcd3wfQS33fgMyHZBVLFDNwhn+4dX4BeofVlK/9/cmPAokLfBUStZMLdw==",
"dependencies": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.7.0"
+ "@types/bn.js": "^4.11.5",
+ "@types/node": "^12.12.6",
+ "bignumber.js": "^9.0.0",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-requestmanager": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-ens/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/web3-core-helpers": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.3.tgz",
+ "integrity": "sha512-qS2t6UKLhRV/6C7OFHtMeoHphkcA+CKUr2vfpxy4hubs3+Nj28K9pgiqFuvZiXmtEEwIAE2A28GBOC3RdcSuFg==",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "web3-eth-iban": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-iban": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz",
- "integrity": "sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw==",
+ "node_modules/web3-core-method": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.3.tgz",
+ "integrity": "sha512-SeF8YL/NVFbj/ddwLhJeS0io8y7wXaPYA2AVT0h2C2ESYkpvOtQmyw2Bc3aXxBmBErKcbOJjE2ABOKdUmLSmMA==",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.5.3"
+ "@ethersproject/transactions": "^5.0.0-beta.135",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-promievent": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-iban/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/web3-eth-iban/node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "node_modules/web3-core-promievent": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.3.tgz",
+ "integrity": "sha512-+mcfNJLP8h2JqcL/UdMGdRVfTdm+bsoLzAFtLpazE4u9kU7yJUgMMAqnK59fKD3Zpke3DjaUJKwz1TyiGM5wig==",
"dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
+ "eventemitter3": "4.0.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/web3-eth-iban/node_modules/web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
+ "node_modules/web3-core-promievent/node_modules/eventemitter3": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
+ },
+ "node_modules/web3-core-requestmanager": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.3.tgz",
+ "integrity": "sha512-bC+jeOjPbagZi2IuL1J5d44f3zfPcgX+GWYUpE9vicNkPUxFBWRG+olhMo7L+BIcD57cTmukDlnz+1xBULAjFg==",
"dependencies": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
- "ethereum-bloom-filters": "^1.0.6",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "util": "^0.12.0",
+ "web3-core-helpers": "1.7.3",
+ "web3-providers-http": "1.7.3",
+ "web3-providers-ipc": "1.7.3",
+ "web3-providers-ws": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-personal": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.0.tgz",
- "integrity": "sha512-Dr9RZTNOR80PhrPKGdktDUXpOgExEcCcosBj080lKCJFU1paSPj9Zfnth3u6BtIOXyKsVFTrpqekqUDyAwXnNw==",
+ "node_modules/web3-core-subscriptions": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.3.tgz",
+ "integrity": "sha512-/i1ZCLW3SDxEs5mu7HW8KL4Vq7x4/fDXY+yf/vPoDljlpvcLEOnI8y9r7om+0kYwvuTlM6DUHHafvW0221TyRQ==",
"dependencies": {
- "@types/node": "^12.12.6",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-net": "1.7.0",
- "web3-utils": "1.7.0"
+ "eventemitter3": "4.0.4",
+ "web3-core-helpers": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-personal/node_modules/@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
- },
- "node_modules/web3-eth-personal/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "node_modules/web3-core-subscriptions/node_modules/eventemitter3": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
- "node_modules/web3-eth-personal/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/web3-core/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "@types/node": "*"
+ }
+ },
+ "node_modules/web3-core/node_modules/@types/node": {
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
+ },
+ "node_modules/web3-eth": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.3.tgz",
+ "integrity": "sha512-BCIRMPwaMlTCbswXyGT6jj9chCh9RirbDFkPtvqozfQ73HGW7kP78TXXf9+Xdo1GjutQfxi/fQ9yPdxtDJEpDA==",
+ "dependencies": {
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-eth-abi": "1.7.3",
+ "web3-eth-accounts": "1.7.3",
+ "web3-eth-contract": "1.7.3",
+ "web3-eth-ens": "1.7.3",
+ "web3-eth-iban": "1.7.3",
+ "web3-eth-personal": "1.7.3",
+ "web3-net": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth-personal/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/web3-eth-abi": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz",
+ "integrity": "sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw==",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "@ethersproject/abi": "5.0.7",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth/node_modules/@ethersproject/abi": {
+ "node_modules/web3-eth-abi/node_modules/@ethersproject/abi": {
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
"integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
@@ -27297,208 +27819,207 @@
"@ethersproject/strings": "^5.0.4"
}
},
- "node_modules/web3-eth/node_modules/bn.js": {
+ "node_modules/web3-eth-accounts": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.3.tgz",
+ "integrity": "sha512-aDaWjW1oJeh0LeSGRVyEBiTe/UD2/cMY4dD6pQYa8dOhwgMtNQjxIQ7kacBBXe7ZKhjbIFZDhvXN4mjXZ82R2Q==",
+ "dependencies": {
+ "@ethereumjs/common": "^2.5.0",
+ "@ethereumjs/tx": "^3.3.2",
+ "crypto-browserify": "3.12.0",
+ "eth-lib": "0.2.8",
+ "ethereumjs-util": "^7.0.10",
+ "scrypt-js": "^3.0.1",
+ "uuid": "3.3.2",
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-utils": "1.7.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/web3-eth-accounts/node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/web3-eth/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/web3-eth-accounts/node_modules/eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
}
},
- "node_modules/web3-eth/node_modules/web3-eth-abi": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz",
- "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==",
+ "node_modules/web3-eth-accounts/node_modules/uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/web3-eth-contract": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.3.tgz",
+ "integrity": "sha512-7mjkLxCNMWlQrlfM/MmNnlKRHwFk5XrZcbndoMt3KejcqDP6dPHi2PZLutEcw07n/Sk8OMpSamyF3QiGfmyRxw==",
"dependencies": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.7.0"
+ "@types/bn.js": "^4.11.5",
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-promievent": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-eth-abi": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-eth/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/web3-eth-contract/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
+ "@types/node": "*"
}
},
- "node_modules/web3-net": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.0.tgz",
- "integrity": "sha512-8pmfU1Se7DmG40Pu8nOCKlhuI12VsVzCtdFDnLAai0zGVAOUuuOCK71B2aKm6u9amWBJjtOlyrCwvsG+QEd6dw==",
+ "node_modules/web3-eth-ens": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.3.tgz",
+ "integrity": "sha512-q7+hFGHIc0mBI3LwgRVcLCQmp6GItsWgUtEZ5bjwdjOnJdbjYddm7PO9RDcTDQ6LIr7hqYaY4WTRnDHZ6BEt5Q==",
"dependencies": {
- "web3-core": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-utils": "1.7.0"
+ "content-hash": "^2.5.2",
+ "eth-ens-namehash": "2.0.8",
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-promievent": "1.7.3",
+ "web3-eth-abi": "1.7.3",
+ "web3-eth-contract": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-providers-http": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.0.tgz",
- "integrity": "sha512-Y9reeEiApfvQKLUUtrU4Z0c+H6b7BMWcsxjgoXndI1C5NB297mIUfltXxfXsh5C/jk5qn4Q3sJp3SwQTyVjH7Q==",
+ "node_modules/web3-eth-iban": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.3.tgz",
+ "integrity": "sha512-1GPVWgajwhh7g53mmYDD1YxcftQniIixMiRfOqlnA1w0mFGrTbCoPeVaSQ3XtSf+rYehNJIZAUeDBnONVjXXmg==",
"dependencies": {
- "web3-core-helpers": "1.7.0",
- "xhr2-cookies": "1.1.0"
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-providers-http/node_modules/bn.js": {
+ "node_modules/web3-eth-iban/node_modules/bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/web3-providers-http/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/web3-eth-personal": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.3.tgz",
+ "integrity": "sha512-iTLz2OYzEsJj2qGE4iXC1Gw+KZN924fTAl0ESBFs2VmRhvVaM7GFqZz/wx7/XESl3GVxGxlRje3gNK0oGIoYYQ==",
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "@types/node": "^12.12.6",
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-net": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-providers-http/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
+ "node_modules/web3-eth-personal/node_modules/@types/node": {
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
},
- "node_modules/web3-providers-ipc": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.0.tgz",
- "integrity": "sha512-U5YLXgu6fvAK4nnMYqo9eoml3WywgTym0dgCdVX/n1UegLIQ4nctTubBAuWQEJzmAzwh+a6ValGcE7ZApTRI7Q==",
+ "node_modules/web3-net": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.3.tgz",
+ "integrity": "sha512-zAByK0Qrr71k9XW0Adtn+EOuhS9bt77vhBO6epAeQ2/VKl8rCGLAwrl3GbeEl7kWa8s/su72cjI5OetG7cYR0g==",
"dependencies": {
- "oboe": "2.1.5",
- "web3-core-helpers": "1.7.0"
+ "web3-core": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-utils": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-providers-ipc/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/web3-providers-ipc/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
+ "node_modules/web3-providers-http": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.3.tgz",
+ "integrity": "sha512-TQJfMsDQ5Uq9zGMYlu7azx1L7EvxW+Llks3MaWn3cazzr5tnrDbGh6V17x6LN4t8tFDHWx0rYKr3mDPqyTjOZw==",
"dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-core-helpers": "1.7.3",
+ "xhr2-cookies": "1.1.0"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-providers-ipc/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
+ "node_modules/web3-providers-ipc": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.3.tgz",
+ "integrity": "sha512-Z4EGdLKzz6I1Bw+VcSyqVN4EJiT2uAro48Am1eRvxUi4vktGoZtge1ixiyfrRIVb6nPe7KnTFl30eQBtMqS0zA==",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "oboe": "2.1.5",
+ "web3-core-helpers": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-providers-ws": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.0.tgz",
- "integrity": "sha512-0a8+lVV3JBf+eYnGOsdzOpftK1kis5X7s35QAdoaG5SDapnEylXFlR4xDSSSU88ZwMwvse8hvng2xW6A7oeWxw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.3.tgz",
+ "integrity": "sha512-PpykGbkkkKtxPgv7U4ny4UhnkqSZDfLgBEvFTXuXLAngbX/qdgfYkhIuz3MiGplfL7Yh93SQw3xDjImXmn2Rgw==",
"dependencies": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.7.0",
+ "web3-core-helpers": "1.7.3",
"websocket": "^1.0.32"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3-providers-ws/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
"node_modules/web3-providers-ws/node_modules/eventemitter3": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
- "node_modules/web3-providers-ws/node_modules/web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "dependencies": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-providers-ws/node_modules/web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/web3-shh": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.0.tgz",
- "integrity": "sha512-RZhxcevALIPK178VZCpwMBvQeW+IoWtRJ4EMdegpbnETeZaC3aRUcs6vKnrf0jXJjm4J/E2Dt438Y1Ord/1IMw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.3.tgz",
+ "integrity": "sha512-bQTSKkyG7GkuULdZInJ0osHjnmkHij9tAySibpev1XjYdjLiQnd0J9YGF4HjvxoG3glNROpuCyTaRLrsLwaZuw==",
"hasInstallScript": true,
"dependencies": {
- "web3-core": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-net": "1.7.0"
+ "web3-core": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-net": "1.7.3"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-utils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.0.tgz",
- "integrity": "sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.3.tgz",
+ "integrity": "sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg==",
"dependencies": {
"bn.js": "^4.11.9",
"ethereum-bloom-filters": "^1.0.6",
@@ -27517,610 +28038,93 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/web3-utils/node_modules/ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/web3-utils/node_modules/ethereumjs-util/node_modules/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- },
"node_modules/webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
- "node_modules/webpack": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
- "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
+ "node_modules/websocket": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
+ "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==",
"dependencies": {
- "acorn": "^5.0.0",
- "acorn-dynamic-import": "^2.0.0",
- "ajv": "^6.1.0",
- "ajv-keywords": "^3.1.0",
- "async": "^2.1.2",
- "enhanced-resolve": "^3.4.0",
- "escope": "^3.6.0",
- "interpret": "^1.0.0",
- "json-loader": "^0.5.4",
- "json5": "^0.5.1",
- "loader-runner": "^2.3.0",
- "loader-utils": "^1.1.0",
- "memory-fs": "~0.4.1",
- "mkdirp": "~0.5.0",
- "node-libs-browser": "^2.0.0",
- "source-map": "^0.5.3",
- "supports-color": "^4.2.1",
- "tapable": "^0.2.7",
- "uglifyjs-webpack-plugin": "^0.4.6",
- "watchpack": "^1.4.0",
- "webpack-sources": "^1.0.1",
- "yargs": "^8.0.2"
- },
- "bin": {
- "webpack": "bin/webpack.js"
+ "bufferutil": "^4.0.1",
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "typedarray-to-buffer": "^3.1.5",
+ "utf-8-validate": "^5.0.2",
+ "yaeti": "^0.0.6"
},
"engines": {
- "node": ">=4.3.0 <5.0.0 || >=5.10"
+ "node": ">=4.0.0"
}
},
- "node_modules/webpack-sources": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
- "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "node_modules/websocket/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
- "source-list-map": "^2.0.0",
- "source-map": "~0.6.1"
+ "ms": "2.0.0"
}
},
- "node_modules/webpack-sources/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/websocket/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
}
},
- "node_modules/webpack/node_modules/acorn": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
- "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
"bin": {
- "acorn": "bin/acorn"
+ "node-which": "bin/node-which"
},
"engines": {
- "node": ">=0.4.0"
+ "node": ">= 8"
}
},
- "node_modules/webpack/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/webpack/node_modules/cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "node_modules/webpack/node_modules/cliui/node_modules/is-fullwidth-code-point": {
+ "node_modules/which-module": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/cliui/node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/cliui/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "dependencies": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
- "node_modules/webpack/node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "dependencies": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dependencies": {
- "locate-path": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
- },
- "node_modules/webpack/node_modules/get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "engines": {
- "node": ">=4"
- }
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
},
- "node_modules/webpack/node_modules/is-stream": {
+ "node_modules/which-pm-runs": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "bin": {
- "json5": "lib/cli.js"
- }
- },
- "node_modules/webpack/node_modules/load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dependencies": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "node_modules/webpack/node_modules/npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "dependencies": {
- "path-key": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
- "dependencies": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dependencies": {
- "p-try": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dependencies": {
- "p-limit": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dependencies": {
- "pify": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dependencies": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dependencies": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
- },
- "node_modules/webpack/node_modules/shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "dependencies": {
- "shebang-regex": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dependencies": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/webpack/node_modules/supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dependencies": {
- "has-flag": "^2.0.0"
- },
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
+ "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4"
}
},
- "node_modules/webpack/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/webpack/node_modules/wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/wrap-ansi/node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/webpack/node_modules/y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
- },
- "node_modules/webpack/node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- },
- "node_modules/webpack/node_modules/yargs": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
- "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
- "dependencies": {
- "camelcase": "^4.1.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^2.0.0",
- "read-pkg-up": "^2.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^7.0.0"
- }
- },
- "node_modules/webpack/node_modules/yargs-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
- "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
- "dependencies": {
- "camelcase": "^4.1.0"
- }
- },
- "node_modules/websocket": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
- "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==",
- "dependencies": {
- "bufferutil": "^4.0.1",
- "debug": "^2.2.0",
- "es5-ext": "^0.10.50",
- "typedarray-to-buffer": "^3.1.5",
- "utf-8-validate": "^5.0.2",
- "yaeti": "^0.0.6"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/websocket/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/websocket/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
- },
"node_modules/which-typed-array": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz",
@@ -28141,31 +28145,13 @@
}
},
"node_modules/wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
- "dependencies": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "node_modules/wide-align/node_modules/is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/wide-align/node_modules/string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "optional": true,
+ "peer": true,
"dependencies": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "engines": {
- "node": ">=4"
+ "string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"node_modules/window-size": {
@@ -28334,6 +28320,35 @@
"xhr-request": "^1.1.0"
}
},
+ "node_modules/xhr-request/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/xhr-request/node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/xhr-request/node_modules/simple-get": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
+ "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
+ "dependencies": {
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
"node_modules/xhr2-cookies": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz",
@@ -28482,9 +28497,9 @@
"dev": true
},
"@babel/highlight": {
- "version": "7.16.10",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
- "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
+ "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
@@ -28493,9 +28508,9 @@
}
},
"@babel/runtime": {
- "version": "7.17.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz",
- "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==",
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz",
+ "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
@@ -28616,6 +28631,12 @@
}
}
},
+ "@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "optional": true
+ },
"@cspotcode/source-map-consumer": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
@@ -28652,40 +28673,218 @@
}
}
},
+ "@ensdomains/buffer": {
+ "version": "0.0.13",
+ "resolved": "https://registry.npmjs.org/@ensdomains/buffer/-/buffer-0.0.13.tgz",
+ "integrity": "sha512-8aA+U/e4S54ebPwcge1HHvvpgXLKxPd6EOSegMlrTvBnKB8RwB3OpNyflaikD6KqzIwDaBaH8bvnTrMcfpV7oQ==",
+ "requires": {
+ "@nomiclabs/hardhat-truffle5": "^2.0.0"
+ }
+ },
"@ensdomains/ens": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.3.tgz",
- "integrity": "sha512-btC+fGze//ml8SMNCx5DgwM8+kG2t+qDCZrqlL/2+PV4CNxnRIpR3egZ49D9FqS52PFoYLmz6MaQfl7AO3pUMA==",
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz",
+ "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==",
"requires": {
"bluebird": "^3.5.2",
"eth-ens-namehash": "^2.0.8",
- "ethereumjs-testrpc": "^6.0.3",
- "ganache-cli": "^6.1.0",
"solc": "^0.4.20",
"testrpc": "0.0.1",
"web3-utils": "^1.0.0-beta.31"
- }
- },
- "@ensdomains/ensjs": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.0.1.tgz",
- "integrity": "sha512-gZLntzE1xqPNkPvaHdJlV5DXHms8JbHBwrXc2xNrL1AylERK01Lj/txCCZyVQqFd3TvUO1laDbfUv8VII0qrjg==",
- "requires": {
- "@babel/runtime": "^7.4.4",
- "@ensdomains/address-encoder": "^0.1.7",
- "@ensdomains/ens": "0.4.3",
- "@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"
- }
- },
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ },
+ "fs-extra": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
+ "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^2.1.0",
+ "klaw": "^1.0.0",
+ "path-is-absolute": "^1.0.0",
+ "rimraf": "^2.2.8"
+ }
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "solc": {
+ "version": "0.4.26",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz",
+ "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==",
+ "requires": {
+ "fs-extra": "^0.30.0",
+ "memorystream": "^0.3.1",
+ "require-from-string": "^1.1.0",
+ "semver": "^5.3.0",
+ "yargs": "^4.7.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+ },
+ "yargs": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz",
+ "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=",
+ "requires": {
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "lodash.assign": "^4.0.3",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.1",
+ "which-module": "^1.0.0",
+ "window-size": "^0.2.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^2.4.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
+ "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
+ "requires": {
+ "camelcase": "^3.0.0",
+ "lodash.assign": "^4.0.6"
+ }
+ }
+ }
+ },
+ "@ensdomains/ens-contracts": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ens-contracts/-/ens-contracts-0.0.7.tgz",
+ "integrity": "sha512-adlWSrtBh85CNM1hsrsNxWrSx6g37DOCkWP5vBT/HtXnpNtvL49Z1Ueum55lN8YifTWo2Kqb1mgPojjLY99f5w==",
+ "requires": {
+ "@ensdomains/buffer": "^0.0.13",
+ "@ensdomains/solsha1": "0.0.3",
+ "@openzeppelin/contracts": "^4.1.0",
+ "dns-packet": "^5.3.0",
+ "name-wrapper": "^1.0.0"
+ }
+ },
+ "@ensdomains/ensjs": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz",
+ "integrity": "sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==",
+ "requires": {
+ "@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/eth-ens-namehash": {
+ "version": "2.0.15",
+ "resolved": "https://registry.npmjs.org/@ensdomains/eth-ens-namehash/-/eth-ens-namehash-2.0.15.tgz",
+ "integrity": "sha512-JRDFP6+Hczb1E0/HhIg0PONgBYasfGfDheujmfxaZaAv/NAH4jE6Kf48WbqfRZdxt4IZI3jl3Ri7sZ1nP09lgw=="
+ },
"@ensdomains/resolver": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz",
"integrity": "sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA=="
},
+ "@ensdomains/solsha1": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@ensdomains/solsha1/-/solsha1-0.0.3.tgz",
+ "integrity": "sha512-uhuG5LzRt/UJC0Ux83cE2rCKwSleRePoYdQVcqPN1wyf3/ekMzT/KZUF9+v7/AG5w9jlMLCQkUM50vfjr0Yu9Q==",
+ "requires": {
+ "hash-test-vectors": "^1.3.2"
+ }
+ },
"@eslint/eslintrc": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
@@ -28859,20 +29058,6 @@
"@ensdomains/ens": "^0.4.4",
"@ensdomains/resolver": "^0.2.4",
"ethers": "^5.5.2"
- },
- "dependencies": {
- "@ensdomains/ens": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz",
- "integrity": "sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw==",
- "requires": {
- "bluebird": "^3.5.2",
- "eth-ens-namehash": "^2.0.8",
- "solc": "^0.4.20",
- "testrpc": "0.0.1",
- "web3-utils": "^1.0.0-beta.31"
- }
- }
}
},
"@ethereum-waffle/mock-contract": {
@@ -28897,93 +29082,38 @@
}
},
"@ethereumjs/block": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.1.tgz",
- "integrity": "sha512-o5d/zpGl4SdVfdTfrsq9ZgYMXddc0ucKMiFW5OphBCX+ep4xzYnSjboFcZXT2V/tcSBr84VrKWWp21CGVb3DGw==",
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/block/-/block-3.6.2.tgz",
+ "integrity": "sha512-mOqYWwMlAZpYUEOEqt7EfMFuVL2eyLqWWIzcf4odn6QgXY8jBI2NhVuJncrMCKeMZrsJAe7/auaRRB6YcdH+Qw==",
"requires": {
- "@ethereumjs/common": "^2.6.1",
- "@ethereumjs/tx": "^3.5.0",
+ "@ethereumjs/common": "^2.6.3",
+ "@ethereumjs/tx": "^3.5.1",
"ethereumjs-util": "^7.1.4",
- "merkle-patricia-tree": "^4.2.3"
- },
- "dependencies": {
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
- }
+ "merkle-patricia-tree": "^4.2.4"
}
},
"@ethereumjs/blockchain": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.1.tgz",
- "integrity": "sha512-JS2jeKxl3tlaa5oXrZ8mGoVBCz6YqsGG350XVNtHAtNZXKk7pU3rH4xzF2ru42fksMMqzFLzKh9l4EQzmNWDqA==",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.2.tgz",
+ "integrity": "sha512-Jz26iJmmsQtngerW6r5BDFaew/f2mObLrRZo3rskLOx1lmtMZ8+TX/vJexmivrnWgmAsTdNWhlKUYY4thPhPig==",
"requires": {
- "@ethereumjs/block": "^3.6.0",
- "@ethereumjs/common": "^2.6.0",
+ "@ethereumjs/block": "^3.6.2",
+ "@ethereumjs/common": "^2.6.3",
"@ethereumjs/ethash": "^1.1.0",
- "debug": "^2.2.0",
- "ethereumjs-util": "^7.1.3",
+ "debug": "^4.3.3",
+ "ethereumjs-util": "^7.1.4",
"level-mem": "^5.0.1",
"lru-cache": "^5.1.1",
"semaphore-async-await": "^1.5.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
}
},
"@ethereumjs/common": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.2.tgz",
- "integrity": "sha512-vDwye5v0SVeuDky4MtKsu+ogkH2oFUV8pBKzH/eNBzT8oI91pKa8WyzDuYuxOQsgNgv5R34LfFDh2aaw3H4HbQ==",
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.4.tgz",
+ "integrity": "sha512-RDJh/R/EAr+B7ZRg5LfJ0BIpf/1LydFgYdvZEuTraojCbVypO2sQ+QnpP5u2wJf9DASyooKqu8O4FJEWUV6NXw==",
"requires": {
"crc-32": "^1.2.0",
"ethereumjs-util": "^7.1.4"
- },
- "dependencies": {
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
- }
}
},
"@ethereumjs/ethash": {
@@ -29005,75 +29135,35 @@
"requires": {
"safe-buffer": "^5.1.1"
}
- },
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
}
}
},
"@ethereumjs/tx": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.0.tgz",
- "integrity": "sha512-/+ZNbnJhQhXC83Xuvy6I9k4jT5sXiV0tMR9C+AzSSpcCV64+NB8dTE1m3x98RYMqb8+TLYWA+HML4F5lfXTlJw==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.1.tgz",
+ "integrity": "sha512-xzDrTiu4sqZXUcaBxJ4n4W5FrppwxLxZB4ZDGVLtxSQR4lVuOnFR6RcUHdg1mpUhAPVrmnzLJpxaeXnPxIyhWA==",
"requires": {
- "@ethereumjs/common": "^2.6.1",
+ "@ethereumjs/common": "^2.6.3",
"ethereumjs-util": "^7.1.4"
- },
- "dependencies": {
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
- }
}
},
"@ethereumjs/vm": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.7.1.tgz",
- "integrity": "sha512-NiFm5FMaeDGZ9ojBL+Y9Y/xhW6S4Fgez+zPBM402T5kLsfeAR9mrRVckYhvkGVJ6FMwsY820CLjYP5OVwMjLTg==",
- "requires": {
- "@ethereumjs/block": "^3.6.1",
- "@ethereumjs/blockchain": "^5.5.1",
- "@ethereumjs/common": "^2.6.2",
- "@ethereumjs/tx": "^3.5.0",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/vm/-/vm-5.9.0.tgz",
+ "integrity": "sha512-0IRsj4IuF8lFDWVVLc4mFOImaSX8VWF8CGm3mXHG/LLlQ/Tryy/kKXMw/bU9D+Zw03CdteW+wCGqNFS6+mPjpg==",
+ "requires": {
+ "@ethereumjs/block": "^3.6.2",
+ "@ethereumjs/blockchain": "^5.5.2",
+ "@ethereumjs/common": "^2.6.4",
+ "@ethereumjs/tx": "^3.5.1",
"async-eventemitter": "^0.2.4",
"core-js-pure": "^3.0.1",
"debug": "^4.3.3",
"ethereumjs-util": "^7.1.4",
"functional-red-black-tree": "^1.0.1",
"mcl-wasm": "^0.7.1",
- "merkle-patricia-tree": "^4.2.3",
+ "merkle-patricia-tree": "^4.2.4",
"rustbn.js": "~0.2.0"
- },
- "dependencies": {
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
- }
}
},
"@ethersproject/abi": {
@@ -29197,6 +29287,19 @@
"@ethersproject/transactions": "^5.6.0"
}
},
+ "@ethersproject/hardware-wallets": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hardware-wallets/-/hardware-wallets-5.6.0.tgz",
+ "integrity": "sha512-jq/9osE7mfH6Ur4/N2/EdrgRuXacXlCzp5Irvyy8sWM3xMuzg2Git8czEFdFFTfLO6IBVxfEi1ANb+76tsa8BA==",
+ "peer": true,
+ "requires": {
+ "@ledgerhq/hw-app-eth": "5.27.2",
+ "@ledgerhq/hw-transport": "5.26.0",
+ "@ledgerhq/hw-transport-node-hid": "5.26.0",
+ "@ledgerhq/hw-transport-u2f": "5.26.0",
+ "ethers": "^5.6.0"
+ }
+ },
"@ethersproject/hash": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz",
@@ -29466,6 +29569,87 @@
"@ethersproject/strings": "^5.6.0"
}
},
+ "@gnosis.pm/mock-contract": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/mock-contract/-/mock-contract-4.0.0.tgz",
+ "integrity": "sha512-SkRq2KwPx6vo0LAjSc8JhgQstrQFXRyn2yqquIfub7r2WHi5nUbF8beeSSXsd36hvBcQxQfmOIYNYRpj9JOhrQ=="
+ },
+ "@gnosis.pm/safe-contracts": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-contracts/-/safe-contracts-1.3.0.tgz",
+ "integrity": "sha512-1p+1HwGvxGUVzVkFjNzglwHrLNA67U/axP0Ct85FzzH8yhGJb4t9jDjPYocVMzLorDoWAfKicGy1akPY9jXRVw==",
+ "requires": {}
+ },
+ "@gnosis.pm/safe-core-sdk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk/-/safe-core-sdk-2.1.0.tgz",
+ "integrity": "sha512-x2qrJsVxHsCVldh3rr/IljXetBNo5iHAfsxOj+C3QIkuq66lIs0p0njobl6e2x+A/xYCy+UIa8j8T39YUOJSJA==",
+ "requires": {
+ "@ethersproject/solidity": "^5.6.0",
+ "@gnosis.pm/safe-core-sdk-types": "^1.1.0",
+ "@gnosis.pm/safe-deployments": "^1.12.0",
+ "ethereumjs-util": "^7.1.4",
+ "semver": "^7.3.5",
+ "web3-utils": "^1.7.1"
+ }
+ },
+ "@gnosis.pm/safe-core-sdk-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk-types/-/safe-core-sdk-types-1.1.0.tgz",
+ "integrity": "sha512-VvEqWCliA6KXwt9N4YTzN5JcqnhLxLjUTU7trpQqQ7wU9OQcF+Kdrer86wDOF5lYZVE24zudw1s4gW3dxUkm6A==",
+ "requires": {
+ "@ethersproject/bignumber": "^5.6.0",
+ "@ethersproject/contracts": "^5.6.0",
+ "@gnosis.pm/safe-deployments": "^1.12.0",
+ "web3-core": "^1.7.1"
+ }
+ },
+ "@gnosis.pm/safe-core-sdk-utils": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk-utils/-/safe-core-sdk-utils-1.1.0.tgz",
+ "integrity": "sha512-ZH1Ps3qsreczKHHfBb34dj55LDTiU7WAeKD7jgKnhiloGWRniLv+cbBfwFQNAezoyANvgyI5ky64wgwm1bm1YA==",
+ "requires": {
+ "@gnosis.pm/safe-core-sdk-types": "^1.1.0",
+ "web3-utils": "^1.7.1"
+ }
+ },
+ "@gnosis.pm/safe-deployments": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-deployments/-/safe-deployments-1.12.0.tgz",
+ "integrity": "sha512-fNwQqTdBushxlkqp8WpgXVP9HTePa/VFWM9VYPzbSsdqYqSUnXYDDOMyHH3H6eNltwRV8RVp/cxqUZLrvQ3YPg=="
+ },
+ "@gnosis.pm/safe-ethers-lib": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-ethers-lib/-/safe-ethers-lib-1.1.0.tgz",
+ "integrity": "sha512-MG01hGu/3q/sl9fXE3sU7CMVpVMJ4k9/ro1JVZaE29jmsar1cHFUOJNws7Do3orxTLQZ2egkARcmyv+l673FoA==",
+ "requires": {
+ "@gnosis.pm/safe-core-sdk-types": "^1.1.0",
+ "@gnosis.pm/safe-core-sdk-utils": "^1.1.0"
+ }
+ },
+ "@gnosis.pm/zodiac": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/zodiac/-/zodiac-1.0.7.tgz",
+ "integrity": "sha512-ejoe7IdagjjEPZp9J/Cgk/ZaNjDwMJznvaVVxwFmkJWuP1oN+wjBStML1UpSwRGueRnoJiDofrjVKKntcpLuxQ==",
+ "requires": {
+ "@gnosis.pm/mock-contract": "^4.0.0",
+ "@gnosis.pm/safe-contracts": "1.3.0",
+ "@openzeppelin/contracts": "^4.3.2",
+ "@openzeppelin/contracts-upgradeable": "^4.2.0",
+ "argv": "^0.0.2",
+ "dotenv": "^8.0.0",
+ "ethers": "^5.4.6",
+ "solc": "^0.8.6",
+ "yargs": "^16.1.1"
+ },
+ "dependencies": {
+ "dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
+ }
+ }
+ },
"@humanwhocodes/config-array": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
@@ -29490,18 +29674,217 @@
"dev": true,
"requires": {}
},
+ "@ledgerhq/cryptoassets": {
+ "version": "5.53.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-5.53.0.tgz",
+ "integrity": "sha512-M3ibc3LRuHid5UtL7FI3IC6nMEppvly98QHFoSa7lJU0HDzQxY6zHec/SPM4uuJUC8sXoGVAiRJDkgny54damw==",
+ "peer": true,
+ "requires": {
+ "invariant": "2"
+ }
+ },
+ "@ledgerhq/devices": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz",
+ "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==",
+ "peer": true,
+ "requires": {
+ "@ledgerhq/errors": "^5.50.0",
+ "@ledgerhq/logs": "^5.50.0",
+ "rxjs": "6",
+ "semver": "^7.3.5"
+ }
+ },
+ "@ledgerhq/errors": {
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz",
+ "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==",
+ "peer": true
+ },
+ "@ledgerhq/hw-app-eth": {
+ "version": "5.27.2",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-5.27.2.tgz",
+ "integrity": "sha512-llNdrE894cCN8j6yxJEUniciyLVcLmu5N0UmIJLOObztG+5rOF4bX54h4SreTWK+E10Z0CzHSeyE5Lz/tVcqqQ==",
+ "peer": true,
+ "requires": {
+ "@ledgerhq/cryptoassets": "^5.27.2",
+ "@ledgerhq/errors": "^5.26.0",
+ "@ledgerhq/hw-transport": "^5.26.0",
+ "bignumber.js": "^9.0.1",
+ "rlp": "^2.2.6"
+ }
+ },
+ "@ledgerhq/hw-transport": {
+ "version": "5.26.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.26.0.tgz",
+ "integrity": "sha512-NFeJOJmyEfAX8uuIBTpocWHcz630sqPcXbu864Q+OCBm4EK5UOKV1h/pX7e0xgNIKY8zhJ/O4p4cIZp9tnXLHQ==",
+ "peer": true,
+ "requires": {
+ "@ledgerhq/devices": "^5.26.0",
+ "@ledgerhq/errors": "^5.26.0",
+ "events": "^3.2.0"
+ }
+ },
+ "@ledgerhq/hw-transport-node-hid": {
+ "version": "5.26.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.26.0.tgz",
+ "integrity": "sha512-qhaefZVZatJ6UuK8Wb6WSFNOLWc2mxcv/xgsfKi5HJCIr4bPF/ecIeN+7fRcEaycxj4XykY6Z4A7zDVulfFH4w==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "@ledgerhq/devices": "^5.26.0",
+ "@ledgerhq/errors": "^5.26.0",
+ "@ledgerhq/hw-transport": "^5.26.0",
+ "@ledgerhq/hw-transport-node-hid-noevents": "^5.26.0",
+ "@ledgerhq/logs": "^5.26.0",
+ "lodash": "^4.17.20",
+ "node-hid": "1.3.0",
+ "usb": "^1.6.3"
+ }
+ },
+ "@ledgerhq/hw-transport-node-hid-noevents": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz",
+ "integrity": "sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "@ledgerhq/devices": "^5.51.1",
+ "@ledgerhq/errors": "^5.50.0",
+ "@ledgerhq/hw-transport": "^5.51.1",
+ "@ledgerhq/logs": "^5.50.0",
+ "node-hid": "2.1.1"
+ },
+ "dependencies": {
+ "@ledgerhq/hw-transport": {
+ "version": "5.51.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz",
+ "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "@ledgerhq/devices": "^5.51.1",
+ "@ledgerhq/errors": "^5.50.0",
+ "events": "^3.3.0"
+ }
+ },
+ "node-addon-api": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
+ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
+ "optional": true,
+ "peer": true
+ },
+ "node-hid": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-2.1.1.tgz",
+ "integrity": "sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "node-addon-api": "^3.0.2",
+ "prebuild-install": "^6.0.0"
+ }
+ },
+ "prebuild-install": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz",
+ "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.21.0",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ }
+ }
+ }
+ },
+ "@ledgerhq/hw-transport-u2f": {
+ "version": "5.26.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.26.0.tgz",
+ "integrity": "sha512-QTxP1Rsh+WZ184LUOelYVLeaQl3++V3I2jFik+l9JZtakwEHjD0XqOT750xpYNL/vfHsy31Wlz+oicdxGzFk+w==",
+ "peer": true,
+ "requires": {
+ "@ledgerhq/errors": "^5.26.0",
+ "@ledgerhq/hw-transport": "^5.26.0",
+ "@ledgerhq/logs": "^5.26.0",
+ "u2f-api": "0.2.7"
+ }
+ },
+ "@ledgerhq/logs": {
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz",
+ "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==",
+ "peer": true
+ },
+ "@leichtgewicht/ip-codec": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz",
+ "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg=="
+ },
"@metamask/eth-sig-util": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.0.tgz",
- "integrity": "sha512-LczOjjxY4A7XYloxzyxJIHONELmUxVZncpOLoClpEcTiebiVdM46KRPYXGuULro9oNNR2xdVx3yoKiQjdfWmoA==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz",
+ "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==",
"requires": {
"ethereumjs-abi": "^0.6.8",
"ethereumjs-util": "^6.2.1",
"ethjs-util": "^0.1.6",
"tweetnacl": "^1.0.3",
"tweetnacl-util": "^0.15.1"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
}
},
+ "@noble/hashes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz",
+ "integrity": "sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg=="
+ },
+ "@noble/secp256k1": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.5.tgz",
+ "integrity": "sha512-sZ1W6gQzYnu45wPrWx8D3kwI2/U29VYTx9OjbDAd7jwRItJ0cSTMPRL/C8AWZFn9kWFLQGqEXVEE86w4Z8LpIQ=="
+ },
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -29534,6 +29917,92 @@
"integrity": "sha512-A2gZAGB6kUvLx+kzM92HKuUF33F1FSe90L0TmkXkT2Hh0OKRpvWZURUSU2nghD2yC4DzfEZ3DftfeHGvZ2JTUw==",
"requires": {}
},
+ "@nomiclabs/hardhat-etherscan": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.0.3.tgz",
+ "integrity": "sha512-OfNtUKc/ZwzivmZnnpwWREfaYncXteKHskn3yDnz+fPBZ6wfM4GR+d5RwjREzYFWE+o5iR9ruXhWw/8fejWM9g==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "^5.1.2",
+ "@ethersproject/address": "^5.0.2",
+ "cbor": "^5.0.2",
+ "debug": "^4.1.1",
+ "fs-extra": "^7.0.1",
+ "semver": "^6.3.0",
+ "undici": "^4.14.1"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ }
+ }
+ },
+ "@nomiclabs/hardhat-truffle5": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.5.tgz",
+ "integrity": "sha512-taTWfieMP3Rvj+y90DgdNpviUJ4zxgjpW0V8D++uPkg5R7HXVWBTf43a1PYw+cBhcqN29P9gB1zSS1HC+uz1Mw==",
+ "requires": {
+ "@nomiclabs/truffle-contract": "^4.2.23",
+ "@types/chai": "^4.2.0",
+ "chai": "^4.2.0",
+ "ethereumjs-util": "^7.1.3",
+ "fs-extra": "^7.0.1"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+ }
+ }
+ },
"@nomiclabs/hardhat-waffle": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.3.tgz",
@@ -29543,6 +30012,93 @@
"@types/web3": "1.0.19"
}
},
+ "@nomiclabs/hardhat-web3": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz",
+ "integrity": "sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q==",
+ "peer": true,
+ "requires": {
+ "@types/bignumber.js": "^5.0.0"
+ }
+ },
+ "@nomiclabs/truffle-contract": {
+ "version": "4.2.23",
+ "resolved": "https://registry.npmjs.org/@nomiclabs/truffle-contract/-/truffle-contract-4.2.23.tgz",
+ "integrity": "sha512-Khj/Ts9r0LqEpGYhISbc+8WTOd6qJ4aFnDR+Ew+neqcjGnhwrIvuihNwPFWU6hDepW3Xod6Y+rTo90N8sLRDjw==",
+ "requires": {
+ "@truffle/blockchain-utils": "^0.0.25",
+ "@truffle/contract-schema": "^3.2.5",
+ "@truffle/debug-utils": "^4.2.9",
+ "@truffle/error": "^0.0.11",
+ "@truffle/interface-adapter": "^0.4.16",
+ "bignumber.js": "^7.2.1",
+ "ethereum-ens": "^0.8.0",
+ "ethers": "^4.0.0-beta.1",
+ "source-map-support": "^0.5.19"
+ },
+ "dependencies": {
+ "aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
+ },
+ "bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethers": {
+ "version": "4.0.49",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz",
+ "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==",
+ "requires": {
+ "aes-js": "3.0.0",
+ "bn.js": "^4.11.9",
+ "elliptic": "6.5.4",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
+ },
+ "scrypt-js": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
+ "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw=="
+ },
+ "setimmediate": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
+ "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48="
+ },
+ "uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w="
+ }
+ }
+ },
"@openzeppelin/contract-loader": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.3.tgz",
@@ -29578,9 +30134,14 @@
}
},
"@openzeppelin/contracts": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.5.0.tgz",
- "integrity": "sha512-fdkzKPYMjrRiPK6K4y64e6GzULR7R7RwxSigHS8DDp7aWDeoReqsQI+cxHV1UuhAqX69L1lAaWDxenfP+xiqzA=="
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.6.0.tgz",
+ "integrity": "sha512-8vi4d50NNya/bQqCmaVzvHNmwHvS0OBKb7HNtuNwEE3scXWrP31fKQoGxNMT+KbzmrNZzatE3QK5p2gFONI/hg=="
+ },
+ "@openzeppelin/contracts-upgradeable": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz",
+ "integrity": "sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA=="
},
"@openzeppelin/test-environment": {
"version": "0.1.9",
@@ -29643,6 +30204,48 @@
}
}
},
+ "@orcaprotocol/contracts": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/@orcaprotocol/contracts/-/contracts-5.2.4.tgz",
+ "integrity": "sha512-0LUJ2mf1CfdkLGQWSJdpXhySb+/hWGOol7KlgeZTWbZIvHwKF2C9xJHOWTchpttZdAqC+znSpwlYOyYK3xg6pw==",
+ "requires": {
+ "@ensdomains/ens-contracts": "0.0.7",
+ "@ensdomains/ensjs": "^2.0.1",
+ "@ensdomains/eth-ens-namehash": "^2.0.15",
+ "@gnosis.pm/safe-contracts": "^1.3.0",
+ "@gnosis.pm/safe-core-sdk": "^0.2.0",
+ "@gnosis.pm/safe-deployments": "^1.1.0",
+ "@gnosis.pm/zodiac": "^1.0.3",
+ "@openzeppelin/contracts": "^4.3.1",
+ "dotenv": "^10.0.0",
+ "ethers": "^5.6.0",
+ "hardhat": "^2.5.0",
+ "hardhat-deploy": "^0.9.0",
+ "solc": "^0.8.7",
+ "web3": "^1.3.6"
+ },
+ "dependencies": {
+ "@gnosis.pm/safe-core-sdk": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk/-/safe-core-sdk-0.2.0.tgz",
+ "integrity": "sha512-HofU9KvbdMyoblvVyjTAEGNjdte4CamIfbZ5VgmAZhm2j8DwVJ6kqqRjGVar36eOv3sfozuJmnZwkPMM9BaV8Q==",
+ "requires": {
+ "@gnosis.pm/safe-core-sdk-types": "^0.1.1",
+ "ethereumjs-util": "^7.0.10"
+ }
+ },
+ "@gnosis.pm/safe-core-sdk-types": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@gnosis.pm/safe-core-sdk-types/-/safe-core-sdk-types-0.1.1.tgz",
+ "integrity": "sha512-PghXGDaI5Foq37nZGmI90U2OKMeGtxh5KqkDqou9aFHwGVa/nf9HRQPxG9/XUzcyfe9OlKttDlJnR3XnC3dSDw=="
+ },
+ "dotenv": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
+ }
+ }
+ },
"@rari-capital/solmate": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@rari-capital/solmate/-/solmate-6.2.0.tgz",
@@ -29729,6 +30332,30 @@
}
}
},
+ "@scure/base": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.0.0.tgz",
+ "integrity": "sha512-gIVaYhUsy+9s58m/ETjSJVKHhKTBMmcRb9cEV5/5dwvfDlfORjKrFsDeDHWRrm6RjcPvCLZFwGJjAjLj1gg4HA=="
+ },
+ "@scure/bip32": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.0.1.tgz",
+ "integrity": "sha512-AU88KKTpQ+YpTLoicZ/qhFhRRIo96/tlb+8YmDDHR9yiKVjSsFZiefJO4wjS2PMTkz5/oIcw84uAq/8pleQURA==",
+ "requires": {
+ "@noble/hashes": "~1.0.0",
+ "@noble/secp256k1": "~1.5.2",
+ "@scure/base": "~1.0.0"
+ }
+ },
+ "@scure/bip39": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.0.0.tgz",
+ "integrity": "sha512-HrtcikLbd58PWOkl02k9V6nXWQyoa7A0+Ek9VF7z17DDk9XZAFUcIdqfh0jJXLypmizc5/8P6OxoUeKliiWv4w==",
+ "requires": {
+ "@noble/hashes": "~1.0.0",
+ "@scure/base": "~1.0.0"
+ }
+ },
"@sentry/core": {
"version": "5.30.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz",
@@ -29867,100 +30494,118 @@
}
},
"@truffle/abi-utils": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.8.tgz",
- "integrity": "sha512-n/9ojMthWuP1hg9JveuxctxWoRoKTh+/17RTSwlTlXTyP/kfoNxr1JcLecybXUDOIsLJ4uskqxVUZQDvj1B0PQ==",
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.13.tgz",
+ "integrity": "sha512-WzjyNvx+naXmG/XKF+xLI+tJZLUlPGkd29rY4xBCiY9m/xWk0ZUL6gvVvnRr3leLJkBweJUSBiGUW770V8hHOg==",
"requires": {
"change-case": "3.0.2",
- "faker": "^5.3.1",
+ "faker": "5.5.3",
"fast-check": "^2.12.1"
}
},
"@truffle/blockchain-utils": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.0.tgz",
- "integrity": "sha512-9mzYXPQkjOc23rHQM1i630i3ackITWP1cxf3PvBObaAnGqwPCQuqtmZtNDPdvN+YpOLpBGpZIdYolI91xLdJNQ=="
+ "version": "0.0.25",
+ "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.25.tgz",
+ "integrity": "sha512-XA5m0BfAWtysy5ChHyiAf1fXbJxJXphKk+eZ9Rb9Twi6fn3Jg4gnHNwYXJacYFEydqT5vr2s4Ou812JHlautpw==",
+ "requires": {
+ "source-map-support": "^0.5.19"
+ }
},
"@truffle/codec": {
- "version": "0.11.25",
- "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.11.25.tgz",
- "integrity": "sha512-ZLKxSBznktm6sxHvyoyytfgh9XKxn1Sx7ByG6vLeJX5+2kUeAZ/RrtVm8Zd03vxr8WvmzWiU9jL7RFFH5NdpMw==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.7.1.tgz",
+ "integrity": "sha512-mNd6KnW6J0UB1zafGBXDlTEbCMvWpmPAJmzv7aF/nAIaN/F8UePSCiQ1OTQP39Rprj6GFiCCaWVnBAwum6UGSg==",
"requires": {
- "@truffle/abi-utils": "^0.2.8",
- "@truffle/compile-common": "^0.7.26",
"big.js": "^5.2.2",
- "bn.js": "^5.1.3",
- "cbor": "^5.1.0",
- "debug": "^4.3.1",
+ "bn.js": "^4.11.8",
+ "borc": "^2.1.2",
+ "debug": "^4.1.0",
"lodash.clonedeep": "^4.5.0",
"lodash.escaperegexp": "^4.1.2",
"lodash.partition": "^4.6.0",
"lodash.sum": "^4.0.2",
- "semver": "^7.3.4",
+ "semver": "^6.3.0",
+ "source-map-support": "^0.5.19",
"utf8": "^3.0.0",
- "web3-utils": "1.5.3"
+ "web3-utils": "1.2.9"
},
"dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz",
+ "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=",
"requires": {
"bn.js": "^4.11.6",
"elliptic": "^6.4.0",
"xhr-request-promise": "^0.1.2"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- }
}
},
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "underscore": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
+ },
"web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz",
+ "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==",
"requires": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
+ "bn.js": "4.11.8",
+ "eth-lib": "0.2.7",
"ethereum-bloom-filters": "^1.0.6",
"ethjs-unit": "0.1.6",
"number-to-bn": "1.7.0",
"randombytes": "^2.1.0",
+ "underscore": "1.9.1",
"utf8": "3.0.0"
},
"dependencies": {
"bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
}
}
}
}
},
"@truffle/compile-common": {
- "version": "0.7.26",
- "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.26.tgz",
- "integrity": "sha512-eHcplTfknX8ezBxxJgKBH6+AD3ufwo+fnlJd+JnMmPb6ndMcxyDpP/eepjLSNfzUdQSkd9n7ECvA0QIOdnNQuQ==",
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.31.tgz",
+ "integrity": "sha512-BGhWPd6NoI4VZfYBg+RgrCyLaxxq40vDOp6Ouofa1NQdN6LSPwlqWf0JWvPIKFNRp+TA9aWRHGmZntYyE94OZg==",
"requires": {
- "@truffle/error": "^0.0.15",
+ "@truffle/error": "^0.1.0",
"colors": "1.4.0"
+ },
+ "dependencies": {
+ "@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg=="
+ }
}
},
"@truffle/contract": {
- "version": "4.4.7",
- "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.4.7.tgz",
- "integrity": "sha512-327jjHAHmCfpmstUDVVFH4kLMpQh47/QyzKBiOkjaTX97wd0WrqXlCZYn1hMmcP08j4GnoIzvecZn3zW0xizSQ==",
+ "version": "4.5.7",
+ "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.5.7.tgz",
+ "integrity": "sha512-OAYebW3SwOpsfobGq4uC6ShI9Lzisg9CUGvKyjnSNO2eq5KbvDn9xVFB0DHS6xCLfQa+2ONWeVMnxLtIcmbUig==",
"requires": {
"@ensdomains/ensjs": "^2.0.1",
- "@truffle/blockchain-utils": "^0.1.0",
- "@truffle/contract-schema": "^3.4.4",
- "@truffle/debug-utils": "^6.0.7",
- "@truffle/error": "^0.0.15",
- "@truffle/interface-adapter": "^0.5.11",
+ "@truffle/blockchain-utils": "^0.1.3",
+ "@truffle/contract-schema": "^3.4.7",
+ "@truffle/debug-utils": "^6.0.19",
+ "@truffle/error": "^0.1.0",
+ "@truffle/interface-adapter": "^0.5.15",
"bignumber.js": "^7.2.1",
"debug": "^4.3.1",
"ethers": "^4.0.32",
@@ -29971,6 +30616,87 @@
"web3-utils": "1.5.3"
},
"dependencies": {
+ "@ethersproject/abi": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
+ "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "requires": {
+ "@ethersproject/address": "^5.0.4",
+ "@ethersproject/bignumber": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.4",
+ "@ethersproject/constants": "^5.0.4",
+ "@ethersproject/hash": "^5.0.4",
+ "@ethersproject/keccak256": "^5.0.3",
+ "@ethersproject/logger": "^5.0.5",
+ "@ethersproject/properties": "^5.0.3",
+ "@ethersproject/strings": "^5.0.4"
+ }
+ },
+ "@truffle/blockchain-utils": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.3.tgz",
+ "integrity": "sha512-K21Wf10u6VmS12/f9OrLN98f1RCqzrmuM2zlsly4b7BF/Xdh55Iq/jNSOnsNUJa+6Iaqqz6zeidquCYu9nTFng=="
+ },
+ "@truffle/codec": {
+ "version": "0.12.9",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.12.9.tgz",
+ "integrity": "sha512-lk89f7MXOVDAUZ7stjkG2zK5MvYsxxaTR5m2LcbulMcS5KetBNj5COKQaDoIIfY79a8Bjrlvl5pLhmP/Drb9mw==",
+ "requires": {
+ "@truffle/abi-utils": "^0.2.13",
+ "@truffle/compile-common": "^0.7.31",
+ "big.js": "^6.0.3",
+ "bn.js": "^5.1.3",
+ "cbor": "^5.1.0",
+ "debug": "^4.3.1",
+ "lodash": "^4.17.21",
+ "semver": "^7.3.4",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.5.3"
+ }
+ },
+ "@truffle/debug-utils": {
+ "version": "6.0.19",
+ "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.19.tgz",
+ "integrity": "sha512-EUrsCLF/+olOF8a0r0GOVpscNRbvLEhIHKTcHlpgQXoH46LcCbrxH2q5Lwwqmz7qDRTwp6f1UmSN37Rl5Ag5mQ==",
+ "requires": {
+ "@truffle/codec": "^0.12.9",
+ "@trufflesuite/chromafi": "^3.0.0",
+ "bn.js": "^5.1.3",
+ "chalk": "^2.4.2",
+ "debug": "^4.3.1",
+ "highlightjs-solidity": "^2.0.5"
+ }
+ },
+ "@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg=="
+ },
+ "@truffle/interface-adapter": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.15.tgz",
+ "integrity": "sha512-e6kSlSfn7XovKrrQ4lLUjog/cvwAelRNZLk7sfJ9pigZ+NRTlFmtrcWGUYgNIGuhAb48wYiRBEnkFIpqKGTtBw==",
+ "requires": {
+ "bn.js": "^5.1.3",
+ "ethers": "^4.0.32",
+ "web3": "1.5.3"
+ }
+ },
+ "@trufflesuite/chromafi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-3.0.0.tgz",
+ "integrity": "sha512-oqWcOqn8nT1bwlPPfidfzS55vqcIDdpfzo3HbU9EnUmcSTX+I8z0UyUFI3tZQjByVJulbzxHxUGS3ZJPwK/GPQ==",
+ "requires": {
+ "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"
+ }
+ },
"@types/bn.js": {
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
@@ -29980,19 +30706,24 @@
}
},
"@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
},
"aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
"integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
},
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "big.js": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.1.1.tgz",
+ "integrity": "sha512-1vObw81a8ylZO5ePrtMay0n018TcftpTA5HFKDaSuiUDBo8biRBtjIobw60OpwuvrGk+FsxKamqN4cnmj/eXdg=="
+ },
+ "bignumber.js": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
+ "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
},
"eth-lib": {
"version": "0.2.8",
@@ -30002,32 +30733,12 @@
"bn.js": "^4.11.6",
"elliptic": "^6.4.0",
"xhr-request-promise": "^0.1.2"
- }
- },
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
},
"dependencies": {
- "@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
- "requires": {
- "@types/node": "*"
- }
- },
"bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
@@ -30045,6 +30756,13 @@
"setimmediate": "1.0.4",
"uuid": "2.0.1",
"xmlhttprequest": "1.8.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"eventemitter3": {
@@ -30061,6 +30779,16 @@
"minimalistic-assert": "^1.0.0"
}
},
+ "highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
+ },
+ "highlightjs-solidity": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.5.tgz",
+ "integrity": "sha512-ReXxQSGQkODMUgHcWzVSnfDCDrL2HshOYgw3OlIYmfHeRzUPkfJTUIp95pK4CmbiNG2eMTOmNLpfCz9Zq7Cwmg=="
+ },
"js-sha3": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
@@ -30126,6 +30854,15 @@
}
}
},
+ "web3-core-helpers": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz",
+ "integrity": "sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw==",
+ "requires": {
+ "web3-eth-iban": "1.5.3",
+ "web3-utils": "1.5.3"
+ }
+ },
"web3-core-method": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz",
@@ -30139,6 +30876,14 @@
"web3-utils": "1.5.3"
}
},
+ "web3-core-promievent": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz",
+ "integrity": "sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg==",
+ "requires": {
+ "eventemitter3": "4.0.4"
+ }
+ },
"web3-core-requestmanager": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz",
@@ -30179,6 +30924,15 @@
"web3-utils": "1.5.3"
}
},
+ "web3-eth-abi": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz",
+ "integrity": "sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg==",
+ "requires": {
+ "@ethersproject/abi": "5.0.7",
+ "web3-utils": "1.5.3"
+ }
+ },
"web3-eth-accounts": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz",
@@ -30239,6 +30993,22 @@
"web3-utils": "1.5.3"
}
},
+ "web3-eth-iban": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz",
+ "integrity": "sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw==",
+ "requires": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.5.3"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
+ }
+ },
"web3-eth-personal": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz",
@@ -30313,47 +31083,70 @@
"number-to-bn": "1.7.0",
"randombytes": "^2.1.0",
"utf8": "3.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
}
}
},
"@truffle/contract-schema": {
- "version": "3.4.4",
- "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.4.tgz",
- "integrity": "sha512-xWgrm6WRM2jmT04w7dP7aVbS2qyP9XPmH/mybQtFXMjJ/8BZlp0yltC8QOs8sGl6q8Ws7acp19YtRkLdK6SsmQ==",
+ "version": "3.4.7",
+ "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.7.tgz",
+ "integrity": "sha512-vbOHMq/a8rVPh+cFMBDDGPqqiKrXXOc+f1kB4znfh3ewOX8rJxZhGJvdMm3WNMJHR5RstqDV7ZIZ7ePwtSXH8Q==",
"requires": {
"ajv": "^6.10.0",
"debug": "^4.3.1"
}
},
"@truffle/debug-utils": {
- "version": "6.0.7",
- "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.7.tgz",
- "integrity": "sha512-ou8rYfdn3h0MqLqkA4vCNCsnrcy5rlDDMGEHhdG3vEqqWU4XaKu9jDzky5HcirDx+5iD6egR9SObnTBqg5tGzQ==",
+ "version": "4.2.14",
+ "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-4.2.14.tgz",
+ "integrity": "sha512-g5UTX2DPTzrjRjBJkviGI2IrQRTTSvqjmNWCNZNXP+vgQKNxL9maLZhQ6oA3BuuByVW/kusgYeXt8+W1zynC8g==",
"requires": {
- "@truffle/codec": "^0.11.25",
- "@trufflesuite/chromafi": "^2.2.2",
- "bn.js": "^5.1.3",
+ "@truffle/codec": "^0.7.1",
+ "@trufflesuite/chromafi": "^2.2.1",
"chalk": "^2.4.2",
- "debug": "^4.3.1",
- "highlightjs-solidity": "^2.0.3"
+ "debug": "^4.1.0",
+ "highlight.js": "^9.15.8",
+ "highlightjs-solidity": "^1.0.18"
}
},
"@truffle/error": {
- "version": "0.0.15",
- "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.15.tgz",
- "integrity": "sha512-keiYGlVAH7GLggqMpB+XorT7NkOlr3qeBc56thI2WP0eas3qstlyrc0WvckXJ2LXrOfcR2uH6f0Nk6FIxaKXSA=="
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.11.tgz",
+ "integrity": "sha512-ju6TucjlJkfYMmdraYY/IBJaFb+Sa+huhYtOoyOJ+G29KcgytUVnDzKGwC7Kgk6IsxQMm62Mc1E0GZzFbGGipw=="
},
"@truffle/interface-adapter": {
- "version": "0.5.11",
- "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.11.tgz",
- "integrity": "sha512-HXLm+r1KdT8nHzJht1iK6EnHBKIjSYHdDfebBMCqmRCsMoUXvUJ0KsIxvDG758MafB12pjx5gsNn4XzzfksSBQ==",
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.24.tgz",
+ "integrity": "sha512-2Zho4dJbm/XGwNleY7FdxcjXiAR3SzdGklgrAW4N/YVmltaJv6bT56ACIbPNN6AdzkTSTO65OlsB/63sfSa/VA==",
"requires": {
"bn.js": "^5.1.3",
"ethers": "^4.0.32",
- "web3": "1.5.3"
+ "web3": "1.3.6"
},
"dependencies": {
+ "@ethersproject/abi": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
+ "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "requires": {
+ "@ethersproject/address": "^5.0.4",
+ "@ethersproject/bignumber": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.4",
+ "@ethersproject/constants": "^5.0.4",
+ "@ethersproject/hash": "^5.0.4",
+ "@ethersproject/keccak256": "^5.0.3",
+ "@ethersproject/logger": "^5.0.5",
+ "@ethersproject/properties": "^5.0.3",
+ "@ethersproject/strings": "^5.0.4"
+ }
+ },
"@types/bn.js": {
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
@@ -30363,20 +31156,15 @@
}
},
"@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
},
"aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
"integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
},
- "bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw=="
- },
"eth-lib": {
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
@@ -30394,28 +31182,6 @@
}
}
},
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "dependencies": {
- "@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
- "requires": {
- "@types/node": "*"
- }
- }
- }
- },
"ethers": {
"version": "4.0.49",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz",
@@ -30468,118 +31234,155 @@
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
"integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48="
},
+ "underscore": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz",
+ "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
+ },
"uuid": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
"integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w="
},
"web3": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.3.tgz",
- "integrity": "sha512-eyBg/1K44flfv0hPjXfKvNwcUfIVDI4NX48qHQe6wd7C8nPSdbWqo9vLy6ksZIt9NLa90HjI8HsGYgnMSUxn6w==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.3.6.tgz",
+ "integrity": "sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA==",
"requires": {
- "web3-bzz": "1.5.3",
- "web3-core": "1.5.3",
- "web3-eth": "1.5.3",
- "web3-eth-personal": "1.5.3",
- "web3-net": "1.5.3",
- "web3-shh": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-bzz": "1.3.6",
+ "web3-core": "1.3.6",
+ "web3-eth": "1.3.6",
+ "web3-eth-personal": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-shh": "1.3.6",
+ "web3-utils": "1.3.6"
}
},
"web3-bzz": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.3.tgz",
- "integrity": "sha512-SlIkAqG0eS6cBS9Q2eBOTI1XFzqh83RqGJWnyrNZMDxUwsTVHL+zNnaPShVPvrWQA1Ub5b0bx1Kc5+qJVxsTJg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.3.6.tgz",
+ "integrity": "sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw==",
"requires": {
"@types/node": "^12.12.6",
"got": "9.6.0",
- "swarm-js": "^0.1.40"
+ "swarm-js": "^0.1.40",
+ "underscore": "1.12.1"
}
},
"web3-core": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.3.tgz",
- "integrity": "sha512-ACTbu8COCu+0eUNmd9pG7Q9EVsNkAg2w3Y7SqhDr+zjTgbSHZV01jXKlapm9z+G3AN/BziV3zGwudClJ4u4xXQ==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.6.tgz",
+ "integrity": "sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q==",
"requires": {
"@types/bn.js": "^4.11.5",
"@types/node": "^12.12.6",
"bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-requestmanager": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-requestmanager": "1.3.6",
+ "web3-utils": "1.3.6"
+ }
+ },
+ "web3-core-helpers": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz",
+ "integrity": "sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA==",
+ "requires": {
+ "underscore": "1.12.1",
+ "web3-eth-iban": "1.3.6",
+ "web3-utils": "1.3.6"
}
},
"web3-core-method": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz",
- "integrity": "sha512-8wJrwQ2qD9ibWieF9oHXwrJsUGrv3XAtEkNeyvyNMpktNTIjxJ2jaFGQUuLiyUrMubD18XXgLk4JS6PJU4Loeg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.6.tgz",
+ "integrity": "sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg==",
"requires": {
- "@ethereumjs/common": "^2.4.0",
"@ethersproject/transactions": "^5.0.0-beta.135",
- "web3-core-helpers": "1.5.3",
- "web3-core-promievent": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-utils": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-utils": "1.3.6"
+ }
+ },
+ "web3-core-promievent": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz",
+ "integrity": "sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw==",
+ "requires": {
+ "eventemitter3": "4.0.4"
}
},
"web3-core-requestmanager": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz",
- "integrity": "sha512-9k/Bze2rs8ONix5IZR+hYdMNQv+ark2Ek2kVcrFgWO+LdLgZui/rn8FikPunjE+ub7x7pJaKCgVRbYFXjo3ZWg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz",
+ "integrity": "sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA==",
"requires": {
+ "underscore": "1.12.1",
"util": "^0.12.0",
- "web3-core-helpers": "1.5.3",
- "web3-providers-http": "1.5.3",
- "web3-providers-ipc": "1.5.3",
- "web3-providers-ws": "1.5.3"
+ "web3-core-helpers": "1.3.6",
+ "web3-providers-http": "1.3.6",
+ "web3-providers-ipc": "1.3.6",
+ "web3-providers-ws": "1.3.6"
}
},
"web3-core-subscriptions": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.3.tgz",
- "integrity": "sha512-L2m9vG1iRN6thvmv/HQwO2YLhOQlmZU8dpLG6GSo9FBN14Uch868Swk0dYVr3rFSYjZ/GETevSXU+O+vhCummA==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz",
+ "integrity": "sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g==",
"requires": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6"
}
},
"web3-eth": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.3.tgz",
- "integrity": "sha512-saFurA1L23Bd7MEf7cBli6/jRdMhD4X/NaMiO2mdMMCXlPujoudlIJf+VWpRWJpsbDFdu7XJ2WHkmBYT5R3p1Q==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.3.6.tgz",
+ "integrity": "sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA==",
+ "requires": {
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-eth-accounts": "1.3.6",
+ "web3-eth-contract": "1.3.6",
+ "web3-eth-ens": "1.3.6",
+ "web3-eth-iban": "1.3.6",
+ "web3-eth-personal": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-utils": "1.3.6"
+ }
+ },
+ "web3-eth-abi": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz",
+ "integrity": "sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ==",
"requires": {
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-eth-abi": "1.5.3",
- "web3-eth-accounts": "1.5.3",
- "web3-eth-contract": "1.5.3",
- "web3-eth-ens": "1.5.3",
- "web3-eth-iban": "1.5.3",
- "web3-eth-personal": "1.5.3",
- "web3-net": "1.5.3",
- "web3-utils": "1.5.3"
+ "@ethersproject/abi": "5.0.7",
+ "underscore": "1.12.1",
+ "web3-utils": "1.3.6"
}
},
"web3-eth-accounts": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz",
- "integrity": "sha512-pdGhXgeBaEJENMvRT6W9cmji3Zz/46ugFSvmnLLw79qi5EH7XJhKISNVb41eWCrs4am5GhI67GLx5d2s2a72iw==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz",
+ "integrity": "sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA==",
"requires": {
- "@ethereumjs/common": "^2.3.0",
- "@ethereumjs/tx": "^3.2.1",
"crypto-browserify": "3.12.0",
"eth-lib": "0.2.8",
- "ethereumjs-util": "^7.0.10",
+ "ethereumjs-common": "^1.3.2",
+ "ethereumjs-tx": "^2.1.1",
"scrypt-js": "^3.0.1",
+ "underscore": "1.12.1",
"uuid": "3.3.2",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-utils": "1.3.6"
},
"dependencies": {
"scrypt-js": {
@@ -30595,101 +31398,121 @@
}
},
"web3-eth-contract": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.3.tgz",
- "integrity": "sha512-Gdlt1L6cdHe83k7SdV6xhqCytVtOZkjD0kY/15x441AuuJ4JLubCHuqu69k2Dr3tWifHYVys/vG8QE/W16syGg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz",
+ "integrity": "sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA==",
"requires": {
"@types/bn.js": "^4.11.5",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-promievent": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-eth-abi": "1.5.3",
- "web3-utils": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-utils": "1.3.6"
}
},
"web3-eth-ens": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.3.tgz",
- "integrity": "sha512-QmGFFtTGElg0E+3xfCIFhiUF+1imFi9eg/cdsRMUZU4F1+MZCC/ee+IAelYLfNTGsEslCqfAusliKOT9DdGGnw==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz",
+ "integrity": "sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA==",
"requires": {
"content-hash": "^2.5.2",
"eth-ens-namehash": "2.0.8",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-promievent": "1.5.3",
- "web3-eth-abi": "1.5.3",
- "web3-eth-contract": "1.5.3",
- "web3-utils": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-promievent": "1.3.6",
+ "web3-eth-abi": "1.3.6",
+ "web3-eth-contract": "1.3.6",
+ "web3-utils": "1.3.6"
+ }
+ },
+ "web3-eth-iban": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz",
+ "integrity": "sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ==",
+ "requires": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.3.6"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"web3-eth-personal": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz",
- "integrity": "sha512-JzibJafR7ak/Icas8uvos3BmUNrZw1vShuNR5Cxjo+vteOC8XMqz1Vr7RH65B4bmlfb3bm9xLxetUHO894+Sew==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz",
+ "integrity": "sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ==",
"requires": {
"@types/node": "^12.12.6",
- "web3-core": "1.5.3",
- "web3-core-helpers": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-net": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-helpers": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-net": "1.3.6",
+ "web3-utils": "1.3.6"
}
},
"web3-net": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.3.tgz",
- "integrity": "sha512-0W/xHIPvgVXPSdLu0iZYnpcrgNnhzHMC888uMlGP5+qMCt8VuflUZHy7tYXae9Mzsg1kxaJAS5lHVNyeNw4CoQ==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.3.6.tgz",
+ "integrity": "sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw==",
"requires": {
- "web3-core": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-utils": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-utils": "1.3.6"
}
},
"web3-providers-http": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.3.tgz",
- "integrity": "sha512-5DpUyWGHtDAr2RYmBu34Fu+4gJuBAuNx2POeiJIooUtJ+Mu6pIx4XkONWH6V+Ez87tZAVAsFOkJRTYuzMr3rPw==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.6.tgz",
+ "integrity": "sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q==",
"requires": {
- "web3-core-helpers": "1.5.3",
+ "web3-core-helpers": "1.3.6",
"xhr2-cookies": "1.1.0"
}
},
"web3-providers-ipc": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.3.tgz",
- "integrity": "sha512-JmeAptugVpmXI39LGxUSAymx0NOFdgpuI1hGQfIhbEAcd4sv7fhfd5D+ZU4oLHbRI8IFr4qfGU0uhR8BXhDzlg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz",
+ "integrity": "sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA==",
"requires": {
"oboe": "2.1.5",
- "web3-core-helpers": "1.5.3"
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6"
}
},
"web3-providers-ws": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.3.tgz",
- "integrity": "sha512-6DhTw4Q7nm5CFYEUHOJM0gAb3xFx+9gWpVveg3YxJ/ybR1BUvEWo3bLgIJJtX56cYX0WyY6DS35a7f0LOI1kVg==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz",
+ "integrity": "sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ==",
"requires": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.5.3",
+ "underscore": "1.12.1",
+ "web3-core-helpers": "1.3.6",
"websocket": "^1.0.32"
}
},
"web3-shh": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.3.tgz",
- "integrity": "sha512-COfEXfsqoV/BkcsNLRxQqnWc1Teb8/9GxdGag5GtPC5gQC/vsN+7hYVJUwNxY9LtJPKYTij2DHHnx6UkITng+Q==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.3.6.tgz",
+ "integrity": "sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw==",
"requires": {
- "web3-core": "1.5.3",
- "web3-core-method": "1.5.3",
- "web3-core-subscriptions": "1.5.3",
- "web3-net": "1.5.3"
+ "web3-core": "1.3.6",
+ "web3-core-method": "1.3.6",
+ "web3-core-subscriptions": "1.3.6",
+ "web3-net": "1.3.6"
}
},
"web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.6.tgz",
+ "integrity": "sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg==",
"requires": {
"bn.js": "^4.11.9",
"eth-lib": "0.2.8",
@@ -30697,6 +31520,7 @@
"ethjs-unit": "0.1.6",
"number-to-bn": "1.7.0",
"randombytes": "^2.1.0",
+ "underscore": "1.12.1",
"utf8": "3.0.0"
},
"dependencies": {
@@ -30710,16 +31534,50 @@
}
},
"@truffle/provider": {
- "version": "0.2.45",
- "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.2.45.tgz",
- "integrity": "sha512-PGxdqUeubLTjTDFVhVhcSNx3/RfH/bTIQYwjb6v/Gd+6BvNN87d0FQWdEHp3/PnywXEeRDWg4HZDpWBYRqwwEw==",
+ "version": "0.2.53",
+ "resolved": "https://registry.npmjs.org/@truffle/provider/-/provider-0.2.53.tgz",
+ "integrity": "sha512-hd/0hYL4FcSXKH8PRZCC/p3YFbHokAZFs01xq/G7g5S/XpDVAgdfq9LeNKA6H+S8t8vlOMeLBTE1Z/6agSHdaQ==",
"dev": true,
"requires": {
- "@truffle/error": "^0.0.15",
- "@truffle/interface-adapter": "^0.5.11",
+ "@truffle/error": "^0.1.0",
+ "@truffle/interface-adapter": "^0.5.15",
"web3": "1.5.3"
},
"dependencies": {
+ "@ethersproject/abi": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
+ "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/address": "^5.0.4",
+ "@ethersproject/bignumber": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.4",
+ "@ethersproject/constants": "^5.0.4",
+ "@ethersproject/hash": "^5.0.4",
+ "@ethersproject/keccak256": "^5.0.3",
+ "@ethersproject/logger": "^5.0.5",
+ "@ethersproject/properties": "^5.0.3",
+ "@ethersproject/strings": "^5.0.4"
+ }
+ },
+ "@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg==",
+ "dev": true
+ },
+ "@truffle/interface-adapter": {
+ "version": "0.5.15",
+ "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.15.tgz",
+ "integrity": "sha512-e6kSlSfn7XovKrrQ4lLUjog/cvwAelRNZLk7sfJ9pigZ+NRTlFmtrcWGUYgNIGuhAb48wYiRBEnkFIpqKGTtBw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.3",
+ "ethers": "^4.0.32",
+ "web3": "1.5.3"
+ }
+ },
"@types/bn.js": {
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
@@ -30730,15 +31588,15 @@
}
},
"@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA==",
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA==",
"dev": true
},
- "bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==",
+ "aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=",
"dev": true
},
"eth-lib": {
@@ -30760,27 +31618,28 @@
}
}
},
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
+ "ethers": {
+ "version": "4.0.49",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz",
+ "integrity": "sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg==",
"dev": true,
"requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
+ "aes-js": "3.0.0",
+ "bn.js": "^4.11.9",
+ "elliptic": "6.5.4",
+ "hash.js": "1.1.3",
+ "js-sha3": "0.5.7",
+ "scrypt-js": "2.0.4",
+ "setimmediate": "1.0.4",
+ "uuid": "2.0.1",
+ "xmlhttprequest": "1.8.0"
},
"dependencies": {
- "@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
}
}
},
@@ -30790,10 +31649,38 @@
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
"dev": true
},
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=",
+ "dev": true
+ },
+ "scrypt-js": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
+ "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==",
+ "dev": true
+ },
+ "setimmediate": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
+ "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=",
+ "dev": true
+ },
"uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=",
"dev": true
},
"web3": {
@@ -30837,6 +31724,16 @@
"web3-utils": "1.5.3"
}
},
+ "web3-core-helpers": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz",
+ "integrity": "sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw==",
+ "dev": true,
+ "requires": {
+ "web3-eth-iban": "1.5.3",
+ "web3-utils": "1.5.3"
+ }
+ },
"web3-core-method": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.3.tgz",
@@ -30851,6 +31748,15 @@
"web3-utils": "1.5.3"
}
},
+ "web3-core-promievent": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz",
+ "integrity": "sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "4.0.4"
+ }
+ },
"web3-core-requestmanager": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.3.tgz",
@@ -30894,6 +31800,16 @@
"web3-utils": "1.5.3"
}
},
+ "web3-eth-abi": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz",
+ "integrity": "sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abi": "5.0.7",
+ "web3-utils": "1.5.3"
+ }
+ },
"web3-eth-accounts": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.3.tgz",
@@ -30911,6 +31827,20 @@
"web3-core-helpers": "1.5.3",
"web3-core-method": "1.5.3",
"web3-utils": "1.5.3"
+ },
+ "dependencies": {
+ "scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
+ "dev": true
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "dev": true
+ }
}
},
"web3-eth-contract": {
@@ -30945,6 +31875,24 @@
"web3-utils": "1.5.3"
}
},
+ "web3-eth-iban": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz",
+ "integrity": "sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "web3-utils": "1.5.3"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "dev": true
+ }
+ }
+ },
"web3-eth-personal": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.3.tgz",
@@ -31057,6 +32005,13 @@
"strip-ansi": "^4.0.0",
"strip-indent": "^2.0.0",
"super-split": "^1.1.0"
+ },
+ "dependencies": {
+ "highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
+ }
}
},
"@tsconfig/node10": {
@@ -31107,6 +32062,15 @@
"resolved": "https://registry.npmjs.org/@types/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz",
"integrity": "sha512-q5veSX6zjUy/DlDhR4Y4cU0k2Ar+DT2LUraP00T19WLmTO6Se1djepCCaqU6nQrwcJ5Hyo/CWqxTzrrFg8eqbQ=="
},
+ "@types/bignumber.js": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz",
+ "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==",
+ "peer": true,
+ "requires": {
+ "bignumber.js": "*"
+ }
+ },
"@types/bn.js": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
@@ -31147,9 +32111,9 @@
}
},
"@types/json-schema": {
- "version": "7.0.9",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
- "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
"dev": true
},
"@types/json5": {
@@ -31193,15 +32157,15 @@
}
},
"@types/mocha": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz",
- "integrity": "sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==",
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
+ "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
"dev": true
},
"@types/node": {
- "version": "17.0.25",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz",
- "integrity": "sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w=="
+ "version": "17.0.30",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.30.tgz",
+ "integrity": "sha512-oNBIZjIqyHYP8VCNAV9uEytXVeXG2oR0w9lgAXro20eugRQfY002qr3CUl6BAe+Yf/z3CRjPdz27Pu6WWtuSRw=="
},
"@types/node-fetch": {
"version": "2.6.1",
@@ -31221,9 +32185,9 @@
}
},
"@types/prettier": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz",
- "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA=="
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.0.tgz",
+ "integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw=="
},
"@types/qs": {
"version": "6.9.7",
@@ -31264,9 +32228,9 @@
}
},
"@types/sinonjs__fake-timers": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
- "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g=="
+ "version": "8.1.2",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz",
+ "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA=="
},
"@types/underscore": {
"version": "1.11.4",
@@ -31447,21 +32411,6 @@
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
},
- "acorn-dynamic-import": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
- "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
- "requires": {
- "acorn": "^4.0.3"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
- }
- }
- },
"acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -31519,32 +32468,6 @@
"uri-js": "^4.2.2"
}
},
- "ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "requires": {}
- },
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "requires": {
- "kind-of": "^3.0.2",
- "longest": "^1.0.1",
- "repeat-string": "^1.5.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
@@ -31585,9 +32508,9 @@
}
},
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="
},
"ansi-styles": {
"version": "3.2.1",
@@ -31617,6 +32540,59 @@
"picomatch": "^2.0.4"
}
},
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "optional": true,
+ "peer": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "optional": true,
+ "peer": true
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
"arg": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
@@ -31631,23 +32607,28 @@
"sprintf-js": "~1.0.2"
}
},
+ "argv": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz",
+ "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas="
+ },
"arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "optional": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
},
"arr-flatten": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "optional": true
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
},
"arr-union": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "optional": true
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
},
"array-back": {
"version": "2.0.0",
@@ -31687,20 +32668,20 @@
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
},
"array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "optional": true
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
},
"array.prototype.flat": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
- "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
+ "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
}
},
"asap": {
@@ -31734,30 +32715,6 @@
}
}
},
- "assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
- "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
- "requires": {
- "object-assign": "^4.1.1",
- "util": "0.10.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
- },
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "requires": {
- "inherits": "2.0.1"
- }
- }
- }
- },
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
@@ -31771,8 +32728,7 @@
"assign-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "optional": true
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
},
"ast-parents": {
"version": "0.0.1",
@@ -31787,9 +32743,9 @@
"dev": true
},
"async": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"requires": {
"lodash": "^4.17.14"
}
@@ -31797,8 +32753,7 @@
"async-each": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
- "optional": true
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
},
"async-eventemitter": {
"version": "0.2.4",
@@ -31826,8 +32781,7 @@
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "optional": true
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"available-typed-arrays": {
"version": "1.0.5",
@@ -31844,6 +32798,14 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
},
+ "axios": {
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
+ "requires": {
+ "follow-redirects": "^1.14.0"
+ }
+ },
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -31853,7 +32815,6 @@
"version": "0.11.2",
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
- "optional": true,
"requires": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -31868,39 +32829,14 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "optional": true,
"requires": {
"is-descriptor": "^1.0.0"
}
},
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
}
}
},
@@ -31948,9 +32884,9 @@
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
},
"bignumber.js": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz",
- "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ=="
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
+ "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw=="
},
"binary-extensions": {
"version": "2.2.0",
@@ -31961,22 +32897,27 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
}
},
- "bip66": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz",
- "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=",
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "optional": true,
+ "peer": true,
"requires": {
- "safe-buffer": "^5.0.1"
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
}
},
"blakejs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz",
- "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg=="
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz",
+ "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ=="
},
"bluebird": {
"version": "3.7.2",
@@ -31989,20 +32930,22 @@
"integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
},
"body-parser": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
- "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"requires": {
- "bytes": "3.1.1",
+ "bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.8.1",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.9.6",
- "raw-body": "2.4.2",
- "type-is": "~1.6.18"
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
},
"dependencies": {
"debug": {
@@ -32017,11 +32960,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "qs": {
- "version": "6.9.6",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
}
}
},
@@ -32030,6 +32968,20 @@
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
+ "borc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz",
+ "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==",
+ "requires": {
+ "bignumber.js": "^9.0.0",
+ "buffer": "^5.5.0",
+ "commander": "^2.15.0",
+ "ieee754": "^1.1.13",
+ "iso-url": "~0.4.7",
+ "json-text-sequence": "~0.1.0",
+ "readable-stream": "^3.6.0"
+ }
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -32116,14 +33068,6 @@
"safe-buffer": "^5.2.0"
}
},
- "browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "requires": {
- "pako": "~1.0.5"
- }
- },
"bs58": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
@@ -32179,21 +33123,15 @@
"node-gyp-build": "^4.3.0"
}
},
- "builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
- },
"bytes": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
- "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg=="
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"cache-base": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
- "optional": true,
"requires": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -32204,6 +33142,13 @@
"to-object-path": "^0.3.0",
"union-value": "^1.0.0",
"unset-value": "^1.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
}
},
"cacheable-request": {
@@ -32302,22 +33247,6 @@
"requires": {
"bignumber.js": "^9.0.1",
"nofilter": "^1.0.4"
- },
- "dependencies": {
- "bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw=="
- }
- }
- },
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "requires": {
- "align-text": "^0.1.3",
- "lazy-cache": "^1.0.3"
}
},
"chai": {
@@ -32407,15 +33336,15 @@
}
},
"cheerio-select": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz",
- "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.6.0.tgz",
+ "integrity": "sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g==",
"requires": {
- "css-select": "^4.1.3",
- "css-what": "^5.0.1",
+ "css-select": "^4.3.0",
+ "css-what": "^6.0.1",
"domelementtype": "^2.2.0",
- "domhandler": "^4.2.0",
- "domutils": "^2.7.0"
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0"
}
},
"chokidar": {
@@ -32484,12 +33413,77 @@
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
- "optional": true,
"requires": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
"isobject": "^3.0.0",
"static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
}
},
"clean-stack": {
@@ -32507,11 +33501,11 @@
}
},
"cli-table3": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz",
- "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==",
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz",
+ "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==",
"requires": {
- "colors": "1.4.0",
+ "@colors/colors": "1.5.0",
"string-width": "^4.2.0"
}
},
@@ -32538,9 +33532,9 @@
"dev": true
},
"string-width": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.0.tgz",
- "integrity": "sha512-7x54QnN21P+XL/v8SuNKvfgsUre6PXpN7mc77N3HlZv+f1SBRGmjxtOud2Z6FZ8DmdkD/IdjCaf9XXbnqmTZGQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
"requires": {
"eastasianwidth": "^0.2.0",
@@ -32596,8 +33590,20 @@
"integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
"requires": {
"mimic-response": "^1.0.0"
+ },
+ "dependencies": {
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ }
}
},
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -32607,7 +33613,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
- "optional": true,
"requires": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
@@ -32661,16 +33666,14 @@
}
},
"commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "dev": true
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "optional": true
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"concat-map": {
"version": "0.0.1",
@@ -32723,10 +33726,12 @@
"integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
"dev": true
},
- "console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "optional": true,
+ "peer": true
},
"constant-case": {
"version": "2.0.0",
@@ -32737,11 +33742,6 @@
"upper-case": "^1.1.1"
}
},
- "constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
- },
"content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -32783,13 +33783,12 @@
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
- "optional": true
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
},
"core-js-pure": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.0.tgz",
- "integrity": "sha512-VaJUunCZLnxuDbo1rNOzwbet9E1K9joiXS5+DQMPtgxd24wfsZbJZMMfQLGYMlCUvSxLfsRUUhoOR2x28mFfeg=="
+ "version": "3.22.2",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.2.tgz",
+ "integrity": "sha512-Lb+/XT4WC4PaCWWtZpNPaXmjiNDUe5CJuUtbkMrIM1kb1T/jJoAIp+bkVP/r5lHzMr+ZAAF8XHp7+my6Ol0ysQ=="
},
"core-util-is": {
"version": "1.0.2",
@@ -32827,16 +33826,6 @@
"resolve-from": "^3.0.0"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
"resolve-from": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
@@ -32846,13 +33835,9 @@
}
},
"crc-32": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.1.tgz",
- "integrity": "sha512-Dn/xm/1vFFgs3nfrpEVScHoIslO9NZRITWGz/1E/St6u4xw99vfZzVkW0OSnzx2h9egej9xwMCEut6sqwokM/w==",
- "requires": {
- "exit-on-epipe": "~1.0.1",
- "printj": "~1.3.1"
- }
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
},
"create-ecdh": {
"version": "4.0.4",
@@ -32955,21 +33940,21 @@
"integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q=="
},
"css-select": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz",
- "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
"requires": {
"boolbase": "^1.0.0",
- "css-what": "^5.1.0",
- "domhandler": "^4.3.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
"domutils": "^2.8.0",
"nth-check": "^2.0.1"
}
},
"css-what": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz",
- "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw=="
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
},
"d": {
"version": "1.0.1",
@@ -32995,9 +33980,9 @@
"dev": true
},
"debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
@@ -33013,11 +33998,13 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
"decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
+ "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
+ "optional": true,
+ "peer": true,
"requires": {
- "mimic-response": "^1.0.0"
+ "mimic-response": "^2.0.0"
}
},
"deep-eql": {
@@ -33028,6 +34015,13 @@
"type-detect": "^4.0.0"
}
},
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "optional": true,
+ "peer": true
+ },
"deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -33063,20 +34057,28 @@
}
},
"define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
"requires": {
- "object-keys": "^1.0.12"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
}
},
"define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "optional": true,
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"requires": {
- "is-descriptor": "^0.1.0"
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
}
},
"delayed-stream": {
@@ -33084,10 +34086,22 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "optional": true,
+ "peer": true
+ },
+ "delimit-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz",
+ "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs="
+ },
"depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"des.js": {
"version": "1.0.1",
@@ -33099,15 +34113,22 @@
}
},
"destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"detect-indent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
"integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50="
},
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "optional": true,
+ "peer": true
+ },
"detect-port": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz",
@@ -33166,6 +34187,14 @@
"path-type": "^4.0.0"
}
},
+ "dns-packet": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz",
+ "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==",
+ "requires": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ }
+ },
"doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -33176,9 +34205,9 @@
}
},
"dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
"requires": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.0",
@@ -33190,20 +34219,15 @@
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
- "domain-browser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
- },
"domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
},
"domhandler": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz",
- "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
"requires": {
"domelementtype": "^2.2.0"
}
@@ -33231,16 +34255,6 @@
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
"integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q=="
},
- "drbg.js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz",
- "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=",
- "requires": {
- "browserify-aes": "^1.0.6",
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4"
- }
- },
"duplexer3": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
@@ -33288,14 +34302,15 @@
}
},
"emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.1.0.tgz",
+ "integrity": "sha512-xAEnNCT3w2Tg6MA7ly6QqYJvEoY1tm9iIjJ3yMKK9JPlWuRHAMoe5iETwQnx3M9TVbFMfsrBgWKR+IsmswwNjg==",
+ "dev": true
},
- "emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
+ "encode-utf8": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
},
"encodeurl": {
"version": "1.0.2",
@@ -33321,17 +34336,6 @@
"once": "^1.4.0"
}
},
- "enhanced-resolve": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
- "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.4.0",
- "object-assign": "^4.0.1",
- "tapable": "^0.2.7"
- }
- },
"enquirer": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
@@ -33350,6 +34354,11 @@
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="
},
+ "eol": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz",
+ "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg=="
+ },
"errno": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
@@ -33367,9 +34376,9 @@
}
},
"es-abstract": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz",
- "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==",
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz",
+ "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==",
"requires": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
@@ -33377,15 +34386,15 @@
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
- "has-symbols": "^1.0.2",
+ "has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
- "is-negative-zero": "^2.0.1",
+ "is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.1",
+ "is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
- "is-weakref": "^1.0.1",
- "object-inspect": "^1.11.0",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
"string.prototype.trimend": "^1.0.4",
@@ -33393,6 +34402,15 @@
"unbox-primitive": "^1.0.1"
}
},
+ "es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
"es-to-primitive": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
@@ -33404,13 +34422,13 @@
}
},
"es5-ext": {
- "version": "0.10.53",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
- "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "version": "0.10.61",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz",
+ "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==",
"requires": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
}
},
"es6-iterator": {
@@ -33423,42 +34441,6 @@
"es6-symbol": "^3.1.1"
}
},
- "es6-map": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
- "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
- "es6-set": "~0.1.5",
- "es6-symbol": "~3.1.1",
- "event-emitter": "~0.3.5"
- }
- },
- "es6-set": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14",
- "es6-iterator": "~2.0.1",
- "es6-symbol": "3.1.1",
- "event-emitter": "~0.3.5"
- },
- "dependencies": {
- "es6-symbol": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- }
- }
- },
"es6-symbol": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
@@ -33468,17 +34450,6 @@
"ext": "^1.1.2"
}
},
- "es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
- }
- },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -33560,17 +34531,6 @@
}
}
},
- "escope": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
- "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
- "requires": {
- "es6-map": "^0.1.3",
- "es6-weak-map": "^2.0.1",
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
- },
"eslint": {
"version": "7.32.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
@@ -33958,6 +34918,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
"requires": {
"estraverse": "^5.2.0"
},
@@ -33965,14 +34926,16 @@
"estraverse": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
}
}
},
"estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
},
"esutils": {
"version": "2.0.3",
@@ -34002,15 +34965,15 @@
}
},
"eth-gas-reporter": {
- "version": "0.2.24",
- "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.24.tgz",
- "integrity": "sha512-RbXLC2bnuPHzIMU/rnLXXlb6oiHEEKu7rq2UrAX/0mfo0Lzrr/kb9QTjWjfz8eNvc+uu6J8AuBwI++b+MLNI2w==",
+ "version": "0.2.25",
+ "resolved": "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz",
+ "integrity": "sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ==",
"requires": {
"@ethersproject/abi": "^5.0.0-beta.146",
"@solidity-parser/parser": "^0.14.0",
"cli-table3": "^0.5.0",
"colors": "1.4.0",
- "ethereumjs-util": "6.2.0",
+ "ethereum-cryptography": "^1.0.3",
"ethers": "^4.0.40",
"fs-readdir-recursive": "^1.1.0",
"lodash": "^4.17.14",
@@ -34023,14 +34986,6 @@
"sync-request": "^6.0.0"
},
"dependencies": {
- "@types/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
- "requires": {
- "@types/node": "*"
- }
- },
"aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
@@ -34042,9 +34997,9 @@
"integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw=="
},
"ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
},
"bn.js": {
"version": "4.12.0",
@@ -34134,18 +35089,15 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
- "ethereumjs-util": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz",
- "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==",
+ "ethereum-cryptography": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.0.3.tgz",
+ "integrity": "sha512-NQLTW0x0CosoVb/n79x/TRHtfvS3hgNUPTUSCu0vM+9k6IIhHFFrAOJReneexjZsoZxMjJHnJn4lrE8EbnSyqQ==",
"requires": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "ethjs-util": "0.1.6",
- "keccak": "^2.0.0",
- "rlp": "^2.2.3",
- "secp256k1": "^3.0.1"
+ "@noble/hashes": "1.0.0",
+ "@noble/secp256k1": "1.5.5",
+ "@scure/bip32": "1.0.1",
+ "@scure/bip39": "1.0.0"
}
},
"ethers": {
@@ -34180,6 +35132,12 @@
"is-buffer": "~2.0.3"
}
},
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "optional": true
+ },
"glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
@@ -34226,17 +35184,6 @@
"esprima": "^4.0.0"
}
},
- "keccak": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz",
- "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==",
- "requires": {
- "bindings": "^1.5.0",
- "inherits": "^2.0.4",
- "nan": "^2.14.0",
- "safe-buffer": "^5.2.0"
- }
- },
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
@@ -34262,6 +35209,14 @@
"brace-expansion": "^1.1.7"
}
},
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
"mocha": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz",
@@ -34330,26 +35285,16 @@
"picomatch": "^2.0.4"
}
},
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ },
"scrypt-js": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz",
"integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw=="
},
- "secp256k1": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz",
- "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==",
- "requires": {
- "bindings": "^1.5.0",
- "bip66": "^1.1.5",
- "bn.js": "^4.11.8",
- "create-hash": "^1.2.0",
- "drbg.js": "^1.0.1",
- "elliptic": "^6.5.2",
- "nan": "^2.14.0",
- "safe-buffer": "^5.1.2"
- }
- },
"setimmediate": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz",
@@ -34390,6 +35335,19 @@
"isexe": "^2.0.0"
}
},
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
"wrap-ansi": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
@@ -34548,6 +35506,26 @@
"setimmediate": "^1.0.5"
}
},
+ "ethereum-ens": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ethereum-ens/-/ethereum-ens-0.8.0.tgz",
+ "integrity": "sha512-a8cBTF4AWw1Q1Y37V1LSCS9pRY4Mh3f8vCg5cbXCCEJ3eno1hbI/+Ccv9SZLISYpqQhaglP3Bxb/34lS4Qf7Bg==",
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
+ }
+ }
+ },
"ethereum-waffle": {
"version": "3.4.4",
"resolved": "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz",
@@ -34569,33 +35547,47 @@
"ethereumjs-util": "^6.0.0"
},
"dependencies": {
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
}
}
},
- "ethereumjs-testrpc": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/ethereumjs-testrpc/-/ethereumjs-testrpc-6.0.3.tgz",
- "integrity": "sha512-lAxxsxDKK69Wuwqym2K49VpXtBvLEsXr1sryNG4AkvL5DomMdeCBbu3D87UEevKenLHBiT8GTjARwN6Yj039gA==",
- "requires": {
- "webpack": "^3.0.0"
- }
+ "ethereumjs-common": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz",
+ "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA=="
},
- "ethereumjs-util": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
- "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
"requires": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
},
"dependencies": {
"@types/bn.js": {
@@ -34610,9 +35602,35 @@
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
}
}
},
+ "ethereumjs-util": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
+ "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.2.4"
+ }
+ },
"ethereumjs-wallet": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz",
@@ -34627,6 +35645,35 @@
"scryptsy": "^1.2.1",
"utf8": "^3.0.0",
"uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
}
},
"ethers": {
@@ -34713,15 +35760,6 @@
"strip-hex-prefix": "1.0.0"
}
},
- "event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
- }
- },
"event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
@@ -34735,7 +35773,8 @@
"events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "peer": true
},
"evp_bytestokey": {
"version": "1.0.3",
@@ -34768,84 +35807,101 @@
"resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz",
"integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw=="
},
- "exit-on-epipe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
- "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
- },
"expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "optional": true,
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "requires": {
+ "fill-range": "^2.1.0"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "optional": true,
+ "fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
"requires": {
- "ms": "2.0.0"
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "optional": true
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
}
}
},
+ "expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "optional": true,
+ "peer": true
+ },
"express": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
- "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.0.tgz",
+ "integrity": "sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg==",
"requires": {
- "accepts": "~1.3.7",
+ "accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.1",
+ "body-parser": "1.20.0",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.1",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "~1.1.2",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
+ "http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
- "qs": "6.9.6",
+ "qs": "6.10.3",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.17.2",
- "serve-static": "1.14.2",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
"setprototypeof": "1.2.0",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"dependencies": {
"cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
},
"debug": {
"version": "2.6.9",
@@ -34859,11 +35915,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "qs": {
- "version": "6.9.6",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
}
}
},
@@ -34888,12 +35939,22 @@
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "optional": true,
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"requires": {
- "is-extendable": "^0.1.0"
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
}
},
"external-editor": {
@@ -34908,58 +35969,17 @@
}
},
"extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "optional": true,
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "is-extglob": "^1.0.0"
},
"dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "optional": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
+ "is-extglob": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
}
}
},
@@ -34974,11 +35994,11 @@
"integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g=="
},
"fast-check": {
- "version": "2.21.0",
- "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-2.21.0.tgz",
- "integrity": "sha512-hkTRytqMceXfnSwPnryIqKkxKJjfcvtVqJrWRb8tgmfyUsGajIgQqDFxCJ+As+l9VLUCcmx6XIYoXeQe2Ih0UA==",
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-2.25.0.tgz",
+ "integrity": "sha512-wRUT2KD2lAmT75WNIJIHECawoUUMHM0I5jrlLXGtGeqmPL8jl/EldUDjY1VCp6fDY8yflyfUeIOsOBrIbIiArg==",
"requires": {
- "pure-rand": "^5.0.0"
+ "pure-rand": "^5.0.1"
}
},
"fast-deep-equal": {
@@ -35046,7 +36066,13 @@
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "optional": true
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
},
"fill-range": {
"version": "7.0.1",
@@ -35057,16 +36083,16 @@
}
},
"finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"dependencies": {
@@ -35142,16 +36168,31 @@
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"dev": true
},
+ "fmix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz",
+ "integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=",
+ "requires": {
+ "imul": "^1.0.0"
+ }
+ },
"follow-redirects": {
- "version": "1.14.8",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
- "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA=="
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
},
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "optional": true
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "requires": {
+ "for-in": "^1.0.1"
+ }
},
"foreach": {
"version": "2.0.5",
@@ -35187,7 +36228,6 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
- "optional": true,
"requires": {
"map-cache": "^0.2.2"
}
@@ -35197,6 +36237,13 @@
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "optional": true,
+ "peer": true
+ },
"fs-extra": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
@@ -35226,6 +36273,12 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -35236,2846 +36289,2172 @@
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
},
- "ganache-cli": {
- "version": "6.12.2",
- "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz",
- "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==",
+ "ganache-core": {
+ "version": "2.13.2",
+ "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz",
+ "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==",
"requires": {
+ "abstract-leveldown": "3.0.0",
+ "async": "2.6.2",
+ "bip39": "2.5.0",
+ "cachedown": "1.0.0",
+ "clone": "2.1.2",
+ "debug": "3.2.6",
+ "encoding-down": "5.0.4",
+ "eth-sig-util": "3.0.0",
+ "ethereumjs-abi": "0.6.8",
+ "ethereumjs-account": "3.0.0",
+ "ethereumjs-block": "2.2.2",
+ "ethereumjs-common": "1.5.0",
+ "ethereumjs-tx": "2.1.2",
"ethereumjs-util": "6.2.1",
+ "ethereumjs-vm": "4.2.0",
+ "ethereumjs-wallet": "0.6.5",
+ "heap": "0.2.6",
+ "keccak": "3.0.1",
+ "level-sublevel": "6.6.4",
+ "levelup": "3.1.1",
+ "lodash": "4.17.20",
+ "lru-cache": "5.1.1",
+ "merkle-patricia-tree": "3.0.0",
+ "patch-package": "6.2.2",
+ "seedrandom": "3.0.1",
"source-map-support": "0.5.12",
- "yargs": "13.2.4"
+ "tmp": "0.1.0",
+ "web3": "1.2.11",
+ "web3-provider-engine": "14.2.1",
+ "websocket": "1.0.32"
},
"dependencies": {
- "@types/bn.js": {
- "version": "4.11.6",
- "bundled": true,
+ "@ethersproject/abi": {
+ "version": "5.0.0-beta.153",
+ "optional": true,
"requires": {
- "@types/node": "*"
+ "@ethersproject/address": ">=5.0.0-beta.128",
+ "@ethersproject/bignumber": ">=5.0.0-beta.130",
+ "@ethersproject/bytes": ">=5.0.0-beta.129",
+ "@ethersproject/constants": ">=5.0.0-beta.128",
+ "@ethersproject/hash": ">=5.0.0-beta.128",
+ "@ethersproject/keccak256": ">=5.0.0-beta.127",
+ "@ethersproject/logger": ">=5.0.0-beta.129",
+ "@ethersproject/properties": ">=5.0.0-beta.131",
+ "@ethersproject/strings": ">=5.0.0-beta.130"
}
},
- "@types/node": {
- "version": "14.11.2",
- "bundled": true
- },
- "@types/pbkdf2": {
- "version": "3.1.0",
- "bundled": true,
+ "@ethersproject/abstract-provider": {
+ "version": "5.0.8",
+ "optional": true,
"requires": {
- "@types/node": "*"
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/networks": "^5.0.7",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/transactions": "^5.0.9",
+ "@ethersproject/web": "^5.0.12"
}
},
- "@types/secp256k1": {
- "version": "4.0.1",
- "bundled": true,
+ "@ethersproject/abstract-signer": {
+ "version": "5.0.10",
+ "optional": true,
"requires": {
- "@types/node": "*"
+ "@ethersproject/abstract-provider": "^5.0.8",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7"
}
},
- "ansi-regex": {
- "version": "4.1.0",
- "bundled": true
- },
- "ansi-styles": {
- "version": "3.2.1",
- "bundled": true,
+ "@ethersproject/address": {
+ "version": "5.0.9",
+ "optional": true,
"requires": {
- "color-convert": "^1.9.0"
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/rlp": "^5.0.7"
}
},
- "base-x": {
- "version": "3.0.8",
- "bundled": true,
+ "@ethersproject/base64": {
+ "version": "5.0.7",
+ "optional": true,
"requires": {
- "safe-buffer": "^5.0.1"
+ "@ethersproject/bytes": "^5.0.9"
}
},
- "blakejs": {
- "version": "1.1.0",
- "bundled": true
- },
- "bn.js": {
- "version": "4.11.9",
- "bundled": true
- },
- "brorand": {
- "version": "1.1.0",
- "bundled": true
- },
- "browserify-aes": {
- "version": "1.2.0",
- "bundled": true,
+ "@ethersproject/bignumber": {
+ "version": "5.0.13",
+ "optional": true,
"requires": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "bn.js": "^4.4.0"
}
},
- "bs58": {
- "version": "4.0.1",
- "bundled": true,
+ "@ethersproject/bytes": {
+ "version": "5.0.9",
+ "optional": true,
"requires": {
- "base-x": "^3.0.2"
+ "@ethersproject/logger": "^5.0.8"
}
},
- "bs58check": {
- "version": "2.1.2",
- "bundled": true,
+ "@ethersproject/constants": {
+ "version": "5.0.8",
+ "optional": true,
"requires": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
+ "@ethersproject/bignumber": "^5.0.13"
}
},
- "buffer-from": {
- "version": "1.1.1",
- "bundled": true
- },
- "buffer-xor": {
- "version": "1.0.3",
- "bundled": true
- },
- "camelcase": {
- "version": "5.3.1",
- "bundled": true
- },
- "cipher-base": {
- "version": "1.0.4",
- "bundled": true,
+ "@ethersproject/hash": {
+ "version": "5.0.10",
+ "optional": true,
"requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "@ethersproject/abstract-signer": "^5.0.10",
+ "@ethersproject/address": "^5.0.9",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/strings": "^5.0.8"
}
},
- "cliui": {
- "version": "5.0.0",
- "bundled": true,
+ "@ethersproject/keccak256": {
+ "version": "5.0.7",
+ "optional": true,
"requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
+ "@ethersproject/bytes": "^5.0.9",
+ "js-sha3": "0.5.7"
}
},
- "color-convert": {
- "version": "1.9.3",
- "bundled": true,
+ "@ethersproject/logger": {
+ "version": "5.0.8",
+ "optional": true
+ },
+ "@ethersproject/networks": {
+ "version": "5.0.7",
+ "optional": true,
"requires": {
- "color-name": "1.1.3"
+ "@ethersproject/logger": "^5.0.8"
}
},
- "color-name": {
- "version": "1.1.3",
- "bundled": true
- },
- "create-hash": {
- "version": "1.2.0",
- "bundled": true,
+ "@ethersproject/properties": {
+ "version": "5.0.7",
+ "optional": true,
"requires": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
+ "@ethersproject/logger": "^5.0.8"
}
},
- "create-hmac": {
- "version": "1.1.7",
- "bundled": true,
+ "@ethersproject/rlp": {
+ "version": "5.0.7",
+ "optional": true,
"requires": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8"
}
},
- "cross-spawn": {
- "version": "6.0.5",
- "bundled": true,
+ "@ethersproject/signing-key": {
+ "version": "5.0.8",
+ "optional": true,
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "elliptic": "6.5.3"
}
},
- "decamelize": {
- "version": "1.2.0",
- "bundled": true
- },
- "elliptic": {
- "version": "6.5.3",
- "bundled": true,
+ "@ethersproject/strings": {
+ "version": "5.0.8",
+ "optional": true,
"requires": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/constants": "^5.0.8",
+ "@ethersproject/logger": "^5.0.8"
}
},
- "emoji-regex": {
- "version": "7.0.3",
- "bundled": true
- },
- "end-of-stream": {
- "version": "1.4.4",
- "bundled": true,
+ "@ethersproject/transactions": {
+ "version": "5.0.9",
+ "optional": true,
"requires": {
- "once": "^1.4.0"
+ "@ethersproject/address": "^5.0.9",
+ "@ethersproject/bignumber": "^5.0.13",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/constants": "^5.0.8",
+ "@ethersproject/keccak256": "^5.0.7",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/rlp": "^5.0.7",
+ "@ethersproject/signing-key": "^5.0.8"
}
},
- "ethereum-cryptography": {
- "version": "0.1.3",
- "bundled": true,
+ "@ethersproject/web": {
+ "version": "5.0.12",
+ "optional": true,
"requires": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
+ "@ethersproject/base64": "^5.0.7",
+ "@ethersproject/bytes": "^5.0.9",
+ "@ethersproject/logger": "^5.0.8",
+ "@ethersproject/properties": "^5.0.7",
+ "@ethersproject/strings": "^5.0.8"
}
},
- "ethereumjs-util": {
- "version": "6.2.1",
- "bundled": true,
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "optional": true
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "optional": true,
"requires": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
+ "defer-to-connect": "^1.0.1"
}
},
- "ethjs-util": {
- "version": "0.1.6",
- "bundled": true,
+ "@types/bn.js": {
+ "version": "4.11.6",
"requires": {
- "is-hex-prefixed": "1.0.0",
- "strip-hex-prefix": "1.0.0"
+ "@types/node": "*"
}
},
- "evp_bytestokey": {
- "version": "1.0.3",
- "bundled": true,
+ "@types/node": {
+ "version": "14.14.20"
+ },
+ "@types/pbkdf2": {
+ "version": "3.1.0",
"requires": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
+ "@types/node": "*"
}
},
- "execa": {
- "version": "1.0.0",
- "bundled": true,
+ "@types/secp256k1": {
+ "version": "4.0.1",
"requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
+ "@types/node": "*"
}
},
- "find-up": {
+ "@yarnpkg/lockfile": {
+ "version": "1.1.0"
+ },
+ "abstract-leveldown": {
"version": "3.0.0",
- "bundled": true,
"requires": {
- "locate-path": "^3.0.0"
+ "xtend": "~4.0.0"
}
},
- "get-caller-file": {
- "version": "2.0.5",
- "bundled": true
- },
- "get-stream": {
- "version": "4.1.0",
- "bundled": true,
+ "accepts": {
+ "version": "1.3.7",
+ "optional": true,
"requires": {
- "pump": "^3.0.0"
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
}
},
- "hash-base": {
- "version": "3.1.0",
- "bundled": true,
- "requires": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- }
+ "aes-js": {
+ "version": "3.1.2",
+ "optional": true
},
- "hash.js": {
- "version": "1.1.7",
- "bundled": true,
+ "ajv": {
+ "version": "6.12.6",
"requires": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
}
},
- "hmac-drbg": {
- "version": "1.0.1",
- "bundled": true,
+ "ansi-styles": {
+ "version": "3.2.1",
"requires": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
+ "color-convert": "^1.9.0"
}
},
- "inherits": {
- "version": "2.0.4",
- "bundled": true
- },
- "invert-kv": {
- "version": "2.0.0",
- "bundled": true
+ "arr-diff": {
+ "version": "4.0.0"
},
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "bundled": true
+ "arr-flatten": {
+ "version": "1.1.0"
},
- "is-hex-prefixed": {
- "version": "1.0.0",
- "bundled": true
+ "arr-union": {
+ "version": "3.1.0"
},
- "is-stream": {
- "version": "1.1.0",
- "bundled": true
+ "array-flatten": {
+ "version": "1.1.1",
+ "optional": true
},
- "isexe": {
- "version": "2.0.0",
- "bundled": true
+ "array-unique": {
+ "version": "0.3.2"
},
- "keccak": {
- "version": "3.0.1",
- "bundled": true,
+ "asn1": {
+ "version": "0.2.4",
"requires": {
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
+ "safer-buffer": "~2.1.0"
}
},
- "lcid": {
- "version": "2.0.0",
- "bundled": true,
+ "asn1.js": {
+ "version": "5.4.1",
+ "optional": true,
"requires": {
- "invert-kv": "^2.0.0"
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
}
},
- "locate-path": {
- "version": "3.0.0",
- "bundled": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
+ "assert-plus": {
+ "version": "1.0.0"
},
- "map-age-cleaner": {
- "version": "0.1.3",
- "bundled": true,
- "requires": {
- "p-defer": "^1.0.0"
- }
+ "assign-symbols": {
+ "version": "1.0.0"
},
- "md5.js": {
- "version": "1.3.5",
- "bundled": true,
+ "async": {
+ "version": "2.6.2",
"requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "lodash": "^4.17.11"
}
},
- "mem": {
- "version": "4.3.0",
- "bundled": true,
+ "async-eventemitter": {
+ "version": "0.2.4",
"requires": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
+ "async": "^2.4.0"
}
},
- "mimic-fn": {
- "version": "2.1.0",
- "bundled": true
- },
- "minimalistic-assert": {
- "version": "1.0.1",
- "bundled": true
+ "async-limiter": {
+ "version": "1.0.1"
},
- "minimalistic-crypto-utils": {
- "version": "1.0.1",
- "bundled": true
+ "asynckit": {
+ "version": "0.4.0"
},
- "nice-try": {
- "version": "1.0.5",
- "bundled": true
+ "atob": {
+ "version": "2.1.2"
},
- "node-addon-api": {
- "version": "2.0.2",
- "bundled": true
+ "aws-sign2": {
+ "version": "0.7.0"
},
- "node-gyp-build": {
- "version": "4.2.3",
- "bundled": true
+ "aws4": {
+ "version": "1.11.0"
},
- "npm-run-path": {
- "version": "2.0.2",
- "bundled": true,
+ "babel-code-frame": {
+ "version": "6.26.0",
"requires": {
- "path-key": "^2.0.0"
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1"
+ },
+ "ansi-styles": {
+ "version": "2.2.1"
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2"
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0"
+ }
}
},
- "once": {
- "version": "1.4.0",
- "bundled": true,
+ "babel-core": {
+ "version": "6.26.3",
"requires": {
- "wrappy": "1"
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "json5": {
+ "version": "0.5.1"
+ },
+ "ms": {
+ "version": "2.0.0"
+ },
+ "slash": {
+ "version": "1.0.0"
+ }
}
},
- "os-locale": {
- "version": "3.1.0",
- "bundled": true,
+ "babel-generator": {
+ "version": "6.26.1",
"requires": {
- "execa": "^1.0.0",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "1.3.0"
+ }
}
},
- "p-defer": {
- "version": "1.0.0",
- "bundled": true
- },
- "p-finally": {
- "version": "1.0.0",
- "bundled": true
- },
- "p-is-promise": {
- "version": "2.1.0",
- "bundled": true
- },
- "p-limit": {
- "version": "2.3.0",
- "bundled": true,
+ "babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
"requires": {
- "p-try": "^2.0.0"
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "p-locate": {
- "version": "3.0.0",
- "bundled": true,
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
"requires": {
- "p-limit": "^2.0.0"
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "p-try": {
- "version": "2.2.0",
- "bundled": true
- },
- "path-exists": {
- "version": "3.0.0",
- "bundled": true
- },
- "path-key": {
- "version": "2.0.1",
- "bundled": true
- },
- "pbkdf2": {
- "version": "3.1.1",
- "bundled": true,
+ "babel-helper-define-map": {
+ "version": "6.26.0",
"requires": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
- "pump": {
- "version": "3.0.0",
- "bundled": true,
+ "babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "randombytes": {
- "version": "2.1.0",
- "bundled": true,
+ "babel-helper-function-name": {
+ "version": "6.24.1",
"requires": {
- "safe-buffer": "^5.1.0"
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "readable-stream": {
- "version": "3.6.0",
- "bundled": true,
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
"requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "require-directory": {
- "version": "2.1.1",
- "bundled": true
- },
- "require-main-filename": {
- "version": "2.0.0",
- "bundled": true
- },
- "ripemd160": {
- "version": "2.0.2",
- "bundled": true,
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
"requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "rlp": {
- "version": "2.2.6",
- "bundled": true,
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
"requires": {
- "bn.js": "^4.11.1"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "safe-buffer": {
- "version": "5.2.1",
- "bundled": true
- },
- "scrypt-js": {
- "version": "3.0.1",
- "bundled": true
- },
- "secp256k1": {
- "version": "4.0.2",
- "bundled": true,
+ "babel-helper-regex": {
+ "version": "6.26.0",
"requires": {
- "elliptic": "^6.5.2",
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
- "semver": {
- "version": "5.7.1",
- "bundled": true
+ "babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
},
- "set-blocking": {
- "version": "2.0.0",
- "bundled": true
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "requires": {
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
},
- "setimmediate": {
- "version": "1.0.5",
- "bundled": true
+ "babel-helpers": {
+ "version": "6.24.1",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
},
- "sha.js": {
- "version": "2.4.11",
- "bundled": true,
+ "babel-messages": {
+ "version": "6.23.0",
"requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "babel-runtime": "^6.22.0"
}
},
- "shebang-command": {
- "version": "1.2.0",
- "bundled": true,
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
"requires": {
- "shebang-regex": "^1.0.0"
+ "babel-runtime": "^6.22.0"
}
},
- "shebang-regex": {
- "version": "1.0.0",
- "bundled": true
+ "babel-plugin-syntax-async-functions": {
+ "version": "6.13.0"
},
- "signal-exit": {
- "version": "3.0.3",
- "bundled": true
+ "babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0"
},
- "source-map": {
- "version": "0.6.1",
- "bundled": true
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0"
},
- "source-map-support": {
- "version": "0.5.12",
- "bundled": true,
+ "babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
"requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
- "string_decoder": {
- "version": "1.3.0",
- "bundled": true,
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
"requires": {
- "safe-buffer": "~5.2.0"
+ "babel-runtime": "^6.22.0"
}
},
- "string-width": {
- "version": "3.1.0",
- "bundled": true,
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "babel-runtime": "^6.22.0"
}
},
- "strip-ansi": {
- "version": "5.2.0",
- "bundled": true,
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
"requires": {
- "ansi-regex": "^4.1.0"
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
- "strip-eof": {
- "version": "1.0.0",
- "bundled": true
- },
- "strip-hex-prefix": {
- "version": "1.0.0",
- "bundled": true,
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
"requires": {
- "is-hex-prefixed": "1.0.0"
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true
- },
- "which": {
- "version": "1.3.1",
- "bundled": true,
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
"requires": {
- "isexe": "^2.0.0"
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "which-module": {
- "version": "2.0.0",
- "bundled": true
- },
- "wrap-ansi": {
- "version": "5.1.0",
- "bundled": true,
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "babel-runtime": "^6.22.0"
}
},
- "wrappy": {
- "version": "1.0.2",
- "bundled": true
- },
- "y18n": {
- "version": "4.0.0",
- "bundled": true
- },
- "yargs": {
- "version": "13.2.4",
- "bundled": true,
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
"requires": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
- "os-locale": "^3.1.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.1.0"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "yargs-parser": {
- "version": "13.1.2",
- "bundled": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- }
- }
- },
- "ganache-core": {
- "version": "2.13.2",
- "resolved": "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz",
- "integrity": "sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw==",
- "requires": {
- "abstract-leveldown": "3.0.0",
- "async": "2.6.2",
- "bip39": "2.5.0",
- "cachedown": "1.0.0",
- "clone": "2.1.2",
- "debug": "3.2.6",
- "encoding-down": "5.0.4",
- "eth-sig-util": "3.0.0",
- "ethereumjs-abi": "0.6.8",
- "ethereumjs-account": "3.0.0",
- "ethereumjs-block": "2.2.2",
- "ethereumjs-common": "1.5.0",
- "ethereumjs-tx": "2.1.2",
- "ethereumjs-util": "6.2.1",
- "ethereumjs-vm": "4.2.0",
- "ethereumjs-wallet": "0.6.5",
- "heap": "0.2.6",
- "keccak": "3.0.1",
- "level-sublevel": "6.6.4",
- "levelup": "3.1.1",
- "lodash": "4.17.20",
- "lru-cache": "5.1.1",
- "merkle-patricia-tree": "3.0.0",
- "patch-package": "6.2.2",
- "seedrandom": "3.0.1",
- "source-map-support": "0.5.12",
- "tmp": "0.1.0",
- "web3": "1.2.11",
- "web3-provider-engine": "14.2.1",
- "websocket": "1.0.32"
- },
- "dependencies": {
- "@ethersproject/abi": {
- "version": "5.0.0-beta.153",
- "optional": true,
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
"requires": {
- "@ethersproject/address": ">=5.0.0-beta.128",
- "@ethersproject/bignumber": ">=5.0.0-beta.130",
- "@ethersproject/bytes": ">=5.0.0-beta.129",
- "@ethersproject/constants": ">=5.0.0-beta.128",
- "@ethersproject/hash": ">=5.0.0-beta.128",
- "@ethersproject/keccak256": ">=5.0.0-beta.127",
- "@ethersproject/logger": ">=5.0.0-beta.129",
- "@ethersproject/properties": ">=5.0.0-beta.131",
- "@ethersproject/strings": ">=5.0.0-beta.130"
+ "babel-runtime": "^6.22.0"
}
},
- "@ethersproject/abstract-provider": {
- "version": "5.0.8",
- "optional": true,
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/networks": "^5.0.7",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/transactions": "^5.0.9",
- "@ethersproject/web": "^5.0.12"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "@ethersproject/abstract-signer": {
- "version": "5.0.10",
- "optional": true,
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
"requires": {
- "@ethersproject/abstract-provider": "^5.0.8",
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7"
+ "babel-runtime": "^6.22.0"
}
},
- "@ethersproject/address": {
- "version": "5.0.9",
- "optional": true,
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/keccak256": "^5.0.7",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/rlp": "^5.0.7"
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "@ethersproject/base64": {
- "version": "5.0.7",
- "optional": true,
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
"requires": {
- "@ethersproject/bytes": "^5.0.9"
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
}
},
- "@ethersproject/bignumber": {
- "version": "5.0.13",
- "optional": true,
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "bn.js": "^4.4.0"
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "@ethersproject/bytes": {
- "version": "5.0.9",
- "optional": true,
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/logger": "^5.0.8"
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
- "@ethersproject/constants": {
- "version": "5.0.8",
- "optional": true,
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/bignumber": "^5.0.13"
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
}
},
- "@ethersproject/hash": {
- "version": "5.0.10",
- "optional": true,
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/abstract-signer": "^5.0.10",
- "@ethersproject/address": "^5.0.9",
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/keccak256": "^5.0.7",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/strings": "^5.0.8"
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
- "@ethersproject/keccak256": {
- "version": "5.0.7",
- "optional": true,
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/bytes": "^5.0.9",
- "js-sha3": "0.5.7"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "@ethersproject/logger": {
- "version": "5.0.8",
- "optional": true
- },
- "@ethersproject/networks": {
- "version": "5.0.7",
- "optional": true,
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
"requires": {
- "@ethersproject/logger": "^5.0.8"
+ "babel-runtime": "^6.22.0"
}
},
- "@ethersproject/properties": {
- "version": "5.0.7",
- "optional": true,
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/logger": "^5.0.8"
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "@ethersproject/rlp": {
- "version": "5.0.7",
- "optional": true,
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
"requires": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8"
+ "babel-runtime": "^6.22.0"
}
},
- "@ethersproject/signing-key": {
- "version": "5.0.8",
- "optional": true,
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
"requires": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "elliptic": "6.5.3"
+ "babel-runtime": "^6.22.0"
}
},
- "@ethersproject/strings": {
- "version": "5.0.8",
- "optional": true,
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/constants": "^5.0.8",
- "@ethersproject/logger": "^5.0.8"
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
}
},
- "@ethersproject/transactions": {
- "version": "5.0.9",
- "optional": true,
+ "babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
"requires": {
- "@ethersproject/address": "^5.0.9",
- "@ethersproject/bignumber": "^5.0.13",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/constants": "^5.0.8",
- "@ethersproject/keccak256": "^5.0.7",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/rlp": "^5.0.7",
- "@ethersproject/signing-key": "^5.0.8"
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
- "@ethersproject/web": {
- "version": "5.0.12",
- "optional": true,
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
"requires": {
- "@ethersproject/base64": "^5.0.7",
- "@ethersproject/bytes": "^5.0.9",
- "@ethersproject/logger": "^5.0.8",
- "@ethersproject/properties": "^5.0.7",
- "@ethersproject/strings": "^5.0.8"
+ "regenerator-transform": "^0.10.0"
}
},
- "@sindresorhus/is": {
- "version": "0.14.0",
- "optional": true
- },
- "@szmarczak/http-timer": {
- "version": "1.1.2",
- "optional": true,
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
"requires": {
- "defer-to-connect": "^1.0.1"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
- "@types/bn.js": {
- "version": "4.11.6",
+ "babel-preset-env": {
+ "version": "1.7.0",
"requires": {
- "@types/node": "*"
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0",
+ "browserslist": "^3.2.6",
+ "invariant": "^2.2.2",
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1"
+ }
}
},
- "@types/node": {
- "version": "14.14.20"
- },
- "@types/pbkdf2": {
- "version": "3.1.0",
+ "babel-register": {
+ "version": "6.26.0",
"requires": {
- "@types/node": "*"
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
+ },
+ "dependencies": {
+ "source-map-support": {
+ "version": "0.4.18",
+ "requires": {
+ "source-map": "^0.5.6"
+ }
+ }
}
},
- "@types/secp256k1": {
- "version": "4.0.1",
+ "babel-runtime": {
+ "version": "6.26.0",
"requires": {
- "@types/node": "*"
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
}
},
- "@yarnpkg/lockfile": {
- "version": "1.1.0"
- },
- "abstract-leveldown": {
- "version": "3.0.0",
+ "babel-template": {
+ "version": "6.26.0",
"requires": {
- "xtend": "~4.0.0"
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
}
},
- "accepts": {
- "version": "1.3.7",
- "optional": true,
+ "babel-traverse": {
+ "version": "6.26.0",
"requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "globals": {
+ "version": "9.18.0"
+ },
+ "ms": {
+ "version": "2.0.0"
+ }
}
},
- "aes-js": {
- "version": "3.1.2",
- "optional": true
- },
- "ajv": {
- "version": "6.12.6",
+ "babel-types": {
+ "version": "6.26.0",
"requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "1.0.3"
+ }
}
},
- "ansi-styles": {
- "version": "3.2.1",
+ "babelify": {
+ "version": "7.3.0",
"requires": {
- "color-convert": "^1.9.0"
+ "babel-core": "^6.0.14",
+ "object-assign": "^4.0.0"
}
},
- "arr-diff": {
- "version": "4.0.0"
- },
- "arr-flatten": {
- "version": "1.1.0"
- },
- "arr-union": {
- "version": "3.1.0"
+ "babylon": {
+ "version": "6.18.0"
},
- "array-flatten": {
- "version": "1.1.1",
- "optional": true
+ "backoff": {
+ "version": "2.5.0",
+ "requires": {
+ "precond": "0.2"
+ }
},
- "array-unique": {
- "version": "0.3.2"
+ "balanced-match": {
+ "version": "1.0.0"
},
- "asn1": {
- "version": "0.2.4",
+ "base": {
+ "version": "0.11.2",
"requires": {
- "safer-buffer": "~2.1.0"
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ }
}
},
- "asn1.js": {
- "version": "5.4.1",
- "optional": true,
+ "base-x": {
+ "version": "3.0.8",
"requires": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
+ "safe-buffer": "^5.0.1"
}
},
- "assert-plus": {
- "version": "1.0.0"
- },
- "assign-symbols": {
- "version": "1.0.0"
+ "base64-js": {
+ "version": "1.5.1"
},
- "async": {
- "version": "2.6.2",
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
"requires": {
- "lodash": "^4.17.11"
+ "tweetnacl": "^0.14.3"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "0.14.5"
+ }
}
},
- "async-eventemitter": {
- "version": "0.2.4",
+ "bignumber.js": {
+ "version": "9.0.1",
+ "optional": true
+ },
+ "bip39": {
+ "version": "2.5.0",
"requires": {
- "async": "^2.4.0"
+ "create-hash": "^1.1.0",
+ "pbkdf2": "^3.0.9",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "unorm": "^1.3.3"
}
},
- "async-limiter": {
- "version": "1.0.1"
- },
- "asynckit": {
- "version": "0.4.0"
+ "blakejs": {
+ "version": "1.1.0"
},
- "atob": {
- "version": "2.1.2"
+ "bluebird": {
+ "version": "3.7.2",
+ "optional": true
},
- "aws-sign2": {
- "version": "0.7.0"
- },
- "aws4": {
- "version": "1.11.0"
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1"
- },
- "ansi-styles": {
- "version": "2.2.1"
- },
- "chalk": {
- "version": "1.1.3",
- "requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "js-tokens": {
- "version": "3.0.2"
- },
- "strip-ansi": {
- "version": "3.0.1",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0"
- }
- }
+ "bn.js": {
+ "version": "4.11.9"
},
- "babel-core": {
- "version": "6.26.3",
+ "body-parser": {
+ "version": "1.19.0",
+ "optional": true,
"requires": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
},
"dependencies": {
"debug": {
"version": "2.6.9",
+ "optional": true,
"requires": {
"ms": "2.0.0"
}
},
- "json5": {
- "version": "0.5.1"
- },
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "optional": true
},
- "slash": {
- "version": "1.0.0"
+ "qs": {
+ "version": "6.7.0",
+ "optional": true
}
}
},
- "babel-generator": {
- "version": "6.26.1",
+ "brace-expansion": {
+ "version": "1.1.11",
"requires": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
- },
- "dependencies": {
- "jsesc": {
- "version": "1.3.0"
- }
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "babel-helper-builder-binary-assignment-operator-visitor": {
- "version": "6.24.1",
- "requires": {
- "babel-helper-explode-assignable-expression": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
- }
+ "brorand": {
+ "version": "1.1.0"
},
- "babel-helper-call-delegate": {
- "version": "6.24.1",
+ "browserify-aes": {
+ "version": "1.2.0",
"requires": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
}
},
- "babel-helper-define-map": {
- "version": "6.26.0",
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "optional": true,
"requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
}
},
- "babel-helper-explode-assignable-expression": {
- "version": "6.24.1",
+ "browserify-des": {
+ "version": "1.0.2",
+ "optional": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
- "babel-helper-function-name": {
- "version": "6.24.1",
+ "browserify-rsa": {
+ "version": "4.1.0",
+ "optional": true,
"requires": {
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "5.1.3",
+ "optional": true
+ }
}
},
- "babel-helper-get-function-arity": {
- "version": "6.24.1",
+ "browserify-sign": {
+ "version": "4.2.1",
+ "optional": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "5.1.3",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "optional": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
}
},
- "babel-helper-hoist-variables": {
- "version": "6.24.1",
+ "browserslist": {
+ "version": "3.2.8",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "caniuse-lite": "^1.0.30000844",
+ "electron-to-chromium": "^1.3.47"
}
},
- "babel-helper-optimise-call-expression": {
- "version": "6.24.1",
+ "bs58": {
+ "version": "4.0.1",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "base-x": "^3.0.2"
}
},
- "babel-helper-regex": {
- "version": "6.26.0",
+ "bs58check": {
+ "version": "2.1.2",
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
}
},
- "babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
+ "buffer": {
+ "version": "5.7.1",
"requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
}
},
- "babel-helper-replace-supers": {
- "version": "6.24.1",
+ "buffer-from": {
+ "version": "1.1.1"
+ },
+ "buffer-to-arraybuffer": {
+ "version": "0.0.5",
+ "optional": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3"
+ },
+ "bufferutil": {
+ "version": "4.0.3",
"requires": {
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "node-gyp-build": "^4.2.0"
}
},
- "babel-helpers": {
- "version": "6.24.1",
+ "bytes": {
+ "version": "3.1.0",
+ "optional": true
+ },
+ "bytewise": {
+ "version": "1.1.0",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "bytewise-core": "^1.2.2",
+ "typewise": "^1.0.3"
}
},
- "babel-messages": {
- "version": "6.23.0",
+ "bytewise-core": {
+ "version": "1.2.3",
"requires": {
- "babel-runtime": "^6.22.0"
+ "typewise-core": "^1.2"
}
},
- "babel-plugin-check-es2015-constants": {
- "version": "6.22.0",
+ "cache-base": {
+ "version": "1.0.1",
"requires": {
- "babel-runtime": "^6.22.0"
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
}
},
- "babel-plugin-syntax-async-functions": {
- "version": "6.13.0"
- },
- "babel-plugin-syntax-exponentiation-operator": {
- "version": "6.13.0"
- },
- "babel-plugin-syntax-trailing-function-commas": {
- "version": "6.22.0"
- },
- "babel-plugin-transform-async-to-generator": {
- "version": "6.24.1",
+ "cacheable-request": {
+ "version": "6.1.0",
+ "optional": true,
"requires": {
- "babel-helper-remap-async-to-generator": "^6.24.1",
- "babel-plugin-syntax-async-functions": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "optional": true
+ }
}
},
- "babel-plugin-transform-es2015-arrow-functions": {
- "version": "6.22.0",
+ "cachedown": {
+ "version": "1.0.0",
"requires": {
- "babel-runtime": "^6.22.0"
+ "abstract-leveldown": "^2.4.1",
+ "lru-cache": "^3.2.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "3.2.0",
+ "requires": {
+ "pseudomap": "^1.0.1"
+ }
+ }
}
},
- "babel-plugin-transform-es2015-block-scoped-functions": {
- "version": "6.22.0",
+ "call-bind": {
+ "version": "1.0.2",
"requires": {
- "babel-runtime": "^6.22.0"
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
}
},
- "babel-plugin-transform-es2015-block-scoping": {
- "version": "6.26.0",
+ "caniuse-lite": {
+ "version": "1.0.30001174"
+ },
+ "caseless": {
+ "version": "0.12.0"
+ },
+ "chalk": {
+ "version": "2.4.2",
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "lodash": "^4.17.4"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
- "babel-plugin-transform-es2015-classes": {
- "version": "6.24.1",
+ "checkpoint-store": {
+ "version": "1.1.0",
"requires": {
- "babel-helper-define-map": "^6.24.1",
- "babel-helper-function-name": "^6.24.1",
- "babel-helper-optimise-call-expression": "^6.24.1",
- "babel-helper-replace-supers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "functional-red-black-tree": "^1.0.1"
}
},
- "babel-plugin-transform-es2015-computed-properties": {
- "version": "6.24.1",
+ "chownr": {
+ "version": "1.1.4",
+ "optional": true
+ },
+ "ci-info": {
+ "version": "2.0.0"
+ },
+ "cids": {
+ "version": "0.7.5",
+ "optional": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
+ "buffer": "^5.5.0",
+ "class-is": "^1.1.0",
+ "multibase": "~0.6.0",
+ "multicodec": "^1.0.0",
+ "multihashes": "~0.4.15"
+ },
+ "dependencies": {
+ "multicodec": {
+ "version": "1.0.4",
+ "optional": true,
+ "requires": {
+ "buffer": "^5.6.0",
+ "varint": "^5.0.0"
+ }
+ }
}
},
- "babel-plugin-transform-es2015-destructuring": {
- "version": "6.23.0",
+ "cipher-base": {
+ "version": "1.0.4",
"requires": {
- "babel-runtime": "^6.22.0"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
}
},
- "babel-plugin-transform-es2015-duplicate-keys": {
- "version": "6.24.1",
+ "class-is": {
+ "version": "1.1.0",
+ "optional": true
+ },
+ "class-utils": {
+ "version": "0.3.6",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6"
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0"
+ }
}
},
- "babel-plugin-transform-es2015-for-of": {
- "version": "6.23.0",
+ "clone": {
+ "version": "2.1.2"
+ },
+ "clone-response": {
+ "version": "1.0.2",
+ "optional": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "mimic-response": "^1.0.0"
}
},
- "babel-plugin-transform-es2015-function-name": {
- "version": "6.24.1",
+ "collection-visit": {
+ "version": "1.0.0",
"requires": {
- "babel-helper-function-name": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
}
},
- "babel-plugin-transform-es2015-literals": {
- "version": "6.22.0",
+ "color-convert": {
+ "version": "1.9.3",
"requires": {
- "babel-runtime": "^6.22.0"
+ "color-name": "1.1.3"
}
},
- "babel-plugin-transform-es2015-modules-amd": {
- "version": "6.24.1",
- "requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
+ "color-name": {
+ "version": "1.1.3"
},
- "babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.2",
+ "combined-stream": {
+ "version": "1.0.8",
"requires": {
- "babel-plugin-transform-strict-mode": "^6.24.1",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-types": "^6.26.0"
+ "delayed-stream": "~1.0.0"
}
},
- "babel-plugin-transform-es2015-modules-systemjs": {
- "version": "6.24.1",
- "requires": {
- "babel-helper-hoist-variables": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
+ "component-emitter": {
+ "version": "1.3.0"
},
- "babel-plugin-transform-es2015-modules-umd": {
- "version": "6.24.1",
- "requires": {
- "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
+ "concat-map": {
+ "version": "0.0.1"
},
- "babel-plugin-transform-es2015-object-super": {
- "version": "6.24.1",
+ "concat-stream": {
+ "version": "1.6.2",
"requires": {
- "babel-helper-replace-supers": "^6.24.1",
- "babel-runtime": "^6.22.0"
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
}
},
- "babel-plugin-transform-es2015-parameters": {
- "version": "6.24.1",
+ "content-disposition": {
+ "version": "0.5.3",
+ "optional": true,
"requires": {
- "babel-helper-call-delegate": "^6.24.1",
- "babel-helper-get-function-arity": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1",
- "babel-traverse": "^6.24.1",
- "babel-types": "^6.24.1"
+ "safe-buffer": "5.1.2"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2",
+ "optional": true
+ }
}
},
- "babel-plugin-transform-es2015-shorthand-properties": {
- "version": "6.24.1",
+ "content-hash": {
+ "version": "2.5.2",
+ "optional": true,
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "cids": "^0.7.1",
+ "multicodec": "^0.5.5",
+ "multihashes": "^0.4.15"
}
},
- "babel-plugin-transform-es2015-spread": {
- "version": "6.22.0",
+ "content-type": {
+ "version": "1.0.4",
+ "optional": true
+ },
+ "convert-source-map": {
+ "version": "1.7.0",
"requires": {
- "babel-runtime": "^6.22.0"
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.1.2"
+ }
}
},
- "babel-plugin-transform-es2015-sticky-regex": {
- "version": "6.24.1",
+ "cookie": {
+ "version": "0.4.0",
+ "optional": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "optional": true
+ },
+ "cookiejar": {
+ "version": "2.1.2",
+ "optional": true
+ },
+ "copy-descriptor": {
+ "version": "0.1.1"
+ },
+ "core-js": {
+ "version": "2.6.12"
+ },
+ "core-js-pure": {
+ "version": "3.8.2"
+ },
+ "core-util-is": {
+ "version": "1.0.2"
+ },
+ "cors": {
+ "version": "2.8.5",
+ "optional": true,
"requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "object-assign": "^4",
+ "vary": "^1"
}
},
- "babel-plugin-transform-es2015-template-literals": {
- "version": "6.22.0",
+ "create-ecdh": {
+ "version": "4.0.4",
+ "optional": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
}
},
- "babel-plugin-transform-es2015-typeof-symbol": {
- "version": "6.23.0",
+ "create-hash": {
+ "version": "1.2.0",
"requires": {
- "babel-runtime": "^6.22.0"
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
}
},
- "babel-plugin-transform-es2015-unicode-regex": {
- "version": "6.24.1",
+ "create-hmac": {
+ "version": "1.1.7",
"requires": {
- "babel-helper-regex": "^6.24.1",
- "babel-runtime": "^6.22.0",
- "regexpu-core": "^2.0.0"
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
}
},
- "babel-plugin-transform-exponentiation-operator": {
- "version": "6.24.1",
+ "cross-fetch": {
+ "version": "2.2.3",
"requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
- "babel-runtime": "^6.22.0"
+ "node-fetch": "2.1.2",
+ "whatwg-fetch": "2.0.4"
}
},
- "babel-plugin-transform-regenerator": {
- "version": "6.26.0",
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "optional": true,
"requires": {
- "regenerator-transform": "^0.10.0"
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
}
},
- "babel-plugin-transform-strict-mode": {
- "version": "6.24.1",
+ "d": {
+ "version": "1.0.1",
"requires": {
- "babel-runtime": "^6.22.0",
- "babel-types": "^6.24.1"
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
}
},
- "babel-preset-env": {
- "version": "1.7.0",
+ "dashdash": {
+ "version": "1.14.1",
"requires": {
- "babel-plugin-check-es2015-constants": "^6.22.0",
- "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
- "babel-plugin-transform-async-to-generator": "^6.22.0",
- "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
- "babel-plugin-transform-es2015-classes": "^6.23.0",
- "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
- "babel-plugin-transform-es2015-destructuring": "^6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
- "babel-plugin-transform-es2015-for-of": "^6.23.0",
- "babel-plugin-transform-es2015-function-name": "^6.22.0",
- "babel-plugin-transform-es2015-literals": "^6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
- "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
- "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
- "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
- "babel-plugin-transform-es2015-object-super": "^6.22.0",
- "babel-plugin-transform-es2015-parameters": "^6.23.0",
- "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
- "babel-plugin-transform-es2015-spread": "^6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
- "babel-plugin-transform-es2015-template-literals": "^6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
- "babel-plugin-transform-exponentiation-operator": "^6.22.0",
- "babel-plugin-transform-regenerator": "^6.22.0",
- "browserslist": "^3.2.6",
- "invariant": "^2.2.2",
- "semver": "^5.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1"
- }
+ "assert-plus": "^1.0.0"
}
},
- "babel-register": {
- "version": "6.26.0",
+ "debug": {
+ "version": "3.2.6",
"requires": {
- "babel-core": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "home-or-tmp": "^2.0.0",
- "lodash": "^4.17.4",
- "mkdirp": "^0.5.1",
- "source-map-support": "^0.4.15"
- },
- "dependencies": {
- "source-map-support": {
- "version": "0.4.18",
- "requires": {
- "source-map": "^0.5.6"
- }
- }
+ "ms": "^2.1.1"
}
},
- "babel-runtime": {
- "version": "6.26.0",
+ "decode-uri-component": {
+ "version": "0.2.0"
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "optional": true,
"requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "mimic-response": "^1.0.0"
}
},
- "babel-template": {
- "version": "6.26.0",
+ "deep-equal": {
+ "version": "1.1.1",
"requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.1",
+ "is-regex": "^1.0.4",
+ "object-is": "^1.0.1",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.2.0"
}
},
- "babel-traverse": {
- "version": "6.26.0",
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "optional": true
+ },
+ "deferred-leveldown": {
+ "version": "4.0.2",
"requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
+ "abstract-leveldown": "~5.0.0",
+ "inherits": "^2.0.3"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
+ "abstract-leveldown": {
+ "version": "5.0.0",
"requires": {
- "ms": "2.0.0"
+ "xtend": "~4.0.0"
}
- },
- "globals": {
- "version": "9.18.0"
- },
- "ms": {
- "version": "2.0.0"
}
}
},
- "babel-types": {
- "version": "6.26.0",
+ "define-properties": {
+ "version": "1.1.3",
"requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
- },
- "dependencies": {
- "to-fast-properties": {
- "version": "1.0.3"
- }
+ "object-keys": "^1.0.12"
}
},
- "babelify": {
- "version": "7.3.0",
+ "define-property": {
+ "version": "2.0.2",
"requires": {
- "babel-core": "^6.0.14",
- "object-assign": "^4.0.0"
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
}
},
- "babylon": {
- "version": "6.18.0"
+ "defined": {
+ "version": "1.0.0"
},
- "backoff": {
- "version": "2.5.0",
+ "delayed-stream": {
+ "version": "1.0.0"
+ },
+ "depd": {
+ "version": "1.1.2",
+ "optional": true
+ },
+ "des.js": {
+ "version": "1.0.1",
+ "optional": true,
"requires": {
- "precond": "0.2"
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
}
},
- "balanced-match": {
- "version": "1.0.0"
+ "destroy": {
+ "version": "1.0.4",
+ "optional": true
},
- "base": {
- "version": "0.11.2",
+ "detect-indent": {
+ "version": "4.0.0",
"requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- }
+ "repeating": "^2.0.0"
}
},
- "base-x": {
- "version": "3.0.8",
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "optional": true,
"requires": {
- "safe-buffer": "^5.0.1"
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
}
},
- "base64-js": {
- "version": "1.5.1"
+ "dom-walk": {
+ "version": "0.1.2"
},
- "bcrypt-pbkdf": {
- "version": "1.0.2",
+ "dotignore": {
+ "version": "0.1.2",
"requires": {
- "tweetnacl": "^0.14.3"
- },
- "dependencies": {
- "tweetnacl": {
- "version": "0.14.5"
- }
+ "minimatch": "^3.0.4"
}
},
- "bignumber.js": {
- "version": "9.0.1",
+ "duplexer3": {
+ "version": "0.1.4",
"optional": true
},
- "bip39": {
- "version": "2.5.0",
+ "ecc-jsbn": {
+ "version": "0.1.2",
"requires": {
- "create-hash": "^1.1.0",
- "pbkdf2": "^3.0.9",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "unorm": "^1.3.3"
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
}
},
- "blakejs": {
- "version": "1.1.0"
- },
- "bluebird": {
- "version": "3.7.2",
+ "ee-first": {
+ "version": "1.1.1",
"optional": true
},
- "bn.js": {
- "version": "4.11.9"
+ "electron-to-chromium": {
+ "version": "1.3.636"
},
- "body-parser": {
- "version": "1.19.0",
- "optional": true,
+ "elliptic": {
+ "version": "6.5.3",
"requires": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "optional": true
+ },
+ "encoding": {
+ "version": "0.1.13",
+ "requires": {
+ "iconv-lite": "^0.6.2"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "optional": true,
+ "iconv-lite": {
+ "version": "0.6.2",
"requires": {
- "ms": "2.0.0"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
}
- },
- "ms": {
- "version": "2.0.0",
- "optional": true
- },
- "qs": {
- "version": "6.7.0",
- "optional": true
}
}
},
- "brace-expansion": {
- "version": "1.1.11",
+ "encoding-down": {
+ "version": "5.0.4",
"requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "abstract-leveldown": "^5.0.0",
+ "inherits": "^2.0.3",
+ "level-codec": "^9.0.0",
+ "level-errors": "^2.0.0",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "5.0.0",
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
}
},
- "brorand": {
- "version": "1.1.0"
- },
- "browserify-aes": {
- "version": "1.2.0",
+ "end-of-stream": {
+ "version": "1.4.4",
"requires": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "once": "^1.4.0"
}
},
- "browserify-cipher": {
- "version": "1.0.1",
- "optional": true,
+ "errno": {
+ "version": "0.1.8",
"requires": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
+ "prr": "~1.0.1"
}
},
- "browserify-des": {
- "version": "1.0.2",
- "optional": true,
- "requires": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "browserify-rsa": {
- "version": "4.1.0",
- "optional": true,
- "requires": {
- "bn.js": "^5.0.0",
- "randombytes": "^2.0.1"
- },
- "dependencies": {
- "bn.js": {
- "version": "5.1.3",
- "optional": true
- }
- }
- },
- "browserify-sign": {
- "version": "4.2.1",
- "optional": true,
+ "es-abstract": {
+ "version": "1.18.0-next.1",
"requires": {
- "bn.js": "^5.1.1",
- "browserify-rsa": "^4.0.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.5.3",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.5",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "5.1.3",
- "optional": true
- },
- "readable-stream": {
- "version": "3.6.0",
- "optional": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.2",
+ "is-negative-zero": "^2.0.0",
+ "is-regex": "^1.1.1",
+ "object-inspect": "^1.8.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.1",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
}
},
- "browserslist": {
- "version": "3.2.8",
+ "es-to-primitive": {
+ "version": "1.2.1",
"requires": {
- "caniuse-lite": "^1.0.30000844",
- "electron-to-chromium": "^1.3.47"
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
}
},
- "bs58": {
- "version": "4.0.1",
+ "es5-ext": {
+ "version": "0.10.53",
"requires": {
- "base-x": "^3.0.2"
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
}
},
- "bs58check": {
- "version": "2.1.2",
+ "es6-iterator": {
+ "version": "2.0.3",
"requires": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
}
},
- "buffer": {
- "version": "5.7.1",
+ "es6-symbol": {
+ "version": "3.1.3",
"requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
}
},
- "buffer-from": {
- "version": "1.1.1"
- },
- "buffer-to-arraybuffer": {
- "version": "0.0.5",
+ "escape-html": {
+ "version": "1.0.3",
"optional": true
},
- "buffer-xor": {
- "version": "1.0.3"
+ "escape-string-regexp": {
+ "version": "1.0.5"
},
- "bufferutil": {
- "version": "4.0.3",
- "requires": {
- "node-gyp-build": "^4.2.0"
- }
+ "esutils": {
+ "version": "2.0.3"
},
- "bytes": {
- "version": "3.1.0",
+ "etag": {
+ "version": "1.8.1",
"optional": true
},
- "bytewise": {
- "version": "1.1.0",
- "requires": {
- "bytewise-core": "^1.2.2",
- "typewise": "^1.0.3"
- }
- },
- "bytewise-core": {
- "version": "1.2.3",
- "requires": {
- "typewise-core": "^1.2"
- }
- },
- "cache-base": {
- "version": "1.0.1",
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- }
- },
- "cacheable-request": {
- "version": "6.1.0",
- "optional": true,
- "requires": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^3.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^1.0.2"
- },
- "dependencies": {
- "lowercase-keys": {
- "version": "2.0.0",
- "optional": true
- }
- }
- },
- "cachedown": {
- "version": "1.0.0",
+ "eth-block-tracker": {
+ "version": "3.0.1",
"requires": {
- "abstract-leveldown": "^2.4.1",
- "lru-cache": "^3.2.0"
+ "eth-query": "^2.1.0",
+ "ethereumjs-tx": "^1.3.3",
+ "ethereumjs-util": "^5.1.3",
+ "ethjs-util": "^0.1.3",
+ "json-rpc-engine": "^3.6.0",
+ "pify": "^2.3.0",
+ "tape": "^4.6.3"
},
"dependencies": {
- "abstract-leveldown": {
- "version": "2.7.2",
+ "ethereumjs-tx": {
+ "version": "1.3.7",
"requires": {
- "xtend": "~4.0.0"
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
}
},
- "lru-cache": {
- "version": "3.2.0",
+ "ethereumjs-util": {
+ "version": "5.2.1",
"requires": {
- "pseudomap": "^1.0.1"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
+ },
+ "pify": {
+ "version": "2.3.0"
}
}
},
- "call-bind": {
- "version": "1.0.2",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "caniuse-lite": {
- "version": "1.0.30001174"
- },
- "caseless": {
- "version": "0.12.0"
- },
- "chalk": {
- "version": "2.4.2",
+ "eth-ens-namehash": {
+ "version": "2.0.8",
+ "optional": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "idna-uts46-hx": "^2.3.1",
+ "js-sha3": "^0.5.7"
}
},
- "checkpoint-store": {
- "version": "1.1.0",
+ "eth-json-rpc-infura": {
+ "version": "3.2.1",
"requires": {
- "functional-red-black-tree": "^1.0.1"
+ "cross-fetch": "^2.1.1",
+ "eth-json-rpc-middleware": "^1.5.0",
+ "json-rpc-engine": "^3.4.0",
+ "json-rpc-error": "^2.0.0"
}
},
- "chownr": {
- "version": "1.1.4",
- "optional": true
- },
- "ci-info": {
- "version": "2.0.0"
- },
- "cids": {
- "version": "0.7.5",
- "optional": true,
+ "eth-json-rpc-middleware": {
+ "version": "1.6.0",
"requires": {
- "buffer": "^5.5.0",
- "class-is": "^1.1.0",
- "multibase": "~0.6.0",
- "multicodec": "^1.0.0",
- "multihashes": "~0.4.15"
+ "async": "^2.5.0",
+ "eth-query": "^2.1.2",
+ "eth-tx-summary": "^3.1.2",
+ "ethereumjs-block": "^1.6.0",
+ "ethereumjs-tx": "^1.3.3",
+ "ethereumjs-util": "^5.1.2",
+ "ethereumjs-vm": "^2.1.0",
+ "fetch-ponyfill": "^4.0.0",
+ "json-rpc-engine": "^3.6.0",
+ "json-rpc-error": "^2.0.0",
+ "json-stable-stringify": "^1.0.1",
+ "promise-to-callback": "^1.0.0",
+ "tape": "^4.6.3"
},
"dependencies": {
- "multicodec": {
- "version": "1.0.4",
- "optional": true,
+ "abstract-leveldown": {
+ "version": "2.6.3",
"requires": {
- "buffer": "^5.6.0",
- "varint": "^5.0.0"
+ "xtend": "~4.0.0"
}
- }
- }
- },
- "cipher-base": {
- "version": "1.0.4",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "class-is": {
- "version": "1.1.0",
- "optional": true
- },
- "class-utils": {
- "version": "0.3.6",
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
"requires": {
- "is-descriptor": "^0.1.0"
+ "abstract-leveldown": "~2.6.0"
}
},
- "is-accessor-descriptor": {
- "version": "0.1.6",
+ "ethereumjs-account": {
+ "version": "2.0.5",
"requires": {
- "kind-of": "^3.0.2"
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-block": {
+ "version": "1.7.1",
+ "requires": {
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
},
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
+ "ethereum-common": {
+ "version": "0.2.0"
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "1.3.7",
+ "requires": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-vm": {
+ "version": "2.6.0",
+ "requires": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "ethereumjs-block": {
+ "version": "2.2.2",
"requires": {
- "is-buffer": "^1.1.5"
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "requires": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
}
}
},
- "is-buffer": {
- "version": "1.1.6"
+ "isarray": {
+ "version": "0.0.1"
},
- "is-data-descriptor": {
- "version": "0.1.4",
+ "level-codec": {
+ "version": "7.0.1"
+ },
+ "level-errors": {
+ "version": "1.0.5",
"requires": {
- "kind-of": "^3.0.2"
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
},
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
+ "readable-stream": {
+ "version": "1.1.14",
"requires": {
- "is-buffer": "^1.1.5"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
}
}
}
},
- "is-descriptor": {
- "version": "0.1.6",
+ "level-ws": {
+ "version": "0.0.0",
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.34",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "requires": {
+ "object-keys": "~0.4.0"
+ }
+ }
}
},
- "kind-of": {
- "version": "5.1.0"
- }
- }
- },
- "clone": {
- "version": "2.1.2"
- },
- "clone-response": {
- "version": "1.0.2",
- "optional": true,
- "requires": {
- "mimic-response": "^1.0.0"
- }
- },
- "collection-visit": {
- "version": "1.0.0",
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3"
- },
- "combined-stream": {
- "version": "1.0.8",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "component-emitter": {
- "version": "1.3.0"
- },
- "concat-map": {
- "version": "0.0.1"
- },
- "concat-stream": {
- "version": "1.6.2",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "content-disposition": {
- "version": "0.5.3",
- "optional": true,
- "requires": {
- "safe-buffer": "5.1.2"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "optional": true
- }
- }
- },
- "content-hash": {
- "version": "2.5.2",
- "optional": true,
- "requires": {
- "cids": "^0.7.1",
- "multicodec": "^0.5.5",
- "multihashes": "^0.4.15"
- }
- },
- "content-type": {
- "version": "1.0.4",
- "optional": true
- },
- "convert-source-map": {
- "version": "1.7.0",
- "requires": {
- "safe-buffer": "~5.1.1"
- },
- "dependencies": {
+ "levelup": {
+ "version": "1.3.9",
+ "requires": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "ltgt": {
+ "version": "2.2.1"
+ },
+ "memdown": {
+ "version": "1.4.1",
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
+ "merkle-patricia-tree": {
+ "version": "2.3.2",
+ "requires": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2"
+ }
+ }
+ },
+ "object-keys": {
+ "version": "0.4.0"
+ },
"safe-buffer": {
"version": "5.1.2"
+ },
+ "semver": {
+ "version": "5.4.1"
+ },
+ "string_decoder": {
+ "version": "0.10.31"
}
}
},
- "cookie": {
- "version": "0.4.0",
- "optional": true
- },
- "cookie-signature": {
- "version": "1.0.6",
- "optional": true
- },
- "cookiejar": {
- "version": "2.1.2",
- "optional": true
- },
- "copy-descriptor": {
- "version": "0.1.1"
- },
- "core-js": {
- "version": "2.6.12"
- },
- "core-js-pure": {
- "version": "3.8.2"
- },
- "core-util-is": {
- "version": "1.0.2"
- },
- "cors": {
- "version": "2.8.5",
- "optional": true,
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
- }
- },
- "create-ecdh": {
- "version": "4.0.4",
- "optional": true,
- "requires": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
- }
- },
- "create-hash": {
- "version": "1.2.0",
- "requires": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "create-hmac": {
- "version": "1.1.7",
- "requires": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "cross-fetch": {
- "version": "2.2.3",
- "requires": {
- "node-fetch": "2.1.2",
- "whatwg-fetch": "2.0.4"
- }
- },
- "crypto-browserify": {
- "version": "3.12.0",
- "optional": true,
- "requires": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
- }
- },
- "d": {
- "version": "1.0.1",
- "requires": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "debug": {
- "version": "3.2.6",
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "decode-uri-component": {
- "version": "0.2.0"
- },
- "decompress-response": {
- "version": "3.3.0",
+ "eth-lib": {
+ "version": "0.1.29",
"optional": true,
"requires": {
- "mimic-response": "^1.0.0"
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "nano-json-stream-parser": "^0.1.2",
+ "servify": "^0.1.12",
+ "ws": "^3.0.0",
+ "xhr-request-promise": "^0.1.2"
}
},
- "deep-equal": {
- "version": "1.1.1",
+ "eth-query": {
+ "version": "2.1.2",
"requires": {
- "is-arguments": "^1.0.4",
- "is-date-object": "^1.0.1",
- "is-regex": "^1.0.4",
- "object-is": "^1.0.1",
- "object-keys": "^1.1.1",
- "regexp.prototype.flags": "^1.2.0"
+ "json-rpc-random-id": "^1.0.0",
+ "xtend": "^4.0.1"
}
},
- "defer-to-connect": {
- "version": "1.1.3",
- "optional": true
- },
- "deferred-leveldown": {
- "version": "4.0.2",
+ "eth-sig-util": {
+ "version": "3.0.0",
"requires": {
- "abstract-leveldown": "~5.0.0",
- "inherits": "^2.0.3"
+ "buffer": "^5.2.1",
+ "elliptic": "^6.4.0",
+ "ethereumjs-abi": "0.6.5",
+ "ethereumjs-util": "^5.1.1",
+ "tweetnacl": "^1.0.0",
+ "tweetnacl-util": "^0.15.0"
},
"dependencies": {
- "abstract-leveldown": {
- "version": "5.0.0",
+ "ethereumjs-abi": {
+ "version": "0.6.5",
"requires": {
- "xtend": "~4.0.0"
+ "bn.js": "^4.10.0",
+ "ethereumjs-util": "^4.3.0"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "4.5.1",
+ "requires": {
+ "bn.js": "^4.8.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.0.0"
+ }
+ }
}
- }
- }
- },
- "define-properties": {
- "version": "1.1.3",
- "requires": {
- "object-keys": "^1.0.12"
- }
- },
- "define-property": {
- "version": "2.0.2",
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- }
- },
- "defined": {
- "version": "1.0.0"
- },
- "delayed-stream": {
- "version": "1.0.0"
- },
- "depd": {
- "version": "1.1.2",
- "optional": true
- },
- "des.js": {
- "version": "1.0.1",
- "optional": true,
- "requires": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "destroy": {
- "version": "1.0.4",
- "optional": true
- },
- "detect-indent": {
- "version": "4.0.0",
- "requires": {
- "repeating": "^2.0.0"
- }
- },
- "diffie-hellman": {
- "version": "5.0.3",
- "optional": true,
- "requires": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "dom-walk": {
- "version": "0.1.2"
- },
- "dotignore": {
- "version": "0.1.2",
- "requires": {
- "minimatch": "^3.0.4"
- }
- },
- "duplexer3": {
- "version": "0.1.4",
- "optional": true
- },
- "ecc-jsbn": {
- "version": "0.1.2",
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "optional": true
- },
- "electron-to-chromium": {
- "version": "1.3.636"
- },
- "elliptic": {
- "version": "6.5.3",
- "requires": {
- "bn.js": "^4.4.0",
- "brorand": "^1.0.1",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.0"
- }
- },
- "encodeurl": {
- "version": "1.0.2",
- "optional": true
- },
- "encoding": {
- "version": "0.1.13",
- "requires": {
- "iconv-lite": "^0.6.2"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.6.2",
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
"requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
}
}
},
- "encoding-down": {
- "version": "5.0.4",
+ "eth-tx-summary": {
+ "version": "3.2.4",
"requires": {
- "abstract-leveldown": "^5.0.0",
- "inherits": "^2.0.3",
- "level-codec": "^9.0.0",
- "level-errors": "^2.0.0",
- "xtend": "^4.0.1"
+ "async": "^2.1.2",
+ "clone": "^2.0.0",
+ "concat-stream": "^1.5.1",
+ "end-of-stream": "^1.1.0",
+ "eth-query": "^2.0.2",
+ "ethereumjs-block": "^1.4.1",
+ "ethereumjs-tx": "^1.1.1",
+ "ethereumjs-util": "^5.0.1",
+ "ethereumjs-vm": "^2.6.0",
+ "through2": "^2.0.3"
},
"dependencies": {
"abstract-leveldown": {
- "version": "5.0.0",
+ "version": "2.6.3",
"requires": {
"xtend": "~4.0.0"
}
- }
- }
- },
- "end-of-stream": {
- "version": "1.4.4",
- "requires": {
- "once": "^1.4.0"
- }
- },
- "errno": {
- "version": "0.1.8",
- "requires": {
- "prr": "~1.0.1"
- }
- },
- "es-abstract": {
- "version": "1.18.0-next.1",
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "es5-ext": {
- "version": "0.10.53",
- "requires": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
- }
- },
- "es6-iterator": {
- "version": "2.0.3",
- "requires": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
- },
- "es6-symbol": {
- "version": "3.1.3",
- "requires": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- }
- },
- "escape-html": {
- "version": "1.0.3",
- "optional": true
- },
- "escape-string-regexp": {
- "version": "1.0.5"
- },
- "esutils": {
- "version": "2.0.3"
- },
- "etag": {
- "version": "1.8.1",
- "optional": true
- },
- "eth-block-tracker": {
- "version": "3.0.1",
- "requires": {
- "eth-query": "^2.1.0",
- "ethereumjs-tx": "^1.3.3",
- "ethereumjs-util": "^5.1.3",
- "ethjs-util": "^0.1.3",
- "json-rpc-engine": "^3.6.0",
- "pify": "^2.3.0",
- "tape": "^4.6.3"
- },
- "dependencies": {
- "ethereumjs-tx": {
- "version": "1.3.7",
- "requires": {
- "ethereum-common": "^0.0.18",
- "ethereumjs-util": "^5.0.0"
- }
- },
- "ethereumjs-util": {
- "version": "5.2.1",
- "requires": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "pify": {
- "version": "2.3.0"
- }
- }
- },
- "eth-ens-namehash": {
- "version": "2.0.8",
- "optional": true,
- "requires": {
- "idna-uts46-hx": "^2.3.1",
- "js-sha3": "^0.5.7"
- }
- },
- "eth-json-rpc-infura": {
- "version": "3.2.1",
- "requires": {
- "cross-fetch": "^2.1.1",
- "eth-json-rpc-middleware": "^1.5.0",
- "json-rpc-engine": "^3.4.0",
- "json-rpc-error": "^2.0.0"
- }
- },
- "eth-json-rpc-middleware": {
- "version": "1.6.0",
- "requires": {
- "async": "^2.5.0",
- "eth-query": "^2.1.2",
- "eth-tx-summary": "^3.1.2",
- "ethereumjs-block": "^1.6.0",
- "ethereumjs-tx": "^1.3.3",
- "ethereumjs-util": "^5.1.2",
- "ethereumjs-vm": "^2.1.0",
- "fetch-ponyfill": "^4.0.0",
- "json-rpc-engine": "^3.6.0",
- "json-rpc-error": "^2.0.0",
- "json-stable-stringify": "^1.0.1",
- "promise-to-callback": "^1.0.0",
- "tape": "^4.6.3"
- },
- "dependencies": {
- "abstract-leveldown": {
- "version": "2.6.3",
- "requires": {
- "xtend": "~4.0.0"
- }
- },
- "deferred-leveldown": {
- "version": "1.2.2",
- "requires": {
- "abstract-leveldown": "~2.6.0"
- }
- },
- "ethereumjs-account": {
- "version": "2.0.5",
- "requires": {
- "ethereumjs-util": "^5.0.0",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "ethereumjs-block": {
- "version": "1.7.1",
- "requires": {
- "async": "^2.0.1",
- "ethereum-common": "0.2.0",
- "ethereumjs-tx": "^1.2.2",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
- },
- "dependencies": {
- "ethereum-common": {
- "version": "0.2.0"
- }
- }
- },
- "ethereumjs-tx": {
- "version": "1.3.7",
- "requires": {
- "ethereum-common": "^0.0.18",
- "ethereumjs-util": "^5.0.0"
- }
- },
- "ethereumjs-util": {
- "version": "5.2.1",
- "requires": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "ethereumjs-vm": {
- "version": "2.6.0",
- "requires": {
- "async": "^2.1.2",
- "async-eventemitter": "^0.2.2",
- "ethereumjs-account": "^2.0.3",
- "ethereumjs-block": "~2.2.0",
- "ethereumjs-common": "^1.1.0",
- "ethereumjs-util": "^6.0.0",
- "fake-merkle-patricia-tree": "^1.0.1",
- "functional-red-black-tree": "^1.0.1",
- "merkle-patricia-tree": "^2.3.2",
- "rustbn.js": "~0.2.0",
- "safe-buffer": "^5.1.1"
- },
- "dependencies": {
- "ethereumjs-block": {
- "version": "2.2.2",
- "requires": {
- "async": "^2.0.1",
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-tx": "^2.1.1",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
- },
- "dependencies": {
- "ethereumjs-util": {
- "version": "5.2.1",
- "requires": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- }
- }
- },
- "ethereumjs-tx": {
- "version": "2.1.2",
- "requires": {
- "ethereumjs-common": "^1.5.0",
- "ethereumjs-util": "^6.0.0"
- }
- },
- "ethereumjs-util": {
- "version": "6.2.1",
- "requires": {
- "@types/bn.js": "^4.11.3",
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.3"
- }
- }
- }
- },
- "isarray": {
- "version": "0.0.1"
- },
- "level-codec": {
- "version": "7.0.1"
- },
- "level-errors": {
- "version": "1.0.5",
- "requires": {
- "errno": "~0.1.1"
- }
- },
- "level-iterator-stream": {
- "version": "1.3.1",
- "requires": {
- "inherits": "^2.0.1",
- "level-errors": "^1.0.3",
- "readable-stream": "^1.0.33",
- "xtend": "^4.0.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "1.1.14",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- }
- }
- },
- "level-ws": {
- "version": "0.0.0",
- "requires": {
- "readable-stream": "~1.0.15",
- "xtend": "~2.1.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "1.0.34",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "xtend": {
- "version": "2.1.2",
- "requires": {
- "object-keys": "~0.4.0"
- }
- }
- }
- },
- "levelup": {
- "version": "1.3.9",
- "requires": {
- "deferred-leveldown": "~1.2.1",
- "level-codec": "~7.0.0",
- "level-errors": "~1.0.3",
- "level-iterator-stream": "~1.3.0",
- "prr": "~1.0.1",
- "semver": "~5.4.1",
- "xtend": "~4.0.0"
- }
- },
- "ltgt": {
- "version": "2.2.1"
- },
- "memdown": {
- "version": "1.4.1",
- "requires": {
- "abstract-leveldown": "~2.7.1",
- "functional-red-black-tree": "^1.0.1",
- "immediate": "^3.2.3",
- "inherits": "~2.0.1",
- "ltgt": "~2.2.0",
- "safe-buffer": "~5.1.1"
- },
- "dependencies": {
- "abstract-leveldown": {
- "version": "2.7.2",
- "requires": {
- "xtend": "~4.0.0"
- }
- }
- }
- },
- "merkle-patricia-tree": {
- "version": "2.3.2",
- "requires": {
- "async": "^1.4.2",
- "ethereumjs-util": "^5.0.0",
- "level-ws": "0.0.0",
- "levelup": "^1.2.1",
- "memdown": "^1.0.0",
- "readable-stream": "^2.0.0",
- "rlp": "^2.0.0",
- "semaphore": ">=1.0.1"
- },
- "dependencies": {
- "async": {
- "version": "1.5.2"
- }
- }
- },
- "object-keys": {
- "version": "0.4.0"
- },
- "safe-buffer": {
- "version": "5.1.2"
- },
- "semver": {
- "version": "5.4.1"
- },
- "string_decoder": {
- "version": "0.10.31"
- }
- }
- },
- "eth-lib": {
- "version": "0.1.29",
- "optional": true,
- "requires": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "nano-json-stream-parser": "^0.1.2",
- "servify": "^0.1.12",
- "ws": "^3.0.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "eth-query": {
- "version": "2.1.2",
- "requires": {
- "json-rpc-random-id": "^1.0.0",
- "xtend": "^4.0.1"
- }
- },
- "eth-sig-util": {
- "version": "3.0.0",
- "requires": {
- "buffer": "^5.2.1",
- "elliptic": "^6.4.0",
- "ethereumjs-abi": "0.6.5",
- "ethereumjs-util": "^5.1.1",
- "tweetnacl": "^1.0.0",
- "tweetnacl-util": "^0.15.0"
- },
- "dependencies": {
- "ethereumjs-abi": {
- "version": "0.6.5",
- "requires": {
- "bn.js": "^4.10.0",
- "ethereumjs-util": "^4.3.0"
- },
- "dependencies": {
- "ethereumjs-util": {
- "version": "4.5.1",
- "requires": {
- "bn.js": "^4.8.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.0.0"
- }
- }
- }
- },
- "ethereumjs-util": {
- "version": "5.2.1",
- "requires": {
- "bn.js": "^4.11.0",
- "create-hash": "^1.1.2",
- "elliptic": "^6.5.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "^0.1.3",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- }
- }
- },
- "eth-tx-summary": {
- "version": "3.2.4",
- "requires": {
- "async": "^2.1.2",
- "clone": "^2.0.0",
- "concat-stream": "^1.5.1",
- "end-of-stream": "^1.1.0",
- "eth-query": "^2.0.2",
- "ethereumjs-block": "^1.4.1",
- "ethereumjs-tx": "^1.1.1",
- "ethereumjs-util": "^5.0.1",
- "ethereumjs-vm": "^2.6.0",
- "through2": "^2.0.3"
- },
- "dependencies": {
- "abstract-leveldown": {
- "version": "2.6.3",
- "requires": {
- "xtend": "~4.0.0"
- }
- },
- "deferred-leveldown": {
- "version": "1.2.2",
- "requires": {
- "abstract-leveldown": "~2.6.0"
- }
- },
- "ethereumjs-account": {
- "version": "2.0.5",
- "requires": {
- "ethereumjs-util": "^5.0.0",
- "rlp": "^2.0.0",
- "safe-buffer": "^5.1.1"
- }
- },
- "ethereumjs-block": {
- "version": "1.7.1",
- "requires": {
- "async": "^2.0.1",
- "ethereum-common": "0.2.0",
- "ethereumjs-tx": "^1.2.2",
- "ethereumjs-util": "^5.0.0",
- "merkle-patricia-tree": "^2.1.2"
- },
- "dependencies": {
- "ethereum-common": {
- "version": "0.2.0"
- }
- }
- },
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "ethereumjs-account": {
+ "version": "2.0.5",
+ "requires": {
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "ethereumjs-block": {
+ "version": "1.7.1",
+ "requires": {
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereum-common": {
+ "version": "0.2.0"
+ }
+ }
+ },
"ethereumjs-tx": {
"version": "1.3.7",
"requires": {
@@ -42060,6 +42439,64 @@
}
}
},
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "optional": true,
+ "peer": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
+ },
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -42103,8 +42540,7 @@
"get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
- "optional": true
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
},
"getpass": {
"version": "0.1.7",
@@ -42124,6 +42560,13 @@
"node-emoji": "^1.10.0"
}
},
+ "github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
+ "optional": true,
+ "peer": true
+ },
"glob": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
@@ -42137,6 +42580,38 @@
"path-is-absolute": "^1.0.0"
}
},
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
"glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
@@ -42186,9 +42661,9 @@
}
},
"globals": {
- "version": "13.12.1",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz",
- "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==",
+ "version": "13.13.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
+ "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -42226,6 +42701,14 @@
"url-parse-lax": "^3.0.0"
},
"dependencies": {
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
"get-stream": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -42233,13 +42716,18 @@
"requires": {
"pump": "^3.0.0"
}
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
}
}
},
"graceful-fs": {
- "version": "4.2.9",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"growl": {
"version": "1.10.5",
@@ -42341,18 +42829,6 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz",
"integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow=="
},
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
- },
"find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
@@ -42549,6 +43025,100 @@
}
}
},
+ "hardhat-deploy": {
+ "version": "0.9.29",
+ "resolved": "https://registry.npmjs.org/hardhat-deploy/-/hardhat-deploy-0.9.29.tgz",
+ "integrity": "sha512-8tIGszPFmOaXtyloCbASiZPvoAgLNGGL/Ubys3YW/oj4dvoPa8G6YDyaOCdsAhsENZ+QgR280NFSG9JdN7SU9Q==",
+ "requires": {
+ "@ethersproject/abi": "^5.4.0",
+ "@ethersproject/abstract-signer": "^5.4.1",
+ "@ethersproject/address": "^5.4.0",
+ "@ethersproject/bignumber": "^5.4.1",
+ "@ethersproject/bytes": "^5.4.0",
+ "@ethersproject/constants": "^5.4.0",
+ "@ethersproject/contracts": "^5.4.1",
+ "@ethersproject/providers": "^5.4.4",
+ "@ethersproject/solidity": "^5.4.0",
+ "@ethersproject/transactions": "^5.4.0",
+ "@ethersproject/wallet": "^5.4.0",
+ "@types/qs": "^6.9.7",
+ "axios": "^0.21.1",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.2",
+ "debug": "^4.3.2",
+ "enquirer": "^2.3.6",
+ "form-data": "^4.0.0",
+ "fs-extra": "^10.0.0",
+ "match-all": "^1.2.6",
+ "murmur-128": "^0.2.1",
+ "qs": "^6.9.4"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"hardhat-gas-reporter": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.8.tgz",
@@ -42568,24 +43138,32 @@
}
},
"has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
"has-symbol-support-x": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
"integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
},
"has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"has-to-string-tag-x": {
"version": "1.4.1",
@@ -42603,22 +43181,34 @@
"has-symbols": "^1.0.2"
}
},
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "optional": true,
+ "peer": true
+ },
"has-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
- "optional": true,
"requires": {
"get-value": "^2.0.6",
"has-values": "^1.0.0",
"isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
}
},
"has-values": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
- "optional": true,
"requires": {
"is-number": "^3.0.0",
"kind-of": "^4.0.0"
@@ -42628,7 +43218,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "optional": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -42637,7 +43226,6 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -42648,7 +43236,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -42665,6 +43252,11 @@
"safe-buffer": "^5.2.0"
}
},
+ "hash-test-vectors": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/hash-test-vectors/-/hash-test-vectors-1.3.2.tgz",
+ "integrity": "sha1-8FD94a/0bsKNz09w5OMjjNUAD0w="
+ },
"hash.js": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
@@ -42689,14 +43281,14 @@
}
},
"highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
+ "version": "9.18.5",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz",
+ "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA=="
},
"highlightjs-solidity": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.3.tgz",
- "integrity": "sha512-tjFm5dtIE61VQBzjlZmkCtY5fLs3CaEABbVuUNyXeW+UuOCsxMg3MsPFy0kCelHP74hPpkoqDejLrbnV1axAIw=="
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-1.2.2.tgz",
+ "integrity": "sha512-+cZ+1+nAO5Pi6c70TKuMcPmwqLECxiYhnQc1MxdXckK94zyWFMNZADzu98ECNlf5xCRdNh+XKp+eklmRU+Dniw=="
},
"hmac-drbg": {
"version": "1.0.1",
@@ -42741,14 +43333,14 @@
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"requires": {
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
+ "statuses": "2.0.1",
"toidentifier": "1.0.1"
}
},
@@ -42782,15 +43374,10 @@
"sshpk": "^1.7.0"
}
},
- "https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
- },
"https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"requires": {
"agent-base": "6",
"debug": "4"
@@ -42855,6 +43442,11 @@
"resolve-from": "^4.0.0"
}
},
+ "imul": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz",
+ "integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk="
+ },
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -42884,7 +43476,7 @@
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "dev": true
+ "devOptional": true
},
"inquirer": {
"version": "6.5.2",
@@ -42953,15 +43545,6 @@
"signal-exit": "^3.0.2"
}
},
- "rxjs": {
- "version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -42993,18 +43576,12 @@
},
"dependencies": {
"ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
"dev": true
}
}
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
}
}
},
@@ -43021,7 +43598,17 @@
"interpret": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA=="
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "peer": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
},
"invert-kv": {
"version": "1.0.0",
@@ -43042,23 +43629,11 @@
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "optional": true,
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "kind-of": "^6.0.0"
}
},
"is-arguments": {
@@ -43119,31 +43694,19 @@
}
},
"is-core-module": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
"requires": {
"has": "^1.0.3"
}
},
"is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "optional": true,
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "kind-of": "^6.0.0"
}
},
"is-date-object": {
@@ -43155,22 +43718,13 @@
}
},
"is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "optional": true,
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "optional": true
- }
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
}
},
"is-directory": {
@@ -43184,11 +43738,23 @@
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
},
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "optional": true
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
},
"is-extglob": {
"version": "2.1.1",
@@ -43246,9 +43812,9 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"is-number-object": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"requires": {
"has-tostringtag": "^1.0.0"
}
@@ -43267,11 +43833,27 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "optional": true,
"requires": {
"isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
}
},
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
+ },
"is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
@@ -43287,9 +43869,12 @@
"integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
},
"is-shared-array-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
- "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
},
"is-stream": {
"version": "2.0.1",
@@ -43364,8 +43949,7 @@
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "optional": true
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
},
"is-wsl": {
"version": "2.2.0",
@@ -43385,11 +43969,18 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
+ "iso-url": {
+ "version": "0.4.7",
+ "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz",
+ "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog=="
+ },
"isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "optional": true
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
},
"isstream": {
"version": "0.1.2",
@@ -43410,11 +44001,15 @@
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
"integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
+ "js-string-escape": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
+ "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8="
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
"version": "3.14.1",
@@ -43436,11 +44031,6 @@
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
"integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
},
- "json-loader": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
- "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w=="
- },
"json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@@ -43468,10 +44058,19 @@
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
+ "json-text-sequence": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz",
+ "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=",
+ "requires": {
+ "delimit-stream": "0.1.0"
+ }
+ },
"json5": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
"requires": {
"minimist": "^1.2.0"
}
@@ -43523,8 +44122,7 @@
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "devOptional": true
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
},
"klaw": {
"version": "1.3.1",
@@ -43542,11 +44140,6 @@
"graceful-fs": "^4.1.11"
}
},
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
- },
"lcid": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
@@ -43651,9 +44244,9 @@
"dev": true
},
"lint-staged": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.0.tgz",
- "integrity": "sha512-3X7MR0h9b7qf4iXf/1n7RlVAx+EzpAZXoCEMhVSpaBlgKDfH2ewf+QUm7BddFyq29v4dgPP+8+uYpWuSWx035A==",
+ "version": "12.4.1",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.4.1.tgz",
+ "integrity": "sha512-PTXgzpflrQ+pODQTG116QNB+Q6uUTDg5B5HqGvNhoQSGt8Qy+MA/6zSnR8n38+sxP5TapzeQGTvoKni0KRS8Vg==",
"dev": true,
"requires": {
"cli-truncate": "^3.1.0",
@@ -43672,18 +44265,24 @@
"yaml": "^1.10.2"
},
"dependencies": {
+ "commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "dev": true
+ },
"supports-color": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz",
- "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.2.tgz",
+ "integrity": "sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA==",
"dev": true
}
}
},
"listr2": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.3.tgz",
- "integrity": "sha512-9pGuRUYKN7/4KW7ociiIpj9c32ZnlvC4Z/yH+Tcpi84eW5Znqh2dq78fB9vvcrCw5GohOMXtuMP5ZVC4fTD8BA==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz",
+ "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==",
"dev": true,
"requires": {
"cli-truncate": "^2.1.0",
@@ -43691,7 +44290,7 @@
"log-update": "^4.0.0",
"p-map": "^4.0.0",
"rfdc": "^1.3.0",
- "rxjs": "^7.5.4",
+ "rxjs": "^7.5.5",
"through": "^2.3.8",
"wrap-ansi": "^7.0.0"
},
@@ -43736,6 +44335,15 @@
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
+ "rxjs": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz",
+ "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
"slice-ansi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
@@ -43761,6 +44369,14 @@
"strip-bom": "^2.0.0"
},
"dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
@@ -43776,21 +44392,6 @@
}
}
},
- "loader-runner": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
- "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw=="
- },
- "loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- }
- },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -43980,15 +44581,19 @@
}
}
},
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "peer": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
},
"loupe": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.3.tgz",
- "integrity": "sha512-krIV4Cf1BIGIx2t1e6tucThhrBemUnIUjMtD2vN4mrMxnxpBvrcosBSpooqunBqP/hOEEV1w/Cr1YskGtqw5Jg==",
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
+ "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
"requires": {
"get-func-name": "^2.0.0"
}
@@ -44038,14 +44643,12 @@
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "optional": true
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
},
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
- "optional": true,
"requires": {
"object-visit": "^1.0.0"
}
@@ -44055,6 +44658,16 @@
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
"integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q=="
},
+ "match-all": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/match-all/-/match-all-1.2.6.tgz",
+ "integrity": "sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ=="
+ },
+ "math-random": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A=="
+ },
"mcl-wasm": {
"version": "0.7.9",
"resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz",
@@ -44133,44 +44746,6 @@
}
}
},
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "requires": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
"memorystream": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
@@ -44194,9 +44769,9 @@
"dev": true
},
"merkle-patricia-tree": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.3.tgz",
- "integrity": "sha512-S4xevdXl5KvdBGgUxhQcxoep0onqXiIhzfwZp4M78kIuJH3Pu9o9IUgqhzSFOR2ykLO6t265026Xb6PY0q2UFQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-4.2.4.tgz",
+ "integrity": "sha512-eHbf/BG6eGNsqqfbLED9rIqbsF4+sykEaBn6OLNs71tjclbMcMOk1tEPmJKcNcNCLkvbpY/lwyOlizWsqPNo8w==",
"requires": {
"@types/levelup": "^4.3.0",
"ethereumjs-util": "^7.1.4",
@@ -44204,20 +44779,6 @@
"level-ws": "^2.0.0",
"readable-stream": "^3.6.0",
"semaphore-async-await": "^1.5.1"
- },
- "dependencies": {
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- }
- }
}
},
"merkletreejs": {
@@ -44230,13 +44791,6 @@
"crypto-js": "^3.1.9-1",
"treeify": "^1.1.0",
"web3-utils": "^1.3.4"
- },
- "dependencies": {
- "bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw=="
- }
}
},
"methods": {
@@ -44245,12 +44799,12 @@
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
}
},
"miller-rabin": {
@@ -44275,16 +44829,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
- "version": "2.1.34",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
- "mime-db": "1.51.0"
+ "mime-db": "1.52.0"
}
},
"mimic-fn": {
@@ -44294,9 +44848,11 @@
"dev": true
},
"mimic-response": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
- "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
+ "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
+ "optional": true,
+ "peer": true
},
"min-document": {
"version": "2.19.0",
@@ -44355,7 +44911,6 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "optional": true,
"requires": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -44365,7 +44920,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -44373,13 +44927,20 @@
}
},
"mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"requires": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
}
},
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "optional": true,
+ "peer": true
+ },
"mkdirp-promise": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
@@ -44432,6 +44993,21 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
+ "debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "requires": {
+ "ms": "2.1.2"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -44609,16 +45185,105 @@
}
}
},
+ "murmur-128": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/murmur-128/-/murmur-128-0.2.1.tgz",
+ "integrity": "sha512-WseEgiRkI6aMFBbj8Cg9yBj/y+OdipwVC7zUo3W2W1JAJITwouUOtpqsmGSg67EQmwwSyod7hsVsWY5LsrfQVg==",
+ "requires": {
+ "encode-utf8": "^1.0.2",
+ "fmix": "^0.1.0",
+ "imul": "^1.0.0"
+ }
+ },
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
+ "name-wrapper": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/name-wrapper/-/name-wrapper-1.0.0.tgz",
+ "integrity": "sha512-7wTdz1ees+Q3GXFu/Mp76owXzWqYp+k2bB/W0yRnfFtnzU5Y8ga6VKbgl+UWYuCfndy0ylRSQpHPom/mEsDVqg==",
+ "requires": {
+ "@ensdomains/ens-contracts": "0.0.3",
+ "@nomiclabs/hardhat-ethers": "^2.0.0",
+ "@nomiclabs/hardhat-waffle": "^2.0.0",
+ "@openzeppelin/contracts": "^4.0.0",
+ "chalk": "^4.1.0",
+ "ethereum-waffle": "^3.1.1",
+ "ethers": "^5.0.17",
+ "hardhat": "^2.0.4",
+ "node-watch": "^0.7.0",
+ "qrcode-terminal": "^0.12.0",
+ "ramda": "^0.27.1",
+ "solium": "^1.2.5"
+ },
+ "dependencies": {
+ "@ensdomains/buffer": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/@ensdomains/buffer/-/buffer-0.0.10.tgz",
+ "integrity": "sha512-EOFqiWnN36EyyBAgHFTsabFcFICUALt41SiDm/4pAw4V36R4lD4wHcnZcqCYki9m1fMaeWGHrdqxmrMa8iiSTQ=="
+ },
+ "@ensdomains/ens-contracts": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@ensdomains/ens-contracts/-/ens-contracts-0.0.3.tgz",
+ "integrity": "sha512-da67JjAFjl8gLDDAqYQs5PSvth9usBcD7clXiXpfvJTMJnZnR+c/cG6xrkVgL4qEP7jmI+iEoj0y29qFtupy2w==",
+ "requires": {
+ "@ensdomains/buffer": "^0.0.10",
+ "@openzeppelin/contracts": "^4.1.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
"nan": {
"version": "2.15.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
- "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ=="
+ "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
+ "optional": true
},
"nano-base32": {
"version": "1.0.1",
@@ -44639,7 +45304,6 @@
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
"integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
- "optional": true,
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -44654,66 +45318,25 @@
"to-regex": "^3.0.1"
},
"dependencies": {
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "optional": true,
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- }
- },
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
},
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
}
}
},
+ "napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
+ "optional": true,
+ "peer": true
+ },
"natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -44728,12 +45351,13 @@
"neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
},
"next-tick": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
"nice-try": {
"version": "1.0.5",
@@ -44748,6 +45372,25 @@
"lower-case": "^1.1.1"
}
},
+ "node-abi": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
+ "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "semver": "^5.4.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "optional": true,
+ "peer": true
+ }
+ }
+ },
"node-addon-api": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
@@ -44787,107 +45430,40 @@
}
},
"node-gyp-build": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz",
- "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q=="
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
+ "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ=="
},
- "node-libs-browser": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
- "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
- "requires": {
- "assert": "^1.1.1",
- "browserify-zlib": "^0.2.0",
- "buffer": "^4.3.0",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.11.0",
- "domain-browser": "^1.1.1",
- "events": "^3.0.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "0.0.1",
- "process": "^0.11.10",
- "punycode": "^1.2.4",
- "querystring-es3": "^0.2.0",
- "readable-stream": "^2.3.3",
- "stream-browserify": "^2.0.1",
- "stream-http": "^2.7.2",
- "string_decoder": "^1.0.0",
- "timers-browserify": "^2.0.4",
- "tty-browserify": "0.0.0",
- "url": "^0.11.0",
- "util": "^0.11.0",
- "vm-browserify": "^1.0.1"
- },
- "dependencies": {
- "buffer": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
- "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "path-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
- "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ=="
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "util": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
- "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
- "requires": {
- "inherits": "2.0.3"
- }
- }
+ "node-hid": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz",
+ "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.14.0",
+ "node-abi": "^2.18.0",
+ "prebuild-install": "^5.3.4"
}
},
+ "node-watch": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
+ "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ=="
+ },
"nofilter": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz",
"integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA=="
},
+ "noop-logger": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
+ "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
+ "optional": true,
+ "peer": true
+ },
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
@@ -44934,6 +45510,19 @@
"path-key": "^3.0.0"
}
},
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ }
+ },
"nth-check": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
@@ -44977,18 +45566,57 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
- "optional": true,
"requires": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
"kind-of": "^3.0.3"
},
"dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -45009,9 +45637,15 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
- "optional": true,
"requires": {
"isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
}
},
"object.assign": {
@@ -45046,13 +45680,28 @@
"es-abstract": "^1.19.1"
}
},
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
"object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "optional": true,
"requires": {
"isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
}
},
"object.values": {
@@ -45067,9 +45716,9 @@
}
},
"obliterator": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.1.tgz",
- "integrity": "sha512-XnkiCrrBcIZQitJPAI36mrrpEUvatbte8hLcTcQwKA1v9NkCKasSi+UAguLsLDs/out7MoRzAlmz7VXvY6ph6w=="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.3.tgz",
+ "integrity": "sha512-qN5lHhArxl/789Bp3XCpssAYy7cvOdRzxzflmGEJaiipAT2b/USr1XvKjYyssPOwQ/3KjV1e8Ed9po9rie6E6A=="
},
"oboe": {
"version": "2.1.5",
@@ -45080,9 +45729,9 @@
}
},
"on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"requires": {
"ee-first": "1.1.1"
}
@@ -45127,11 +45776,6 @@
"word-wrap": "^1.2.3"
}
},
- "os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
- },
"os-locale": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
@@ -45240,17 +45884,45 @@
"resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
"integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104="
},
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
"parse-headers": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz",
- "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw=="
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
+ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
},
"parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
"requires": {
- "error-ex": "^1.2.0"
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
}
},
"parse5": {
@@ -45283,8 +45955,7 @@
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
- "optional": true
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
},
"patch-package": {
"version": "6.4.7",
@@ -45400,12 +46071,6 @@
"no-case": "^2.2.0"
}
},
- "path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
- "optional": true
- },
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -45461,6 +46126,11 @@
"sha.js": "^2.4.8"
}
},
+ "pegjs": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz",
+ "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0="
+ },
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@@ -45499,14 +46169,37 @@
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
- "optional": true
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
},
"postinstall-postinstall": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz",
"integrity": "sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ=="
},
+ "prebuild-install": {
+ "version": "5.3.6",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz",
+ "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "detect-libc": "^1.0.3",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^2.7.0",
+ "noop-logger": "^0.1.1",
+ "npmlog": "^4.0.1",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^3.0.3",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0",
+ "which-pm-runs": "^1.0.0"
+ }
+ },
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -45518,6 +46211,11 @@
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
},
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ },
"prettier": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz",
@@ -45546,12 +46244,6 @@
"string-width": "^4.2.3"
},
"dependencies": {
- "emoji-regex": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.0.0.tgz",
- "integrity": "sha512-KmJa8l6uHi1HrBI34udwlzZY1jOEuID/ft4d8BSSEdRyap7PwBEt910453PJa5MuGvxkLqlt4Uvhu7tttFHViw==",
- "dev": true
- },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -45560,11 +46252,6 @@
}
}
},
- "printj": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/printj/-/printj-1.3.1.tgz",
- "integrity": "sha512-GA3TdL8szPK4AQ2YnOe/b+Y1jUFwmmGMMK/qbY7VcE3Z7FU8JstbKiKRzO6CIiAKPhTO8m01NoQ0V5f3jc4OGg=="
- },
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@@ -45648,9 +46335,14 @@
"integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
},
"pure-rand": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.0.tgz",
- "integrity": "sha512-lD2/y78q+7HqBx2SaT6OT4UcwtvXNRfEpzYEzl0EQ+9gZq2Qi3fa0HDnYPeqQwhlHJFBUhT7AO3mLU3+8bynHA=="
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.1.tgz",
+ "integrity": "sha512-ksWccjmXOHU2gJBnH0cK1lSYdvSZ0zLoCMSz/nTGh6hDvCSgcRxDyIcOBD6KNxFz3xhMPm/T267Tbe2JRymKEQ=="
+ },
+ "qrcode-terminal": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
+ "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ=="
},
"qs": {
"version": "6.10.3",
@@ -45675,17 +46367,34 @@
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
"integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
},
- "querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
- },
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true
},
+ "ramda": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
+ "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA=="
+ },
+ "randomatic": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "requires": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
+ }
+ }
+ },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -45709,16 +46418,38 @@
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
- "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"requires": {
- "bytes": "3.1.1",
- "http-errors": "1.8.1",
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
}
},
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "optional": true,
+ "peer": true
+ }
+ }
+ },
"read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
@@ -45826,35 +46557,21 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "requires": {
+ "is-equal-shallow": "^0.1.3"
+ }
+ },
"regex-not": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
- "optional": true,
"requires": {
"extend-shallow": "^3.0.2",
"safe-regex": "^1.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
}
},
"regexpp": {
@@ -45866,14 +46583,12 @@
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
- "optional": true
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8="
},
"repeat-element": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
- "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
- "optional": true
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ=="
},
"repeat-string": {
"version": "1.6.1",
@@ -45976,9 +46691,9 @@
"integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg="
},
"require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
},
"resolve": {
"version": "1.22.0",
@@ -45999,8 +46714,7 @@
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "optional": true
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
},
"responselike": {
"version": "1.0.2",
@@ -46023,8 +46737,7 @@
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "optional": true
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
},
"reusify": {
"version": "1.0.4",
@@ -46038,14 +46751,6 @@
"integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
"dev": true
},
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "requires": {
- "align-text": "^0.1.1"
- }
- },
"rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -46098,12 +46803,18 @@
"integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA=="
},
"rxjs": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz",
- "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==",
- "dev": true,
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"requires": {
- "tslib": "^2.1.0"
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
}
},
"safe-buffer": {
@@ -46115,7 +46826,6 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
- "optional": true,
"requires": {
"ret": "~0.1.10"
}
@@ -46153,44 +46863,876 @@
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
"dev": true
},
- "esprima": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "dev": true,
+ "requires": {
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "scrypt-js": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
+ "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
+ },
+ "scryptsy": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz",
+ "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=",
+ "requires": {
+ "pbkdf2": "^3.0.3"
+ }
+ },
+ "secp256k1": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
+ "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
+ "requires": {
+ "elliptic": "^6.5.4",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "semaphore-async-await": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz",
+ "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo="
+ },
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ }
+ }
+ },
+ "sentence-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz",
+ "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=",
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case-first": "^1.1.2"
+ }
+ },
+ "serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ }
+ },
+ "servify": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
+ "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
+ "requires": {
+ "body-parser": "^1.16.0",
+ "cors": "^2.8.1",
+ "express": "^4.14.0",
+ "request": "^2.79.0",
+ "xhr": "^2.3.3"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "sha1": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz",
+ "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=",
+ "requires": {
+ "charenc": ">= 0.0.1",
+ "crypt": ">= 0.0.1"
+ }
+ },
+ "sha3": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz",
+ "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==",
+ "requires": {
+ "buffer": "6.0.3"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
+ "simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+ },
+ "simple-get": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
+ "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "decompress-response": "^4.2.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz",
+ "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
+ "dev": true
+ }
+ }
+ },
+ "snake-case": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=",
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "sol-digger": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/sol-digger/-/sol-digger-0.0.2.tgz",
+ "integrity": "sha1-QGxKnTHiaef4jrHC6hATGOXgkCU="
+ },
+ "sol-explore": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sol-explore/-/sol-explore-1.6.1.tgz",
+ "integrity": "sha1-tZ8HPGn+MyVg1aEMMrqMp/KYbPs="
+ },
+ "solc": {
+ "version": "0.8.13",
+ "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.13.tgz",
+ "integrity": "sha512-C0yTN+rjEOGO6uVOXI8+EKa75SFMuZpQ2tryex4QxWIg0HRWZvCHKfVPuLZ5wx06Sb6GBp6uQA5yqQyXZnXOJw==",
+ "requires": {
+ "command-exists": "^1.2.8",
+ "commander": "^8.1.0",
+ "follow-redirects": "^1.12.1",
+ "js-sha3": "0.8.0",
+ "memorystream": "^0.3.1",
+ "semver": "^5.5.0",
+ "tmp": "0.0.33"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "solhint": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.3.7.tgz",
+ "integrity": "sha512-NjjjVmXI3ehKkb3aNtRJWw55SUVJ8HMKKodwe0HnejA+k0d2kmhw7jvpa+MCTbcEgt8IWSwx0Hu6aCo/iYOZzQ==",
+ "dev": true,
+ "requires": {
+ "@solidity-parser/parser": "^0.14.1",
+ "ajv": "^6.6.1",
+ "antlr4": "4.7.1",
+ "ast-parents": "0.0.1",
+ "chalk": "^2.4.2",
+ "commander": "2.18.0",
+ "cosmiconfig": "^5.0.7",
+ "eslint": "^5.6.0",
+ "fast-diff": "^1.1.2",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.6",
+ "js-yaml": "^3.12.0",
+ "lodash": "^4.17.11",
+ "prettier": "^1.14.3",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz",
+ "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "dev": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "eslint": {
+ "version": "5.16.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
+ "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.9.1",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^4.0.3",
+ "eslint-utils": "^1.3.1",
+ "eslint-visitor-keys": "^1.0.0",
+ "espree": "^5.0.1",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob": "^7.1.2",
+ "globals": "^11.7.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^6.2.2",
+ "js-yaml": "^3.13.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.11",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.2",
+ "path-is-inside": "^1.0.2",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^5.5.1",
+ "strip-ansi": "^4.0.0",
+ "strip-json-comments": "^2.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
+ "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
+ "dev": true,
+ "requires": {
+ "acorn": "^6.0.7",
+ "acorn-jsx": "^5.0.0",
+ "eslint-visitor-keys": "^1.0.0"
+ }
+ },
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
"dev": true
},
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "prettier": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
+ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "dev": true,
+ "optional": true
+ },
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "glob": "^7.1.3"
}
},
- "has-flag": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
},
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
"dev": true,
"requires": {
- "has-flag": "^1.0.0"
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
}
},
"which": {
@@ -46204,832 +47746,752 @@
}
}
},
- "scrypt-js": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
- "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
- },
- "scryptsy": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz",
- "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=",
- "requires": {
- "pbkdf2": "^3.0.3"
- }
- },
- "secp256k1": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
- "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
+ "solhint-plugin-prettier": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz",
+ "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==",
+ "dev": true,
"requires": {
- "elliptic": "^6.5.4",
- "node-addon-api": "^2.0.0",
- "node-gyp-build": "^4.2.0"
+ "prettier-linter-helpers": "^1.0.0"
}
},
- "semaphore-async-await": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz",
- "integrity": "sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo="
+ "solidity-comments-extractor": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz",
+ "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==",
+ "dev": true
},
- "semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "solidity-coverage": {
+ "version": "0.7.21",
+ "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.21.tgz",
+ "integrity": "sha512-O8nuzJ9yXiKUx3NdzVvHrUW0DxoNVcGzq/I7NzewNO9EZE3wYAQ4l8BwcnV64r4aC/HB6Vnw/q2sF0BQHv/3fg==",
+ "dev": true,
"requires": {
- "lru-cache": "^6.0.0"
+ "@solidity-parser/parser": "^0.14.0",
+ "@truffle/provider": "^0.2.24",
+ "chalk": "^2.4.2",
+ "death": "^1.1.0",
+ "detect-port": "^1.3.0",
+ "fs-extra": "^8.1.0",
+ "ghost-testrpc": "^0.0.2",
+ "global-modules": "^2.0.0",
+ "globby": "^10.0.1",
+ "jsonschema": "^1.2.4",
+ "lodash": "^4.17.15",
+ "node-emoji": "^1.10.0",
+ "pify": "^4.0.1",
+ "recursive-readdir": "^2.2.2",
+ "sc-istanbul": "^0.4.5",
+ "semver": "^7.3.4",
+ "shelljs": "^0.8.3",
+ "web3-utils": "^1.3.0"
},
"dependencies": {
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
"requires": {
- "yallist": "^4.0.0"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
}
},
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- }
- }
- },
- "send": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
- "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
- "requires": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "1.8.1",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "globby": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
+ "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
+ "dev": true,
"requires": {
- "ms": "2.0.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
+ "@types/glob": "^7.1.1",
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.0.3",
+ "glob": "^7.1.3",
+ "ignore": "^5.1.1",
+ "merge2": "^1.2.3",
+ "slash": "^3.0.0"
}
},
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- }
- }
- },
- "sentence-case": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz",
- "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=",
- "requires": {
- "no-case": "^2.2.0",
- "upper-case-first": "^1.1.2"
- }
- },
- "serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "serve-static": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
- "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.2"
- }
- },
- "servify": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz",
- "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==",
- "requires": {
- "body-parser": "^1.16.0",
- "cors": "^2.8.1",
- "express": "^4.14.0",
- "request": "^2.79.0",
- "xhr": "^2.3.3"
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
- },
- "set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
- "optional": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- }
- },
- "setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "sha1": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz",
- "integrity": "sha1-rdqnqTFo85PxnrKxUJFhjicA+Eg=",
- "requires": {
- "charenc": ">= 0.0.1",
- "crypt": ">= 0.0.1"
- }
- },
- "sha3": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz",
- "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==",
- "requires": {
- "buffer": "6.0.3"
- },
- "dependencies": {
- "buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
"requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
+ "graceful-fs": "^4.1.6"
}
- }
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "shelljs": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
- "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
- "dev": true,
- "requires": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- }
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
- },
- "simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
- },
- "simple-get": {
- "version": "2.8.2",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
- "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
- "requires": {
- "decompress-response": "^3.3.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
- },
- "slice-ansi": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
- "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz",
- "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
}
}
},
- "snake-case": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
- "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=",
- "requires": {
- "no-case": "^2.2.0"
- }
- },
- "snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
- "optional": true,
- "requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
+ "solium": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/solium/-/solium-1.2.5.tgz",
+ "integrity": "sha512-NuNrm7fp8JcDN/P+SAdM5TVa4wYDtwVtLY/rG4eBOZrC5qItsUhmQKR/YhjszaEW4c8tNUYhkhQcwOsS25znpw==",
+ "requires": {
+ "ajv": "^5.2.2",
+ "chokidar": "^1.6.0",
+ "colors": "^1.1.2",
+ "commander": "^2.9.0",
+ "diff": "^3.5.0",
+ "eol": "^0.9.1",
+ "js-string-escape": "^1.0.1",
+ "lodash": "^4.14.2",
+ "sol-digger": "0.0.2",
+ "sol-explore": "1.6.1",
+ "solium-plugin-security": "0.1.1",
+ "solparse": "2.2.8",
+ "text-table": "^0.2.0"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "optional": true,
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
- "ms": "2.0.0"
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "optional": true
+ "anymatch": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "requires": {
+ "micromatch": "^2.1.5",
+ "normalize-path": "^2.0.0"
+ }
},
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "optional": true
- }
- }
- },
- "snapdragon-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
- "optional": true,
- "requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "optional": true,
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "chokidar": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "requires": {
+ "anymatch": "^1.3.0",
+ "async-each": "^1.0.0",
+ "fsevents": "^1.0.0",
+ "glob-parent": "^2.0.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
- "is-descriptor": "^1.0.0"
+ "ms": "2.0.0"
}
},
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"requires": {
- "kind-of": "^6.0.0"
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
}
},
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
"optional": true,
"requires": {
- "kind-of": "^6.0.0"
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
}
},
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "is-glob": "^2.0.0"
}
- }
- }
- },
- "snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
- "optional": true,
- "requires": {
- "kind-of": "^3.2.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"requires": {
- "is-buffer": "^1.1.5"
+ "kind-of": "^3.0.2"
}
- }
- }
- },
- "solc": {
- "version": "0.4.26",
- "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz",
- "integrity": "sha512-o+c6FpkiHd+HPjmjEVpQgH7fqZ14tJpXhho+/bQXlXbliLIS/xjXb42Vxh+qQY1WCSTMQ0+a5vR9vi0MfhU6mA==",
- "requires": {
- "fs-extra": "^0.30.0",
- "memorystream": "^0.3.1",
- "require-from-string": "^1.1.0",
- "semver": "^5.3.0",
- "yargs": "^4.7.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
},
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
+ "binary-extensions": "^1.0.0"
}
},
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "fs-extra": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
- "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0",
- "path-is-absolute": "^1.0.0",
- "rimraf": "^2.2.8"
+ "kind-of": "^3.0.2"
}
},
- "get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
- },
- "is-fullwidth-code-point": {
+ "is-extglob": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"requires": {
- "number-is-nan": "^1.0.0"
+ "is-extglob": "^1.0.0"
}
},
- "jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"requires": {
- "graceful-fs": "^4.1.6"
+ "kind-of": "^3.0.2"
}
},
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
},
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
- "glob": "^7.1.3"
+ "is-buffer": "^1.1.5"
}
},
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ }
},
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "remove-trailing-separator": "^1.0.1"
}
},
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
- "ansi-regex": "^2.0.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ }
}
},
- "y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
- "yargs": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz",
- "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=",
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "lodash.assign": "^4.0.3",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.1",
- "which-module": "^1.0.0",
- "window-size": "^0.2.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^2.4.1"
+ "safe-buffer": "~5.1.0"
}
},
- "yargs-parser": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
- "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
"requires": {
- "camelcase": "^3.0.0",
- "lodash.assign": "^4.0.6"
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
}
}
}
},
- "solhint": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/solhint/-/solhint-3.3.7.tgz",
- "integrity": "sha512-NjjjVmXI3ehKkb3aNtRJWw55SUVJ8HMKKodwe0HnejA+k0d2kmhw7jvpa+MCTbcEgt8IWSwx0Hu6aCo/iYOZzQ==",
- "dev": true,
+ "solium-plugin-security": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/solium-plugin-security/-/solium-plugin-security-0.1.1.tgz",
+ "integrity": "sha512-kpLirBwIq4mhxk0Y/nn5cQ6qdJTI+U1LO3gpoNIcqNaW+sI058moXBe2UiHs+9wvF9IzYD49jcKhFTxcR9u9SQ==",
+ "requires": {}
+ },
+ "solparse": {
+ "version": "2.2.8",
+ "resolved": "https://registry.npmjs.org/solparse/-/solparse-2.2.8.tgz",
+ "integrity": "sha512-Tm6hdfG72DOxD40SD+T5ddbekWglNWjzDRSNq7ZDIOHVsyaJSeeunUuWNj4DE7uDrJK3tGQuX0ZTDZWNYsGPMA==",
"requires": {
- "@solidity-parser/parser": "^0.14.1",
- "ajv": "^6.6.1",
- "antlr4": "4.7.1",
- "ast-parents": "0.0.1",
- "chalk": "^2.4.2",
- "commander": "2.18.0",
- "cosmiconfig": "^5.0.7",
- "eslint": "^5.6.0",
- "fast-diff": "^1.1.2",
- "glob": "^7.1.3",
- "ignore": "^4.0.6",
- "js-yaml": "^3.12.0",
- "lodash": "^4.17.11",
- "prettier": "^1.14.3",
- "semver": "^6.3.0"
+ "mocha": "^4.0.1",
+ "pegjs": "^0.10.0",
+ "yargs": "^10.0.3"
},
"dependencies": {
- "acorn": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
- "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
- "dev": true
- },
"ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
- "astral-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
- "dev": true
+ "browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8="
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
},
"commander": {
- "version": "2.18.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz",
- "integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==",
- "dev": true
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="
},
"cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "dev": true,
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
+ "lru-cache": "^4.0.1",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
- "dev": true
- },
- "eslint": {
- "version": "5.16.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
- "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "ajv": "^6.9.1",
- "chalk": "^2.1.0",
- "cross-spawn": "^6.0.5",
- "debug": "^4.0.1",
- "doctrine": "^3.0.0",
- "eslint-scope": "^4.0.3",
- "eslint-utils": "^1.3.1",
- "eslint-visitor-keys": "^1.0.0",
- "espree": "^5.0.1",
- "esquery": "^1.0.1",
- "esutils": "^2.0.2",
- "file-entry-cache": "^5.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob": "^7.1.2",
- "globals": "^11.7.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "inquirer": "^6.2.2",
- "js-yaml": "^3.13.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.3.0",
- "lodash": "^4.17.11",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.1",
- "natural-compare": "^1.4.0",
- "optionator": "^0.8.2",
- "path-is-inside": "^1.0.2",
- "progress": "^2.0.0",
- "regexpp": "^2.0.1",
- "semver": "^5.5.1",
- "strip-ansi": "^4.0.0",
- "strip-json-comments": "^2.0.1",
- "table": "^5.2.3",
- "text-table": "^0.2.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
}
},
- "eslint-scope": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
- "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
- "dev": true,
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
+ "ms": "2.0.0"
}
},
- "eslint-utils": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
- "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
+ "diff": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww=="
},
- "espree": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
- "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
- "dev": true,
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
"requires": {
- "acorn": "^6.0.7",
- "acorn-jsx": "^5.0.0",
- "eslint-visitor-keys": "^1.0.0"
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
}
},
- "file-entry-cache": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
- "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
- "dev": true,
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"requires": {
- "flat-cache": "^2.0.1"
+ "locate-path": "^2.0.0"
}
},
- "flat-cache": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
- "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
- "dev": true,
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "flatted": "^2.0.0",
- "rimraf": "2.6.3",
- "write": "1.0.3"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
- "flatted": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
- "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
- "dev": true
+ "growl": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q=="
},
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
},
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "dev": true,
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
}
},
- "optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
"requires": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
}
},
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "dev": true
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "dev": true
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
},
- "prettier": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
- "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
- "dev": true,
- "optional": true
+ "mocha": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
+ "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
+ "requires": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.11.0",
+ "debug": "3.1.0",
+ "diff": "3.3.1",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.3",
+ "he": "1.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "4.4.0"
+ }
},
- "regexpp": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
- "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
- "dev": true
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
- "rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "dev": true,
+ "npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
"requires": {
- "glob": "^7.1.3"
+ "path-key": "^2.0.0"
}
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "os-locale": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
},
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "dev": true,
"requires": {
"shebang-regex": "^1.0.0"
}
@@ -47037,170 +48499,114 @@
"shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "dev": true
- },
- "slice-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
- "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.0",
- "astral-regex": "^1.0.0",
- "is-fullwidth-code-point": "^2.0.0"
- }
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
},
"string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
- "dev": true,
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"requires": {
- "emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- },
- "dependencies": {
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "dev": true
- },
- "table": {
- "version": "5.4.6",
- "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
- "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
- "dev": true,
- "requires": {
- "ajv": "^6.10.2",
- "lodash": "^4.17.14",
- "slice-ansi": "^2.1.0",
- "string-width": "^3.0.0"
+ "strip-ansi": "^4.0.0"
}
},
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "dev": true,
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"requires": {
- "prelude-ls": "~1.1.2"
+ "has-flag": "^2.0.0"
}
},
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
"requires": {
"isexe": "^2.0.0"
}
- }
- }
- },
- "solhint-plugin-prettier": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz",
- "integrity": "sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA==",
- "dev": true,
- "requires": {
- "prettier-linter-helpers": "^1.0.0"
- }
- },
- "solidity-comments-extractor": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz",
- "integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==",
- "dev": true
- },
- "solidity-coverage": {
- "version": "0.7.20",
- "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.20.tgz",
- "integrity": "sha512-edOXTugUYdqxrtEnIn4vgrGjLPxdexcL0WD8LzAvVA3d1dwgcfRO3k8xQR02ZQnOnWMBi8Cqs0F+kAQQp3JW8g==",
- "dev": true,
- "requires": {
- "@solidity-parser/parser": "^0.14.0",
- "@truffle/provider": "^0.2.24",
- "chalk": "^2.4.2",
- "death": "^1.1.0",
- "detect-port": "^1.3.0",
- "fs-extra": "^8.1.0",
- "ghost-testrpc": "^0.0.2",
- "global-modules": "^2.0.0",
- "globby": "^10.0.1",
- "jsonschema": "^1.2.4",
- "lodash": "^4.17.15",
- "node-emoji": "^1.10.0",
- "pify": "^4.0.1",
- "recursive-readdir": "^2.2.2",
- "sc-istanbul": "^0.4.5",
- "semver": "^7.3.4",
- "shelljs": "^0.8.3",
- "web3-utils": "^1.3.0"
- },
- "dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
}
},
- "globby": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz",
- "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==",
- "dev": true,
+ "y18n": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+ "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "yargs": {
+ "version": "10.1.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz",
+ "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==",
"requires": {
- "@types/glob": "^7.1.1",
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.0.3",
- "glob": "^7.1.3",
- "ignore": "^5.1.1",
- "merge2": "^1.2.3",
- "slash": "^3.0.0"
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^8.1.0"
}
},
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "dev": true,
+ "yargs-parser": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz",
+ "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==",
"requires": {
- "graceful-fs": "^4.1.6"
+ "camelcase": "^4.1.0"
}
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true
}
}
},
- "source-list-map": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
- },
"source-map": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
@@ -47215,7 +48621,6 @@
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
"integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
- "optional": true,
"requires": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0",
@@ -47243,8 +48648,7 @@
"source-map-url": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
- "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
- "optional": true
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="
},
"spdx-correct": {
"version": "3.1.1",
@@ -47278,30 +48682,8 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "optional": true,
"requires": {
"extend-shallow": "^3.0.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
}
},
"sprintf-js": {
@@ -47351,101 +48733,82 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
- "optional": true,
"requires": {
"define-property": "^0.2.5",
"object-copy": "^0.1.0"
- }
- },
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
- },
- "stealthy-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
- "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
- },
- "stream-browserify": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
- "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
- "requires": {
- "inherits": "~2.0.1",
- "readable-stream": "^2.0.2"
},
"dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "is-descriptor": "^0.1.0"
}
},
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"requires": {
- "safe-buffer": "~5.1.0"
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
- }
- }
- },
- "stream-http": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
- "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
- "requires": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.6",
- "to-arraybuffer": "^1.0.0",
- "xtend": "^4.0.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
"requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
}
},
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
}
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
}
}
},
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
+ },
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
@@ -47485,6 +48848,11 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -47529,7 +48897,8 @@
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
},
"strip-eof": {
"version": "1.0.0",
@@ -47605,6 +48974,14 @@
"xhr-request": "^1.0.1"
},
"dependencies": {
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
"fs-extra": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
@@ -47659,6 +49036,11 @@
"graceful-fs": "^4.1.6"
}
},
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ },
"p-cancelable": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz",
@@ -47724,9 +49106,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz",
- "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -47805,11 +49187,6 @@
}
}
},
- "tapable": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
- "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A=="
- },
"tar": {
"version": "4.4.19",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
@@ -47824,6 +49201,33 @@
"yallist": "^3.1.1"
}
},
+ "tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
"test-value": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
@@ -47851,8 +49255,7 @@
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
- "dev": true
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
},
"then-request": {
"version": "6.0.2",
@@ -47900,14 +49303,6 @@
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
"integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
},
- "timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
- "requires": {
- "setimmediate": "^1.0.4"
- }
- },
"title-case": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
@@ -47925,16 +49320,10 @@
"os-tmpdir": "~1.0.2"
}
},
- "to-arraybuffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
- },
"to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "optional": true,
"requires": {
"kind-of": "^3.0.2"
},
@@ -47943,7 +49332,6 @@
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
"requires": {
"is-buffer": "^1.1.5"
}
@@ -47959,72 +49347,11 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
- "optional": true,
"requires": {
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
"regex-not": "^1.0.2",
"safe-regex": "^1.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "optional": true,
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- }
- },
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
}
},
"to-regex-range": {
@@ -48128,9 +49455,9 @@
},
"dependencies": {
"acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true
},
"diff": {
@@ -48154,9 +49481,9 @@
}
},
"tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"tsort": {
"version": "0.0.1",
@@ -48180,11 +49507,6 @@
}
}
},
- "tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
- },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -48303,112 +49625,49 @@
}
},
"typescript": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
- "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw=="
+ "version": "4.6.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
+ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg=="
},
"typical": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
"integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0="
},
+ "u2f-api": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz",
+ "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==",
+ "peer": true
+ },
"uglify-js": {
- "version": "3.15.1",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz",
- "integrity": "sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==",
+ "version": "3.15.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.4.tgz",
+ "integrity": "sha512-vMOPGDuvXecPs34V74qDKk4iJ/SN4vL3Ow/23ixafENYvtrNvtbcgUeugTcUGRGsOF/5fU8/NYSL5Hyb3l1OJA==",
"dev": true,
"optional": true
},
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "optional": true
- },
- "uglifyjs-webpack-plugin": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
- "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
- "requires": {
- "source-map": "^0.5.6",
- "uglify-js": "^2.8.29",
- "webpack-sources": "^1.0.1"
- },
- "dependencies": {
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
- },
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "requires": {
- "center-align": "^0.1.1",
- "right-align": "^0.1.1",
- "wordwrap": "0.0.2"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- },
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "requires": {
- "source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
- "yargs": "~3.10.0"
- }
- },
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
- },
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
- },
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
- "requires": {
- "camelcase": "^1.0.2",
- "cliui": "^2.1.0",
- "decamelize": "^1.0.0",
- "window-size": "0.1.0"
- }
- }
- }
- },
"ultron": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
"integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
},
"unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"requires": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
}
},
+ "underscore": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.3.tgz",
+ "integrity": "sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA=="
+ },
"undici": {
"version": "4.16.0",
"resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz",
@@ -48418,7 +49677,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "optional": true,
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -48440,7 +49698,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
- "optional": true,
"requires": {
"has-value": "^0.3.1",
"isobject": "^3.0.0"
@@ -48450,7 +49707,6 @@
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
- "optional": true,
"requires": {
"get-value": "^2.0.3",
"has-values": "^0.1.4",
@@ -48461,7 +49717,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "optional": true,
"requires": {
"isarray": "1.0.0"
}
@@ -48471,470 +49726,200 @@
"has-values": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
- "optional": true
- }
- }
- },
- "upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
- "optional": true
- },
- "upper-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
- "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
- },
- "upper-case-first": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
- "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
- "requires": {
- "upper-case": "^1.1.1"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "optional": true
- },
- "url": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- },
- "dependencies": {
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
}
}
- },
- "url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
- "requires": {
- "prepend-http": "^2.0.0"
- }
- },
- "url-set-query": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
- "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
- },
- "url-to-options": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
- },
- "use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "optional": true
- },
- "utf-8-validate": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz",
- "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==",
- "requires": {
- "node-gyp-build": "^4.3.0"
- }
- },
- "utf8": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
- "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
- },
- "util": {
- "version": "0.12.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
- "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
- "requires": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "safe-buffer": "^5.1.2",
- "which-typed-array": "^1.1.2"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
- },
- "v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
- "v8-compile-cache-lib": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
- "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "varint": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
- "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "vm-browserify": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
- "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ=="
- },
- "watchpack": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
- "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
- "requires": {
- "chokidar": "^3.4.1",
- "graceful-fs": "^4.1.2",
- "neo-async": "^2.5.0",
- "watchpack-chokidar2": "^2.0.1"
- }
- },
- "watchpack-chokidar2": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
- "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
- "optional": true,
- "requires": {
- "chokidar": "^2.1.8"
- },
- "dependencies": {
- "anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "optional": true,
- "requires": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- },
- "dependencies": {
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "optional": true,
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
- }
- }
- },
- "binary-extensions": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
- "optional": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "optional": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- }
- },
- "chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "optional": true,
- "requires": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "fsevents": "^1.2.7",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
- }
- },
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
- "optional": true,
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- }
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "optional": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- }
- },
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
- "optional": true,
- "requires": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- },
- "dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "optional": true,
- "requires": {
- "is-extglob": "^2.1.0"
- }
- }
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
- "optional": true,
- "requires": {
- "binary-extensions": "^1.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "optional": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "optional": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "optional": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "optional": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "optional": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "optional": true,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- }
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "optional": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
- "optional": true,
- "requires": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "optional": true
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "optional": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
+ },
+ "upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
+ "requires": {
+ "upper-case": "^1.1.1"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ }
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "url-set-query": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
+ "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
+ },
+ "url-to-options": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
+ "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
+ },
+ "usb": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/usb/-/usb-1.9.2.tgz",
+ "integrity": "sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==",
+ "optional": true,
+ "peer": true,
+ "requires": {
+ "node-addon-api": "^4.2.0",
+ "node-gyp-build": "^4.3.0"
+ },
+ "dependencies": {
+ "node-addon-api": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
+ "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
"optional": true,
- "requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- }
+ "peer": true
}
}
},
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ },
+ "utf-8-validate": {
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz",
+ "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==",
+ "requires": {
+ "node-gyp-build": "^4.3.0"
+ }
+ },
+ "utf8": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz",
+ "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ=="
+ },
+ "util": {
+ "version": "0.12.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
+ "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "is-arguments": "^1.0.4",
+ "is-generator-function": "^1.0.7",
+ "is-typed-array": "^1.1.3",
+ "safe-buffer": "^5.1.2",
+ "which-typed-array": "^1.1.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ },
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "varint": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
"web3": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.0.tgz",
- "integrity": "sha512-n39O7QQNkpsjhiHMJ/6JY6TaLbdX+2FT5iGs8tb3HbIWOhPm4+a7UDbr5Lkm+gLa9aRKWesZs5D5hWyEvg4aJA==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.3.tgz",
+ "integrity": "sha512-UgBvQnKIXncGYzsiGacaiHtm0xzQ/JtGqcSO/ddzQHYxnNuwI72j1Pb4gskztLYihizV9qPNQYHMSCiBlStI9A==",
"requires": {
- "web3-bzz": "1.7.0",
- "web3-core": "1.7.0",
- "web3-eth": "1.7.0",
- "web3-eth-personal": "1.7.0",
- "web3-net": "1.7.0",
- "web3-shh": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-bzz": "1.7.3",
+ "web3-core": "1.7.3",
+ "web3-eth": "1.7.3",
+ "web3-eth-personal": "1.7.3",
+ "web3-net": "1.7.3",
+ "web3-shh": "1.7.3",
+ "web3-utils": "1.7.3"
}
},
"web3-bzz": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.0.tgz",
- "integrity": "sha512-XPhTWUnZa8gnARfiqaag3jJ9+6+a66Li8OikgBUJoMUqPuQTCJPncTbGYqOJIfRFGavEAdlMnfYXx9lvgv2ZPw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.3.tgz",
+ "integrity": "sha512-y2i2IW0MfSqFc1JBhBSQ59Ts9xE30hhxSmLS13jLKWzie24/An5dnoGarp2rFAy20tevJu1zJVPYrEl14jiL5w==",
"requires": {
"@types/node": "^12.12.6",
"got": "9.6.0",
@@ -48942,24 +49927,24 @@
},
"dependencies": {
"@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
}
}
},
"web3-core": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.0.tgz",
- "integrity": "sha512-U/CRL53h3T5KHl8L3njzCBT7fCaHkbE6BGJe3McazvFldRbfTDEHXkUJCyM30ZD0RoLi3aDfTVeFIusmEyCctA==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.3.tgz",
+ "integrity": "sha512-4RNxueGyevD1XSjdHE57vz/YWRHybpcd3wfQS33fgMyHZBVLFDNwhn+4dX4BeofVlK/9/cmPAokLfBUStZMLdw==",
"requires": {
"@types/bn.js": "^4.11.5",
"@types/node": "^12.12.6",
"bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-requestmanager": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-requestmanager": "1.7.3",
+ "web3-utils": "1.7.3"
},
"dependencies": {
"@types/bn.js": {
@@ -48971,134 +49956,37 @@
}
},
"@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
- },
- "bignumber.js": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz",
- "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw=="
- },
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
}
}
},
"web3-core-helpers": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.3.tgz",
- "integrity": "sha512-Ip1IjB3S8vN7Kf1PPjK41U5gskmMk6IJQlxIVuS8/1U7n/o0jC8krqtpRwiMfAgYyw3TXwBFtxSRTvJtnLyXZw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.3.tgz",
+ "integrity": "sha512-qS2t6UKLhRV/6C7OFHtMeoHphkcA+CKUr2vfpxy4hubs3+Nj28K9pgiqFuvZiXmtEEwIAE2A28GBOC3RdcSuFg==",
"requires": {
- "web3-eth-iban": "1.5.3",
- "web3-utils": "1.5.3"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
- "requires": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
- "requires": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
- "ethereum-bloom-filters": "^1.0.6",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "web3-eth-iban": "1.7.3",
+ "web3-utils": "1.7.3"
}
},
"web3-core-method": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.0.tgz",
- "integrity": "sha512-43Om+kZX8wU5u1pJ28TltF9e9pSTRph6b8wrOb6wgXAfPHqMulq6UTBJWjXXIRVN46Eiqv0nflw35hp9bbgnbA==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.3.tgz",
+ "integrity": "sha512-SeF8YL/NVFbj/ddwLhJeS0io8y7wXaPYA2AVT0h2C2ESYkpvOtQmyw2Bc3aXxBmBErKcbOJjE2ABOKdUmLSmMA==",
"requires": {
"@ethersproject/transactions": "^5.0.0-beta.135",
- "web3-core-helpers": "1.7.0",
- "web3-core-promievent": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-core-promievent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.0.tgz",
- "integrity": "sha512-xPH66XeC0K0k29GoRd0vyPQ07yxERPRd4yVPrbMzGAz/e9E4M3XN//XK6+PdfGvGw3fx8VojS+tNIMiw+PujbQ==",
- "requires": {
- "eventemitter3": "4.0.4"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
- }
+ "web3-core-helpers": "1.7.3",
+ "web3-core-promievent": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-utils": "1.7.3"
}
},
"web3-core-promievent": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.3.tgz",
- "integrity": "sha512-CFfgqvk3Vk6PIAxtLLuX+pOMozxkKCY+/GdGr7weMh033mDXEPvwyVjoSRO1PqIKj668/hMGQsVoIgbyxkJ9Mg==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.3.tgz",
+ "integrity": "sha512-+mcfNJLP8h2JqcL/UdMGdRVfTdm+bsoLzAFtLpazE4u9kU7yJUgMMAqnK59fKD3Zpke3DjaUJKwz1TyiGM5wig==",
"requires": {
"eventemitter3": "4.0.4"
},
@@ -49111,157 +49999,59 @@
}
},
"web3-core-requestmanager": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.0.tgz",
- "integrity": "sha512-rA3dBTBPrt+eIfTAQ2/oYNTN/2wbZaYNR3pFZGqG8+2oCK03+7oQyz4sWISKy/nYQhURh4GK01rs9sN4o/Tq9w==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.3.tgz",
+ "integrity": "sha512-bC+jeOjPbagZi2IuL1J5d44f3zfPcgX+GWYUpE9vicNkPUxFBWRG+olhMo7L+BIcD57cTmukDlnz+1xBULAjFg==",
"requires": {
"util": "^0.12.0",
- "web3-core-helpers": "1.7.0",
- "web3-providers-http": "1.7.0",
- "web3-providers-ipc": "1.7.0",
- "web3-providers-ws": "1.7.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
- }
+ "web3-core-helpers": "1.7.3",
+ "web3-providers-http": "1.7.3",
+ "web3-providers-ipc": "1.7.3",
+ "web3-providers-ws": "1.7.3"
}
},
"web3-core-subscriptions": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.0.tgz",
- "integrity": "sha512-6giF8pyJrPmWrRpc2WLoVCvQdMMADp20ZpAusEW72axauZCNlW1XfTjs0i4QHQBfdd2lFp65qad9IuATPhuzrQ==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.3.tgz",
+ "integrity": "sha512-/i1ZCLW3SDxEs5mu7HW8KL4Vq7x4/fDXY+yf/vPoDljlpvcLEOnI8y9r7om+0kYwvuTlM6DUHHafvW0221TyRQ==",
"requires": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.7.0"
+ "web3-core-helpers": "1.7.3"
},
"dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
"eventemitter3": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
}
}
},
"web3-eth": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.0.tgz",
- "integrity": "sha512-3uYwjMjn/MZjKIzXCt4YL9ja/k9X5shfa4lKparZhZE6uesmu+xmSmrEFXA/e9qcveF50jkV7frjkT8H+cLYtw==",
- "requires": {
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-eth-abi": "1.7.0",
- "web3-eth-accounts": "1.7.0",
- "web3-eth-contract": "1.7.0",
- "web3-eth-ens": "1.7.0",
- "web3-eth-iban": "1.7.0",
- "web3-eth-personal": "1.7.0",
- "web3-net": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "dependencies": {
- "@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
- "requires": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
- }
- },
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-abi": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz",
- "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==",
- "requires": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
- }
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.3.tgz",
+ "integrity": "sha512-BCIRMPwaMlTCbswXyGT6jj9chCh9RirbDFkPtvqozfQ73HGW7kP78TXXf9+Xdo1GjutQfxi/fQ9yPdxtDJEpDA==",
+ "requires": {
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-eth-abi": "1.7.3",
+ "web3-eth-accounts": "1.7.3",
+ "web3-eth-contract": "1.7.3",
+ "web3-eth-ens": "1.7.3",
+ "web3-eth-iban": "1.7.3",
+ "web3-eth-personal": "1.7.3",
+ "web3-net": "1.7.3",
+ "web3-utils": "1.7.3"
}
},
"web3-eth-abi": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.3.tgz",
- "integrity": "sha512-i/qhuFsoNrnV130CSRYX/z4SlCfSQ4mHntti5yTmmQpt70xZKYZ57BsU0R29ueSQ9/P+aQrL2t2rqkQkAloUxg==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.3.tgz",
+ "integrity": "sha512-ZlD8DrJro0ocnbZViZpAoMX44x5aYAb73u2tMq557rMmpiluZNnhcCYF/NnVMy6UIkn7SF/qEA45GXA1ne6Tnw==",
"requires": {
"@ethersproject/abi": "5.0.7",
- "web3-utils": "1.5.3"
+ "web3-utils": "1.7.3"
},
"dependencies": {
"@ethersproject/abi": {
@@ -49279,42 +50069,13 @@
"@ethersproject/properties": "^5.0.3",
"@ethersproject/strings": "^5.0.4"
}
- },
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
- "requires": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
- "requires": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
- "ethereum-bloom-filters": "^1.0.6",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
}
}
},
"web3-eth-accounts": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.0.tgz",
- "integrity": "sha512-Zwm7TlQXdXGRuS6+ib1YsR5fQwpfnFyL6UAZg1zERdrUrs3IkCZSL3yCP/8ZYbAjdTEwWljoott2iSqXNH09ug==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.3.tgz",
+ "integrity": "sha512-aDaWjW1oJeh0LeSGRVyEBiTe/UD2/cMY4dD6pQYa8dOhwgMtNQjxIQ7kacBBXe7ZKhjbIFZDhvXN4mjXZ82R2Q==",
"requires": {
"@ethereumjs/common": "^2.5.0",
"@ethereumjs/tx": "^3.3.2",
@@ -49323,12 +50084,17 @@
"ethereumjs-util": "^7.0.10",
"scrypt-js": "^3.0.1",
"uuid": "3.3.2",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-utils": "1.7.3"
},
"dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"eth-lib": {
"version": "0.2.8",
"resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
@@ -49337,439 +50103,151 @@
"bn.js": "^4.11.6",
"elliptic": "^6.4.0",
"xhr-request-promise": "^0.1.2"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- }
- }
- },
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
}
},
"uuid": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- }
- }
}
}
},
"web3-eth-contract": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.0.tgz",
- "integrity": "sha512-2LY1Xwxu5rx468nqHuhvupQAIpytxIUj3mGL9uexszkhrQf05THVe3i4OnUCzkeN6B2cDztNOqLT3j9SSnVQDg==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.3.tgz",
+ "integrity": "sha512-7mjkLxCNMWlQrlfM/MmNnlKRHwFk5XrZcbndoMt3KejcqDP6dPHi2PZLutEcw07n/Sk8OMpSamyF3QiGfmyRxw==",
"requires": {
"@types/bn.js": "^4.11.5",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-promievent": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-eth-abi": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-promievent": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-eth-abi": "1.7.3",
+ "web3-utils": "1.7.3"
},
"dependencies": {
- "@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
- "requires": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
- }
- },
"@types/bn.js": {
"version": "4.11.6",
"resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
"integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"requires": {
- "@types/node": "*"
- }
- },
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-core-promievent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.0.tgz",
- "integrity": "sha512-xPH66XeC0K0k29GoRd0vyPQ07yxERPRd4yVPrbMzGAz/e9E4M3XN//XK6+PdfGvGw3fx8VojS+tNIMiw+PujbQ==",
- "requires": {
- "eventemitter3": "4.0.4"
- }
- },
- "web3-eth-abi": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz",
- "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==",
- "requires": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
- }
- }
- },
- "web3-eth-ens": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.0.tgz",
- "integrity": "sha512-I1bikYJJWQ/FJZIAvwsGOvzAgcRIkosWG4s1L6veRoXaU8OEJFeh4s00KcfHDxg7GWZZGbUSbdbzKpwRbWnvkg==",
- "requires": {
- "content-hash": "^2.5.2",
- "eth-ens-namehash": "2.0.8",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-promievent": "1.7.0",
- "web3-eth-abi": "1.7.0",
- "web3-eth-contract": "1.7.0",
- "web3-utils": "1.7.0"
- },
- "dependencies": {
- "@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
- "requires": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
- }
- },
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "eventemitter3": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
- "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-core-promievent": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.0.tgz",
- "integrity": "sha512-xPH66XeC0K0k29GoRd0vyPQ07yxERPRd4yVPrbMzGAz/e9E4M3XN//XK6+PdfGvGw3fx8VojS+tNIMiw+PujbQ==",
- "requires": {
- "eventemitter3": "4.0.4"
- }
- },
- "web3-eth-abi": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.0.tgz",
- "integrity": "sha512-heqR0bWxgCJwjWIhq2sGyNj9bwun5+Xox/LdZKe+WMyTSy0cXDXEAgv3XKNkXC4JqdDt/ZlbTEx4TWak4TRMSg==",
- "requires": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
+ "@types/node": "*"
}
}
}
},
+ "web3-eth-ens": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.3.tgz",
+ "integrity": "sha512-q7+hFGHIc0mBI3LwgRVcLCQmp6GItsWgUtEZ5bjwdjOnJdbjYddm7PO9RDcTDQ6LIr7hqYaY4WTRnDHZ6BEt5Q==",
+ "requires": {
+ "content-hash": "^2.5.2",
+ "eth-ens-namehash": "2.0.8",
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-promievent": "1.7.3",
+ "web3-eth-abi": "1.7.3",
+ "web3-eth-contract": "1.7.3",
+ "web3-utils": "1.7.3"
+ }
+ },
"web3-eth-iban": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.3.tgz",
- "integrity": "sha512-vMzmGqolYZvRHwP9P4Nf6G8uYM5aTLlQu2a34vz78p0KlDC+eV1th3+90Qeaupa28EG7OO0IT1F0BejiIauOPw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.3.tgz",
+ "integrity": "sha512-1GPVWgajwhh7g53mmYDD1YxcftQniIixMiRfOqlnA1w0mFGrTbCoPeVaSQ3XtSf+rYehNJIZAUeDBnONVjXXmg==",
"requires": {
"bn.js": "^4.11.9",
- "web3-utils": "1.5.3"
+ "web3-utils": "1.7.3"
},
"dependencies": {
"bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
- "requires": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
- }
- },
- "web3-utils": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.3.tgz",
- "integrity": "sha512-56nRgA+Ad9SEyCv39g36rTcr5fpsd4L9LgV3FK0aB66nAMazLAA6Qz4lH5XrUKPDyBIPGJIR+kJsyRtwcu2q1Q==",
- "requires": {
- "bn.js": "^4.11.9",
- "eth-lib": "0.2.8",
- "ethereum-bloom-filters": "^1.0.6",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
}
}
},
"web3-eth-personal": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.0.tgz",
- "integrity": "sha512-Dr9RZTNOR80PhrPKGdktDUXpOgExEcCcosBj080lKCJFU1paSPj9Zfnth3u6BtIOXyKsVFTrpqekqUDyAwXnNw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.3.tgz",
+ "integrity": "sha512-iTLz2OYzEsJj2qGE4iXC1Gw+KZN924fTAl0ESBFs2VmRhvVaM7GFqZz/wx7/XESl3GVxGxlRje3gNK0oGIoYYQ==",
"requires": {
"@types/node": "^12.12.6",
- "web3-core": "1.7.0",
- "web3-core-helpers": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-net": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-core": "1.7.3",
+ "web3-core-helpers": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-net": "1.7.3",
+ "web3-utils": "1.7.3"
},
"dependencies": {
"@types/node": {
- "version": "12.20.43",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.43.tgz",
- "integrity": "sha512-HCfJdaYqJX3BCzeihgZrD7b85Cu05OC/GVJ4kEYIflwUs4jbnUlLLWoq7hw1LBcdvUyehO+gr6P5JQ895/2ZfA=="
- },
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
+ "version": "12.20.50",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.50.tgz",
+ "integrity": "sha512-+9axpWx2b2JCVovr7Ilgt96uc6C1zBKOQMpGtRbWT9IoR/8ue32GGMfGA4woP8QyP2gBs6GQWEVM3tCybGCxDA=="
}
}
},
"web3-net": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.0.tgz",
- "integrity": "sha512-8pmfU1Se7DmG40Pu8nOCKlhuI12VsVzCtdFDnLAai0zGVAOUuuOCK71B2aKm6u9amWBJjtOlyrCwvsG+QEd6dw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.3.tgz",
+ "integrity": "sha512-zAByK0Qrr71k9XW0Adtn+EOuhS9bt77vhBO6epAeQ2/VKl8rCGLAwrl3GbeEl7kWa8s/su72cjI5OetG7cYR0g==",
"requires": {
- "web3-core": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-utils": "1.7.0"
+ "web3-core": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-utils": "1.7.3"
}
},
"web3-providers-http": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.0.tgz",
- "integrity": "sha512-Y9reeEiApfvQKLUUtrU4Z0c+H6b7BMWcsxjgoXndI1C5NB297mIUfltXxfXsh5C/jk5qn4Q3sJp3SwQTyVjH7Q==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.3.tgz",
+ "integrity": "sha512-TQJfMsDQ5Uq9zGMYlu7azx1L7EvxW+Llks3MaWn3cazzr5tnrDbGh6V17x6LN4t8tFDHWx0rYKr3mDPqyTjOZw==",
"requires": {
- "web3-core-helpers": "1.7.0",
+ "web3-core-helpers": "1.7.3",
"xhr2-cookies": "1.1.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
- }
}
},
"web3-providers-ipc": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.0.tgz",
- "integrity": "sha512-U5YLXgu6fvAK4nnMYqo9eoml3WywgTym0dgCdVX/n1UegLIQ4nctTubBAuWQEJzmAzwh+a6ValGcE7ZApTRI7Q==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.3.tgz",
+ "integrity": "sha512-Z4EGdLKzz6I1Bw+VcSyqVN4EJiT2uAro48Am1eRvxUi4vktGoZtge1ixiyfrRIVb6nPe7KnTFl30eQBtMqS0zA==",
"requires": {
"oboe": "2.1.5",
- "web3-core-helpers": "1.7.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
- }
+ "web3-core-helpers": "1.7.3"
}
},
"web3-providers-ws": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.0.tgz",
- "integrity": "sha512-0a8+lVV3JBf+eYnGOsdzOpftK1kis5X7s35QAdoaG5SDapnEylXFlR4xDSSSU88ZwMwvse8hvng2xW6A7oeWxw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.3.tgz",
+ "integrity": "sha512-PpykGbkkkKtxPgv7U4ny4UhnkqSZDfLgBEvFTXuXLAngbX/qdgfYkhIuz3MiGplfL7Yh93SQw3xDjImXmn2Rgw==",
"requires": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.7.0",
+ "web3-core-helpers": "1.7.3",
"websocket": "^1.0.32"
},
"dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
"eventemitter3": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
- },
- "web3-core-helpers": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.0.tgz",
- "integrity": "sha512-kFiqsZFHJliKF8VKZNjt2JvKu3gu7h3N1/ke3EPhdp9Li/rLmiyzFVr6ApryZ1FSjbSx6vyOkibG3m6xQ5EHJA==",
- "requires": {
- "web3-eth-iban": "1.7.0",
- "web3-utils": "1.7.0"
- }
- },
- "web3-eth-iban": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.0.tgz",
- "integrity": "sha512-1PFE/Og+sPZaug+M9TqVUtjOtq0HecE+SjDcsOOysXSzslNC2CItBGkcRwbvUcS+LbIkA7MFsuqYxOL0IV/gyA==",
- "requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.7.0"
- }
}
}
},
"web3-shh": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.0.tgz",
- "integrity": "sha512-RZhxcevALIPK178VZCpwMBvQeW+IoWtRJ4EMdegpbnETeZaC3aRUcs6vKnrf0jXJjm4J/E2Dt438Y1Ord/1IMw==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.3.tgz",
+ "integrity": "sha512-bQTSKkyG7GkuULdZInJ0osHjnmkHij9tAySibpev1XjYdjLiQnd0J9YGF4HjvxoG3glNROpuCyTaRLrsLwaZuw==",
"requires": {
- "web3-core": "1.7.0",
- "web3-core-method": "1.7.0",
- "web3-core-subscriptions": "1.7.0",
- "web3-net": "1.7.0"
+ "web3-core": "1.7.3",
+ "web3-core-method": "1.7.3",
+ "web3-core-subscriptions": "1.7.3",
+ "web3-net": "1.7.3"
}
},
"web3-utils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.0.tgz",
- "integrity": "sha512-O8Tl4Ky40Sp6pe89Olk2FsaUkgHyb5QAXuaKo38ms3CxZZ4d3rPGfjP9DNKGm5+IUgAZBNpF1VmlSmNCqfDI1w==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.3.tgz",
+ "integrity": "sha512-g6nQgvb/bUpVUIxJE+ezVN+rYwYmlFyMvMIRSuqpi1dk6ApDD00YNArrk7sPcZnjvxOJ76813Xs2vIN2rgh4lg==",
"requires": {
"bn.js": "^4.11.9",
"ethereum-bloom-filters": "^1.0.6",
@@ -49784,25 +50262,6 @@
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "ethereumjs-util": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.4.tgz",
- "integrity": "sha512-p6KmuPCX4mZIqsQzXfmSx9Y0l2hqf+VkAiwSisW3UKUFdk8ZkAt+AYaor83z2nSi6CU2zSsXMlD80hAbNEGM0A==",
- "requires": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "rlp": "^2.2.4"
- },
- "dependencies": {
- "bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- }
- }
}
}
},
@@ -49811,401 +50270,6 @@
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
- "webpack": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
- "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
- "requires": {
- "acorn": "^5.0.0",
- "acorn-dynamic-import": "^2.0.0",
- "ajv": "^6.1.0",
- "ajv-keywords": "^3.1.0",
- "async": "^2.1.2",
- "enhanced-resolve": "^3.4.0",
- "escope": "^3.6.0",
- "interpret": "^1.0.0",
- "json-loader": "^0.5.4",
- "json5": "^0.5.1",
- "loader-runner": "^2.3.0",
- "loader-utils": "^1.1.0",
- "memory-fs": "~0.4.1",
- "mkdirp": "~0.5.0",
- "node-libs-browser": "^2.0.0",
- "source-map": "^0.5.3",
- "supports-color": "^4.2.1",
- "tapable": "^0.2.7",
- "uglifyjs-webpack-plugin": "^0.4.6",
- "watchpack": "^1.4.0",
- "webpack-sources": "^1.0.1",
- "yargs": "^8.0.2"
- },
- "dependencies": {
- "acorn": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
- "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
- }
- },
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
- },
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE="
- },
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "requires": {
- "path-key": "^2.0.0"
- }
- },
- "os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
- "requires": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- },
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
- },
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "requires": {
- "pify": "^2.0.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "requires": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
- }
- },
- "require-main-filename": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
- },
- "shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "requires": {
- "shebang-regex": "^1.0.0"
- }
- },
- "shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "^2.0.0"
- }
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
- }
- },
- "y18n": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
- "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- },
- "yargs": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
- "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
- "requires": {
- "camelcase": "^4.1.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^2.0.0",
- "read-pkg-up": "^2.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^7.0.0"
- }
- },
- "yargs-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
- "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
- "requires": {
- "camelcase": "^4.1.0"
- }
- }
- }
- },
- "webpack-sources": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
- "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
- "requires": {
- "source-list-map": "^2.0.0",
- "source-map": "~0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
- }
- },
"websocket": {
"version": "1.0.34",
"resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
@@ -50264,9 +50328,16 @@
}
},
"which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+ },
+ "which-pm-runs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
+ "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
+ "optional": true,
+ "peer": true
},
"which-typed-array": {
"version": "1.1.7",
@@ -50282,27 +50353,13 @@
}
},
"wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "optional": true,
+ "peer": true,
"requires": {
- "string-width": "^1.0.2 || 2"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- }
+ "string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"window-size": {
@@ -50416,6 +50473,31 @@
"timed-out": "^4.0.1",
"url-set-query": "^1.0.0",
"xhr": "^2.0.4"
+ },
+ "dependencies": {
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ },
+ "simple-get": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.2.tgz",
+ "integrity": "sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==",
+ "requires": {
+ "decompress-response": "^3.3.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ }
}
},
"xhr-request-promise": {
diff --git a/package.json b/package.json
index 7e97128e6..282584c1c 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,7 @@
"console:ropsten": "npx hardhat console --network ropsten",
"clean": "forge clean && rm -rf artifacts",
"test": "forge test --no-match-contract IntegrationTest",
- "test:integration": "FORK_BLOCK=14322512; forge test --fork-url https://eth-mainnet.alchemyapi.io/v2/$MAINNET_ALCHEMY_API_KEY --fork-block-number $FORK_BLOCK --match-contract IntegrationTest",
+ "test:integration": "FORK_BLOCK=14516592; forge test --fork-url https://eth-mainnet.alchemyapi.io/v2/$MAINNET_ALCHEMY_API_KEY --fork-block-number $FORK_BLOCK --match-contract IntegrationTest",
"test:integration:latest": "forge test --fork-url https://eth-mainnet.alchemyapi.io/v2/$MAINNET_ALCHEMY_API_KEY --match-contract IntegrationTest",
"test:hardhat": "npx hardhat test",
"test:hardhat:dependencies": "LOGGING=true NO_RESET=true npx hardhat test test/integration/tests/dependencies.ts",
@@ -51,10 +51,14 @@
"dependencies": {
"@balancer-labs/v2-pool-weighted": "^2.0.1",
"@chainlink/contracts": "^0.1.7",
+ "@gnosis.pm/safe-core-sdk": "^2.1.0",
+ "@gnosis.pm/safe-deployments": "^1.12.0",
+ "@gnosis.pm/safe-ethers-lib": "^1.1.0",
"@nomiclabs/hardhat-waffle": "^2.0.3",
- "@openzeppelin/contracts": "^4.4.2",
+ "@openzeppelin/contracts": "4.6.0",
"@openzeppelin/test-environment": "^0.1.7",
"@openzeppelin/test-helpers": "^0.5.15",
+ "@orcaprotocol/contracts": "^5.0.1",
"@rari-capital/solmate": "^6.2.0",
"@uniswap/lib": "^1.1.2",
"@uniswap/v2-core": "^1.0.1",
@@ -70,11 +74,12 @@
"devDependencies": {
"@idle-finance/hardhat-proposals-plugin": "^0.2.3",
"@nomiclabs/hardhat-ethers": "^2.0.5",
+ "@nomiclabs/hardhat-etherscan": "^3.0.3",
"@typechain/ethers-v5": "^7.1.2",
"@typechain/hardhat": "^2.3.0",
"@types/chai": "^4.3.1",
- "@types/mocha": "^9.1.0",
- "@types/node": "^17.0.25",
+ "@types/mocha": "^9.1.1",
+ "@types/node": "^17.0.30",
"@typescript-eslint/eslint-plugin": "^4.31.2",
"@typescript-eslint/parser": "^4.31.2",
"chai-bn": "^0.3.1",
@@ -86,7 +91,7 @@
"ethereum-waffle": "^3.4.4",
"ethers": "^5.6.4",
"husky": "^7.0.4",
- "lint-staged": "^12.4.0",
+ "lint-staged": "^12.4.1",
"mocha": "^9.2.2",
"mocha-junit-reporter": "^2.0.2",
"mocha-multi-reporters": "^1.5.1",
@@ -94,11 +99,11 @@
"prettier-plugin-solidity": "^1.0.0-beta.19",
"solhint": "^3.3.7",
"solhint-plugin-prettier": "^0.0.5",
- "solidity-coverage": "^0.7.20",
+ "solidity-coverage": "^0.7.21",
"ts-node": "^10.7.0",
"tsconfig-paths": "^3.14.1",
"typechain": "^5.2.0",
- "typescript": "^4.6.3"
+ "typescript": "^4.6.4"
},
"lint-staged": {
"*.{ts,tsx}": [
diff --git a/proposals/dao/old/fip_82.ts b/proposals/dao/old/fip_82.ts
new file mode 100644
index 000000000..96202934a
--- /dev/null
+++ b/proposals/dao/old/fip_82.ts
@@ -0,0 +1,233 @@
+import { ethers } from 'hardhat';
+import { expect } from 'chai';
+import {
+ DeployUpgradeFunc,
+ NamedAddresses,
+ SetupUpgradeFunc,
+ TeardownUpgradeFunc,
+ ValidateUpgradeFunc
+} from '@custom-types/types';
+import { getImpersonatedSigner } from '@test/helpers';
+import { tribeCouncilPodConfig, PodCreationConfig } from '@protocol/optimisticGovernance';
+import { abi as inviteTokenABI } from '../../artifacts/@orcaprotocol/contracts/contracts/InviteToken.sol/InviteToken.json';
+import { abi as timelockABI } from '../../artifacts/@openzeppelin/contracts/governance/TimelockController.sol/TimelockController.json';
+import { abi as gnosisSafeABI } from '../../artifacts/contracts/pods/interfaces/IGnosisSafe.sol/IGnosisSafe.json';
+import { Contract, Signer } from 'ethers';
+import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+
+const validateArraysEqual = (arrayA: string[], arrayB: string[]) => {
+ arrayA.every((a) => expect(arrayB.map((b) => b.toLowerCase()).includes(a.toLowerCase())));
+};
+
+// Transfers Orca tokens from deployer address to the factory, so that it can deploy pods
+// Requirement of holding Orca tokens to deploy is a slow rollout mechanism used by Orca
+const transferOrcaTokens = async (
+ orcaERC20Address: string,
+ deploySigner: SignerWithAddress,
+ receiver: string,
+ amount: number
+) => {
+ // Mint Orca Ship tokens to deploy address, to allow to deploy contracts
+ const inviteToken = new ethers.Contract(orcaERC20Address, inviteTokenABI, deploySigner);
+ const deployerBalance = await inviteToken.balanceOf(deploySigner.address);
+ console.log('Orca balance: ', deployerBalance);
+
+ if (deployerBalance.lt(amount)) {
+ // In test environment, mint tokens to deployer
+ const priviledgedOrcaMinter = '0x2149A222feD42fefc3A120B3DdA34482190fC666';
+ const priviledgedSigner = await getImpersonatedSigner(priviledgedOrcaMinter);
+ await inviteToken.connect(priviledgedSigner).mint(deploySigner.address, amount);
+ }
+ const transferTx = await inviteToken.transfer(receiver, amount);
+ await transferTx.wait();
+};
+
+const fipNumber = '82';
+
+const deploy: DeployUpgradeFunc = async (deployAddress: string, addresses: NamedAddresses, logging: boolean) => {
+ const deploySigner = (await ethers.getSigners())[0];
+ // 1. Deploy public pod executor
+ const podExecutorFactory = await ethers.getContractFactory('PodExecutor');
+ const podExecutor = await podExecutorFactory.deploy(addresses.core);
+ await podExecutor.deployTransaction.wait();
+
+ logging && console.log('PodExecutor deployed to', podExecutor.address);
+
+ // 2. Deploy tribalCouncilPodFactory
+ const podFactoryEthersFactory = await ethers.getContractFactory('PodFactory');
+ const podFactory = await podFactoryEthersFactory.deploy(
+ addresses.core, // core
+ addresses.orcaMemberToken, // podMembershipToken
+ addresses.orcaPodController, // podController
+ podExecutor.address // Public pod executor
+ );
+ await podFactory.deployTransaction.wait();
+ logging && console.log('Pod factory deployed to:', podFactory.address);
+
+ // 3. Deploy PodAdminGateway contract
+ const podAdminGatewayFactory = await ethers.getContractFactory('PodAdminGateway');
+ const podAdminGateway = await podAdminGatewayFactory.deploy(
+ addresses.core,
+ addresses.orcaMemberToken,
+ podFactory.address
+ );
+ await podAdminGateway.deployTransaction.wait();
+ logging && console.log(`Deployed PodAdminGateway at ${podAdminGateway.address}`);
+ await transferOrcaTokens(addresses.orcaShipToken, deploySigner, podFactory.address, 1);
+
+ // 4. Create TribalCouncil and Protocol Tier pods
+ const tribalCouncilPod: PodCreationConfig = {
+ members: tribeCouncilPodConfig.placeHolderMembers,
+ threshold: tribeCouncilPodConfig.threshold,
+ label: tribeCouncilPodConfig.label,
+ ensString: tribeCouncilPodConfig.ensString,
+ imageUrl: tribeCouncilPodConfig.imageUrl,
+ minDelay: tribeCouncilPodConfig.minDelay,
+ admin: podAdminGateway.address
+ };
+
+ const genesisTx = await podFactory.deployCouncilPod(tribalCouncilPod);
+ const { args } = (await genesisTx.wait()).events.find((elem) => elem.event === 'CreatePod');
+ const tribalCouncilPodId = args.podId;
+ logging && console.log('TribalCouncil pod Id: ', tribalCouncilPodId.toString());
+
+ const councilTimelockAddress = await podFactory.getPodTimelock(tribalCouncilPodId);
+ const councilSafeAddress = await podFactory.getPodSafe(tribalCouncilPodId);
+
+ logging && console.log('Tribal council timelock deployed to: ', councilTimelockAddress);
+ logging && console.log('Tribal council Gnosis safe is: ', councilSafeAddress);
+
+ // 5. Create contract artifacts for timelock, so address is available to DAO script
+ const tribalCouncilTimelock = new ethers.Contract(councilTimelockAddress, timelockABI, deploySigner);
+ const tribalCouncilSafe = new ethers.Contract(councilSafeAddress, gnosisSafeABI, deploySigner);
+
+ // 6. Deploy GovernanceMetadataRegistry contract
+ const metadataRegistryFactory = await ethers.getContractFactory('GovernanceMetadataRegistry');
+ const governanceMetadataRegistry = await metadataRegistryFactory.deploy(addresses.core);
+ await governanceMetadataRegistry.deployTransaction.wait();
+ logging && console.log('GovernanceMetadataRegistry deployed to:', governanceMetadataRegistry.address);
+
+ // 7. Deploy RoleBastion, to allow TribalCouncil to manage roles
+ const roleBastionFactory = await ethers.getContractFactory('RoleBastion');
+ const roleBastion = await roleBastionFactory.deploy(addresses.core);
+ await roleBastion.deployTransaction.wait();
+ logging && console.log('RoleBastion deployed to:', roleBastion.address);
+
+ // 8. Deploy NopeDAO
+ const nopeDAOFactory = await ethers.getContractFactory('NopeDAO');
+ const nopeDAO = await nopeDAOFactory.deploy(addresses.tribe, addresses.core);
+ await nopeDAO.deployTransaction.wait();
+ logging && console.log('NopeDAO deployed to:', nopeDAO.address);
+
+ return {
+ podExecutor,
+ podFactory,
+ tribalCouncilTimelock,
+ podAdminGateway,
+ tribalCouncilSafe,
+ governanceMetadataRegistry,
+ roleBastion,
+ nopeDAO
+ };
+};
+
+const setup: SetupUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {};
+
+const teardown: TeardownUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {
+ console.log(`No actions to complete in teardown for fip${fipNumber}`);
+};
+
+const validate: ValidateUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {
+ const podFactory = contracts.podFactory;
+ const tribalCouncilPodId = await podFactory.getPodId(addresses.tribalCouncilTimelock);
+ const tribalCouncilSafeAddress = await podFactory.getPodSafe(tribalCouncilPodId);
+
+ // 1. Validate PodAdminGateway has PROPOSER role on TribalCouncil and Protocol Pod
+ /////////////// POD ADMIN GATEWAY //////////////////////
+ const tribalCouncilTimelock = contracts.tribalCouncilTimelock;
+ expect(await tribalCouncilTimelock.hasRole(ethers.utils.id('PROPOSER_ROLE'), addresses.podAdminGateway)).to.be.false;
+ expect(await tribalCouncilTimelock.hasRole(ethers.utils.id('CANCELLER_ROLE'), addresses.podAdminGateway)).to.be.true;
+
+ /////////////// TRIBAL COUNCIL //////////////////
+ const councilPodAdmin = await podFactory.getPodAdmin(tribalCouncilPodId);
+ expect(councilPodAdmin).to.equal(addresses.podAdminGateway);
+
+ expect(await tribalCouncilTimelock.hasRole(ethers.utils.id('PROPOSER_ROLE'), tribalCouncilSafeAddress)).to.be.true;
+ expect(await tribalCouncilTimelock.hasRole(ethers.utils.id('EXECUTOR_ROLE'), tribalCouncilSafeAddress)).to.be.true;
+ expect(await tribalCouncilTimelock.hasRole(ethers.utils.id('CANCELLER_ROLE'), tribalCouncilSafeAddress)).to.be.true;
+
+ expect(await tribalCouncilTimelock.hasRole(ethers.utils.id('EXECUTOR_ROLE'), addresses.podExecutor)).to.be.true;
+
+ const councilMembershipLocked = await podFactory.getIsMembershipTransferLocked(tribalCouncilPodId);
+ expect(councilMembershipLocked).to.be.true;
+
+ // 3. Validate that Tribal Council members are correctly set
+ const councilMembers = await podFactory.getPodMembers(tribalCouncilPodId);
+ validateArraysEqual(councilMembers, tribeCouncilPodConfig.members);
+
+ const numCouncilMembers = await podFactory.getNumMembers(tribalCouncilPodId);
+ expect(numCouncilMembers).to.equal(tribeCouncilPodConfig.numMembers);
+
+ const councilThreshold = await podFactory.getPodThreshold(tribalCouncilPodId);
+ expect(councilThreshold).to.equal(tribeCouncilPodConfig.threshold);
+
+ ////////////////////// PROTOCOL TIER POD ///////////////////////////////
+
+ ///////////// METADATA REGISTRY ////////////////////////
+ const governanceMetadataRegistry = contracts.governanceMetadataRegistry;
+ const isProposalRegistered = await governanceMetadataRegistry.isProposalRegistered(0, 0, 'test');
+ expect(isProposalRegistered).to.be.false;
+
+ await validateTribeRoles(
+ contracts.core,
+ addresses.feiDAOTimelock,
+ addresses.tribalCouncilTimelock,
+ tribalCouncilSafeAddress,
+ addresses.roleBastion,
+ addresses.nopeDAO,
+ addresses.podFactory
+ );
+};
+
+// Validate that the relevant timelocks and Safes have the relevant TribeRoles
+const validateTribeRoles = async (
+ core: Contract,
+ feiDAOTimelockAddress: string,
+ tribalCouncilTimelockAddress: string,
+ tribalCouncilSafeAddress: string,
+ roleBastionAddress: string,
+ nopeDAOAddress: string,
+ podFactoryAddress: string
+) => {
+ // feiDAOTimelock added roles: ROLE_ADMIN
+ const daoIsPodDeployer = await core.hasRole(ethers.utils.id('ROLE_ADMIN'), feiDAOTimelockAddress);
+ expect(daoIsPodDeployer).to.be.true;
+
+ // TribalCouncilTimelock roles: ROLE_ADMIN, POD_ADMIN
+ const councilIsRoleAdmin = await core.hasRole(ethers.utils.id('ROLE_ADMIN'), tribalCouncilTimelockAddress);
+ expect(councilIsRoleAdmin).to.be.true;
+
+ const councilIsPodAdmin = await core.hasRole(ethers.utils.id('POD_ADMIN'), tribalCouncilTimelockAddress);
+ expect(councilIsPodAdmin).to.be.true;
+
+ // TribalCouncil Gnosis Safe roles: POD_METADATA_REGISTER_ROLE
+ const councilHasMetadataRegisterRole = await core.hasRole(
+ ethers.utils.id('POD_METADATA_REGISTER_ROLE'),
+ tribalCouncilSafeAddress
+ );
+ expect(councilHasMetadataRegisterRole).to.be.true;
+
+ // RoleBastion role: GOVERNOR
+ const roleBastion = await core.hasRole(ethers.utils.id('GOVERN_ROLE'), roleBastionAddress);
+ expect(roleBastion).to.be.true;
+
+ // NopeDAO role: POD_VETO_ADMIN
+ const nopeDAOVetoRole = await core.hasRole(ethers.utils.id('POD_VETO_ADMIN'), nopeDAOAddress);
+ expect(nopeDAOVetoRole).to.be.true;
+
+ // PodFactory role: POD_ADMIN
+ const podFactoryAdminRole = await core.hasRole(ethers.utils.id('POD_ADMIN'), podFactoryAddress);
+ expect(podFactoryAdminRole).to.be.true;
+};
+
+export { deploy, setup, teardown, validate };
diff --git a/proposals/dao/old/fip_85.ts b/proposals/dao/old/fip_85.ts
index 9ade1dd8d..af9b225f1 100644
--- a/proposals/dao/old/fip_85.ts
+++ b/proposals/dao/old/fip_85.ts
@@ -55,6 +55,7 @@ const validate: ValidateUpgradeFunc = async (addresses, oldContracts, contracts,
type: 'function'
}
]);
+
expect(await distributor.distributionEndBlock()).to.be.equal('14671500'); // 14671500 = last block of revised distribution period (365 + 60 days)
expect(await distributor.getRgtDistributed(14671500)).to.be.equal('176588181259803942973484');
expect(await distributor.getRgtDistributed(19026500)).to.be.equal('176588181259803942973484');
diff --git a/proposals/dao/fip_92.ts b/proposals/dao/old/fip_92.ts
similarity index 100%
rename from proposals/dao/fip_92.ts
rename to proposals/dao/old/fip_92.ts
diff --git a/proposals/dao/fip_94.ts b/proposals/dao/old/fip_94.ts
similarity index 100%
rename from proposals/dao/fip_94.ts
rename to proposals/dao/old/fip_94.ts
diff --git a/proposals/dao/fip_97.ts b/proposals/dao/old/fip_97.ts
similarity index 100%
rename from proposals/dao/fip_97.ts
rename to proposals/dao/old/fip_97.ts
diff --git a/proposals/dao/old/fip_98.ts b/proposals/dao/old/fip_98.ts
new file mode 100644
index 000000000..4d110ed72
--- /dev/null
+++ b/proposals/dao/old/fip_98.ts
@@ -0,0 +1,80 @@
+import { ethers } from 'hardhat';
+import { expect } from 'chai';
+import {
+ DeployUpgradeFunc,
+ NamedAddresses,
+ SetupUpgradeFunc,
+ TeardownUpgradeFunc,
+ ValidateUpgradeFunc
+} from '@custom-types/types';
+import { getImpersonatedSigner } from '@test/helpers';
+
+/*
+
+DAO Proposal 98
+
+Description:
+
+Steps:
+1. Mint 10.17m FEI into the timelock
+2. Approve OTC escrow contract to spend 10.17m FEI
+3. Call swap on the escrow contract to send the 10.17m FEI
+ to the VOLT PCV Deposit so that the funds do not get invested into fuse
+4. Add OPT as the oracle for Volt in the CR Oracle
+5. Add Volt ERC20PCVDepositWrapper to the CR Oracle so that the Volt value
+ will be reflected in the PCV
+6. Add turboFusePCVDeposit as a safe address in the PCV Guardian
+*/
+
+const fipNumber = '98';
+const seedAmount = ethers.constants.WeiPerEther.mul(10_000_000); // 10 M
+const feiAmount = ethers.constants.WeiPerEther.mul(10_170_000); // 10.17 M
+
+// Do any deployments
+// This should exclusively include new contract deployments
+const deploy: DeployUpgradeFunc = async (deployAddress: string, addresses: NamedAddresses, logging: boolean) => {
+ return {}; // empty return to silence typescript compiler error
+};
+
+// Do any setup necessary for running the test.
+// This could include setting up Hardhat to impersonate accounts,
+// ensuring contracts have a specific state, etc.
+const setup: SetupUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {};
+
+// Tears down any changes made in setup() that need to be
+// cleaned up before doing any validation checks.
+const teardown: TeardownUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {
+ console.log(`No actions to complete in teardown for fip${fipNumber}`);
+};
+
+// Run any validations required on the fip using mocha or console logging
+// IE check balances, check state of contracts, etc.
+const validate: ValidateUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {
+ const {
+ feiDAOTimelock,
+ fei,
+ volt,
+ voltFusePCVDeposit,
+ collateralizationOracle,
+ voltDepositWrapper,
+ pcvGuardian,
+ turboFusePCVDeposit
+ } = contracts;
+
+ // Validate 10M volt was received by fei Dao timelock
+ // Validate 10.17M fei was received by volt fuse pcv deposit
+ expect(await volt.balanceOf(feiDAOTimelock.address)).to.be.equal(seedAmount);
+ expect(await fei.balanceOf(voltFusePCVDeposit.address)).to.be.equal(feiAmount);
+
+ expect(await collateralizationOracle.isTokenInPcv(volt.address)).to.be.true;
+ expect(await collateralizationOracle.depositToToken(voltDepositWrapper.address)).to.be.equal(volt.address);
+
+ expect(await voltDepositWrapper.tokenDeposit()).to.be.equal(feiDAOTimelock.address);
+ expect(await voltDepositWrapper.token()).to.be.equal(volt.address);
+ expect(await voltDepositWrapper.isProtocolFeiDeposit()).to.be.false;
+ expect(await voltDepositWrapper.balance()).to.be.equal(seedAmount);
+
+ expect(await pcvGuardian.isSafeAddress(turboFusePCVDeposit.address)).to.be.true;
+};
+
+export { deploy, setup, teardown, validate };
diff --git a/proposals/dao/old/fip_99.ts b/proposals/dao/old/fip_99.ts
new file mode 100644
index 000000000..2cf7f469d
--- /dev/null
+++ b/proposals/dao/old/fip_99.ts
@@ -0,0 +1,145 @@
+import hre, { ethers, artifacts } from 'hardhat';
+import { expect } from 'chai';
+import {
+ DeployUpgradeFunc,
+ NamedAddresses,
+ SetupUpgradeFunc,
+ TeardownUpgradeFunc,
+ ValidateUpgradeFunc
+} from '@custom-types/types';
+import { contract } from '@openzeppelin/test-environment';
+import { Fei } from '@custom-types/contracts';
+import { getImpersonatedSigner } from '@test/helpers';
+import { forceEth } from '@test/integration/setup/utils';
+
+/*
+
+DAO Proposal #99
+
+Description: Sell RAI to replenish DAI reserves and/or relieve upcoming peg pressure
+
+Steps:
+ 1 - Move 80% of PCV RAI to AAVE from Fuse Pool 9 via the ratioPCVControllerV2
+ 2 - Call depsoit() on the aave rai pcv deposit
+ 4 - Grant the PCV_CONTROLLER role to the rai pcv drip controller
+ 5 - Pause mint on the rai psm
+ 6 - Whitelist the fuse pool 9 rai pcv deposit on the pcv guardian
+ 7 - Whitelist the aave rai pcv deposit on the pcv guardian
+ 9 - Add the rai price-bound psm to the collateralization oracle
+*/
+
+const fipNumber = '99'; // Change me!
+
+// Do any deployments
+// This should exclusively include new contract deployments
+const deploy: DeployUpgradeFunc = async (deployAddress: string, addresses: NamedAddresses, logging: boolean) => {
+ const chainlinkOracleWrapperFactory = await ethers.getContractFactory('ChainlinkOracleWrapper');
+ const raiUsdChainlinkOracleWrapper = await chainlinkOracleWrapperFactory.deploy(
+ addresses.core,
+ '0x483d36f6a1d063d580c7a24f9a42b346f3a69fbb'
+ );
+ await raiUsdChainlinkOracleWrapper.deployed();
+
+ logging && console.log(`Chainlink oracle wrapper deployed`);
+
+ const priceBoundPSMFactory = await ethers.getContractFactory('PriceBoundPSM');
+ const raiPriceBoundPSM = await priceBoundPSMFactory.deploy(
+ 30_000,
+ ethers.constants.WeiPerEther,
+ {
+ coreAddress: addresses.core,
+ oracleAddress: addresses.chainlinkRaiUsdOracleWrapper,
+ backupOracle: ethers.constants.AddressZero,
+ decimalsNormalizer: 0,
+ doInvert: false
+ },
+ 0, // mint fee = 0 bp
+ 0, // redeem fee = 0 bp
+ ethers.constants.WeiPerEther.mul(10_000_000), // reserves threshold = 10m
+ 50_000, // fei rate limit = 50k fei/sec
+ 0, // minting buffer cap = 0 = disables minting fei
+ addresses.rai, // rai as the underlying token
+ addresses.feiDAOTimelock // surplus target = timelock
+ );
+ await raiPriceBoundPSM.deployed();
+
+ logging && console.log(`Rai price bound psm deployed`);
+
+ const pcvDripControllerFactory = await ethers.getContractFactory('PCVDripController');
+ const raiPCVDripController = await pcvDripControllerFactory.deploy(
+ addresses.core,
+ addresses.aaveRaiPCVDeposit, // drip source = aave rai pcv deposit
+ raiPriceBoundPSM.address, // drip target = rai psm
+ 1800, // drip interval = 30 minutes
+ ethers.constants.WeiPerEther.mul(2_500_000), // drip size = 2.5 million
+ 0 // incentive amount = 0
+ );
+
+ logging && console.log(`Rai pcv drip controller deployed`);
+
+ logging && console.log('Chainlink oracle wrapper, Rai PCV drip controller and rai price-bound psm deployed');
+
+ return {
+ raiUsdChainlinkOracleWrapper,
+ raiPriceBoundPSM,
+ raiPCVDripController
+ };
+};
+
+// Do any setup necessary for running the test.
+// This could include setting up Hardhat to impersonate accounts,
+// ensuring contracts have a specific state, etc.
+const setup: SetupUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {
+ console.log(`No actions to complete in setup for fip${fipNumber}`);
+};
+
+// Tears down any changes made in setup() that need to be
+// cleaned up before doing any validation checks.
+const teardown: TeardownUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {
+ console.log(`No actions to complete in teardown for fip${fipNumber}`);
+};
+
+// Run any validations required on the fip using mocha or console logging
+// IE check balances, check state of contracts, etc.
+const validate: ValidateUpgradeFunc = async (addresses, oldContracts, contracts, logging) => {
+ await contracts.core.hasRole(ethers.utils.id('PCV_CONTROLLER_ROLE'), addresses.raiPCVDripController);
+
+ // Ensure that the rai aave pcv deposit has >= 10m RAI
+ expect((await contracts.aaveRaiPCVDeposit.balance()).gte(ethers.constants.WeiPerEther.mul(10_000_000)));
+
+ // Ensure that minting is paused on the rai psm
+ expect(await contracts.raiPriceBoundPSM.mintPaused()).to.equal(true);
+
+ // Ensure that redeem is not paused on the rai psm
+ expect(await contracts.raiPriceBoundPSM.redeemPaused()).to.equal(false);
+
+ // Ensure that the fuse pool 9 rai pcv deposit and the aave rai pcv deposit are whitelisted on the pcv guardian
+ expect(await contracts.pcvGuardian.isSafeAddress(addresses.rariPool9RaiPCVDeposit)).to.equal(true);
+ expect(await contracts.pcvGuardian.isSafeAddress(addresses.aaveRaiPCVDeposit)).to.equal(true);
+
+ // Call drip on the rai pcv drip controller and make sure the rai price bound psm got the drip
+ await contracts.raiPCVDripController.drip();
+
+ expect(await contracts.rai.balanceOf(contracts.raiPriceBoundPSM.address)).to.be.gt(
+ ethers.constants.WeiPerEther.mul(1_000_000)
+ );
+
+ // Query the rai oracle just to make sure the contract call works
+ await contracts.chainlinkRaiUsdOracleWrapper.read();
+
+ // Attempt to swap some fei for rai via the rai price bound psm
+ await forceEth((await ethers.getSigners())[0].address);
+ await forceEth(contracts.optimisticTimelock.address);
+ await contracts.fei
+ .connect(await getImpersonatedSigner(contracts.optimisticTimelock.address))
+ .transfer((await ethers.getSigners())[0].address, ethers.constants.WeiPerEther.mul(2_000_000));
+ await contracts.fei.approve(contracts.raiPriceBoundPSM.address, ethers.constants.MaxUint256);
+ await contracts.raiPriceBoundPSM.redeem(
+ addresses.feiDAOTimelock,
+ ethers.constants.WeiPerEther.mul(1_000_000),
+ ethers.constants.WeiPerEther.mul(200_000)
+ );
+ expect(await contracts.rai.balanceOf(addresses.feiDAOTimelock)).to.be.gt(ethers.constants.WeiPerEther.mul(200_000));
+};
+
+export { deploy, setup, teardown, validate };
diff --git a/proposals/description/old/fip_82.ts b/proposals/description/old/fip_82.ts
new file mode 100644
index 000000000..c26288af3
--- /dev/null
+++ b/proposals/description/old/fip_82.ts
@@ -0,0 +1,204 @@
+import { ProposalDescription } from '@custom-types/types';
+
+const fip_82: ProposalDescription = {
+ title: 'FIP-82: Deploy TribalCouncil',
+ commands: [
+ //////////// Create relevant TribeRoles and transfer admin of relevant roles to ROLE_ADMIN ///////////
+ {
+ target: 'core',
+ values: '0',
+ method: 'createRole(bytes32,bytes32)',
+ arguments: [
+ '0x2172861495e7b85edac73e3cd5fbb42dd675baadf627720e687bcfdaca025096', // ROLE_ADMIN
+ '0x899bd46557473cb80307a9dabc297131ced39608330a2d29b2d52b660c03923e' // GOVERN_ROLE
+ ],
+ description: 'Create ROLE_ADMIN role'
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'createRole(bytes32,bytes32)',
+ arguments: [
+ '0x6ecc8dff15d98038e3ff32bfe76768123628cfdd2c3d11f2ec23c5433a9d4ba3', // POD_ADMIN
+ '0x2172861495e7b85edac73e3cd5fbb42dd675baadf627720e687bcfdaca025096' // ROLE_ADMIN
+ ],
+ description: 'Create POD_ADMIN role'
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'createRole(bytes32,bytes32)',
+ arguments: [
+ '0x29af6c210963c1cf458c6a5bf082996cf54b23ebba0c0fb8ae110e8e43371c71', // POD_VETO_ADMIN
+ '0x2172861495e7b85edac73e3cd5fbb42dd675baadf627720e687bcfdaca025096' // ROLE_ADMIN
+ ],
+ description: `
+ Create POD_VETO_ADMIN role. Assign ROLE_ADMIN as admin
+ `
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'createRole(bytes32,bytes32)',
+ arguments: [
+ '0xf62a46a499242191aaab61084d4912c2c0a8c48e3d70edfb5a9be2bc9e92622f', // POD_METADATA_REGISTER_ROLE
+ '0x2172861495e7b85edac73e3cd5fbb42dd675baadf627720e687bcfdaca025096' // ROLE_ADMIN
+ ],
+ description: `
+ Create POD_METADATA_REGISTER_ROLE role, assign ROLE_ADMIN as admin
+ `
+ },
+ //////////////// Grant relevant TribeRoles to relevant Timelocks, Safes, Bastion and NopeDAO ///////////////
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantRole(bytes32,address)',
+ arguments: [
+ '0x2172861495e7b85edac73e3cd5fbb42dd675baadf627720e687bcfdaca025096', // ROLE_ADMIN
+ '{feiDAOTimelock}' // Fei DAO timelock
+ ],
+ description: `
+ Grant FEI DAO timelock ROLE_ADMIN, so it is able to manage roles and grant roles that are managed
+ by this role.`
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantRole(bytes32,address)',
+ arguments: [
+ '0x2172861495e7b85edac73e3cd5fbb42dd675baadf627720e687bcfdaca025096', // ROLE_ADMIN
+ '{tribalCouncilTimelock}' // TribalCouncil timelock
+ ],
+ description: `
+ Grant Tribal Council timelock the ROLE_ADMIN role. TribalCouncil will be able to manage Admin level roles
+ and below
+ `
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantRole(bytes32,address)',
+ arguments: [
+ '0x6ecc8dff15d98038e3ff32bfe76768123628cfdd2c3d11f2ec23c5433a9d4ba3', // POD_ADMIN
+ '{tribalCouncilTimelock}' // Tribal council timelock
+ ],
+ description: 'Grant POD_ADMIN to TribalCouncil timelock'
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantRole(bytes32,address)',
+ arguments: [
+ '0xf62a46a499242191aaab61084d4912c2c0a8c48e3d70edfb5a9be2bc9e92622f', // POD_METADATA_REGISTER_ROLE
+ '{tribalCouncilSafe}'
+ ],
+ description: 'Grant TribalCouncil Gnosis Safe address role to register metadata'
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantRole(bytes32,address)',
+ arguments: [
+ '0x899bd46557473cb80307a9dabc297131ced39608330a2d29b2d52b660c03923e', // GOVERNOR
+ '{roleBastion}' // RoleBastion
+ ],
+ description: 'Grant GOVERNOR role to RoleBastion. This will be used by the TribalCouncil to create new roles'
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantRole(bytes32,address)',
+ arguments: [
+ '0x29af6c210963c1cf458c6a5bf082996cf54b23ebba0c0fb8ae110e8e43371c71', // POD_VETO_ADMIN
+ '{nopeDAO}' // Nope DAO
+ ],
+ description: 'Grant POD_VETO_ADMIN role to NopeDAO. This allows the NopeDAO to veto any pod timelock'
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantRole(bytes32,address)',
+ arguments: [
+ '0x6ecc8dff15d98038e3ff32bfe76768123628cfdd2c3d11f2ec23c5433a9d4ba3', // POD_ADMIN
+ '{podFactory}'
+ ],
+ description: 'Grant POD_ADMIN role to PodFactory, to allow it to call lock membership transfers'
+ },
+ ////////////// Configure Membership of Council and Pod /////////////
+ {
+ target: 'podAdminGateway',
+ values: '0',
+ method: 'batchAddPodMember(uint256,address[])',
+ arguments: [
+ '25',
+ [
+ '0xc8eefb8b3d50ca87Da7F99a661720148acf97EfA',
+ '0x72b7448f470D07222Dbf038407cD69CC380683F3',
+ '0xA6D08774604d6Da7C96684ca6c4f61f89c4e5b96',
+ '0xe0ac4559739bD36f0913FB0A3f5bFC19BCBaCD52',
+ '0xC2138f77E97A9Ac0A4bC26F42D80D29D1a091866',
+ '0x9f5e6F58CC8823D3c022AeBE3942EeF689E9AcD9',
+ '0xaB339ae6eab3C3CF4f5885E56F7B49391a01DDA6',
+ '0xd90E9181B20D8D1B5034d9f5737804Da182039F6',
+ '0x7671f0615B1764fb4bf4b8dF06B7338843f99678'
+ ]
+ ],
+ description: 'Add designated members to the Tribal Council'
+ },
+ {
+ target: 'podAdminGateway',
+ values: '0',
+ method: 'batchRemovePodMember(uint256,address[])',
+ arguments: [
+ '25',
+ [
+ '0x0000000000000000000000000000000000000004',
+ '0x0000000000000000000000000000000000000005',
+ '0x0000000000000000000000000000000000000006',
+ '0x0000000000000000000000000000000000000007',
+ '0x0000000000000000000000000000000000000008',
+ '0x0000000000000000000000000000000000000009',
+ '0x000000000000000000000000000000000000000A',
+ '0x000000000000000000000000000000000000000B',
+ '0x000000000000000000000000000000000000000C'
+ ]
+ ],
+ description: 'Remove placeholder members from Tribal Council'
+ },
+ {
+ target: 'podAdminGateway',
+ values: '0',
+ method: 'lockMembershipTransfers(uint256)',
+ arguments: ['25'],
+ description: 'Lock TribalCouncil membership transfers'
+ }
+ ],
+ description: `
+ FIP-82 enacts the first stage of the governance upgrade to the TRIBE DAO and configures the TribalCouncil pod. Specifically, this FIP will:
+ 1. Create and grant the relevant new roles for the TribalCouncil and pod based governance system
+ 2. Install the 9 members of the TribalCouncil who were previously elected by the community in the Snapshot vote:
+ https://snapshot.fei.money/#/proposal/0x003adc2cb0f13784645e31440d24d0364817085aa1994e1ad72944d11bedb528
+
+ The Ethereum addresses of the 9 elected members are:
+
+ [
+ '0xc8eefb8b3d50ca87Da7F99a661720148acf97EfA', - Brianna Montgomery
+ '0x72b7448f470D07222Dbf038407cD69CC380683F3', - Fishy
+ '0xA6D08774604d6Da7C96684ca6c4f61f89c4e5b96', - Bruno Rodrigues
+ '0xe0ac4559739bD36f0913FB0A3f5bFC19BCBaCD52', - Joey Santoro
+ '0xC2138f77E97A9Ac0A4bC26F42D80D29D1a091866', - Jack Lipstone
+ '0x9f5e6F58CC8823D3c022AeBE3942EeF689E9AcD9', - Jack Longarzo
+ '0xaB339ae6eab3C3CF4f5885E56F7B49391a01DDA6', - State
+ '0xd90E9181B20D8D1B5034d9f5737804Da182039F6', - OneTrueKirk
+ '0x7671f0615B1764fb4bf4b8dF06B7338843f99678' - Freddie Farmer
+ ]
+
+ There will be a second DAO vote to transfer various protocol roles to the TribalCouncil pod and to make it the admin of various roles - to allow it to
+ operate the protocol.
+
+ Forum post for the Governance upgrade: https://tribe.fei.money/t/fip-82-governance-enhancements/3945
+ Snapshot vote authorising the upgrade: https://snapshot.fei.money/#/proposal/0x463fd1be98d9e86c83eb845ca7e2a5555387e3c86ca0b756aada17a11df87f2b
+ `
+};
+
+export default fip_82;
diff --git a/proposals/description/old/fip_85.ts b/proposals/description/old/fip_85.ts
index 944e65383..7deceb023 100644
--- a/proposals/description/old/fip_85.ts
+++ b/proposals/description/old/fip_85.ts
@@ -7,6 +7,7 @@ const fip_85: ProposalDescription = {
target: 'rariGovernanceProxyAdmin',
values: '0',
method: 'upgrade(address,address)',
+
arguments: ['{rariGovernanceTokenSushiSwapDistributor}', '0x7A2bbAe82bd08196d64Ff01c53788d942CF5F7b2'],
description:
'Upgrade the RariGovernanceTokenUniswapDistributor to the new implementation (cuts off rewards at block 14671500)'
diff --git a/proposals/description/fip_92.ts b/proposals/description/old/fip_92.ts
similarity index 100%
rename from proposals/description/fip_92.ts
rename to proposals/description/old/fip_92.ts
diff --git a/proposals/description/fip_94.ts b/proposals/description/old/fip_94.ts
similarity index 100%
rename from proposals/description/fip_94.ts
rename to proposals/description/old/fip_94.ts
diff --git a/proposals/description/fip_97.ts b/proposals/description/old/fip_97.ts
similarity index 100%
rename from proposals/description/fip_97.ts
rename to proposals/description/old/fip_97.ts
diff --git a/proposals/description/old/fip_98.ts b/proposals/description/old/fip_98.ts
new file mode 100644
index 000000000..1f7264405
--- /dev/null
+++ b/proposals/description/old/fip_98.ts
@@ -0,0 +1,52 @@
+import { ProposalDescription } from '@custom-types/types';
+
+const fip_98: ProposalDescription = {
+ title: 'FIP-98: Purchase 10m VOLT',
+ commands: [
+ {
+ target: 'fei',
+ values: '0',
+ method: 'mint(address,uint256)',
+ arguments: ['{feiDAOTimelock}', '10170000000000000000000000'],
+ description: 'Mint $10.17M FEI'
+ },
+ {
+ target: 'fei',
+ values: '0',
+ method: 'approve(address,uint256)',
+ arguments: ['{voltFeiSwapContract}', '10170000000000000000000000'],
+ description: 'Approve 10.17m Fei to be spent by the otc contract on the timelocks behalf'
+ },
+ {
+ target: 'voltFeiSwapContract',
+ values: '0',
+ method: 'swap()',
+ arguments: [],
+ description: 'Swap fei for Volt'
+ },
+ {
+ target: 'collateralizationOracle',
+ values: '0',
+ method: 'setOracle(address,address)',
+ arguments: ['{volt}', '{voltOracle}'],
+ description: 'Set oracle for Volt'
+ },
+ {
+ target: 'collateralizationOracle',
+ values: '0',
+ method: 'addDeposits(address[])',
+ arguments: [['{voltDepositWrapper}']],
+ description: 'Add Volt to the collaterlization oracle'
+ },
+ {
+ target: 'pcvGuardian',
+ values: '0',
+ method: 'setSafeAddress(address)',
+ arguments: ['{turboFusePCVDeposit}'],
+ description: 'Add turboFusePCVDeposit to the pcv guardian'
+ }
+ ],
+ description: `Swap 10.17m Fei for 10m VOLT as described in fip 88 https://tribe.fei.money/t/fip-88-volt-joins-the-tribe/4007, set Oracle Pass Through as the oracle for the Volt price, add voltPCVDepositWrapper to the CR Oracle, and add turboFusePCVDeposit to the PCVGuardian`
+};
+
+export default fip_98;
diff --git a/proposals/description/old/fip_99.ts b/proposals/description/old/fip_99.ts
new file mode 100644
index 000000000..1234f1d56
--- /dev/null
+++ b/proposals/description/old/fip_99.ts
@@ -0,0 +1,63 @@
+import { ProposalDescription } from '@custom-types/types';
+
+const fip_99: ProposalDescription = {
+ title: 'FIP-99: Sell RAI',
+ commands: [
+ {
+ target: 'ratioPCVControllerV2',
+ values: '0',
+ method: 'withdrawRatio(address, address, uint256)',
+ arguments: ['{rariPool9RaiPCVDeposit}', '{aaveRaiPCVDeposit}', '8000'],
+ description: 'Withdraw 80% of the Rai from the rari pool 9 pcv deposit and send to the aave rai pcv deposit'
+ },
+ {
+ target: 'aaveRaiPCVDeposit',
+ values: '0',
+ method: 'deposit()',
+ arguments: [],
+ description: 'Call deposit() on the aave rai pcv deposit'
+ },
+ {
+ target: 'core',
+ values: '0',
+ method: 'grantPCVController(address)',
+ arguments: ['{raiPCVDripController}'],
+ description: 'Grant the PCV_CONTROLLER_ROLE to the rai pcv drip controller'
+ },
+ {
+ target: 'raiPriceBoundPSM',
+ values: '0',
+ method: 'pauseMint()',
+ arguments: [],
+ description: 'Pause mint on the rai price-bound psm'
+ },
+ {
+ target: 'pcvGuardian',
+ values: '0',
+ method: 'setSafeAddresses(address[])',
+ arguments: [['{rariPool9RaiPCVDeposit}', '{aaveRaiPCVDeposit}', '{raiPriceBoundPSM}']],
+ description:
+ 'Whitelist the fuse pool 9 rai pcv deposit and the aave rai pcv deposit on the pcv guardian, as well as the new rai psm'
+ },
+ {
+ target: 'collateralizationOracle',
+ values: '0',
+ method: 'addDeposit(address)',
+ arguments: ['{raiPriceBoundPSM}'],
+ description: 'Add the rai price-bound psm to the collateralization oracle'
+ }
+ ],
+ description: `Sell RAI to replenish DAI reserves and/or relieve upcoming peg pressure.
+ Forum post: https://tribe.fei.money/t/fip-99-sell-rai/4120
+ Steps:
+
+ - Withdraw 80% of the rai from fuse pool 9 and send to the aave rai pcv deposit
+ - Call deposit() on the aave rai pcv deposit
+ - Grant the PCV_CONTROLLER_ROLE to the rai pcv drip controller
+ - Pause mint on the rai price-bound psm
+ - Whitelist the fuse pool 9 rai pcv deposit on the pcv guardian, as well as the new rai psm and the aave rai pcv deposit
+ - Add the rai price-bound psm to the collateralization oracle
+ `
+};
+
+export default fip_99;
diff --git a/protocol-configuration/collateralizationOracle.ts b/protocol-configuration/collateralizationOracle.ts
index 69eeeeb47..94dc4861a 100644
--- a/protocol-configuration/collateralizationOracle.ts
+++ b/protocol-configuration/collateralizationOracle.ts
@@ -45,8 +45,9 @@ const collateralizationAddresses = {
'balancerLensVeBalWeth'
],
dpi: ['rariPool19DpiPCVDepositWrapper', 'dpiDepositWrapper'],
- rai: ['rariPool9RaiPCVDepositWrapper', 'aaveRaiPCVDepositWrapper', 'raiDepositWrapper'],
- agEUR: ['agEurDepositWrapper', 'uniswapLensAgEurUniswapGauge', 'agEurUniswapPCVDeposit']
+ rai: ['rariPool9RaiPCVDepositWrapper', 'aaveRaiPCVDepositWrapper', 'raiDepositWrapper', 'raiPriceBoundPSM'],
+ agEUR: ['agEurDepositWrapper', 'uniswapLensAgEurUniswapGauge', 'agEurUniswapPCVDeposit'],
+ volt: ['voltDepositWrapper']
};
export default collateralizationAddresses;
diff --git a/protocol-configuration/dependencies.ts b/protocol-configuration/dependencies.ts
index 8600d71af..3c6bf9092 100644
--- a/protocol-configuration/dependencies.ts
+++ b/protocol-configuration/dependencies.ts
@@ -30,6 +30,8 @@ const dependencies: DependencyMap = {
},
core: {
contractDependencies: [
+ 'raiPriceBoundPSM',
+ 'raiPCVDripController',
'collateralizationOracleGuardian',
'fei',
'feiTribeLBPSwapper',
@@ -126,11 +128,19 @@ const dependencies: DependencyMap = {
'delayedPCVMoverWethUniToBal',
'angleDelegatorPCVDeposit',
'uniswapLensAgEurUniswapGauge',
- 'veBalDelegatorPCVDeposit'
+ 'veBalDelegatorPCVDeposit',
+ 'uniswapLensAgEurUniswapGauge',
+ 'governanceMetadataRegistry',
+ 'nopeDAO',
+ 'podAdminGateway',
+ 'podFactory',
+ 'roleBastion'
]
},
fei: {
contractDependencies: [
+ 'raiPriceBoundPSM',
+ 'raiPCVDripController',
'core',
'rariPool8Fei',
'feiDAOTimelock',
@@ -166,7 +176,8 @@ const dependencies: DependencyMap = {
'ethPSMFeiSkimmer',
'rariInfraFeiTimelock',
'reptbRedeemer',
- 'laTribuFeiTimelock'
+ 'laTribuFeiTimelock',
+ 'voltFeiSwapContract'
]
},
ethPSMFeiSkimmer: {
@@ -193,9 +204,14 @@ const dependencies: DependencyMap = {
'lusdPSM',
'daiFixedPricePSM',
'compoundEthPCVDeposit',
- 'aaveEthPCVDeposit'
+ 'aaveEthPCVDeposit',
+ 'aaveRaiPCVDeposit',
+ 'raiPriceBoundPSM'
]
},
+ raiPriceBoundPSM: {
+ contractDependencies: ['core', 'fei', 'raiPCVDripController', 'pcvGuardian']
+ },
proxyAdmin: {
contractDependencies: [
'feiDAOTimelock',
@@ -221,7 +237,8 @@ const dependencies: DependencyMap = {
'rariPool8d3',
'rariInfraTribeTimelock',
'pegExchanger',
- 'laTribuTribeTimelock'
+ 'laTribuTribeTimelock',
+ 'nopeDAO'
]
},
tribeMinter: {
@@ -245,7 +262,9 @@ const dependencies: DependencyMap = {
'tribeMinter',
'timelock',
'pcvGuardian',
- 'pegExchanger'
+ 'pegExchanger',
+ 'voltFeiSwapContract',
+ 'voltDepositWrapper'
]
},
guardian: {
@@ -284,6 +303,9 @@ const dependencies: DependencyMap = {
daiPCVDripController: {
contractDependencies: ['core', 'fei', 'daiFixedPricePSM', 'compoundDaiPCVDeposit']
},
+ raiPCVDripController: {
+ contractDependencies: ['core', 'fei', 'aaveRaiPCVDeposit', 'raiPriceBoundPSM']
+ },
daiFixedPricePSM: {
contractDependencies: [
'core',
@@ -336,7 +358,7 @@ const dependencies: DependencyMap = {
contractDependencies: ['core', 'fei']
},
aaveRaiPCVDeposit: {
- contractDependencies: ['core']
+ contractDependencies: ['core', 'pcvGuardian', 'raiPCVDripController']
},
agEurAngleUniswapPCVDeposit: {
contractDependencies: ['core', 'fei', 'chainlinkEurUsdOracleWrapper']
@@ -517,7 +539,11 @@ const dependencies: DependencyMap = {
'rariPool128FeiPCVDepositWrapper',
'rariPool22FeiPCVDepositWrapper',
'rariPool8LusdPCVDeposit',
- 'rariPool8DaiPCVDeposit'
+ 'rariPool8DaiPCVDeposit',
+ 'voltFusePCVDeposit',
+ 'voltOracle',
+ 'turboFusePCVDeposit',
+ 'voltDepositWrapper'
]
},
collateralizationOracleWrapper: {
@@ -1002,6 +1028,48 @@ const dependencies: DependencyMap = {
},
balancerLensVeBalWeth: {
contractDependencies: ['veBalDelegatorPCVDeposit', 'balUsdCompositeOracle', 'chainlinkEthUsdOracleWrapper']
+ },
+ roleBastion: {
+ contractDependencies: ['core']
+ },
+ podFactory: {
+ contractDependencies: ['core', 'podExecutor', 'podAdminGateway']
+ },
+ podAdminGateway: {
+ contractDependencies: ['core', 'podFactory', 'tribalCouncilTimelock']
+ },
+ podExecutor: {
+ contractDependencies: ['podFactory', 'tribalCouncilTimelock']
+ },
+ nopeDAO: {
+ contractDependencies: ['core', 'tribe']
+ },
+ governanceMetadataRegistry: {
+ contractDependencies: ['core']
+ },
+ turboFusePCVDeposit: {
+ contractDependencies: ['collateralizationOracle']
+ },
+ voltFeiSwapContract: {
+ contractDependencies: ['fei', 'feiDAOTimelock']
+ },
+ voltDepositWrapper: {
+ contractDependencies: ['volt', 'feiDAOTimelock', 'collateralizationOracle', 'voltOracle']
+ },
+ volt: {
+ contractDependencies: ['voltDepositWrapper', 'voltOracle']
+ },
+ voltFusePCVDeposit: {
+ contractDependencies: ['collateralizationOracle']
+ },
+ voltOracle: {
+ contractDependencies: ['volt', 'voltDepositWrapper', 'collateralizationOracle']
+ },
+ tribalCouncilTimelock: {
+ contractDependencies: ['podExecutor', 'tribalCouncilSafe', 'podAdminGateway']
+ },
+ tribalCouncilSafe: {
+ contractDependencies: ['tribalCouncilTimelock']
}
};
diff --git a/protocol-configuration/mainnetAddresses.ts b/protocol-configuration/mainnetAddresses.ts
index 668fa00ce..f4f6076cb 100644
--- a/protocol-configuration/mainnetAddresses.ts
+++ b/protocol-configuration/mainnetAddresses.ts
@@ -116,6 +116,11 @@ const MainnetAddresses: MainnetAddresses = {
address: '0x3e0f66c5687FF917809A3F7fA7096e1Bc409fB03',
category: AddressCategory.Peg
},
+ raiPCVDripController: {
+ artifactName: 'PCVDripController',
+ address: '0x64d216dFbe31d0C88BBcAdfF51Ab2aD704A3aAd9',
+ category: AddressCategory.Peg
+ },
daiPSM: {
artifactName: 'PriceBoundPSM',
address: '0x210300C158f95E1342fD008aE417ef68311c49C2',
@@ -136,6 +141,11 @@ const MainnetAddresses: MainnetAddresses = {
address: '0x59fA1bB4fBd7fcB055476645F228f13ac14754a8',
category: AddressCategory.Peg
},
+ raiPriceBoundPSM: {
+ artifactName: 'PriceBoundPSM',
+ address: '0x5ddE9B4b14eDf59CB23c1d4579B279846998205e',
+ category: AddressCategory.Peg
+ },
ethPSM: {
artifactName: 'PegStabilityModule',
address: '0x98E5F5706897074a4664DD3a32eB80242d6E694B',
@@ -616,6 +626,11 @@ const MainnetAddresses: MainnetAddresses = {
address: '0x485d23ce5725ecdE46ca9033012984D90b514FFd',
category: AddressCategory.PCV
},
+ voltDepositWrapper: {
+ artifactName: 'ERC20PCVDepositWrapper',
+ address: '0x564eFCe5c6873219a7FbE450187c23254E3d62a4',
+ category: AddressCategory.PCV
+ },
collateralizationOracle: {
artifactName: 'CollateralizationOracle',
address: '0xFF6f59333cfD8f4Ebc14aD0a0E181a83e655d257',
@@ -691,6 +706,11 @@ const MainnetAddresses: MainnetAddresses = {
address: '0x3d49573ee6aFCBDe606F8a1c2AA1C498048E7190',
category: AddressCategory.Oracle
},
+ chainlinkRaiUsdOracleWrapper: {
+ artifactName: 'ChainlinkOracleWrapper',
+ address: '0xC7a950418eC90df99B1516F3d0276423bF46D4C2',
+ category: AddressCategory.Oracle
+ },
chainlinkRaiUsdCompositeOracle: {
artifactName: 'CompositeOracle',
address: '0x392b1d29eDab680c5CA778D3A32b8284859BFBB0',
@@ -1901,6 +1921,21 @@ const MainnetAddresses: MainnetAddresses = {
address: '0x2dC77678Be7F900e81c638b056F4835BB7203C96',
category: AddressCategory.TBD
},
+ orcaPodController: {
+ artifactName: 'IControllerV1',
+ address: '0x17FDC2Eaf2bd46f3e1052CCbccD9e6AD0296C42c',
+ category: AddressCategory.External
+ },
+ orcaMemberToken: {
+ artifactName: 'IMemberToken',
+ address: '0x0762aA185b6ed2dCA77945Ebe92De705e0C37AE3',
+ category: AddressCategory.External
+ },
+ orcaShipToken: {
+ artifactName: 'unknown',
+ address: '0x872EdeaD0c56930777A82978d4D7deAE3A2d1539',
+ category: AddressCategory.External
+ },
rariGovernanceProxyAdmin: {
artifactName: 'ProxyAdmin',
address: '0x1c9aA54a013962C2444ECae06902F31D532c6AD3',
@@ -1955,6 +1990,71 @@ const MainnetAddresses: MainnetAddresses = {
artifactName: 'unknown',
address: '0x0a00F781508a2E3FF5C6Aa80DF97dAebd0fFC259',
category: AddressCategory.Fuse
+ },
+ volt: {
+ artifactName: 'Fei',
+ address: '0x559eBC30b0E58a45Cc9fF573f77EF1e5eb1b3E18',
+ category: AddressCategory.Volt
+ },
+ voltCore: {
+ artifactName: 'Core',
+ address: '0xEC7AD284f7Ad256b64c6E69b84Eb0F48f42e8196',
+ category: AddressCategory.Volt
+ },
+ voltFeiSwapContract: {
+ artifactName: 'OtcEscrow',
+ address: '0xeF152E462B59940616E667E801762dA9F2AF97b9',
+ category: AddressCategory.Volt
+ },
+ voltFusePCVDeposit: {
+ artifactName: 'ERC20CompoundPCVDeposit',
+ address: '0xFeBDf448C8484834bb399d930d7E1bdC773E23bA',
+ category: AddressCategory.Volt
+ },
+ voltOracle: {
+ artifactName: 'unknown',
+ address: '0x84dc71500D504163A87756dB6368CC8bB654592f',
+ category: AddressCategory.Volt
+ },
+ podExecutor: {
+ artifactName: 'PodExecutor',
+ address: '0x99d8b669F48A708f7C0373AF6CE31F0726ab6CaD',
+ category: AddressCategory.Governance
+ },
+ podAdminGateway: {
+ artifactName: 'PodAdminGateway',
+ address: '0xDDe8AA537c5b289De9cede462E6F0ec3a3a99e39',
+ category: AddressCategory.Governance
+ },
+ podFactory: {
+ artifactName: 'PodFactory',
+ address: '0x4B2c8894D29d05dbc0d5A1CE23535be08d844819',
+ category: AddressCategory.Governance
+ },
+ governanceMetadataRegistry: {
+ artifactName: 'GovernanceMetadataRegistry',
+ address: '0xd78Cd3AaE6168BE43B548877aAc68312B9df9AFb',
+ category: AddressCategory.Governance
+ },
+ nopeDAO: {
+ artifactName: 'NopeDAO',
+ address: '0x6C7aF43Ce97686e0C8AcbBc03b2E4f313c0394C7',
+ category: AddressCategory.Governance
+ },
+ tribalCouncilTimelock: {
+ artifactName: 'TimelockController',
+ address: '0xe0C7DE94395B629860Cbb3c42995F300F56e6d7a',
+ category: AddressCategory.Governance
+ },
+ tribalCouncilSafe: {
+ artifactName: 'unknown',
+ address: '0x2EC598d8e3DF35E5D6F13AE2f05a7bB2704e92Ea',
+ category: AddressCategory.Governance
+ },
+ roleBastion: {
+ artifactName: 'RoleBastion',
+ address: '0x8096314D9014EbB69Fc777ED3791DDE6FFbaFAed',
+ category: AddressCategory.Governance
}
};
diff --git a/protocol-configuration/optimisticGovernance.ts b/protocol-configuration/optimisticGovernance.ts
new file mode 100644
index 000000000..76d5f7984
--- /dev/null
+++ b/protocol-configuration/optimisticGovernance.ts
@@ -0,0 +1,59 @@
+export type PodConfig = {
+ members: string[];
+ threshold: number;
+ label: string;
+ ensString: string;
+ imageUrl: string;
+ minDelay: number;
+ numMembers: number;
+ placeHolderMembers: string[];
+};
+
+export type PodCreationConfig = {
+ members: string[];
+ threshold: number;
+ label: string;
+ ensString: string;
+ imageUrl: string;
+ admin: string;
+ minDelay: number;
+};
+
+export const tribalCouncilMembers = [
+ '0xc8eefb8b3d50ca87Da7F99a661720148acf97EfA',
+ '0x72b7448f470D07222Dbf038407cD69CC380683F3',
+ '0xA6D08774604d6Da7C96684ca6c4f61f89c4e5b96',
+ '0xe0ac4559739bD36f0913FB0A3f5bFC19BCBaCD52',
+ '0xC2138f77E97A9Ac0A4bC26F42D80D29D1a091866',
+ '0x9f5e6F58CC8823D3c022AeBE3942EeF689E9AcD9',
+ '0xaB339ae6eab3C3CF4f5885E56F7B49391a01DDA6',
+ '0xd90E9181B20D8D1B5034d9f5737804Da182039F6',
+ '0x7671f0615B1764fb4bf4b8dF06B7338843f99678'
+];
+
+export const placeHolderCouncilMembers = [
+ '0x0000000000000000000000000000000000000004',
+ '0x0000000000000000000000000000000000000005',
+ '0x0000000000000000000000000000000000000006',
+ '0x0000000000000000000000000000000000000007',
+ '0x0000000000000000000000000000000000000008',
+ '0x0000000000000000000000000000000000000009',
+ '0x000000000000000000000000000000000000000a',
+ '0x000000000000000000000000000000000000000b',
+ '0x000000000000000000000000000000000000000c'
+];
+
+export const MIN_TIMELOCK_DELAY = 86400; // 1 day
+
+export const tribeCouncilPodConfig: PodConfig = {
+ members: tribalCouncilMembers,
+ threshold: 5,
+ label: '0xbbbb0f283d36ab6734712e97b09b54eecf6cdb83ad20efc8b1718c7fe38cb0b8', // tribecouncil
+ ensString: 'tribecouncil.pod.xyz',
+ imageUrl: '',
+ minDelay: 86400 * 4, // 4 days
+ numMembers: tribalCouncilMembers.length,
+ placeHolderMembers: placeHolderCouncilMembers
+};
+
+export const TRIBAL_COUNCIL_POD_ID = 25;
diff --git a/protocol-configuration/permissions.ts b/protocol-configuration/permissions.ts
index 359bb248f..583a0d247 100644
--- a/protocol-configuration/permissions.ts
+++ b/protocol-configuration/permissions.ts
@@ -12,7 +12,7 @@ export const permissions = {
'balancerDepositFeiWeth'
],
BURNER_ROLE: [],
- GOVERN_ROLE: ['core', 'feiDAOTimelock'],
+ GOVERN_ROLE: ['core', 'feiDAOTimelock', 'roleBastion'],
PCV_CONTROLLER_ROLE: [
'feiDAOTimelock',
'ratioPCVControllerV2',
@@ -21,7 +21,8 @@ export const permissions = {
'daiPCVDripController',
'lusdPCVDripController',
'ethPSMFeiSkimmer',
- 'lusdPSMFeiSkimmer'
+ 'lusdPSMFeiSkimmer',
+ 'raiPCVDripController'
],
GUARDIAN_ROLE: ['multisig', 'pcvGuardian', 'pcvSentinel'],
ORACLE_ADMIN_ROLE: ['collateralizationOracleGuardian', 'optimisticTimelock', 'opsOptimisticTimelock'],
@@ -33,5 +34,9 @@ export const permissions = {
PCV_GUARDIAN_ADMIN_ROLE: ['optimisticTimelock'],
METAGOVERNANCE_VOTE_ADMIN: ['feiDAOTimelock', 'opsOptimisticTimelock'],
METAGOVERNANCE_TOKEN_STAKING: ['feiDAOTimelock', 'opsOptimisticTimelock'],
- METAGOVERNANCE_GAUGE_ADMIN: ['feiDAOTimelock', 'optimisticTimelock']
+ METAGOVERNANCE_GAUGE_ADMIN: ['feiDAOTimelock', 'optimisticTimelock'],
+ ROLE_ADMIN: ['feiDAOTimelock', 'tribalCouncilTimelock'],
+ POD_METADATA_REGISTER_ROLE: ['tribalCouncilSafe'],
+ POD_VETO_ADMIN: ['nopeDAO'],
+ POD_ADMIN: ['tribalCouncilTimelock', 'podFactory']
};
diff --git a/remappings.txt b/remappings.txt
index bc6c29af1..0043f9b8c 100644
--- a/remappings.txt
+++ b/remappings.txt
@@ -1,3 +1,4 @@
@openzeppelin/=node_modules/@openzeppelin/
@chainlink/=node_modules/@chainlink/
-@uniswap/=node_modules/@uniswap/
\ No newline at end of file
+@uniswap/=node_modules/@uniswap/
+@rari-capital/=node_modules/@rari-capital/
\ No newline at end of file
diff --git a/scripts/deploy/deployPCVDepositWrapper.ts b/scripts/deploy/deployPCVDepositWrapper.ts
new file mode 100644
index 000000000..9eb6802c0
--- /dev/null
+++ b/scripts/deploy/deployPCVDepositWrapper.ts
@@ -0,0 +1,26 @@
+import { ethers } from 'hardhat';
+import { DeployUpgradeFunc } from '@custom-types/types';
+
+export const deploy: DeployUpgradeFunc = async (deployAddress, addresses, logging = false) => {
+ const TOKEN_DEPOSIT = process.env.TOKEN_DEPOSIT;
+ const TOKEN = process.env.TOKEN;
+ const IS_PROTOCOL_FEI_DEPOSIT =
+ process.env.IS_PROTOCOL_FEI_DEPOSIT && process.env.IS_PROTOCOL_FEI_DEPOSIT.toLowerCase() == 'true' ? true : false;
+
+ if (!TOKEN_DEPOSIT || !TOKEN) {
+ throw new Error('TOKEN or TOKEN_DEPOSIT environment variable is not set');
+ }
+
+ const erc20PCVDepositWrapperFactory = await ethers.getContractFactory('ERC20PCVDepositWrapper');
+ const erc20PCVDepositWrapper = await erc20PCVDepositWrapperFactory.deploy(
+ TOKEN_DEPOSIT,
+ TOKEN,
+ IS_PROTOCOL_FEI_DEPOSIT
+ );
+
+ logging && console.log('ERC20PCVDepositWrapper impl deployed to: ', erc20PCVDepositWrapper.address);
+
+ return {
+ erc20PCVDepositWrapper
+ };
+};
diff --git a/test/helpers.ts b/test/helpers.ts
index 49b695f46..c691ce21b 100644
--- a/test/helpers.ts
+++ b/test/helpers.ts
@@ -2,9 +2,11 @@ import hre, { ethers, artifacts, network } from 'hardhat';
import chai from 'chai';
import CBN from 'chai-bn';
import { Core, Core__factory } from '@custom-types/contracts';
-import { BigNumber, BigNumberish, Contract } from 'ethers';
+import { BigNumber, BigNumberish, Contract, Signer } from 'ethers';
import { NamedAddresses } from '@custom-types/types';
import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import EthersAdapter from '@gnosis.pm/safe-ethers-lib';
+import Safe from '@gnosis.pm/safe-core-sdk';
// use default BigNumber
chai.use(CBN(ethers.BigNumber));
@@ -300,6 +302,22 @@ async function performDAOAction(
);
}
+async function initialiseGnosisSDK(safeOwner: Signer, safeAddress: string): Promise {
+ const ethAdapter = new EthersAdapter({
+ ethers,
+ signer: safeOwner
+ });
+ const { chainId } = await safeOwner.provider.getNetwork();
+ const contractNetworks = {
+ [chainId]: {
+ multiSendAddress: '0x8D29bE29923b68abfDD21e541b9374737B49cdAD',
+ safeMasterCopyAddress: '0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F',
+ safeProxyFactoryAddress: '0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B'
+ }
+ };
+ return Safe.create({ ethAdapter, safeAddress, contractNetworks });
+}
+
export {
// utils
ZERO_ADDRESS,
@@ -323,5 +341,6 @@ export {
resetTime,
resetFork,
overwriteChainlinkAggregator,
- performDAOAction
+ performDAOAction,
+ initialiseGnosisSDK
};
diff --git a/test/integration/proposals_config.ts b/test/integration/proposals_config.ts
index 3f050780d..e825c3957 100644
--- a/test/integration/proposals_config.ts
+++ b/test/integration/proposals_config.ts
@@ -1,7 +1,6 @@
import { ProposalCategory, ProposalsConfigMap } from '@custom-types/types';
// import fip_xx_proposal from '@proposals/description/fip_xx';
-import fip_92 from '@proposals/description/fip_92';
const proposals: ProposalsConfigMap = {
/*
@@ -15,25 +14,6 @@ const proposals: ProposalsConfigMap = {
category: ProposalCategory.DAO
}
*/
- fip_92: {
- deploy: false, // deploy flag for whether to run deploy action during e2e tests or use mainnet state
- totalValue: 0, // amount of ETH to send to DAO execution
- proposal: fip_92, // full proposal file, imported from '@proposals/description/fip_xx.ts'
- proposalId: '',
- affectedContractSignoff: [
- 'ratioPCVControllerV2',
- 'balancerDepositFeiWeth',
- 'balancerDepositBalWeth',
- 'veBalDelegatorPCVDeposit',
- 'balancerLensBpt30Fei70Weth',
- 'balancerLensVeBalBal',
- 'balancerLensVeBalWeth',
- 'collateralizationOracle',
- 'pcvGuardian'
- ],
- deprecatedContractSignoff: [],
- category: ProposalCategory.DAO
- }
};
export default proposals;
diff --git a/test/integration/setup/index.ts b/test/integration/setup/index.ts
index 3dc8debac..bf50250dd 100644
--- a/test/integration/setup/index.ts
+++ b/test/integration/setup/index.ts
@@ -1,4 +1,3 @@
-import { ethers } from 'hardhat';
import { permissions } from '@protocol/permissions';
import { getAllContractAddresses, getAllContracts } from './loadContracts';
import {
@@ -22,8 +21,6 @@ import constructProposal from '@scripts/utils/constructProposal';
import '@nomiclabs/hardhat-ethers';
import { resetFork } from '@test/helpers';
import simulateOAProposal from '@scripts/utils/simulateOAProposal';
-import { forceEth } from '@test/integration/setup/utils';
-import { getImpersonatedSigner } from '@test/helpers';
/**
* Coordinate initialising an end-to-end testing environment
@@ -126,6 +123,7 @@ export class TestEndtoEndCoordinator implements TestCoordinator {
contractAddressesBefore,
this.config.logging
);
+ console.log(`Deployment complete.`);
}
const contracts: NamedContracts = {
diff --git a/test/integration/tests/fei.ts b/test/integration/tests/fei.ts
index c1ed183fd..e0abe1991 100644
--- a/test/integration/tests/fei.ts
+++ b/test/integration/tests/fei.ts
@@ -12,7 +12,7 @@ const toBN = ethers.BigNumber.from;
describe('e2e-fei', function () {
let contracts: NamedContracts;
- let contractAddresses: NamedAddresses;
+ let contractAddresses;
let deployAddress: string;
let deploySigner: Signer;
let e2eCoord: TestEndtoEndCoordinator;
@@ -92,14 +92,5 @@ describe('e2e-fei', function () {
await fei.connect(deploySigner).unpause();
expect(await fei.paused()).to.be.false;
});
-
- it('hasAnyOfRoles works', async function () {
- const mockCoreRefTestFactory = await ethers.getContractFactory('MockCoreRefTest');
- const mockCoreRefTest = await mockCoreRefTestFactory.deploy(contracts.core.address);
- await contracts.core.grantGuardian(deployAddress);
- await mockCoreRefTest.connect(deploySigner).governorOrGuardianTest();
- await contracts.core.revokeGuardian(deployAddress);
- expect(mockCoreRefTest.connect(deploySigner).governorOrGuardianTest()).to.be.revertedWith('UNAUTHORIZED');
- });
});
});
diff --git a/test/integration/tests/metagov/GovernorVoter.ts b/test/integration/tests/metagov/GovernorVoter.ts
index 8ea6b874a..7d7d3a313 100644
--- a/test/integration/tests/metagov/GovernorVoter.ts
+++ b/test/integration/tests/metagov/GovernorVoter.ts
@@ -39,7 +39,7 @@ describe('e2e-metagov', function () {
before(async function () {
// Create the contract
const factory = await ethers.getContractFactory('MockGovernorVoter');
- voter = await factory.deploy(contracts.core.address);
+ voter = (await factory.deploy(contracts.core.address)) as MockGovernorVoter;
await voter.deployTransaction.wait();
// Seed the contract with some TRIBE tokens
diff --git a/test/integration/tests/podOperation.ts b/test/integration/tests/podOperation.ts
new file mode 100644
index 000000000..9ab8d2594
--- /dev/null
+++ b/test/integration/tests/podOperation.ts
@@ -0,0 +1,207 @@
+import { PodAdminGateway, PodFactory } from '@custom-types/contracts';
+import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import chai, { expect } from 'chai';
+import CBN from 'chai-bn';
+import { solidity } from 'ethereum-waffle';
+import { ethers } from 'hardhat';
+import { NamedAddresses, NamedContracts } from '@custom-types/types';
+import { getImpersonatedSigner, resetFork, time, initialiseGnosisSDK } from '@test/helpers';
+import proposals from '@test/integration/proposals_config';
+import { forceEth } from '@test/integration/setup/utils';
+import { TestEndtoEndCoordinator } from '../setup';
+import { BigNumberish, Contract } from 'ethers';
+import { abi as timelockABI } from '../../../artifacts/@openzeppelin/contracts/governance/TimelockController.sol/TimelockController.json';
+import { MIN_TIMELOCK_DELAY } from '@protocol/optimisticGovernance';
+
+function createSafeTxArgs(timelock: Contract, functionSig: string, args: any[]) {
+ return {
+ to: timelock.address, // Send to timelock, calling timelock.schedule()
+ data: timelock.interface.encodeFunctionData(functionSig, args),
+ value: '0'
+ };
+}
+
+describe('Pod operation and veto', function () {
+ let contracts: NamedContracts;
+ let contractAddresses: NamedAddresses;
+ let e2eCoord: TestEndtoEndCoordinator;
+ let doLogging: boolean;
+ let podFactory: PodFactory;
+ let tribalCouncilTimelockSigner: SignerWithAddress;
+ let podConfig: any;
+ let podId: BigNumberish;
+ let timelockAddress: string;
+ let podTimelock: Contract;
+ let registryTxData: string;
+
+ const proposalId = '1234';
+ const proposalMetadata = 'FIP_XX: This tests that the governance upgrade flow works';
+
+ before(async () => {
+ chai.use(CBN(ethers.BigNumber));
+ chai.use(solidity);
+ await resetFork();
+ });
+
+ beforeEach(async function () {
+ // Setup test environment and get contracts
+ const version = 1;
+ // Set deploy address to Tom's address. This has Orca SHIP
+ const deployAddress = '0x64c4Bffb220818F0f2ee6DAe7A2F17D92b359c5d';
+
+ doLogging = Boolean(process.env.LOGGING);
+
+ const config = {
+ logging: doLogging,
+ deployAddress,
+ version: version
+ };
+
+ e2eCoord = new TestEndtoEndCoordinator(config, proposals);
+
+ doLogging && console.log(`Loading environment...`);
+ ({ contracts, contractAddresses } = await e2eCoord.loadEnvironment());
+ doLogging && console.log(`Environment loaded.`);
+
+ podFactory = contracts.podFactory as PodFactory;
+ const podAdminGateway = contracts.podAdminGateway as PodAdminGateway;
+ tribalCouncilTimelockSigner = await getImpersonatedSigner(contractAddresses.tribalCouncilTimelock);
+
+ await forceEth(contractAddresses.tribalCouncilTimelock);
+ await forceEth(contractAddresses.feiDAOTimelock);
+
+ podConfig = {
+ members: [
+ '0x000000000000000000000000000000000000000D',
+ '0x000000000000000000000000000000000000000E',
+ '0x000000000000000000000000000000000000000F',
+ '0x0000000000000000000000000000000000000010'
+ ],
+ threshold: 1,
+ label: '0x54726962616c436f726e63696c00000000000000000000000000000000000000', // TribalCouncil
+ ensString: 'testPod.eth',
+ imageUrl: 'testPod.com',
+ minDelay: MIN_TIMELOCK_DELAY,
+ numMembers: 4,
+ admin: podAdminGateway.address
+ };
+
+ // Test Fixture:
+ // - Deploys a pod
+ // - Has the TribalCouncil grant that pod timelock a role to interact with the
+ // protocol
+ // - Creates a proposal on the pod Safe
+ // - Executes the proposal and sends it to the pod's timelock
+ // - Fast forwards time and executes the timelocked proposal
+ // - Verifies that intended protocol action was taken
+ //
+ // The role and protocol action is that the POD_METADATA_REGISTER_ROLE role is being granted
+ // and the pod is calling to register a proposal on the `GovernanceMetadataRegistry.sol`
+
+ // 1. Deploy a pod through which a proposal will be executed
+ const deployTx = await podFactory.connect(tribalCouncilTimelockSigner).createOptimisticPod(podConfig);
+ const { args } = (await deployTx.wait()).events.find((elem) => elem.event === 'CreatePod');
+
+ podId = args.podId;
+ const safeAddress = await podFactory.getPodSafe(podId);
+ timelockAddress = await podFactory.getPodTimelock(podId);
+ const podMemberSigner = await getImpersonatedSigner(podConfig.members[0]);
+
+ // 2.0 Instantiate Gnosis SDK
+ podTimelock = new ethers.Contract(timelockAddress, timelockABI, podMemberSigner);
+ const safeSDK = await initialiseGnosisSDK(podMemberSigner, safeAddress);
+
+ // 3. TribalCouncil authorises pod with POD_METADATA_REGISTER_ROLE role
+ await contracts.core
+ .connect(tribalCouncilTimelockSigner)
+ .grantRole(ethers.utils.id('POD_METADATA_REGISTER_ROLE'), timelockAddress);
+
+ // 3.0 Create transaction on Safe. Threshold set to 1 on pod
+ // - create a proposal that targets the Safe's timelock
+ // - include in the proposal tx data that will then target a part of the protocol
+ registryTxData = contracts.governanceMetadataRegistry.interface.encodeFunctionData('registerProposal', [
+ podId,
+ proposalId,
+ proposalMetadata
+ ]);
+
+ // Grant the Pod Safe and timelock eth
+ await forceEth(safeAddress);
+ await forceEth(timelockAddress);
+
+ const txArgs = createSafeTxArgs(podTimelock, 'schedule', [
+ contractAddresses.governanceMetadataRegistry,
+ 0,
+ registryTxData,
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
+ podConfig.minDelay
+ ]);
+ const safeTransaction = await safeSDK.createTransaction(txArgs);
+
+ // 3.0 Execute transaction on Safe
+ const executeTxResponse = await safeSDK.executeTransaction(safeTransaction);
+ await executeTxResponse.transactionResponse?.wait();
+ });
+
+ it('should allow a proposal to be proposed and executed', async () => {
+ // Fast forward time on timelock
+ await time.increase(podConfig.minDelay);
+
+ // Execute timelocked transaction - need to call via the podExecutor
+ const podExecutor = contracts.podExecutor;
+ const executeTx = await podExecutor.execute(
+ timelockAddress,
+ contractAddresses.governanceMetadataRegistry,
+ 0,
+ registryTxData,
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
+ '0x0000000000000000000000000000000000000000000000000000000000000001'
+ );
+ await executeTx.wait();
+
+ // 6.0 Validate that proposal was executed, verify mock proposal registered
+ const isRegistered = await contracts.governanceMetadataRegistry.isProposalRegistered(
+ podId,
+ proposalId,
+ proposalMetadata
+ );
+ expect(isRegistered).to.equal(true);
+ });
+
+ it('should allow the nopeDAO to veto a proposal through the pod', async () => {
+ // 1. Create proposal on the NopeDAO to veto. This proposal needs to
+ // call the podAdminGateway.veto() method with the proposalId that is in the timelock
+ // 2. Have a member with >quorum TRIBE vote for proposal
+ // 3. Validate that proposal is executed
+ const userWithTribe = await getImpersonatedSigner(contractAddresses.multisig);
+ const timelockProposalId = await podTimelock.hashOperation(
+ contractAddresses.governanceMetadataRegistry,
+ 0,
+ registryTxData,
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
+ '0x0000000000000000000000000000000000000000000000000000000000000001'
+ );
+
+ // User proposes on NopeDAO
+ const nopeDAO = contracts.nopeDAO;
+ const description = 'Veto proposal';
+ const calldatas = [contracts.podAdminGateway.interface.encodeFunctionData('veto', [podId, timelockProposalId])];
+ const targets = [contractAddresses.podAdminGateway];
+ const values = [0];
+
+ const proposeTx = await nopeDAO.propose(targets, values, calldatas, description);
+ const { args } = (await proposeTx.wait()).events.find((elem) => elem.event === 'ProposalCreated');
+ const nopeDAOProposalId = args.proposalId;
+
+ // Use the proposalID to vote for this proposal on the nopeDAO
+ await nopeDAO.connect(userWithTribe).castVote(nopeDAOProposalId, 1);
+
+ const descriptionHash = ethers.utils.id(description);
+ await nopeDAO.execute(targets, values, calldatas, descriptionHash);
+
+ // Validate proposal was nope'd
+ const readyTimestamp = await podTimelock.getTimestamp(timelockProposalId);
+ expect(readyTimestamp).to.equal(0);
+ });
+});
diff --git a/test/integration/tests/psm.ts b/test/integration/tests/psm.ts
index 63c90e9f5..9cc59330b 100644
--- a/test/integration/tests/psm.ts
+++ b/test/integration/tests/psm.ts
@@ -9,7 +9,7 @@ import proposals from '@test/integration/proposals_config';
import { forceEth } from '@test/integration/setup/utils';
import { Contract, Signer } from 'ethers';
import { expectApprox } from '@test/helpers';
-import { WETH9 } from '@custom-types/contracts';
+import { FeiDAO, WETH9 } from '@custom-types/contracts';
const toBN = ethers.BigNumber.from;
@@ -23,14 +23,19 @@ describe('e2e-peg-stability-module', function () {
let ethPSMRouter: Contract;
let userAddress;
let minterAddress;
+ let governorAddress;
let weth: Contract;
let dai: Contract;
let daiPSM: Contract;
+ let raiPriceBoundPSM: Contract;
let ethPSM: Contract;
let fei: Contract;
+ let rai: Contract;
let core: Contract;
- let feiDAOTimelock: Contract;
+ let feiDAOTimelock;
let beneficiaryAddress1;
+ let guardianAddress;
+ let daiFixedPricePSM: Contract;
before(async () => {
chai.use(CBN(ethers.BigNumber));
@@ -44,18 +49,6 @@ describe('e2e-peg-stability-module', function () {
deployAddress = (await ethers.getSigners())[0].address;
if (!deployAddress) throw new Error(`No deploy address!`);
const addresses = await getAddresses();
- // add any addresses you want to impersonate here
- const impersonatedAddresses = [
- addresses.userAddress,
- addresses.pcvControllerAddress,
- addresses.governorAddress,
- addresses.minterAddress,
- addresses.burnerAddress,
- addresses.beneficiaryAddress1,
- addresses.beneficiaryAddress2
- ];
-
- ({ userAddress, minterAddress, beneficiaryAddress1 } = addresses);
doLogging = Boolean(process.env.LOGGING);
@@ -69,9 +62,38 @@ describe('e2e-peg-stability-module', function () {
doLogging && console.log(`Loading environment...`);
({ contracts } = await e2eCoord.loadEnvironment());
- ({ dai, weth, daiPSM, ethPSM, ethPSMRouter, fei, core, daiPCVDripController, feiDAOTimelock } = contracts);
+ ({
+ dai,
+ weth,
+ daiFixedPricePSM,
+ ethPSM,
+ ethPSMRouter,
+ fei,
+ core,
+ daiPCVDripController,
+ feiDAOTimelock,
+ raiPriceBoundPSM,
+ rai
+ } = contracts);
doLogging && console.log(`Environment loaded.`);
weth = contracts.weth as WETH9;
+ daiPSM = daiFixedPricePSM;
+
+ // add any addresses you want to impersonate here
+ const impersonatedAddresses = [
+ addresses.userAddress,
+ addresses.pcvControllerAddress,
+ addresses.governorAddress,
+ addresses.minterAddress,
+ addresses.burnerAddress,
+ addresses.beneficiaryAddress1,
+ addresses.beneficiaryAddress2,
+ addresses.guardianAddress,
+ contracts.feiDAOTimelock.address
+ ];
+
+ ({ userAddress, minterAddress, beneficiaryAddress1, guardianAddress } = addresses);
+
await core.grantMinter(minterAddress);
for (const address of impersonatedAddresses) {
@@ -255,7 +277,7 @@ describe('e2e-peg-stability-module', function () {
});
});
- describe.skip('dai-psm pcv drip controller', async () => {
+ describe('dai-psm pcv drip controller', async () => {
before(async function () {
// make sure there is enough DAI available to the dripper and on the PSM
const DAI_HOLDER = '0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7'; // curve 3pool
@@ -267,7 +289,7 @@ describe('e2e-peg-stability-module', function () {
);
await contracts.compoundDaiPCVDeposit.deposit();
await contracts.dai.connect(signer).transfer(
- contracts.daiPSM.address,
+ daiPSM.address,
'5500000000000000000000000' // 5.5M
);
});
@@ -297,15 +319,15 @@ describe('e2e-peg-stability-module', function () {
});
});
- describe.skip('dai_psm', async () => {
+ describe('dai_psm', async () => {
describe('redeem', function () {
- const redeemAmount = 10_000_000;
+ const redeemAmount = 500_000;
beforeEach(async () => {
await fei.connect(impersonatedSigners[minterAddress]).mint(userAddress, redeemAmount);
await fei.connect(impersonatedSigners[userAddress]).approve(daiPSM.address, redeemAmount);
});
- it('exchanges 10,000,000 FEI for DAI', async () => {
+ it('exchanges 500,000 FEI for DAI', async () => {
const startingFEIBalance = await fei.balanceOf(userAddress);
const startingDAIBalance = await dai.balanceOf(userAddress);
const expectedDAIAmount = await daiPSM.getRedeemAmountOut(redeemAmount);
@@ -320,21 +342,6 @@ describe('e2e-peg-stability-module', function () {
expect(expectedDAIAmount).to.be.gt(0);
});
- it('exchanges 5,000,000 FEI for DAI', async () => {
- const startingFEIBalance = await fei.balanceOf(userAddress);
- const startingDAIBalance = await dai.balanceOf(userAddress);
- const expectedDAIAmount = await daiPSM.getRedeemAmountOut(redeemAmount / 2);
-
- await daiPSM.connect(impersonatedSigners[userAddress]).redeem(userAddress, redeemAmount / 2, expectedDAIAmount);
-
- const endingFEIBalance = await fei.balanceOf(userAddress);
- const endingDAIBalance = await dai.balanceOf(userAddress);
-
- expect(endingDAIBalance.sub(startingDAIBalance)).to.be.equal(expectedDAIAmount);
- expect(startingFEIBalance.sub(endingFEIBalance)).to.be.equal(redeemAmount / 2);
- expect(expectedDAIAmount).to.be.gt(0); //if you receive 0 weth, there is an oracle failure or improperly setup oracle
- });
-
it('DAI price sanity check', async () => {
const actualDAIAmountOut = await daiPSM.getRedeemAmountOut(redeemAmount);
await expectApprox(actualDAIAmountOut, redeemAmount);
@@ -342,7 +349,7 @@ describe('e2e-peg-stability-module', function () {
});
describe('mint', function () {
- const mintAmount = 10_000_000;
+ const mintAmount = 500_000;
beforeEach(async () => {
const daiAccount = '0xbb2e5c2ff298fd96e166f90c8abacaf714df14f8';
@@ -352,7 +359,7 @@ describe('e2e-peg-stability-module', function () {
await dai.connect(impersonatedSigners[userAddress]).approve(daiPSM.address, mintAmount);
});
- it('mint succeeds with 5_000_000 DAI', async () => {
+ it('mint succeeds with 500_000 DAI', async () => {
const minAmountOut = await daiPSM.getMintAmountOut(mintAmount / 2);
const userStartingFEIBalance = await fei.balanceOf(userAddress);
const psmStartingDAIBalance = await dai.balanceOf(daiPSM.address);
@@ -366,23 +373,113 @@ describe('e2e-peg-stability-module', function () {
expect(psmEndingDAIBalance.sub(psmStartingDAIBalance)).to.be.equal(mintAmount / 2);
});
- it('mint succeeds with 10_000_000 DAI', async () => {
- const minAmountOut = await daiPSM.getMintAmountOut(mintAmount);
+ it('DAI price sanity check', async () => {
+ const actualDAIAmountOut = await daiPSM.getMintAmountOut(mintAmount);
+ await expectApprox(actualDAIAmountOut, mintAmount);
+ });
+ });
+ });
+
+ describe('rai_psm', async () => {
+ describe('redeem', function () {
+ const redeemAmount = 1000;
+ beforeEach(async () => {
+ await fei.connect(impersonatedSigners[minterAddress]).mint(userAddress, redeemAmount);
+ await fei.connect(impersonatedSigners[userAddress]).approve(raiPriceBoundPSM.address, redeemAmount);
+ });
+
+ it('exchanges 1000 FEI for rai', async () => {
+ const startingFEIBalance = await fei.balanceOf(userAddress);
+ const startingraiBalance = await rai.balanceOf(userAddress);
+ const expectedraiAmount = await raiPriceBoundPSM.getRedeemAmountOut(redeemAmount);
+
+ await raiPriceBoundPSM
+ .connect(impersonatedSigners[userAddress])
+ .redeem(userAddress, redeemAmount, expectedraiAmount);
+
+ const endingFEIBalance = await fei.balanceOf(userAddress);
+ const endingraiBalance = await rai.balanceOf(userAddress);
+
+ expect(endingraiBalance.sub(startingraiBalance)).to.be.equal(expectedraiAmount);
+ expect(startingFEIBalance.sub(endingFEIBalance)).to.be.equal(redeemAmount);
+ expect(expectedraiAmount).to.be.gt(0);
+ });
+
+ it('exchanges 500 FEI for rai', async () => {
+ const startingFEIBalance = await fei.balanceOf(userAddress);
+ const startingraiBalance = await rai.balanceOf(userAddress);
+ const expectedraiAmount = await raiPriceBoundPSM.getRedeemAmountOut(redeemAmount / 2);
+
+ await raiPriceBoundPSM
+ .connect(impersonatedSigners[userAddress])
+ .redeem(userAddress, redeemAmount / 2, expectedraiAmount);
+
+ const endingFEIBalance = await fei.balanceOf(userAddress);
+ const endingraiBalance = await rai.balanceOf(userAddress);
+
+ expect(endingraiBalance.sub(startingraiBalance)).to.be.equal(expectedraiAmount);
+ expect(startingFEIBalance.sub(endingFEIBalance)).to.be.equal(redeemAmount / 2);
+ expect(expectedraiAmount).to.be.gt(0); //if you receive 0 weth, there is an oracle failure or improperly setup oracle
+ });
+
+ it('rai price sanity check', async () => {
+ const actualraiAmountOut = await raiPriceBoundPSM.getRedeemAmountOut(redeemAmount);
+ await expectApprox(actualraiAmountOut, redeemAmount);
+ });
+ });
+
+ describe('mint', function () {
+ const mintAmount = 10_000_000;
+
+ beforeEach(async () => {
+ const raiAccount = '0x618788357d0ebd8a37e763adab3bc575d54c2c7d';
+ const raiSigner = await getImpersonatedSigner(raiAccount);
+ await forceEth(raiAccount);
+ await rai.connect(raiSigner).transfer(userAddress, mintAmount);
+ await rai.connect(impersonatedSigners[userAddress]).approve(raiPriceBoundPSM.address, mintAmount * 2);
+ });
+
+ it('cannot mint because the rai psm is paused', async () => {
+ await expect(
+ raiPriceBoundPSM.connect(impersonatedSigners[userAddress]).mint(userAddress, mintAmount, mintAmount)
+ ).to.be.revertedWith('PegStabilityModule: Minting paused');
+ });
+
+ it('mint succeeds with 5_000_000 rai', async () => {
+ await raiPriceBoundPSM.connect(impersonatedSigners[feiDAOTimelock.address]).unpauseMint();
+ const minAmountOut = await raiPriceBoundPSM.getMintAmountOut(mintAmount / 2);
const userStartingFEIBalance = await fei.balanceOf(userAddress);
- const psmStartingDAIBalance = await dai.balanceOf(daiPSM.address);
+ const psmStartingraiBalance = await rai.balanceOf(raiPriceBoundPSM.address);
- await daiPSM.connect(impersonatedSigners[userAddress]).mint(userAddress, mintAmount, minAmountOut);
+ await raiPriceBoundPSM
+ .connect(impersonatedSigners[userAddress])
+ .mint(userAddress, mintAmount / 2, minAmountOut);
- const psmEndingDAIBalance = await dai.balanceOf(daiPSM.address);
+ const psmEndingraiBalance = await rai.balanceOf(raiPriceBoundPSM.address);
+ const userEndingFEIBalance = await fei.balanceOf(userAddress);
+
+ expect(userEndingFEIBalance.sub(userStartingFEIBalance)).to.be.gte(minAmountOut);
+ expect(psmEndingraiBalance.sub(psmStartingraiBalance)).to.be.equal(mintAmount / 2);
+ });
+
+ it('mint succeeds with 10_000_000 rai', async () => {
+ await raiPriceBoundPSM.connect(impersonatedSigners[feiDAOTimelock.address]).unpauseMint();
+ const minAmountOut = await raiPriceBoundPSM.getMintAmountOut(mintAmount);
+ const userStartingFEIBalance = await fei.balanceOf(userAddress);
+ const psmStartingraiBalance = await rai.balanceOf(raiPriceBoundPSM.address);
+
+ await raiPriceBoundPSM.connect(impersonatedSigners[userAddress]).mint(userAddress, mintAmount, minAmountOut);
+
+ const psmEndingraiBalance = await rai.balanceOf(raiPriceBoundPSM.address);
const userEndingFEIBalance = await fei.balanceOf(userAddress);
expect(userEndingFEIBalance.sub(userStartingFEIBalance)).to.be.equal(minAmountOut);
- expect(psmEndingDAIBalance.sub(psmStartingDAIBalance)).to.be.equal(mintAmount);
+ expect(psmEndingraiBalance.sub(psmStartingraiBalance)).to.be.equal(mintAmount);
});
- it('DAI price sanity check', async () => {
- const actualDAIAmountOut = await daiPSM.getMintAmountOut(mintAmount);
- await expectApprox(actualDAIAmountOut, mintAmount);
+ it('rai price sanity check', async () => {
+ const actualraiAmountOut = await raiPriceBoundPSM.getMintAmountOut(mintAmount);
+ await expectApprox(actualraiAmountOut, mintAmount);
});
});
});
diff --git a/test/integration/tests/tribalCouncil.ts b/test/integration/tests/tribalCouncil.ts
new file mode 100644
index 000000000..a44ecd28a
--- /dev/null
+++ b/test/integration/tests/tribalCouncil.ts
@@ -0,0 +1,161 @@
+import { PodFactory, PodAdminGateway, RoleBastion, Core } from '@custom-types/contracts';
+import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers';
+import chai, { expect } from 'chai';
+import CBN from 'chai-bn';
+import { solidity } from 'ethereum-waffle';
+import { ethers } from 'hardhat';
+import { NamedAddresses, NamedContracts } from '@custom-types/types';
+import { getImpersonatedSigner, resetFork } from '@test/helpers';
+import proposals from '@test/integration/proposals_config';
+import { forceEth } from '@test/integration/setup/utils';
+import { TestEndtoEndCoordinator } from '../setup';
+import { BigNumber } from 'ethers';
+import { tribalCouncilMembers, MIN_TIMELOCK_DELAY } from '@protocol/optimisticGovernance';
+
+const toBN = ethers.BigNumber.from;
+
+describe('Tribal Council', function () {
+ let contracts: NamedContracts;
+ let contractAddresses: NamedAddresses;
+ let e2eCoord: TestEndtoEndCoordinator;
+ let doLogging: boolean;
+ let podFactory: PodFactory;
+ let podAdminGateway: PodAdminGateway;
+ let core: Core;
+ let roleBastion: RoleBastion;
+ let tribalCouncilPodId: BigNumber;
+ let feiDAOTimelockSigner: SignerWithAddress;
+ let tribalCouncilTimelockSigner: SignerWithAddress;
+ let podConfig: any;
+
+ const dummyRole = ethers.utils.id('DUMMY_ROLE');
+
+ before(async () => {
+ chai.use(CBN(ethers.BigNumber));
+ chai.use(solidity);
+ await resetFork();
+ });
+
+ before(async function () {
+ // Setup test environment and get contracts
+ const version = 1;
+ // Set deploy address to Tom's address. This has Orca SHIP
+ const deployAddress = '0x64c4Bffb220818F0f2ee6DAe7A2F17D92b359c5d';
+
+ doLogging = Boolean(process.env.LOGGING);
+
+ const config = {
+ logging: doLogging,
+ deployAddress,
+ version: version
+ };
+
+ e2eCoord = new TestEndtoEndCoordinator(config, proposals);
+
+ doLogging && console.log(`Loading environment...`);
+ ({ contracts, contractAddresses } = await e2eCoord.loadEnvironment());
+ doLogging && console.log(`Environment loaded.`);
+
+ podFactory = contracts.podFactory as PodFactory;
+ podAdminGateway = contracts.podAdminGateway as PodAdminGateway;
+ core = contracts.core as Core;
+ roleBastion = contracts.roleBastion as RoleBastion;
+
+ tribalCouncilPodId = await podFactory.getPodId(contractAddresses.tribalCouncilTimelock);
+
+ feiDAOTimelockSigner = await getImpersonatedSigner(contractAddresses.feiDAOTimelock);
+ tribalCouncilTimelockSigner = await getImpersonatedSigner(contractAddresses.tribalCouncilTimelock);
+
+ await forceEth(contractAddresses.tribalCouncilTimelock);
+ await forceEth(contractAddresses.feiDAOTimelock);
+
+ podConfig = {
+ members: [
+ '0x000000000000000000000000000000000000000D',
+ '0x000000000000000000000000000000000000000E',
+ '0x000000000000000000000000000000000000000F',
+ '0x0000000000000000000000000000000000000010'
+ ],
+ threshold: 1,
+ label: '0x54726962616c436f726e63696c00000000000000000000000000000000000000', // TribalCouncil
+ ensString: 'testPod.eth',
+ imageUrl: 'testPod.com',
+ minDelay: MIN_TIMELOCK_DELAY,
+ numMembers: 4,
+ admin: podAdminGateway.address
+ };
+ });
+
+ /////////////// DAO management of Tribal Council //////////////
+ it('should allow DAO to add members', async () => {
+ const initialNumPodMembers = await podFactory.getNumMembers(tribalCouncilPodId);
+
+ const newMember = '0x0000000000000000000000000000000000000030';
+ await podAdminGateway.connect(feiDAOTimelockSigner).addPodMember(tribalCouncilPodId, newMember);
+
+ const numPodMembers = await podFactory.getNumMembers(tribalCouncilPodId);
+ await expect(numPodMembers).to.equal(initialNumPodMembers.add(toBN(1)));
+
+ const podMembers = await podFactory.getPodMembers(tribalCouncilPodId);
+ expect(podMembers[0]).to.equal(newMember);
+ });
+
+ it('should allow DAO to remove members', async () => {
+ const initialNumPodMembers = await podFactory.getNumMembers(tribalCouncilPodId);
+
+ const memberToBurn = tribalCouncilMembers[0];
+ await podAdminGateway.connect(feiDAOTimelockSigner).removePodMember(tribalCouncilPodId, memberToBurn);
+
+ const numPodMembers = await podFactory.getNumMembers(tribalCouncilPodId);
+ await expect(numPodMembers).to.equal(initialNumPodMembers.sub(toBN(1)));
+
+ const podMembers = await podFactory.getPodMembers(tribalCouncilPodId);
+ expect(!podMembers.includes(memberToBurn)).to.be.true;
+ });
+
+ it('should be able to toggle membership transfers', async () => {
+ await podAdminGateway.connect(feiDAOTimelockSigner).unlockMembershipTransfers(tribalCouncilPodId);
+ const isLocked = await podFactory.getIsMembershipTransferLocked(tribalCouncilPodId);
+ expect(isLocked).to.be.false;
+ });
+
+ /////////// TribalCouncil management of other pods /////////////
+ it('can create a child pod', async () => {
+ const deployTx = await podFactory.connect(tribalCouncilTimelockSigner).createOptimisticPod(podConfig);
+ const { args } = (await deployTx.wait()).events.find((elem) => elem.event === 'CreatePod');
+ const podId = args.podId;
+ const numPodMembers = await podFactory.getNumMembers(podId);
+ expect(numPodMembers).to.equal(4);
+ });
+
+ it('can create a new role via the Role Bastion', async () => {
+ await roleBastion.connect(tribalCouncilTimelockSigner).createRole(dummyRole);
+
+ // Validate that the role was created with the admin set to ROLE_ADMIN
+ const roleAdmin = await core.getRoleAdmin(dummyRole);
+ expect(roleAdmin).to.equal(ethers.utils.id('ROLE_ADMIN'));
+ });
+
+ it('can authorise a pod timelock with a role', async () => {
+ // Grant new role to the created pod timelock
+ const podTimelock = await podFactory.getPodTimelock(tribalCouncilPodId);
+ await core.connect(tribalCouncilTimelockSigner).grantRole(dummyRole, podTimelock);
+
+ // Validate has role
+ const hasRole = await core.hasRole(dummyRole, podTimelock);
+ expect(hasRole).to.equal(true);
+ });
+
+ it('can revoke a role from a pod timelock', async () => {
+ // Grant new role to the created pod timelock
+ const podTimelock = await podFactory.getPodTimelock(tribalCouncilPodId);
+ await core.connect(tribalCouncilTimelockSigner).grantRole(dummyRole, podTimelock);
+
+ // Revoke role
+ await core.connect(tribalCouncilTimelockSigner).revokeRole(dummyRole, podTimelock);
+
+ // Validate does not have role
+ const hasRole = await core.hasRole(dummyRole, podTimelock);
+ expect(hasRole).to.equal(false);
+ });
+});
diff --git a/test/unit/fei/minter/GlobalRateLimitedMinter.test.ts b/test/unit/fei/minter/GlobalRateLimitedMinter.test.ts
new file mode 100644
index 000000000..d5cee4e6a
--- /dev/null
+++ b/test/unit/fei/minter/GlobalRateLimitedMinter.test.ts
@@ -0,0 +1,395 @@
+import { expectRevert, getAddresses, getCore, ZERO_ADDRESS } from '@test/helpers';
+import { expect } from 'chai';
+import hre, { ethers } from 'hardhat';
+import { Signer, utils } from 'ethers';
+import { Core, Fei, GlobalRateLimitedMinter, MockMinter } from '@custom-types/contracts';
+import { keccak256 } from 'ethers/lib/utils';
+
+const toBN = ethers.BigNumber.from;
+const scale = ethers.constants.WeiPerEther;
+
+describe('GlobalRateLimitedMinterGovernor', function () {
+ let userAddress;
+ let governorAddress;
+ let globalRateLimitedMinter: GlobalRateLimitedMinter;
+ let authorizedMinter: MockMinter;
+ let core: Core;
+ let fei: Fei;
+
+ const ADD_MINTER_ROLE = keccak256(utils.toUtf8Bytes('ADD_MINTER_ROLE'));
+ const GOVERN_ROLE = keccak256(utils.toUtf8Bytes('GOVERN_ROLE'));
+
+ const globalRateLimitPerSecond = scale.mul(100_000);
+ const maxRateLimitPerSecond = globalRateLimitPerSecond.div(10);
+ const bufferCap = scale.mul(100_000_000);
+ const maxBufferCap = bufferCap.div(10);
+
+ const impersonatedSigners: { [key: string]: Signer } = {};
+
+ before(async () => {
+ const addresses = await getAddresses();
+
+ // add any addresses you want to impersonate here
+ const impersonatedAddresses = [addresses.userAddress, addresses.pcvControllerAddress, addresses.governorAddress];
+
+ for (const address of impersonatedAddresses) {
+ await hre.network.provider.request({
+ method: 'hardhat_impersonateAccount',
+ params: [address]
+ });
+
+ impersonatedSigners[address] = await ethers.getSigner(address);
+ }
+ });
+
+ beforeEach(async function () {
+ ({ userAddress, governorAddress } = await getAddresses());
+
+ core = await getCore();
+
+ fei = await ethers.getContractAt('Fei', await core.fei());
+
+ globalRateLimitedMinter = await (
+ await ethers.getContractFactory('GlobalRateLimitedMinter')
+ ).deploy(
+ core.address,
+ globalRateLimitPerSecond,
+ globalRateLimitPerSecond,
+ maxRateLimitPerSecond,
+ maxBufferCap,
+ bufferCap
+ );
+
+ authorizedMinter = await (await ethers.getContractFactory('MockMinter')).deploy(globalRateLimitedMinter.address);
+
+ await core.connect(impersonatedSigners[governorAddress]).grantMinter(globalRateLimitedMinter.address);
+
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(authorizedMinter.address, globalRateLimitPerSecond, bufferCap);
+ });
+
+ describe('Add Minter', function () {
+ beforeEach(async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .removeAddress(authorizedMinter.address);
+ });
+
+ it('starting values are 0', async function () {
+ expect(await globalRateLimitedMinter.getBufferCap(authorizedMinter.address)).to.be.equal(0);
+ expect(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address)).to.be.equal(0);
+ expect(await globalRateLimitedMinter.getRateLimitPerSecond(authorizedMinter.address)).to.be.equal(0);
+ });
+
+ it('governor succeeds and caps are correct', async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(authorizedMinter.address, globalRateLimitPerSecond, bufferCap);
+
+ expect(await globalRateLimitedMinter.getBufferCap(authorizedMinter.address)).to.be.equal(bufferCap);
+ expect(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address)).to.be.equal(bufferCap);
+ expect(await globalRateLimitedMinter.getRateLimitPerSecond(authorizedMinter.address)).to.be.equal(
+ globalRateLimitPerSecond
+ );
+ });
+
+ it('fails when buffer cap is over global max', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(authorizedMinter.address, globalRateLimitPerSecond, bufferCap.mul(2)),
+ 'MultiRateLimited: new buffercap too high'
+ );
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[userAddress])
+ .addAddress(authorizedMinter.address, globalRateLimitPerSecond, bufferCap),
+ 'CoreRef: Caller is not a governor'
+ );
+ });
+ });
+
+ describe('Non governor actions', function () {
+ beforeEach(async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .removeAddress(authorizedMinter.address);
+
+ await core.createRole(ADD_MINTER_ROLE, GOVERN_ROLE);
+ await core.grantRole(ADD_MINTER_ROLE, governorAddress);
+ });
+
+ describe('Add Minter with Caps', function () {
+ it('cannot add the same address twice', async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ ['addAddressAsMinter(address)'](authorizedMinter.address);
+
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ ['addAddressAsMinter(address)'](authorizedMinter.address),
+ 'MultiRateLimited: address already added'
+ );
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[userAddress])
+ ['addAddressAsMinter(address)'](authorizedMinter.address),
+ 'UNAUTHORIZED'
+ );
+ });
+ });
+
+ describe('Add Minter Under Caps', function () {
+ let rateLimitPerSecond;
+ let bufferCap;
+
+ beforeEach(async function () {
+ rateLimitPerSecond = await globalRateLimitedMinter.individualMaxRateLimitPerSecond();
+ bufferCap = await globalRateLimitedMinter.individualMaxBufferCap();
+ });
+
+ it('cannot add the same address twice', async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ ['addAddressAsMinter(address,uint112,uint112)'](authorizedMinter.address, rateLimitPerSecond, bufferCap);
+
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ ['addAddressAsMinter(address,uint112,uint112)'](authorizedMinter.address, rateLimitPerSecond, bufferCap),
+ 'MultiRateLimited: address already added'
+ );
+ });
+
+ it('cannot add an address over max individual rate limit per second', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ ['addAddressAsMinter(address,uint112,uint112)'](
+ authorizedMinter.address,
+ rateLimitPerSecond.add(1),
+ bufferCap
+ ),
+ 'MultiRateLimited: rlps exceeds role amt'
+ );
+ });
+
+ it('cannot add an address over max buffer cap', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ ['addAddressAsMinter(address,uint112,uint112)'](
+ authorizedMinter.address,
+ rateLimitPerSecond,
+ bufferCap.add(1)
+ ),
+ 'MultiRateLimited: buffercap exceeds role amt'
+ );
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[userAddress])
+ ['addAddressAsMinter(address,uint112,uint112)'](authorizedMinter.address, rateLimitPerSecond, bufferCap),
+ 'UNAUTHORIZED'
+ );
+ });
+ });
+ });
+
+ describe('Remove Minter', function () {
+ it('governor succeeds and all caps are zero', async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .removeAddress(authorizedMinter.address);
+
+ expect(await globalRateLimitedMinter.getRateLimitPerSecond(authorizedMinter.address)).to.be.equal(0);
+ expect(await globalRateLimitedMinter.getBufferCap(authorizedMinter.address)).to.be.equal(0);
+
+ await expectRevert(authorizedMinter.mint(authorizedMinter.address, 1), 'MultiRateLimited: no rate limit buffer');
+ });
+
+ it('governor fails to remove non rate limited address', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[governorAddress]).removeAddress(ZERO_ADDRESS),
+ 'MultiRateLimited: rate limit address does not exist'
+ );
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).removeAddress(authorizedMinter.address),
+ 'CoreRef: Caller is not a guardian or governor'
+ );
+ });
+ });
+
+ describe('Update Minter Address', function () {
+ it('governor succeeds', async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(authorizedMinter.address, maxRateLimitPerSecond, maxBufferCap);
+ });
+
+ it('governor fails when new limit is over buffer cap', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(authorizedMinter.address, maxRateLimitPerSecond, bufferCap.add(1)),
+ 'MultiRateLimited: buffercap too high'
+ );
+ });
+
+ it('governor fails when new limit is over max rate limit per second', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(authorizedMinter.address, globalRateLimitPerSecond.add(1), maxBufferCap),
+ 'MultiRateLimited: rateLimitPerSecond too high'
+ );
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).updateAddress(authorizedMinter.address, 0, 0),
+ 'UNAUTHORIZED'
+ );
+ });
+ });
+
+ describe('Update Address With Caps', function () {
+ beforeEach(async () => {
+ await core.createRole(ADD_MINTER_ROLE, GOVERN_ROLE);
+ await core.grantRole(ADD_MINTER_ROLE, governorAddress);
+ });
+
+ it('minor minter add role succeeds', async function () {
+ const startingBufferStored = (await globalRateLimitedMinter.rateLimitPerAddress(authorizedMinter.address))
+ .bufferStored;
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(authorizedMinter.address, maxRateLimitPerSecond, maxBufferCap);
+
+ const { bufferCap, bufferStored, rateLimitPerSecond } = await globalRateLimitedMinter.rateLimitPerAddress(
+ authorizedMinter.address
+ );
+
+ expect(rateLimitPerSecond).to.be.equal(maxRateLimitPerSecond);
+ expect(bufferStored).to.be.equal(startingBufferStored);
+ expect(bufferCap).to.be.equal(maxBufferCap);
+ });
+
+ it('minor minter add role fails when new limit is over buffer cap', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(authorizedMinter.address, maxRateLimitPerSecond, bufferCap.add(1)),
+ 'MultiRateLimited: max buffer cap exceeds non governor allowable amount'
+ );
+ });
+
+ it('minor minter add role fails when address is non rate limited address', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(ZERO_ADDRESS, maxRateLimitPerSecond, bufferCap.add(1)),
+ 'MultiRateLimited: rate limit address does not exist'
+ );
+ });
+
+ it('minor minter add role fails when new limit is over max rate limit per second', async function () {
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(authorizedMinter.address, globalRateLimitPerSecond.add(1), maxBufferCap),
+ 'MultiRateLimited: rate limit per second exceeds non governor allowable amount'
+ );
+ });
+
+ it('unauthorized reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).updateAddress(authorizedMinter.address, 0, 0),
+ 'UNAUTHORIZED'
+ );
+ });
+ });
+
+ describe('setBufferCap', function () {
+ it('governor succeeds', async function () {
+ const newBufferCap = 10000;
+ await globalRateLimitedMinter.connect(impersonatedSigners[governorAddress]).setBufferCap(newBufferCap);
+
+ expect(await globalRateLimitedMinter.bufferCap()).to.be.equal(newBufferCap);
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).setBufferCap('10000'),
+ 'CoreRef: Caller is not a governor'
+ );
+ });
+ });
+
+ describe('updateMaxBufferCap', function () {
+ it('governor succeeds', async function () {
+ const newRateLimitPerSecond = 10000;
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateMaxBufferCap(newRateLimitPerSecond);
+
+ expect(await globalRateLimitedMinter.individualMaxBufferCap()).to.be.equal(newRateLimitPerSecond);
+ });
+
+ it('governor fails when new buffer cap is over global max', async function () {
+ const newBufferCap = bufferCap.add(1);
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[governorAddress]).updateMaxBufferCap(newBufferCap),
+ 'MultiRateLimited: exceeds global buffer cap'
+ );
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).updateMaxBufferCap('10000'),
+ 'CoreRef: Caller is not a governor'
+ );
+ });
+ });
+
+ describe('updateMaxRateLimitPerSecond', function () {
+ it('governor succeeds', async function () {
+ const newRateLimitPerSecond = 10000;
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateMaxRateLimitPerSecond(newRateLimitPerSecond);
+
+ expect(await globalRateLimitedMinter.individualMaxRateLimitPerSecond()).to.be.equal(newRateLimitPerSecond);
+ });
+
+ it('governor fails when over global max rate limit per second', async function () {
+ const newRateLimitPerSecond = globalRateLimitPerSecond.add(1);
+ await expectRevert(
+ globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateMaxRateLimitPerSecond(newRateLimitPerSecond),
+ 'MultiRateLimited: exceeds global max rate limit per second'
+ );
+ });
+
+ it('non-governor reverts', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).updateMaxRateLimitPerSecond('10000'),
+ 'CoreRef: Caller is not a governor'
+ );
+ });
+ });
+});
diff --git a/test/unit/fei/minter/GlobalRateLimitedMinterGovernor.test.ts b/test/unit/fei/minter/GlobalRateLimitedMinterGovernor.test.ts
new file mode 100644
index 000000000..4ce98fa05
--- /dev/null
+++ b/test/unit/fei/minter/GlobalRateLimitedMinterGovernor.test.ts
@@ -0,0 +1,363 @@
+import { time, expectRevert, expectApprox, getAddresses, getCore } from '@test/helpers';
+import { expect } from 'chai';
+import hre, { ethers } from 'hardhat';
+import { Contract, Signer } from 'ethers';
+import { Core, Fei, GlobalRateLimitedMinter } from '@custom-types/contracts';
+
+const scale = ethers.constants.WeiPerEther;
+
+describe('GlobalRateLimitedMinterBuffer', function () {
+ let userAddress;
+ let governorAddress;
+ let globalRateLimitedMinter: GlobalRateLimitedMinter;
+ let authorizedMinter: Contract;
+ let core: Core;
+ let fei: Fei;
+
+ const globalRateLimitPerSecond = scale.mul(100_000);
+ const maxRateLimitPerSecond = globalRateLimitPerSecond.div(10);
+ const bufferCap = scale.mul(100_000_000);
+ const maxBufferCap = bufferCap.div(10);
+
+ const impersonatedSigners: { [key: string]: Signer } = {};
+
+ before(async () => {
+ const addresses = await getAddresses();
+
+ // add any addresses you want to impersonate here
+ const impersonatedAddresses = [addresses.userAddress, addresses.pcvControllerAddress, addresses.governorAddress];
+
+ for (const address of impersonatedAddresses) {
+ await hre.network.provider.request({
+ method: 'hardhat_impersonateAccount',
+ params: [address]
+ });
+
+ impersonatedSigners[address] = await ethers.getSigner(address);
+ }
+ });
+
+ beforeEach(async function () {
+ ({ userAddress, governorAddress } = await getAddresses());
+
+ core = await getCore();
+
+ fei = await ethers.getContractAt('Fei', await core.fei());
+
+ globalRateLimitedMinter = await (
+ await ethers.getContractFactory('GlobalRateLimitedMinter')
+ ).deploy(
+ core.address,
+ globalRateLimitPerSecond,
+ globalRateLimitPerSecond,
+ maxRateLimitPerSecond,
+ maxBufferCap,
+ bufferCap
+ );
+
+ authorizedMinter = await (await ethers.getContractFactory('MockMinter')).deploy(globalRateLimitedMinter.address);
+
+ await core.connect(impersonatedSigners[governorAddress]).grantMinter(globalRateLimitedMinter.address);
+
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(authorizedMinter.address, globalRateLimitPerSecond, bufferCap);
+ });
+
+ describe('Init', function () {
+ it('buffercap is correct on individual minter', async function () {
+ expect((await globalRateLimitedMinter.rateLimitPerAddress(authorizedMinter.address)).bufferCap).to.be.equal(
+ bufferCap
+ );
+ });
+
+ it('rateLimitPerSecond is correctly initialized on individual minter', async function () {
+ expect(
+ (await globalRateLimitedMinter.rateLimitPerAddress(authorizedMinter.address)).rateLimitPerSecond
+ ).to.be.equal(globalRateLimitPerSecond);
+ });
+
+ it('lastBufferUsedTime is not 0 individual minter', async function () {
+ expect(
+ (await globalRateLimitedMinter.rateLimitPerAddress(authorizedMinter.address)).lastBufferUsedTime
+ ).to.not.be.equal(0);
+ });
+
+ it('bufferStored is correctly initialized on individual minter', async function () {
+ expect((await globalRateLimitedMinter.rateLimitPerAddress(authorizedMinter.address)).bufferStored).to.be.equal(
+ bufferCap
+ );
+ });
+
+ it('maxBufferCap is correctly initialized on individual minter', async function () {
+ expect(await globalRateLimitedMinter.individualMaxBufferCap()).to.be.equal(maxBufferCap);
+ });
+
+ it('maxRateLimitPerSecond is correctly initialized on individual minter', async function () {
+ expect(await globalRateLimitedMinter.individualMaxRateLimitPerSecond()).to.be.equal(maxRateLimitPerSecond);
+ });
+ });
+
+ describe('Mint', function () {
+ describe('Mint Max Allowable', function () {
+ it('fully clears out buffer', async function () {
+ await authorizedMinter.mintAllFei(userAddress);
+ expect(await fei.balanceOf(userAddress)).to.be.equal(bufferCap);
+ expectApprox(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address), '0');
+ });
+
+ it('fully clears out buffer and second call mints 0 silently', async function () {
+ await authorizedMinter.mintAllFei(userAddress);
+ await authorizedMinter.mintAllFei(userAddress);
+ expectApprox(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address), '0');
+ });
+
+ it('fully clears out buffer and second call mints 0 silently', async function () {
+ await authorizedMinter.mintAllFei(userAddress);
+ await authorizedMinter.mintAllFei(userAddress);
+ expectApprox(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address), '0');
+ });
+ });
+
+ describe('Mint Max Allowable With Drained Global Buffer', function () {
+ let secondAuthorizedMinter: Contract;
+
+ before(async function () {
+ globalRateLimitedMinter = await (
+ await ethers.getContractFactory('GlobalRateLimitedMinter')
+ ).deploy(
+ core.address,
+ globalRateLimitPerSecond,
+ globalRateLimitPerSecond,
+ maxRateLimitPerSecond,
+ maxBufferCap.sub(1),
+ maxBufferCap
+ );
+
+ authorizedMinter = await (
+ await ethers.getContractFactory('MockMinter')
+ ).deploy(globalRateLimitedMinter.address);
+
+ secondAuthorizedMinter = await (
+ await ethers.getContractFactory('MockMinter')
+ ).deploy(globalRateLimitedMinter.address);
+
+ await core.connect(impersonatedSigners[governorAddress]).grantMinter(globalRateLimitedMinter.address);
+
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(authorizedMinter.address, globalRateLimitPerSecond, maxBufferCap);
+
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(secondAuthorizedMinter.address, globalRateLimitPerSecond, maxBufferCap);
+ });
+
+ it('fully clears out global buffer and second call mints 0 silently as global buffer is exhausted', async function () {
+ await secondAuthorizedMinter.mintAllFei(userAddress);
+ await authorizedMinter.mintAllFei(userAddress);
+ expectApprox(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address), '0');
+ expectApprox(await globalRateLimitedMinter.individualBuffer(secondAuthorizedMinter.address), maxBufferCap);
+ expectApprox(await globalRateLimitedMinter.buffer(), '0');
+ });
+ });
+
+ describe('Mint Fails', function () {
+ it('non whitelisted address fails mints on mintMaxAllowableFei', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).mintMaxAllowableFei(userAddress),
+ 'MultiRateLimited: no rate limit buffer'
+ );
+ expect(await fei.balanceOf(userAddress)).to.be.equal(0);
+ });
+
+ it('non whitelisted address fails mints on mint', async function () {
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).mint(userAddress, 1),
+ 'MultiRateLimited: no rate limit buffer'
+ );
+ expect(await fei.balanceOf(userAddress)).to.be.equal(0);
+ });
+ });
+
+ describe('Full mint', function () {
+ beforeEach(async function () {
+ await authorizedMinter.mint(userAddress, bufferCap);
+ });
+
+ it('clears out buffer', async function () {
+ expectApprox(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address), '0');
+ expect(await fei.balanceOf(userAddress)).to.be.equal(bufferCap);
+ });
+
+ it('second mint reverts', async function () {
+ await expectRevert(authorizedMinter.mint(userAddress, bufferCap), 'RateLimited: rate limit hit');
+ });
+
+ it('mint fails when user has no buffer or allocation in the system', async function () {
+ const { lastBufferUsedTime, bufferCap, rateLimitPerSecond, bufferStored } =
+ await globalRateLimitedMinter.rateLimitPerAddress(userAddress);
+
+ expect(lastBufferUsedTime).to.be.equal(0);
+ expect(bufferCap).to.be.equal(0);
+ expect(rateLimitPerSecond).to.be.equal(0);
+ expect(bufferStored).to.be.equal(0);
+
+ await expectRevert(
+ globalRateLimitedMinter.connect(impersonatedSigners[userAddress]).mint(userAddress, 100),
+ 'MultiRateLimited: no rate limit buffer'
+ );
+ });
+ });
+
+ it('time increase refreshes buffer', async function () {
+ await time.increase(500);
+ expectApprox(await globalRateLimitedMinter.getBufferCap(authorizedMinter.address), bufferCap.div(2));
+ });
+
+ it('time increase refreshes buffer', async function () {
+ await time.increase(1000);
+ expectApprox(await globalRateLimitedMinter.getBufferCap(authorizedMinter.address), bufferCap);
+ });
+ });
+
+ describe('Second Minter', function () {
+ let secondAuthorizedMinter: Contract;
+
+ beforeEach(async function () {
+ secondAuthorizedMinter = await (
+ await ethers.getContractFactory('MockMinter')
+ ).deploy(globalRateLimitedMinter.address);
+
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(secondAuthorizedMinter.address, globalRateLimitPerSecond, bufferCap);
+ });
+
+ it('second minter mints successfully and depletes global buffer', async function () {
+ const startingUserFeiBalance = await fei.balanceOf(userAddress);
+ await secondAuthorizedMinter.mint(userAddress, await globalRateLimitedMinter.buffer());
+ const endingUserFeiBalance = await fei.balanceOf(userAddress);
+
+ expect(endingUserFeiBalance.sub(startingUserFeiBalance)).to.be.equal(await globalRateLimitedMinter.bufferCap());
+ });
+
+ it('first and second minter mints successfully and depletes their and global buffers', async function () {
+ const globalBuffer = await globalRateLimitedMinter.buffer();
+ const mintAmount = globalBuffer.div(2);
+
+ await authorizedMinter.mint(userAddress, mintAmount);
+ await secondAuthorizedMinter.mint(userAddress, mintAmount);
+
+ /// expect individual buffers to be 50% depleted + 2 seconds of replenishment for the first minter
+ expect((await globalRateLimitedMinter.individualBuffer(secondAuthorizedMinter.address)).mul(2)).to.be.equal(
+ bufferCap
+ );
+ expect((await globalRateLimitedMinter.individualBuffer(authorizedMinter.address)).mul(2)).to.be.equal(
+ bufferCap.add(globalRateLimitPerSecond.mul(2))
+ );
+
+ /// one second has passed so buffer has replenished a tiny bit
+ expect(await globalRateLimitedMinter.buffer()).to.be.equal(globalRateLimitPerSecond);
+
+ /// assert that the first minter minted 1 second before the 2nd
+ expect(
+ (await globalRateLimitedMinter.rateLimitPerAddress(secondAuthorizedMinter.address)).lastBufferUsedTime -
+ (await globalRateLimitedMinter.rateLimitPerAddress(authorizedMinter.address)).lastBufferUsedTime
+ ).to.be.equal(1);
+
+ /// assert that the second minter updated the global buffer last used time correctly
+ expect(
+ (await globalRateLimitedMinter.rateLimitPerAddress(secondAuthorizedMinter.address)).lastBufferUsedTime
+ ).to.be.equal(await globalRateLimitedMinter.lastBufferUsedTime());
+ });
+
+ it('second minter mint fails as global buffer is depleted', async function () {
+ const remainingGlobalBuffer = await globalRateLimitedMinter.buffer();
+ await authorizedMinter.mint(userAddress, remainingGlobalBuffer);
+ await expectRevert(
+ secondAuthorizedMinter.mint(userAddress, remainingGlobalBuffer),
+ 'RateLimited: rate limit hit'
+ );
+ });
+ });
+
+ describe('Partial Mint', function () {
+ const mintAmount = '10000';
+
+ beforeEach(async function () {
+ globalRateLimitedMinter = await (
+ await ethers.getContractFactory('GlobalRateLimitedMinter')
+ ).deploy(
+ core.address,
+ globalRateLimitPerSecond,
+ globalRateLimitPerSecond,
+ maxRateLimitPerSecond,
+ maxBufferCap,
+ bufferCap
+ );
+
+ authorizedMinter = await (await ethers.getContractFactory('MockMinter')).deploy(globalRateLimitedMinter.address);
+
+ await core.connect(impersonatedSigners[governorAddress]).grantMinter(globalRateLimitedMinter.address);
+
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .addAddress(authorizedMinter.address, globalRateLimitPerSecond, bufferCap);
+
+ await authorizedMinter.mint(userAddress, mintAmount);
+ });
+
+ it('partially clears out buffer', async function () {
+ expectApprox(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address), bufferCap);
+ expect(await fei.balanceOf(userAddress)).to.be.equal(mintAmount);
+ });
+
+ it('second mint does not have enough buffer and fails', async function () {
+ await expectRevert(authorizedMinter.mint(userAddress, bufferCap.mul(2)), 'RateLimited: rate limit hit');
+ });
+
+ it('time increase replenishes buffer', async function () {
+ await time.increase('1000');
+ expectApprox(await globalRateLimitedMinter.individualBuffer(authorizedMinter.address), bufferCap.sub(mintAmount));
+ });
+ });
+
+ describe('Multi Rate Limit Buffer Exhaustion', function () {
+ const newRateLimitPerSecond = globalRateLimitPerSecond.div(10);
+ const newBufferCap = bufferCap.div(10);
+
+ beforeEach(async function () {
+ await globalRateLimitedMinter
+ .connect(impersonatedSigners[governorAddress])
+ .updateAddress(authorizedMinter.address, newRateLimitPerSecond, newBufferCap);
+
+ // clear the whole buffer out
+ await authorizedMinter.mint(userAddress, newBufferCap);
+ });
+
+ it('time increase partially replenishes buffer and mint fails due to MultiRateLimit', async function () {
+ /// only refresh the buffer 10%
+ await time.increase('100');
+ await expectRevert(authorizedMinter.mint(userAddress, newBufferCap), 'MultiRateLimited: rate limit hit');
+ });
+ });
+
+ describe('construction', function () {
+ it('construction fails when non gov max buffer cap is equal to global buffer cap', async function () {
+ await expectRevert(
+ (
+ await ethers.getContractFactory('GlobalRateLimitedMinter')
+ ).deploy(
+ core.address,
+ globalRateLimitPerSecond,
+ globalRateLimitPerSecond,
+ maxRateLimitPerSecond,
+ bufferCap,
+ bufferCap
+ ),
+ 'MultiRateLimited: max buffer cap invalid'
+ );
+ });
+ });
+});
diff --git a/test/unit/peg/FixedPricePSM.test.ts b/test/unit/peg/FixedPricePSM.test.ts
index a876ba684..0a8ecdfc6 100644
--- a/test/unit/peg/FixedPricePSM.test.ts
+++ b/test/unit/peg/FixedPricePSM.test.ts
@@ -449,13 +449,6 @@ describe('FixedPricePSM', function () {
);
});
- it('fails when token is not approved to be spent by the PSM', async () => {
- await expectRevert(
- psm.connect(impersonatedSigners[userAddress]).mint(userAddress, mintAmount, 0),
- 'ERC20: insufficient allowance'
- );
- });
-
it('mint fails when contract is paused', async () => {
await psm.connect(impersonatedSigners[governorAddress]).pause();
expect(await psm.paused()).to.be.true;
diff --git a/test/unit/peg/PriceBoundPegStabilityModule.test.ts b/test/unit/peg/PriceBoundPegStabilityModule.test.ts
index 2f916524a..0271e97d9 100644
--- a/test/unit/peg/PriceBoundPegStabilityModule.test.ts
+++ b/test/unit/peg/PriceBoundPegStabilityModule.test.ts
@@ -491,13 +491,6 @@ describe('PriceBoundPegStabilityModule', function () {
);
});
- it('fails when token is not approved to be spent by the PSM', async () => {
- await expectRevert(
- psm.connect(impersonatedSigners[userAddress]).mint(userAddress, mintAmount, 0),
- 'ERC20: insufficient allowance'
- );
- });
-
it('mint fails when contract is paused', async () => {
await psm.connect(impersonatedSigners[governorAddress]).pause();
expect(await psm.paused()).to.be.true;
@@ -866,14 +859,6 @@ describe('PriceBoundPegStabilityModule', function () {
'PegStabilityModule: Redeem not enough out'
);
});
-
- it('fails when token is not approved to be spent by the PSM', async () => {
- await fei.connect(impersonatedSigners[minterAddress]).mint(userAddress, 100);
- await expectRevert(
- psm.connect(impersonatedSigners[userAddress]).redeem(userAddress, 100, 0),
- 'ERC20: insufficient allowance'
- );
- });
});
});
diff --git a/types/types.ts b/types/types.ts
index 3743ef102..3e5129014 100644
--- a/types/types.ts
+++ b/types/types.ts
@@ -128,6 +128,7 @@ export enum AddressCategory {
External = 'External',
Deprecated = 'Deprecated',
Fuse = 'Fuse',
+ Volt = 'Volt',
TBD = 'TBD'
}