diff --git a/packages/contracts/.gitignore b/packages/contracts/.gitignore index c8899d2c..9527c1f8 100644 --- a/packages/contracts/.gitignore +++ b/packages/contracts/.gitignore @@ -6,6 +6,6 @@ artifacts/ abi/ types/ broadcast/ - +.env # Ignore MUD deploy artifacts deploys/**/*.json diff --git a/packages/contracts/mud.config.ts b/packages/contracts/mud.config.ts index 705c919f..67183343 100644 --- a/packages/contracts/mud.config.ts +++ b/packages/contracts/mud.config.ts @@ -19,16 +19,17 @@ export default mudConfig({ name: "player", openAccess: true, }, - RandomSystem: { - name: "random", - openAccess: true, - }, + // RandomSystem: { + // name: "random", + // openAccess: true, + // }, }, enums: { BattleState: ["Inited", "Confirmed", "Revealed"], PlayerState: ["Idle", "Preparing", "Exploring", "Attacking"], ActionType: ["Attack", "Escape", "Props"], Buff: ["None", "Fire", "Water", "Wind"], + RandomState:["Inited","Pending","Confirmed"] }, tables: { Season: { diff --git a/packages/contracts/remappings.txt b/packages/contracts/remappings.txt index 97058b20..6323c367 100644 --- a/packages/contracts/remappings.txt +++ b/packages/contracts/remappings.txt @@ -1,3 +1,7 @@ -ds-test/=./node_modules/ds-test/src/ -forge-std/=./node_modules/forge-std/src/ -@latticexyz/=./node_modules/@latticexyz/ +ds-test/=node_modules/ds-test/src/ +forge-std/=node_modules/forge-std/src/ +@latticexyz/=node_modules/@latticexyz/ +@src/=src/ +@systems/=src/systems/ +@codegen/=src/codegen/ +@library/=src/systems/library/ \ No newline at end of file diff --git a/packages/contracts/script/GameConfigInit.sol b/packages/contracts/script/GameConfigInit.sol index 71be9e03..b87a9bde 100644 --- a/packages/contracts/script/GameConfigInit.sol +++ b/packages/contracts/script/GameConfigInit.sol @@ -15,10 +15,23 @@ library GameConfigInit { merkleRoot, //merkleRoot 0, //battleId, 0, //randomId, - 100, //originX, - 100, //originY, + 4, //originX, + 4, //originY, 0, //roomId, 0 //boxId, ); } + + function setInitPosition(IWorld _world) internal { + GameConfig.setOriginX(_world, GAME_CONFIG_KEY, 4); + GameConfig.setOriginY(_world, GAME_CONFIG_KEY, 4); + } + + function getPosition(IWorld _world) internal view returns (uint256, uint256) { + uint256 x = GameConfig.getOriginX(_world, GAME_CONFIG_KEY); + uint256 y = GameConfig.getOriginY(_world, GAME_CONFIG_KEY); + return (x,y); + } + + } \ No newline at end of file diff --git a/packages/contracts/script/PostDeploy.s.sol b/packages/contracts/script/PostDeploy.s.sol index 7466b0d9..b2b4262a 100644 --- a/packages/contracts/script/PostDeploy.s.sol +++ b/packages/contracts/script/PostDeploy.s.sol @@ -6,6 +6,7 @@ import { console } from "forge-std/console.sol"; import { IWorld } from "../src/codegen/world/IWorld.sol"; import { GameConfigInit } from "./GameConfigInit.sol"; import { BattleConfigInit } from "./BattleConfigInit.sol"; +import { console } from "forge-std/console.sol"; contract PostDeploy is Script { function run(address worldAddress) external { @@ -15,6 +16,8 @@ contract PostDeploy is Script { // Start broadcasting transactions from the deployer account vm.startBroadcast(deployerPrivateKey); + console.log(" ========== PostDeploy ========== "); + // ------------------ INIT ------------------ GameConfigInit.initGameConfig(IWorld(worldAddress)); BattleConfigInit.initGameConfig(IWorld(worldAddress)); diff --git a/packages/contracts/script/TempRun.s.sol b/packages/contracts/script/TempRun.s.sol new file mode 100644 index 00000000..b24f2325 --- /dev/null +++ b/packages/contracts/script/TempRun.s.sol @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { Script } from "forge-std/Script.sol"; +import { console } from "forge-std/console.sol"; +import { IWorld } from "../src/codegen/world/IWorld.sol"; +import { GameConfigInit } from "./GameConfigInit.sol"; + +contract TempRun is Script { + function run(address worldAddress) external { + // Load the private key from the `PRIVATE_KEY` environment variable (in .env) + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + + // Start broadcasting transactions from the deployer account + vm.startBroadcast(deployerPrivateKey); + + // address w = address(0x2Bc1034975c3df48D6f3026802f372677844b85d); + + // ------------------ INIT ------------------ + // GameConfigInit.setInitPosition(IWorld(0x2Bc1034975c3df48D6f3026802f372677844b85d)); + (uint256 x, uint256 y) = GameConfigInit.getPosition(IWorld(worldAddress)); + console.log("======= result ======="); + console.log(x); + console.log(y); + + vm.stopBroadcast(); + + } +} diff --git a/packages/contracts/src/systems/BattleSystem.sol b/packages/contracts/src/systems/BattleSystem.sol index 711f7e45..03252757 100644 --- a/packages/contracts/src/systems/BattleSystem.sol +++ b/packages/contracts/src/systems/BattleSystem.sol @@ -1,352 +1,295 @@ - // SPDX-License-Identifier: MIT pragma solidity >=0.8.0; import { System } from "@latticexyz/world/src/System.sol"; import { BattleState, Buff, PlayerState } from "../codegen/Types.sol"; -import { GameConfig, BattleConfig, BoxListData, BattleList, BattleListData, Player, PlayerData, PlayerLocationLock, BoxList} from "../codegen/Tables.sol"; +import { GameConfig, BattleConfig, BoxListData, BattleList, BattleListData, Player, PlayerData, PlayerLocationLock, BoxList } from "../codegen/Tables.sol"; import { BattleUtils } from "./library/BattleUtils.sol"; import { GAME_CONFIG_KEY, BATTLE_CONFIG_KEY } from "../Constants.sol"; contract BattleSystem is System { - // modifier onlyBattlePlayer(uint256 _battleId, BattleState _battleState) { - // BattleListData memory battle = BattleList.get(_battleId); - - // BattleState battleState = battle.attacker == _msgSender() - // ? battle.attackerState - // : battle.defenderState; + function checkBattlePlayer(BattleListData memory battle, BattleState _battleState) internal view { + // BattleListData memory battle = BattleList.get(_battleId); - // require( - // battle.attacker == _msgSender() || battle.defender == _msgSender(), - // "You are not in this battle" - // ); - // require(battleState == _battleState, "You are in the wrong state"); + BattleState battleState = battle.attacker == _msgSender() ? battle.attackerState : battle.defenderState; - // require(!battle.isEnd, "Battle is end"); + require(battle.attacker == _msgSender() || battle.defender == _msgSender(), "You are not in this battle"); + require(battleState == _battleState, "You are in the wrong state"); - // _; - // } + require(!battle.isEnd, "Battle is end"); + } - function checkBattlePlayer(BattleListData memory battle, BattleState _battleState) internal view { - // BattleListData memory battle = BattleList.get(_battleId); + function confirmBattle(bytes32 _buffHash, uint256 _battleId) external { + // 战斗是否有用户 + //战斗是否结束 + //是否已超时 - BattleState battleState = battle.attacker == _msgSender() - ? battle.attackerState - : battle.defenderState; + BattleListData memory battle = BattleList.get(_battleId); + checkBattlePlayer(battle, BattleState.Inited); - require( - battle.attacker == _msgSender() || battle.defender == _msgSender(), - "You are not in this battle" - ); - require(battleState == _battleState, "You are in the wrong state"); + require(block.timestamp - battle.timestamp < BattleConfig.getMaxTimeLimit(BATTLE_CONFIG_KEY), "Battle is timeout"); + // 战斗是否已经选择buff + BattleState _battleState = battle.attacker == _msgSender() ? battle.attackerState : battle.defenderState; - require(!battle.isEnd, "Battle is end"); + require(_battleState == BattleState.Inited, "You have already selected buff"); + // 当前实现方法非常不优雅,使用两个额外存储槽来存储用户的选择 + if (battle.attacker == _msgSender()) { + BattleList.setAttackerBuffHash(_battleId, _buffHash); + BattleList.setAttackerState(_battleId, BattleState.Confirmed); + } else { + BattleList.setDefenderBuffHash(_battleId, _buffHash); + BattleList.setDefenderState(_battleId, BattleState.Confirmed); } - function confirmBattle( - bytes32 _buffHash, - uint256 _battleId - ) external{ - // 战斗是否有用户 - //战斗是否结束 - //是否已超时 - - BattleListData memory battle = BattleList.get(_battleId); - checkBattlePlayer(battle, BattleState.Inited); - - require( - block.timestamp - battle.timestamp < BattleConfig.getMaxTimeLimit(BATTLE_CONFIG_KEY), - "Battle is timeout" - ); - // 战斗是否已经选择buff - BattleState _battleState = battle.attacker == _msgSender() - ? battle.attackerState - : battle.defenderState; - - require( - _battleState == BattleState.Inited, - "You have already selected buff" - ); - // 当前实现方法非常不优雅,使用两个额外存储槽来存储用户的选择 - if (battle.attacker == _msgSender()) { - BattleList.setAttackerBuffHash(_battleId, _buffHash); - BattleList.setAttackerState(_battleId, BattleState.Confirmed); - } else { - BattleList.setDefenderBuffHash(_battleId, _buffHash); - BattleList.setDefenderState(_battleId, BattleState.Confirmed); - } - - // TODO需要一个event通知前端验证buff + // TODO需要一个event通知前端验证buff + } + + function revealBattle(uint256 _battleId, bytes32 _action, uint256 _arg, bytes32 _nonce) external { + // check battle + BattleListData memory battle = BattleList.get(_battleId); + checkBattlePlayer(battle, BattleState.Confirmed); + + // TODO揭示阶段也应该添加时间限制 + // address attacker = BattleList.getAttacker(_battleId); + + bytes32 moveHash = battle.attacker == _msgSender() + ? BattleList.getAttackerBuffHash(_battleId) + : BattleList.getDefenderBuffHash(_battleId); + + bytes32 proofHash = keccak256(abi.encodePacked(_action, _arg, _nonce)); + require(moveHash == proofHash, "Invalid move hash proof"); + if (battle.attacker == _msgSender()) { + BattleList.setAttackerAction(_battleId, _action); + BattleList.setAttackerArg(_battleId, _arg); + BattleList.setAttackerState(_battleId, BattleState.Revealed); + } else { + BattleList.setDefenderAction(_battleId, _action); + BattleList.setDefenderArg(_battleId, _arg); + BattleList.setDefenderState(_battleId, BattleState.Revealed); } - - function revealBattle( - uint256 _battleId, - bytes32 _action, - uint256 _arg, - bytes32 _nonce - ) external { - // check battle - BattleListData memory battle = BattleList.get(_battleId); - checkBattlePlayer(battle, BattleState.Confirmed); - - - // TODO揭示阶段也应该添加时间限制 - // address attacker = BattleList.getAttacker(_battleId); - - bytes32 moveHash = battle.attacker == _msgSender() - ? BattleList.getAttackerBuffHash(_battleId) - : BattleList.getDefenderBuffHash(_battleId); - - bytes32 proofHash = keccak256(abi.encodePacked(_action, _arg, _nonce)); - require(moveHash == proofHash, "Invalid move hash proof"); - if (battle.attacker == _msgSender()) { - BattleList.setAttackerAction(_battleId, _action); - BattleList.setAttackerArg(_battleId, _arg); - BattleList.setAttackerState(_battleId, BattleState.Revealed); - } else { - BattleList.setDefenderAction(_battleId, _action); - BattleList.setDefenderArg(_battleId, _arg); - BattleList.setDefenderState(_battleId, BattleState.Revealed); - } - if ( - battle.attackerState == BattleState.Revealed && - battle.defenderState == BattleState.Revealed - ) { - // 结算战斗 - revealWinner(_battleId); - } + if (battle.attackerState == BattleState.Revealed && battle.defenderState == BattleState.Revealed) { + // 结算战斗 + revealWinner(_battleId); + } + } + + function revealWinner(uint256 _battleId) public { + // 结算战斗 + BattleListData memory battle = BattleList.get(_battleId); + checkBattlePlayer(battle, BattleState.Revealed); + + uint256 attackerFirepower = 100; + uint256 defenderFirepower = 100; + + // address attacker = BattleList.getAttacker(_battleId); + // address defender = BattleList.getDefender(_battleId); + //用户的指令为attack,esacpe,useProps几种方案,attackArg和defenderArg分别是伴随指令传递的参数,对应执行attack,esacpe,useProps几个函数并传入参数 + // 默认用户的攻击力都为100,防御力都为100,攻击力和防御力在未来都是根据装备来判断 + //如果双方都执行attack,则对比buff,buff相同攻击力没有增益,否则按照water>fire>wind>water的顺序给优胜者增加50%攻击力 + //如果对方执行escape,则判断buff是否大于对方的buff,如果大于则对方逃跑成功 + if (battle.attackerAction == bytes32("attack") && battle.defenderAction == bytes32("attack")) { + // Buff attackerBuff = Buff(battle.attackerArg); + // Buff defenderBuff = Buff(battle.defenderArg); + Buff attackerBuff = Buff(battle.attackerArg); + Buff defenderBuff = Buff(battle.defenderArg); + // 任意攻击buff都强于None + uint256 attackerAttackPower = BattleUtils.getAttackPower(attackerBuff, defenderBuff, attackerFirepower); + uint256 defenderAttackPower = BattleUtils.getAttackPower(defenderBuff, attackerBuff, defenderFirepower); + + BattleList.setAttackerHP(_battleId, BattleUtils.getAttackResult(battle.attackerHP, defenderAttackPower)); + BattleList.setDefenderHP(_battleId, BattleUtils.getAttackResult(battle.defenderHP, attackerAttackPower)); + + if (battle.attackerHP == 0 || battle.defenderHP == 0) { + address winner = battle.attackerHP == 0 ? battle.defender : battle.attacker; + address looser = battle.attackerHP == 0 ? battle.attacker : battle.defender; + // BattleList.setWinner(_battleId, winner); // cause stack too deep compile error + // BattleList.setIsEnd(_battleId, true); + battle.winner = winner; //Todo: temmorary solution + battle.isEnd = true; + loseGame(looser, winner); + Player.setHP(winner, initUserHP(winner)); + + // TODO这里应该跟一个清算函数 + // 胜利者解除战斗形态,血量恢复20% + // 失败者传送到非战区,血量回满 + } } - function revealWinner( - uint256 _battleId - ) public { - - // 结算战斗 - BattleListData memory battle = BattleList.get(_battleId); - checkBattlePlayer(battle, BattleState.Revealed); - - uint256 attackerFirepower = 100; - uint256 defenderFirepower = 100; - - // address attacker = BattleList.getAttacker(_battleId); - // address defender = BattleList.getDefender(_battleId); - //用户的指令为attack,esacpe,useProps几种方案,attackArg和defenderArg分别是伴随指令传递的参数,对应执行attack,esacpe,useProps几个函数并传入参数 - // 默认用户的攻击力都为100,防御力都为100,攻击力和防御力在未来都是根据装备来判断 - //如果双方都执行attack,则对比buff,buff相同攻击力没有增益,否则按照water>fire>wind>water的顺序给优胜者增加50%攻击力 - //如果对方执行escape,则判断buff是否大于对方的buff,如果大于则对方逃跑成功 - if ( - battle.attackerAction == bytes32("attack") && - battle.defenderAction == bytes32("attack") - ) { - // Buff attackerBuff = Buff(battle.attackerArg); - // Buff defenderBuff = Buff(battle.defenderArg); - Buff attackerBuff = Buff(battle.attackerArg); - Buff defenderBuff = Buff(battle.defenderArg); - // 任意攻击buff都强于None - uint256 attackerAttackPower = BattleUtils.getAttackPower( - attackerBuff, - defenderBuff, - attackerFirepower - ); - uint256 defenderAttackPower = BattleUtils.getAttackPower( - defenderBuff, - attackerBuff, - defenderFirepower - ); - - BattleList.setAttackerHP(_battleId, BattleUtils.getAttackResult( - battle.attackerHP, - defenderAttackPower - )); - BattleList.setDefenderHP(_battleId, BattleUtils.getAttackResult( - battle.defenderHP, - attackerAttackPower - )); - - if (battle.attackerHP == 0 || battle.defenderHP == 0) { - address winner = battle.attackerHP == 0? battle.defender : battle.attacker; - address looser = battle.attackerHP == 0 - ? battle.attacker - : battle.defender; - // BattleList.setWinner(_battleId, winner); // cause stack too deep compile error - // BattleList.setIsEnd(_battleId, true); - battle.winner = winner; //Todo: temmorary solution - battle.isEnd = true; - loseGame(looser, winner); - Player.setHP(winner, initUserHP(winner)); - - // TODO这里应该跟一个清算函数 - // 胜利者解除战斗形态,血量恢复20% - // 失败者传送到非战区,血量回满 - } - } - - if ( - battle.attackerAction == bytes32("escape") && - battle.defenderAction == bytes32("escape") - ) { - // 双方都逃走,则战斗结束(这里应该都传送到更远地方) - // battle.isEnd = true; - // battle.winer = address(0); + if (battle.attackerAction == bytes32("escape") && battle.defenderAction == bytes32("escape")) { + // 双方都逃走,则战斗结束(这里应该都传送到更远地方) + // battle.isEnd = true; + // battle.winer = address(0); - BattleList.setIsEnd(_battleId, true); - BattleList.setWinner(_battleId, address(0)); + BattleList.setIsEnd(_battleId, true); + BattleList.setWinner(_battleId, address(0)); - return; - } - if ( - battle.attackerAction == bytes32("escape") && - battle.defenderAction == bytes32("attack") - ) { - Buff attackerBuff = Buff(battle.defenderArg); - Buff defenderBuff = Buff(battle.defenderArg); - // 任意攻击buff都强于None - if ( - attackerBuff == defenderBuff || - BattleUtils.compareBuff(attackerBuff, defenderBuff) == 2 - ) { - // 逃跑成功 - Player.setState(battle.attacker, PlayerState.Exploring); - Player.setState(battle.defender, PlayerState.Exploring); - // PlayerLocationLock[battle.defender] = block.timestamp; //将被逃跑方禁锢一段时间 - PlayerLocationLock.set(battle.defender, block.timestamp); - } else { - // 逃跑失败,被动挨打 - uint256 defenderAttackPower = BattleUtils.getAttackPower( - defenderBuff, - attackerBuff, - defenderFirepower - ); - // battle.attackerHP = BattleUtils.getAttackResult( - // battle.attackerHP, - // defenderAttackPower - // ); - // if (battle.attackerHP == 0) { - // battle.winer = battle.defender; - // battle.isEnd = true; - // } - BattleList.setAttackerHP(_battleId, BattleUtils.getAttackResult( - battle.attackerHP, - defenderAttackPower - )); - if (BattleList.getAttackerHP(_battleId) == 0) { - - // battle.winer = battle.defender; - // battle.isEnd = true; - BattleList.setWinner(_battleId, battle.defender); - BattleList.setIsEnd(_battleId, true); - } - } + return; + } + if (battle.attackerAction == bytes32("escape") && battle.defenderAction == bytes32("attack")) { + Buff attackerBuff = Buff(battle.defenderArg); + Buff defenderBuff = Buff(battle.defenderArg); + // 任意攻击buff都强于None + if (attackerBuff == defenderBuff || BattleUtils.compareBuff(attackerBuff, defenderBuff) == 2) { + // 逃跑成功 + Player.setState(battle.attacker, PlayerState.Exploring); + Player.setState(battle.defender, PlayerState.Exploring); + // PlayerLocationLock[battle.defender] = block.timestamp; //将被逃跑方禁锢一段时间 + PlayerLocationLock.set(battle.defender, block.timestamp); + } else { + // 逃跑失败,被动挨打 + uint256 defenderAttackPower = BattleUtils.getAttackPower(defenderBuff, attackerBuff, defenderFirepower); + // battle.attackerHP = BattleUtils.getAttackResult( + // battle.attackerHP, + // defenderAttackPower + // ); + // if (battle.attackerHP == 0) { + // battle.winer = battle.defender; + // battle.isEnd = true; + // } + BattleList.setAttackerHP(_battleId, BattleUtils.getAttackResult(battle.attackerHP, defenderAttackPower)); + if (BattleList.getAttackerHP(_battleId) == 0) { + // battle.winer = battle.defender; + // battle.isEnd = true; + BattleList.setWinner(_battleId, battle.defender); + BattleList.setIsEnd(_battleId, true); } - if ( - battle.attackerAction == bytes32("attack") && - battle.defenderAction == bytes32("escape") - ) { - Buff attackerBuff = Buff(battle.attackerArg); - Buff defenderBuff = Buff(battle.defenderArg); - // 任意攻击buff都强于None - if ( - attackerBuff == defenderBuff || - BattleUtils.compareBuff(defenderBuff, attackerBuff) == 2 - ) { - // 逃跑成功 - // Player[battle.defender].state = PlayerState.Exploring; - // Player[battle.attacker].state = PlayerState.Exploring; - // PlayerLocationLock[battle.attacker] = block.timestamp; //将被逃跑方禁锢一段时间 - Player.setState(battle.defender, PlayerState.Exploring); - Player.setState(battle.attacker, PlayerState.Exploring); - PlayerLocationLock.set(battle.attacker, block.timestamp); - } else { - // 逃跑失败,被动挨打 - uint256 attackerAttackPower = BattleUtils.getAttackPower( - attackerBuff, - defenderBuff, - attackerFirepower - ); - - // BattleList.setDefenderHP(_battleId, BattleUtils.getAttackResult( - // battle.defenderHP, - // attackerAttackPower - // )); - battle.defenderHP = BattleUtils.getAttackResult( - battle.defenderHP, - attackerAttackPower - ); - - if (battle.defenderHP == 0) { - battle.winner = battle.attacker; - battle.isEnd = true; - - // BattleList.setWinner(_battleId, battle.attacker); - // BattleList.setIsEnd(_battleId, true); - - } - } + } + } + if (battle.attackerAction == bytes32("attack") && battle.defenderAction == bytes32("escape")) { + Buff attackerBuff = Buff(battle.attackerArg); + Buff defenderBuff = Buff(battle.defenderArg); + // 任意攻击buff都强于None + if (attackerBuff == defenderBuff || BattleUtils.compareBuff(defenderBuff, attackerBuff) == 2) { + // 逃跑成功 + // Player[battle.defender].state = PlayerState.Exploring; + // Player[battle.attacker].state = PlayerState.Exploring; + // PlayerLocationLock[battle.attacker] = block.timestamp; //将被逃跑方禁锢一段时间 + Player.setState(battle.defender, PlayerState.Exploring); + Player.setState(battle.attacker, PlayerState.Exploring); + PlayerLocationLock.set(battle.attacker, block.timestamp); + } else { + // 逃跑失败,被动挨打 + uint256 attackerAttackPower = BattleUtils.getAttackPower(attackerBuff, defenderBuff, attackerFirepower); + + // BattleList.setDefenderHP(_battleId, BattleUtils.getAttackResult( + // battle.defenderHP, + // attackerAttackPower + // )); + battle.defenderHP = BattleUtils.getAttackResult(battle.defenderHP, attackerAttackPower); + + if (battle.defenderHP == 0) { + battle.winner = battle.attacker; + battle.isEnd = true; + + // BattleList.setWinner(_battleId, battle.attacker); + // BattleList.setIsEnd(_battleId, true); } + } } + } - function initUserHP(address _user) public pure returns (uint256) { - return 400; + function getAttackResult(uint256 _hp, uint256 _attackPower) internal pure returns (uint256) { + // TODO 后期添加防御力抵消对方的攻击力 + if (_attackPower > _hp) { + return 0; } - - function loseGame(address _looser, address _winner) internal { - // 游戏失败,将用户脱离战区,血量回满 - // TODO 背包系统,宝物系统 - - outBattlefield(_looser); - PlayerData memory losser = Player.get(_looser); - uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); - BoxListData memory box; - box.x = losser.x; - box.y = losser.y; - box.opened = true; - box.openTime = block.timestamp; - box.owner = _winner; - box.oreBalance = losser.oreBalance; - box.treasureBalance = losser.treasureBalance; - box.dropTime = block.timestamp; - BoxList.set(GameConfig.getRoomId(GAME_CONFIG_KEY), boxId, box); - - Player.setOreBalance(_looser, 0); - Player.setTreasureBalance(_looser, 0); - GameConfig.setRoomId(GAME_CONFIG_KEY, boxId+1); + return _hp - _attackPower; + } + + function initUserHP(address _user) public pure returns (uint256) { + return 400; + } + + function raiseUserHP(uint256 _targetHP, uint256 _percent, address _user) public { + Player.setHP(_user, (_targetHP * _percent) / 100); + } + + function loseGame(address _looser, address _winner) internal { + // 游戏失败,将用户脱离战区,血量回满 + // TODO 背包系统,宝物系统 + + outBattlefield(_looser); + PlayerData memory losser = Player.get(_looser); + uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); + BoxListData memory box; + box.x = losser.x; + box.y = losser.y; + box.opened = true; + box.openTime = block.timestamp; + box.owner = _winner; + box.oreBalance = losser.oreBalance; + box.treasureBalance = losser.treasureBalance; + box.dropTime = block.timestamp; + BoxList.set(GameConfig.getRoomId(GAME_CONFIG_KEY), boxId, box); + + Player.setOreBalance(_looser, 0); + Player.setTreasureBalance(_looser, 0); + GameConfig.setRoomId(GAME_CONFIG_KEY, boxId + 1); + } + + function goHome() external { + // 回家,将用户脱离战区,血量回满 + + PlayerData memory player = Player.get(_msgSender()); + require(player.state == PlayerState.Exploring, "You should in exploring state"); + require( + player.x == GameConfig.getOriginX(GAME_CONFIG_KEY) && player.y == GameConfig.getOriginY(GAME_CONFIG_KEY), + "You are not in the origin point" + ); + outBattlefield(_msgSender()); + } + + function getAttackPower(Buff _myBuff, Buff _targetBuff, uint256 _attackPower) internal pure returns (uint256) { + // TODO 后期添加防御力抵消对方的攻击力 + if (compareBuff(_myBuff, _targetBuff) == 0) { + return (_attackPower * 7) / 10; } - - - function outBattlefield(address _user) internal { - // 脱离战区,则将用户血量回满,坐标不变,状态改为准备中 - require( - Player.getState(_user) == PlayerState.Exploring, - "You should in exploring state" - ); - - Player.setHP(_user, initUserHP(_user)); - - for (uint256 i; i < BattleConfig.lengthBattlefieldPlayers(BATTLE_CONFIG_KEY); i++) { - if (BattleConfig.getItemBattlefieldPlayers(BATTLE_CONFIG_KEY, i) == _user) { - BattleConfig.updateBattlefieldPlayers(BATTLE_CONFIG_KEY, i, BattleConfig.getItemBattlefieldPlayers(BATTLE_CONFIG_KEY, BattleConfig.lengthBattlefieldPlayers(BATTLE_CONFIG_KEY) - 1)); - BattleConfig.popBattlefieldPlayers(BATTLE_CONFIG_KEY); - break; - } - } - Player.setState(_user, PlayerState.Preparing); + if (compareBuff(_myBuff, _targetBuff) == 2) { + return (_attackPower * 13) / 10; } - - function goHome() external { - // 回家,将用户脱离战区,血量回满 - - PlayerData memory player = Player.get(_msgSender()); - require( - player.state == PlayerState.Exploring, - "You should in exploring state" - ); - require( - player.x == GameConfig.getOriginX(GAME_CONFIG_KEY) && player.y == GameConfig.getOriginY(GAME_CONFIG_KEY), - "You are not in the origin point" + return _attackPower; + } + + function compareBuff(Buff _myBuff, Buff _targetBuff) internal pure returns (uint256) { + // 0表示失败,1表示相当,2表示胜利 + if ( + (_myBuff == Buff.Water && _targetBuff == Buff.Fire) || + (_myBuff == Buff.Wind && _targetBuff == Buff.Water) || + (_myBuff == Buff.Fire && _targetBuff == Buff.Wind) + ) { + return 2; + } + if ( + (_myBuff == Buff.Fire && _targetBuff == Buff.Water) || + (_myBuff == Buff.Water && _targetBuff == Buff.Wind) || + (_myBuff == Buff.Wind && _targetBuff == Buff.Fire) + ) { + return 0; + } + return 1; + } + + function outBattlefield(address _user) internal { + // 脱离战区,则将用户血量回满,坐标不变,状态改为准备中 + require(Player.getState(_user) == PlayerState.Exploring, "You should in exploring state"); + + Player.setHP(_user, initUserHP(_user)); + + for (uint256 i; i < BattleConfig.lengthBattlefieldPlayers(BATTLE_CONFIG_KEY); i++) { + if (BattleConfig.getItemBattlefieldPlayers(BATTLE_CONFIG_KEY, i) == _user) { + BattleConfig.updateBattlefieldPlayers( + BATTLE_CONFIG_KEY, + i, + BattleConfig.getItemBattlefieldPlayers( + BATTLE_CONFIG_KEY, + BattleConfig.lengthBattlefieldPlayers(BATTLE_CONFIG_KEY) - 1 + ) ); - outBattlefield(_msgSender()); - + BattleConfig.popBattlefieldPlayers(BATTLE_CONFIG_KEY); + break; + } } - -} \ No newline at end of file + Player.setState(_user, PlayerState.Preparing); + } +} diff --git a/packages/contracts/src/systems/BoxSystem.sol b/packages/contracts/src/systems/BoxSystem.sol new file mode 100644 index 00000000..6f7fd1c5 --- /dev/null +++ b/packages/contracts/src/systems/BoxSystem.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { System } from "@latticexyz/world/src/System.sol"; +import { BattleState, Buff, PlayerState } from "@codegen/Types.sol"; +import { GameConfig, BattleConfig, RandomList, RandomListData, BoxList, BoxListData, Player, PlayerData, PlayerLocationLock } from "../codegen/Tables.sol"; +import { GAME_CONFIG_KEY, BATTLE_CONFIG_KEY } from "../Constants.sol"; +import { CommonUtils } from "@library/CommonUtils.sol"; +import { MRandom } from "@library/MRandom.sol"; + +contract BoxSystem is System { + function creatBox(uint16 _x, uint16 _y) internal { + uint256 roomId = GameConfig.getRoomId(GAME_CONFIG_KEY); + uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); + BoxList.setX(roomId, boxId, _x); + BoxList.setY(roomId, boxId, _y); + + uint256 randomId = GameConfig.getRandomId(GAME_CONFIG_KEY); + BoxList.setRandomId(roomId, boxId, randomId); + GameConfig.setRandomId(GAME_CONFIG_KEY, randomId + 1); + GameConfig.setBoxId(GAME_CONFIG_KEY, boxId + 1); + } + + function openBox(uint256 _boxId) external { + // 宝箱打开时init内容物,根据自带randomId来实现随机 + uint256 roomId = GameConfig.getRoomId(GAME_CONFIG_KEY); + uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); + require(BoxList.getDropTime(roomId, _boxId) != 0, "Invalid box"); + BoxListData memory _box = BoxList.get(roomId, boxId); + PlayerData memory _user = Player.get(_box.owner); + require(CommonUtils.isNear(_box.x, _user.x, _box.y, _user.y), "You are not near the box"); + require(_box.opened == false, "Box is opened"); + uint8[] memory randomNumberList = MRandom.getRandom(_box.randomId, 2); + uint8 oreBalance = CommonUtils.dice(randomNumberList[0], 20, 10, 1); + uint8 treasureBalance = CommonUtils.dice(randomNumberList[1], 80, 10, 1); + BoxList.setOreBalance(roomId, boxId, oreBalance); + BoxList.setTreasureBalance(roomId, boxId, treasureBalance); + BoxList.setOpened(roomId, boxId, true); + BoxList.setOpenTime(roomId, boxId, block.timestamp); + } + + function getCollections(uint256 _boxId, uint16 _oreAmount, uint16 _treasureAmount) internal { + uint256 roomId = GameConfig.getRoomId(GAME_CONFIG_KEY); + uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); + require(BoxList.getDropTime(roomId, _boxId) != 0, "Invalid box"); + BoxListData memory _box = BoxList.get(roomId, boxId); + PlayerData memory _user = Player.get(_box.owner); + require(CommonUtils.isNear(_box.x, _user.x, _box.y, _user.y), "You are not near the box"); + require(_box.opened == true, "Box is not opened"); + if (block.timestamp < _box.openTime + BattleConfig.getMaxBoxBindTime(BATTLE_CONFIG_KEY)) { + require(msg.sender == _box.owner, "The box is waiting for its opener, please wait"); + } + require(_oreAmount <= _box.oreBalance && _treasureAmount <= _box.treasureBalance, "Invalid amount"); + BoxList.setOreBalance(roomId, boxId, _box.oreBalance - _oreAmount); + BoxList.setTreasureBalance(roomId, boxId, _box.treasureBalance - _treasureAmount); + Player.setOreBalance(_box.owner, _user.oreBalance + _oreAmount); + Player.setTreasureBalance(_box.owner, _user.treasureBalance + _treasureAmount); + } +} diff --git a/packages/contracts/src/systems/GameSystem.sol b/packages/contracts/src/systems/GameSystem.sol index 4eb8cdcb..ad916c23 100644 --- a/packages/contracts/src/systems/GameSystem.sol +++ b/packages/contracts/src/systems/GameSystem.sol @@ -2,136 +2,41 @@ pragma solidity >=0.8.0; import { System } from "@latticexyz/world/src/System.sol"; -import {MerkleProof} from "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; +import { MerkleProof } from "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; +import { GameConfig } from "@codegen/Tables.sol"; import { BattleState, Buff, PlayerState } from "../codegen/Types.sol"; -import { GameConfig, BattleConfig, BattleListData, BattleList, Player, PlayerData, - PlayerLocationLock, BoxList, BoxListData} from "../codegen/Tables.sol"; +import { BattleListData, BattleList, Player, PlayerData, PlayerLocationLock, BoxListData, BoxList, RandomList, RandomListData } from "../codegen/Tables.sol"; import { Move } from "./Common.sol"; -import { GAME_CONFIG_KEY, BATTLE_CONFIG_KEY } from "../Constants.sol"; -import { CommonUtils } from "./library/CommonUtils.sol"; - contract GameSystem is System { - event MoveEvent(address indexed player, uint16 x, uint16 y); - event AttackStart(address player, address target); - - // constructor(bytes32 root) { - // GameConfig.setMerkleRoot(GAME_CONFIG_KEY, root); - // GameConfig.setMaxAttackzDistance(GAME_CONFIG_KEY, 10); - // GameConfig.setMaxMoveDistance(GAME_CONFIG_KEY, 15); - // GameConfig.setMaxTimeLimit(GAME_CONFIG_KEY, 120); - // GameConfig.setMaxUserLocationLockTime(GAME_CONFIG_KEY, 120); - // GameConfig.setOriginX(GAME_CONFIG_KEY, 100); - // GameConfig.setOriginY(GAME_CONFIG_KEY, 100); - // GameConfig.setMaxBoxBindTime(GAME_CONFIG_KEY, 120); - // } - - modifier CheckContinuity(Move[] memory moveList) { - // 验证行走轨迹合法且连续 - uint8 prefer = 1; - for (uint256 i; i < moveList.length; i++) { - - uint16 x2 = i > 0 ? moveList[i - 1].x : Player.getX(_msgSender()); - uint16 y2 = i > 0 ? moveList[i - 1].y : Player.getY(_msgSender()); - require( - CommonUtils.isNear(moveList[i].x, x2, moveList[i].y, y2), - "invalied move" - ); - // 判断用户每一个移动连续性以及合法性,不能超出1格, 不能斜着走,不能原地踏步 - Move memory info = moveList[i]; - //prefer的意思是可以通行 - bytes32 leaf = keccak256( - abi.encodePacked(info.x, ",", info.y, ",", prefer) - ); - bool isValidLeaf = MerkleProof.verify(info.proof, GameConfig.getMerkleRoot(GAME_CONFIG_KEY), leaf); - require(isValidLeaf, "bad position"); - } - _; - } - - function move(Move[] memory moveList) external CheckContinuity(moveList) { - // 限制移动速度,每次移动需要间隔一定时间 - require(PlayerLocationLock.get(_msgSender()) == 0, "You are locked"); - require( - moveList.length > 0 && moveList.length <= BattleConfig.getMaxMoveDistance(BATTLE_CONFIG_KEY), - "invalid move distance" - ); - - Player.setX(_msgSender(), moveList[moveList.length - 1].x); - Player.setY(_msgSender(), moveList[moveList.length - 1].y); - - emit MoveEvent( - _msgSender(), - moveList[moveList.length - 1].x, - moveList[moveList.length - 1].y - ); - } - - - function battleInvitation( - address _targetAddress, - Move[] memory moveList - ) external CheckContinuity(moveList) { - // 攻击,首先确定地图x,y上有具体用户,其次确定用户之间最短距离proof为10 - // 需要考虑一个格子上有多个用户的情况//一个格子只能有一个人 - // 判断对战双方的状态是否是Exploring - - require( - moveList.length > 0 && moveList.length <= BattleConfig.getMaxAttackzDistance(BATTLE_CONFIG_KEY), - "invalid attack distance" - ); - - require( - Player.getState(_msgSender()) == PlayerState.Exploring && - Player.getState(_targetAddress) == PlayerState.Exploring, - "Each player must be in exploring state" - ); - require( - Player.getX(_targetAddress) == moveList[moveList.length - 1].x && - Player.getY(_targetAddress) == moveList[moveList.length - 1].y, - "Target must be in the end of continuity" - ); - - Player.setState(_msgSender(), PlayerState.Attacking); - Player.setState(_targetAddress, PlayerState.Attacking); - - uint256 battleId = GameConfig.getBattleId(GAME_CONFIG_KEY); - BattleList.setAttacker(battleId, _msgSender()); - BattleList.setDefender(battleId, _targetAddress); - BattleList.setTimestamp(battleId, block.timestamp); - BattleList.setAttackerHP(battleId, Player.getHP(_msgSender())); - BattleList.setDefenderHP(battleId, Player.getHP(_targetAddress)); - - // battleId++; - GameConfig.setBattleId(GAME_CONFIG_KEY, battleId + 1); - - emit AttackStart(_msgSender(), _targetAddress); - } - - - - - // function settleBattle() external {} - - // function createLootBox() external {} - - // function takeLoot() external {} - - // function dropLoot() external {} - - - //------非战区空间部分 -} + bytes32 constant GAME_KEY = keccak256("Game-Key"); + event NewRandom(uint256 randomId, address author); + event MoveEvent(address indexed player, uint16 x, uint16 y); + event AttackStart(address player, address target); + + + + - + + function settleBattle() external {} + function createLootBox() external {} + function takeLoot() external {} - + function dropLoot() external {} + //------非战区空间部分 + + + + + +} diff --git a/packages/contracts/src/systems/MoveSystem.sol b/packages/contracts/src/systems/MoveSystem.sol new file mode 100644 index 00000000..1c98e646 --- /dev/null +++ b/packages/contracts/src/systems/MoveSystem.sol @@ -0,0 +1,135 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { System } from "@latticexyz/world/src/System.sol"; +import { MerkleProof } from "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; +import { console } from "forge-std/console.sol"; + +import { BattleState, Buff, PlayerState } from "../codegen/Types.sol"; +import { GameConfig, BattleConfig, RandomList, RandomListData,BattleList, BoxList, BoxListData, Player, PlayerData, PlayerLocationLock} from "@codegen/Tables.sol"; +import { GAME_CONFIG_KEY, BATTLE_CONFIG_KEY } from "../Constants.sol"; +import { CommonUtils } from "./library/CommonUtils.sol"; +import {Move} from "./Common.sol"; + +contract MoveSystem is System { + event MoveEvent(address indexed player, uint16 x, uint16 y); + event AttackStart(address player, address target); + + function unlockUserLocation() external { + // 用户自行解锁 + require(PlayerLocationLock.get(_msgSender()) != 0, "You are not locked"); + require( + PlayerLocationLock.get(_msgSender()) + BattleConfig.getMaxUserLocationLockTime(BATTLE_CONFIG_KEY) < + block.timestamp, + "You are not locked" + ); + PlayerLocationLock.set(_msgSender(), 0); + } + + + function transfer(uint16 x, uint16 y) external { + //传送门,将用户在战区和非战区移动 + // 将用户坐标随机转移到指定位置 + Player.setX(_msgSender(), x); + Player.setY(_msgSender(), y); + } + + modifier CheckContinuity(Move[] memory moveList) { + // 验证行走轨迹合法且连续 + uint8 prefer = 1; + for (uint256 i; i < moveList.length; i++) { + + uint16 x2 = i > 0 ? moveList[i - 1].x : Player.getX(_msgSender()); + uint16 y2 = i > 0 ? moveList[i - 1].y : Player.getY(_msgSender()); + console.log(" step : ", i); + require( + CommonUtils.isNear(moveList[i].x, x2, moveList[i].y, y2), + "invalied move" + ); + // 判断用户每一个移动连续性以及合法性,不能超出1格, 不能斜着走,不能原地踏步 + Move memory info = moveList[i]; + //prefer的意思是可以通行 + bytes32 leaf = keccak256( + abi.encodePacked(info.x, ",", info.y, ",", prefer) + ); + bool isValidLeaf = MerkleProof.verify(info.proof, GameConfig.getMerkleRoot(GAME_CONFIG_KEY), leaf); + require(isValidLeaf, "bad position"); + } + _; + } + + function move(Move[] memory moveList) external CheckContinuity(moveList) { + // 限制移动速度,每次移动需要间隔一定时间 + require(PlayerLocationLock.get(_msgSender()) == 0, "You are locked"); + require( + moveList.length > 0 && moveList.length <= BattleConfig.getMaxMoveDistance(BATTLE_CONFIG_KEY), + "invalid move distance" + ); + + Player.setX(_msgSender(), moveList[moveList.length - 1].x); + Player.setY(_msgSender(), moveList[moveList.length - 1].y); + + emit MoveEvent( + _msgSender(), + moveList[moveList.length - 1].x, + moveList[moveList.length - 1].y + ); + } + + + function battleInvitation( + address _targetAddress, + Move[] memory moveList + ) external CheckContinuity(moveList) { + // 攻击,首先确定地图x,y上有具体用户,其次确定用户之间最短距离proof为10 + // 需要考虑一个格子上有多个用户的情况//一个格子只能有一个人 + // 判断对战双方的状态是否是Exploring + + require( + moveList.length > 0 && moveList.length <= BattleConfig.getMaxAttackzDistance(BATTLE_CONFIG_KEY), + "invalid attack distance" + ); + + require( + Player.getState(_msgSender()) == PlayerState.Exploring && + Player.getState(_targetAddress) == PlayerState.Exploring, + "Each player must be in exploring state" + ); + require( + Player.getX(_targetAddress) == moveList[moveList.length - 1].x && + Player.getY(_targetAddress) == moveList[moveList.length - 1].y, + "Target must be in the end of continuity" + ); + + Player.setState(_msgSender(), PlayerState.Attacking); + Player.setState(_targetAddress, PlayerState.Attacking); + + uint256 battleId = GameConfig.getBattleId(GAME_CONFIG_KEY); + BattleList.setAttacker(battleId, _msgSender()); + BattleList.setDefender(battleId, _targetAddress); + BattleList.setTimestamp(battleId, block.timestamp); + BattleList.setAttackerHP(battleId, Player.getHP(_msgSender())); + BattleList.setDefenderHP(battleId, Player.getHP(_targetAddress)); + + // battleId++; + GameConfig.setBattleId(GAME_CONFIG_KEY, battleId + 1); + + emit AttackStart(_msgSender(), _targetAddress); + } + + + function joinBattlefield(address _user) public { + // 加入战区,用户实际上是送到原点,状态改为探索中 + PlayerState playerState = Player.getState(_user); + require(playerState == PlayerState.Preparing || playerState == PlayerState.Idle, "You should in preparing state"); + //实际上是送到原点//TODO通过常数设置原点参数 + // TODO似乎可以直接通过indexer获取,就不需要再次插入了 + + Player.setX(_user, GameConfig.getOriginX(GAME_CONFIG_KEY)); + Player.setY(_user, GameConfig.getOriginY(GAME_CONFIG_KEY)); + // GameConfig.pushBattlefieldPlayers(GAME_CONFIG_KEY, _user); + // Player.setState(_user, PlayerState.Exploring); + } + + +} \ No newline at end of file diff --git a/packages/contracts/src/systems/PlayerSystem.sol b/packages/contracts/src/systems/PlayerSystem.sol index 772f6b41..2ba0b82a 100644 --- a/packages/contracts/src/systems/PlayerSystem.sol +++ b/packages/contracts/src/systems/PlayerSystem.sol @@ -7,9 +7,7 @@ import { Player } from "../codegen/Tables.sol"; contract PlayerSystem is System { bytes32 constant PLAYER_KEY = keccak256("Player-Key"); - constructor(){ - - } + function getInfo(address addr) public view returns (string memory, string memory) { return (Player.getName(addr), Player.getUrl(addr)); @@ -20,4 +18,13 @@ contract PlayerSystem is System { Player.setName(addr, name); Player.setUrl(addr, url); } + + + function getPosition(address addr) public view returns (uint16, uint16) { + uint16 x = Player.getX(addr); + uint16 y = Player.getY(addr); + return(x, y); + } + + } \ No newline at end of file diff --git a/packages/contracts/src/systems/RandomSystem.sol b/packages/contracts/src/systems/RandomSystem.sol deleted file mode 100644 index 21b7208f..00000000 --- a/packages/contracts/src/systems/RandomSystem.sol +++ /dev/null @@ -1,145 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >=0.8.0; - -import { System } from "@latticexyz/world/src/System.sol"; -import { BattleState, Buff, PlayerState } from "../codegen/Types.sol"; -import { GameConfig, BattleConfig, RandomList, RandomListData, BoxList, BoxListData, Player, PlayerData, PlayerLocationLock} from "../codegen/Tables.sol"; -import { GAME_CONFIG_KEY, BATTLE_CONFIG_KEY } from "../Constants.sol"; -import { CommonUtils } from "./library/CommonUtils.sol"; - - -contract RandomSystem is System { - event NewRandom(uint256 randomId, address author); - - function raiseUserHP( - uint256 _targetHP, - uint256 _percent, - address _user - ) public { - Player.setHP(_user, (_targetHP * _percent) / 100); - } - - function unlockUserLocation() external { - // 用户自行解锁 - require(PlayerLocationLock.get(_msgSender()) != 0, "You are not locked"); - require( - PlayerLocationLock.get(_msgSender()) + BattleConfig.getMaxUserLocationLockTime(BATTLE_CONFIG_KEY) < - block.timestamp, - "You are not locked" - ); - PlayerLocationLock.set(_msgSender(), 0); - } - - function transfer(uint16 x, uint16 y) external { - //传送门,将用户在战区和非战区移动 - // 将用户坐标随机转移到指定位置 - Player.setX(_msgSender(), x); - Player.setY(_msgSender(), y); - } - - function joinBattlefield(address _user) public { - // 加入战区,用户实际上是送到原点,状态改为探索中 - // User storage player = Player[_user]; - PlayerState playerState = Player.getState(_user); - require( - playerState == PlayerState.Preparing || playerState == PlayerState.Idle, - "You should in preparing state" - ); - //实际上是送到原点//TODO通过常数设置原点参数 - Player.setX(_user, GameConfig.getOriginX(GAME_CONFIG_KEY)); - Player.setY(_user, GameConfig.getOriginY(GAME_CONFIG_KEY)); - BattleConfig.pushBattlefieldPlayers(BATTLE_CONFIG_KEY, _user); - Player.setState(_user, PlayerState.Exploring); - } - - function getRandom( - uint256 _randomId, - uint256 _count - ) internal view returns (uint8[] memory) { - require( - _msgSender() == RandomList.getAuthor(_randomId), - "only random creator can get random" - ); - uint8[] memory randomNumberList = new uint8[](_count); - RandomListData memory r = RandomList.get(_randomId); - require( - block.number >= r.blockNumber + 2, - "too early to get random seed" - ); - uint256 seed = uint256(blockhash(r.blockNumber + 2)); - // 一次处理一个uint256随机数 - uint256 randomNumber = uint256(keccak256(abi.encodePacked(seed))); - - // 截断后存入属性数组 - for (uint8 i = 0; i < _count; i++) { - uint8 digit = uint8(randomNumber % 100); - randomNumberList[i] = digit; - randomNumber = randomNumber / 100; - } - return randomNumberList; - } - - function requestRandom() external { - uint256 randomId = GameConfig.getRandomId(GAME_CONFIG_KEY); - RandomList.setAuthor(randomId, _msgSender()); - RandomList.setBlockNumber(randomId, block.number); - - emit NewRandom(randomId, _msgSender()); - } - - function creatBox(uint16 _x, uint16 _y) internal { - uint256 roomId = GameConfig.getRoomId(GAME_CONFIG_KEY); - uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); - BoxList.setX(roomId, boxId, _x); - BoxList.setY(roomId, boxId, _y); - - uint256 randomId = GameConfig.getRandomId(GAME_CONFIG_KEY); - BoxList.setRandomId(roomId, boxId, randomId); - GameConfig.setRandomId(GAME_CONFIG_KEY, randomId + 1); - GameConfig.setBoxId(GAME_CONFIG_KEY, boxId + 1); - } - - function openBox(uint256 _boxId) external { - // 宝箱打开时init内容物,根据自带randomId来实现随机 - uint256 roomId = GameConfig.getRoomId(GAME_CONFIG_KEY); - uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); - require(BoxList.getDropTime(roomId, _boxId) != 0, "Invalid box"); - BoxListData memory _box = BoxList.get(roomId, boxId); - PlayerData memory _user = Player.get(_box.owner); - require( - CommonUtils.isNear(_box.x, _user.x, _box.y, _user.y), - "You are not near the box" - ); - require(_box.opened == false, "Box is opened"); - uint8[] memory randomNumberList = getRandom(_box.randomId, 2); - uint8 oreBalance = CommonUtils.dice(randomNumberList[0],20,10,1); - uint8 treasureBalance = CommonUtils.dice(randomNumberList[1],80,10,1); - BoxList.setOreBalance(roomId, boxId, oreBalance); - BoxList.setTreasureBalance(roomId, boxId, treasureBalance); - BoxList.setOpened(roomId, boxId, true); - BoxList.setOpenTime(roomId, boxId, block.timestamp); - } - - function getCollections(uint256 _boxId, uint16 _oreAmount,uint16 _treasureAmount) internal { - uint256 roomId = GameConfig.getRoomId(GAME_CONFIG_KEY); - uint256 boxId = GameConfig.getBoxId(GAME_CONFIG_KEY); - require(BoxList.getDropTime(roomId, _boxId) != 0, "Invalid box"); - BoxListData memory _box = BoxList.get(roomId, boxId); - PlayerData memory _user = Player.get(_box.owner); - require( - CommonUtils.isNear(_box.x, _user.x, _box.y, _user.y), - "You are not near the box" - ); - require(_box.opened == true, "Box is not opened"); - if(block.timestamp<_box.openTime + BattleConfig.getMaxBoxBindTime(BATTLE_CONFIG_KEY)){ - require(msg.sender==_box.owner,"The box is waiting for its opener, please wait"); - } - require(_oreAmount<=_box.oreBalance&&_treasureAmount<=_box.treasureBalance,"Invalid amount"); - BoxList.setOreBalance(roomId, boxId, _box.oreBalance - _oreAmount); - BoxList.setTreasureBalance(roomId, boxId, _box.treasureBalance - _treasureAmount); - Player.setOreBalance(_box.owner, _user.oreBalance + _oreAmount); - Player.setTreasureBalance(_box.owner, _user.treasureBalance + _treasureAmount); - } - - -} \ No newline at end of file diff --git a/packages/contracts/src/systems/library/CommonUtils.sol b/packages/contracts/src/systems/library/CommonUtils.sol index 9ef5ab5d..60a16f06 100644 --- a/packages/contracts/src/systems/library/CommonUtils.sol +++ b/packages/contracts/src/systems/library/CommonUtils.sol @@ -2,51 +2,57 @@ pragma solidity >=0.8.0; import { BattleState, Buff, PlayerState } from "../../codegen/Types.sol"; +import { Move } from "../Common.sol"; +import { GAME_CONFIG_KEY, BATTLE_CONFIG_KEY } from "../../Constants.sol"; + +import { Player, GameConfig, BattleListData, BattleList } from "../../codegen/Tables.sol"; library CommonUtils { - function abs_substruction( - uint16 a, - uint16 b - ) internal pure returns (uint16) { - if (a > b) { - return a - b; - } else { - return b - a; - } + function abs_substruction(uint16 a, uint16 b) internal pure returns (uint16) { + if (a > b) { + return a - b; + } else { + return b - a; } + } - function isNear( - uint16 _x1, - uint16 _x2, - uint16 _y1, - uint16 _y2 - ) internal pure returns (bool) { - uint16 x_diff = abs_substruction(_x1, _x2); - uint16 y_diff = abs_substruction(_y1, _y2); - return x_diff <= 1 && y_diff <= 1 && x_diff != y_diff; - } + function isNear(uint16 _x1, uint16 _x2, uint16 _y1, uint16 _y2) internal pure returns (bool) { + uint16 x_diff = abs_substruction(_x1, _x2); + uint16 y_diff = abs_substruction(_y1, _y2); + return x_diff <= 1 && y_diff <= 1 && x_diff != y_diff; + } - function zeroSub(uint8 a, uint8 b) internal pure returns (uint8) { - uint8 result = a > b ? a - b : 0; - return result; - } + function zeroSub(uint8 a, uint8 b) internal pure returns (uint8) { + uint8 result = a > b ? a - b : 0; + return result; + } - function dice( - uint8 number, - uint8 threshold, - uint8 increaseX, - uint8 increaseY - ) internal pure returns (uint8) { - //掷骰子,产生根据规则的随机数 - require(threshold > 0&&increaseY>0&&increaseX>0, "invalid params"); - uint8 result; - number = zeroSub(number, threshold); - if (number>0) { - uint8 multiplier = number / increaseX; - result = multiplier * increaseY; - return result; - } else { - return 0; - } + function dice(uint8 number, uint8 threshold, uint8 increaseX, uint8 increaseY) internal pure returns (uint8) { + //掷骰子,产生根据规则的随机数 + require(threshold > 0 && increaseY > 0 && increaseX > 0, "invalid params"); + uint8 result; + number = zeroSub(number, threshold); + if (number > 0) { + uint8 multiplier = number / increaseX; + result = multiplier * increaseY; + return result; + } else { + return 0; } -} \ No newline at end of file + } + + + + function onlyBattlePlayer(uint256 _battleId, BattleState _battleState) internal view returns (bool) { + bool r = true; + BattleListData memory battle = BattleList.get(_battleId); + + BattleState battleState = battle.attacker == msg.sender ? battle.attackerState : battle.defenderState; + + require(battle.attacker == msg.sender || battle.defender == msg.sender, "You are not in this battle"); + require(battleState == _battleState, "You are in the wrong state"); + + r = !battle.isEnd; + return r; + } +} diff --git a/packages/contracts/src/systems/library/MRandom.sol b/packages/contracts/src/systems/library/MRandom.sol new file mode 100644 index 00000000..a1d33eaa --- /dev/null +++ b/packages/contracts/src/systems/library/MRandom.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import { System } from "@latticexyz/world/src/System.sol"; +import { BattleState, Buff, PlayerState } from "@codegen/Types.sol"; +import { GameConfig, BattleConfig, RandomList, RandomListData, BoxList, BoxListData, Player, PlayerData, PlayerLocationLock } from "@codegen/Tables.sol"; +import { GAME_CONFIG_KEY, BATTLE_CONFIG_KEY } from "../../Constants.sol"; +import { CommonUtils } from "@library/CommonUtils.sol"; + +library MRandom { + event NewRandom(uint256 randomId, address author); + + function getRandom(uint256 _randomId, uint256 _count) internal view returns (uint8[] memory) { + require(msg.sender == RandomList.getAuthor(_randomId), "only random creator can get random"); + uint8[] memory randomNumberList = new uint8[](_count); + RandomListData memory r = RandomList.get(_randomId); + require(block.number >= r.blockNumber + 2, "too early to get random seed"); + uint256 seed = uint256(blockhash(r.blockNumber + 2)); + // 一次处理一个uint256随机数 + uint256 randomNumber = uint256(keccak256(abi.encodePacked(seed))); + // 截断后存入属性数组 + for (uint8 i = 0; i < _count; i++) { + uint8 digit = uint8(randomNumber % 100); + randomNumberList[i] = digit; + randomNumber = randomNumber / 100; + } + return randomNumberList; + } + + function requestRandom() external { + uint256 randomId = GameConfig.getRandomId(GAME_CONFIG_KEY); + RandomList.setAuthor(randomId, msg.sender); + RandomList.setBlockNumber(randomId, block.number); + + emit NewRandom(randomId, msg.sender); + } + + function choice(uint8 rand, string[] memory sourceArray) internal pure returns (string memory) { + string memory output = sourceArray[rand % sourceArray.length]; + + return output; + } +} diff --git a/packages/contracts/test/MapTest.t.sol b/packages/contracts/test/MapTest.t.sol index ab9aa6ca..8077483c 100644 --- a/packages/contracts/test/MapTest.t.sol +++ b/packages/contracts/test/MapTest.t.sol @@ -25,4 +25,20 @@ contract MapTest is MudTest { assertTrue(codeSize > 0); } + // 测试流程 + // init 玩家1,2,3 + // 玩家1移动 + // 超过攻击范围玩家2无法攻击玩家1 + // 使用GMsystem生成一个宝箱在入口附近 + // 玩家2移动,触发boxSystem打开宝箱,并且在两个块后打开宝箱 + // 玩家2取出宝物 + // 玩家2可以向玩家1发起攻击 + // 玩家1选择强攻击策略并确认,玩家2选择弱攻击策略并确认 + // 玩家1揭示攻击策略,玩家2揭示攻击策略并自动结算 + // 揭示数值为玩家1对玩家2造成1.5倍攻击强度,玩家2对玩家1造成1倍攻击强度 + // 再次攻击一轮,期望:玩家2被击败,传送回初始点,玩家2原来的点生成宝箱 + // 期望玩家1血量不满 + // 玩家3在锁定期不可取走玩家2宝箱物品 + // 玩家1可以取走玩家2宝箱物品 + } diff --git a/packages/contracts/test/MoveTest.t.sol b/packages/contracts/test/MoveTest.t.sol new file mode 100644 index 00000000..de0ca8be --- /dev/null +++ b/packages/contracts/test/MoveTest.t.sol @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.0; + +import "forge-std/Test.sol"; +import { MudTest } from "@latticexyz/store/src/MudTest.sol"; +import { getKeysWithValue } from "@latticexyz/world/src/modules/keyswithvalue/getKeysWithValue.sol"; + +import { IWorld } from "../src/codegen/world/IWorld.sol"; +import { Move } from "../src/systems/Common.sol"; +import { GAME_CONFIG_KEY } from "../src/Constants.sol"; +import { Player, GameConfig } from "../src/codegen/Tables.sol"; + +contract MoveTest is MudTest { + IWorld public world; + + function setUp() public override { + super.setUp(); + world = IWorld(worldAddress); + } + + function testWorldExists() public { + uint256 codeSize; + address addr = worldAddress; + assembly { + codeSize := extcodesize(addr) + } + assertTrue(codeSize > 0); + } + + function testMove() public { + Move[] memory moveList = new Move[](5); + bytes32[] memory firstStepProof = new bytes32[](12); + firstStepProof[0] = 0x3c553fde73077fda8f45fda2de51b8686c9a1fb3f28dd09b33a5b09e3a07bb1a; + firstStepProof[1] = 0x738d9a75efec0d2ae8a1c1b95f790abedbb9b2ae7cfcda3cb2fd7a439a983fff; + firstStepProof[2] = 0x67baa5a2ed53ea681ca3c6c4279d091023e5cc51cd0ddc18bae1b6ebdaf619d9; + firstStepProof[3] = 0xa7ce92f2e46cb574d31368d9ac41b2ad885da3acee3f41220e23ee09c163f267; + firstStepProof[4] = 0xb70f38c7c325ca2562d4d682c0e669dc73fb18f252c4b7b342d30a7bb3faeb03; + firstStepProof[5] = 0x85484a751a7139731e1aeed8485077bdcb14489e201320f707ace7f2bae00fac; + firstStepProof[6] = 0x4c69a9f677be88821a5e1ddbb885a8e34f8a9397549c49ad469a9bfceded2973; + firstStepProof[7] = 0xe497c69d081436eca071073000e2da478d3de28f39d567a62eb82e9bd46236c7; + firstStepProof[8] = 0xe81295af9358cdb786aae5a18d41cc7849576b756144a9c240cb5fbe1e6d624b; + firstStepProof[9] = 0x6f7a0a4df3b5476bc5e5165ea9ac5f476650cfc77164c0f5fa7ee262fb97bf4a; + firstStepProof[10] = 0x831e9655b156ff25576973080888425e8358cbeb7c195a78e6fe7466e4517e26; + firstStepProof[11] = 0x320198d7c3c91650c38ed06892226e026e1f2141520371bdf190d4876287a043; + + bytes32[] memory secondStepProof = new bytes32[](12); + secondStepProof[0] = 0x884cafc5d3561f92efc3c309f37eeda7f4307015287109d401f92c9b19ac1ff8; + secondStepProof[1] = 0x3e4bff41f64d9fb63a360f57d724bc34db8db844d717b05c55a2ba78171230e3; + secondStepProof[2] = 0x67baa5a2ed53ea681ca3c6c4279d091023e5cc51cd0ddc18bae1b6ebdaf619d9; + secondStepProof[3] = 0xa7ce92f2e46cb574d31368d9ac41b2ad885da3acee3f41220e23ee09c163f267; + secondStepProof[4] = 0xb70f38c7c325ca2562d4d682c0e669dc73fb18f252c4b7b342d30a7bb3faeb03; + secondStepProof[5] = 0x85484a751a7139731e1aeed8485077bdcb14489e201320f707ace7f2bae00fac; + secondStepProof[6] = 0x4c69a9f677be88821a5e1ddbb885a8e34f8a9397549c49ad469a9bfceded2973; + secondStepProof[7] = 0xe497c69d081436eca071073000e2da478d3de28f39d567a62eb82e9bd46236c7; + secondStepProof[8] = 0xe81295af9358cdb786aae5a18d41cc7849576b756144a9c240cb5fbe1e6d624b; + secondStepProof[9] = 0x6f7a0a4df3b5476bc5e5165ea9ac5f476650cfc77164c0f5fa7ee262fb97bf4a; + secondStepProof[10] = 0x831e9655b156ff25576973080888425e8358cbeb7c195a78e6fe7466e4517e26; + secondStepProof[11] = 0x320198d7c3c91650c38ed06892226e026e1f2141520371bdf190d4876287a043; + + bytes32[] memory thirdStepProof = new bytes32[](12); + thirdStepProof[0] = 0x6f82de3fd5b27340fe920e0696f715eee718b48e7ebce574c9d48c6257dbdd34; + thirdStepProof[1] = 0x3e4bff41f64d9fb63a360f57d724bc34db8db844d717b05c55a2ba78171230e3; + thirdStepProof[2] = 0x67baa5a2ed53ea681ca3c6c4279d091023e5cc51cd0ddc18bae1b6ebdaf619d9; + thirdStepProof[3] = 0xa7ce92f2e46cb574d31368d9ac41b2ad885da3acee3f41220e23ee09c163f267; + thirdStepProof[4] = 0xb70f38c7c325ca2562d4d682c0e669dc73fb18f252c4b7b342d30a7bb3faeb03; + thirdStepProof[5] = 0x85484a751a7139731e1aeed8485077bdcb14489e201320f707ace7f2bae00fac; + thirdStepProof[6] = 0x4c69a9f677be88821a5e1ddbb885a8e34f8a9397549c49ad469a9bfceded2973; + thirdStepProof[7] = 0xe497c69d081436eca071073000e2da478d3de28f39d567a62eb82e9bd46236c7; + thirdStepProof[8] = 0xe81295af9358cdb786aae5a18d41cc7849576b756144a9c240cb5fbe1e6d624b; + thirdStepProof[9] = 0x6f7a0a4df3b5476bc5e5165ea9ac5f476650cfc77164c0f5fa7ee262fb97bf4a; + thirdStepProof[10] = 0x831e9655b156ff25576973080888425e8358cbeb7c195a78e6fe7466e4517e26; + thirdStepProof[11] = 0x320198d7c3c91650c38ed06892226e026e1f2141520371bdf190d4876287a043; + + bytes32[] memory fourthStepProof = new bytes32[](12); + fourthStepProof[0] = 0x05666321b37b8ba0b6a73f1f753cff18dd7cae0017d1289a78c96247ad6170b9; + fourthStepProof[1] = 0x39e180577f6043bf791a00250a516f9eb95e97f14b1c09273f50a8df764ad0dd; + fourthStepProof[2] = 0x2eb23cd480600e0402815765829471bf6b3d1bce4f71244c4f136adb8bdf928b; + fourthStepProof[3] = 0x275440f4d8bad008cebb4cc1490c178784579acaf42d90b44f1f1c16bed7381b; + fourthStepProof[4] = 0xcdfebeab2204a94696eb3556fd0fc6d198f834d102510816ee1ef663aa97c954; + fourthStepProof[5] = 0xb88c434ed19cc9f1e7dc990b7639fb1fe4f7a6ed54e0999553d054ff6a6c8ee1; + fourthStepProof[6] = 0x0e45564c884d27cea7376367e556d92615912c98645b997e9fc197ef1ba066f6; + fourthStepProof[7] = 0xe497c69d081436eca071073000e2da478d3de28f39d567a62eb82e9bd46236c7; + fourthStepProof[8] = 0xe81295af9358cdb786aae5a18d41cc7849576b756144a9c240cb5fbe1e6d624b; + fourthStepProof[9] = 0x6f7a0a4df3b5476bc5e5165ea9ac5f476650cfc77164c0f5fa7ee262fb97bf4a; + fourthStepProof[10] = 0x831e9655b156ff25576973080888425e8358cbeb7c195a78e6fe7466e4517e26; + fourthStepProof[11] = 0x320198d7c3c91650c38ed06892226e026e1f2141520371bdf190d4876287a043; + + + bytes32[] memory fifthStepProof = new bytes32[](12); + fifthStepProof[0] = 0xbd2f9cdc0ae6b5ec81fbb4a2e7b1503ca21e0dbeb97357d03f77c704b451ec72; + fifthStepProof[1] = 0xecd36c04f91c7161aaaf2637d2684c017c9540c776c7dc7375bc149b041ef111; + fifthStepProof[2] = 0x5e7fdaf247a41dfbb6f837b839fde933ae08489d513dfa6768c4361884378a31; + fifthStepProof[3] = 0xf1210557ca6b6120672478350c09791e460b1873f5811dba306650a5ec599bd8; + fifthStepProof[4] = 0x1b6bd9213f54c0364694f82ecc30f055ce8bf7664898d9f08d5f198013291df0; + fifthStepProof[5] = 0xb47c8ec141b752217c76f882ea92282045668a0d0a02d9e56e0dee79140dc00f; + fifthStepProof[6] = 0xc565e177b26d05bcae02b9e1767dff5c27dd724c8932b3c42a9a5a699f205825; + fifthStepProof[7] = 0xcb1450a34269600496f4a9d0ebd1a7d6aa55e9d44660354cc6d73aebb95dc26d; + fifthStepProof[8] = 0xe81295af9358cdb786aae5a18d41cc7849576b756144a9c240cb5fbe1e6d624b; + fifthStepProof[9] = 0x6f7a0a4df3b5476bc5e5165ea9ac5f476650cfc77164c0f5fa7ee262fb97bf4a; + fifthStepProof[10] = 0x831e9655b156ff25576973080888425e8358cbeb7c195a78e6fe7466e4517e26; + fifthStepProof[11] = 0x320198d7c3c91650c38ed06892226e026e1f2141520371bdf190d4876287a043; + + + moveList[0] = Move(5, 4, firstStepProof); + moveList[1] = Move(6, 4, secondStepProof); + moveList[2] = Move(7, 4, secondStepProof); + moveList[3] = Move(7, 5, secondStepProof); + moveList[4] = Move(7, 6, secondStepProof); + + + vm.startPrank(vm.addr(vm.envUint("PRIVATE_KEY"))); + + Player.setX(world, msg.sender, 4); + Player.setY(world, msg.sender, 4); + bytes32 merkleRoot = 0x5df91eca63323dbb115087ef262075c5bcea99b8eaf95f520efb8d48ff447499; + GameConfig.setMerkleRoot(world, GAME_CONFIG_KEY, merkleRoot); + + console.log(" player x : ", Player.getX(world, msg.sender)); + console.log(" player y : ", Player.getY(world, msg.sender)); + + world.move(moveList); + + vm.stopPrank(); + } + +} diff --git a/packages/contracts/worlds.json b/packages/contracts/worlds.json index 17dd68d8..d2e4ed07 100644 --- a/packages/contracts/worlds.json +++ b/packages/contracts/worlds.json @@ -1,17 +1,13 @@ { "31337": { - "address": "0xD5724171C2b7f0AA717a324626050BD05767e2C6" + "address": "0x5d3257e33313b17b00e1F77136Ba7a4daF4a9B74" }, "421613": { - "address": "0xfB532D8f51E07c3B157AB9752510D710cE0b61B0", - "blockNumber": 46557438 + "address": "0x2Bc1034975c3df48D6f3026802f372677844b85d", + "blockNumber": 46508363 }, "11155111": { "address": "0xec7F8CF3B3640b1C5E8fD3c208776aad056D4fc3", "blockNumber": 4450305 - }, - "421613": { - "address": "0x2Bc1034975c3df48D6f3026802f372677844b85d", - "blockNumber": 46508363 } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 247e3eab..3ee5260d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,10 +67,10 @@ importers: version: 4.9.3 '@types/node': specifier: ^18.15.11 - version: 18.15.11 + version: 18.17.11 antd: specifier: ^5.9.2 - version: 5.9.2(react-dom@18.2.0)(react@18.2.0) + version: 5.9.4(react-dom@18.2.0)(react@18.2.0) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -110,7 +110,7 @@ importers: devDependencies: '@nomicfoundation/hardhat-toolbox': specifier: ^3.0.0 - version: 3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.2)(@nomicfoundation/hardhat-ethers@3.0.4)(@nomicfoundation/hardhat-network-helpers@1.0.9)(@nomicfoundation/hardhat-verify@1.1.1)(@typechain/ethers-v6@0.4.3)(@typechain/hardhat@8.0.3)(@types/chai@4.3.6)(@types/mocha@10.0.2)(@types/node@18.15.11)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.17.4)(solidity-coverage@0.8.5)(ts-node@10.9.1)(typechain@8.3.1)(typescript@5.1.6) + version: 3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.2)(@nomicfoundation/hardhat-ethers@3.0.4)(@nomicfoundation/hardhat-network-helpers@1.0.9)(@nomicfoundation/hardhat-verify@1.1.1)(@typechain/ethers-v6@0.4.3)(@typechain/hardhat@8.0.3)(@types/chai@4.3.6)(@types/mocha@10.0.2)(@types/node@18.17.11)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.18.0)(solidity-coverage@0.8.5)(ts-node@10.9.1)(typechain@8.3.1)(typescript@5.1.6) '@types/react': specifier: ^18.0.11 version: 18.0.11 @@ -119,10 +119,10 @@ importers: version: 18.0.11 hardhat: specifier: ^2.17.4 - version: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + version: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) vite: specifier: ^4.2.1 - version: registry.npmmirror.com/vite@4.2.1(@types/node@18.15.11)(sass@1.64.1) + version: registry.npmmirror.com/vite@4.2.1(@types/node@18.17.11)(sass@1.64.1) wait-port: specifier: ^1.0.4 version: registry.npmmirror.com/wait-port@1.0.4 @@ -1236,7 +1236,7 @@ packages: - utf-8-validate dev: true - /@nomicfoundation/hardhat-chai-matchers@2.0.2(@nomicfoundation/hardhat-ethers@3.0.4)(chai@4.3.10)(ethers@5.7.2)(hardhat@2.17.4): + /@nomicfoundation/hardhat-chai-matchers@2.0.2(@nomicfoundation/hardhat-ethers@3.0.4)(chai@4.3.10)(ethers@5.7.2)(hardhat@2.18.0): resolution: {integrity: sha512-9Wu9mRtkj0U9ohgXYFbB/RQDa+PcEdyBm2suyEtsJf3PqzZEEjLUZgWnMjlFhATMk/fp3BjmnYVPrwl+gr8oEw==} peerDependencies: '@nomicfoundation/hardhat-ethers': ^3.0.0 @@ -1244,17 +1244,17 @@ packages: ethers: ^6.1.0 hardhat: ^2.9.4 dependencies: - '@nomicfoundation/hardhat-ethers': 3.0.4(ethers@5.7.2)(hardhat@2.17.4) + '@nomicfoundation/hardhat-ethers': 3.0.4(ethers@5.7.2)(hardhat@2.18.0) '@types/chai-as-promised': 7.1.6 chai: 4.3.10 chai-as-promised: 7.1.1(chai@4.3.10) deep-eql: 4.1.3 ethers: registry.npmmirror.com/ethers@5.7.2 - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) ordinal: 1.0.3 dev: true - /@nomicfoundation/hardhat-ethers@3.0.4(ethers@5.7.2)(hardhat@2.17.4): + /@nomicfoundation/hardhat-ethers@3.0.4(ethers@5.7.2)(hardhat@2.18.0): resolution: {integrity: sha512-k9qbLoY7qn6C6Y1LI0gk2kyHXil2Tauj4kGzQ8pgxYXIGw8lWn8tuuL72E11CrlKaXRUvOgF0EXrv/msPI2SbA==} peerDependencies: ethers: ^6.1.0 @@ -1262,22 +1262,22 @@ packages: dependencies: debug: 4.3.4(supports-color@8.1.1) ethers: registry.npmmirror.com/ethers@5.7.2 - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) lodash.isequal: 4.5.0 transitivePeerDependencies: - supports-color dev: true - /@nomicfoundation/hardhat-network-helpers@1.0.9(hardhat@2.17.4): + /@nomicfoundation/hardhat-network-helpers@1.0.9(hardhat@2.18.0): resolution: {integrity: sha512-OXWCv0cHpwLUO2u7bFxBna6dQtCC2Gg/aN/KtJLO7gmuuA28vgmVKYFRCDUqrbjujzgfwQ2aKyZ9Y3vSmDqS7Q==} peerDependencies: hardhat: ^2.9.5 dependencies: ethereumjs-util: 7.1.5 - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) dev: true - /@nomicfoundation/hardhat-toolbox@3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.2)(@nomicfoundation/hardhat-ethers@3.0.4)(@nomicfoundation/hardhat-network-helpers@1.0.9)(@nomicfoundation/hardhat-verify@1.1.1)(@typechain/ethers-v6@0.4.3)(@typechain/hardhat@8.0.3)(@types/chai@4.3.6)(@types/mocha@10.0.2)(@types/node@18.15.11)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.17.4)(solidity-coverage@0.8.5)(ts-node@10.9.1)(typechain@8.3.1)(typescript@5.1.6): + /@nomicfoundation/hardhat-toolbox@3.0.0(@nomicfoundation/hardhat-chai-matchers@2.0.2)(@nomicfoundation/hardhat-ethers@3.0.4)(@nomicfoundation/hardhat-network-helpers@1.0.9)(@nomicfoundation/hardhat-verify@1.1.1)(@typechain/ethers-v6@0.4.3)(@typechain/hardhat@8.0.3)(@types/chai@4.3.6)(@types/mocha@10.0.2)(@types/node@18.17.11)(chai@4.3.10)(ethers@5.7.2)(hardhat-gas-reporter@1.0.9)(hardhat@2.18.0)(solidity-coverage@0.8.5)(ts-node@10.9.1)(typechain@8.3.1)(typescript@5.1.6): resolution: {integrity: sha512-MsteDXd0UagMksqm9KvcFG6gNKYNa3GGNCy73iQ6bEasEgg2v8Qjl6XA5hjs8o5UD5A3153B6W2BIVJ8SxYUtA==} peerDependencies: '@nomicfoundation/hardhat-chai-matchers': ^2.0.0 @@ -1298,26 +1298,26 @@ packages: typechain: ^8.2.0 typescript: '>=4.5.0' dependencies: - '@nomicfoundation/hardhat-chai-matchers': 2.0.2(@nomicfoundation/hardhat-ethers@3.0.4)(chai@4.3.10)(ethers@5.7.2)(hardhat@2.17.4) - '@nomicfoundation/hardhat-ethers': 3.0.4(ethers@5.7.2)(hardhat@2.17.4) - '@nomicfoundation/hardhat-network-helpers': 1.0.9(hardhat@2.17.4) - '@nomicfoundation/hardhat-verify': 1.1.1(hardhat@2.17.4) + '@nomicfoundation/hardhat-chai-matchers': 2.0.2(@nomicfoundation/hardhat-ethers@3.0.4)(chai@4.3.10)(ethers@5.7.2)(hardhat@2.18.0) + '@nomicfoundation/hardhat-ethers': 3.0.4(ethers@5.7.2)(hardhat@2.18.0) + '@nomicfoundation/hardhat-network-helpers': 1.0.9(hardhat@2.18.0) + '@nomicfoundation/hardhat-verify': 1.1.1(hardhat@2.18.0) '@typechain/ethers-v6': 0.4.3(ethers@5.7.2)(typechain@8.3.1)(typescript@5.1.6) - '@typechain/hardhat': 8.0.3(@typechain/ethers-v6@0.4.3)(ethers@5.7.2)(hardhat@2.17.4)(typechain@8.3.1) + '@typechain/hardhat': 8.0.3(@typechain/ethers-v6@0.4.3)(ethers@5.7.2)(hardhat@2.18.0)(typechain@8.3.1) '@types/chai': 4.3.6 '@types/mocha': 10.0.2 - '@types/node': 18.15.11 + '@types/node': 18.17.11 chai: 4.3.10 ethers: registry.npmmirror.com/ethers@5.7.2 - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) - hardhat-gas-reporter: 1.0.9(hardhat@2.17.4) - solidity-coverage: 0.8.5(hardhat@2.17.4) - ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) + hardhat-gas-reporter: 1.0.9(hardhat@2.18.0) + solidity-coverage: 0.8.5(hardhat@2.18.0) + ts-node: 10.9.1(@types/node@18.17.11)(typescript@5.1.6) typechain: 8.3.1(typescript@5.1.6) typescript: 5.1.6 dev: true - /@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.17.4): + /@nomicfoundation/hardhat-verify@1.1.1(hardhat@2.18.0): resolution: {integrity: sha512-9QsTYD7pcZaQFEA3tBb/D/oCStYDiEVDN7Dxeo/4SCyHRSm86APypxxdOMEPlGmXsAvd+p1j/dTODcpxb8aztA==} peerDependencies: hardhat: ^2.0.4 @@ -1327,7 +1327,7 @@ packages: cbor: 8.1.0 chalk: 2.4.2 debug: 4.3.4(supports-color@8.1.1) - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) lodash.clonedeep: 4.5.0 semver: 6.3.1 table: 6.8.1 @@ -1703,7 +1703,7 @@ packages: typescript: 5.1.6 dev: true - /@typechain/hardhat@8.0.3(@typechain/ethers-v6@0.4.3)(ethers@5.7.2)(hardhat@2.17.4)(typechain@8.3.1): + /@typechain/hardhat@8.0.3(@typechain/ethers-v6@0.4.3)(ethers@5.7.2)(hardhat@2.18.0)(typechain@8.3.1): resolution: {integrity: sha512-MytSmJJn+gs7Mqrpt/gWkTCOpOQ6ZDfRrRT2gtZL0rfGe4QrU4x9ZdW15fFbVM/XTa+5EsKiOMYXhRABibNeng==} peerDependencies: '@typechain/ethers-v6': ^0.4.3 @@ -1714,7 +1714,7 @@ packages: '@typechain/ethers-v6': 0.4.3(ethers@5.7.2)(typechain@8.3.1)(typescript@5.1.6) ethers: registry.npmmirror.com/ethers@5.7.2 fs-extra: 9.1.0 - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) typechain: 8.3.1(typescript@5.1.6) dev: true @@ -1775,9 +1775,6 @@ packages: resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: true - /@types/node@18.15.11: - resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} - /@types/node@18.17.11: resolution: {integrity: sha512-r3hjHPBu+3LzbGBa8DHnr/KAeTEEOrahkcL+cZc4MaBMTM+mk8LtXR+zw+nqfjuDZZzYTYgTcpHuP+BEQk069g==} @@ -1866,7 +1863,7 @@ packages: optional: true dependencies: typescript: 5.1.6 - zod: 3.22.2 + zod: registry.npmmirror.com/zod@3.22.2 dev: false /abitype@0.9.3(typescript@5.1.6)(zod@3.22.2): @@ -1949,6 +1946,7 @@ packages: /amdefine@1.0.1: resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} engines: {node: '>=0.4.2'} + requiresBuild: true dev: true optional: true @@ -1991,14 +1989,12 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: false /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -2006,8 +2002,8 @@ packages: dependencies: color-convert: 2.0.1 - /antd@5.9.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+ecGt8nDCjvNvKkalJQc4eBGtfdQuZ/WLXrk7X4FbhAhMplctrey4/SOvHeXjEjBnyNC/KSdF4EzKYKq01egbA==} + /antd@5.9.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-eyNn1C/Q9ESn4ktfTlRIIXBbWT5L/Rr38xP37dIvJ3FeD/a4vaVcMqqLz5ywwMPKxgWnuUxggo1mJwWdPoIdSg==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -2026,7 +2022,7 @@ packages: copy-to-clipboard: 3.3.3 dayjs: 1.11.10 qrcode.react: 3.1.0(react@18.2.0) - rc-cascader: 3.16.0(react-dom@18.2.0)(react@18.2.0) + rc-cascader: 3.17.0(react-dom@18.2.0)(react@18.2.0) rc-checkbox: 3.1.0(react-dom@18.2.0)(react@18.2.0) rc-collapse: 3.7.1(react-dom@18.2.0)(react@18.2.0) rc-dialog: 9.2.0(react-dom@18.2.0)(react@18.2.0) @@ -2034,9 +2030,9 @@ packages: rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) rc-field-form: 1.38.2(react-dom@18.2.0)(react@18.2.0) rc-image: 7.2.0(react-dom@18.2.0)(react@18.2.0) - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) - rc-input-number: 8.0.4(react-dom@18.2.0)(react@18.2.0) - rc-mentions: 2.7.0(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.2.1(react-dom@18.2.0)(react@18.2.0) + rc-input-number: 8.1.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: 2.8.0(react-dom@18.2.0)(react@18.2.0) rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) rc-notification: 5.1.1(react-dom@18.2.0)(react@18.2.0) @@ -2046,16 +2042,16 @@ packages: rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) rc-segmented: 2.2.2(react-dom@18.2.0)(react@18.2.0) - rc-select: 14.8.1(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.9.0(react-dom@18.2.0)(react@18.2.0) rc-slider: 10.2.1(react-dom@18.2.0)(react@18.2.0) rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0) rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0) rc-table: 7.34.4(react-dom@18.2.0)(react@18.2.0) rc-tabs: 12.12.1(react-dom@18.2.0)(react@18.2.0) - rc-textarea: 1.3.4(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-tooltip: 6.0.1(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.7.12(react-dom@18.2.0)(react@18.2.0) - rc-tree-select: 5.12.1(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: 5.13.0(react-dom@18.2.0)(react@18.2.0) rc-upload: 4.3.5(react-dom@18.2.0)(react@18.2.0) rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -2085,7 +2081,7 @@ packages: /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: - sprintf-js: 1.0.3 + sprintf-js: registry.npmmirror.com/sprintf-js@1.0.3 dev: true /argparse@2.0.1: @@ -2157,7 +2153,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true /base-x@3.0.9: resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} @@ -2202,13 +2197,11 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: true /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} @@ -2357,12 +2350,10 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true /chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: false /charenc@0.0.2: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} @@ -2444,13 +2435,11 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: false /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -2460,7 +2449,6 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -2511,7 +2499,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true /concat-stream@1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} @@ -2696,6 +2683,10 @@ packages: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2749,7 +2740,6 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -2775,12 +2765,6 @@ packages: hasBin: true dev: true - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true - /estraverse@1.9.3: resolution: {integrity: sha512-25w1fMXQrGdoquWnScXZGckOv+Wes+JDnuN/+7ex3SauFRS72r2lFDec0EKPt2YD1wUJ/IrfEex+9yp4hfSOJA==} engines: {node: '>=0.10.0'} @@ -3023,7 +3007,45 @@ packages: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - dev: false + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /follow-redirects@1.15.3(debug@4.3.4): + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.4(supports-color@8.1.1) + dev: true + + /form-data@2.5.1: + resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /fp-ts@1.19.3: + resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} + dev: true /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} @@ -3095,7 +3117,6 @@ packages: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true /fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} @@ -3122,7 +3143,6 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -3199,7 +3219,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true /glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} @@ -3272,14 +3291,14 @@ packages: uglify-js: 3.17.4 dev: true - /hardhat-gas-reporter@1.0.9(hardhat@2.17.4): + /hardhat-gas-reporter@1.0.9(hardhat@2.18.0): resolution: {integrity: sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==} peerDependencies: hardhat: ^2.0.2 dependencies: array-uniq: 1.0.3 eth-gas-reporter: 0.2.27 - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) sha1: 1.1.1 transitivePeerDependencies: - '@codechecks/client' @@ -3288,8 +3307,8 @@ packages: - utf-8-validate dev: true - /hardhat@2.17.4(ts-node@10.9.1)(typescript@5.1.6): - resolution: {integrity: sha512-YTyHjVc9s14CY/O7Dbtzcr/92fcz6AzhrMaj6lYsZpYPIPLzOrFCZHHPxfGQB6FiE6IPNE0uJaAbr7zGF79goA==} + /hardhat@2.18.0(ts-node@10.9.1)(typescript@5.1.6): + resolution: {integrity: sha512-Com3SPFgk6v73LlE3rypuh32DYxOWvNbVBm5xfPUEzGVEW54Fcc4j3Uq7j6COj7S8Jc27uNihLFsveHYM0YJkQ==} hasBin: true peerDependencies: ts-node: '*' @@ -3344,7 +3363,7 @@ packages: solc: 0.7.3(debug@4.3.4) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 - ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@18.17.11)(typescript@5.1.6) tsort: 0.0.1 typescript: 5.1.6 undici: 5.25.4 @@ -3364,7 +3383,6 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -3488,7 +3506,9 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -3602,7 +3622,7 @@ packages: hasBin: true dependencies: argparse: 1.0.10 - esprima: 4.0.1 + esprima: registry.npmmirror.com/esprima@4.0.1 dev: true /js-yaml@4.1.0: @@ -3631,7 +3651,6 @@ packages: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 - dev: true /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} @@ -3721,7 +3740,21 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-locate: 6.0.0 - dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: true + + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -3879,7 +3912,6 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true /minimatch@5.0.1: resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} @@ -3888,6 +3920,12 @@ packages: brace-expansion: 2.0.1 dev: true + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} dev: true @@ -4029,7 +4067,6 @@ packages: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true /onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} @@ -4078,7 +4115,20 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 - dev: false + + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} @@ -4099,7 +4149,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-limit: 4.0.0 - dev: false /p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} @@ -4138,7 +4187,10 @@ packages: /path-exists@5.0.0: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} @@ -4289,8 +4341,8 @@ packages: resize-observer-polyfill: 1.5.1 dev: false - /rc-cascader@3.16.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-c62glOhm66T0/Y8vOfIgZwHHTbqCyC7FvBTcNDuwbXZc8Dfbz6fB1yIuCB55z5rPA7nsUfMyNNuS8shReZWM+A==} + /rc-cascader@3.17.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8O5Eq/NteRuBaaUIb+ZsTEkNKM3BwWKizsFlSpukCVa2ELqrdMyslbe/OdxtuFlyJIqGyWF5rS2Q+fd0Rpvmgw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -4298,7 +4350,7 @@ packages: '@babel/runtime': 7.22.11 array-tree-filter: 2.1.0 classnames: 2.3.2 - rc-select: 14.8.1(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.9.0(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.7.12(react-dom@18.2.0)(react@18.2.0) rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -4406,8 +4458,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-input-number@8.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TP+G5b7mZtbwXJ/YEZXF/OgbEZ6iqD4+RSuxZJ8VGKGXDcdt0FKIvpFoNQr/knspdFC4OxA0OfsWfFWfN4XSyA==} + /rc-input-number@8.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-bdHgduOxuN0lrhzgPmoKbhRD4GLIzVcddVz972/JHPHr7oLwPX5xDb9w4bXhuMzyT2VzQy7nggRCfH3yAl09oA==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -4415,14 +4467,14 @@ packages: '@babel/runtime': 7.22.11 '@rc-component/mini-decimal': 1.1.0 classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.2.1(react-dom@18.2.0)(react@18.2.0) rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /rc-input@1.1.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-NTR1Z4em681L8/ewb2KR80RykSmN8I2mzqzJDCoUmTrV1BB9Hk5d7ha4TnfgdEPPL148N+603sW2LExSXk1IbA==} + /rc-input@1.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nQRmBvEFoGi+SNRDavccZ8ueyhFgmxkWqIt4aDyuNJgUZF12HJKIwDhAafUM7N+g7PyuW9FH3pf3zPHzdiCWbA==} peerDependencies: react: '>=16.0.0' react-dom: '>=16.0.0' @@ -4434,8 +4486,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-mentions@2.7.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-tn0x79cpnVYP+MA+jyBqalmEni9Ct7xHuA9QHIf5vwd25FU+hngGZ8n6Dfua7XCr4LhkZYjfD/rZTGrvY2C1Xg==} + /rc-mentions@2.8.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LBMkO6bSGhEvS1CvMK978qGN82tI+mzk7l/uTiQJH+UDiwpvq+pxK4DxU5b6Q1T5LW6bn2pSua9RaZKZrDoBOw==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' @@ -4443,9 +4495,9 @@ packages: '@babel/runtime': 7.22.11 '@rc-component/trigger': 1.17.0(react-dom@18.2.0)(react@18.2.0) classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.2.1(react-dom@18.2.0)(react@18.2.0) rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) - rc-textarea: 1.3.4(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -4606,8 +4658,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-select@14.8.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+MDaHteiKRL4iID9Osm8zAZTe+g7/t5CjIfJJ4QhPAvwGUaNCa2kvkMqiXfOfGevscVa+agha1Ov938MeAotfQ==} + /rc-select@14.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vbIhK1MBA12MRdxXbiylSCTPKsWV8WmeN7OyATk9I0LsuIVwe/kBAUNH02am1ryjoylbK+AH309a6X1AflGRSw==} engines: {node: '>=8.x'} peerDependencies: react: '*' @@ -4700,15 +4752,15 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-textarea@1.3.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-wn0YjTpvcVolcfXa0HtzL+jgV2QcwtfB29RwNAKj8hMgZOju1V24M3TfEDjABeQEAQbUGbjMbISREOX/YSVKhg==} + /rc-textarea@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CiqK+uyoJlnfufbC0kwfHJpfElhQacuDSNyNQ/xGnA/QMaJLDbgmqRT8QmX0T0KD/ws/hy6qqRaGJSsrRR5uiQ==} peerDependencies: react: '>=16.9.0' react-dom: '>=16.9.0' dependencies: '@babel/runtime': 7.22.11 classnames: 2.3.2 - rc-input: 1.1.1(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.2.1(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.3.1(react-dom@18.2.0)(react@18.2.0) rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -4728,15 +4780,15 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /rc-tree-select@5.12.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-/IC6gRgRoUBCOwZASOiF3onp1484fb+Gke5zuxgsi3ViP+O2UTUByS1jTZzjNooidRgdwiQJksq1zVaVYw2TPg==} + /rc-tree-select@5.13.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-g01JU9EdE7j/9KfDKtmvFqJ7ZDNIYDzkpmAXllbTBFoRNhWJBjW1x/dCZLVG+IdZeIz8SKJkgZzCf1CUZrzV/Q==} peerDependencies: react: '*' react-dom: '*' dependencies: '@babel/runtime': 7.22.11 classnames: 2.3.2 - rc-select: 14.8.1(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.9.0(react-dom@18.2.0)(react@18.2.0) rc-tree: 5.7.12(react-dom@18.2.0)(react@18.2.0) rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 @@ -5174,7 +5226,7 @@ packages: resolution: {integrity: sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==} dev: false - /solidity-coverage@0.8.5(hardhat@2.17.4): + /solidity-coverage@0.8.5(hardhat@2.18.0): resolution: {integrity: sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==} hasBin: true peerDependencies: @@ -5190,7 +5242,7 @@ packages: ghost-testrpc: 0.0.2 global-modules: 2.0.0 globby: 10.0.2 - hardhat: 2.17.4(ts-node@10.9.1)(typescript@5.1.6) + hardhat: 2.18.0(ts-node@10.9.1)(typescript@5.1.6) jsonschema: 1.4.1 lodash: 4.17.21 mocha: 10.2.0 @@ -5230,10 +5282,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true - /stacktrace-parser@0.1.10: resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} engines: {node: '>=6'} @@ -5262,6 +5310,15 @@ packages: strip-ansi: 4.0.0 dev: true + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + dev: true + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -5306,7 +5363,6 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: false /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} @@ -5319,6 +5375,10 @@ packages: dependencies: is-hex-prefixed: 1.0.0 + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -5340,14 +5400,12 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: true /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: true /supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} @@ -5467,7 +5525,7 @@ packages: typescript: 5.1.6 dev: true - /ts-node@10.9.1(@types/node@18.15.11)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@18.17.11)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -5486,7 +5544,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.15.11 + '@types/node': 18.17.11 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -5615,7 +5673,6 @@ packages: /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - dev: true /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} @@ -5735,7 +5792,6 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true /ws@7.4.6: resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} @@ -5781,7 +5837,51 @@ packages: /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - dev: false + + /yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + dev: true + + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.4 + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true /yargs-unparser@2.0.0: resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} @@ -5832,7 +5932,6 @@ packages: /yocto-queue@1.0.0: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} - dev: false /zod-validation-error@1.5.0(zod@3.22.2): resolution: {integrity: sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw==} @@ -5845,6 +5944,7 @@ packages: /zod@3.22.2: resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==} + dev: false github.com/dapphub/ds-test/e282159d5170298eb2455a6c05280ab5a73a4ef0: resolution: {commit: e282159d5170298eb2455a6c05280ab5a73a4ef0, repo: git+ssh://git@github.com/dapphub/ds-test.git, type: git} @@ -5946,11 +6046,11 @@ packages: name: '@ethersproject/abstract-provider' version: 5.7.0 dependencies: - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 '@ethersproject/networks': registry.npmmirror.com/@ethersproject/networks@5.7.1 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/properties': 5.7.0 '@ethersproject/transactions': registry.npmmirror.com/@ethersproject/transactions@5.7.0 '@ethersproject/web': registry.npmmirror.com/@ethersproject/web@5.7.1 @@ -5960,20 +6060,20 @@ packages: version: 5.7.0 dependencies: '@ethersproject/abstract-provider': registry.npmmirror.com/@ethersproject/abstract-provider@5.7.0 - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 registry.npmmirror.com/@ethersproject/address@5.7.0: resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/address/-/address-5.7.0.tgz} name: '@ethersproject/address' version: 5.7.0 dependencies: - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/keccak256': registry.npmmirror.com/@ethersproject/keccak256@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 '@ethersproject/rlp': registry.npmmirror.com/@ethersproject/rlp@5.7.0 registry.npmmirror.com/@ethersproject/base64@5.7.0: @@ -5981,24 +6081,24 @@ packages: name: '@ethersproject/base64' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 + '@ethersproject/bytes': 5.7.0 registry.npmmirror.com/@ethersproject/basex@5.7.0: resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/basex/-/basex-5.7.0.tgz} name: '@ethersproject/basex' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/properties': 5.7.0 registry.npmmirror.com/@ethersproject/bignumber@5.7.0: resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz} name: '@ethersproject/bignumber' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - bn.js: registry.npmmirror.com/bn.js@5.2.1 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 registry.npmmirror.com/@ethersproject/bytes@5.7.0: resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/bytes/-/bytes-5.7.0.tgz} @@ -6012,22 +6112,22 @@ packages: name: '@ethersproject/constants' version: 5.7.0 dependencies: - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 + '@ethersproject/bignumber': 5.7.0 registry.npmmirror.com/@ethersproject/contracts@5.7.0: resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/contracts/-/contracts-5.7.0.tgz} name: '@ethersproject/contracts' version: 5.7.0 dependencies: - '@ethersproject/abi': registry.npmmirror.com/@ethersproject/abi@5.7.0 + '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': registry.npmmirror.com/@ethersproject/abstract-provider@5.7.0 '@ethersproject/abstract-signer': registry.npmmirror.com/@ethersproject/abstract-signer@5.7.0 - '@ethersproject/address': registry.npmmirror.com/@ethersproject/address@5.7.0 - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/constants': registry.npmmirror.com/@ethersproject/constants@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 '@ethersproject/transactions': registry.npmmirror.com/@ethersproject/transactions@5.7.0 registry.npmmirror.com/@ethersproject/hash@5.7.0: @@ -6036,14 +6136,14 @@ packages: version: 5.7.0 dependencies: '@ethersproject/abstract-signer': registry.npmmirror.com/@ethersproject/abstract-signer@5.7.0 - '@ethersproject/address': registry.npmmirror.com/@ethersproject/address@5.7.0 + '@ethersproject/address': 5.7.0 '@ethersproject/base64': registry.npmmirror.com/@ethersproject/base64@5.7.0 - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/keccak256': registry.npmmirror.com/@ethersproject/keccak256@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 - '@ethersproject/strings': registry.npmmirror.com/@ethersproject/strings@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 registry.npmmirror.com/@ethersproject/hdnode@5.7.0: resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz} @@ -6052,14 +6152,14 @@ packages: dependencies: '@ethersproject/abstract-signer': registry.npmmirror.com/@ethersproject/abstract-signer@5.7.0 '@ethersproject/basex': registry.npmmirror.com/@ethersproject/basex@5.7.0 - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 '@ethersproject/pbkdf2': registry.npmmirror.com/@ethersproject/pbkdf2@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/properties': 5.7.0 '@ethersproject/sha2': registry.npmmirror.com/@ethersproject/sha2@5.7.0 '@ethersproject/signing-key': registry.npmmirror.com/@ethersproject/signing-key@5.7.0 - '@ethersproject/strings': registry.npmmirror.com/@ethersproject/strings@5.7.0 + '@ethersproject/strings': 5.7.0 '@ethersproject/transactions': registry.npmmirror.com/@ethersproject/transactions@5.7.0 '@ethersproject/wordlists': registry.npmmirror.com/@ethersproject/wordlists@5.7.0 @@ -6069,26 +6169,26 @@ packages: version: 5.7.0 dependencies: '@ethersproject/abstract-signer': registry.npmmirror.com/@ethersproject/abstract-signer@5.7.0 - '@ethersproject/address': registry.npmmirror.com/@ethersproject/address@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bytes': 5.7.0 '@ethersproject/hdnode': registry.npmmirror.com/@ethersproject/hdnode@5.7.0 - '@ethersproject/keccak256': registry.npmmirror.com/@ethersproject/keccak256@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 '@ethersproject/pbkdf2': registry.npmmirror.com/@ethersproject/pbkdf2@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/properties': 5.7.0 '@ethersproject/random': registry.npmmirror.com/@ethersproject/random@5.7.0 - '@ethersproject/strings': registry.npmmirror.com/@ethersproject/strings@5.7.0 + '@ethersproject/strings': 5.7.0 '@ethersproject/transactions': registry.npmmirror.com/@ethersproject/transactions@5.7.0 aes-js: registry.npmmirror.com/aes-js@3.0.0 - scrypt-js: registry.npmmirror.com/scrypt-js@3.0.1 + scrypt-js: 3.0.1 registry.npmmirror.com/@ethersproject/keccak256@5.7.0: resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz} name: '@ethersproject/keccak256' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - js-sha3: registry.npmmirror.com/js-sha3@0.8.0 + '@ethersproject/bytes': 5.7.0 + js-sha3: 0.8.0 registry.npmmirror.com/@ethersproject/logger@5.7.0: resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/logger/-/logger-5.7.0.tgz} @@ -6100,14 +6200,14 @@ packages: name: '@ethersproject/networks' version: 5.7.1 dependencies: - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/logger': 5.7.0 registry.npmmirror.com/@ethersproject/pbkdf2@5.7.0: resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz} name: '@ethersproject/pbkdf2' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 + '@ethersproject/bytes': 5.7.0 '@ethersproject/sha2': registry.npmmirror.com/@ethersproject/sha2@5.7.0 registry.npmmirror.com/@ethersproject/properties@5.7.0: @@ -6115,7 +6215,7 @@ packages: name: '@ethersproject/properties' version: 5.7.0 dependencies: - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/logger': 5.7.0 registry.npmmirror.com/@ethersproject/providers@5.7.2: resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/providers/-/providers-5.7.2.tgz} @@ -6151,71 +6251,71 @@ packages: name: '@ethersproject/random' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 registry.npmmirror.com/@ethersproject/rlp@5.7.0: resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/rlp/-/rlp-5.7.0.tgz} name: '@ethersproject/rlp' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 registry.npmmirror.com/@ethersproject/sha2@5.7.0: resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/sha2/-/sha2-5.7.0.tgz} name: '@ethersproject/sha2' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - hash.js: registry.npmmirror.com/hash.js@1.1.7 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 registry.npmmirror.com/@ethersproject/signing-key@5.7.0: resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz} name: '@ethersproject/signing-key' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 - bn.js: registry.npmmirror.com/bn.js@5.2.1 - elliptic: registry.npmmirror.com/elliptic@6.5.4 - hash.js: registry.npmmirror.com/hash.js@1.1.7 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 registry.npmmirror.com/@ethersproject/solidity@5.7.0: resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/solidity/-/solidity-5.7.0.tgz} name: '@ethersproject/solidity' version: 5.7.0 dependencies: - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/keccak256': registry.npmmirror.com/@ethersproject/keccak256@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 '@ethersproject/sha2': registry.npmmirror.com/@ethersproject/sha2@5.7.0 - '@ethersproject/strings': registry.npmmirror.com/@ethersproject/strings@5.7.0 + '@ethersproject/strings': 5.7.0 registry.npmmirror.com/@ethersproject/strings@5.7.0: resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/strings/-/strings-5.7.0.tgz} name: '@ethersproject/strings' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/constants': registry.npmmirror.com/@ethersproject/constants@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 registry.npmmirror.com/@ethersproject/transactions@5.7.0: resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/transactions/-/transactions-5.7.0.tgz} name: '@ethersproject/transactions' version: 5.7.0 dependencies: - '@ethersproject/address': registry.npmmirror.com/@ethersproject/address@5.7.0 - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/constants': registry.npmmirror.com/@ethersproject/constants@5.7.0 - '@ethersproject/keccak256': registry.npmmirror.com/@ethersproject/keccak256@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 '@ethersproject/rlp': registry.npmmirror.com/@ethersproject/rlp@5.7.0 '@ethersproject/signing-key': registry.npmmirror.com/@ethersproject/signing-key@5.7.0 @@ -6224,9 +6324,9 @@ packages: name: '@ethersproject/units' version: 5.7.0 dependencies: - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/constants': registry.npmmirror.com/@ethersproject/constants@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 registry.npmmirror.com/@ethersproject/wallet@5.7.0: resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/wallet/-/wallet-5.7.0.tgz} @@ -6235,15 +6335,15 @@ packages: dependencies: '@ethersproject/abstract-provider': registry.npmmirror.com/@ethersproject/abstract-provider@5.7.0 '@ethersproject/abstract-signer': registry.npmmirror.com/@ethersproject/abstract-signer@5.7.0 - '@ethersproject/address': registry.npmmirror.com/@ethersproject/address@5.7.0 - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/hash': registry.npmmirror.com/@ethersproject/hash@5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hash': 5.7.0 '@ethersproject/hdnode': registry.npmmirror.com/@ethersproject/hdnode@5.7.0 '@ethersproject/json-wallets': registry.npmmirror.com/@ethersproject/json-wallets@5.7.0 - '@ethersproject/keccak256': registry.npmmirror.com/@ethersproject/keccak256@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 '@ethersproject/random': registry.npmmirror.com/@ethersproject/random@5.7.0 '@ethersproject/signing-key': registry.npmmirror.com/@ethersproject/signing-key@5.7.0 '@ethersproject/transactions': registry.npmmirror.com/@ethersproject/transactions@5.7.0 @@ -6255,21 +6355,21 @@ packages: version: 5.7.1 dependencies: '@ethersproject/base64': registry.npmmirror.com/@ethersproject/base64@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 - '@ethersproject/strings': registry.npmmirror.com/@ethersproject/strings@5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 registry.npmmirror.com/@ethersproject/wordlists@5.7.0: resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz} name: '@ethersproject/wordlists' version: 5.7.0 dependencies: - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/hash': registry.npmmirror.com/@ethersproject/hash@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 - '@ethersproject/strings': registry.npmmirror.com/@ethersproject/strings@5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 registry.npmmirror.com/@humanwhocodes/config-array@0.11.10: resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz} @@ -6328,7 +6428,7 @@ packages: '@latticexyz/config': registry.npmmirror.com/@latticexyz/config@2.0.0-next.4(typescript@5.1.6) '@latticexyz/schema-type': registry.npmmirror.com/@latticexyz/schema-type@2.0.0-next.4(typescript@5.1.6)(zod@3.22.2) abitype: registry.npmmirror.com/abitype@0.9.3(typescript@5.1.6)(zod@3.22.2) - debug: registry.npmmirror.com/debug@4.3.4 + debug: 4.3.4(supports-color@8.1.1) rxjs: registry.npmmirror.com/rxjs@7.5.5 viem: registry.npmmirror.com/viem@1.6.0(typescript@5.1.6)(zod@3.22.2) transitivePeerDependencies: @@ -6413,10 +6513,10 @@ packages: dependencies: '@latticexyz/common': registry.npmmirror.com/@latticexyz/common@2.0.0-next.4(typescript@5.1.6)(zod@3.22.2) '@latticexyz/schema-type': registry.npmmirror.com/@latticexyz/schema-type@2.0.0-next.4(typescript@5.1.6)(zod@3.22.2) - chalk: registry.npmmirror.com/chalk@5.3.0 + chalk: 5.3.0 esbuild: registry.npmmirror.com/esbuild@0.17.19 - ethers: registry.npmmirror.com/ethers@5.7.2 - find-up: registry.npmmirror.com/find-up@6.3.0 + ethers: 5.7.2 + find-up: 6.3.0 zod: registry.npmmirror.com/zod@3.22.2 zod-validation-error: registry.npmmirror.com/zod-validation-error@1.5.0(zod@3.22.2) transitivePeerDependencies: @@ -6470,12 +6570,12 @@ packages: version: 2.0.0-next.4 hasBin: true dependencies: - chalk: registry.npmmirror.com/chalk@5.3.0 + chalk: 5.3.0 dotenv: registry.npmmirror.com/dotenv@16.3.1 execa: registry.npmmirror.com/execa@7.2.0 - strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 + strip-ansi: 7.1.0 table: registry.npmmirror.com/table@6.8.1 - yargs: registry.npmmirror.com/yargs@17.7.2 + yargs: 17.7.2 registry.npmmirror.com/@latticexyz/protocol-parser@2.0.0-next.4(typescript@5.1.6)(zod@3.22.2): resolution: {integrity: sha512-Sg22mT8er6EIAyTsV3b1hgiQTHGA1T4V0IhDJ7cxfP3ZaWMIgE1SX7IXj9/8pNwVPUcXsEU3cvLQ3vzfGCiQZw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/@latticexyz/protocol-parser/-/protocol-parser-2.0.0-next.4.tgz} @@ -6612,7 +6712,7 @@ packages: name: '@latticexyz/utils' version: 2.0.0-next.4 dependencies: - ethers: registry.npmmirror.com/ethers@5.7.2 + ethers: 5.7.2 mobx: registry.npmmirror.com/mobx@6.10.0 proxy-deep: registry.npmmirror.com/proxy-deep@3.1.1 rxjs: registry.npmmirror.com/rxjs@7.5.5 @@ -6844,7 +6944,7 @@ packages: '@ethersproject/abi': registry.npmmirror.com/@ethersproject/abi@5.7.0 '@ethersproject/providers': registry.npmmirror.com/@ethersproject/providers@5.7.2 ethers: registry.npmmirror.com/ethers@5.7.2 - lodash: registry.npmmirror.com/lodash@4.17.21 + lodash: 4.17.21 ts-essentials: registry.npmmirror.com/ts-essentials@7.0.3(typescript@5.1.6) typechain: registry.npmmirror.com/typechain@8.3.1(typescript@5.1.6) typescript: registry.npmmirror.com/typescript@5.1.6 @@ -6991,10 +7091,10 @@ packages: dependencies: '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.46.1 '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.46.1 - debug: registry.npmmirror.com/debug@4.3.4 + debug: 4.3.4(supports-color@8.1.1) globby: registry.npmmirror.com/globby@11.1.0 is-glob: registry.npmmirror.com/is-glob@4.0.3 - semver: registry.npmmirror.com/semver@7.5.4 + semver: 7.5.4 tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.1.6) typescript: registry.npmmirror.com/typescript@5.1.6 transitivePeerDependencies: @@ -7062,7 +7162,7 @@ packages: optional: true dependencies: typescript: 5.1.6 - zod: 3.22.2 + zod: registry.npmmirror.com/zod@3.22.2 registry.npmmirror.com/abort-controller-x@0.4.3: resolution: {integrity: sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/abort-controller-x/-/abort-controller-x-0.4.3.tgz} @@ -7130,35 +7230,15 @@ packages: dependencies: fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 json-schema-traverse: registry.npmmirror.com/json-schema-traverse@1.0.0 - require-from-string: registry.npmmirror.com/require-from-string@2.0.2 + require-from-string: 2.0.2 uri-js: registry.npmmirror.com/uri-js@4.4.1 - registry.npmmirror.com/ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz} - name: ansi-regex - version: 3.0.1 - engines: {node: '>=4'} - dev: true - registry.npmmirror.com/ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} name: ansi-regex version: 5.0.1 engines: {node: '>=8'} - - registry.npmmirror.com/ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz} - name: ansi-regex - version: 6.0.1 - engines: {node: '>=12'} - - registry.npmmirror.com/ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} - name: ansi-styles - version: 3.2.1 - engines: {node: '>=4'} - dependencies: - color-convert: registry.npmmirror.com/color-convert@1.9.3 + dev: true registry.npmmirror.com/ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} @@ -7188,14 +7268,6 @@ packages: normalize-path: registry.npmmirror.com/normalize-path@3.0.0 picomatch: registry.npmmirror.com/picomatch@2.3.1 - registry.npmmirror.com/argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz} - name: argparse - version: 1.0.10 - dependencies: - sprintf-js: registry.npmmirror.com/sprintf-js@1.0.3 - dev: true - registry.npmmirror.com/argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} name: argparse @@ -7249,6 +7321,7 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} name: balanced-match version: 1.0.2 + dev: true registry.npmmirror.com/bech32@1.1.4: resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/bech32/-/bech32-1.1.4.tgz} @@ -7285,20 +7358,10 @@ packages: version: 4.1.0 dependencies: buffer: 5.7.1 - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + inherits: 2.0.4 + readable-stream: 3.6.2 dev: false - registry.npmmirror.com/bn.js@4.12.0: - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz} - name: bn.js - version: 4.12.0 - - registry.npmmirror.com/bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-5.2.1.tgz} - name: bn.js - version: 5.2.1 - registry.npmmirror.com/brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} name: brace-expansion @@ -7306,13 +7369,7 @@ packages: dependencies: balanced-match: registry.npmmirror.com/balanced-match@1.0.2 concat-map: registry.npmmirror.com/concat-map@0.0.1 - - registry.npmmirror.com/brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} - name: brace-expansion - version: 2.0.1 - dependencies: - balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + dev: true registry.npmmirror.com/braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} @@ -7322,11 +7379,6 @@ packages: dependencies: fill-range: registry.npmmirror.com/fill-range@7.0.1 - registry.npmmirror.com/brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz} - name: brorand - version: 1.1.0 - registry.npmmirror.com/browser-headers@0.4.1: resolution: {integrity: sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/browser-headers/-/browser-headers-0.4.1.tgz} name: browser-headers @@ -7370,9 +7422,9 @@ packages: version: 2.4.2 engines: {node: '>=4'} dependencies: - ansi-styles: registry.npmmirror.com/ansi-styles@3.2.1 - escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 - supports-color: registry.npmmirror.com/supports-color@5.5.0 + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 registry.npmmirror.com/chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} @@ -7432,23 +7484,6 @@ packages: version: 2.2.1 dev: true - registry.npmmirror.com/cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz} - name: cliui - version: 8.0.1 - engines: {node: '>=12'} - dependencies: - string-width: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - wrap-ansi: registry.npmmirror.com/wrap-ansi@7.0.0 - - registry.npmmirror.com/color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} - name: color-convert - version: 1.9.3 - dependencies: - color-name: registry.npmmirror.com/color-name@1.1.3 - registry.npmmirror.com/color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} name: color-convert @@ -7457,11 +7492,6 @@ packages: dependencies: color-name: registry.npmmirror.com/color-name@1.1.4 - registry.npmmirror.com/color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} - name: color-name - version: 1.1.3 - registry.npmmirror.com/color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} name: color-name @@ -7506,6 +7536,7 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} name: concat-map version: 0.0.1 + dev: true registry.npmmirror.com/concurrently@8.0.1: resolution: {integrity: sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/concurrently/-/concurrently-8.0.1.tgz} @@ -7542,7 +7573,7 @@ packages: dependencies: import-fresh: registry.npmmirror.com/import-fresh@2.0.0 is-directory: registry.npmmirror.com/is-directory@0.3.1 - js-yaml: registry.npmmirror.com/js-yaml@3.14.1 + js-yaml: 3.14.1 parse-json: registry.npmmirror.com/parse-json@4.0.0 dev: true @@ -7722,42 +7753,24 @@ packages: dependencies: jake: registry.npmmirror.com/jake@10.8.7 - registry.npmmirror.com/elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz} - name: elliptic - version: 6.5.4 - dependencies: - bn.js: registry.npmmirror.com/bn.js@4.12.0 - brorand: registry.npmmirror.com/brorand@1.1.0 - hash.js: registry.npmmirror.com/hash.js@1.1.7 - hmac-drbg: registry.npmmirror.com/hmac-drbg@1.0.1 - inherits: registry.npmmirror.com/inherits@2.0.4 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 - registry.npmmirror.com/emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.2.1.tgz} name: emoji-regex version: 10.2.1 dev: true - registry.npmmirror.com/emoji-regex@7.0.3: - resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-7.0.3.tgz} - name: emoji-regex - version: 7.0.3 - dev: true - registry.npmmirror.com/emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} name: emoji-regex version: 8.0.0 + dev: true registry.npmmirror.com/end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} name: end-of-stream version: 1.4.4 dependencies: - once: registry.npmmirror.com/once@1.4.0 + once: 1.4.0 dev: false registry.npmmirror.com/error-ex@1.3.2: @@ -7799,18 +7812,6 @@ packages: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - registry.npmmirror.com/escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} - name: escalade - version: 3.1.1 - engines: {node: '>=6'} - - registry.npmmirror.com/escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} - name: escape-string-regexp - version: 1.0.5 - engines: {node: '>=0.8.0'} - registry.npmmirror.com/escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} name: escape-string-regexp @@ -7911,18 +7912,18 @@ packages: esquery: registry.npmmirror.com/esquery@1.5.0 esutils: registry.npmmirror.com/esutils@2.0.3 file-entry-cache: registry.npmmirror.com/file-entry-cache@5.0.1 - functional-red-black-tree: registry.npmmirror.com/functional-red-black-tree@1.0.1 + functional-red-black-tree: 1.0.1 glob: 7.2.3 globals: registry.npmmirror.com/globals@11.12.0 ignore: registry.npmmirror.com/ignore@4.0.6 import-fresh: registry.npmmirror.com/import-fresh@3.3.0 imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 inquirer: registry.npmmirror.com/inquirer@6.5.2 - js-yaml: registry.npmmirror.com/js-yaml@3.14.1 + js-yaml: 3.14.1 json-stable-stringify-without-jsonify: registry.npmmirror.com/json-stable-stringify-without-jsonify@1.0.1 levn: registry.npmmirror.com/levn@0.3.0 lodash: 4.17.21 - minimatch: registry.npmmirror.com/minimatch@3.1.2 + minimatch: 3.1.2 mkdirp: registry.npmmirror.com/mkdirp@0.5.6 natural-compare: registry.npmmirror.com/natural-compare@1.4.0 optionator: registry.npmmirror.com/optionator@0.8.3 @@ -7930,8 +7931,8 @@ packages: progress: registry.npmmirror.com/progress@2.0.3 regexpp: registry.npmmirror.com/regexpp@2.0.1 semver: 5.7.2 - strip-ansi: registry.npmmirror.com/strip-ansi@4.0.0 - strip-json-comments: registry.npmmirror.com/strip-json-comments@2.0.1 + strip-ansi: 4.0.0 + strip-json-comments: 2.0.1 table: registry.npmmirror.com/table@5.4.6 text-table: registry.npmmirror.com/text-table@0.2.0 transitivePeerDependencies: @@ -8062,31 +8063,31 @@ packages: name: ethers version: 5.7.2 dependencies: - '@ethersproject/abi': registry.npmmirror.com/@ethersproject/abi@5.7.0 + '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': registry.npmmirror.com/@ethersproject/abstract-provider@5.7.0 '@ethersproject/abstract-signer': registry.npmmirror.com/@ethersproject/abstract-signer@5.7.0 - '@ethersproject/address': registry.npmmirror.com/@ethersproject/address@5.7.0 + '@ethersproject/address': 5.7.0 '@ethersproject/base64': registry.npmmirror.com/@ethersproject/base64@5.7.0 '@ethersproject/basex': registry.npmmirror.com/@ethersproject/basex@5.7.0 - '@ethersproject/bignumber': registry.npmmirror.com/@ethersproject/bignumber@5.7.0 - '@ethersproject/bytes': registry.npmmirror.com/@ethersproject/bytes@5.7.0 - '@ethersproject/constants': registry.npmmirror.com/@ethersproject/constants@5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 '@ethersproject/contracts': registry.npmmirror.com/@ethersproject/contracts@5.7.0 - '@ethersproject/hash': registry.npmmirror.com/@ethersproject/hash@5.7.0 + '@ethersproject/hash': 5.7.0 '@ethersproject/hdnode': registry.npmmirror.com/@ethersproject/hdnode@5.7.0 '@ethersproject/json-wallets': registry.npmmirror.com/@ethersproject/json-wallets@5.7.0 - '@ethersproject/keccak256': registry.npmmirror.com/@ethersproject/keccak256@5.7.0 - '@ethersproject/logger': registry.npmmirror.com/@ethersproject/logger@5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 '@ethersproject/networks': registry.npmmirror.com/@ethersproject/networks@5.7.1 '@ethersproject/pbkdf2': registry.npmmirror.com/@ethersproject/pbkdf2@5.7.0 - '@ethersproject/properties': registry.npmmirror.com/@ethersproject/properties@5.7.0 - '@ethersproject/providers': registry.npmmirror.com/@ethersproject/providers@5.7.2 + '@ethersproject/properties': 5.7.0 + '@ethersproject/providers': 5.7.2 '@ethersproject/random': registry.npmmirror.com/@ethersproject/random@5.7.0 '@ethersproject/rlp': registry.npmmirror.com/@ethersproject/rlp@5.7.0 '@ethersproject/sha2': registry.npmmirror.com/@ethersproject/sha2@5.7.0 '@ethersproject/signing-key': registry.npmmirror.com/@ethersproject/signing-key@5.7.0 '@ethersproject/solidity': registry.npmmirror.com/@ethersproject/solidity@5.7.0 - '@ethersproject/strings': registry.npmmirror.com/@ethersproject/strings@5.7.0 + '@ethersproject/strings': 5.7.0 '@ethersproject/transactions': registry.npmmirror.com/@ethersproject/transactions@5.7.0 '@ethersproject/units': registry.npmmirror.com/@ethersproject/units@5.7.0 '@ethersproject/wallet': registry.npmmirror.com/@ethersproject/wallet@5.7.0 @@ -8212,7 +8213,7 @@ packages: name: filelist version: 1.0.4 dependencies: - minimatch: registry.npmmirror.com/minimatch@5.1.6 + minimatch: 5.1.6 registry.npmmirror.com/fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} @@ -8240,15 +8241,6 @@ packages: path-exists: registry.npmmirror.com/path-exists@4.0.0 dev: true - registry.npmmirror.com/find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/find-up/-/find-up-6.3.0.tgz} - name: find-up - version: 6.3.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - locate-path: registry.npmmirror.com/locate-path@7.2.0 - path-exists: registry.npmmirror.com/path-exists@5.0.0 - registry.npmmirror.com/flat-cache@2.0.1: resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-2.0.1.tgz} name: flat-cache @@ -8256,7 +8248,7 @@ packages: engines: {node: '>=4'} dependencies: flatted: registry.npmmirror.com/flatted@2.0.2 - rimraf: registry.npmmirror.com/rimraf@2.6.3 + rimraf: 2.6.3 write: registry.npmmirror.com/write@1.0.3 dev: true @@ -8298,11 +8290,13 @@ packages: graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 jsonfile: registry.npmmirror.com/jsonfile@4.0.0 universalify: registry.npmmirror.com/universalify@0.1.2 + dev: true registry.npmmirror.com/fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} name: fs.realpath version: 1.0.0 + dev: true registry.npmmirror.com/function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} @@ -8310,18 +8304,6 @@ packages: version: 1.1.1 dev: true - registry.npmmirror.com/functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz} - name: functional-red-black-tree - version: 1.0.1 - dev: true - - registry.npmmirror.com/get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz} - name: get-caller-file - version: 2.0.5 - engines: {node: 6.* || 8.* || >= 10.*} - registry.npmmirror.com/get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} name: get-stream @@ -8362,6 +8344,7 @@ packages: minimatch: registry.npmmirror.com/minimatch@3.1.2 once: registry.npmmirror.com/once@1.4.0 path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: true registry.npmmirror.com/glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} @@ -8382,11 +8365,11 @@ packages: version: 8.1.0 engines: {node: '>=12'} dependencies: - fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 - inflight: registry.npmmirror.com/inflight@1.0.6 - inherits: registry.npmmirror.com/inherits@2.0.4 - minimatch: registry.npmmirror.com/minimatch@5.1.6 - once: registry.npmmirror.com/once@1.4.0 + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 registry.npmmirror.com/globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} @@ -8422,6 +8405,7 @@ packages: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} name: graceful-fs version: 4.2.11 + dev: true registry.npmmirror.com/grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz} @@ -8429,12 +8413,6 @@ packages: version: 1.0.4 dev: true - registry.npmmirror.com/has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} - name: has-flag - version: 3.0.0 - engines: {node: '>=4'} - registry.npmmirror.com/has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} name: has-flag @@ -8450,23 +8428,6 @@ packages: function-bind: registry.npmmirror.com/function-bind@1.1.1 dev: true - registry.npmmirror.com/hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz} - name: hash.js - version: 1.1.7 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - - registry.npmmirror.com/hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz} - name: hmac-drbg - version: 1.0.1 - dependencies: - hash.js: registry.npmmirror.com/hash.js@1.1.7 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 - registry.npmmirror.com/human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz} name: human-signals @@ -8521,16 +8482,13 @@ packages: dependencies: once: registry.npmmirror.com/once@1.4.0 wrappy: registry.npmmirror.com/wrappy@1.0.2 - - registry.npmmirror.com/inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz} - name: inherits - version: 2.0.3 + dev: true registry.npmmirror.com/inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} name: inherits version: 2.0.4 + dev: true registry.npmmirror.com/ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} @@ -8554,7 +8512,7 @@ packages: mute-stream: registry.npmmirror.com/mute-stream@0.0.7 run-async: registry.npmmirror.com/run-async@2.4.1 rxjs: registry.npmmirror.com/rxjs@6.6.7 - string-width: registry.npmmirror.com/string-width@2.1.1 + string-width: 2.1.1 strip-ansi: 5.2.0 through: registry.npmmirror.com/through@2.3.8 dev: true @@ -8594,18 +8552,12 @@ packages: version: 2.1.1 engines: {node: '>=0.10.0'} - registry.npmmirror.com/is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz} - name: is-fullwidth-code-point - version: 2.0.0 - engines: {node: '>=4'} - dev: true - registry.npmmirror.com/is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} name: is-fullwidth-code-point version: 3.0.0 engines: {node: '>=8'} + dev: true registry.npmmirror.com/is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} @@ -8664,9 +8616,9 @@ packages: hasBin: true dependencies: async: registry.npmmirror.com/async@3.2.4 - chalk: registry.npmmirror.com/chalk@4.1.2 + chalk: 4.1.2 filelist: registry.npmmirror.com/filelist@1.0.4 - minimatch: registry.npmmirror.com/minimatch@3.1.2 + minimatch: 3.1.2 registry.npmmirror.com/js-base64@3.7.5: resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz} @@ -8683,6 +8635,7 @@ packages: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/js-sha3/-/js-sha3-0.8.0.tgz} name: js-sha3 version: 0.8.0 + dev: true registry.npmmirror.com/js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} @@ -8696,7 +8649,7 @@ packages: version: 3.14.1 hasBin: true dependencies: - argparse: registry.npmmirror.com/argparse@1.0.10 + argparse: 1.0.10 esprima: registry.npmmirror.com/esprima@4.0.1 dev: true @@ -8744,6 +8697,7 @@ packages: version: 4.0.0 optionalDependencies: graceful-fs: 4.2.11 + dev: true registry.npmmirror.com/keyv@4.5.3: resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/keyv/-/keyv-4.5.3.tgz} @@ -8789,14 +8743,6 @@ packages: p-locate: registry.npmmirror.com/p-locate@5.0.0 dev: true - registry.npmmirror.com/locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-7.2.0.tgz} - name: locate-path - version: 7.2.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-locate: registry.npmmirror.com/p-locate@6.0.0 - registry.npmmirror.com/lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} name: lodash.camelcase @@ -8817,6 +8763,7 @@ packages: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} name: lodash version: 4.17.21 + dev: true registry.npmmirror.com/long@5.2.3: resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/long/-/long-5.2.3.tgz} @@ -8873,30 +8820,13 @@ packages: engines: {node: '>=10'} dev: false - registry.npmmirror.com/minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} - name: minimalistic-assert - version: 1.0.1 - - registry.npmmirror.com/minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz} - name: minimalistic-crypto-utils - version: 1.0.1 - registry.npmmirror.com/minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} name: minimatch version: 3.1.2 dependencies: brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 - - registry.npmmirror.com/minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz} - name: minimatch - version: 5.1.6 - engines: {node: '>=10'} - dependencies: - brace-expansion: registry.npmmirror.com/brace-expansion@2.0.1 + dev: true registry.npmmirror.com/minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} @@ -9022,6 +8952,7 @@ packages: version: 1.4.0 dependencies: wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: true registry.npmmirror.com/onetime@2.0.1: resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz} @@ -9082,14 +9013,6 @@ packages: yocto-queue: registry.npmmirror.com/yocto-queue@0.1.0 dev: true - registry.npmmirror.com/p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-4.0.0.tgz} - name: p-limit - version: 4.0.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - yocto-queue: registry.npmmirror.com/yocto-queue@1.0.0 - registry.npmmirror.com/p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} name: p-locate @@ -9099,14 +9022,6 @@ packages: p-limit: registry.npmmirror.com/p-limit@3.1.0 dev: true - registry.npmmirror.com/p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-6.0.0.tgz} - name: p-locate - version: 6.0.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - p-limit: registry.npmmirror.com/p-limit@4.0.0 - registry.npmmirror.com/p-retry@5.1.2: resolution: {integrity: sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/p-retry/-/p-retry-5.1.2.tgz} name: p-retry @@ -9142,17 +9057,12 @@ packages: engines: {node: '>=8'} dev: true - registry.npmmirror.com/path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-5.0.0.tgz} - name: path-exists - version: 5.0.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - registry.npmmirror.com/path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} name: path-is-absolute version: 1.0.1 engines: {node: '>=0.10.0'} + dev: true registry.npmmirror.com/path-is-inside@1.0.2: resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz} @@ -9349,7 +9259,7 @@ packages: version: 3.0.0 dependencies: end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - once: registry.npmmirror.com/once@1.4.0 + once: 1.4.0 dev: false registry.npmmirror.com/punycode@2.3.0: @@ -9373,18 +9283,7 @@ packages: deep-extend: registry.npmmirror.com/deep-extend@0.6.0 ini: registry.npmmirror.com/ini@1.3.8 minimist: registry.npmmirror.com/minimist@1.2.8 - strip-json-comments: registry.npmmirror.com/strip-json-comments@2.0.1 - dev: false - - registry.npmmirror.com/readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} - name: readable-stream - version: 3.6.2 - engines: {node: '>= 6'} - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - string_decoder: registry.npmmirror.com/string_decoder@1.3.0 - util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + strip-json-comments: 2.0.1 dev: false registry.npmmirror.com/readdirp@3.6.0: @@ -9415,18 +9314,6 @@ packages: engines: {node: '>=8'} dev: true - registry.npmmirror.com/require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} - name: require-directory - version: 2.1.1 - engines: {node: '>=0.10.0'} - - registry.npmmirror.com/require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} - name: require-from-string - version: 2.0.2 - engines: {node: '>=0.10.0'} - registry.npmmirror.com/resolve-from@3.0.0: resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-3.0.0.tgz} name: resolve-from @@ -9475,15 +9362,6 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - registry.npmmirror.com/rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-2.6.3.tgz} - name: rimraf - version: 2.6.3 - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - registry.npmmirror.com/rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} name: rimraf @@ -9542,17 +9420,6 @@ packages: tslib: registry.npmmirror.com/tslib@2.6.2 dev: true - registry.npmmirror.com/safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} - name: safe-buffer - version: 5.2.1 - dev: false - - registry.npmmirror.com/scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/scrypt-js/-/scrypt-js-3.0.1.tgz} - name: scrypt-js - version: 3.0.1 - registry.npmmirror.com/semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz} name: semver @@ -9622,7 +9489,7 @@ packages: version: 4.0.1 dependencies: decompress-response: registry.npmmirror.com/decompress-response@6.0.0 - once: registry.npmmirror.com/once@1.4.0 + once: 1.4.0 simple-concat: registry.npmmirror.com/simple-concat@1.0.1 dev: false @@ -9641,7 +9508,7 @@ packages: dependencies: ansi-styles: 3.2.1 astral-regex: registry.npmmirror.com/astral-regex@1.0.0 - is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@2.0.0 + is-fullwidth-code-point: 2.0.0 dev: true registry.npmmirror.com/slice-ansi@4.0.0: @@ -9650,9 +9517,9 @@ packages: version: 4.0.0 engines: {node: '>=10'} dependencies: - ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + ansi-styles: 4.3.0 astral-regex: registry.npmmirror.com/astral-regex@2.0.0 - is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + is-fullwidth-code-point: 3.0.0 registry.npmmirror.com/solhint-config-mud@2.0.0-next.4: resolution: {integrity: sha512-Bog2Ce4ztgyxuQqs/qZwZ3rKQdSzc/eL3zypdN8lAP2t00EmWeLpz7d5v277Vcwj8hGe+sCZpqSEoJEiuayHpw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/solhint-config-mud/-/solhint-config-mud-2.0.0-next.4.tgz} @@ -9729,27 +9596,6 @@ packages: name: string-format version: 2.0.0 - registry.npmmirror.com/string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz} - name: string-width - version: 2.1.1 - engines: {node: '>=4'} - dependencies: - is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@2.0.0 - strip-ansi: 4.0.0 - dev: true - - registry.npmmirror.com/string-width@3.1.0: - resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-3.1.0.tgz} - name: string-width - version: 3.1.0 - engines: {node: '>=6'} - dependencies: - emoji-regex: registry.npmmirror.com/emoji-regex@7.0.3 - is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@2.0.0 - strip-ansi: 5.2.0 - dev: true - registry.npmmirror.com/string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} name: string-width @@ -9759,22 +9605,6 @@ packages: emoji-regex: registry.npmmirror.com/emoji-regex@8.0.0 is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - - registry.npmmirror.com/string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} - name: string_decoder - version: 1.3.0 - dependencies: - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz} - name: strip-ansi - version: 4.0.0 - engines: {node: '>=4'} - dependencies: - ansi-regex: registry.npmmirror.com/ansi-regex@3.0.1 dev: true registry.npmmirror.com/strip-ansi@6.0.1: @@ -9784,14 +9614,7 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 - - registry.npmmirror.com/strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz} - name: strip-ansi - version: 7.1.0 - engines: {node: '>=12'} - dependencies: - ansi-regex: registry.npmmirror.com/ansi-regex@6.0.1 + dev: true registry.npmmirror.com/strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz} @@ -9799,12 +9622,6 @@ packages: version: 3.0.0 engines: {node: '>=12'} - registry.npmmirror.com/strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz} - name: strip-json-comments - version: 2.0.1 - engines: {node: '>=0.10.0'} - registry.npmmirror.com/strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz} name: strip-json-comments @@ -9821,14 +9638,6 @@ packages: copy-anything: registry.npmmirror.com/copy-anything@3.0.5 dev: false - registry.npmmirror.com/supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} - name: supports-color - version: 5.5.0 - engines: {node: '>=4'} - dependencies: - has-flag: registry.npmmirror.com/has-flag@3.0.0 - registry.npmmirror.com/supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} name: supports-color @@ -9873,7 +9682,7 @@ packages: ajv: registry.npmmirror.com/ajv@6.12.6 lodash: 4.17.21 slice-ansi: registry.npmmirror.com/slice-ansi@2.1.0 - string-width: registry.npmmirror.com/string-width@3.1.0 + string-width: 3.1.0 dev: true registry.npmmirror.com/table@6.8.1: @@ -9885,8 +9694,8 @@ packages: ajv: registry.npmmirror.com/ajv@8.12.0 lodash.truncate: registry.npmmirror.com/lodash.truncate@4.4.2 slice-ansi: registry.npmmirror.com/slice-ansi@4.0.0 - string-width: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 registry.npmmirror.com/tailwind-merge@1.14.0: resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/tailwind-merge/-/tailwind-merge-1.14.0.tgz} @@ -9914,8 +9723,8 @@ packages: bl: registry.npmmirror.com/bl@4.1.0 end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 fs-constants: registry.npmmirror.com/fs-constants@1.0.0 - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + inherits: 2.0.4 + readable-stream: 3.6.2 dev: false registry.npmmirror.com/text-table@0.2.0: @@ -10006,7 +9815,7 @@ packages: name: tunnel-agent version: 0.6.0 dependencies: - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + safe-buffer: 5.2.1 dev: false registry.npmmirror.com/type-check@0.3.2: @@ -10068,11 +9877,11 @@ packages: typescript: '>=4.3.0' dependencies: '@types/prettier': registry.npmmirror.com/@types/prettier@2.7.3 - debug: registry.npmmirror.com/debug@4.3.4 - fs-extra: registry.npmmirror.com/fs-extra@7.0.1 - glob: registry.npmmirror.com/glob@7.1.7 - js-sha3: registry.npmmirror.com/js-sha3@0.8.0 - lodash: registry.npmmirror.com/lodash@4.17.21 + debug: 4.3.4(supports-color@8.1.1) + fs-extra: 7.0.1 + glob: 7.1.7 + js-sha3: 0.8.0 + lodash: 4.17.21 mkdirp: registry.npmmirror.com/mkdirp@1.0.4 prettier: registry.npmmirror.com/prettier@2.8.8 ts-command-line-args: registry.npmmirror.com/ts-command-line-args@2.5.1 @@ -10105,6 +9914,7 @@ packages: name: universalify version: 0.1.2 engines: {node: '>= 4.0.0'} + dev: true registry.npmmirror.com/uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} @@ -10138,18 +9948,12 @@ packages: react: 18.2.0 dev: false - registry.npmmirror.com/util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} - name: util-deprecate - version: 1.0.2 - dev: false - registry.npmmirror.com/util@0.10.4: resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/util/-/util-0.10.4.tgz} name: util version: 0.10.4 dependencies: - inherits: registry.npmmirror.com/inherits@2.0.3 + inherits: 2.0.3 registry.npmmirror.com/viem@1.6.0(typescript@5.1.6)(zod@3.22.2): resolution: {integrity: sha512-ae9Twkd0q2Qlj4yYpWjb4DzYAhKY0ibEpRH8FJaTywZXNpTjFidSdBaT0CVn1BaH7O7cnX4/O47zvDUMGJD1AA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/viem/-/viem-1.6.0.tgz} @@ -10178,7 +9982,7 @@ packages: - utf-8-validate - zod - registry.npmmirror.com/vite@4.2.1(@types/node@18.15.11)(sass@1.64.1): + registry.npmmirror.com/vite@4.2.1(@types/node@18.17.11)(sass@1.64.1): resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.2.1.tgz} id: registry.npmmirror.com/vite/4.2.1 name: vite @@ -10206,7 +10010,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.15.11 + '@types/node': 18.17.11 esbuild: registry.npmmirror.com/esbuild@0.17.19 postcss: registry.npmmirror.com/postcss@8.4.28 resolve: registry.npmmirror.com/resolve@1.22.4 @@ -10264,20 +10068,11 @@ packages: reduce-flatten: registry.npmmirror.com/reduce-flatten@2.0.0 typical: registry.npmmirror.com/typical@5.2.0 - registry.npmmirror.com/wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} - name: wrap-ansi - version: 7.0.0 - engines: {node: '>=10'} - dependencies: - ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 - string-width: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - registry.npmmirror.com/wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} name: wrappy version: 1.0.2 + dev: true registry.npmmirror.com/write@1.0.3: resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/write/-/write-1.0.3.tgz} @@ -10316,36 +10111,24 @@ packages: utf-8-validate: optional: true - registry.npmmirror.com/y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} - name: y18n - version: 5.0.8 - engines: {node: '>=10'} - registry.npmmirror.com/yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} name: yallist version: 4.0.0 - registry.npmmirror.com/yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz} - name: yargs-parser - version: 21.1.1 - engines: {node: '>=12'} - registry.npmmirror.com/yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz} name: yargs version: 17.7.2 engines: {node: '>=12'} dependencies: - cliui: registry.npmmirror.com/cliui@8.0.1 - escalade: registry.npmmirror.com/escalade@3.1.1 - get-caller-file: registry.npmmirror.com/get-caller-file@2.0.5 - require-directory: registry.npmmirror.com/require-directory@2.1.1 - string-width: registry.npmmirror.com/string-width@4.2.3 - y18n: registry.npmmirror.com/y18n@5.0.8 - yargs-parser: registry.npmmirror.com/yargs-parser@21.1.1 + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 registry.npmmirror.com/yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} @@ -10354,12 +10137,6 @@ packages: engines: {node: '>=10'} dev: true - registry.npmmirror.com/yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-1.0.0.tgz} - name: yocto-queue - version: 1.0.0 - engines: {node: '>=12.20'} - registry.npmmirror.com/zod-validation-error@1.5.0(zod@3.22.2): resolution: {integrity: sha512-/7eFkAI4qV0tcxMBB/3+d2c1P6jzzZYdYSlBuAklzMuCrJu5bzJfHS0yVAS87dRHVlhftd6RFJDIvv03JgkSbw==, registry: https://registry.npmjs.org/, tarball: https://registry.npmmirror.com/zod-validation-error/-/zod-validation-error-1.5.0.tgz} id: registry.npmmirror.com/zod-validation-error/1.5.0