diff --git a/.prettierignore b/.prettierignore index 555c6339..edb37d5e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -9,3 +9,4 @@ node_modules package-lock.json package.json typechain +tsconfig.json diff --git a/.solhintignore b/.solhintignore index 27e28572..6d436fbb 100644 --- a/.solhintignore +++ b/.solhintignore @@ -1,2 +1,4 @@ contracts/libraries/*.sol +contracts/tokens/*.sol contracts/Guardian.sol +contracts/Token.sol diff --git a/abi/Ask.json b/abi/Ask.json index aa46239f..24ea9095 100644 --- a/abi/Ask.json +++ b/abi/Ask.json @@ -72,52 +72,6 @@ "stateMutability": "pure", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint72", - "name": "identityId", - "type": "uint72" - }, - { - "internalType": "uint96", - "name": "oldAsk", - "type": "uint96" - }, - { - "internalType": "uint96", - "name": "newAsk", - "type": "uint96" - } - ], - "name": "onAskChanged", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint72", - "name": "identityId", - "type": "uint72" - }, - { - "internalType": "uint96", - "name": "oldStake", - "type": "uint96" - }, - { - "internalType": "uint96", - "name": "newStake", - "type": "uint96" - } - ], - "name": "onStakeChanged", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [], "name": "parametersStorage", @@ -144,6 +98,13 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "recalculateActiveSet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { diff --git a/contracts/Ask.sol b/contracts/Ask.sol index 3d579a08..11df8577 100644 --- a/contracts/Ask.sol +++ b/contracts/Ask.sol @@ -41,114 +41,49 @@ contract Ask is INamed, IVersioned, ContractStatus, IInitializable { return _VERSION; } - function onStakeChanged(uint72 identityId, uint96 oldStake, uint96 newStake) external onlyContracts { - ParametersStorage params = parametersStorage; + function recalculateActiveSet() external onlyContracts { AskStorage ass = askStorage; - - uint96 nodeAsk = profileStorage.getAsk(identityId); - - uint96 minimumStake = params.minimumStake(); - uint96 maximumStake = params.maximumStake(); - - uint96 oldStakeAdj = oldStake <= maximumStake ? oldStake : maximumStake; - uint96 newStakeAdj = newStake <= maximumStake ? newStake : maximumStake; - - uint256 oldWeightedAsk = uint256(nodeAsk) * oldStakeAdj; - uint256 newWeightedAsk = uint256(nodeAsk) * newStakeAdj; - - bool wasInShardingTable = oldStake >= minimumStake; - - if (wasInShardingTable && newStake < minimumStake) { - ass.decreaseWeightedActiveAskSum(oldWeightedAsk); - ass.setPrevTotalActiveStake(ass.totalActiveStake()); - ass.decreaseTotalActiveStake(oldStake); - return; - } - - if (oldStake >= maximumStake && newStake >= maximumStake) { - return; - } - - uint256 weightedActiveAskSum = ass.weightedActiveAskSum(); - if (weightedActiveAskSum == 0) { - ass.setPrevWeightedActiveAskSum(newWeightedAsk); - ass.setPrevTotalActiveStake(newStakeAdj); - ass.setTotalActiveStake(newStakeAdj); - ass.setWeightedActiveAskSum(newWeightedAsk); - return; - } - - ass.setPrevTotalActiveStake(newStakeAdj); - ass.setPrevWeightedActiveAskSum(weightedActiveAskSum); - if (wasInShardingTable) { - ass.decreaseTotalActiveStake(oldStake); - ass.decreaseWeightedActiveAskSum(oldWeightedAsk); - } - ass.increaseTotalActiveStake(newStake); - ass.increaseWeightedActiveAskSum(newWeightedAsk); - } - - function onAskChanged(uint72 identityId, uint96 oldAsk, uint96 newAsk) external onlyContracts { + ShardingTableStorage sts = shardingTableStorage; StakingStorage ss = stakingStorage; ParametersStorage params = parametersStorage; - ShardingTableStorage sts = shardingTableStorage; ProfileStorage ps = profileStorage; - AskStorage ass = askStorage; - uint96 currentStake = stakingStorage.getNodeStake(identityId); - - if (currentStake < params.minimumStake()) { - return; - } + ass.setPrevWeightedActiveAskSum(ass.weightedActiveAskSum()); + ass.setPrevTotalActiveStake(ass.totalActiveStake()); + uint96 minimumStake = params.minimumStake(); uint96 maximumStake = params.maximumStake(); - uint96 stake = currentStake <= maximumStake ? currentStake : maximumStake; - uint256 newWeightedAsk = uint256(stake) * newAsk; - - uint256 weightedActiveAskSum = ass.weightedActiveAskSum(); - if (weightedActiveAskSum == 0) { - ass.setWeightedActiveAskSum(newWeightedAsk); - ass.setPrevWeightedActiveAskSum(newWeightedAsk); - ass.setPrevTotalActiveStake(stake); - ass.setTotalActiveStake(stake); - return; - } - - (uint256 oldLowerBound, uint256 oldUpperBound) = ass.getAskBounds(); - - bool isActive = false; - if (uint256(newAsk) * 1e18 <= oldUpperBound && uint256(newAsk) * 1e18 >= oldLowerBound) { - ass.setPrevWeightedActiveAskSum(weightedActiveAskSum); - isActive = true; - } else if (uint256(oldAsk) * 1e18 <= oldUpperBound && uint256(oldAsk) * 1e18 >= oldLowerBound) { - ass.setPrevTotalActiveStake(stake); - ass.setPrevWeightedActiveAskSum(weightedActiveAskSum); - ass.decreaseTotalActiveStake(stake); - ass.decreaseWeightedActiveAskSum(uint256(oldAsk) * stake); - } - if (isActive) { - ass.setPrevTotalActiveStake(ass.totalActiveStake()); + uint256 askLowerBound; + uint256 askUpperBound; - uint256 newWeightedActiveAskSum = 0; - uint96 newTotalActiveStake = 0; + if (ass.prevTotalActiveStake() > 0 && ass.prevWeightedActiveAskSum() > 0) { + (askLowerBound, askUpperBound) = ass.getAskBounds(); + } else { + (askLowerBound, askUpperBound) = (0, type(uint256).max); + } - (uint256 newLowerBound, uint256 newUpperBound) = ass.getAskBounds(); + uint256 newWeightedActiveAskSum; + uint96 newTotalActiveStake; - uint72 nodesCount = shardingTableStorage.nodesCount(); - for (uint72 i; i < nodesCount; i++) { - uint72 nextIdentityId = sts.indexToIdentityId(i); - uint256 nodeAsk = uint256(ps.getAsk(nextIdentityId)); + uint72 count = sts.nodesCount(); + for (uint72 i; i < count; i++) { + uint72 nodeIdentityId = sts.indexToIdentityId(i); + uint96 stake = ss.getNodeStake(nodeIdentityId); - if (nodeAsk * 1e18 <= newUpperBound && nodeAsk * 1e18 >= newLowerBound) { - uint96 nodeStake = ss.getNodeStake(nextIdentityId); - newWeightedActiveAskSum += (nodeAsk * nodeStake); - newTotalActiveStake += nodeStake; - } + if (stake < minimumStake) { + continue; } - ass.setWeightedActiveAskSum(newWeightedActiveAskSum); - ass.setTotalActiveStake(newTotalActiveStake); + stake = stake > maximumStake ? maximumStake : stake; + uint256 nodeAskScaled = uint256(ps.getAsk(nodeIdentityId)) * 1e18; + if (nodeAskScaled >= askLowerBound && nodeAskScaled <= askUpperBound) { + newWeightedActiveAskSum += (nodeAskScaled / 1e18) * stake; + newTotalActiveStake += stake; + } } + + ass.setWeightedActiveAskSum(newWeightedActiveAskSum); + ass.setTotalActiveStake(newTotalActiveStake); } } diff --git a/contracts/Profile.sol b/contracts/Profile.sol index 0e7e0f81..ba4ef87b 100644 --- a/contracts/Profile.sol +++ b/contracts/Profile.sol @@ -119,10 +119,9 @@ contract Profile is INamed, IVersioned, ContractStatus, IInitializable { revert ProfileLib.AskUpdateOnCooldown(identityId, ps.askUpdateCooldown(identityId)); } - uint96 oldAsk = ps.getAsk(identityId); ps.setAsk(identityId, ask); ps.setAskUpdateCooldown(identityId, block.timestamp + parametersStorage.nodeAskUpdateDelay()); - askContract.onAskChanged(identityId, oldAsk, ask); + askContract.recalculateActiveSet(); } function updateOperatorFee(uint72 identityId, uint16 newOperatorFee) external onlyAdmin(identityId) { diff --git a/contracts/Staking.sol b/contracts/Staking.sol index 227142e6..b6f42598 100644 --- a/contracts/Staking.sol +++ b/contracts/Staking.sol @@ -100,7 +100,7 @@ contract Staking is INamed, IVersioned, ContractStatus, IInitializable { _addNodeToShardingTable(identityId, totalNodeStakeAfter); - askContract.onStakeChanged(identityId, totalNodeStakeBefore, totalNodeStakeAfter); + askContract.recalculateActiveSet(); token.transferFrom(msg.sender, address(ss), addedStake); } @@ -155,7 +155,7 @@ contract Staking is INamed, IVersioned, ContractStatus, IInitializable { _removeNodeFromShardingTable(fromIdentityId, totalFromNodeStakeAfter); - ask.onStakeChanged(fromIdentityId, totalFromNodeStakeBefore, totalFromNodeStakeAfter); + ask.recalculateActiveSet(); if (stakeAmount > delegatorStakeIndexed) { ss.increaseDelegatorStakeBase(toIdentityId, delegatorKey, (delegatorStakeBase - newDelegatorStakeBase)); @@ -169,7 +169,7 @@ contract Staking is INamed, IVersioned, ContractStatus, IInitializable { _addNodeToShardingTable(toIdentityId, totalToNodeStakeAfter); - ask.onStakeChanged(toIdentityId, totalToNodeStakeBefore, totalToNodeStakeAfter); + ask.recalculateActiveSet(); } function requestWithdrawal(uint72 identityId, uint96 removedStake) external profileExists(identityId) { @@ -210,7 +210,7 @@ contract Staking is INamed, IVersioned, ContractStatus, IInitializable { _removeNodeFromShardingTable(identityId, totalNodeStakeAfter); - askContract.onStakeChanged(identityId, totalNodeStakeBefore, totalNodeStakeAfter); + askContract.recalculateActiveSet(); if (totalNodeStakeAfter >= parametersStorage.maximumStake()) { ss.addDelegatorCumulativePaidOutRewards( @@ -312,7 +312,7 @@ contract Staking is INamed, IVersioned, ContractStatus, IInitializable { _addNodeToShardingTable(identityId, totalNodeStakeAfter); - askContract.onStakeChanged(identityId, totalNodeStakeBefore, totalNodeStakeAfter); + askContract.recalculateActiveSet(); } function distributeRewards( @@ -353,7 +353,7 @@ contract Staking is INamed, IVersioned, ContractStatus, IInitializable { _addNodeToShardingTable(identityId, totalNodeStakeAfter); - askContract.onStakeChanged(identityId, totalNodeStakeBefore, totalNodeStakeAfter); + askContract.recalculateActiveSet(); } function restakeOperatorFee(uint72 identityId, uint96 addedStake) external onlyAdmin(identityId) { @@ -390,7 +390,7 @@ contract Staking is INamed, IVersioned, ContractStatus, IInitializable { _addNodeToShardingTable(identityId, totalNodeStakeAfter); - askContract.onStakeChanged(identityId, totalNodeStakeBefore, totalNodeStakeAfter); + askContract.recalculateActiveSet(); } function requestOperatorFeeWithdrawal(uint72 identityId, uint96 withdrawalAmount) external onlyAdmin(identityId) { diff --git a/contracts/paranets/ParanetNeuroIncentivesPool.sol b/contracts/paranets/ParanetNeuroIncentivesPool.sol index 43af89a5..09da4f68 100644 --- a/contracts/paranets/ParanetNeuroIncentivesPool.sol +++ b/contracts/paranets/ParanetNeuroIncentivesPool.sol @@ -224,21 +224,30 @@ contract ParanetNeuroIncentivesPool is INamed, IVersioned { return voters.length; } - function removeVoters(uint256 limit) external onlyVotersRegistrar { - require(voters.length >= limit, "Limit exceeds the num of voters"); +function removeVoters(uint256 limit) external onlyVotersRegistrar { + require(voters.length >= limit, "Limit exceeds the num of voters"); - for (uint256 i; i < limit; ) { - cumulativeVotersWeight -= uint16(voters[voters.length - 1 - i].weight); + for (uint256 i; i < limit; ) { + uint256 lastIndex = voters.length - 1 - i; + address voterToRemove = voters[lastIndex].addr; - delete votersIndexes[voters[voters.length - 1 - i].addr]; - voters.pop(); + cumulativeVotersWeight -= uint16(voters[lastIndex].weight); - unchecked { - i++; - } + // If the voter to remove is not the last one, swap it with the last one + if (lastIndex != voters.length - 1) { + voters[lastIndex] = voters[voters.length - 1]; + votersIndexes[voters[lastIndex].addr] = lastIndex; } - } + // Remove the last voter + voters.pop(); + delete votersIndexes[voterToRemove]; + + unchecked { + i++; + } + } +} function isKnowledgeMiner(address addr) public view returns (bool) { return paranetsRegistry.isKnowledgeMinerRegistered(parentParanetId, addr); } @@ -268,29 +277,37 @@ contract ParanetNeuroIncentivesPool is INamed, IVersioned { return neuroEmissionMultipliers[0].multiplier; } - function initiateNeuroEmissionMultiplierUpdate(uint256 newMultiplier) external onlyVotersRegistrar { - if (!neuroEmissionMultipliers[neuroEmissionMultipliers.length - 1].finalized) { - neuroEmissionMultipliers[neuroEmissionMultipliers.length - 1].multiplier = newMultiplier; - neuroEmissionMultipliers[neuroEmissionMultipliers.length - 1].timestamp = - block.timestamp + - neuroEmissionMultiplierUpdateDelay; - } else { - neuroEmissionMultipliers.push( - ParanetLib.NeuroEmissionMultiplier({ - multiplier: newMultiplier, - timestamp: block.timestamp + neuroEmissionMultiplierUpdateDelay, - finalized: false - }) - ); - } + function initiateNeuroEmissionMultiplierUpdate(uint256 newMultiplier) external onlyVotersRegistrar { + // Define reasonable bounds for the multiplier + uint256 MIN_MULTIPLIER = 1; // Example minimum value + uint256 MAX_MULTIPLIER = 10**18; // Example maximum value, adjust as needed - emit NeuroEmissionMultiplierUpdateInitiated( - neuroEmissionMultipliers[neuroEmissionMultipliers.length - 2].multiplier, - newMultiplier, - block.timestamp + neuroEmissionMultiplierUpdateDelay + // Validate the new multiplier + require(newMultiplier >= MIN_MULTIPLIER, "Multiplier must be greater than or equal to minimum value"); + require(newMultiplier <= MAX_MULTIPLIER, "Multiplier exceeds maximum allowed value"); + + if (!neuroEmissionMultipliers[neuroEmissionMultipliers.length - 1].finalized) { + neuroEmissionMultipliers[neuroEmissionMultipliers.length - 1].multiplier = newMultiplier; + neuroEmissionMultipliers[neuroEmissionMultipliers.length - 1].timestamp = + block.timestamp + + neuroEmissionMultiplierUpdateDelay; + } else { + neuroEmissionMultipliers.push( + ParanetLib.NeuroEmissionMultiplier({ + multiplier: newMultiplier, + timestamp: block.timestamp + neuroEmissionMultiplierUpdateDelay, + finalized: false + }) ); } + emit NeuroEmissionMultiplierUpdateInitiated( + neuroEmissionMultipliers[neuroEmissionMultipliers.length - 2].multiplier, + newMultiplier, + block.timestamp + neuroEmissionMultiplierUpdateDelay + ); +} + function finalizeNeuroEmissionMultiplierUpdate() external onlyVotersRegistrar { require(neuroEmissionMultipliers.length > 0, "No emission multiplier updates"); require( diff --git a/custom_types/assertion-tools.d.ts b/custom_types/assertion-tools.d.ts deleted file mode 100644 index 4d0d827a..00000000 --- a/custom_types/assertion-tools.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { BytesLike } from 'ethers'; - -declare module 'assertion-tools' { - export function calculateRoot(nQuads: string[]): BytesLike; - export function getMerkleProof(nQuads: string[], challenge: number): { proof: BytesLike[]; leaf: BytesLike }; -} diff --git a/deploy/100_set_neuro_erc20.ts b/deploy/100_set_neuro_erc20.ts new file mode 100644 index 00000000..c92870c2 --- /dev/null +++ b/deploy/100_set_neuro_erc20.ts @@ -0,0 +1,23 @@ +import { HardhatRuntimeEnvironment } from 'hardhat/types'; +import { DeployFunction } from 'hardhat-deploy/types'; + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const neuroERC20Exists = hre.helpers.inConfig('NeurowebERC20'); + if (neuroERC20Exists) { + const hubAddress = + hre.helpers.contractDeployments.contracts['Hub'].evmAddress; + const Hub = await hre.ethers.getContractAt('Hub', hubAddress); + + const tokenInHub = await Hub['isContract(string)']('NeurowebERC20'); + if (!tokenInHub) { + hre.helpers.newContracts.push({ + name: 'NeurowebERC20', + addr: hre.helpers.contractDeployments.contracts['NeurowebERC20'] + .evmAddress, + }); + } + } +}; +export default func; +func.tags = ['Neuro']; +func.dependencies = ['Hub']; diff --git a/deploy/998_initialize_contracts.ts b/deploy/998_initialize_contracts.ts index 2b0b3003..24326d82 100644 --- a/deploy/998_initialize_contracts.ts +++ b/deploy/998_initialize_contracts.ts @@ -38,7 +38,7 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { if ( !noChangesWereMade && - !['development', 'mainnet'].includes(hre.network.config.environment) + !['development'].includes(hre.network.config.environment) ) { const hubAddress = hre.helpers.contractDeployments.contracts['Hub'].evmAddress; diff --git a/deployments/base_mainnet_contracts.json b/deployments/base_mainnet_contracts.json index 8a7f9acd..6bbe24e5 100644 --- a/deployments/base_mainnet_contracts.json +++ b/deployments/base_mainnet_contracts.json @@ -1,198 +1,199 @@ { - "contracts": { - "Token": { - "deployed": true, - "evmAddress": "0xa81a52b4dda010896cdd386c7fbdc5cdc835ba23" - }, - "NeurowebERC20": { - "deployed": true, - "evmAddress": "0x2548c27A04e49B412DD887b08d062D34C72ad2B6" - }, - "OldHub": { - "evmAddress": "0xaBfcf2ad1718828E7D3ec20435b0d0b5EAfbDf2c" - }, - "OldIdentityStorage": { - "evmAddress": "0xD40c74f5D1Ee382deb63Fa92d7ff5bC65415bBEE" - }, - "Hub": { - "evmAddress": "0x99Aa571fD5e681c2D27ee08A7b7989DB02541d13", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189831, - "deploymentTimestamp": 1735169014502, - "deployed": true - }, - "ParametersStorage": { - "evmAddress": "0xdC6615170420b1DDF54812f4430B9cc71eD10099", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189835, - "deploymentTimestamp": 1735169022283, - "deployed": true - }, - "WhitelistStorage": { - "evmAddress": "0x5d7aCedD766b39aa6f20BC49D8F36D2665cdcEb2", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189840, - "deploymentTimestamp": 1735169032135, - "deployed": true - }, - "IdentityStorage": { - "evmAddress": "0xDc67F8Fc0021b20db24701dfA6E67E5739bf094b", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189844, - "deploymentTimestamp": 1735169040198, - "deployed": true - }, - "ShardingTableStorage": { - "evmAddress": "0xF59ca9Eb70D7af0700394924B1053548dE6aE7aF", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189848, - "deploymentTimestamp": 1735169048165, - "deployed": true - }, - "StakingStorage": { - "evmAddress": "0x57307C87E95a372C5D94BCC372bb7304505A739D", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189852, - "deploymentTimestamp": 1735169053403, - "deployed": true - }, - "ProfileStorage": { - "evmAddress": "0x62Ac6414857FAaa08eadA066F3370e7fB3010ed3", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189856, - "deploymentTimestamp": 1735169062573, - "deployed": true - }, - "Chronos": { - "evmAddress": "0x07B1442717bbeD003ab2B2165B1b020F3F6B924B", - "version": null, - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189860, - "deploymentTimestamp": 1735169070781, - "deployed": true - }, - "EpochStorageV6": { - "evmAddress": "0x390B6Dc895D5C815FDC85023d6FB1261fe62c9F7", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189864, - "deploymentTimestamp": 1735169080177, - "deployed": true - }, - "EpochStorageV8": { - "evmAddress": "0x271Dd66348844bbe1d8bf838a4DAE5b4B7f558A1", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189869, - "deploymentTimestamp": 1735169088758, - "deployed": true - }, - "KnowledgeCollectionStorage": { - "evmAddress": "0xc28F310A87f7621A087A603E2ce41C22523F11d7", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189873, - "deploymentTimestamp": 1735169097530, - "deployed": true - }, - "PaymasterManager": { - "evmAddress": "0x937f4A6299ae22DB3f1990aFff8513F2a181eA7C", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189877, - "deploymentTimestamp": 1735169102947, - "deployed": true - }, - "AskStorage": { - "evmAddress": "0x0E9822664F637c571797a4194Eb2e94271911176", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189879, - "deploymentTimestamp": 1735169111046, - "deployed": true - }, - "Identity": { - "evmAddress": "0x57fE6A6f56191bEcfAC857778FdB002803cd2EB2", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189884, - "deploymentTimestamp": 1735169119909, - "deployed": true - }, - "ShardingTable": { - "evmAddress": "0x825B05c8838A8D939EADd08D80e4bce980059b70", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189888, - "deploymentTimestamp": 1735169127961, - "deployed": true - }, - "Ask": { - "evmAddress": "0x6039122b2FF3678D80a1F962207c105ca712F631", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189892, - "deploymentTimestamp": 1735169135730, - "deployed": true - }, - "Staking": { - "evmAddress": "0x983925A4fe1537B6564fbAB478267A57cAff43f5", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189897, - "deploymentTimestamp": 1735169144332, - "deployed": true - }, - "Profile": { - "evmAddress": "0x4f8f617a278A42cCB864F3ac6Bfd3F84e754cd72", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189901, - "deploymentTimestamp": 1735169154140, - "deployed": true - }, - "KnowledgeCollection": { - "evmAddress": "0x0924BeF5F4fB8c72064781ff2a4a661e298c76FC", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189905, - "deploymentTimestamp": 1735169162103, - "deployed": true - }, - "Migrator": { - "evmAddress": "0xc6B8b1E3EFE8BE4dA79f3C2Cfc36d37d6F3DC8CB", - "version": null, - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 24189909, - "deploymentTimestamp": 1735169166389, - "deployed": true + "contracts": { + "Token": { + "deployed": true, + "evmAddress": "0xa81a52b4dda010896cdd386c7fbdc5cdc835ba23" + }, + "NeurowebERC20": { + "deployed": true, + "evmAddress": "0x2548c27A04e49B412DD887b08d062D34C72ad2B6" + }, + "OldHub": { + "evmAddress": "0xaBfcf2ad1718828E7D3ec20435b0d0b5EAfbDf2c" + }, + "OldIdentityStorage": { + "evmAddress": "0xD40c74f5D1Ee382deb63Fa92d7ff5bC65415bBEE" + }, + "Hub": { + "evmAddress": "0x99Aa571fD5e681c2D27ee08A7b7989DB02541d13", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189831, + "deploymentTimestamp": 1735169014502, + "deployed": true + }, + "ParametersStorage": { + "evmAddress": "0xdC6615170420b1DDF54812f4430B9cc71eD10099", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189835, + "deploymentTimestamp": 1735169022283, + "deployed": true + }, + "WhitelistStorage": { + "evmAddress": "0x5d7aCedD766b39aa6f20BC49D8F36D2665cdcEb2", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189840, + "deploymentTimestamp": 1735169032135, + "deployed": true + }, + "IdentityStorage": { + "evmAddress": "0xDc67F8Fc0021b20db24701dfA6E67E5739bf094b", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189844, + "deploymentTimestamp": 1735169040198, + "deployed": true + }, + "ShardingTableStorage": { + "evmAddress": "0xF59ca9Eb70D7af0700394924B1053548dE6aE7aF", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189848, + "deploymentTimestamp": 1735169048165, + "deployed": true + }, + "StakingStorage": { + "evmAddress": "0x57307C87E95a372C5D94BCC372bb7304505A739D", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189852, + "deploymentTimestamp": 1735169053403, + "deployed": true + }, + "ProfileStorage": { + "evmAddress": "0x62Ac6414857FAaa08eadA066F3370e7fB3010ed3", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189856, + "deploymentTimestamp": 1735169062573, + "deployed": true + }, + "Chronos": { + "evmAddress": "0x07B1442717bbeD003ab2B2165B1b020F3F6B924B", + "version": null, + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189860, + "deploymentTimestamp": 1735169070781, + "deployed": true + }, + "EpochStorageV6": { + "evmAddress": "0x390B6Dc895D5C815FDC85023d6FB1261fe62c9F7", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189864, + "deploymentTimestamp": 1735169080177, + "deployed": true + }, + "EpochStorageV8": { + "evmAddress": "0x271Dd66348844bbe1d8bf838a4DAE5b4B7f558A1", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189869, + "deploymentTimestamp": 1735169088758, + "deployed": true + }, + "KnowledgeCollectionStorage": { + "evmAddress": "0xc28F310A87f7621A087A603E2ce41C22523F11d7", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189873, + "deploymentTimestamp": 1735169097530, + "deployed": true + }, + "PaymasterManager": { + "evmAddress": "0x937f4A6299ae22DB3f1990aFff8513F2a181eA7C", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189877, + "deploymentTimestamp": 1735169102947, + "deployed": true + }, + "AskStorage": { + "evmAddress": "0xDBdfe1628B4700f2D45Cb2292F905e56F06B8802", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 24224668, + "deploymentTimestamp": 1735238686973, + "deployed": true + }, + + "Identity": { + "evmAddress": "0x57fE6A6f56191bEcfAC857778FdB002803cd2EB2", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189884, + "deploymentTimestamp": 1735169119909, + "deployed": true + }, + "ShardingTable": { + "evmAddress": "0x825B05c8838A8D939EADd08D80e4bce980059b70", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189888, + "deploymentTimestamp": 1735169127961, + "deployed": true + }, + "Ask": { + "evmAddress": "0xF4be9eE05cBA91b6445DA7576F43CF91cB8958F5", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 24221985, + "deploymentTimestamp": 1735233321134, + "deployed": true + }, + "Staking": { + "evmAddress": "0xd5Ed8EAb35536F8C33C38128087441218Df65B1C", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 24221990, + "deploymentTimestamp": 1735233334587, + "deployed": true + }, + "Profile": { + "evmAddress": "0x2F0dd0781F13aA24d3E3061E3AfB8a411fbc64d7", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 24221996, + "deploymentTimestamp": 1735233343023, + "deployed": true + }, + "KnowledgeCollection": { + "evmAddress": "0x0924BeF5F4fB8c72064781ff2a4a661e298c76FC", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189905, + "deploymentTimestamp": 1735169162103, + "deployed": true + }, + "Migrator": { + "evmAddress": "0xc6B8b1E3EFE8BE4dA79f3C2Cfc36d37d6F3DC8CB", + "version": null, + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 24189909, + "deploymentTimestamp": 1735169166389, + "deployed": true + } } - } } diff --git a/deployments/gnosis_mainnet_contracts.json b/deployments/gnosis_mainnet_contracts.json index fac00334..01482f93 100644 --- a/deployments/gnosis_mainnet_contracts.json +++ b/deployments/gnosis_mainnet_contracts.json @@ -1,194 +1,194 @@ { - "contracts": { - "Token": { - "deployed": true, - "evmAddress": "0xEddd81E0792E764501AaE206EB432399a0268DB5" - }, - "OldHub": { - "evmAddress": "0xbEF14fc04F870c2dD65c13Df4faB6ba01A9c746b" - }, - "OldIdentityStorage": { - "evmAddress": "0xe369328795B24853C53132186DE45757105f79e4" - }, - "Hub": { - "evmAddress": "0x882D0BF07F956b1b94BBfe9E77F47c6fc7D4EC8f", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713034, - "deploymentTimestamp": 1735170543771, - "deployed": true - }, - "ParametersStorage": { - "evmAddress": "0x2323c8B7B60A5b8A6CEa0B3EE5e444306C9F69aB", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713036, - "deploymentTimestamp": 1735170552655, - "deployed": true - }, - "WhitelistStorage": { - "evmAddress": "0xd8ca67a3Ac9C24D266C6097B96eEF275156B2e9a", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713038, - "deploymentTimestamp": 1735170563255, - "deployed": true - }, - "IdentityStorage": { - "evmAddress": "0x3baDc8222C7B801FEc824890E4ea65Fa7ecF70a3", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713040, - "deploymentTimestamp": 1735170571481, - "deployed": true - }, - "ShardingTableStorage": { - "evmAddress": "0xba6a5c765CEf48f1992324a6b400D5b0Eb0B13B4", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713042, - "deploymentTimestamp": 1735170583604, - "deployed": true - }, - "StakingStorage": { - "evmAddress": "0x03DbaBD10C2e99C9F4cb5f18a6635545Ef526386", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713044, - "deploymentTimestamp": 1735170593608, - "deployed": true - }, - "ProfileStorage": { - "evmAddress": "0x60c9bCD2Fab842DD5D631C4bCeCE7cF305EF5416", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713046, - "deploymentTimestamp": 1735170602933, - "deployed": true - }, - "Chronos": { - "evmAddress": "0x0913cBBbF760D53A88915a0CFF57ED8A3409b4fe", - "version": null, - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713048, - "deploymentTimestamp": 1735170613290, - "deployed": true - }, - "EpochStorageV6": { - "evmAddress": "0x6a3f334144b349def5DB1CB14491558974b205f2", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713050, - "deploymentTimestamp": 1735170625963, - "deployed": true - }, - "EpochStorageV8": { - "evmAddress": "0x054f356265E7E43f3E1641D00cDF51E762e8Cd58", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713052, - "deploymentTimestamp": 1735170639130, - "deployed": true - }, - "KnowledgeCollectionStorage": { - "evmAddress": "0x3Cb124E1cDcEECF6E464BB185325608dbe635f5D", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713054, - "deploymentTimestamp": 1735170649343, - "deployed": true - }, - "PaymasterManager": { - "evmAddress": "0xF258508Cada5176A808A6acb640Fd621Af74885b", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713056, - "deploymentTimestamp": 1735170658326, - "deployed": true - }, - "AskStorage": { - "evmAddress": "0x7A261368eDDD146663b3A068848EB1dd2f2e979e", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713058, - "deploymentTimestamp": 1735170666971, - "deployed": true - }, - "Identity": { - "evmAddress": "0x08062706018bda4Ed91986E12A069f4cddb8Ec94", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713060, - "deploymentTimestamp": 1735170676192, - "deployed": true - }, - "ShardingTable": { - "evmAddress": "0x16F056aea9166349D05A8f707511C834a5B193C7", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713062, - "deploymentTimestamp": 1735170688253, - "deployed": true - }, - "Ask": { - "evmAddress": "0x3bc7cFd7267B0278004e521976BA873797804588", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713064, - "deploymentTimestamp": 1735170700290, - "deployed": true - }, - "Staking": { - "evmAddress": "0x4BA0a240a7d0049e396896eC18630247b8507705", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713066, - "deploymentTimestamp": 1735170708649, - "deployed": true - }, - "Profile": { - "evmAddress": "0x27957882D993EDE87e1426B8e76d1d97A6B86bbE", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713068, - "deploymentTimestamp": 1735170717362, - "deployed": true - }, - "KnowledgeCollection": { - "evmAddress": "0x2149a412E88014C9F47c2628bBf70239a398f425", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713070, - "deploymentTimestamp": 1735170726022, - "deployed": true - }, - "Migrator": { - "evmAddress": "0xdB60B4d2747680051d5D6010Ed0e08576aB2aaec", - "version": null, - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 37713071, - "deploymentTimestamp": 1735170734385, - "deployed": true + "contracts": { + "Token": { + "deployed": true, + "evmAddress": "0xEddd81E0792E764501AaE206EB432399a0268DB5" + }, + "OldHub": { + "evmAddress": "0xbEF14fc04F870c2dD65c13Df4faB6ba01A9c746b" + }, + "OldIdentityStorage": { + "evmAddress": "0xe369328795B24853C53132186DE45757105f79e4" + }, + "Hub": { + "evmAddress": "0x882D0BF07F956b1b94BBfe9E77F47c6fc7D4EC8f", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713034, + "deploymentTimestamp": 1735170543771, + "deployed": true + }, + "ParametersStorage": { + "evmAddress": "0x2323c8B7B60A5b8A6CEa0B3EE5e444306C9F69aB", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713036, + "deploymentTimestamp": 1735170552655, + "deployed": true + }, + "WhitelistStorage": { + "evmAddress": "0xd8ca67a3Ac9C24D266C6097B96eEF275156B2e9a", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713038, + "deploymentTimestamp": 1735170563255, + "deployed": true + }, + "IdentityStorage": { + "evmAddress": "0x3baDc8222C7B801FEc824890E4ea65Fa7ecF70a3", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713040, + "deploymentTimestamp": 1735170571481, + "deployed": true + }, + "ShardingTableStorage": { + "evmAddress": "0xba6a5c765CEf48f1992324a6b400D5b0Eb0B13B4", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713042, + "deploymentTimestamp": 1735170583604, + "deployed": true + }, + "StakingStorage": { + "evmAddress": "0x03DbaBD10C2e99C9F4cb5f18a6635545Ef526386", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713044, + "deploymentTimestamp": 1735170593608, + "deployed": true + }, + "ProfileStorage": { + "evmAddress": "0x60c9bCD2Fab842DD5D631C4bCeCE7cF305EF5416", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713046, + "deploymentTimestamp": 1735170602933, + "deployed": true + }, + "Chronos": { + "evmAddress": "0x0913cBBbF760D53A88915a0CFF57ED8A3409b4fe", + "version": null, + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713048, + "deploymentTimestamp": 1735170613290, + "deployed": true + }, + "EpochStorageV6": { + "evmAddress": "0x6a3f334144b349def5DB1CB14491558974b205f2", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713050, + "deploymentTimestamp": 1735170625963, + "deployed": true + }, + "EpochStorageV8": { + "evmAddress": "0x054f356265E7E43f3E1641D00cDF51E762e8Cd58", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713052, + "deploymentTimestamp": 1735170639130, + "deployed": true + }, + "KnowledgeCollectionStorage": { + "evmAddress": "0x3Cb124E1cDcEECF6E464BB185325608dbe635f5D", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713054, + "deploymentTimestamp": 1735170649343, + "deployed": true + }, + "PaymasterManager": { + "evmAddress": "0xF258508Cada5176A808A6acb640Fd621Af74885b", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713056, + "deploymentTimestamp": 1735170658326, + "deployed": true + }, + "AskStorage": { + "evmAddress": "0x397441d8480Ab694Ba9f915D7e2Fb6E7206A207c", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 37726238, + "deploymentTimestamp": 1735239475012, + "deployed": true + }, + "Identity": { + "evmAddress": "0x08062706018bda4Ed91986E12A069f4cddb8Ec94", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713060, + "deploymentTimestamp": 1735170676192, + "deployed": true + }, + "ShardingTable": { + "evmAddress": "0x16F056aea9166349D05A8f707511C834a5B193C7", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713062, + "deploymentTimestamp": 1735170688253, + "deployed": true + }, + "Ask": { + "evmAddress": "0x48BA9d59c827B4DBc3661761791A84995cD114C8", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 37724989, + "deploymentTimestamp": 1735233004117, + "deployed": true + }, + "Staking": { + "evmAddress": "0x828405dfc287f7d9B9Cc0588D036f2B94231e166", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 37724991, + "deploymentTimestamp": 1735233012746, + "deployed": true + }, + "Profile": { + "evmAddress": "0x8b372Da0A74d2AbF10DC9b3Fbf29c8d3F98DbeE2", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 37724993, + "deploymentTimestamp": 1735233025701, + "deployed": true + }, + "KnowledgeCollection": { + "evmAddress": "0x2149a412E88014C9F47c2628bBf70239a398f425", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713070, + "deploymentTimestamp": 1735170726022, + "deployed": true + }, + "Migrator": { + "evmAddress": "0xdB60B4d2747680051d5D6010Ed0e08576aB2aaec", + "version": null, + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 37713071, + "deploymentTimestamp": 1735170734385, + "deployed": true + } } - } } diff --git a/deployments/neuroweb_mainnet_contracts.json b/deployments/neuroweb_mainnet_contracts.json index 67e15890..dd86eb2c 100644 --- a/deployments/neuroweb_mainnet_contracts.json +++ b/deployments/neuroweb_mainnet_contracts.json @@ -1,215 +1,215 @@ { - "contracts": { - "Token": { - "deployed": true, - "evmAddress": "0xFfFFFFff00000000000000000000000000000001", - "substrateAddress": "5EMjsd1DUGXmZiLinvCzc3vG9GVfE5dE1TMBYKR5LMVDrVvU" - }, - "OldHub": { - "evmAddress": "0x5fA7916c48Fe6D5F1738d12Ad234b78c90B4cAdA" - }, - "OldIdentityStorage": { - "evmAddress": "0x2C81a650A2E9C8eB88d941A8ab50E1F3eEEe08Ac" - }, - "Hub": { - "evmAddress": "0x0957e25BD33034948abc28204ddA54b6E1142D6F", - "substrateAddress": "5EMjsczN3iPG2tB2mv2p1QDLDDCaVjuFNtfC9HkNEJoa1PL5", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237897, - "deploymentTimestamp": 1735172196310, - "deployed": true - }, - "ParametersStorage": { - "evmAddress": "0xF81D1E84C75AEbb717d8E3560477fFB0fcc642A7", - "substrateAddress": "5EMjsd1BtcmH3C7FxzXDk9j9E6ApAFZussCHDCKWD1wKJMNB", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237899, - "deploymentTimestamp": 1735172203804, - "deployed": true - }, - "WhitelistStorage": { - "evmAddress": "0x0e93233BAE82554B74AC989BD67eBed0EA47E116", - "substrateAddress": "5EMjsczP6Wg5t1ThcxMsMV1Wk3s8nU9sVZJg1CvPaRihLaTf", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237900, - "deploymentTimestamp": 1735172209196, - "deployed": true - }, - "IdentityStorage": { - "evmAddress": "0x9E2306977C0bC6f0BfF7BC9290B5C68D0386Caf2", - "substrateAddress": "5EMjsczsrwNyT7f4KMbCh65oWobJ7YEAg5iCE7Ebzyrb8JUf", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237901, - "deploymentTimestamp": 1735172216391, - "deployed": true - }, - "ShardingTableStorage": { - "evmAddress": "0xe6ddE49E3cb2dc24549CD2506052Af14762dc36D", - "substrateAddress": "5EMjsd18SBMaFCpQz9Den91TEJ9nu5GbfVtxEqGd75N4aRZY", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237902, - "deploymentTimestamp": 1735172224118, - "deployed": true - }, - "StakingStorage": { - "evmAddress": "0x36175d07F8F0022B7cB24dd6F68062f1dD7E425f", - "substrateAddress": "5EMjsczX1ky6BxmSwnbofNUJUVCkasCEBRgKFZe9qR5m9qVY", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237903, - "deploymentTimestamp": 1735172228119, - "deployed": true - }, - "ProfileStorage": { - "evmAddress": "0x33C4ed3117aE00A4226CAB9182bE7CFC1307dBe7", - "substrateAddress": "5EMjsczWYmoLPJRQLSr2RCMVp7uASoopwsH9GwphgSTThCQu", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237904, - "deploymentTimestamp": 1735172235628, - "deployed": true - }, - "Chronos": { - "evmAddress": "0xCFb72d5F0C888Be93d67EeaAf6Daac8507D85853", - "substrateAddress": "5EMjsd13o89txKQYdL3T6xZXyR7cNrACHeviJienVtS3d5Qt", - "version": null, - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237905, - "deploymentTimestamp": 1735172242852, - "deployed": true - }, - "EpochStorageV6": { - "evmAddress": "0x1Bb8e5e73f95ecCf63771bB53aA461c3Fac57c5B", - "substrateAddress": "5EMjsczRjJp3iiUFXSgPVkYDQ9RFYRRtYDkoYwTQz4ZoyaUS", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237906, - "deploymentTimestamp": 1735172245713, - "deployed": true - }, - "EpochStorageV8": { - "evmAddress": "0x079C6744ed723Df6da6d18c56520362569D5448A", - "substrateAddress": "5EMjsczMhagqnbm94sBEW8iZXqb2cgAf7Fdqh3Q6NWqP8CyR", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237907, - "deploymentTimestamp": 1735172253485, - "deployed": true - }, - "KnowledgeCollectionStorage": { - "evmAddress": "0x8f678eB0E57ee8A109B295710E23076fA3a443fe", - "substrateAddress": "5EMjsczpuj16nJsqCa2jKa3qZadcS8SEHM6UeEz3U56doXgq", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237908, - "deploymentTimestamp": 1735172257647, - "deployed": true - }, - "PaymasterManager": { - "evmAddress": "0x32c70FfB23BcC1cD6632e1e0C9208AB947565aCe", - "substrateAddress": "5EMjsczWMFNLZhpo7TbwUobfpCHNEtYcpBEDLdrfvxEr9wtz", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237909, - "deploymentTimestamp": 1735172265323, - "deployed": true - }, - "AskStorage": { - "evmAddress": "0x18f7731D36A92335D7C0598CaFC0b5f652CD85ea", - "substrateAddress": "5EMjsczRBHM78MU8XNMBRrSjukuwnfL925cNGUZXJCqgts6d", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237910, - "deploymentTimestamp": 1735172273049, - "deployed": true - }, - "Identity": { - "evmAddress": "0xF9F7c3Eac0b489ae87c33F5eE8095E148115Ea9a", - "substrateAddress": "5EMjsd1CGAX7ifoX9AsS4Dt9ZwcFJpCN63zdqXufvca6p6Pj", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237912, - "deploymentTimestamp": 1735172282503, - "deployed": true - }, - "ShardingTable": { - "evmAddress": "0x6a1D804274C6f0624cD95b590481a14CFF50691a", - "substrateAddress": "5EMjsczhSMyq6Z9ZWBuHUBkX7vZzLSuE9Z89xLZXqcxZqhM2", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237913, - "deploymentTimestamp": 1735172290900, - "deployed": true - }, - "Ask": { - "evmAddress": "0x21Fdf089C904Bf9E955Bd68b38A3b16539cFBd0f", - "substrateAddress": "5EMjsczSzAvrST7asRxAdR4NBqsdK6hQStQXao9oJdcpVg2b", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237915, - "deploymentTimestamp": 1735172302976, - "deployed": true - }, - "Staking": { - "evmAddress": "0x5427D4E47DEee30dC06e43fB697b18468Edf827f", - "substrateAddress": "5EMjsczd39yUxdiMcxGQrwDC9rkYqkRs5uPNPPhNgFziEif8", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237917, - "deploymentTimestamp": 1735172311259, - "deployed": true - }, - "Profile": { - "evmAddress": "0xD4018005fECC4115DdCB690cAA18133921A534d1", - "substrateAddress": "5EMjsd14ez4suyFFnxNwvsUTZsy4esmKMKxTdQPUNUvpz4z2", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237918, - "deploymentTimestamp": 1735172318926, - "deployed": true - }, - "KnowledgeCollection": { - "evmAddress": "0xc8cf8064d7fc7cF42d51Ca5B28218472157F3d90", - "substrateAddress": "5EMjsd12QspKvHfuBbRBtiHPYt99HtrVYtVLhPrvHXVkAFES", - "version": "1.0.0", - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237920, - "deploymentTimestamp": 1735172331238, - "deployed": true - }, - "Migrator": { - "evmAddress": "0xce8499e36297F7cd0c0C9BCCb0C0C7945744e1D4", - "substrateAddress": "5EMjsd13ZCvxUafKvUNyzeJU2g5JUC5wcph9kF8WfGXF8UfD", - "version": null, - "gitBranch": "v8-contracts", - "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", - "deploymentBlock": 7237921, - "deploymentTimestamp": 1735172339296, - "deployed": true + "contracts": { + "Token": { + "deployed": true, + "evmAddress": "0xFfFFFFff00000000000000000000000000000001", + "substrateAddress": "5EMjsd1DUGXmZiLinvCzc3vG9GVfE5dE1TMBYKR5LMVDrVvU" + }, + "OldHub": { + "evmAddress": "0x5fA7916c48Fe6D5F1738d12Ad234b78c90B4cAdA" + }, + "OldIdentityStorage": { + "evmAddress": "0x2C81a650A2E9C8eB88d941A8ab50E1F3eEEe08Ac" + }, + "Hub": { + "evmAddress": "0x0957e25BD33034948abc28204ddA54b6E1142D6F", + "substrateAddress": "5EMjsczN3iPG2tB2mv2p1QDLDDCaVjuFNtfC9HkNEJoa1PL5", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237897, + "deploymentTimestamp": 1735172196310, + "deployed": true + }, + "ParametersStorage": { + "evmAddress": "0xF81D1E84C75AEbb717d8E3560477fFB0fcc642A7", + "substrateAddress": "5EMjsd1BtcmH3C7FxzXDk9j9E6ApAFZussCHDCKWD1wKJMNB", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237899, + "deploymentTimestamp": 1735172203804, + "deployed": true + }, + "WhitelistStorage": { + "evmAddress": "0x0e93233BAE82554B74AC989BD67eBed0EA47E116", + "substrateAddress": "5EMjsczP6Wg5t1ThcxMsMV1Wk3s8nU9sVZJg1CvPaRihLaTf", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237900, + "deploymentTimestamp": 1735172209196, + "deployed": true + }, + "IdentityStorage": { + "evmAddress": "0x9E2306977C0bC6f0BfF7BC9290B5C68D0386Caf2", + "substrateAddress": "5EMjsczsrwNyT7f4KMbCh65oWobJ7YEAg5iCE7Ebzyrb8JUf", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237901, + "deploymentTimestamp": 1735172216391, + "deployed": true + }, + "ShardingTableStorage": { + "evmAddress": "0xe6ddE49E3cb2dc24549CD2506052Af14762dc36D", + "substrateAddress": "5EMjsd18SBMaFCpQz9Den91TEJ9nu5GbfVtxEqGd75N4aRZY", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237902, + "deploymentTimestamp": 1735172224118, + "deployed": true + }, + "StakingStorage": { + "evmAddress": "0x36175d07F8F0022B7cB24dd6F68062f1dD7E425f", + "substrateAddress": "5EMjsczX1ky6BxmSwnbofNUJUVCkasCEBRgKFZe9qR5m9qVY", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237903, + "deploymentTimestamp": 1735172228119, + "deployed": true + }, + "ProfileStorage": { + "evmAddress": "0x33C4ed3117aE00A4226CAB9182bE7CFC1307dBe7", + "substrateAddress": "5EMjsczWYmoLPJRQLSr2RCMVp7uASoopwsH9GwphgSTThCQu", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237904, + "deploymentTimestamp": 1735172235628, + "deployed": true + }, + "Chronos": { + "evmAddress": "0xCFb72d5F0C888Be93d67EeaAf6Daac8507D85853", + "substrateAddress": "5EMjsd13o89txKQYdL3T6xZXyR7cNrACHeviJienVtS3d5Qt", + "version": null, + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237905, + "deploymentTimestamp": 1735172242852, + "deployed": true + }, + "EpochStorageV6": { + "evmAddress": "0x1Bb8e5e73f95ecCf63771bB53aA461c3Fac57c5B", + "substrateAddress": "5EMjsczRjJp3iiUFXSgPVkYDQ9RFYRRtYDkoYwTQz4ZoyaUS", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237906, + "deploymentTimestamp": 1735172245713, + "deployed": true + }, + "EpochStorageV8": { + "evmAddress": "0x079C6744ed723Df6da6d18c56520362569D5448A", + "substrateAddress": "5EMjsczMhagqnbm94sBEW8iZXqb2cgAf7Fdqh3Q6NWqP8CyR", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237907, + "deploymentTimestamp": 1735172253485, + "deployed": true + }, + "KnowledgeCollectionStorage": { + "evmAddress": "0x8f678eB0E57ee8A109B295710E23076fA3a443fe", + "substrateAddress": "5EMjsczpuj16nJsqCa2jKa3qZadcS8SEHM6UeEz3U56doXgq", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237908, + "deploymentTimestamp": 1735172257647, + "deployed": true + }, + "PaymasterManager": { + "evmAddress": "0x32c70FfB23BcC1cD6632e1e0C9208AB947565aCe", + "substrateAddress": "5EMjsczWMFNLZhpo7TbwUobfpCHNEtYcpBEDLdrfvxEr9wtz", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237909, + "deploymentTimestamp": 1735172265323, + "deployed": true + }, + "AskStorage": { + "evmAddress": "0x44e438332dF57983ec3402B0a5F8f462caE268d4", + "substrateAddress": "5EMjsczZym8M2g4w4UqNvMEortekbVKZqbkHYTh3KEVV2BuV", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 7249059, + "deploymentTimestamp": 1735239728174, + "deployed": true + }, + "Identity": { + "evmAddress": "0xF9F7c3Eac0b489ae87c33F5eE8095E148115Ea9a", + "substrateAddress": "5EMjsd1CGAX7ifoX9AsS4Dt9ZwcFJpCN63zdqXufvca6p6Pj", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237912, + "deploymentTimestamp": 1735172282503, + "deployed": true + }, + "ShardingTable": { + "evmAddress": "0x6a1D804274C6f0624cD95b590481a14CFF50691a", + "substrateAddress": "5EMjsczhSMyq6Z9ZWBuHUBkX7vZzLSuE9Z89xLZXqcxZqhM2", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237913, + "deploymentTimestamp": 1735172290900, + "deployed": true + }, + "Ask": { + "evmAddress": "0x064F451b40791BB43dBAb92434768B5e30EE03a6", + "substrateAddress": "5EMjsczMSTYBbHGu8ZwE8Hf8Zk68iMe8yhqGsAdN21yXcdJs", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 7248330, + "deploymentTimestamp": 1735235312583, + "deployed": true + }, + "Staking": { + "evmAddress": "0x996eF3cfd6c788618C359Fb538D49281a0b13805", + "substrateAddress": "5EMjsczrvH2FESdqKMxY6Rz1yskqnqgJAKjr6efKNqXoFn6k", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 7248332, + "deploymentTimestamp": 1735235328833, + "deployed": true + }, + "Profile": { + "evmAddress": "0x53352D8B4C3582162fAc3f4e0067961E67C3c231", + "substrateAddress": "5EMjsczcr94VH5QyM1RC9tfY3awdUrkAFFP1mrnKVMGi2Asz", + "version": "1.0.0", + "gitBranch": "v8/pricing-fix", + "gitCommitHash": "41db1cea6e655a8a7d869814b05f0d49dcaed9d4", + "deploymentBlock": 7248334, + "deploymentTimestamp": 1735235336400, + "deployed": true + }, + "KnowledgeCollection": { + "evmAddress": "0xc8cf8064d7fc7cF42d51Ca5B28218472157F3d90", + "substrateAddress": "5EMjsd12QspKvHfuBbRBtiHPYt99HtrVYtVLhPrvHXVkAFES", + "version": "1.0.0", + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237920, + "deploymentTimestamp": 1735172331238, + "deployed": true + }, + "Migrator": { + "evmAddress": "0xce8499e36297F7cd0c0C9BCCb0C0C7945744e1D4", + "substrateAddress": "5EMjsd13ZCvxUafKvUNyzeJU2g5JUC5wcph9kF8WfGXF8UfD", + "version": null, + "gitBranch": "v8-contracts", + "gitCommitHash": "e8eb0e42e23f4e7d0d957266d83d25d9407ff656", + "deploymentBlock": 7237921, + "deploymentTimestamp": 1735172339296, + "deployed": true + } } - } } diff --git a/hardhat.config.ts b/hardhat.config.ts index 48792283..844da138 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -20,6 +20,7 @@ import './tasks/deploy_test_token'; import './tasks/low_level_call_data_encoder'; import './tasks/mint_test_tokens'; import './tasks/selector_encoder'; +import './tasks/send_forward_call'; import './tasks/send_neuro'; import './utils/type-extensions'; import config from './hardhat.node.config'; diff --git a/tasks/send_forward_call.ts b/tasks/send_forward_call.ts new file mode 100644 index 00000000..a5bf2999 --- /dev/null +++ b/tasks/send_forward_call.ts @@ -0,0 +1,24 @@ +import { task } from 'hardhat/config'; +import { HardhatRuntimeEnvironment } from 'hardhat/types'; + +type ForwardCallParameters = { + target: string; + encodedData: string; +}; + +task('send_forward_call', 'Sends forward call from the Hub') + .addParam('target', 'Target contract for forward call') + .addParam('encodedData', 'Encoded data for forwards call') + .setAction( + async (taskArgs: ForwardCallParameters, hre: HardhatRuntimeEnvironment) => { + const { target, encodedData } = taskArgs; + + const HubAbi = hre.helpers.getAbi('Hub'); + const hubAddress = + hre.helpers.contractDeployments.contracts['Hub'].evmAddress; + const Hub = await hre.ethers.getContractAt(HubAbi, hubAddress); + + const tx = await Hub.forwardCall(target, encodedData); + await tx.wait(); + }, + ); diff --git a/test/helpers/constants.ts b/test/helpers/constants.ts index a4f9f552..4b51c90c 100644 --- a/test/helpers/constants.ts +++ b/test/helpers/constants.ts @@ -1,5 +1,6 @@ const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; -const ZERO_BYTES32 = '0x0000000000000000000000000000000000000000000000000000000000000000'; +const ZERO_BYTES32 = + '0x0000000000000000000000000000000000000000000000000000000000000000'; const ADMIN_KEY = 1; const OPERATIONAL_KEY = 2; const ECDSA = 1;