diff --git a/contracts/core/psm/PegStabilityModule.sol b/contracts/core/psm/PegStabilityModule.sol index c15a14e..72955d1 100644 --- a/contracts/core/psm/PegStabilityModule.sol +++ b/contracts/core/psm/PegStabilityModule.sol @@ -13,15 +13,10 @@ pragma solidity 0.8.21; -import {IStablecoin} from "../../interfaces/IStablecoin.sol"; import {IPegStabilityModule} from "../../interfaces/core/IPegStabilityModule.sol"; - import {PSMErrors} from "../../interfaces/errors/PSMErrors.sol"; import {PSMEventsLib} from "../../interfaces/events/PSMEventsLib.sol"; -import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; - -import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; -import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {IPegStabilityModule, PegStabilityModuleBase} from "./PegStabilityModuleBase.sol"; /** * @title Peg Stability Module @@ -29,40 +24,10 @@ import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeE * @notice Used to mint ZAI with collateral at a pre-defined rate * @dev https://docs.maha.xyz/mechanics/peg-mechanics/peg-stablility-module-psm */ -contract PegStabilityModule is OwnableUpgradeable, ReentrancyGuardUpgradeable, IPegStabilityModule { - using SafeERC20 for IERC20; - - /// @inheritdoc IPegStabilityModule - IStablecoin public zai; - - /// @inheritdoc IPegStabilityModule - IERC20 public collateral; - - /// @inheritdoc IPegStabilityModule - uint256 public supplyCap; - - /// @inheritdoc IPegStabilityModule - uint256 public debtCap; - - /// @inheritdoc IPegStabilityModule - uint256 public debt; - +contract PegStabilityModule is PegStabilityModuleBase { /// @inheritdoc IPegStabilityModule uint256 public rate; - /// @inheritdoc IPegStabilityModule - uint256 public mintFeeBps; - - /// @inheritdoc IPegStabilityModule - uint256 public redeemFeeBps; - - /// @inheritdoc IPegStabilityModule - address public feeDestination; - - /// @inheritdoc IPegStabilityModule - uint256 public immutable MAX_FEE_BPS = 10_000; - - /// @inheritdoc IPegStabilityModule function initialize( address _zai, address _collateral, @@ -74,65 +39,14 @@ contract PegStabilityModule is OwnableUpgradeable, ReentrancyGuardUpgradeable, I uint256 _redeemFeeBps, address _feeDestination ) external reinitializer(2) { - zai = IStablecoin(_zai); - collateral = IERC20(_collateral); + __PegStabilityModule_init( + _zai, _collateral, _governance, _supplyCap, _debtCap, _mintFeeBps, _redeemFeeBps, _feeDestination + ); - if (_zai == address(0) || _collateral == address(0) || _governance == address(0) || _feeDestination == address(0)) { - revert PSMErrors.NotZeroAddress(); - } - - if (_newRate == 0 || _supplyCap == 0 || _debtCap == 0) { + if (_newRate == 0) { revert PSMErrors.NotZeroValue(); } - - __Ownable_init(_governance); - __ReentrancyGuard_init(); - - _updateFees(_mintFeeBps, _redeemFeeBps); - _updateCaps(_supplyCap, _debtCap); _updateRate(_newRate); - _updateFeeDestination(_feeDestination); - } - - /// @inheritdoc IPegStabilityModule - function mint(address dest, uint256 shares) external nonReentrant { - uint256 amount = toCollateralAmountWithFee(shares, mintFeeBps); - - if (amount == 0) revert PSMErrors.NotZeroValue(); - if (shares == 0) revert PSMErrors.NotZeroValue(); - - if (collateral.balanceOf(address(this)) + amount > supplyCap) revert PSMErrors.SupplyCapReached(); - if (debt + shares > debtCap) revert PSMErrors.DebtCapReached(); - - collateral.safeTransferFrom(msg.sender, address(this), amount); - zai.mint(dest, shares); - - debt += shares; - emit PSMEventsLib.Mint(dest, shares, amount, debt, supplyCap, msg.sender); - } - - /// @inheritdoc IPegStabilityModule - function redeem(address dest, uint256 shares) external nonReentrant { - uint256 amount = toCollateralAmountWithFeeInverse(shares, redeemFeeBps); - - if (amount == 0) revert PSMErrors.NotZeroValue(); - if (shares == 0) revert PSMErrors.NotZeroValue(); - - zai.transferFrom(msg.sender, address(this), shares); - zai.burn(address(this), shares); - collateral.safeTransfer(dest, amount); - - debt -= shares; - emit PSMEventsLib.Redeem(dest, shares, amount, debt, supplyCap, msg.sender); - } - - function sweepFees() external { - collateral.safeTransfer(feeDestination, feesCollected()); - } - - /// @inheritdoc IPegStabilityModule - function updateCaps(uint256 _supplyCap, uint256 _debtCap) external onlyOwner { - _updateCaps(_supplyCap, _debtCap); } /// @inheritdoc IPegStabilityModule @@ -141,55 +55,20 @@ contract PegStabilityModule is OwnableUpgradeable, ReentrancyGuardUpgradeable, I } /// @inheritdoc IPegStabilityModule - function updateFees(uint256 _mintFeeBps, uint256 _redeemFeeBps) external onlyOwner { - _updateFees(_mintFeeBps, _redeemFeeBps); - } - - /// @inheritdoc IPegStabilityModule - function updateFeeDestination(address _feeDestination) external onlyOwner { - _updateFeeDestination(_feeDestination); - } - - /// @inheritdoc IPegStabilityModule - function toCollateralAmount(uint256 _amount) public view returns (uint256) { + function toCollateralAmount(uint256 _amount) public view override returns (uint256) { return (_amount * rate) / 1e18; } /// @inheritdoc IPegStabilityModule - function toCollateralAmountWithFee(uint256 _amount, uint256 _fee) public view returns (uint256) { - return (toCollateralAmount(_amount) * (MAX_FEE_BPS + _fee)) / MAX_FEE_BPS; - } - - /// @inheritdoc IPegStabilityModule - function toCollateralAmountWithFeeInverse(uint256 _amount, uint256 _fee) public view returns (uint256) { - return (toCollateralAmount(_amount) * (MAX_FEE_BPS - _fee)) / MAX_FEE_BPS; - } - - /// @inheritdoc IPegStabilityModule - function mintAmountIn(uint256 amountAssetsIn) external view returns (uint256 shares) { + function mintAmountIn(uint256 amountAssetsIn) external view override returns (uint256 shares) { shares = (amountAssetsIn * 1e18 * MAX_FEE_BPS) / (MAX_FEE_BPS + mintFeeBps) / rate; } /// @inheritdoc IPegStabilityModule - function redeemAmountOut(uint256 amountAssetsOut) external view returns (uint256 shares) { + function redeemAmountOut(uint256 amountAssetsOut) external view override returns (uint256 shares) { shares = (amountAssetsOut * 1e18 * MAX_FEE_BPS) / (MAX_FEE_BPS - redeemFeeBps) / rate; } - /// @inheritdoc IPegStabilityModule - function feesCollected() public view returns (uint256) { - return collateral.balanceOf(address(this)) - toCollateralAmount(debt); - } - - function _updateCaps(uint256 _supplyCap, uint256 _debtCap) internal { - uint256 oldSupplyCap = supplyCap; - uint256 olsDebtCap = debtCap; - - supplyCap = _supplyCap; - debtCap = _debtCap; - - emit PSMEventsLib.SupplyCapUpdated(_supplyCap, _debtCap, oldSupplyCap, olsDebtCap, msg.sender); - } - /** * @notice Updates the rate of ZAI/Collateral * @param _rate the new rate of ZAI/Collateral @@ -199,27 +78,4 @@ contract PegStabilityModule is OwnableUpgradeable, ReentrancyGuardUpgradeable, I rate = _rate; emit PSMEventsLib.RateUpdated(oldRate, _rate, msg.sender); } - - /** - * @notice Updates the fee destination - * @param _feeDestination the new fee destination - */ - function _updateFeeDestination(address _feeDestination) internal { - address oldFeeDestination = feeDestination; - feeDestination = _feeDestination; - emit PSMEventsLib.FeeDestinationUpdated(_feeDestination, oldFeeDestination, msg.sender); - } - - /** - * @notice Updates the mint and redeem fees - * @param _mintFeeBps the new mint fee in BPS - * @param _redeemFeeBps the new redeem fee in BPS - */ - function _updateFees(uint256 _mintFeeBps, uint256 _redeemFeeBps) internal { - uint256 oldMintFeeBps = mintFeeBps; - uint256 oldRedeemFeeBps = redeemFeeBps; - mintFeeBps = _mintFeeBps; - redeemFeeBps = _redeemFeeBps; - emit PSMEventsLib.FeesUpdated(_mintFeeBps, _redeemFeeBps, oldMintFeeBps, oldRedeemFeeBps, msg.sender); - } } diff --git a/contracts/core/psm/PegStabilityModuleBase.sol b/contracts/core/psm/PegStabilityModuleBase.sol new file mode 100644 index 0000000..b3083b0 --- /dev/null +++ b/contracts/core/psm/PegStabilityModuleBase.sol @@ -0,0 +1,189 @@ +// SPDX-License-Identifier: GPL-3.0 + +// ███╗ ███╗ █████╗ ██╗ ██╗ █████╗ +// ████╗ ████║██╔══██╗██║ ██║██╔══██╗ +// ██╔████╔██║███████║███████║███████║ +// ██║╚██╔╝██║██╔══██║██╔══██║██╔══██║ +// ██║ ╚═╝ ██║██║ ██║██║ ██║██║ ██║ +// ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ + +// Website: https://maha.xyz +// Discord: https://discord.gg/mahadao +// Twitter: https://twitter.com/mahaxyz_ + +pragma solidity 0.8.21; + +import {IStablecoin} from "../../interfaces/IStablecoin.sol"; +import {IPegStabilityModule} from "../../interfaces/core/IPegStabilityModule.sol"; + +import {PSMErrors} from "../../interfaces/errors/PSMErrors.sol"; +import {PSMEventsLib} from "../../interfaces/events/PSMEventsLib.sol"; +import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; + +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; + +/** + * @title Peg Stability Module + * @author maha.xyz + * @notice Used to mint ZAI with collateral at a pre-defined rate + * @dev https://docs.maha.xyz/mechanics/peg-mechanics/peg-stablility-module-psm + */ +abstract contract PegStabilityModuleBase is OwnableUpgradeable, ReentrancyGuardUpgradeable, IPegStabilityModule { + using SafeERC20 for IERC20; + + /// @inheritdoc IPegStabilityModule + IStablecoin public zai; + + /// @inheritdoc IPegStabilityModule + IERC20 public collateral; + + /// @inheritdoc IPegStabilityModule + uint256 public supplyCap; + + /// @inheritdoc IPegStabilityModule + uint256 public debtCap; + + /// @inheritdoc IPegStabilityModule + uint256 public debt; + + /// @inheritdoc IPegStabilityModule + uint256 public mintFeeBps; + + /// @inheritdoc IPegStabilityModule + uint256 public redeemFeeBps; + + /// @inheritdoc IPegStabilityModule + address public feeDestination; + + /// @inheritdoc IPegStabilityModule + uint256 public immutable MAX_FEE_BPS = 10_000; + + function __PegStabilityModule_init( + address _zai, + address _collateral, + address _governance, + uint256 _supplyCap, + uint256 _debtCap, + uint256 _mintFeeBps, + uint256 _redeemFeeBps, + address _feeDestination + ) internal { + zai = IStablecoin(_zai); + collateral = IERC20(_collateral); + + if (_zai == address(0) || _collateral == address(0) || _governance == address(0) || _feeDestination == address(0)) { + revert PSMErrors.NotZeroAddress(); + } + + if (_supplyCap == 0 || _debtCap == 0) { + revert PSMErrors.NotZeroValue(); + } + + __Ownable_init(_governance); + __ReentrancyGuard_init(); + + _updateFees(_mintFeeBps, _redeemFeeBps); + _updateCaps(_supplyCap, _debtCap); + _updateFeeDestination(_feeDestination); + } + + /// @inheritdoc IPegStabilityModule + function mint(address dest, uint256 shares) external nonReentrant { + uint256 amount = toCollateralAmountWithFee(shares, mintFeeBps); + + if (amount == 0) revert PSMErrors.NotZeroValue(); + if (shares == 0) revert PSMErrors.NotZeroValue(); + + if (collateral.balanceOf(address(this)) + amount > supplyCap) revert PSMErrors.SupplyCapReached(); + if (debt + shares > debtCap) revert PSMErrors.DebtCapReached(); + + collateral.safeTransferFrom(msg.sender, address(this), amount); + zai.mint(dest, shares); + + debt += shares; + emit PSMEventsLib.Mint(dest, shares, amount, debt, supplyCap, msg.sender); + } + + /// @inheritdoc IPegStabilityModule + function redeem(address dest, uint256 shares) external nonReentrant { + uint256 amount = toCollateralAmountWithFeeInverse(shares, redeemFeeBps); + + if (amount == 0) revert PSMErrors.NotZeroValue(); + if (shares == 0) revert PSMErrors.NotZeroValue(); + + zai.transferFrom(msg.sender, address(this), shares); + zai.burn(address(this), shares); + collateral.safeTransfer(dest, amount); + + debt -= shares; + emit PSMEventsLib.Redeem(dest, shares, amount, debt, supplyCap, msg.sender); + } + + function sweepFees() external { + collateral.safeTransfer(feeDestination, feesCollected()); + } + + /// @inheritdoc IPegStabilityModule + function updateCaps(uint256 _supplyCap, uint256 _debtCap) external onlyOwner { + _updateCaps(_supplyCap, _debtCap); + } + + /// @inheritdoc IPegStabilityModule + function updateFees(uint256 _mintFeeBps, uint256 _redeemFeeBps) external onlyOwner { + _updateFees(_mintFeeBps, _redeemFeeBps); + } + + /// @inheritdoc IPegStabilityModule + function updateFeeDestination(address _feeDestination) external onlyOwner { + _updateFeeDestination(_feeDestination); + } + + /// @inheritdoc IPegStabilityModule + function toCollateralAmountWithFee(uint256 _amount, uint256 _fee) public view returns (uint256) { + return (toCollateralAmount(_amount) * (MAX_FEE_BPS + _fee)) / MAX_FEE_BPS; + } + + /// @inheritdoc IPegStabilityModule + function toCollateralAmountWithFeeInverse(uint256 _amount, uint256 _fee) public view returns (uint256) { + return (toCollateralAmount(_amount) * (MAX_FEE_BPS - _fee)) / MAX_FEE_BPS; + } + + /// @inheritdoc IPegStabilityModule + function feesCollected() public view returns (uint256) { + return collateral.balanceOf(address(this)) - toCollateralAmount(debt); + } + + function _updateCaps(uint256 _supplyCap, uint256 _debtCap) internal { + uint256 oldSupplyCap = supplyCap; + uint256 olsDebtCap = debtCap; + + supplyCap = _supplyCap; + debtCap = _debtCap; + + emit PSMEventsLib.SupplyCapUpdated(_supplyCap, _debtCap, oldSupplyCap, olsDebtCap, msg.sender); + } + + /** + * @notice Updates the fee destination + * @param _feeDestination the new fee destination + */ + function _updateFeeDestination(address _feeDestination) internal { + address oldFeeDestination = feeDestination; + feeDestination = _feeDestination; + emit PSMEventsLib.FeeDestinationUpdated(_feeDestination, oldFeeDestination, msg.sender); + } + + /** + * @notice Updates the mint and redeem fees + * @param _mintFeeBps the new mint fee in BPS + * @param _redeemFeeBps the new redeem fee in BPS + */ + function _updateFees(uint256 _mintFeeBps, uint256 _redeemFeeBps) internal { + uint256 oldMintFeeBps = mintFeeBps; + uint256 oldRedeemFeeBps = redeemFeeBps; + mintFeeBps = _mintFeeBps; + redeemFeeBps = _redeemFeeBps; + emit PSMEventsLib.FeesUpdated(_mintFeeBps, _redeemFeeBps, oldMintFeeBps, oldRedeemFeeBps, msg.sender); + } +} diff --git a/contracts/core/psm/PegStabilityModuleYield.sol b/contracts/core/psm/PegStabilityModuleYield.sol index 505ccff..983c4ee 100644 --- a/contracts/core/psm/PegStabilityModuleYield.sol +++ b/contracts/core/psm/PegStabilityModuleYield.sol @@ -22,161 +22,25 @@ import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeE import {PSMErrors} from "../../interfaces/errors/PSMErrors.sol"; import {PSMEventsLib} from "../../interfaces/events/PSMEventsLib.sol"; +import {IPegStabilityModule, PegStabilityModuleBase} from "./PegStabilityModuleBase.sol"; -contract PegStabilityModuleYield is - Ownable2StepUpgradeable, - ReentrancyGuardUpgradeable, - IPegStabilityModuleYield -{ +contract PegStabilityModuleYield is PegStabilityModuleBase, IPegStabilityModuleYield { using SafeERC20 for IERC20; using SafeERC20 for IERC4626; - uint256 public supplyCap; - uint256 public debtCap; - uint256 public rate; - uint256 public mintFeeBps; - uint256 public redeemFeeBps; - - uint256 public debt; - - IStablecoin public usdz; - IERC4626 public collateral; - address public feeDistributor; - - uint256 public constant MAX_FEE_BPS = 10_000; - function initialize( - address usdz_, - address collateral_, - address governance, - uint256 newRate_, - uint256 supplyCap_, - uint256 debtCap_, - uint256 mintFeeBps_, - uint256 redeemFeeBps_, - address feeDistributor_ - ) external initializer { - ensureNonZeroAddress(usdz_); - ensureNonZeroAddress(collateral_); - ensureNonZeroAddress(governance); - ensureNonZeroAddress(feeDistributor_); - - ensureNonZeroValue(newRate_); - ensureNonZeroValue(supplyCap_); - ensureNonZeroValue(debtCap_); - - usdz = IStablecoin(usdz_); - collateral = IERC4626(collateral_); - - __Ownable_init(governance); - __ReentrancyGuard_init(); - - _updateFees(mintFeeBps_, redeemFeeBps_); - _updateRate(newRate_); - _updateCaps(supplyCap_, debtCap_); - _updateFeeDistributor(feeDistributor_); - } - - /// @inheritdoc IPegStabilityModuleYield - function mint(address dest, uint256 shares) external nonReentrant { - uint256 amount = toCollateralAmountWithFee(shares, mintFeeBps); - - if (amount == 0) revert PSMErrors.NotZeroValue(); - if (shares == 0) revert PSMErrors.NotZeroValue(); - - if (collateral.balanceOf(address(this)) + amount > supplyCap) - revert PSMErrors.SupplyCapReached(); - if (debt + shares > debtCap) revert PSMErrors.DebtCapReached(); - - collateral.safeTransferFrom(msg.sender, address(this), amount); - usdz.mint(dest, shares); - - debt += shares; - emit PSMEventsLib.Mint(dest, shares, amount, debt, supplyCap, msg.sender); - } - - /// @inheritdoc IPegStabilityModuleYield - function redeem(address dest, uint256 shares) external nonReentrant { - uint256 amount = toCollateralAmountWithFeeInverse(shares, redeemFeeBps); - - if (amount == 0) revert PSMErrors.NotZeroValue(); - if (shares == 0) revert PSMErrors.NotZeroValue(); - - usdz.transferFrom(msg.sender, address(this), shares); - usdz.burn(address(this), shares); - collateral.safeTransfer(dest, amount); - - debt -= shares; - emit PSMEventsLib.Redeem(dest, shares, amount, debt, supplyCap, msg.sender); - } - - /// @inheritdoc IPegStabilityModuleYield - function updateCaps(uint256 _supplyCap, uint256 _debtCap) external onlyOwner { - _updateCaps(_supplyCap, _debtCap); - } - - /// @inheritdoc IPegStabilityModuleYield - function updateRate(uint256 _newRate) external onlyOwner { - _updateRate(_newRate); - } - - /// @inheritdoc IPegStabilityModuleYield - function updateFees( + address _zai, + address _collateral, + address _governance, + uint256 _supplyCap, + uint256 _debtCap, uint256 _mintFeeBps, - uint256 _redeemFeeBps - ) external onlyOwner { - _updateFees(_mintFeeBps, _redeemFeeBps); - } - - /// @inheritdoc IPegStabilityModuleYield - function updateFeeDistributor(address _newFeeDistributor) external onlyOwner { - _updateFeeDistributor(_newFeeDistributor); - } - - /// @inheritdoc IPegStabilityModuleYield - function toCollateralAmount(uint256 _amount) public view returns (uint256) { - return (_amount * 1e18) / getAssetsFromShares(); - } - - /// @inheritdoc IPegStabilityModuleYield - function toCollateralAmountWithFee( - uint256 _amount, - uint256 _fee - ) public view returns (uint256) { - return (toCollateralAmount(_amount) * (MAX_FEE_BPS + _fee)) / MAX_FEE_BPS; - } - - /// @inheritdoc IPegStabilityModuleYield - function toCollateralAmountWithFeeInverse( - uint256 _amount, - uint256 _fee - ) public view returns (uint256) { - return (toCollateralAmount(_amount) * (MAX_FEE_BPS - _fee)) / MAX_FEE_BPS; - } - - /// @inheritdoc IPegStabilityModuleYield - function mintAmountIn( - uint256 amountAssetsIn - ) external view returns (uint256 shares) { - shares = - (amountAssetsIn * 1e18 * MAX_FEE_BPS) / - (MAX_FEE_BPS + mintFeeBps) / - rate; - } - - /// @inheritdoc IPegStabilityModuleYield - function redeemAmountOut( - uint256 amountAssetsOut - ) external view returns (uint256 shares) { - shares = - (amountAssetsOut * 1e18 * MAX_FEE_BPS) / - (MAX_FEE_BPS - redeemFeeBps) / - rate; - } - - /// @inheritdoc IPegStabilityModuleYield - function feesCollected() public view returns (uint256) { - return collateral.balanceOf(address(this)) - toCollateralAmount(debt); + uint256 _redeemFeeBps, + address _feeDestination + ) external reinitializer(2) { + __PegStabilityModule_init( + _zai, _collateral, _governance, _supplyCap, _debtCap, _mintFeeBps, _redeemFeeBps, _feeDestination + ); } /** @@ -184,89 +48,8 @@ contract PegStabilityModuleYield is * @dev Uses total assets and total supply from the collateral to compute the ratio. * @return The asset value per share in 18 decimal precision. */ - function getAssetsFromShares() public view returns (uint256) { - return (collateral.totalAssets() * 1e18) / collateral.totalSupply(); - } - - /** - * @notice Ensures that a given address is not the zero address. - * @dev Reverts with `PSMErrors.NotZeroAddress` if the provided address is zero. - * @param address_ The address to check. - */ - function ensureNonZeroAddress(address address_) internal pure { - if (address_ == address(0)) { - revert PSMErrors.NotZeroAddress(); - } - } - - /** - * @notice Ensures that a given value is non-zero. - * @dev Reverts with `PSMErrors.NotZeroValue` if the provided value is zero. - * @param value_ The value to check. - */ - function ensureNonZeroValue(uint256 value_) internal pure { - if (value_ == 0) { - revert PSMErrors.NotZeroValue(); - } - } - - function _updateCaps(uint256 _supplyCap, uint256 _debtCap) internal { - uint256 oldSupplyCap = supplyCap; - uint256 olsDebtCap = debtCap; - - supplyCap = _supplyCap; - debtCap = _debtCap; - - emit PSMEventsLib.SupplyCapUpdated( - _supplyCap, - _debtCap, - oldSupplyCap, - olsDebtCap, - msg.sender - ); - } - - /** - * @notice Updates the rate of USDz/Collateral - * @param _rate the new rate of USDz/Collateral - */ - function _updateRate(uint256 _rate) internal { - uint256 oldRate = rate; - rate = _rate; - emit PSMEventsLib.RateUpdated(oldRate, _rate, msg.sender); - } - - /** - * @notice Updates the fee destination - * @param _newFeeDistributor the new fee destination - */ - function _updateFeeDistributor(address _newFeeDistributor) internal { - address oldFeeDestination = feeDistributor; - feeDistributor = _newFeeDistributor; - emit PSMEventsLib.FeeDestinationUpdated( - _newFeeDistributor, - oldFeeDestination, - msg.sender - ); - } - - /** - * @notice Updates the mint and redeem fees - * @param _mintFeeBps the new mint fee in BPS - * @param _redeemFeeBps the new redeem fee in BPS - */ - function _updateFees(uint256 _mintFeeBps, uint256 _redeemFeeBps) internal { - uint256 oldMintFeeBps = mintFeeBps; - uint256 oldRedeemFeeBps = redeemFeeBps; - mintFeeBps = _mintFeeBps; - redeemFeeBps = _redeemFeeBps; - emit PSMEventsLib.FeesUpdated( - _mintFeeBps, - _redeemFeeBps, - oldMintFeeBps, - oldRedeemFeeBps, - msg.sender - ); + function rate() public view override (IPegStabilityModule, PegStabilityModuleBase) returns (uint256) { + return IERC4626(address(collateral)).previewMint(1 ether); } /** @@ -277,10 +60,10 @@ contract PegStabilityModuleYield is */ function transferYieldToFeeDistributor() public { uint256 bal = collateral.balanceOf(address(this)); - uint256 val = ((bal * getAssetsFromShares()) / 1e18); - if (val > debt) { - uint256 yield = ((val - debt) * 1e18) / getAssetsFromShares(); - collateral.safeTransfer(feeDistributor, yield); - } + uint256 usdValue = (bal * rate()) / 1e18; + require(usdValue >= debt, "no yield to transfer"); + + uint256 yield = ((usdValue - debt) * 1e18) / rate(); + collateral.safeTransfer(feeDestination, yield); } } diff --git a/contracts/interfaces/core/IPegStabilityModule.sol b/contracts/interfaces/core/IPegStabilityModule.sol index 4fc47a8..5ca732c 100644 --- a/contracts/interfaces/core/IPegStabilityModule.sol +++ b/contracts/interfaces/core/IPegStabilityModule.sol @@ -96,12 +96,12 @@ interface IPegStabilityModule { */ function updateCaps(uint256 _supplyCap, uint256 _debtCap) external; - /** - * @notice Updates the rate of ZAI/Collateral - * @dev Only callable by the admin - * @param _newRate The new rate of ZAI/Collateral - */ - function updateRate(uint256 _newRate) external; + // /** + // * @notice Updates the rate of ZAI/Collateral + // * @dev Only callable by the admin + // * @param _newRate The new rate of ZAI/Collateral + // */ + // function updateRate(uint256 _newRate) external; /** * @notice Converts ZAI amount to collateral @@ -158,27 +158,27 @@ interface IPegStabilityModule { */ function updateFeeDestination(address _feeDestination) external; - /** - * @notice Initializes the contract - * @param _zai The ZAI stablecoin - * @param _collateral The collateral token - * @param _governance Governance address - * @param _newRate The new rate of ZAI/Collateral - * @param _supplyCap The supply cap - * @param _debtCap The debt cap - * @param _mintFeeBps The mint fee in BPS - * @param _redeemFeeBps The redeem fee in BPS - * @param _feeDestination The address where fees are sent - */ - function initialize( - address _zai, - address _collateral, - address _governance, - uint256 _newRate, - uint256 _supplyCap, - uint256 _debtCap, - uint256 _mintFeeBps, - uint256 _redeemFeeBps, - address _feeDestination - ) external; + // /** + // * @notice Initializes the contract + // * @param _zai The ZAI stablecoin + // * @param _collateral The collateral token + // * @param _governance Governance address + // * @param _newRate The new rate of ZAI/Collateral + // * @param _supplyCap The supply cap + // * @param _debtCap The debt cap + // * @param _mintFeeBps The mint fee in BPS + // * @param _redeemFeeBps The redeem fee in BPS + // * @param _feeDestination The address where fees are sent + // */ + // function initialize( + // address _zai, + // address _collateral, + // address _governance, + // uint256 _newRate, + // uint256 _supplyCap, + // uint256 _debtCap, + // uint256 _mintFeeBps, + // uint256 _redeemFeeBps, + // address _feeDestination + // ) external; } diff --git a/contracts/interfaces/core/IPegStabilityModuleYield.sol b/contracts/interfaces/core/IPegStabilityModuleYield.sol index e758259..a13aec1 100644 --- a/contracts/interfaces/core/IPegStabilityModuleYield.sol +++ b/contracts/interfaces/core/IPegStabilityModuleYield.sol @@ -3,202 +3,20 @@ pragma solidity 0.8.21; import {IStablecoin} from "../IStablecoin.sol"; + +import {IPegStabilityModule} from "./IPegStabilityModule.sol"; import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; /** * @title Peg Stability Module Yield Interface - * @dev Interface for the Peg Stability Module that allows minting USDz using ERC4626-compatible collateral, supporting yield generation. - * Enables minting and redeeming of USDz, adjusting caps, rates, and fees, and collecting yield. - * @notice This interface defines the functions to mint and redeem USDz at a pre-defined rate using yield-bearing collateral. + * @dev Interface for the Peg Stability Module that allows minting ZAI using ERC4626-compatible collateral, supporting + * yield generation. + * Enables minting and redeeming of ZAI, adjusting caps, rates, and fees, and collecting yield. + * @notice This interface defines the functions to mint and redeem ZAI at a pre-defined rate using yield-bearing + * collateral. * @custom:author maha.xyz */ -interface IPegStabilityModuleYield { - /** - * @notice Returns the USDz stablecoin. - * @return usdz The address of the USDz stablecoin contract. - */ - function usdz() external returns (IStablecoin); - - /** - * @notice Returns the ERC4626-compatible collateral token. - * @return collateral The address of the collateral token contract. - */ - function collateral() external returns (IERC4626); - - /** - * @notice Returns the maximum allowable supply of USDz. - * @return supplyCap The maximum supply of USDz. - */ - function supplyCap() external returns (uint256); - - /** - * @notice Returns the maximum allowable debt in USDz. - * @return debtCap The maximum debt limit for USDz. - */ - function debtCap() external returns (uint256); - - /** - * @notice Returns the current debt held by the module in USDz. - * @return debt The current amount of debt in USDz. - */ - function debt() external returns (uint256); - - /** - * @notice Returns the current exchange rate of USDz to collateral. - * @return rate The current rate of USDz/Collateral. - */ - function rate() external returns (uint256); - - /** - * @notice Returns the minting fee in basis points (BPS). - * @return mintFeeBps The mint fee in BPS. - */ - function mintFeeBps() external returns (uint256); - - /** - * @notice Returns the address where collected fees are sent. - * @return feeCollector The address designated to collect fees. - */ - function feeDistributor() external returns (address); - - /** - * @notice Returns the redeem fee in basis points (BPS). - * @return redeemFeeBps The redeem fee in BPS. - */ - function redeemFeeBps() external returns (uint256); - - /** - * @notice Returns the maximum fee limit in BPS that can be charged. - * @return MAX_FEE_BPS The maximum allowable fee in BPS. - */ - function MAX_FEE_BPS() external returns (uint256); - - /** - * @notice Mints USDz using collateral. - * @dev Calculates the amount of collateral required for minting the specified USDz. - * @param destination The address receiving the minted USDz. - * @param shares The amount of USDz to mint. - */ - function mint(address destination, uint256 shares) external; - - /** - * @notice Redeems USDz in exchange for collateral. - * @dev Calculates the amount of collateral to be provided for the redeemed USDz. - * @param destination The address receiving the collateral. - * @param shares The amount of USDz to redeem. - */ - function redeem(address destination, uint256 shares) external; - - /** - * @notice Updates the supply and debt caps. - * @dev Restricted to the contract's administrator. - * @param _supplyCap The new supply cap for USDz. - * @param _debtCap The new debt cap for USDz. - */ - function updateCaps(uint256 _supplyCap, uint256 _debtCap) external; - - /** - * @notice Updates the exchange rate between USDz and collateral. - * @dev Restricted to the contract's administrator. - * @param _newRate The new rate of USDz/Collateral. - */ - function updateRate(uint256 _newRate) external; - - /** - * @notice Converts an amount of USDz to its equivalent collateral value. - * @param _amount The amount of USDz. - * @return collateralAmount The equivalent collateral amount. - */ - function toCollateralAmount( - uint256 _amount - ) external view returns (uint256 collateralAmount); - - /** - * @notice Converts an amount of USDz to collateral with fees included. - * @dev Fee is calculated as (amount * (MAX_FEE_BPS + fee)) / MAX_FEE_BPS. - * @param _amount The amount of USDz. - * @param _fee The fee in BPS to be added. - * @return The collateral amount with fees included. - */ - function toCollateralAmountWithFee( - uint256 _amount, - uint256 _fee - ) external view returns (uint256); - - /** - * @notice Converts an amount of USDz to collateral with fees excluded. - * @dev Fee is calculated as (amount * (MAX_FEE_BPS - fee)) / MAX_FEE_BPS. - * @param _amount The amount of USDz. - * @param _fee The fee in BPS to be subtracted. - * @return The collateral amount with fees excluded. - */ - function toCollateralAmountWithFeeInverse( - uint256 _amount, - uint256 _fee - ) external view returns (uint256); - - /** - * @notice Calculates the USDz amount to mint for a given collateral input. - * @param amountAssetsIn The collateral amount. - * @return shares The corresponding USDz amount to mint. - */ - function mintAmountIn( - uint256 amountAssetsIn - ) external view returns (uint256 shares); - - /** - * @notice Calculates the USDz amount to redeem for a given collateral output. - * @param amountAssetsOut The collateral amount. - * @return shares The corresponding USDz amount to redeem. - */ - function redeemAmountOut( - uint256 amountAssetsOut - ) external view returns (uint256 shares); - - /** - * @notice Returns the total fees collected by the protocol in USDz. - * @return fees The amount of fees collected. - */ - function feesCollected() external view returns (uint256 fees); - - /** - * @notice Updates the minting and redeeming fees. - * @param _mintFeeBps The new mint fee in BPS. - * @param _redeemFeeBps The new redeem fee in BPS. - */ - function updateFees(uint256 _mintFeeBps, uint256 _redeemFeeBps) external; - - /** - * @notice Updates the address for fee collection. - * @dev Restricted to the contract's administrator. - * @param _feeCollector The new fee collector address. - */ - function updateFeeDistributor(address _feeCollector) external; - - /** - * @notice Initializes the Peg Stability Module with necessary parameters. - * @param usdz_ The USDz stablecoin address. - * @param collateral_ The collateral token address. - * @param governance_ The governance address. - * @param newRate_ The initial USDz/Collateral rate. - * @param supplyCap_ The initial supply cap. - * @param debtCap_ The initial debt cap. - * @param mintFeeBps_ The mint fee in BPS. - * @param redeemFeeBps_ The redeem fee in BPS. - * @param feeCollector_ The initial fee collection address. - */ - function initialize( - address usdz_, - address collateral_, - address governance_, - uint256 newRate_, - uint256 supplyCap_, - uint256 debtCap_, - uint256 mintFeeBps_, - uint256 redeemFeeBps_, - address feeCollector_ - ) external; - +interface IPegStabilityModuleYield is IPegStabilityModule { /** * @notice Transfers accumulated yield to the designated fee distributor. * diff --git a/contracts/periphery/BuyBackBurnMaha.sol b/contracts/periphery/BuyBackBurnMaha.sol new file mode 100644 index 0000000..df10c00 --- /dev/null +++ b/contracts/periphery/BuyBackBurnMaha.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity 0.8.21; + +import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; + +/** + * @title BuyBackBurnMaha + * @dev This contract facilitates the buy-back and burning of MAHA tokens using USDC. + * It leverages a specified ODOS router for token swaps and allows only authorized + * distributors to perform buy-back and burn operations. + */ +contract BuyBackBurnMaha is AccessControlUpgradeable { + using SafeERC20 for IERC20; + + /// @notice Role identifier for accounts authorized to initiate buy-back and burn operations. + bytes32 public constant DISTRIBUTOR_ROLE = keccak256("DISTRIBUTOR_ROLE"); + + /// @notice Address representing the burn address (tokens sent here are considered burned). + address public constant DEAD_ADDRESS = + 0x0000000000000000000000000000000000000000; + + /// @notice Address of the ODOS router used for swapping USDC to MAHA. + address public odos; + + /// @notice The MAHA token contract. + IERC20 public maha; + + /// @notice The USDC token contract. + IERC20 public usdc; + + /** + * @notice Initializes the contract with MAHA and USDC token addresses, ODOS router address, and distributor role. + * @param _maha Address of the MAHA token contract. + * @param _usdc Address of the USDC token contract. + * @param _odos Address of the ODOS router used for swaps. + * @param _distributor Address to be assigned the DISTRIBUTOR_ROLE. + */ + function initialize( + address _maha, + address _usdc, + address _odos, + address _distributor + ) external initializer { + __AccessControl_init(); + maha = IERC20(_maha); + usdc = IERC20(_usdc); + + setOdos(_odos); + _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); + _grantRole(DISTRIBUTOR_ROLE, _distributor); + } + + /** + * @notice Updates the address of the ODOS router. + * @dev Only callable by an account with the DEFAULT_ADMIN_ROLE. + * @param _newOdos New address of the ODOS router. + */ + function setOdos(address _newOdos) public onlyRole(DEFAULT_ADMIN_ROLE) { + odos = _newOdos; + } + + /** + * @notice Executes the buy-back and burn operation. + * @dev Only callable by an account with the DISTRIBUTOR_ROLE. + * Swaps USDC for MAHA through the ODOS router and sends the MAHA to the burn address. + * @param odosData Encoded data for the ODOS router call to perform the swap. + * @param amount How much USDC you want ODOS router to swap + */ + function buyMahaBurn( + bytes calldata odosData, + uint256 amount + ) external payable onlyRole(DISTRIBUTOR_ROLE) { + IERC20(usdc).approve(odos, amount); + + (bool ok, ) = odos.call{value: msg.value}(odosData); + require(ok, "odos call failed"); + + uint256 mahaBalanceAfterSwap = IERC20(maha).balanceOf(address(this)); + require(mahaBalanceAfterSwap > 0, "No Maha to burn!"); + + // Transfer MAHA tokens to the dead address to effectively "burn" them. + IERC20(maha).safeTransfer(DEAD_ADDRESS, mahaBalanceAfterSwap); + } + + /** + * @notice Refunds the specified token balance held by the contract to the caller. + * @dev Only callable by an account with the DEFAULT_ADMIN_ROLE. + * @param token The ERC20 token to be refunded. + */ + function refund(IERC20 token) external onlyRole(DEFAULT_ADMIN_ROLE) { + token.safeTransfer(msg.sender, token.balanceOf(address(this))); + } +} diff --git a/contracts/periphery/crons/sUSDeCollectorCron.sol b/contracts/periphery/crons/sUSDeCollectorCron.sol new file mode 100644 index 0000000..23009cf --- /dev/null +++ b/contracts/periphery/crons/sUSDeCollectorCron.sol @@ -0,0 +1,252 @@ +// SPDX-License-Identifier: GPL-3.0 + +// ███╗ ███╗ █████╗ ██╗ ██╗ █████╗ +// ████╗ ████║██╔══██╗██║ ██║██╔══██╗ +// ██╔████╔██║███████║███████║███████║ +// ██║╚██╔╝██║██╔══██║██╔══██║██╔══██║ +// ██║ ╚═╝ ██║██║ ██║██║ ██║██║ ██║ +// ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ + +// Website: https://maha.xyz +// Discord: https://discord.gg/mahadao +// Twitter: https://twitter.com/mahaxyz_ + +pragma solidity 0.8.21; + +import {PSMErrors} from "../../interfaces/errors/PSMErrors.sol"; + +import {MessagingFee, OFTReceipt, SendParam} from "@layerzerolabs/lz-evm-oapp-v2/contracts/oft/interfaces/IOFT.sol"; +import { + Ownable2StepUpgradeable, + OwnableUpgradeable +} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; + +import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; +import {IERC20, SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {IStargate} from "@stargatefinance/stg-evm-v2/src/interfaces/IStargate.sol"; + +/** + * @title SUSDECollectorCron + * @notice Manages revenue distribution using USDC transfers, cross-chain messaging via Stargate, + * and optional token swaps via the ODOS router. + * @dev This is an upgradeable contract that inherits `Ownable2StepUpgradeable`. It supports defining + * sUSDz, USDC, and sUSDe tokens, and includes functionality for revenue distribution and swaps. + */ +contract SUSDECollectorCron is Ownable2StepUpgradeable { + using SafeERC20 for IERC20; + + /// @notice Address of the ODOS router for executing token swaps. + address public odos; + + /// @notice Address of the sUSDz token contract. + address public sUSDz; + + /// @notice Interface for the USDC token contract. + IERC20 public usdc; + + /// @notice Interface for the sUSDe token contract. + IERC4626 public sUSDe; + + /** + * @notice Emitted when revenue is distributed to a specific receiver. + * @param receiver The address of the revenue recipient. + * @param amount The amount of revenue distributed in USDC. + */ + event RevenueDistributed(address indexed receiver, uint256 indexed amount); + + /** + * @notice Initializes the contract with essential addresses and sets the ODOS router. + * @dev This function can only be called once, during deployment. + * @param _odos The address of the ODOS router for token swaps. + * @param _sUSDz The address of the sUSDz token contract. + * @param _usdc The address of the USDC token contract. + * @param _sUSDe The address of the sUSDe token contract. + */ + function initialize(address _odos, address _sUSDz, address _usdc, address _sUSDe) public initializer { + ensureNonzeroAddress(_sUSDz); + ensureNonzeroAddress(_usdc); + ensureNonzeroAddress(_sUSDe); + __Ownable_init(msg.sender); + sUSDz = _sUSDz; + usdc = IERC20(_usdc); + sUSDe = IERC4626(_sUSDe); + setOdos(_odos); + } + + /** + * @notice Executes a swap from sUSDz to USDC using the ODOS router. + * @dev Only callable by the owner. + * @param data Encoded data required by the ODOS router for the swap. + * @param amount The amount of sUSDe tokens to swap via the ODOS router. + */ + function swapToUSDC(bytes calldata data, uint256 amount) external payable onlyOwner { + _swapSUSDzToUSDC(data, amount); + } + + /** + * @notice Updates the address of the ODOS router. + * @dev Only callable by the owner. + * @param _odos The new address of the ODOS router. + */ + function setOdos( + address _odos + ) public onlyOwner { + odos = _odos; + } + + /** + * @notice Distributes revenue by transferring 50% of USDC balance and optionally performing a swap. + * @dev Handles cross-chain messaging via Stargate. Calls `_swapSUSDzToUSDC` if `_odos` calldata is provided. + * @param _stargateUSDCPool Address of the Stargate USDC pool. + * @param _destinationEndPoint Destination endpoint for Stargate. + * @param _amount Amount of sUSDe tokens to swap using ODOS router, if applicable. + * @param _receiver The address receiving distributed revenue. + * @param _refundAddress Address to receive any excess funds from fees. + * @param _odos Optional calldata for a swap operation via the ODOS router. + */ + function distributeRevenue( + address _stargateUSDCPool, + uint32 _destinationEndPoint, + uint256 _amount, + address _receiver, + address _refundAddress, + bytes calldata _odos + ) public payable onlyOwner { + ensureNonzeroAddress(_stargateUSDCPool); + ensureNonzeroAddress(_receiver); + if (_odos.length > 0) { + _swapSUSDzToUSDC(_odos, _amount); + } + uint256 balanceUSDC = IERC20(usdc).balanceOf(address(this)); + require(balanceUSDC > 0, "Zero balance"); + uint256 amount = calculatePercentage(balanceUSDC, 5000); // 50% of balance to send for buyback/burn on base chain. + // Sending 50% revenue to sUSDz stakers contract. + IERC20(usdc).safeTransfer(sUSDz, amount); + _distributeRevenue(_stargateUSDCPool, _destinationEndPoint, balanceUSDC - amount, _receiver, _refundAddress); + } + + /** + * @notice Swaps sUSDz to USDC using the ODOS router. + * @dev Internal function for executing a swap with the provided calldata. + * @param data Encoded call data for the ODOS router. + * @param _amount The amount of sUSDe tokens to swap. + */ + function _swapSUSDzToUSDC(bytes calldata data, uint256 _amount) internal { + sUSDe.approve(odos, _amount); + (bool ok,) = odos.call{value: msg.value}(data); + require(ok, "odos call failed"); + } + + /** + * @notice Internal function to distribute revenue using Stargate cross-chain messaging. + * @dev Uses Stargate for token transfers and emits a RevenueDistributed event. + * @param _stargate Address of the Stargate contract. + * @param _dstEid Destination chain ID for the cross-chain transfer. + * @param _amount Amount of tokens to send. + * @param _receiver Recipient address on the destination chain. + * @param _refundAddress Address for excess funds refund. + */ + function _distributeRevenue( + address _stargate, + uint32 _dstEid, + uint256 _amount, + address _receiver, + address _refundAddress + ) internal { + (uint256 valueToSend, SendParam memory sendParam, MessagingFee memory messagingFee) = + prepareTakeTaxi(_stargate, _dstEid, _amount, _receiver); + IStargate(_stargate).sendToken{value: valueToSend}(sendParam, messagingFee, _refundAddress); + + emit RevenueDistributed(_receiver, _amount); + } + + /** + * @notice Prepares parameters for sending tokens using Stargate. + * @dev Estimates fees and constructs parameters for cross-chain messaging. + * @param _stargate Address of the Stargate contract. + * @param _dstEid Destination chain ID. + * @param _amount Amount of tokens to send. + * @param _receiver Recipient address on the destination chain. + * @return valueToSend Total native fee for the transaction. + * @return sendParam Parameters required for Stargate's `sendToken` method. + * @return messagingFee Estimated fees for the cross-chain transaction. + */ + function prepareTakeTaxi( + address _stargate, + uint32 _dstEid, + uint256 _amount, + address _receiver + ) internal view returns (uint256 valueToSend, SendParam memory sendParam, MessagingFee memory messagingFee) { + sendParam = SendParam({ + dstEid: _dstEid, + to: addressToBytes32(_receiver), + amountLD: _amount, + minAmountLD: _amount, + extraOptions: new bytes(0), + composeMsg: new bytes(0), + oftCmd: "" + }); + + IStargate stargate = IStargate(_stargate); + + (,, OFTReceipt memory receipt) = stargate.quoteOFT(sendParam); + sendParam.minAmountLD = receipt.amountReceivedLD; + + messagingFee = stargate.quoteSend(sendParam, false); + valueToSend = messagingFee.nativeFee; + + if (stargate.token() == address(0x0)) { + valueToSend += sendParam.amountLD; + } + } + + /** + * @notice Converts an address to a bytes32 format. + * @dev This is necessary for cross-chain transfers where addresses need to be converted to bytes32. + * @param _addr The address to convert. + * @return The converted bytes32 representation of the address. + */ + function addressToBytes32( + address _addr + ) internal pure returns (bytes32) { + return bytes32(uint256(uint160(_addr))); + } + + /** + * @notice Ensures that a given address is not the zero address. + * @dev Reverts with `NotZeroAddress` error if `address_` is the zero address. + * Useful for validating that essential addresses (e.g., contract or wallet addresses) are non-zero. + * @param address_ The address to be checked. + */ + function ensureNonzeroAddress( + address address_ + ) internal pure { + if (address_ == address(0)) { + revert PSMErrors.NotZeroAddress(); + } + } + + /** + * @notice Calculates a percentage of a given `amount` based on basis points (bps). + * @dev The calculation uses basis points, where 10,000 bps = 100%. + * Reverts if `amount * bps` is less than 10,000 to prevent overflow issues. + * @param amount The initial amount to calculate the percentage from. + * @param bps The basis points (bps) representing the percentage (e.g., 5000 for 50%). + * @return The calculated percentage of `amount` based on `bps`. + */ + function calculatePercentage(uint256 amount, uint256 bps) internal pure returns (uint256) { + require((amount * bps) >= 10_000, "amount * bps > 10_000"); + return (amount * bps) / 10_000; + } + + /** + * @notice Refunds the specified token balance held by the contract to the caller. + * @dev Only callable by owner of the contract + * @param token The ERC20 token to be refunded. + */ + function refund( + IERC20 token + ) external onlyOwner { + token.safeTransfer(msg.sender, token.balanceOf(address(this))); + } +} diff --git a/deploy/core/deploy-psmy.ts b/deploy/core/deploy-psmy.ts new file mode 100644 index 0000000..e8e4af6 --- /dev/null +++ b/deploy/core/deploy-psmy.ts @@ -0,0 +1,72 @@ +import { HardhatRuntimeEnvironment } from "hardhat/types"; +import { DeployFunction } from "hardhat-deploy/types"; +import { ethers } from "hardhat"; +import { parseEther } from "ethers"; + +const deployPegStabilityModuleYield: DeployFunction = async function ( + hre: HardhatRuntimeEnvironment +) { + const { getNamedAccounts} = hre; + + const { deployer } = await getNamedAccounts(); + + // Deploy the PegStabilityModuleYield implementation + + const USDZ = "0x69000405f9DcE69BD4Cbf4f2865b79144A69BFE0"; // Zai + const collateral = "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497"; // sUSDe + const governance = deployer; + const supplyCap = parseEther("10000"); + const debtCap = parseEther("10000"); + const mintFeeBps = 100; //1% + const redeemFeeBps = 100; // 1% + const feeDistributorAddress = "0x29482Dbc6e646a9eF517b5381e95ACd5BdC8Af07"; // Collector Proxy + + const TransparentProxy = await ethers.getContractFactory( + "TransparentUpgradeableProxy" + ); + + const PegStabilityModuleYield = await ethers.getContractFactory( + "PegStabilityModuleYield" + ); + + const pegStabilityModuleYieldImpl = await PegStabilityModuleYield.deploy(); + + await pegStabilityModuleYieldImpl.waitForDeployment(); + + console.log( + `Deployed the PSMY Implementation at ${await pegStabilityModuleYieldImpl.getAddress()}` + ); + + const pegStabilityModuleYieldProxy = await TransparentProxy.deploy( + await pegStabilityModuleYieldImpl.getAddress(), + deployer, + "0x" + ); + + await pegStabilityModuleYieldProxy.waitForDeployment(); + + console.log( + `pegStabilityModuleYieldProxy deployed at ${await pegStabilityModuleYieldProxy.getAddress()}` + ); + + const psmy = await ethers.getContractAt( + "PegStabilityModuleYield", + await pegStabilityModuleYieldProxy.getAddress() + ); + + await psmy.initialize( + USDZ, + collateral, + governance, + supplyCap, + debtCap, + mintFeeBps, + redeemFeeBps, + feeDistributorAddress + ); + + console.log("PegStabilityModuleYield initialized."); +}; + +export default deployPegStabilityModuleYield; +deployPegStabilityModuleYield.tags = ["PegStabilityModuleYield"]; diff --git a/deploy/cron/sUSDe-collector-cron.ts b/deploy/cron/sUSDe-collector-cron.ts new file mode 100644 index 0000000..6d041f3 --- /dev/null +++ b/deploy/cron/sUSDe-collector-cron.ts @@ -0,0 +1,60 @@ +import { HardhatRuntimeEnvironment } from "hardhat/types"; +import { DeployFunction } from "hardhat-deploy/types"; +import { ethers, run } from "hardhat"; + +const deploySUSDECollectorCron: DeployFunction = async function ( + hre: HardhatRuntimeEnvironment +) { + const { getNamedAccounts } = hre; + + const { deployer } = await getNamedAccounts(); + + // Define addresses for the ODOS router, sUSDz token, and USDC token + const ODOS_ADDRESS = "0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559"; + const SUSDZ_ADDRESS = "0x69000E468f7f6d6f4ed00cF46f368ACDAc252553"; + const USDC_ADDRESS = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"; + + const TransparentProxy = await ethers.getContractFactory( + "TransparentUpgradeableProxy" + ); + + const sUSDeCollectorCron = await ethers.getContractFactory( + "SUSDECollectorCron" + ); + + const sUSDeCollectorCronImpl = await sUSDeCollectorCron.deploy(); + + await sUSDeCollectorCronImpl.waitForDeployment(); + + console.log( + `sUSDe Implementation ${await sUSDeCollectorCronImpl.getAddress()}` + ); + + const sUSDeCollectorCronProxy = await TransparentProxy.deploy( + await sUSDeCollectorCronImpl.getAddress(), + deployer, + "0x" + ); + + console.log( + `sUSDeCollectorCronProxy deployed at ${await sUSDeCollectorCronProxy.getAddress()}` + ); + + await sUSDeCollectorCronProxy.waitForDeployment(); + + const susdeCollectorCron = await ethers.getContractAt( + "SUSDECollectorCron", + await sUSDeCollectorCronProxy.getAddress() + ); + + await susdeCollectorCron.initialize( + ODOS_ADDRESS, + SUSDZ_ADDRESS, + USDC_ADDRESS + ); + + console.log(`Initialized the contract.`) +}; + +export default deploySUSDECollectorCron; +deploySUSDECollectorCron.tags = ["SUSDECollectorCron"]; diff --git a/package.json b/package.json index 2e636c4..da04d07 100644 --- a/package.json +++ b/package.json @@ -39,9 +39,9 @@ }, "homepage": "https://github.com/mahaxyz/contracts#readme", "devDependencies": { + "@ethersproject/bignumber": "^5.6.2", "@gelatonetwork/automate-sdk": "^3.0.28", "@gelatonetwork/web3-functions-sdk": "^2.4.4", - "@ethersproject/bignumber": "^5.6.2", "@layerzerolabs/lz-evm-oapp-v2": "^2.3.36", "@layerzerolabs/lz-evm-protocol-v2": "^2.3.36", "@layerzerolabs/lz-v2-utilities": "^2.3.36", @@ -56,6 +56,7 @@ "@openzeppelin/contracts-upgradeable": "^5.0.2", "@openzeppelin/hardhat-upgrades": "^3.2.0", "@pythnetwork/pyth-sdk-solidity": "^2.4.1", + "@stargatefinance/stg-evm-v2": "^1.1.3", "@tenderly/hardhat-tenderly": "1.1.0-beta.5", "@typechain/ethers-v6": "^0.5.1", "@typechain/hardhat": "^9.1.0", @@ -97,6 +98,5 @@ "ethers": "^5.7.2", "hardhat-deploy": "^0.12.1", "@openzeppelin/contracts": "^5.0.0" - }, - "dependencies": {} + } } diff --git a/test/foundry/PegStabilityModuleFork.sol b/test/foundry/PegStabilityModuleFork.sol index 1a8deea..d60c06b 100644 --- a/test/foundry/PegStabilityModuleFork.sol +++ b/test/foundry/PegStabilityModuleFork.sol @@ -12,11 +12,11 @@ // Twitter: https://twitter.com/mahaxyz_ pragma solidity 0.8.21; -import {Test, console} from "forge-std/Test.sol"; +import {IPegStabilityModuleYield, PegStabilityModuleYield} from "../../contracts/core/psm/PegStabilityModuleYield.sol"; import {IStablecoin} from "../../contracts/interfaces/IStablecoin.sol"; -import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; -import {PegStabilityModuleYield, IPegStabilityModuleYield} from "../../contracts/core/psm/PegStabilityModuleYield.sol"; import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol"; +import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; +import {Test, console} from "forge-std/Test.sol"; contract PegStabilityModuleYieldFork is Test { uint256 mainnetFork; @@ -26,81 +26,42 @@ contract PegStabilityModuleYieldFork is Test { PegStabilityModuleYield public psm; address public GOVERNANCE; address public FEEDISTRIBUTOR; - address public constant ROLE_ADMIN = - 0x690002dA1F2d828D72Aa89367623dF7A432E85A9; - - function setUp() public { - mainnetFork = vm.createFork(MAINNET_RPC_URL); - vm.selectFork(mainnetFork); - - USDZ = IStablecoin(0x69000405f9DcE69BD4Cbf4f2865b79144A69BFE0); - sUSDe = IERC4626(0x9D39A5DE30e57443BfF2A8307A4256c8797A3497); - GOVERNANCE = 0x4E88E72bd81C7EA394cB410296d99987c3A242fE; - FEEDISTRIBUTOR = makeAddr("feeDistributor"); - - // Deploy the PSM Contract here - psm = new PegStabilityModuleYield(); + address public constant ROLE_ADMIN = 0x690002dA1F2d828D72Aa89367623dF7A432E85A9; - // Initialize the PSM - psm.initialize( - address(USDZ), - address(sUSDe), - GOVERNANCE, - 0.9090 * 1e18, - 100_000 * 1e18, - 100_000 * 1e18, - 0, - 100, - FEEDISTRIBUTOR - ); - - vm.startPrank(ROLE_ADMIN); - USDZ.grantManagerRole(GOVERNANCE); - USDZ.grantManagerRole(address(psm)); - USDZ.grantManagerRole(address(this)); - vm.stopPrank(); + function setUp() public virtual { + _setUpPSMY(); } function testInitValues() public view { - assertEq(psm.rate(), 1e18); assertEq(address(psm.usdz()), address(USDZ)); assertEq(address(psm.collateral()), address(sUSDe)); assertEq(psm.feeDistributor(), FEEDISTRIBUTOR); } - function testTransferYieldToFeeDistributor() external { - + function testTransferYieldToFeeDistributor() public { address sUSDeWhale = 0xb99a2c4C1C4F1fc27150681B740396F6CE1cBcF5; - uint256 initialAmount = 10000 ether; + uint256 initialAmount = 10_000 ether; vm.startPrank(sUSDeWhale); sUSDe.approve(address(psm), UINT256_MAX); - console.log( - "Before Mint PSM Collateral Balance", - sUSDe.balanceOf(address(psm)) - ); + console.log("Before Mint PSM Collateral Balance", sUSDe.balanceOf(address(psm))); uint256 exchangeRateBeforeDeposit = psm.getAssetsFromShares(); // 1.11 - console.log("Exchange Rate Before Deposit",exchangeRateBeforeDeposit); + console.log("Exchange Rate Before Deposit", exchangeRateBeforeDeposit); // Transfer sUSDe to the PSM contract address alice = makeAddr("alice"); - psm.mint(alice, initialAmount); + psm.mint(alice, initialAmount); console.log("ZAI Balance of Alice After Mint", USDZ.balanceOf(alice)); //10000 - console.log( - "After Mint PSM Collateral Balance", - sUSDe.balanceOf(address(psm)) - ); + console.log("After Mint PSM Collateral Balance", sUSDe.balanceOf(address(psm))); - uint256 sUSDePriceBeforeWhaleDeposit = (sUSDe.balanceOf(address(psm)) * psm.getAssetsFromShares()) / 1e18; // 10000 + uint256 sUSDePriceBeforeWhaleDeposit = (sUSDe.balanceOf(address(psm)) * + psm.getAssetsFromShares()) / 1e18; // 10000 - console.log( - "sUSDe Price Before Deposit -> ", - sUSDePriceBeforeWhaleDeposit - ); + console.log("sUSDe Price Before Deposit -> ", sUSDePriceBeforeWhaleDeposit); vm.stopPrank(); @@ -109,46 +70,39 @@ contract PegStabilityModuleYieldFork is Test { _whaleDepositToVault(); - uint256 feeDistributorBalanceBefore = sUSDe.balanceOf(FEEDISTRIBUTOR); + uint256 feeDistributorBalanceBefore = sUSDe.balanceOf(psm.feeDistributor()); console.log("FEE Distributor Before Balance", feeDistributorBalanceBefore); uint256 exchangeRateAfterDeposit = psm.getAssetsFromShares(); // 1.15 - console.log( - "After deposit exchange rate should change", - exchangeRateAfterDeposit - ); - uint sUSDePriceAfterWhaleDeposit = (sUSDe.balanceOf(address(psm)) * exchangeRateAfterDeposit) / - 1e18; - console.log( - "sUSDe Price After Deposit -> ", - sUSDePriceAfterWhaleDeposit); + console.log("After deposit exchange rate should change", exchangeRateAfterDeposit); + uint256 sUSDePriceAfterWhaleDeposit = (sUSDe.balanceOf(address(psm)) * exchangeRateAfterDeposit) / 1e18; + console.log("sUSDe Price After Deposit -> ", sUSDePriceAfterWhaleDeposit); assertGt(exchangeRateAfterDeposit, exchangeRateBeforeDeposit); assertGt(sUSDePriceAfterWhaleDeposit, sUSDePriceBeforeWhaleDeposit); - + + psm.transferYieldToFeeDistributor(); - uint256 feeDistributorBalanceAfter = sUSDe.balanceOf(FEEDISTRIBUTOR); + uint256 feeDistributorBalanceAfter = sUSDe.balanceOf(psm.feeDistributor()); console.log("Fee Distributor Balance", feeDistributorBalanceAfter); assertApproxEqAbs( feeDistributorBalanceAfter, - ((sUSDePriceAfterWhaleDeposit - sUSDePriceBeforeWhaleDeposit) * 1e18) / - psm.getAssetsFromShares(),5, "!distributorBalance" + ((sUSDePriceAfterWhaleDeposit - sUSDePriceBeforeWhaleDeposit) * 1e18) / psm.getAssetsFromShares(), + 5, + "!distributorBalance" ); - console.log( - "After Mint PSM Collateral Balance", - sUSDe.balanceOf(address(psm)) - ); + console.log("After Mint PSM Collateral Balance", sUSDe.balanceOf(address(psm))); } - function testExchangeRate() external { + function testExchangeRate() public { uint256 rate1 = psm.getAssetsFromShares(); uint256 sixMonthsInSeconds = 180 days; vm.warp(block.timestamp + sixMonthsInSeconds); _whaleDepositToVault(); - uint rate = psm.getAssetsFromShares(); + uint256 rate = psm.getAssetsFromShares(); assertLt(rate, rate1); } @@ -156,11 +110,33 @@ contract PegStabilityModuleYieldFork is Test { // Now Deposit in the vault to change the vault exchage rate address USDe = 0x4c9EDD5852cd905f086C759E8383e09bff1E68B3; address WHALE_USDe = 0x88a1493366D48225fc3cEFbdae9eBb23E323Ade3; - uint256 assetAmount = 1000 ether; + uint256 assetAmount = 10_000_000 ether; vm.startPrank(WHALE_USDe); IERC20(USDe).approve(address(sUSDe), assetAmount); sUSDe.deposit(assetAmount, WHALE_USDe); vm.stopPrank(); } + + function _setUpPSMY() internal { + mainnetFork = vm.createFork(MAINNET_RPC_URL); + vm.selectFork(mainnetFork); + + USDZ = IStablecoin(0x69000405f9DcE69BD4Cbf4f2865b79144A69BFE0); + sUSDe = IERC4626(0x9D39A5DE30e57443BfF2A8307A4256c8797A3497); + GOVERNANCE = 0x4E88E72bd81C7EA394cB410296d99987c3A242fE; + FEEDISTRIBUTOR = makeAddr("feeDistributor"); + + // Deploy the PSM Contract here + psm = new PegStabilityModuleYield(); + + // Initialize the PSM + psm.initialize(address(USDZ), address(sUSDe), GOVERNANCE, 100_000 * 1e18, 100_000 * 1e18, 0, 100, FEEDISTRIBUTOR); + + vm.startPrank(ROLE_ADMIN); + USDZ.grantManagerRole(GOVERNANCE); + USDZ.grantManagerRole(address(psm)); + USDZ.grantManagerRole(address(this)); + vm.stopPrank(); + } } diff --git a/test/foundry/SUSDeForkTest.sol b/test/foundry/SUSDeForkTest.sol new file mode 100644 index 0000000..9af867c --- /dev/null +++ b/test/foundry/SUSDeForkTest.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: GPL-3.0 + +// ███╗ ███╗ █████╗ ██╗ ██╗ █████╗ +// ████╗ ████║██╔══██╗██║ ██║██╔══██╗ +// ██╔████╔██║███████║███████║███████║ +// ██║╚██╔╝██║██╔══██║██╔══██║██╔══██║ +// ██║ ╚═╝ ██║██║ ██║██║ ██║██║ ██║ +// ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ + +// Website: https://maha.xyz +// Discord: https://discord.gg/mahadao +// Twitter: https://twitter.com/mahaxyz_ + +pragma solidity 0.8.21; + +import {SafetyPool} from "../../contracts/core/safety-pool/SafetyPool.sol"; +import {SUSDECollectorCron} from "../../contracts/periphery/crons/sUSDeCollectorCron.sol"; +import {PegStabilityModuleYieldFork} from "./PegStabilityModuleFork.sol"; +import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol"; +import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; +import "forge-std/console.sol"; + +contract SUSDEForkTest is PegStabilityModuleYieldFork { + SUSDECollectorCron public collector; + IERC20 public _usdc; + SafetyPool public _sUSDz; + + // Data Generated from Odos API for sUSDe to USDC + bytes odosCalldata = + hex"83bd37f900019d39a5de30e57443bff2a8307a4256c8797a34970001a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4807038d7ea4c6800002046000c49b0001B28Ca7e465C452cE4252598e0Bc96Aeba553CF82000000012e234DAe75C793f67A35089C9d99245E1C58470b0000000004020203000701010102b819feef8f0fcdc268afe14162983a69f6bf179e000000000000000000000689ff000000000000000000000000000000000000000000009d39a5de30e57443bff2a8307a4256c8797a3497a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000"; + + function setUp() public override { + _setUpPSMY(); + + collector = new SUSDECollectorCron(); + _usdc = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); + _sUSDz = SafetyPool(0x69000E468f7f6d6f4ed00cF46f368ACDAc252553); + + collector.initialize( + address(0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559), address(_sUSDz), address(_usdc), address(sUSDe) + ); + + vm.startPrank(GOVERNANCE); + psm.updateFeeDistributor(address(collector)); + vm.stopPrank(); + console.log("Collector Address", address(collector)); + } + + function testInitValuesCollector() external view { + assertEq(collector.sUSDz(), address(_sUSDz)); + assertEq(address(collector.usdc()), address(_usdc)); + } + + function testSwapOdosUSDC() external { + uint256 usdcBalanceBefore = IERC20(address(_usdc)).balanceOf(address(collector)); + console.log("Before Collector USDC Balance", usdcBalanceBefore); + testTransferYieldToFeeDistributor(); + uint256 amount = 0.001 ether; + collector.swapToUSDC(odosCalldata, amount); + uint256 usdcBalanceAfter = IERC20(address(_usdc)).balanceOf(address(collector)); + console.log("After Collector USDC Balance", usdcBalanceAfter); + assertGt(usdcBalanceAfter,usdcBalanceBefore,"USDC After > USDC Before"); + vm.stopPrank(); + } +} diff --git a/test/foundry/base/BasePsmYieldTest.sol b/test/foundry/base/BasePsmYieldTest.sol index b4b71f8..f9c5f11 100644 --- a/test/foundry/base/BasePsmYieldTest.sol +++ b/test/foundry/base/BasePsmYieldTest.sol @@ -28,7 +28,6 @@ contract BasePsmYieldTest is BaseUsdzTest { address(usdz), address(sUsdc), governance, - 1e6, 100_000 * 1e6, // supplyCap 100_000 * 1e18, // debtCap 100, // supplyFeeBps diff --git a/yarn.lock b/yarn.lock index 9eaca0f..bfe7f25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,6 +7,14 @@ resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== +"@aptos-labs/aptos-client@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-client/-/aptos-client-0.1.1.tgz#cbcd2a73bad252e344318baec32ecc54d8136ee0" + integrity sha512-kJsoy4fAPTOhzVr7Vwq8s/AUg6BQiJDa7WOqRzev4zsuIS3+JCuIZ6vUd7UBsjnxtmguJJulMRs9qWCzVBt2XA== + dependencies: + axios "1.7.4" + got "^11.8.6" + "@aws-crypto/sha256-js@1.2.2": version "1.2.2" resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-1.2.2.tgz#02acd1a1fda92896fc5a28ec7c6e164644ea32fc" @@ -63,6 +71,13 @@ js-tokens "^4.0.0" picocolors "^1.0.0" +"@babel/runtime@^7.25.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" + integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + dependencies: + regenerator-runtime "^0.14.0" + "@balena/dockerignore@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" @@ -73,6 +88,20 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@colors/colors@1.6.0", "@colors/colors@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" + integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + "@esbuild/android-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" @@ -388,7 +417,7 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.2": +"@ethersproject/providers@5.7.2", "@ethersproject/providers@^5.7.0", "@ethersproject/providers@^5.7.2": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== @@ -583,6 +612,57 @@ tar "^6.1.12" undici "^6.6.2" +"@improbable-eng/grpc-web@^0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" + integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== + dependencies: + browser-headers "^0.4.1" + +"@initia/initia.js@^0.2.11": + version "0.2.21" + resolved "https://registry.yarnpkg.com/@initia/initia.js/-/initia.js-0.2.21.tgz#06207d9b09108989526c94165c835e19d8b3e735" + integrity sha512-R5fTGXAu0sBwaPHEIoT5BFtvflyfJn54ZgVbzn0Olke5hHKDHHOkZiuF0ymN+4EvgHEnX4ZTjZmtf4gMD4ddhg== + dependencies: + "@initia/initia.proto" "^0.2.3" + "@initia/opinit.proto" "^0.0.10" + "@ledgerhq/hw-transport" "^6.27.12" + "@ledgerhq/hw-transport-webhid" "^6.27.12" + "@ledgerhq/hw-transport-webusb" "^6.27.12" + "@mysten/bcs" "^1.0.2" + axios "^1.7.4" + bech32 "^2.0.0" + bignumber.js "^9.1.0" + bip32 "^2.0.6" + bip39 "^3.0.4" + jscrypto "^1.0.3" + keccak256 "^1.0.6" + long "^5.2.0" + ripemd160 "^2.0.2" + secp256k1 "^5.0.0" + semver "^7.6.3" + ws "^7.5.10" + +"@initia/initia.proto@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@initia/initia.proto/-/initia.proto-0.2.3.tgz#f80d1c86405b51db362d16f217156e061f71f68e" + integrity sha512-lmhRNFTzYBGIYZgtiy2DLXIf6VsOXf9/WDgtSPjl9wlFchhbEJrR+PHBxQFYhHen5JmXpXWzESmTSGPUILOXHw== + dependencies: + "@improbable-eng/grpc-web" "^0.15.0" + google-protobuf "^3.21.4" + long "^5.2.3" + protobufjs "^7.3.2" + +"@initia/opinit.proto@^0.0.10": + version "0.0.10" + resolved "https://registry.yarnpkg.com/@initia/opinit.proto/-/opinit.proto-0.0.10.tgz#04712e34f56eeaa23636a50ded6d2d4b40b56ea7" + integrity sha512-AlLIAZMqeZSld1g0Fp/zXkVjQME19r8N3JEy9rISKqQpjKAIbgnZJ3ukR78nYGdr9TPpt8RBMdDWsjPnzD0xSQ== + dependencies: + "@improbable-eng/grpc-web" "^0.15.0" + google-protobuf "^3.21.4" + long "^5.2.3" + protobufjs "^7.3.2" + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -595,11 +675,40 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" +"@layerzerolabs/evm-sdks-core@^3.0.7": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@layerzerolabs/evm-sdks-core/-/evm-sdks-core-3.0.12.tgz#83dc16cae8dc154ae5ddc9f779815862a5928e4f" + integrity sha512-8FBiOvp1EiQ3LK/BvaqhZlIZUIMfaJU+craRHVXyshMK3mQDaih7OdOXkkX+VrCZ1OmTCtfGWpD2CHlFzH2X+w== + dependencies: + ethers "^5.7.2" + +"@layerzerolabs/lz-definitions@^3.0.12", "@layerzerolabs/lz-definitions@~3.0.7": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-definitions/-/lz-definitions-3.0.12.tgz#e66cca30b0c6a4d66e53fd4aa9a4502509415882" + integrity sha512-o8P8hhPZq0idOydFL+HlBMFv0VUIyfwyUWbKfuJ7hPsYRBA3upN2KORAp4j7jGc40lEYoS8LfTsEUqlYrY2opQ== + dependencies: + tiny-invariant "^1.3.1" + +"@layerzerolabs/lz-evm-messagelib-v2@2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-evm-messagelib-v2/-/lz-evm-messagelib-v2-2.0.11.tgz#8437a2a30e9794c56393d83b3f9d2671aadf2648" + integrity sha512-i6nZvzxzH+3bMzGRxIzf6fFXTzxQIZ1vyduAoFTy3U2zK9xZUHunKFfpC+vqCY1goNzjBquX4VnClWMWlc5ZIA== + "@layerzerolabs/lz-evm-oapp-v2@^2.3.36": version "2.3.36" resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-evm-oapp-v2/-/lz-evm-oapp-v2-2.3.36.tgz#930163eaf3b6ba5cda10159865776e2d3489e462" integrity sha512-ftKop35M5TTZdCEcg/QYaCWXvu1YHi2UB1njw737D2c0pptj+Vzp+aNXoKswOqPW8jzdtJ6xaULUtvdh2f+ZcA== +"@layerzerolabs/lz-evm-oapp-v2@~2.3.25": + version "2.3.44" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-evm-oapp-v2/-/lz-evm-oapp-v2-2.3.44.tgz#e6a2e9fc60e7f21009138405cc21e3bcfe48177d" + integrity sha512-FNm9+OFKOl+/5JvpV6rMUoHZSePOcLtNJ+GHJuf38xPmEe0ehxFVQBw3iIfaH2dsWzRn/T7ZizV5ouId35FLdg== + +"@layerzerolabs/lz-evm-protocol-v2@2.0.11": + version "2.0.11" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-evm-protocol-v2/-/lz-evm-protocol-v2-2.0.11.tgz#4f341e7716f24653bff68c5451ddb3b369df265b" + integrity sha512-hkcNheUjTOYNxoAnBTSatLLzLe71Y7kcmw1+56aazezyUb6SCu330V4sJg+jsp8Ag6Sb7y1tLLYn1Sa5EWgCxg== + "@layerzerolabs/lz-evm-protocol-v2@^2.3.36": version "2.3.36" resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-evm-protocol-v2/-/lz-evm-protocol-v2-2.3.36.tgz#08da4d9fee8bc00b96fa002e00e29cee776f8bf6" @@ -613,6 +722,41 @@ "@openzeppelin/contracts" "3.4.2-solc-0.7" "@openzeppelin/contracts-upgradeable" "3.4.2-solc-0.7" +"@layerzerolabs/lz-evm-sdk-v2@3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-evm-sdk-v2/-/lz-evm-sdk-v2-3.0.7.tgz#639d0475a82b858c7952548062b097750ce6c001" + integrity sha512-PwviZdVNjeu0j2EJpZ/GcU5UmBis+tQyphG/Klb69QbTdf4fC1DhRQBqnF+msdhCAsih+gthMCWMLKuRGJ5f+Q== + dependencies: + "@layerzerolabs/evm-sdks-core" "^3.0.7" + ethers "^5.7.2" + +"@layerzerolabs/lz-evm-v1-0.7@~3.0.7": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-evm-v1-0.7/-/lz-evm-v1-0.7-3.0.12.tgz#005b18bcc97e2774757c24cf547b6e50ca9a0d74" + integrity sha512-7q8NRDwQ8vt+jpj7Pt8H/Q83v8lwa9RLgH2SXva15RQTC5L+ARoEACek9Pk0qLJrA/tKkpiNcn6MxwTJx+he7g== + +"@layerzerolabs/lz-utilities@~3.0.7": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-utilities/-/lz-utilities-3.0.12.tgz#94a9fe4fa4ddcb08bfe0d63af149f58914ee7cf4" + integrity sha512-r4zVU2gdtDfM+VMHnEdchA/J3Yu+Lqq+Ry/psKR13PL3dNRmGUB7KhcklMKX8DcFfdUXu5S7acibRLqRXN1+Bg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/providers" "^5.7.0" + "@initia/initia.js" "^0.2.11" + "@layerzerolabs/lz-definitions" "^3.0.12" + "@noble/hashes" "^1.3.2" + "@noble/secp256k1" "^1.7.1" + "@solana/web3.js" "^1.92.1" + aptos "^1.20.0" + bip39 "^3.1.0" + ed25519-hd-key "^1.3.0" + ethers "^5.7.2" + find-up "^5.0.0" + glob "^10.3.10" + tree-kill "^1.2.2" + winston "^3.11.0" + zx "^8.1.3" + "@layerzerolabs/lz-v2-utilities@^2.3.36": version "2.3.36" resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-v2-utilities/-/lz-v2-utilities-2.3.36.tgz#d740b5edac7ad791b222ab70034a47be660c61d5" @@ -627,6 +771,20 @@ bs58 "^5.0.0" tiny-invariant "^1.3.1" +"@layerzerolabs/lz-v2-utilities@~3.0.7": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@layerzerolabs/lz-v2-utilities/-/lz-v2-utilities-3.0.12.tgz#044acf4c3d919bf77a831f37057e10bdfd5a13a6" + integrity sha512-N3lUVCOJaypISStmC420TeKiuWQEWm9PXWI40orDigKmM6OkbNko8DGUIvNVB7OH7PvrSPGXiTuoKBDPGG6LTA== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/solidity" "^5.7.0" + bs58 "^5.0.0" + tiny-invariant "^1.3.1" + "@layerzerolabs/solidity-examples@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@layerzerolabs/solidity-examples/-/solidity-examples-1.1.0.tgz#c8f23065c3ec0f79104f538e65d98eacb1689f9b" @@ -645,6 +803,56 @@ hardhat-deploy-ethers "^0.3.0-beta.13" hardhat-gas-reporter "^1.0.6" +"@ledgerhq/devices@^8.4.4": + version "8.4.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.4.4.tgz#0d195c1650fe57da2fad7f0d9074a0190947cd6f" + integrity sha512-sz/ryhe/R687RHtevIE9RlKaV8kkKykUV4k29e7GAVwzHX1gqG+O75cu1NCJUHLbp3eABV5FdvZejqRUlLis9A== + dependencies: + "@ledgerhq/errors" "^6.19.1" + "@ledgerhq/logs" "^6.12.0" + rxjs "^7.8.1" + semver "^7.3.5" + +"@ledgerhq/errors@^6.19.1": + version "6.19.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.19.1.tgz#d9ac45ad4ff839e468b8f63766e665537aaede58" + integrity sha512-75yK7Nnit/Gp7gdrJAz0ipp31CCgncRp+evWt6QawQEtQKYEDfGo10QywgrrBBixeRxwnMy1DP6g2oCWRf1bjw== + +"@ledgerhq/hw-transport-webhid@^6.27.12": + version "6.29.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.29.4.tgz#5b07ed6c50140e623c8210063f348b8dd5443717" + integrity sha512-XkF37lcuyg9zVExMyfDQathWly8rRcGac13wgZATBa3nZ+hUzzWr5QVKg1pKCw10izVHGErW/9a4tbb72rUEmQ== + dependencies: + "@ledgerhq/devices" "^8.4.4" + "@ledgerhq/errors" "^6.19.1" + "@ledgerhq/hw-transport" "^6.31.4" + "@ledgerhq/logs" "^6.12.0" + +"@ledgerhq/hw-transport-webusb@^6.27.12": + version "6.29.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webusb/-/hw-transport-webusb-6.29.4.tgz#5926421b8db4b474c7aba4851f21ddd4ad4bcc70" + integrity sha512-HoGF1LlBT9HEGBQy2XeCHrFdv/FEOZU0+J+yfKcgAQIAiASr2MLvdzwoJbUS8h6Gn+vc+/BjzBSO3JNn7Loqbg== + dependencies: + "@ledgerhq/devices" "^8.4.4" + "@ledgerhq/errors" "^6.19.1" + "@ledgerhq/hw-transport" "^6.31.4" + "@ledgerhq/logs" "^6.12.0" + +"@ledgerhq/hw-transport@^6.27.12", "@ledgerhq/hw-transport@^6.31.4": + version "6.31.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.31.4.tgz#9b23a6de4a4caaa5c24b149c2dea8adde46f0eb1" + integrity sha512-6c1ir/cXWJm5dCWdq55NPgCJ3UuKuuxRvf//Xs36Bq9BwkV2YaRQhZITAkads83l07NAdR16hkTWqqpwFMaI6A== + dependencies: + "@ledgerhq/devices" "^8.4.4" + "@ledgerhq/errors" "^6.19.1" + "@ledgerhq/logs" "^6.12.0" + events "^3.3.0" + +"@ledgerhq/logs@^6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.12.0.tgz#ad903528bf3687a44da435d7b2479d724d374f5d" + integrity sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA== + "@metamask/eth-sig-util@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" @@ -656,6 +864,13 @@ tweetnacl "^1.0.3" tweetnacl-util "^0.15.1" +"@mysten/bcs@^1.0.2": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@mysten/bcs/-/bcs-1.1.0.tgz#dee28e8e4d1671f694afad471b644020b227102a" + integrity sha512-yy9/1Y4d0FlRywS1+9ze/T7refCbrvwFwJIOKs9M3QBK1njbcHZp+LkVeLqBvIJA5eZ3ZCzmhQ1Xq4Sed5mEBA== + dependencies: + bs58 "^6.0.0" + "@noble/curves@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" @@ -670,6 +885,13 @@ dependencies: "@noble/hashes" "1.4.0" +"@noble/curves@^1.4.2": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.6.0.tgz#be5296ebcd5a1730fccea4786d420f87abfeb40b" + integrity sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ== + dependencies: + "@noble/hashes" "1.5.0" + "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" @@ -680,12 +902,22 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== +"@noble/hashes@1.3.3", "@noble/hashes@~1.3.0": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== + "@noble/hashes@1.4.0", "@noble/hashes@^1.4.0", "@noble/hashes@~1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== -"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": +"@noble/hashes@1.5.0", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.5.0.tgz#abadc5ca20332db2b1b2aa3e496e9af1213570b0" + integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA== + +"@noble/secp256k1@1.7.1", "@noble/secp256k1@^1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== @@ -1207,6 +1439,59 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + "@pythnetwork/pyth-sdk-solidity@^2.4.1": version "2.4.1" resolved "https://registry.yarnpkg.com/@pythnetwork/pyth-sdk-solidity/-/pyth-sdk-solidity-2.4.1.tgz#769e6f3153eaea4fadfeae329bbfe07450aae21c" @@ -1243,6 +1528,14 @@ "@noble/hashes" "~1.2.0" "@scure/base" "~1.1.0" +"@scure/bip39@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" + integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== + dependencies: + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + "@scure/bip39@1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" @@ -1319,6 +1612,11 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + "@smithy/types@^3.3.0": version "3.3.0" resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.3.0.tgz#fae037c733d09bc758946a01a3de0ef6e210b16b" @@ -1326,6 +1624,34 @@ dependencies: tslib "^2.6.2" +"@solana/buffer-layout@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" + integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== + dependencies: + buffer "~6.0.3" + +"@solana/web3.js@^1.92.1": + version "1.95.4" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.95.4.tgz#771603f60d75cf7556ad867e1fd2efae32f9ad09" + integrity sha512-sdewnNEA42ZSMxqkzdwEWi6fDgzwtJHaQa5ndUGEJYtoOnM6X5cvPmjoTUp7/k7bRrVAxfBgDnvQQHD6yhlLYw== + dependencies: + "@babel/runtime" "^7.25.0" + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana/buffer-layout" "^4.0.1" + agentkeepalive "^4.5.0" + bigint-buffer "^1.1.5" + bn.js "^5.2.1" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.1.1" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@solidity-parser/parser@^0.14.0": version "0.14.5" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" @@ -1377,6 +1703,50 @@ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== +"@stargatefinance/stg-definitions-v2@~1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@stargatefinance/stg-definitions-v2/-/stg-definitions-v2-1.2.4.tgz#00b79ac2c370ef14ada703ca78a856ba9074f96f" + integrity sha512-v3bY4+XDyqNAdxebZKDiDtwMEOLjz9/OwBKCm4ntbgaOb2RHbM/PJbiDEcSE574goweIwAO26kFZvUFN4+SyHg== + +"@stargatefinance/stg-evm-v1@~1.0.31": + version "1.0.33" + resolved "https://registry.yarnpkg.com/@stargatefinance/stg-evm-v1/-/stg-evm-v1-1.0.33.tgz#53eec9d4c369d5b2225259d58ed75c4224cacfc1" + integrity sha512-funR7QssJn+9m8tAO+2nMB2+9ke1FplY5/Jt1RGReFR4ZXhlMKWvbos4KNh7L6k6tu2c+9oQOjn8bPiGnGwmew== + dependencies: + exponential-backoff "^3.1.1" + +"@stargatefinance/stg-evm-v2@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@stargatefinance/stg-evm-v2/-/stg-evm-v2-1.1.3.tgz#5d9054c7476c3bbf91d66507a71fbb2e3762f940" + integrity sha512-krY1beDTOXKCGdymDkErIgiWZnFYmPfvbTXZ3TaT0GaZ7yBlqerA0w9ViPtAl6ieVAT2N9kyP4nY8xUq4oJASA== + dependencies: + "@layerzerolabs/lz-definitions" "~3.0.7" + "@layerzerolabs/lz-evm-messagelib-v2" "2.0.11" + "@layerzerolabs/lz-evm-oapp-v2" "~2.3.25" + "@layerzerolabs/lz-evm-protocol-v2" "2.0.11" + "@layerzerolabs/lz-evm-sdk-v2" "3.0.7" + "@layerzerolabs/lz-evm-v1-0.7" "~3.0.7" + "@layerzerolabs/lz-utilities" "~3.0.7" + "@layerzerolabs/lz-v2-utilities" "~3.0.7" + "@stargatefinance/stg-definitions-v2" "~1.2.4" + "@stargatefinance/stg-evm-v1" "~1.0.31" + "@types/sinon" "~17.0.3" + ethers "^5.7.2" + +"@swc/helpers@^0.5.11": + version "0.5.13" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c" + integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== + dependencies: + tslib "^2.4.0" + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + "@tenderly/hardhat-tenderly@1.1.0-beta.5": version "1.1.0-beta.5" resolved "https://registry.yarnpkg.com/@tenderly/hardhat-tenderly/-/hardhat-tenderly-1.1.0-beta.5.tgz#f98d38de02000c53c70ddab85642cdffa40684b3" @@ -1417,6 +1787,16 @@ dependencies: "@types/node" "*" +"@types/cacheable-request@^6.0.1": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + "@types/chai-as-promised@^7.1.3": version "7.1.8" resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-7.1.8.tgz#f2b3d82d53c59626b5d6bbc087667ccb4b677fe9" @@ -1441,6 +1821,13 @@ dependencies: "@types/node" "*" +"@types/connect@^3.4.33": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + "@types/docker-modem@*": version "3.0.6" resolved "https://registry.yarnpkg.com/@types/docker-modem/-/docker-modem-3.0.6.tgz#1f9262fcf85425b158ca725699a03eb23cddbf87" @@ -1465,6 +1852,14 @@ dependencies: "@types/node" "*" +"@types/fs-extra@>=11": + version "11.0.4" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.4.tgz#e16a863bb8843fba8c5004362b5a73e17becca45" + integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== + dependencies: + "@types/jsonfile" "*" + "@types/node" "*" + "@types/glob@^7.1.1": version "7.2.0" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" @@ -1473,6 +1868,25 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/http-cache-semantics@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + +"@types/jsonfile@*": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702" + integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== + dependencies: + "@types/node" "*" + +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + "@types/lodash@*": version "4.17.7" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" @@ -1507,6 +1921,11 @@ dependencies: undici-types "~6.19.2" +"@types/node@10.12.18": + version "10.12.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" + integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== + "@types/node@14.0.5": version "14.0.5" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.5.tgz#3d03acd3b3414cf67faf999aed11682ed121f22b" @@ -1517,11 +1936,23 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== +"@types/node@>=13.7.0", "@types/node@>=20": + version "22.9.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365" + integrity sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ== + dependencies: + undici-types "~6.19.8" + "@types/node@^10.0.3": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== +"@types/node@^12.12.54": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + "@types/node@^18.11.18": version "18.19.54" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.54.tgz#f1048dc083f81b242640f04f18fb3e4ccf13fcdb" @@ -1551,6 +1982,13 @@ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + "@types/secp256k1@^4.0.1": version "4.0.6" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" @@ -1558,6 +1996,18 @@ dependencies: "@types/node" "*" +"@types/sinon@~17.0.3": + version "17.0.3" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-17.0.3.tgz#9aa7e62f0a323b9ead177ed23a36ea757141a5fa" + integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== + dependencies: + "@types/sinonjs__fake-timers" "*" + +"@types/sinonjs__fake-timers@*": + version "8.1.5" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz#5fd3592ff10c1e9695d377020c033116cc2889f2" + integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== + "@types/ssh2@*": version "1.15.1" resolved "https://registry.yarnpkg.com/@types/ssh2/-/ssh2-1.15.1.tgz#4db4b6864abca09eb299fe5354fa591add412223" @@ -1565,11 +2015,43 @@ dependencies: "@types/node" "^18.11.18" +"@types/triple-beam@^1.3.2": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" + integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== + "@types/underscore@^1.11.15": version "1.11.15" resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.15.tgz#29c776daecf6f1935da9adda17509686bf979947" integrity sha512-HP38xE+GuWGlbSRq9WrZkousaQ7dragtZCruBVMi0oX1migFZavZ3OROKHSkNp/9ouq82zrWtZpg18jFnVN96g== +"@types/uuid@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== + +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@types/ws@^8.2.2": + version "8.5.13" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.13.tgz#6414c280875e2691d0d1e080b05addbf5cb91e20" + integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== + dependencies: + "@types/node" "*" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1580,6 +2062,13 @@ abbrev@1.0.x: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" integrity sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -1615,6 +2104,13 @@ agent-base@6: dependencies: debug "4" +agentkeepalive@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + dependencies: + humanize-ms "^1.2.1" + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -1720,6 +2216,18 @@ apg-js@^4.1.1: resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.4.0.tgz#09dcecab0731fbde233b9f2352fdd2d07e56b2cf" integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q== +aptos@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.21.0.tgz#346623967a6d038a85f02d71ed6ec62c4cd2ae5e" + integrity sha512-PRKjoFgL8tVEc9+oS7eJUv8GNxx8n3+0byH2+m7CP3raYOD6yFKOecuwjVMIJmgfpjp6xH0P0HDMGZAXmSyU0Q== + dependencies: + "@aptos-labs/aptos-client" "^0.1.0" + "@noble/hashes" "1.3.3" + "@scure/bip39" "1.2.1" + eventemitter3 "^5.0.1" + form-data "4.0.0" + tweetnacl "1.0.3" + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -1830,6 +2338,11 @@ async@1.x: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== +async@^3.2.3: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1847,6 +2360,15 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" +axios@1.7.4, axios@^1.5.1, axios@^1.7.2: + version "1.7.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" + integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axios@^0.21.1, axios@^0.21.2: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" @@ -1854,7 +2376,7 @@ axios@^0.21.1, axios@^0.21.2: dependencies: follow-redirects "^1.14.0" -axios@^1.4.0, axios@^1.6.8: +axios@^1.4.0, axios@^1.6.8, axios@^1.7.4: version "1.7.7" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== @@ -1863,15 +2385,6 @@ axios@^1.4.0, axios@^1.6.8: form-data "^4.0.0" proxy-from-env "^1.1.0" -axios@^1.5.1, axios@^1.7.2: - version "1.7.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" - integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== - dependencies: - follow-redirects "^1.15.6" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1889,6 +2402,11 @@ base-x@^4.0.0: resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== +base-x@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.0.tgz#6d835ceae379130e1a4cb846a70ac4746f28ea9b" + integrity sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ== + base64-js@^1.0.2, base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -1906,11 +2424,55 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +bech32@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + +bigint-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" + integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== + dependencies: + bindings "^1.3.0" + +bignumber.js@^9.1.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + binary-extensions@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +bindings@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bip32@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134" + integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== + dependencies: + "@types/node" "10.12.18" + bs58check "^2.1.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + tiny-secp256k1 "^1.1.3" + typeforce "^1.11.5" + wif "^2.0.6" + +bip39@^3.0.4, bip39@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" + integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A== + dependencies: + "@noble/hashes" "^1.2.0" + bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -1963,6 +2525,15 @@ body-parser@1.20.3, body-parser@^1.20.1: type-is "~1.6.18" unpipe "1.0.0" +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + boxen@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" @@ -2004,6 +2575,11 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +browser-headers@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" + integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== + browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" @@ -2021,7 +2597,7 @@ browserify-aes@^1.2.0: inherits "^2.0.1" safe-buffer "^5.0.1" -bs58@^4.0.0: +bs58@^4.0.0, bs58@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== @@ -2035,7 +2611,14 @@ bs58@^5.0.0: dependencies: base-x "^4.0.0" -bs58check@^2.1.2: +bs58@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" + integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== + dependencies: + base-x "^5.0.0" + +bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== @@ -2063,6 +2646,14 @@ buffer@4.9.2: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -2071,13 +2662,12 @@ buffer@^5.2.1, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== +bufferutil@^4.0.1: + version "4.0.8" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" + node-gyp-build "^4.3.0" buildcheck@~0.0.6: version "0.0.6" @@ -2094,6 +2684,24 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" @@ -2284,7 +2892,14 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -color-convert@^1.9.0: +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -2303,11 +2918,27 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + colorette@^2.0.19: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" @@ -2318,6 +2949,14 @@ colors@1.4.0, colors@^1.1.2, colors@^1.4.0: resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + combined-stream@^1.0.6, combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -2350,7 +2989,7 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" -commander@^2.12.1: +commander@^2.12.1, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2436,7 +3075,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.4, create-hmac@^1.1.7: +create-hmac@1.1.7, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2513,6 +3152,13 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-eql@^4.0.1, deep-eql@^4.1.3: version "4.1.4" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" @@ -2535,6 +3181,11 @@ deep-object-diff@^1.1.9: resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.9.tgz#6df7ef035ad6a0caa44479c536ed7b02570f4595" integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA== +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" @@ -2553,6 +3204,11 @@ define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2643,6 +3299,14 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ed25519-hd-key@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ed25519-hd-key/-/ed25519-hd-key-1.3.0.tgz#e0bd2be4c07e15c753d5ed3aca30744e321b7c78" + integrity sha512-IWwAyiiuJQhgu3L8NaHb68eJxTu2pgCwxIBdgpLJdKpYZM46+AXePSVTr7fkNKaUOfOL4IrjEUaQvyVRIDP7fg== + dependencies: + create-hmac "1.1.7" + tweetnacl "1.0.3" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -2674,6 +3338,19 @@ elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.5.7: + version "6.6.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.0.tgz#5919ec723286c1edf28685aa89261d4761afa210" + integrity sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -2684,6 +3361,11 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + encode-utf8@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" @@ -2820,6 +3502,18 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + esbuild@^0.17.4: version "0.17.19" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955" @@ -3141,6 +3835,21 @@ ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -3164,6 +3873,11 @@ execa@^6.1.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + express@^4.18.2: version "4.21.0" resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915" @@ -3201,6 +3915,11 @@ express@^4.18.2: utils-merge "1.0.1" vary "~1.1.2" +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + fast-base64-decode@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-base64-decode/-/fast-base64-decode-1.0.0.tgz#b434a0dd7d92b12b43f26819300d2dafb83ee418" @@ -3237,6 +3956,11 @@ fast-safe-stringify@^2.0.6: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" + integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== + fast-uri@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" @@ -3249,6 +3973,16 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -3303,6 +4037,11 @@ fmix@^0.1.0: dependencies: imul "^1.0.0" +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + follow-redirects@^1.12.1, follow-redirects@^1.14.0, follow-redirects@^1.15.6: version "1.15.6" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" @@ -3323,6 +4062,15 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" +form-data@4.0.0, form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@^2.2.0: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" @@ -3332,15 +4080,6 @@ form-data@^2.2.0: combined-stream "^1.0.6" mime-types "^2.1.12" -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -3471,6 +4210,13 @@ get-port@^3.1.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -3524,6 +4270,18 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.0.tgz#6031df0d7b65eaa1ccb9b29b5ced16cea658e77e" @@ -3608,6 +4366,11 @@ globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" +google-protobuf@^3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.4.tgz#2f933e8b6e5e9f8edde66b7be0024b68f77da6c9" + integrity sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ== + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -3615,6 +4378,23 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +got@^11.8.6: + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" @@ -3926,6 +4706,11 @@ http-basic@^8.1.1: http-response-object "^3.0.1" parse-cache-control "^1.0.1" +http-cache-semantics@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -3944,6 +4729,14 @@ http-response-object@^3.0.1: dependencies: "@types/node" "^10.0.3" +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -3957,6 +4750,13 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + husky@8.0.3: version "8.0.3" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" @@ -4046,6 +4846,11 @@ is-array-buffer@^3.0.4: call-bind "^1.0.2" get-intrinsic "^1.2.1" +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -4163,6 +4968,11 @@ is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: dependencies: call-bind "^1.0.7" +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" @@ -4224,6 +5034,20 @@ isomorphic-unfetch@^3.0.0: node-fetch "^2.6.1" unfetch "^4.2.0" +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jackspeak@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.0.1.tgz#9fca4ce961af6083e259c376e9e3541431f5287b" @@ -4233,6 +5057,24 @@ jackspeak@^4.0.1: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jayson@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.2.tgz#443c26a8658703e0b2e881117b09395d88b6982e" + integrity sha512-5nzMWDHy6f+koZOuYsArh2AXs73NfWYVlFyJJuCedr93GpY+Ku8qq10ropSXVfHK+H0T6paA88ww+/dV+1fBNA== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + uuid "^8.3.2" + ws "^7.5.10" + jest-docblock@^21.0.0: version "21.2.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-21.2.0.tgz#51529c3b30d5fd159da60c27ceedc195faf8d414" @@ -4268,6 +5110,16 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jscrypto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/jscrypto/-/jscrypto-1.0.3.tgz#598febca2a939d6f679c54f56e1fe364cef30cc9" + integrity sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-schema-traverse@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" @@ -4278,6 +5130,11 @@ json-stream-stringify@^3.1.4: resolved "https://registry.yarnpkg.com/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz#ebe32193876fb99d4ec9f612389a8d8e2b5d54d4" integrity sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog== +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -4294,11 +5151,25 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + jsonschema@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== +keccak256@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/keccak256/-/keccak256-1.0.6.tgz#dd32fb771558fed51ce4e45a035ae7515573da58" + integrity sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw== + dependencies: + bn.js "^5.2.0" + buffer "^6.0.3" + keccak "^3.0.2" + keccak@^3.0.0, keccak@^3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" @@ -4308,11 +5179,23 @@ keccak@^3.0.0, keccak@^3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" +keyv@^4.0.0: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + ky@^0.32.2: version "0.32.2" resolved "https://registry.yarnpkg.com/ky/-/ky-0.32.2.tgz#dc62001379977b5dbd98f513d95b52fac8bf2207" @@ -4427,6 +5310,23 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" +logform@^2.6.0, logform@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.6.1.tgz#71403a7d8cae04b2b734147963236205db9b3df0" + integrity sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA== + dependencies: + "@colors/colors" "1.6.0" + "@types/triple-beam" "^1.3.2" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +long@^5.0.0, long@^5.2.0, long@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + loupe@^2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" @@ -4434,6 +5334,16 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.1" +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.0.tgz#15d93a196f189034d7166caf9fe55e7384c98a21" @@ -4538,6 +5448,16 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4569,7 +5489,7 @@ minimatch@^5.0.1, minimatch@^5.1.6: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.5: +minimatch@^9.0.4, minimatch@^9.0.5: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -4593,7 +5513,7 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -minipass@^7.1.2: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -4666,7 +5586,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.3: +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4680,6 +5600,11 @@ murmur-128@^0.2.1: fmix "^0.1.0" imul "^1.0.0" +nan@^2.13.2: + version "2.22.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.22.0.tgz#31bc433fc33213c97bad36404bb68063de604de3" + integrity sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw== + nan@^2.19.0, nan@^2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" @@ -4700,6 +5625,11 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-emoji@^1.10.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -4707,7 +5637,7 @@ node-emoji@^1.10.0: dependencies: lodash "^4.17.21" -node-fetch@^2.6.0, node-fetch@^2.6.1: +node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -4719,6 +5649,11 @@ node-gyp-build@^4.2.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== +node-gyp-build@^4.3.0: + version "4.8.2" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz#4f802b71c1ab2ca16af830e6c1ea7dd1ad9496fa" + integrity sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw== + nofilter@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" @@ -4736,6 +5671,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + npm-run-path@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" @@ -4795,6 +5735,13 @@ once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -4831,6 +5778,11 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -4916,6 +5868,14 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" @@ -5016,6 +5976,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + promise@^8.0.0: version "8.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" @@ -5032,6 +5997,24 @@ proper-lockfile@^4.1.1: retry "^0.12.0" signal-exit "^3.0.2" +protobufjs@^7.3.2: + version "7.4.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.4.0.tgz#7efe324ce9b3b61c82aae5de810d287bc08a248a" + integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -5065,6 +6048,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -5109,6 +6097,17 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.0, readable string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readdirp@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.2.tgz#388fccb8b75665da3abffe2d8f8ed59fe74c230a" @@ -5140,6 +6139,11 @@ reduce-flatten@^2.0.0: resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + regexp.prototype.flags@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" @@ -5174,6 +6178,11 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -5200,6 +6209,13 @@ resolve@^1.1.6, resolve@^1.3.2: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -5243,7 +6259,7 @@ rimraf@^6.0.1: glob "^11.0.0" package-json-from-dist "^1.0.0" -ripemd160@^2.0.0, ripemd160@^2.0.1: +ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== @@ -5258,6 +6274,22 @@ rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4: dependencies: bn.js "^5.2.0" +rpc-websockets@^9.0.2: + version "9.0.4" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.0.4.tgz#9d8ee82533b5d1e13d9ded729e3e38d0d8fa083f" + integrity sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ== + dependencies: + "@swc/helpers" "^0.5.11" + "@types/uuid" "^8.3.4" + "@types/ws" "^8.2.2" + buffer "^6.0.3" + eventemitter3 "^5.0.1" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5265,7 +6297,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.8.0: +rxjs@^7.8.0, rxjs@^7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -5301,6 +6333,11 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" +safe-stable-stringify@^2.3.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz#4ca2f8e385f2831c432a719b108a3bf7af42a1dd" + integrity sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA== + "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -5340,6 +6377,15 @@ secp256k1@^4.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" +secp256k1@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.1.tgz#dc2c86187d48ff2da756f0f7e96417ee03c414b1" + integrity sha512-lDFs9AAIaWP9UCdtWrotXWWF9t8PWgQDcxqgAnpM9rMqxb3Oaq2J0thzPVSxBwdJgyQtkU/sYtFtbM1RSt/iYA== + dependencies: + elliptic "^6.5.7" + node-addon-api "^5.0.0" + node-gyp-build "^4.2.0" + semver@^5.3.0, semver@^5.5.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" @@ -5350,7 +6396,7 @@ semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.8, semver@^7.5.0, semver@^7.6.2: +semver@^7.3.4, semver@^7.3.5, semver@^7.3.8, semver@^7.5.0, semver@^7.6.2, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -5480,6 +6526,13 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + siwe@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/siwe/-/siwe-1.1.6.tgz#b4b4fe7814654d5ea529171b2ede15f7ef7ef1ae" @@ -5619,6 +6672,11 @@ ssh2@^1.11.0: cpu-features "~0.0.10" nan "^2.20.0" +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + stacktrace-parser@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -5641,7 +6699,7 @@ string-format@^2.0.0: resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5658,6 +6716,15 @@ string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + 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" + string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -5695,7 +6762,7 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -string_decoder@^1.1.1: +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -5709,7 +6776,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -5723,6 +6790,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -5747,6 +6821,11 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +superstruct@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" + integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== + supports-color@^3.1.0: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" @@ -5850,6 +6929,16 @@ tar@^6.1.12: mkdirp "^1.0.3" yallist "^4.0.0" +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + then-request@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/then-request/-/then-request-6.0.2.tgz#ec18dd8b5ca43aaee5cb92f7e4c1630e950d4f0c" @@ -5867,7 +6956,7 @@ then-request@^6.0.0: promise "^8.0.0" qs "^6.4.0" -through@^2.3.8: +"through@>=2.2.7 <3", through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -5877,6 +6966,17 @@ tiny-invariant@^1.3.1: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== +tiny-secp256k1@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.7.tgz#0c1b6b9d2d93404f9093dc7e287b0aa834480573" + integrity sha512-eb+F6NabSnjbLwNoC+2o5ItbmP1kg7HliWue71JgLegQt6A5mTN8YbvTLCazdlg6e5SV6A+r8OGvZYskdlmhqQ== + dependencies: + bindings "^1.3.0" + bn.js "^4.11.8" + create-hmac "^1.1.7" + elliptic "^6.4.0" + nan "^2.13.2" + tmp@0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -5901,6 +7001,16 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +triple-beam@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" + integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== + ts-command-line-args@^2.2.0: version "2.5.1" resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" @@ -5942,6 +7052,11 @@ tslib@^2.1.0, tslib@^2.3.1, tslib@^2.6.2: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== +tslib@^2.4.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + tslint-config-prettier@1.18.0: version "1.18.0" resolved "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37" @@ -5992,16 +7107,16 @@ tweetnacl-util@^0.15.0, tweetnacl-util@^0.15.1: resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== +tweetnacl@1.0.3, tweetnacl@^1.0.0, tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + tweetnacl@^0.14.3: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== -tweetnacl@^1.0.0, tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -6102,6 +7217,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== +typeforce@^1.11.5: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + typescript@^5.5.3: version "5.5.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" @@ -6142,7 +7262,7 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici-types@~6.19.2: +undici-types@~6.19.2, undici-types@~6.19.8: version "6.19.8" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== @@ -6179,6 +7299,13 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + utf8@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" @@ -6274,6 +7401,39 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ== + dependencies: + bs58check "<3.0.0" + +winston-transport@^4.7.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.8.0.tgz#a15080deaeb80338455ac52c863418c74fcf38ea" + integrity sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA== + dependencies: + logform "^2.6.1" + readable-stream "^4.5.2" + triple-beam "^1.3.0" + +winston@^3.11.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.16.0.tgz#d11caabada87b7d4b59aba9a94b882121b773f9b" + integrity sha512-xz7+cyGN5M+4CmmD4Npq1/4T+UZaz7HaeTlAruFUTjk79CNMq+P6H30vlE4z0qfqJ01VHYQwd7OZo03nYm/+lg== + dependencies: + "@colors/colors" "^1.6.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.6.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.7.0" + word-wrap@~1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" @@ -6297,7 +7457,7 @@ workerpool@^6.5.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -6315,6 +7475,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -6339,11 +7508,16 @@ ws@8.17.1: resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== -ws@^7.4.6: +ws@^7.4.6, ws@^7.5.10: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.5.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -6403,3 +7577,11 @@ zksync-ethers@^5.0.0: integrity sha512-Y2Mx6ovvxO6UdC2dePLguVzvNToOY8iLWeq5ne+jgGSJxAi/f4He/NF6FNsf6x1aWX0o8dy4Df8RcOQXAkj5qw== dependencies: ethers "~5.7.0" + +zx@^8.1.3: + version "8.2.0" + resolved "https://registry.yarnpkg.com/zx/-/zx-8.2.0.tgz#46e8594bf2fe8c6bc15d6e571108e525da3c22b1" + integrity sha512-ec7Z1Ki9h4CsKqbMjZ8H7G1PbbZYErscxT314LF66Ljx1YRENisqa5m9IN2VjbYgOKxdv5t0MbVd3Hf+II3e7w== + optionalDependencies: + "@types/fs-extra" ">=11" + "@types/node" ">=20"