ваше сообщение коммита

This commit is contained in:
2025-06-25 16:55:40 +03:00
parent 715c108bb6
commit a316089659
63 changed files with 525 additions and 522 deletions

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -142,6 +142,17 @@
"name": "GovernorOnlyExecutor", "name": "GovernorOnlyExecutor",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{ {
"inputs": [], "inputs": [],
"name": "GovernorQueueNotImplemented", "name": "GovernorQueueNotImplemented",
@@ -158,22 +169,6 @@
"name": "GovernorRestrictedProposer", "name": "GovernorRestrictedProposer",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorUnableToCancel",
"type": "error"
},
{ {
"inputs": [ "inputs": [
{ {
@@ -776,40 +771,6 @@
"stateMutability": "payable", "stateMutability": "payable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "getProposalId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -137,6 +137,17 @@
"name": "GovernorOnlyExecutor", "name": "GovernorOnlyExecutor",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{ {
"inputs": [], "inputs": [],
"name": "GovernorQueueNotImplemented", "name": "GovernorQueueNotImplemented",
@@ -153,22 +164,6 @@
"name": "GovernorRestrictedProposer", "name": "GovernorRestrictedProposer",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorUnableToCancel",
"type": "error"
},
{ {
"inputs": [ "inputs": [
{ {
@@ -648,40 +643,6 @@
"stateMutability": "payable", "stateMutability": "payable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "getProposalId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -142,6 +142,17 @@
"name": "GovernorOnlyExecutor", "name": "GovernorOnlyExecutor",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{ {
"inputs": [], "inputs": [],
"name": "GovernorQueueNotImplemented", "name": "GovernorQueueNotImplemented",
@@ -158,22 +169,6 @@
"name": "GovernorRestrictedProposer", "name": "GovernorRestrictedProposer",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorUnableToCancel",
"type": "error"
},
{ {
"inputs": [ "inputs": [
{ {
@@ -776,40 +771,6 @@
"stateMutability": "payable", "stateMutability": "payable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "getProposalId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -142,6 +142,17 @@
"name": "GovernorOnlyExecutor", "name": "GovernorOnlyExecutor",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{ {
"inputs": [], "inputs": [],
"name": "GovernorQueueNotImplemented", "name": "GovernorQueueNotImplemented",
@@ -158,22 +169,6 @@
"name": "GovernorRestrictedProposer", "name": "GovernorRestrictedProposer",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorUnableToCancel",
"type": "error"
},
{ {
"inputs": [ "inputs": [
{ {
@@ -833,40 +828,6 @@
"stateMutability": "payable", "stateMutability": "payable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "getProposalId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -142,6 +142,17 @@
"name": "GovernorOnlyExecutor", "name": "GovernorOnlyExecutor",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{ {
"inputs": [], "inputs": [],
"name": "GovernorQueueNotImplemented", "name": "GovernorQueueNotImplemented",
@@ -158,22 +169,6 @@
"name": "GovernorRestrictedProposer", "name": "GovernorRestrictedProposer",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorUnableToCancel",
"type": "error"
},
{ {
"inputs": [ "inputs": [
{ {
@@ -795,40 +790,6 @@
"stateMutability": "payable", "stateMutability": "payable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "getProposalId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -142,6 +142,17 @@
"name": "GovernorOnlyExecutor", "name": "GovernorOnlyExecutor",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{ {
"inputs": [], "inputs": [],
"name": "GovernorQueueNotImplemented", "name": "GovernorQueueNotImplemented",
@@ -158,22 +169,6 @@
"name": "GovernorRestrictedProposer", "name": "GovernorRestrictedProposer",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorUnableToCancel",
"type": "error"
},
{ {
"inputs": [ "inputs": [
{ {
@@ -776,40 +771,6 @@
"stateMutability": "payable", "stateMutability": "payable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "getProposalId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -163,6 +163,17 @@
"name": "GovernorOnlyExecutor", "name": "GovernorOnlyExecutor",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorOnlyProposer",
"type": "error"
},
{ {
"inputs": [], "inputs": [],
"name": "GovernorQueueNotImplemented", "name": "GovernorQueueNotImplemented",
@@ -179,22 +190,6 @@
"name": "GovernorRestrictedProposer", "name": "GovernorRestrictedProposer",
"type": "error" "type": "error"
}, },
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalId",
"type": "uint256"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "GovernorUnableToCancel",
"type": "error"
},
{ {
"inputs": [ "inputs": [
{ {
@@ -816,40 +811,6 @@
"stateMutability": "payable", "stateMutability": "payable",
"type": "function" "type": "function"
}, },
{
"inputs": [
{
"internalType": "address[]",
"name": "targets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "values",
"type": "uint256[]"
},
{
"internalType": "bytes[]",
"name": "calldatas",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "descriptionHash",
"type": "bytes32"
}
],
"name": "getProposalId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{ {
"inputs": [ "inputs": [
{ {

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -20,8 +20,8 @@
"type": "error" "type": "error"
} }
], ],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220be38f9d217646f870120140167ee3868bb6453ebeb69dd60ff12eeb686a8166564736f6c63430008140033", "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212203910222b2424311f5663a76aa7535fa334025befbbcf48c3b03b5c52304f728e64736f6c63430008140033",
"deployedBytecode": "0x600080fdfea2646970667358221220be38f9d217646f870120140167ee3868bb6453ebeb69dd60ff12eeb686a8166564736f6c63430008140033", "deployedBytecode": "0x600080fdfea26469706673582212203910222b2424311f5663a76aa7535fa334025befbbcf48c3b03b5c52304f728e64736f6c63430008140033",
"linkReferences": {}, "linkReferences": {},
"deployedLinkReferences": {} "deployedLinkReferences": {}
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -30,8 +30,8 @@
"type": "error" "type": "error"
} }
], ],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220d08bc96a8d6dcc6448a3f0db7c13cd229f9ccdca095b3b8c535911fcf74d27b164736f6c63430008140033", "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220765f35e69774148f6583047be059881881021f7294676859d5243c8ce0ed49c664736f6c63430008140033",
"deployedBytecode": "0x600080fdfea2646970667358221220d08bc96a8d6dcc6448a3f0db7c13cd229f9ccdca095b3b8c535911fcf74d27b164736f6c63430008140033", "deployedBytecode": "0x600080fdfea2646970667358221220765f35e69774148f6583047be059881881021f7294676859d5243c8ce0ed49c664736f6c63430008140033",
"linkReferences": {}, "linkReferences": {},
"deployedLinkReferences": {} "deployedLinkReferences": {}
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -3,8 +3,8 @@
"contractName": "MessageHashUtils", "contractName": "MessageHashUtils",
"sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol",
"abi": [], "abi": [],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f0207ad9e362a615aa90358e523b6ce04d4e69f6202f53043b8bdd8f730f26b364736f6c63430008140033", "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212200f3ae3836ce415135a38d38d326faa1cbfe4796606a63002a594f535381cce0564736f6c63430008140033",
"deployedBytecode": "0x600080fdfea2646970667358221220f0207ad9e362a615aa90358e523b6ce04d4e69f6202f53043b8bdd8f730f26b364736f6c63430008140033", "deployedBytecode": "0x600080fdfea26469706673582212200f3ae3836ce415135a38d38d326faa1cbfe4796606a63002a594f535381cce0564736f6c63430008140033",
"linkReferences": {}, "linkReferences": {},
"deployedLinkReferences": {} "deployedLinkReferences": {}
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -3,8 +3,8 @@
"contractName": "SignatureChecker", "contractName": "SignatureChecker",
"sourceName": "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol", "sourceName": "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol",
"abi": [], "abi": [],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220818f5ef0be44b06d125288cdf72179b00d292931ab3f9b703fb58a49e9db41ca64736f6c63430008140033", "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220ce0ebc0bfec5ddcb3595bcb343c327c67acbc88fcd808f6054a0aa07137e308b64736f6c63430008140033",
"deployedBytecode": "0x600080fdfea2646970667358221220818f5ef0be44b06d125288cdf72179b00d292931ab3f9b703fb58a49e9db41ca64736f6c63430008140033", "deployedBytecode": "0x600080fdfea2646970667358221220ce0ebc0bfec5ddcb3595bcb343c327c67acbc88fcd808f6054a0aa07137e308b64736f6c63430008140033",
"linkReferences": {}, "linkReferences": {},
"deployedLinkReferences": {} "deployedLinkReferences": {}
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -3,8 +3,8 @@
"contractName": "Math", "contractName": "Math",
"sourceName": "@openzeppelin/contracts/utils/math/Math.sol", "sourceName": "@openzeppelin/contracts/utils/math/Math.sol",
"abi": [], "abi": [],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220079cd2c71475848145681b815221685650cc081e23cc8b888477ca686a1c397264736f6c63430008140033", "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220f55ee99a472eb6dc2cc3e168b7846de5ba4a51af97d44e14b45afd9f8748a7d764736f6c63430008140033",
"deployedBytecode": "0x600080fdfea2646970667358221220079cd2c71475848145681b815221685650cc081e23cc8b888477ca686a1c397264736f6c63430008140033", "deployedBytecode": "0x600080fdfea2646970667358221220f55ee99a472eb6dc2cc3e168b7846de5ba4a51af97d44e14b45afd9f8748a7d764736f6c63430008140033",
"linkReferences": {}, "linkReferences": {},
"deployedLinkReferences": {} "deployedLinkReferences": {}
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -9,8 +9,8 @@
"type": "error" "type": "error"
} }
], ],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212209d0763cd8afdfa69a0fd1ead90a10240bb74b5b3f038caee841bbbcd2411c0a064736f6c63430008140033", "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea26469706673582212208f08ac1c5a58ef0dcc61ff5a981ce5ccccf4ca439f5a1432a4cbc4dee782bd3664736f6c63430008140033",
"deployedBytecode": "0x600080fdfea26469706673582212209d0763cd8afdfa69a0fd1ead90a10240bb74b5b3f038caee841bbbcd2411c0a064736f6c63430008140033", "deployedBytecode": "0x600080fdfea26469706673582212208f08ac1c5a58ef0dcc61ff5a981ce5ccccf4ca439f5a1432a4cbc4dee782bd3664736f6c63430008140033",
"linkReferences": {}, "linkReferences": {},
"deployedLinkReferences": {} "deployedLinkReferences": {}
} }

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../../../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../../../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

View File

@@ -3,8 +3,8 @@
"contractName": "Time", "contractName": "Time",
"sourceName": "@openzeppelin/contracts/utils/types/Time.sol", "sourceName": "@openzeppelin/contracts/utils/types/Time.sol",
"abi": [], "abi": [],
"bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea264697066735822122026ea55de96cee5d1a924579e9c0dae332550bbaa227f60531af5496f738633d264736f6c63430008140033", "bytecode": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220819f3e32bac9d9829f557c4b362d7307e5c1a3acfb410eb1315c67e706dd8d8e64736f6c63430008140033",
"deployedBytecode": "0x600080fdfea264697066735822122026ea55de96cee5d1a924579e9c0dae332550bbaa227f60531af5496f738633d264736f6c63430008140033", "deployedBytecode": "0x600080fdfea2646970667358221220819f3e32bac9d9829f557c4b362d7307e5c1a3acfb410eb1315c67e706dd8d8e64736f6c63430008140033",
"linkReferences": {}, "linkReferences": {},
"deployedLinkReferences": {} "deployedLinkReferences": {}
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
{ {
"_format": "hh-sol-dbg-1", "_format": "hh-sol-dbg-1",
"buildInfo": "../../build-info/f3f069df8eac5bd54bd69f81015dcedb.json" "buildInfo": "../../build-info/b0e3c4fc1ab092680ddeb940e9de1d86.json"
} }

File diff suppressed because one or more lines are too long

View File

@@ -2,7 +2,7 @@
"_format": "hh-sol-cache-2", "_format": "hh-sol-cache-2",
"files": { "files": {
"/app/contracts/GovernanceTimelock.sol": { "/app/contracts/GovernanceTimelock.sol": {
"lastModificationDate": 1747057245108, "lastModificationDate": 1748010105840,
"contentHash": "1da82c4171b2322bdd2a362508354d33", "contentHash": "1da82c4171b2322bdd2a362508354d33",
"sourceName": "contracts/GovernanceTimelock.sol", "sourceName": "contracts/GovernanceTimelock.sol",
"solcConfig": { "solcConfig": {
@@ -41,8 +41,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/TimelockController.sol": { "/app/node_modules/@openzeppelin/contracts/governance/TimelockController.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104140,
"contentHash": "13845647b84f2f5c4480e08e3d55da1b", "contentHash": "2fc80187893d7c844638037fb8ae9465",
"sourceName": "@openzeppelin/contracts/governance/TimelockController.sol", "sourceName": "@openzeppelin/contracts/governance/TimelockController.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -83,8 +83,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/access/AccessControl.sol": { "/app/node_modules/@openzeppelin/contracts/access/AccessControl.sol": {
"lastModificationDate": 1745825448066, "lastModificationDate": 1748776104118,
"contentHash": "849b15469d8e2bd01b49e6c632e448e7", "contentHash": "4c80b7fdf559a9a348e832a57d072a0b",
"sourceName": "@openzeppelin/contracts/access/AccessControl.sol", "sourceName": "@openzeppelin/contracts/access/AccessControl.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -318,8 +318,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/access/IAccessControl.sol": { "/app/node_modules/@openzeppelin/contracts/access/IAccessControl.sol": {
"lastModificationDate": 1745825448066, "lastModificationDate": 1748776104118,
"contentHash": "80621031deacf7066ec81277f9b1463a", "contentHash": "6f7fac9fa0df6004375e18b7ff7edf4e",
"sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -505,8 +505,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol": { "/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104140,
"contentHash": "939d4441f70d1ac73b31f3c9b7bd4fa0", "contentHash": "5728eed1ed89686efde821ec8323e2d2",
"sourceName": "@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol", "sourceName": "@openzeppelin/contracts/governance/extensions/GovernorTimelockControl.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -547,8 +547,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/Governor.sol": { "/app/node_modules/@openzeppelin/contracts/governance/Governor.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104129,
"contentHash": "6b305fffdb6eb6575c68dbefe21d2f19", "contentHash": "a9caf65a115fd1ccc7f23eabadcd25e6",
"sourceName": "@openzeppelin/contracts/governance/Governor.sol", "sourceName": "@openzeppelin/contracts/governance/Governor.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -708,8 +708,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/Strings.sol": { "/app/node_modules/@openzeppelin/contracts/utils/Strings.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "13dbc135f563c72a11b1cf4fbb5fb284", "contentHash": "a55fef2557b35bac18a1880d3c2e6740",
"sourceName": "@openzeppelin/contracts/utils/Strings.sol", "sourceName": "@openzeppelin/contracts/utils/Strings.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -749,7 +749,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol": { "/app/node_modules/@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "03f092e4e7befa45c08cfa35b51016cb", "contentHash": "03f092e4e7befa45c08cfa35b51016cb",
"sourceName": "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol", "sourceName": "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol",
"solcConfig": { "solcConfig": {
@@ -789,8 +789,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol": { "/app/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "b21731956bbef780b4cc856e8dda7426", "contentHash": "8dbb261c55f358342798c4d1803d4f8e",
"sourceName": "@openzeppelin/contracts/utils/cryptography/EIP712.sol", "sourceName": "@openzeppelin/contracts/utils/cryptography/EIP712.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -869,8 +869,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/IGovernor.sol": { "/app/node_modules/@openzeppelin/contracts/governance/IGovernor.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104140,
"contentHash": "028e4368748c894ef631b673175b6d57", "contentHash": "9357d5d69fc696dc7431939565a5c67c",
"sourceName": "@openzeppelin/contracts/governance/IGovernor.sol", "sourceName": "@openzeppelin/contracts/governance/IGovernor.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -909,8 +909,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { "/app/node_modules/@openzeppelin/contracts/utils/math/Math.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "5ec781e33d3a9ac91ffdc83d94420412", "contentHash": "2b2665ae9bdb1af440658741a77fe213",
"sourceName": "@openzeppelin/contracts/utils/math/Math.sol", "sourceName": "@openzeppelin/contracts/utils/math/Math.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -1062,8 +1062,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol": { "/app/node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol": {
"lastModificationDate": 1745825448108, "lastModificationDate": 1748776104161,
"contentHash": "3def021e7792e679a61b7bf9764e39e9", "contentHash": "f8b3eec87e333cafeddb1310bd264f54",
"sourceName": "@openzeppelin/contracts/interfaces/IERC1271.sol", "sourceName": "@openzeppelin/contracts/interfaces/IERC1271.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -1099,8 +1099,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/ShortStrings.sol": { "/app/node_modules/@openzeppelin/contracts/utils/ShortStrings.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "c1be9487e5a64acf23b5d8028482e748", "contentHash": "94e7feaf138d08fb736e43ca0be9bf26",
"sourceName": "@openzeppelin/contracts/utils/ShortStrings.sol", "sourceName": "@openzeppelin/contracts/utils/ShortStrings.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -1175,8 +1175,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { "/app/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "260f3968eefa3bbd30520cff5384cd93", "contentHash": "86fd93657e4e27ff76c38699e9b9fcef",
"sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -1288,7 +1288,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/utils/Votes.sol": { "/app/node_modules/@openzeppelin/contracts/governance/utils/Votes.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104129,
"contentHash": "95aceafdc639babdd22576e5e3774d64", "contentHash": "95aceafdc639babdd22576e5e3774d64",
"sourceName": "@openzeppelin/contracts/governance/utils/Votes.sol", "sourceName": "@openzeppelin/contracts/governance/utils/Votes.sol",
"solcConfig": { "solcConfig": {
@@ -1374,8 +1374,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/structs/Checkpoints.sol": { "/app/node_modules/@openzeppelin/contracts/utils/structs/Checkpoints.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "7ca7c8421d39c1e99338f38f7952d1b8", "contentHash": "657c6dfea3bae1af948de6113ba01cea",
"sourceName": "@openzeppelin/contracts/utils/structs/Checkpoints.sol", "sourceName": "@openzeppelin/contracts/utils/structs/Checkpoints.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -1413,7 +1413,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/utils/types/Time.sol": { "/app/node_modules/@openzeppelin/contracts/utils/types/Time.sol": {
"lastModificationDate": 1745825448097, "lastModificationDate": 1748776104140,
"contentHash": "d83e7814a059fc1287fd765f424ce004", "contentHash": "d83e7814a059fc1287fd765f424ce004",
"sourceName": "@openzeppelin/contracts/utils/types/Time.sol", "sourceName": "@openzeppelin/contracts/utils/types/Time.sol",
"solcConfig": { "solcConfig": {
@@ -1490,7 +1490,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol": { "/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104140,
"contentHash": "c66ade534226e6235abd10c7cb3b0193", "contentHash": "c66ade534226e6235abd10c7cb3b0193",
"sourceName": "@openzeppelin/contracts/governance/extensions/GovernorVotes.sol", "sourceName": "@openzeppelin/contracts/governance/extensions/GovernorVotes.sol",
"solcConfig": { "solcConfig": {
@@ -1533,8 +1533,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { "/app/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": {
"lastModificationDate": 1745825448108, "lastModificationDate": 1748776104150,
"contentHash": "57d79df281f57bbb1b09214c7914f877", "contentHash": "227a6eb2225701c12d9c959b758b6333",
"sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -1690,7 +1690,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol": { "/app/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol": {
"lastModificationDate": 1745825448108, "lastModificationDate": 1748776104150,
"contentHash": "51c2083b160453420aaa0a046c16d5ca", "contentHash": "51c2083b160453420aaa0a046c16d5ca",
"sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol", "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol",
"solcConfig": { "solcConfig": {
@@ -1731,8 +1731,8 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol": { "/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104140,
"contentHash": "62abd4cd017cce476f952ae680d78892", "contentHash": "ba87d2cefbc58d280de206ed8ceb1067",
"sourceName": "@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol", "sourceName": "@openzeppelin/contracts/governance/extensions/GovernorVotesQuorumFraction.sol",
"solcConfig": { "solcConfig": {
"version": "0.8.20", "version": "0.8.20",
@@ -1761,7 +1761,6 @@
}, },
"imports": [ "imports": [
"./GovernorVotes.sol", "./GovernorVotes.sol",
"../../utils/math/Math.sol",
"../../utils/math/SafeCast.sol", "../../utils/math/SafeCast.sol",
"../../utils/structs/Checkpoints.sol" "../../utils/structs/Checkpoints.sol"
], ],
@@ -1773,7 +1772,7 @@
] ]
}, },
"/app/contracts/GovernorContract.sol": { "/app/contracts/GovernorContract.sol": {
"lastModificationDate": 1747058663916, "lastModificationDate": 1748010105840,
"contentHash": "158e180f0fec77612a890bfd4ec9107a", "contentHash": "158e180f0fec77612a890bfd4ec9107a",
"sourceName": "contracts/GovernorContract.sol", "sourceName": "contracts/GovernorContract.sol",
"solcConfig": { "solcConfig": {
@@ -1817,7 +1816,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol": { "/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorSettings.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104140,
"contentHash": "80b3bbc71b44392e967e1b2f7704c692", "contentHash": "80b3bbc71b44392e967e1b2f7704c692",
"sourceName": "@openzeppelin/contracts/governance/extensions/GovernorSettings.sol", "sourceName": "@openzeppelin/contracts/governance/extensions/GovernorSettings.sol",
"solcConfig": { "solcConfig": {
@@ -1856,7 +1855,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol": { "/app/node_modules/@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol": {
"lastModificationDate": 1745825448087, "lastModificationDate": 1748776104140,
"contentHash": "4e2d53e70a7246b469fa77cdbb624b21", "contentHash": "4e2d53e70a7246b469fa77cdbb624b21",
"sourceName": "@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol", "sourceName": "@openzeppelin/contracts/governance/extensions/GovernorCountingSimple.sol",
"solcConfig": { "solcConfig": {
@@ -1895,7 +1894,7 @@
] ]
}, },
"/app/contracts/GovernanceToken.sol": { "/app/contracts/GovernanceToken.sol": {
"lastModificationDate": 1747057933847, "lastModificationDate": 1748010105840,
"contentHash": "1a25b332cd76e4cb6d65135515933e5c", "contentHash": "1a25b332cd76e4cb6d65135515933e5c",
"sourceName": "contracts/GovernanceToken.sol", "sourceName": "contracts/GovernanceToken.sol",
"solcConfig": { "solcConfig": {
@@ -1976,7 +1975,7 @@
] ]
}, },
"/app/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol": { "/app/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol": {
"lastModificationDate": 1745825448108, "lastModificationDate": 1748776104161,
"contentHash": "b1a8fc63b83ce00408e0c9ed1230b717", "contentHash": "b1a8fc63b83ce00408e0c9ed1230b717",
"sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol", "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol",
"solcConfig": { "solcConfig": {

View File

@@ -0,0 +1,14 @@
{
"name": "ест3",
"symbol": ест3",
"location": "07522, United States, Paterson",
"isicCodes": [
"0111"
],
"tokenAddress": "0xFcF1304FAe013d52e09a1497a47988d125a9e2Ed",
"timelockAddress": "0xbcF1daCB040b681129Df122f67a0D2eC23DA99B6",
"governorAddress": "0xC8aC4c9431B57934eEccac6322352abfcE8a994a",
"creationBlock": 8626309,
"creationTimestamp": 1750859640,
"deployedManually": true
}

View File

@@ -1,6 +1,26 @@
require('@nomicfoundation/hardhat-toolbox'); require('@nomicfoundation/hardhat-toolbox');
require('dotenv').config(); require('dotenv').config();
function getNetworks() {
const supported = [
{ id: 'bsc', envUrl: 'BSC_RPC_URL', envKey: 'BSC_PRIVATE_KEY' },
{ id: 'ethereum', envUrl: 'ETHEREUM_RPC_URL', envKey: 'ETHEREUM_PRIVATE_KEY' },
{ id: 'arbitrum', envUrl: 'ARBITRUM_RPC_URL', envKey: 'ARBITRUM_PRIVATE_KEY' },
{ id: 'polygon', envUrl: 'POLYGON_RPC_URL', envKey: 'POLYGON_PRIVATE_KEY' },
{ id: 'sepolia', envUrl: 'SEPOLIA_RPC_URL', envKey: 'SEPOLIA_PRIVATE_KEY' },
];
const networks = {};
for (const net of supported) {
if (process.env[net.envUrl] && process.env[net.envKey]) {
networks[net.id] = {
url: process.env[net.envUrl],
accounts: [process.env[net.envKey]],
};
}
}
return networks;
}
module.exports = { module.exports = {
solidity: { solidity: {
version: "0.8.20", version: "0.8.20",
@@ -12,10 +32,5 @@ module.exports = {
viaIR: true viaIR: true
} }
}, },
networks: { networks: getNetworks(),
sepolia: {
url: process.env.RPC_URL_ETH,
accounts: [process.env.PRIVATE_KEY],
},
},
}; };

View File

@@ -1,19 +1,23 @@
{ {
"name": "test2", "name": "ест3",
"symbol": "test2", "symbol": "тест3",
"location": "245000, 中国, 黄山市", "location": "07522, United States, Paterson",
"isicCodes": [ "isicCodes": [
"6810" "0111"
], ],
"partners": [ "partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b" "0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x0a98c54327253bb51f99c8218e5a7a01933d5f57"
], ],
"amounts": [ "amounts": [
"110000000000000000000" "1000000000000000000",
"1000000000000000000000000"
], ],
"network": "sepolia",
"minTimelockDelay": 1, "minTimelockDelay": 1,
"votingDelay": 0, "votingDelay": 6646,
"votingPeriod": 6646, "votingPeriod": 6646,
"proposalThreshold": "1", "proposalThreshold": "2",
"quorumPercentage": 51 "quorumPercentage": 51,
"privateKey": "7de38b2ada1d23581342f106c8587ce26068797b3bc06656e24b9dcd1810c7b1"
} }

View File

@@ -3,6 +3,7 @@ const path = require('path');
const fs = require('fs'); const fs = require('fs');
const { ethers } = require('ethers'); const { ethers } = require('ethers');
const logger = require('../utils/logger'); const logger = require('../utils/logger');
const { getRpcUrlByNetworkId } = require('./rpcProviderService');
/** /**
* Сервис для управления DLE (Digital Legal Entity) * Сервис для управления DLE (Digital Legal Entity)
@@ -36,8 +37,22 @@ class DLEService {
fs.copyFileSync(paramsFile, tempParamsFile); fs.copyFileSync(paramsFile, tempParamsFile);
logger.info(`Файл параметров скопирован успешно`); logger.info(`Файл параметров скопирован успешно`);
// Запускаем скрипт без передачи аргументов командной строки // Получаем rpc_url из базы по выбранной сети
const result = await this.runDeployScript(paramsFile); const rpcUrl = await getRpcUrlByNetworkId(deployParams.network);
if (!rpcUrl) {
throw new Error(`RPC URL для сети ${deployParams.network} не найден в базе данных`);
}
if (!dleParams.privateKey) {
throw new Error('Приватный ключ для деплоя не передан');
}
// Запускаем скрипт деплоя с нужными переменными окружения
const result = await this.runDeployScript(paramsFile, {
rpcUrl,
privateKey: dleParams.privateKey,
networkId: deployParams.network,
envNetworkKey: deployParams.network.toUpperCase()
});
logger.info('DLE успешно создано:', result); logger.info('DLE успешно создано:', result);
return result; return result;
@@ -129,21 +144,23 @@ class DLEService {
* @param {string} paramsFile - Путь к файлу с параметрами * @param {string} paramsFile - Путь к файлу с параметрами
* @returns {Promise<Object>} - Результат деплоя * @returns {Promise<Object>} - Результат деплоя
*/ */
runDeployScript(paramsFile) { runDeployScript(paramsFile, extraEnv = {}) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// Путь к новому скрипту для ручного деплоя (без фабрики)
const scriptPath = path.join(__dirname, '../scripts/deploy/create-dle-manual.js'); const scriptPath = path.join(__dirname, '../scripts/deploy/create-dle-manual.js');
// Проверяем, существует ли скрипт
if (!fs.existsSync(scriptPath)) { if (!fs.existsSync(scriptPath)) {
reject(new Error('Скрипт деплоя не найден: ' + scriptPath)); reject(new Error('Скрипт деплоя не найден: ' + scriptPath));
return; return;
} }
// Формируем универсальные переменные окружения
// Запускаем скрипт без передачи аргументов командной строки const envVars = {
const hardhatProcess = spawn('npx', ['hardhat', 'run', scriptPath, '--network', 'sepolia'], { ...process.env,
[`${extraEnv.envNetworkKey}_RPC_URL`]: extraEnv.rpcUrl,
[`${extraEnv.envNetworkKey}_PRIVATE_KEY`]: extraEnv.privateKey
};
// Запускаем скрипт с нужной сетью
const hardhatProcess = spawn('npx', ['hardhat', 'run', scriptPath, '--network', extraEnv.networkId], {
cwd: path.join(__dirname, '..'), cwd: path.join(__dirname, '..'),
env: { ...process.env }, env: envVars,
stdio: 'pipe' stdio: 'pipe'
}); });

View File

@@ -28,4 +28,9 @@ async function deleteRpcProvider(networkId) {
await db.getQuery()('DELETE FROM rpc_providers WHERE network_id = $1', [networkId]); await db.getQuery()('DELETE FROM rpc_providers WHERE network_id = $1', [networkId]);
} }
module.exports = { getAllRpcProviders, saveAllRpcProviders, upsertRpcProvider, deleteRpcProvider }; async function getRpcUrlByNetworkId(networkId) {
const { rows } = await db.getQuery()('SELECT rpc_url FROM rpc_providers WHERE network_id = $1', [networkId]);
return rows[0]?.rpc_url || null;
}
module.exports = { getAllRpcProviders, saveAllRpcProviders, upsertRpcProvider, deleteRpcProvider, getRpcUrlByNetworkId };

View File

@@ -0,0 +1,23 @@
{
"name": "тест 3",
"symbol": ест3",
"location": "07255, México",
"isicCodes": [
"6810",
"8510"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x15A4ed4759e5762174b300a4Cf51cc17ad967f4d"
],
"amounts": [
"1000000000000000000",
"100000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "10000",
"quorumPercentage": 51
}

View File

@@ -0,0 +1,23 @@
{
"name": "тест 3",
"symbol": ест3",
"location": "07255, México",
"isicCodes": [
"6810",
"8510"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x15A4ed4759e5762174b300a4Cf51cc17ad967f4d"
],
"amounts": [
"1000000000000000000",
"100000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "10000",
"quorumPercentage": 51
}

View File

@@ -0,0 +1,23 @@
{
"name": "тест 3",
"symbol": ест3",
"location": "07255, México",
"isicCodes": [
"6810",
"8510"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x15A4ed4759e5762174b300a4Cf51cc17ad967f4d"
],
"amounts": [
"1000000000000000000",
"100000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "10000",
"quorumPercentage": 51
}

View File

@@ -0,0 +1,23 @@
{
"name": "тест 3",
"symbol": ест3",
"location": "07255, México",
"isicCodes": [
"6810",
"8510"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x15A4ed4759e5762174b300a4Cf51cc17ad967f4d"
],
"amounts": [
"1000000000000000000",
"100000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "10000",
"quorumPercentage": 51
}

View File

@@ -0,0 +1,23 @@
{
"name": ест3 ",
"symbol": ест3",
"location": "07852, United States, Roxbury Township",
"isicCodes": [
"6411"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x0a98c54327253bb51f99c8218e5a7a01933d5f57"
],
"amounts": [
"1000000000000000000",
"5000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "5",
"quorumPercentage": 51,
"privateKey": "7de38b2ada1d23581342f106c8587ce26068797b3bc06656e24b9dcd1810c7b1"
}

View File

@@ -0,0 +1,23 @@
{
"name": ест3",
"symbol": "3тест",
"location": "07885, United States, Rockaway Township",
"isicCodes": [
"8411"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x15a4ed4759e5762174b300a4cf51cc17ad967f4d"
],
"amounts": [
"1000000000000000000",
"100000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "2",
"quorumPercentage": 51,
"privateKey": "7de38b2ada1d23581342f106c8587ce26068797b3bc06656e24b9dcd1810c7b1"
}

View File

@@ -0,0 +1,23 @@
{
"name": "ест3",
"symbol": ест3",
"location": "07522, United States, Paterson",
"isicCodes": [
"0111"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x0a98c54327253bb51f99c8218e5a7a01933d5f57"
],
"amounts": [
"1000000000000000000",
"1000000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "2",
"quorumPercentage": 51,
"privateKey": "7de38b2ada1d23581342f106c8587ce26068797b3bc06656e24b9dcd1810c7b1"
}

View File

@@ -0,0 +1,23 @@
{
"name": "ест3",
"symbol": ест3",
"location": "07522, United States, Paterson",
"isicCodes": [
"0111"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x0a98c54327253bb51f99c8218e5a7a01933d5f57"
],
"amounts": [
"1000000000000000000",
"1000000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "2",
"quorumPercentage": 51,
"privateKey": "7de38b2ada1d23581342f106c8587ce26068797b3bc06656e24b9dcd1810c7b1"
}

View File

@@ -0,0 +1,23 @@
{
"name": "ест3",
"symbol": ест3",
"location": "07522, United States, Paterson",
"isicCodes": [
"0111"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x0a98c54327253bb51f99c8218e5a7a01933d5f57"
],
"amounts": [
"1000000000000000000",
"1000000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "2",
"quorumPercentage": 51,
"privateKey": "7de38b2ada1d23581342f106c8587ce26068797b3bc06656e24b9dcd1810c7b1"
}

View File

@@ -0,0 +1,23 @@
{
"name": "ест3",
"symbol": ест3",
"location": "07522, United States, Paterson",
"isicCodes": [
"0111"
],
"partners": [
"0xf45aa4917b3775ba37f48aeb3dc1a943561e9e0b",
"0x0a98c54327253bb51f99c8218e5a7a01933d5f57"
],
"amounts": [
"1000000000000000000",
"1000000000000000000000000"
],
"network": "sepolia",
"minTimelockDelay": 1,
"votingDelay": 6646,
"votingPeriod": 6646,
"proposalThreshold": "2",
"quorumPercentage": 51,
"privateKey": "7de38b2ada1d23581342f106c8587ce26068797b3bc06656e24b9dcd1810c7b1"
}

View File

@@ -6,6 +6,28 @@ import axios from 'axios';
* Предоставляет списки доступных сетей, URL RPC и функции для работы с ними * Предоставляет списки доступных сетей, URL RPC и функции для работы с ними
*/ */
export default function useBlockchainNetworks() { export default function useBlockchainNetworks() {
// Список сетей, получаемый с бэкенда
const networks = ref([]);
const loadingNetworks = ref(false);
// Загрузка сетей с бэкенда
const fetchNetworks = async () => {
loadingNetworks.value = true;
try {
const { data } = await axios.get('/api/settings/rpc');
const networksArr = data.data || [];
networks.value = networksArr.map(n => ({
value: n.network_id,
label: n.network_id, // Можно заменить на красивое имя, если появится
url: n.rpc_url
}));
} catch (e) {
networks.value = [];
} finally {
loadingNetworks.value = false;
}
};
// Группы сетей для отображения в интерфейсе // Группы сетей для отображения в интерфейсе
const networkGroups = [ const networkGroups = [
{ {
@@ -56,7 +78,7 @@ export default function useBlockchainNetworks() {
]; ];
// Создаем плоский список всех сетей для удобного использования в компонентах // Создаем плоский список всех сетей для удобного использования в компонентах
const networks = computed(() => { const networksComputed = computed(() => {
return networkGroups.flatMap(group => group.options); return networkGroups.flatMap(group => group.options);
}); });
@@ -122,12 +144,12 @@ export default function useBlockchainNetworks() {
// Функция получения списка всех доступных сетей в плоском формате // Функция получения списка всех доступных сетей в плоском формате
const getAllNetworks = () => { const getAllNetworks = () => {
return networks.value; return networksComputed.value;
}; };
// Функция получения метаданных сети по ID // Функция получения метаданных сети по ID
const getNetworkMetadata = (networkId) => { const getNetworkMetadata = (networkId) => {
return networks.value.find(network => network.value === networkId) || null; return networksComputed.value.find(network => network.value === networkId) || null;
}; };
// Состояние для тестирования RPC // Состояние для тестирования RPC
@@ -171,12 +193,15 @@ export default function useBlockchainNetworks() {
}; };
return { return {
networks,
fetchNetworks,
loadingNetworks,
// Данные // Данные
networkGroups, networkGroups,
networkEntry, networkEntry,
testingRpc, testingRpc,
testingRpcId, testingRpcId,
networks, // Экспортируем плоский список сетей networksComputed, // Экспортируем плоский список сетей
// Методы // Методы
getChainIdByNetworkId, getChainIdByNetworkId,

View File

@@ -240,6 +240,7 @@
<div class="form-group"> <div class="form-group">
<label class="form-label" for="deployNetwork">Выберите сеть блокчейн для деплоя:</label> <label class="form-label" for="deployNetwork">Выберите сеть блокчейн для деплоя:</label>
<select id="deployNetwork" v-model="dleDeploymentSettings.blockchainNetwork" class="form-control"> <select id="deployNetwork" v-model="dleDeploymentSettings.blockchainNetwork" class="form-control">
<option v-if="loadingNetworks" disabled>Загрузка сетей...</option>
<option v-for="network in networks" :key="network.value" :value="network.value"> <option v-for="network in networks" :key="network.value" :value="network.value">
{{ network.label }} {{ network.label }}
</option> </option>
@@ -334,7 +335,9 @@ const {
testRpcConnection, testRpcConnection,
testingRpc, testingRpc,
testingRpcId, testingRpcId,
networks networks,
fetchNetworks,
loadingNetworks
} = useBlockchainNetworks(); } = useBlockchainNetworks();
// Добавляем настройки безопасности и подключения // Добавляем настройки безопасности и подключения
@@ -546,6 +549,7 @@ watch(selectedClass, () => {
// --- Начальная загрузка данных --- // --- Начальная загрузка данных ---
onMounted(() => { onMounted(() => {
fetchIsicCodes({ level: 1 }, sectionOptions, isLoadingSections); fetchIsicCodes({ level: 1 }, sectionOptions, isLoadingSections);
fetchNetworks(); // Загружаем список сетей для деплоя
// Автоподстановка адреса авторизированного пользователя в первого партнера, если есть права админа // Автоподстановка адреса авторизированного пользователя в первого партнера, если есть права админа
if (address.value && isAdmin.value && dleDeploymentSettings.partners.length > 0) { if (address.value && isAdmin.value && dleDeploymentSettings.partners.length > 0) {
@@ -622,7 +626,8 @@ const formattedDLEParams = computed(() => {
votingDelay: Math.round(dleDeploymentSettings.votingDelayDays * 24 * 60 * 60 / 13), // конвертируем дни в блоки (13 секунд на блок) votingDelay: Math.round(dleDeploymentSettings.votingDelayDays * 24 * 60 * 60 / 13), // конвертируем дни в блоки (13 секунд на блок)
votingPeriod: Math.round(dleDeploymentSettings.votingPeriodDays * 24 * 60 * 60 / 13), // конвертируем дни в блоки votingPeriod: Math.round(dleDeploymentSettings.votingPeriodDays * 24 * 60 * 60 / 13), // конвертируем дни в блоки
proposalThreshold: dleDeploymentSettings.proposalThreshold, proposalThreshold: dleDeploymentSettings.proposalThreshold,
quorumPercentage: dleDeploymentSettings.quorumPercent quorumPercentage: dleDeploymentSettings.quorumPercent,
privateKey: securitySettings.deployerPrivateKey
}; };
}); });