优化发布脚本, 调整输出配置文件的路径
This commit is contained in:
parent
775fc91697
commit
77a208736a
17078
build/contracts/AirdropNft.json
Normal file
17078
build/contracts/AirdropNft.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -233,7 +233,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -246,7 +247,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -259,7 +261,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -272,7 +275,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -296,7 +300,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -315,7 +320,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -339,7 +345,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -358,7 +365,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -400,7 +408,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -413,7 +422,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -444,7 +454,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -481,11 +492,13 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"stateMutability": "payable",
|
||||
"type": "receive"
|
||||
"type": "receive",
|
||||
"payable": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -504,7 +517,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -523,7 +537,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -542,7 +557,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -561,7 +577,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -580,7 +597,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -599,7 +617,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -638,7 +657,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "pure",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -766,7 +786,8 @@
|
||||
"name": "execute",
|
||||
"outputs": [],
|
||||
"stateMutability": "payable",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"payable": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -34727,12 +34748,24 @@
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {
|
||||
"195": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0x705FA0719764E184458b407dfeFD54958b52070a",
|
||||
"transactionHash": "0x1b65a5330fbc9129f1db2d20a6816e04ee087dd7359cf7c6e929eb17f22d6fa1"
|
||||
},
|
||||
"1338": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0xD833215cBcc3f914bD1C9ece3EE7BF8B14f841bb",
|
||||
"transactionHash": "0xbd42a64a4cfcce217f622c2afbe01522fbba731e7c1a12930e40b68ed160e168"
|
||||
},
|
||||
"5777": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0xB28eAd4e87100aa438da90ce87dF9BAd201C391d",
|
||||
"transactionHash": "0x2e12b3d9e88e3163d1b656e026a21e6a398d67c9a9fea5e9ac70e633412f86a2"
|
||||
},
|
||||
"80001": {
|
||||
"events": {
|
||||
"0xc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b58": {
|
||||
@ -35061,8 +35094,9 @@
|
||||
"transactionHash": "0x2d0bb97e5bbb23a344336df330f4e4342046f63e9355ffa75b01699c402e279a"
|
||||
}
|
||||
},
|
||||
"schemaVersion": "3.4.11",
|
||||
"updatedAt": "2023-07-26T08:14:44.614Z",
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:55.268Z",
|
||||
"networkType": "ethereum",
|
||||
"devdoc": {
|
||||
"events": {
|
||||
"Cancelled(bytes32)": {
|
||||
|
File diff suppressed because one or more lines are too long
@ -249,7 +249,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -262,7 +263,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -275,7 +277,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -288,7 +291,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -307,7 +311,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -326,7 +331,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -345,7 +351,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -364,7 +371,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -383,7 +391,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -396,7 +405,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -409,7 +419,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -428,7 +439,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -447,7 +459,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -608,7 +621,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -621,7 +635,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -647,7 +662,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -660,7 +676,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -673,7 +690,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -686,7 +704,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -699,7 +718,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -712,7 +732,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -36770,9 +36791,23 @@
|
||||
"name": "solc",
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {},
|
||||
"schemaVersion": "3.4.11",
|
||||
"updatedAt": "2023-07-03T04:58:03.654Z",
|
||||
"networks": {
|
||||
"195": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0xD7Fc45b5E6C7A7ad299b45E6D34B59b9c3B5e7e1",
|
||||
"transactionHash": "0xece0982c0c64d39662087a75b5a0289d7760d2014f53ed6f9f2bf0f30a6b5502"
|
||||
},
|
||||
"5777": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0xA31b1edf33E4fbAd25f515F2466dAD36a31239DA",
|
||||
"transactionHash": "0x9cbe5e4e191b3166f7e9344dfbf6a9372895814474fad5d328c9a99407037941"
|
||||
}
|
||||
},
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:58.652Z",
|
||||
"networkType": "ethereum",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
"methods": {
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -16527,6 +16527,164 @@
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {
|
||||
"195": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "owner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "spender",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "value",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Approval",
|
||||
"type": "event"
|
||||
},
|
||||
"0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Paused",
|
||||
"type": "event"
|
||||
},
|
||||
"0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "previousAdminRole",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "newAdminRole",
|
||||
"type": "bytes32"
|
||||
}
|
||||
],
|
||||
"name": "RoleAdminChanged",
|
||||
"type": "event"
|
||||
},
|
||||
"0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleGranted",
|
||||
"type": "event"
|
||||
},
|
||||
"0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleRevoked",
|
||||
"type": "event"
|
||||
},
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "from",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "to",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "value",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Transfer",
|
||||
"type": "event"
|
||||
},
|
||||
"0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Unpaused",
|
||||
"type": "event"
|
||||
}
|
||||
},
|
||||
"links": {},
|
||||
"address": "0xa12cdbC6BAcDDE9BbC03F9a7ea1240c7D48009E5",
|
||||
"transactionHash": "0x5837b2cac1e7eee5952031c7af645966524f91c6b91ad6230db14bd592575107"
|
||||
},
|
||||
"1338": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
@ -16629,6 +16787,164 @@
|
||||
"address": "0xc22Ffa318051d8aF4E5f2E2732d7049486fcE093",
|
||||
"transactionHash": "0xa39ae7f02bd06857305971e48c72471c2cf74793ea491abd7492411e1ee9c28d"
|
||||
},
|
||||
"5777": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "owner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "spender",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "value",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Approval",
|
||||
"type": "event"
|
||||
},
|
||||
"0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Paused",
|
||||
"type": "event"
|
||||
},
|
||||
"0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "previousAdminRole",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "newAdminRole",
|
||||
"type": "bytes32"
|
||||
}
|
||||
],
|
||||
"name": "RoleAdminChanged",
|
||||
"type": "event"
|
||||
},
|
||||
"0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleGranted",
|
||||
"type": "event"
|
||||
},
|
||||
"0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleRevoked",
|
||||
"type": "event"
|
||||
},
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "from",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "to",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "value",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Transfer",
|
||||
"type": "event"
|
||||
},
|
||||
"0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Unpaused",
|
||||
"type": "event"
|
||||
}
|
||||
},
|
||||
"links": {},
|
||||
"address": "0xa2DBA9631F5cf61d7DCe57F0E85CD8308D40cAA7",
|
||||
"transactionHash": "0xfd9d94213f49ab38604455ca5c80c02e40d1361afffb4e0ffe2d6ef828b23810"
|
||||
},
|
||||
"80001": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
@ -16788,8 +17104,8 @@
|
||||
"transactionHash": "0xcad8d192f4cda4f2462dff43ddc0f5a846e30f5833d6c00a1e7981852b28984c"
|
||||
}
|
||||
},
|
||||
"schemaVersion": "3.4.11",
|
||||
"updatedAt": "2023-04-26T07:39:54.112Z",
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:55.260Z",
|
||||
"networkType": "ethereum",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
|
File diff suppressed because one or more lines are too long
@ -206,7 +206,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -225,7 +226,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -272,7 +274,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -285,7 +288,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -304,7 +308,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -355,7 +360,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -20867,9 +20873,413 @@
|
||||
"name": "solc",
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {},
|
||||
"schemaVersion": "3.4.11",
|
||||
"updatedAt": "2023-08-25T08:40:25.078Z",
|
||||
"networks": {
|
||||
"195": {
|
||||
"events": {
|
||||
"0x35b8471858b5bc53c0d39bb906b1173ebf2d19161b461f366e19145d1e6cde25": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "oldVal",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "newVal",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "EditCooldownSeconds",
|
||||
"type": "event"
|
||||
},
|
||||
"0x311392e1114cc0ea9ff025336b24775043331a6fe13f345d2fd6b15e00e9ea58": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "nftToken",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "bool",
|
||||
"name": "status",
|
||||
"type": "bool"
|
||||
}
|
||||
],
|
||||
"name": "EditNFTSuppout",
|
||||
"type": "event"
|
||||
},
|
||||
"0x33757a73fd2ff6484f4bebeab25b51d14b4400d5c94d0abf055cc7e0384d552c": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint64",
|
||||
"name": "period",
|
||||
"type": "uint64"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "bool",
|
||||
"name": "status",
|
||||
"type": "bool"
|
||||
}
|
||||
],
|
||||
"name": "EditPeriods",
|
||||
"type": "event"
|
||||
},
|
||||
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "previousOwner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "newOwner",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "OwnershipTransferred",
|
||||
"type": "event"
|
||||
},
|
||||
"0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Paused",
|
||||
"type": "event"
|
||||
},
|
||||
"0xb0b4db7b16d8fbec870eb4d73be21f2d54bf12749c38541aa926f79efec4da90": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "nft",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "start",
|
||||
"type": "uint64"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "stakeTime",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
"indexed": false,
|
||||
"internalType": "struct ERC721Staking.Staker[]",
|
||||
"name": "infos",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "Redeem",
|
||||
"type": "event"
|
||||
},
|
||||
"0xe8d59968aa559ccfce98eff368ec96daca37793c59eee38ef0fdcf7a6cbd5916": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "nft",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "start",
|
||||
"type": "uint64"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "stakeTime",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
"indexed": false,
|
||||
"internalType": "struct ERC721Staking.Staker[]",
|
||||
"name": "infos",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "Staked",
|
||||
"type": "event"
|
||||
},
|
||||
"0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Unpaused",
|
||||
"type": "event"
|
||||
}
|
||||
},
|
||||
"links": {},
|
||||
"address": "0x07564E0C9dAC31F1640b34070C09aF3C820CD9E7",
|
||||
"transactionHash": "0xa9154213936620e8e827a6bac6050acedd54791f818e7f05f5c6e9167040d2a8"
|
||||
},
|
||||
"5777": {
|
||||
"events": {
|
||||
"0x35b8471858b5bc53c0d39bb906b1173ebf2d19161b461f366e19145d1e6cde25": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "oldVal",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "newVal",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "EditCooldownSeconds",
|
||||
"type": "event"
|
||||
},
|
||||
"0x311392e1114cc0ea9ff025336b24775043331a6fe13f345d2fd6b15e00e9ea58": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "nftToken",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "bool",
|
||||
"name": "status",
|
||||
"type": "bool"
|
||||
}
|
||||
],
|
||||
"name": "EditNFTSuppout",
|
||||
"type": "event"
|
||||
},
|
||||
"0x33757a73fd2ff6484f4bebeab25b51d14b4400d5c94d0abf055cc7e0384d552c": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint64",
|
||||
"name": "period",
|
||||
"type": "uint64"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "bool",
|
||||
"name": "status",
|
||||
"type": "bool"
|
||||
}
|
||||
],
|
||||
"name": "EditPeriods",
|
||||
"type": "event"
|
||||
},
|
||||
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "previousOwner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "newOwner",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "OwnershipTransferred",
|
||||
"type": "event"
|
||||
},
|
||||
"0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Paused",
|
||||
"type": "event"
|
||||
},
|
||||
"0xb0b4db7b16d8fbec870eb4d73be21f2d54bf12749c38541aa926f79efec4da90": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "nft",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "start",
|
||||
"type": "uint64"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "stakeTime",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
"indexed": false,
|
||||
"internalType": "struct ERC721Staking.Staker[]",
|
||||
"name": "infos",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "Redeem",
|
||||
"type": "event"
|
||||
},
|
||||
"0xe8d59968aa559ccfce98eff368ec96daca37793c59eee38ef0fdcf7a6cbd5916": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"components": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "user",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "nft",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "start",
|
||||
"type": "uint64"
|
||||
},
|
||||
{
|
||||
"internalType": "uint64",
|
||||
"name": "stakeTime",
|
||||
"type": "uint64"
|
||||
}
|
||||
],
|
||||
"indexed": false,
|
||||
"internalType": "struct ERC721Staking.Staker[]",
|
||||
"name": "infos",
|
||||
"type": "tuple[]"
|
||||
}
|
||||
],
|
||||
"name": "Staked",
|
||||
"type": "event"
|
||||
},
|
||||
"0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "Unpaused",
|
||||
"type": "event"
|
||||
}
|
||||
},
|
||||
"links": {},
|
||||
"address": "0x193a9148CbC2cc57F4A4876D5CB451C24DEe50A1",
|
||||
"transactionHash": "0x48678a6e194b279b09ad9590235b314af0782b5cb330478df382deb73f5338b3"
|
||||
}
|
||||
},
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:59.865Z",
|
||||
"networkType": "ethereum",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
"methods": {
|
||||
|
20425
build/contracts/EvolveProxy.json
Normal file
20425
build/contracts/EvolveProxy.json
Normal file
File diff suppressed because one or more lines are too long
11180
build/contracts/ExecuteRelay.json
Normal file
11180
build/contracts/ExecuteRelay.json
Normal file
File diff suppressed because one or more lines are too long
@ -158,7 +158,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -171,7 +172,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -195,7 +197,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -238,7 +241,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -282,7 +286,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -325,7 +330,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -367,7 +373,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -404,7 +411,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -453,7 +461,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -472,7 +481,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -485,7 +495,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -498,7 +509,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -15533,6 +15545,144 @@
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {
|
||||
"195": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "owner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "spender",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "value",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Approval",
|
||||
"type": "event"
|
||||
},
|
||||
"0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "previousAdminRole",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "newAdminRole",
|
||||
"type": "bytes32"
|
||||
}
|
||||
],
|
||||
"name": "RoleAdminChanged",
|
||||
"type": "event"
|
||||
},
|
||||
"0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleGranted",
|
||||
"type": "event"
|
||||
},
|
||||
"0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleRevoked",
|
||||
"type": "event"
|
||||
},
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "from",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "to",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256",
|
||||
"name": "value",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Transfer",
|
||||
"type": "event"
|
||||
}
|
||||
},
|
||||
"links": {},
|
||||
"address": "0x0Fd13D2CD0B6c679B6f92590E0b91C18DDe7BD3A",
|
||||
"transactionHash": "0x9bc039bed5ad69015f639e83544d09e01e89d2bd43a1d468986f837ac991bb21"
|
||||
},
|
||||
"5777": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0xc97A85581b2a5Af7c69838B783311332F522a451",
|
||||
"transactionHash": "0x885393685ad74a1c7c86b71221724a30f8e95a75fd05f38294ef758f80e7ebfb"
|
||||
},
|
||||
"421613": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
@ -15540,8 +15690,9 @@
|
||||
"transactionHash": "0x4e94ba799f76ccf550df8f9eb25c1748766875f8be2b5324defb9178682dd492"
|
||||
}
|
||||
},
|
||||
"schemaVersion": "3.4.11",
|
||||
"updatedAt": "2023-06-29T12:08:22.945Z",
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:58.693Z",
|
||||
"networkType": "ethereum",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
"methods": {
|
||||
|
24353
build/contracts/FTSigner.json
Normal file
24353
build/contracts/FTSigner.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
5571
build/contracts/Groth16Verifier.json
Normal file
5571
build/contracts/Groth16Verifier.json
Normal file
File diff suppressed because one or more lines are too long
5581
build/contracts/Groth16Verifier01.json
Normal file
5581
build/contracts/Groth16Verifier01.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
11723
build/contracts/HasSignature712.json
Normal file
11723
build/contracts/HasSignature712.json
Normal file
File diff suppressed because one or more lines are too long
535
build/contracts/IAsset.json
Normal file
535
build/contracts/IAsset.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
3780
build/contracts/IBurnableERC721.json
Normal file
3780
build/contracts/IBurnableERC721.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
211
build/contracts/IMetaData.json
Normal file
211
build/contracts/IMetaData.json
Normal file
@ -0,0 +1,211 @@
|
||||
{
|
||||
"contractName": "IMetaData",
|
||||
"abi": [
|
||||
{
|
||||
"inputs": [
|
||||
{
|
||||
"internalType": "address",
|
||||
"name": "token",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "getMetaData",
|
||||
"outputs": [
|
||||
{
|
||||
"internalType": "string",
|
||||
"name": "",
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMetaData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/IMetaData.sol\":\"IMetaData\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IMetaData.sol\":{\"keccak256\":\"0x60a2ea09cbe9ba341f76bd69f5bfeae55efb109ffb2d805167c8d714991a9c08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a49c5c6d6f0547cccffe626530771cf5693c3300d082a8c8eb550c683d92e6c\",\"dweb:/ipfs/QmUJfLR4KYiphgXFhLecgNfKhRJYfpar4cF1D68vZs4gVX\"]}},\"version\":1}",
|
||||
"bytecode": "0x",
|
||||
"deployedBytecode": "0x",
|
||||
"immutableReferences": {},
|
||||
"generatedSources": [],
|
||||
"deployedGeneratedSources": [],
|
||||
"sourceMap": "",
|
||||
"deployedSourceMap": "",
|
||||
"source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\ninterface IMetaData {\n function getMetaData(\n address token,\n uint256 tokenId\n ) external view returns (string memory);\n}\n",
|
||||
"sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/interfaces/IMetaData.sol",
|
||||
"ast": {
|
||||
"absolutePath": "project:/contracts/interfaces/IMetaData.sol",
|
||||
"exportedSymbols": {
|
||||
"IMetaData": [
|
||||
9973
|
||||
]
|
||||
},
|
||||
"id": 9974,
|
||||
"license": "MIT",
|
||||
"nodeType": "SourceUnit",
|
||||
"nodes": [
|
||||
{
|
||||
"id": 9963,
|
||||
"literals": [
|
||||
"solidity",
|
||||
"0.8",
|
||||
".10"
|
||||
],
|
||||
"nodeType": "PragmaDirective",
|
||||
"src": "32:23:46"
|
||||
},
|
||||
{
|
||||
"abstract": false,
|
||||
"baseContracts": [],
|
||||
"canonicalName": "IMetaData",
|
||||
"contractDependencies": [],
|
||||
"contractKind": "interface",
|
||||
"fullyImplemented": false,
|
||||
"id": 9973,
|
||||
"linearizedBaseContracts": [
|
||||
9973
|
||||
],
|
||||
"name": "IMetaData",
|
||||
"nameLocation": "67:9:46",
|
||||
"nodeType": "ContractDefinition",
|
||||
"nodes": [
|
||||
{
|
||||
"functionSelector": "f666196d",
|
||||
"id": 9972,
|
||||
"implemented": false,
|
||||
"kind": "function",
|
||||
"modifiers": [],
|
||||
"name": "getMetaData",
|
||||
"nameLocation": "90:11:46",
|
||||
"nodeType": "FunctionDefinition",
|
||||
"parameters": {
|
||||
"id": 9968,
|
||||
"nodeType": "ParameterList",
|
||||
"parameters": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 9965,
|
||||
"mutability": "mutable",
|
||||
"name": "token",
|
||||
"nameLocation": "115:5:46",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 9972,
|
||||
"src": "107:13:46",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "default",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_address",
|
||||
"typeString": "address"
|
||||
},
|
||||
"typeName": {
|
||||
"id": 9964,
|
||||
"name": "address",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "107:7:46",
|
||||
"stateMutability": "nonpayable",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_address",
|
||||
"typeString": "address"
|
||||
}
|
||||
},
|
||||
"visibility": "internal"
|
||||
},
|
||||
{
|
||||
"constant": false,
|
||||
"id": 9967,
|
||||
"mutability": "mutable",
|
||||
"name": "tokenId",
|
||||
"nameLocation": "134:7:46",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 9972,
|
||||
"src": "126:15:46",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "default",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
},
|
||||
"typeName": {
|
||||
"id": 9966,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "126:7:46",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"src": "101:44:46"
|
||||
},
|
||||
"returnParameters": {
|
||||
"id": 9971,
|
||||
"nodeType": "ParameterList",
|
||||
"parameters": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 9970,
|
||||
"mutability": "mutable",
|
||||
"name": "",
|
||||
"nameLocation": "-1:-1:-1",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 9972,
|
||||
"src": "169:13:46",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "memory",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_string_memory_ptr",
|
||||
"typeString": "string"
|
||||
},
|
||||
"typeName": {
|
||||
"id": 9969,
|
||||
"name": "string",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "169:6:46",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_string_storage_ptr",
|
||||
"typeString": "string"
|
||||
}
|
||||
},
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"src": "168:15:46"
|
||||
},
|
||||
"scope": 9973,
|
||||
"src": "81:103:46",
|
||||
"stateMutability": "view",
|
||||
"virtual": false,
|
||||
"visibility": "external"
|
||||
}
|
||||
],
|
||||
"scope": 9974,
|
||||
"src": "57:129:46",
|
||||
"usedErrors": []
|
||||
}
|
||||
],
|
||||
"src": "32:155:46"
|
||||
},
|
||||
"compiler": {
|
||||
"name": "solc",
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {},
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:52.352Z",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
"methods": {},
|
||||
"version": 1
|
||||
},
|
||||
"userdoc": {
|
||||
"kind": "user",
|
||||
"methods": {},
|
||||
"version": 1
|
||||
}
|
||||
}
|
1558
build/contracts/IToken.json
Normal file
1558
build/contracts/IToken.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -52,7 +52,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -65,7 +66,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -109,7 +111,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -10708,9 +10711,23 @@
|
||||
"name": "solc",
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {},
|
||||
"schemaVersion": "3.4.11",
|
||||
"updatedAt": "2023-06-26T03:17:27.902Z",
|
||||
"networks": {
|
||||
"195": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0xd46fA2E72BA0F54092D0eF6a6e0D1d5660259C7a",
|
||||
"transactionHash": "0x6d926bd8ce898cdd2f388b3acca5882dab837de65329d14eff2072d36e5b978d"
|
||||
},
|
||||
"5777": {
|
||||
"events": {},
|
||||
"links": {},
|
||||
"address": "0xb8739c95fF0EA21B6A4EDc91159080aFd5882847",
|
||||
"transactionHash": "0xf0ab761d550eb2cc8c5790a3031545ae1ccefb66cfc7aeca29ce9dfd12fd69d6"
|
||||
}
|
||||
},
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:59.503Z",
|
||||
"networkType": "ethereum",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
"methods": {
|
||||
|
1602
build/contracts/MallBase.json
Normal file
1602
build/contracts/MallBase.json
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -228,7 +228,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -241,7 +242,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -254,7 +256,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -291,7 +294,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -310,7 +314,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -329,7 +334,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -371,7 +377,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -395,7 +402,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -414,7 +422,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -427,7 +436,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -446,7 +456,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -564,7 +575,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -577,7 +589,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -596,7 +609,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -620,7 +634,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -639,7 +654,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [],
|
||||
@ -652,7 +668,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -803,7 +820,8 @@
|
||||
}
|
||||
],
|
||||
"stateMutability": "view",
|
||||
"type": "function"
|
||||
"type": "function",
|
||||
"constant": true
|
||||
},
|
||||
{
|
||||
"inputs": [
|
||||
@ -27916,6 +27934,410 @@
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {
|
||||
"195": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "owner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "approved",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Approval",
|
||||
"type": "event"
|
||||
},
|
||||
"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "owner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "operator",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "bool",
|
||||
"name": "approved",
|
||||
"type": "bool"
|
||||
}
|
||||
],
|
||||
"name": "ApprovalForAll",
|
||||
"type": "event"
|
||||
},
|
||||
"0x6fb12a9545315eb6982084f0c16aaa522d6073c42806eed44c5775ddd2682431": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "to",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256[]",
|
||||
"name": "tokenIds",
|
||||
"type": "uint256[]"
|
||||
}
|
||||
],
|
||||
"name": "BatchMint",
|
||||
"type": "event"
|
||||
},
|
||||
"0x57424d5909ad92dd80fbaa1967a047a5975a0e9bb94726d561734e667cdf4227": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Lock",
|
||||
"type": "event"
|
||||
},
|
||||
"0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "previousAdminRole",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "newAdminRole",
|
||||
"type": "bytes32"
|
||||
}
|
||||
],
|
||||
"name": "RoleAdminChanged",
|
||||
"type": "event"
|
||||
},
|
||||
"0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleGranted",
|
||||
"type": "event"
|
||||
},
|
||||
"0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleRevoked",
|
||||
"type": "event"
|
||||
},
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "from",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "to",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Transfer",
|
||||
"type": "event"
|
||||
},
|
||||
"0xa58a8ae4556605e0a8c4d993e8009ee9bea04a4bdfb3209a76ff8b83fa26b320": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "UnLock",
|
||||
"type": "event"
|
||||
}
|
||||
},
|
||||
"links": {},
|
||||
"address": "0xC35Dcdb3672f1CFC5fe0B0Ec6861a5e9777757CD",
|
||||
"transactionHash": "0x78c850d39a9f35b8a0aca2837bf3c004dc38baaabe4672752d55a79df459b737"
|
||||
},
|
||||
"5777": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "owner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "approved",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Approval",
|
||||
"type": "event"
|
||||
},
|
||||
"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "owner",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "operator",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "bool",
|
||||
"name": "approved",
|
||||
"type": "bool"
|
||||
}
|
||||
],
|
||||
"name": "ApprovalForAll",
|
||||
"type": "event"
|
||||
},
|
||||
"0x6fb12a9545315eb6982084f0c16aaa522d6073c42806eed44c5775ddd2682431": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "to",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": false,
|
||||
"internalType": "uint256[]",
|
||||
"name": "tokenIds",
|
||||
"type": "uint256[]"
|
||||
}
|
||||
],
|
||||
"name": "BatchMint",
|
||||
"type": "event"
|
||||
},
|
||||
"0x57424d5909ad92dd80fbaa1967a047a5975a0e9bb94726d561734e667cdf4227": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Lock",
|
||||
"type": "event"
|
||||
},
|
||||
"0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "previousAdminRole",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "newAdminRole",
|
||||
"type": "bytes32"
|
||||
}
|
||||
],
|
||||
"name": "RoleAdminChanged",
|
||||
"type": "event"
|
||||
},
|
||||
"0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleGranted",
|
||||
"type": "event"
|
||||
},
|
||||
"0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "bytes32",
|
||||
"name": "role",
|
||||
"type": "bytes32"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "account",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "sender",
|
||||
"type": "address"
|
||||
}
|
||||
],
|
||||
"name": "RoleRevoked",
|
||||
"type": "event"
|
||||
},
|
||||
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "from",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "address",
|
||||
"name": "to",
|
||||
"type": "address"
|
||||
},
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "Transfer",
|
||||
"type": "event"
|
||||
},
|
||||
"0xa58a8ae4556605e0a8c4d993e8009ee9bea04a4bdfb3209a76ff8b83fa26b320": {
|
||||
"anonymous": false,
|
||||
"inputs": [
|
||||
{
|
||||
"indexed": true,
|
||||
"internalType": "uint256",
|
||||
"name": "tokenId",
|
||||
"type": "uint256"
|
||||
}
|
||||
],
|
||||
"name": "UnLock",
|
||||
"type": "event"
|
||||
}
|
||||
},
|
||||
"links": {},
|
||||
"address": "0x33Ecac595cFad08721aF95d53eC61Ec46b92071b",
|
||||
"transactionHash": "0xcf17d7a951cd2d1eea63a2d31a4fd695f582145c869170b7ecfe6cfd3858a82f"
|
||||
},
|
||||
"421613": {
|
||||
"events": {
|
||||
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
|
||||
@ -28125,8 +28547,9 @@
|
||||
"transactionHash": "0x3ec05f484314a519f76d32a291232eb844dc8f4286df76d517e367eab8997e93"
|
||||
}
|
||||
},
|
||||
"schemaVersion": "3.4.11",
|
||||
"updatedAt": "2023-06-28T08:33:24.098Z",
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:19:31.591Z",
|
||||
"networkType": "ethereum",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
"methods": {
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
20928
build/contracts/TokenStaking.json
Normal file
20928
build/contracts/TokenStaking.json
Normal file
File diff suppressed because one or more lines are too long
@ -7,30 +7,30 @@
|
||||
"immutableReferences": {},
|
||||
"generatedSources": [],
|
||||
"deployedGeneratedSources": [],
|
||||
"sourceMap": "57:211:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
||||
"deployedSourceMap": "57:211:48:-:0;;;;;;;;",
|
||||
"sourceMap": "57:211:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
||||
"deployedSourceMap": "57:211:72:-:0;;;;;;;;",
|
||||
"source": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.10;\n\nlibrary UInt {\n function asSingletonArray(uint256 element)\n internal\n pure\n returns (uint256[] memory)\n {\n uint256[] memory array = new uint256[](1);\n array[0] = element;\n return array;\n }\n}\n",
|
||||
"sourcePath": "/Users/zhl/Documents/workspace/game/becrypto/contracts/utils/UInt.sol",
|
||||
"sourcePath": "/Users/zhl/Documents/workspace/crypto/becrypto/contracts/utils/UInt.sol",
|
||||
"ast": {
|
||||
"absolutePath": "project:/contracts/utils/UInt.sol",
|
||||
"exportedSymbols": {
|
||||
"UInt": [
|
||||
11488
|
||||
17407
|
||||
]
|
||||
},
|
||||
"id": 11489,
|
||||
"id": 17408,
|
||||
"license": "MIT",
|
||||
"nodeType": "SourceUnit",
|
||||
"nodes": [
|
||||
{
|
||||
"id": 11459,
|
||||
"id": 17378,
|
||||
"literals": [
|
||||
"solidity",
|
||||
"0.8",
|
||||
".10"
|
||||
],
|
||||
"nodeType": "PragmaDirective",
|
||||
"src": "32:23:48"
|
||||
"src": "32:23:72"
|
||||
},
|
||||
{
|
||||
"abstract": false,
|
||||
@ -39,34 +39,34 @@
|
||||
"contractDependencies": [],
|
||||
"contractKind": "library",
|
||||
"fullyImplemented": true,
|
||||
"id": 11488,
|
||||
"id": 17407,
|
||||
"linearizedBaseContracts": [
|
||||
11488
|
||||
17407
|
||||
],
|
||||
"name": "UInt",
|
||||
"nameLocation": "65:4:48",
|
||||
"nameLocation": "65:4:72",
|
||||
"nodeType": "ContractDefinition",
|
||||
"nodes": [
|
||||
{
|
||||
"body": {
|
||||
"id": 11486,
|
||||
"id": 17405,
|
||||
"nodeType": "Block",
|
||||
"src": "172:94:48",
|
||||
"src": "172:94:72",
|
||||
"statements": [
|
||||
{
|
||||
"assignments": [
|
||||
11471
|
||||
17390
|
||||
],
|
||||
"declarations": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 11471,
|
||||
"id": 17390,
|
||||
"mutability": "mutable",
|
||||
"name": "array",
|
||||
"nameLocation": "195:5:48",
|
||||
"nameLocation": "195:5:72",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 11486,
|
||||
"src": "178:22:48",
|
||||
"scope": 17405,
|
||||
"src": "178:22:72",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "memory",
|
||||
"typeDescriptions": {
|
||||
@ -75,18 +75,18 @@
|
||||
},
|
||||
"typeName": {
|
||||
"baseType": {
|
||||
"id": 11469,
|
||||
"id": 17388,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "178:7:48",
|
||||
"src": "178:7:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11470,
|
||||
"id": 17389,
|
||||
"nodeType": "ArrayTypeName",
|
||||
"src": "178:9:48",
|
||||
"src": "178:9:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
||||
"typeString": "uint256[]"
|
||||
@ -95,19 +95,19 @@
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"id": 11477,
|
||||
"id": 17396,
|
||||
"initialValue": {
|
||||
"arguments": [
|
||||
{
|
||||
"hexValue": "31",
|
||||
"id": 11475,
|
||||
"id": 17394,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
"kind": "number",
|
||||
"lValueRequested": false,
|
||||
"nodeType": "Literal",
|
||||
"src": "217:1:48",
|
||||
"src": "217:1:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_rational_1_by_1",
|
||||
"typeString": "int_const 1"
|
||||
@ -122,38 +122,38 @@
|
||||
"typeString": "int_const 1"
|
||||
}
|
||||
],
|
||||
"id": 11474,
|
||||
"id": 17393,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
"lValueRequested": false,
|
||||
"nodeType": "NewExpression",
|
||||
"src": "203:13:48",
|
||||
"src": "203:13:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
|
||||
"typeString": "function (uint256) pure returns (uint256[] memory)"
|
||||
},
|
||||
"typeName": {
|
||||
"baseType": {
|
||||
"id": 11472,
|
||||
"id": 17391,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "207:7:48",
|
||||
"src": "207:7:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11473,
|
||||
"id": 17392,
|
||||
"nodeType": "ArrayTypeName",
|
||||
"src": "207:9:48",
|
||||
"src": "207:9:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
||||
"typeString": "uint256[]"
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": 11476,
|
||||
"id": 17395,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
@ -161,7 +161,7 @@
|
||||
"lValueRequested": false,
|
||||
"names": [],
|
||||
"nodeType": "FunctionCall",
|
||||
"src": "203:16:48",
|
||||
"src": "203:16:72",
|
||||
"tryCall": false,
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
@ -169,39 +169,39 @@
|
||||
}
|
||||
},
|
||||
"nodeType": "VariableDeclarationStatement",
|
||||
"src": "178:41:48"
|
||||
"src": "178:41:72"
|
||||
},
|
||||
{
|
||||
"expression": {
|
||||
"id": 11482,
|
||||
"id": 17401,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": false,
|
||||
"lValueRequested": false,
|
||||
"leftHandSide": {
|
||||
"baseExpression": {
|
||||
"id": 11478,
|
||||
"id": 17397,
|
||||
"name": "array",
|
||||
"nodeType": "Identifier",
|
||||
"overloadedDeclarations": [],
|
||||
"referencedDeclaration": 11471,
|
||||
"src": "225:5:48",
|
||||
"referencedDeclaration": 17390,
|
||||
"src": "225:5:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
"typeString": "uint256[] memory"
|
||||
}
|
||||
},
|
||||
"id": 11480,
|
||||
"id": 17399,
|
||||
"indexExpression": {
|
||||
"hexValue": "30",
|
||||
"id": 11479,
|
||||
"id": 17398,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
"kind": "number",
|
||||
"lValueRequested": false,
|
||||
"nodeType": "Literal",
|
||||
"src": "231:1:48",
|
||||
"src": "231:1:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_rational_0_by_1",
|
||||
"typeString": "int_const 0"
|
||||
@ -213,7 +213,7 @@
|
||||
"isPure": false,
|
||||
"lValueRequested": true,
|
||||
"nodeType": "IndexAccess",
|
||||
"src": "225:8:48",
|
||||
"src": "225:8:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
@ -222,67 +222,67 @@
|
||||
"nodeType": "Assignment",
|
||||
"operator": "=",
|
||||
"rightHandSide": {
|
||||
"id": 11481,
|
||||
"id": 17400,
|
||||
"name": "element",
|
||||
"nodeType": "Identifier",
|
||||
"overloadedDeclarations": [],
|
||||
"referencedDeclaration": 11461,
|
||||
"src": "236:7:48",
|
||||
"referencedDeclaration": 17380,
|
||||
"src": "236:7:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"src": "225:18:48",
|
||||
"src": "225:18:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11483,
|
||||
"id": 17402,
|
||||
"nodeType": "ExpressionStatement",
|
||||
"src": "225:18:48"
|
||||
"src": "225:18:72"
|
||||
},
|
||||
{
|
||||
"expression": {
|
||||
"id": 11484,
|
||||
"id": 17403,
|
||||
"name": "array",
|
||||
"nodeType": "Identifier",
|
||||
"overloadedDeclarations": [],
|
||||
"referencedDeclaration": 11471,
|
||||
"src": "256:5:48",
|
||||
"referencedDeclaration": 17390,
|
||||
"src": "256:5:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
"typeString": "uint256[] memory"
|
||||
}
|
||||
},
|
||||
"functionReturnParameters": 11466,
|
||||
"id": 11485,
|
||||
"functionReturnParameters": 17385,
|
||||
"id": 17404,
|
||||
"nodeType": "Return",
|
||||
"src": "249:12:48"
|
||||
"src": "249:12:72"
|
||||
}
|
||||
]
|
||||
},
|
||||
"id": 11487,
|
||||
"id": 17406,
|
||||
"implemented": true,
|
||||
"kind": "function",
|
||||
"modifiers": [],
|
||||
"name": "asSingletonArray",
|
||||
"nameLocation": "83:16:48",
|
||||
"nameLocation": "83:16:72",
|
||||
"nodeType": "FunctionDefinition",
|
||||
"parameters": {
|
||||
"id": 11462,
|
||||
"id": 17381,
|
||||
"nodeType": "ParameterList",
|
||||
"parameters": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 11461,
|
||||
"id": 17380,
|
||||
"mutability": "mutable",
|
||||
"name": "element",
|
||||
"nameLocation": "108:7:48",
|
||||
"nameLocation": "108:7:72",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 11487,
|
||||
"src": "100:15:48",
|
||||
"scope": 17406,
|
||||
"src": "100:15:72",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "default",
|
||||
"typeDescriptions": {
|
||||
@ -290,10 +290,10 @@
|
||||
"typeString": "uint256"
|
||||
},
|
||||
"typeName": {
|
||||
"id": 11460,
|
||||
"id": 17379,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "100:7:48",
|
||||
"src": "100:7:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
@ -302,21 +302,21 @@
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"src": "99:17:48"
|
||||
"src": "99:17:72"
|
||||
},
|
||||
"returnParameters": {
|
||||
"id": 11466,
|
||||
"id": 17385,
|
||||
"nodeType": "ParameterList",
|
||||
"parameters": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 11465,
|
||||
"id": 17384,
|
||||
"mutability": "mutable",
|
||||
"name": "",
|
||||
"nameLocation": "-1:-1:-1",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 11487,
|
||||
"src": "152:16:48",
|
||||
"scope": 17406,
|
||||
"src": "152:16:72",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "memory",
|
||||
"typeDescriptions": {
|
||||
@ -325,18 +325,18 @@
|
||||
},
|
||||
"typeName": {
|
||||
"baseType": {
|
||||
"id": 11463,
|
||||
"id": 17382,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "152:7:48",
|
||||
"src": "152:7:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11464,
|
||||
"id": 17383,
|
||||
"nodeType": "ArrayTypeName",
|
||||
"src": "152:9:48",
|
||||
"src": "152:9:72",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
||||
"typeString": "uint256[]"
|
||||
@ -345,379 +345,29 @@
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"src": "151:18:48"
|
||||
"src": "151:18:72"
|
||||
},
|
||||
"scope": 11488,
|
||||
"src": "74:192:48",
|
||||
"scope": 17407,
|
||||
"src": "74:192:72",
|
||||
"stateMutability": "pure",
|
||||
"virtual": false,
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"scope": 11489,
|
||||
"src": "57:211:48",
|
||||
"scope": 17408,
|
||||
"src": "57:211:72",
|
||||
"usedErrors": []
|
||||
}
|
||||
],
|
||||
"src": "32:237:48"
|
||||
},
|
||||
"legacyAST": {
|
||||
"absolutePath": "project:/contracts/utils/UInt.sol",
|
||||
"exportedSymbols": {
|
||||
"UInt": [
|
||||
11488
|
||||
]
|
||||
},
|
||||
"id": 11489,
|
||||
"license": "MIT",
|
||||
"nodeType": "SourceUnit",
|
||||
"nodes": [
|
||||
{
|
||||
"id": 11459,
|
||||
"literals": [
|
||||
"solidity",
|
||||
"0.8",
|
||||
".10"
|
||||
],
|
||||
"nodeType": "PragmaDirective",
|
||||
"src": "32:23:48"
|
||||
},
|
||||
{
|
||||
"abstract": false,
|
||||
"baseContracts": [],
|
||||
"canonicalName": "UInt",
|
||||
"contractDependencies": [],
|
||||
"contractKind": "library",
|
||||
"fullyImplemented": true,
|
||||
"id": 11488,
|
||||
"linearizedBaseContracts": [
|
||||
11488
|
||||
],
|
||||
"name": "UInt",
|
||||
"nameLocation": "65:4:48",
|
||||
"nodeType": "ContractDefinition",
|
||||
"nodes": [
|
||||
{
|
||||
"body": {
|
||||
"id": 11486,
|
||||
"nodeType": "Block",
|
||||
"src": "172:94:48",
|
||||
"statements": [
|
||||
{
|
||||
"assignments": [
|
||||
11471
|
||||
],
|
||||
"declarations": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 11471,
|
||||
"mutability": "mutable",
|
||||
"name": "array",
|
||||
"nameLocation": "195:5:48",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 11486,
|
||||
"src": "178:22:48",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "memory",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
"typeString": "uint256[]"
|
||||
},
|
||||
"typeName": {
|
||||
"baseType": {
|
||||
"id": 11469,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "178:7:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11470,
|
||||
"nodeType": "ArrayTypeName",
|
||||
"src": "178:9:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
||||
"typeString": "uint256[]"
|
||||
}
|
||||
},
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"id": 11477,
|
||||
"initialValue": {
|
||||
"arguments": [
|
||||
{
|
||||
"hexValue": "31",
|
||||
"id": 11475,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
"kind": "number",
|
||||
"lValueRequested": false,
|
||||
"nodeType": "Literal",
|
||||
"src": "217:1:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_rational_1_by_1",
|
||||
"typeString": "int_const 1"
|
||||
},
|
||||
"value": "1"
|
||||
}
|
||||
],
|
||||
"expression": {
|
||||
"argumentTypes": [
|
||||
{
|
||||
"typeIdentifier": "t_rational_1_by_1",
|
||||
"typeString": "int_const 1"
|
||||
}
|
||||
],
|
||||
"id": 11474,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
"lValueRequested": false,
|
||||
"nodeType": "NewExpression",
|
||||
"src": "203:13:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
|
||||
"typeString": "function (uint256) pure returns (uint256[] memory)"
|
||||
},
|
||||
"typeName": {
|
||||
"baseType": {
|
||||
"id": 11472,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "207:7:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11473,
|
||||
"nodeType": "ArrayTypeName",
|
||||
"src": "207:9:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
||||
"typeString": "uint256[]"
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": 11476,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
"kind": "functionCall",
|
||||
"lValueRequested": false,
|
||||
"names": [],
|
||||
"nodeType": "FunctionCall",
|
||||
"src": "203:16:48",
|
||||
"tryCall": false,
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
"typeString": "uint256[] memory"
|
||||
}
|
||||
},
|
||||
"nodeType": "VariableDeclarationStatement",
|
||||
"src": "178:41:48"
|
||||
},
|
||||
{
|
||||
"expression": {
|
||||
"id": 11482,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": false,
|
||||
"lValueRequested": false,
|
||||
"leftHandSide": {
|
||||
"baseExpression": {
|
||||
"id": 11478,
|
||||
"name": "array",
|
||||
"nodeType": "Identifier",
|
||||
"overloadedDeclarations": [],
|
||||
"referencedDeclaration": 11471,
|
||||
"src": "225:5:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
"typeString": "uint256[] memory"
|
||||
}
|
||||
},
|
||||
"id": 11480,
|
||||
"indexExpression": {
|
||||
"hexValue": "30",
|
||||
"id": 11479,
|
||||
"isConstant": false,
|
||||
"isLValue": false,
|
||||
"isPure": true,
|
||||
"kind": "number",
|
||||
"lValueRequested": false,
|
||||
"nodeType": "Literal",
|
||||
"src": "231:1:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_rational_0_by_1",
|
||||
"typeString": "int_const 0"
|
||||
},
|
||||
"value": "0"
|
||||
},
|
||||
"isConstant": false,
|
||||
"isLValue": true,
|
||||
"isPure": false,
|
||||
"lValueRequested": true,
|
||||
"nodeType": "IndexAccess",
|
||||
"src": "225:8:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"nodeType": "Assignment",
|
||||
"operator": "=",
|
||||
"rightHandSide": {
|
||||
"id": 11481,
|
||||
"name": "element",
|
||||
"nodeType": "Identifier",
|
||||
"overloadedDeclarations": [],
|
||||
"referencedDeclaration": 11461,
|
||||
"src": "236:7:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"src": "225:18:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11483,
|
||||
"nodeType": "ExpressionStatement",
|
||||
"src": "225:18:48"
|
||||
},
|
||||
{
|
||||
"expression": {
|
||||
"id": 11484,
|
||||
"name": "array",
|
||||
"nodeType": "Identifier",
|
||||
"overloadedDeclarations": [],
|
||||
"referencedDeclaration": 11471,
|
||||
"src": "256:5:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
"typeString": "uint256[] memory"
|
||||
}
|
||||
},
|
||||
"functionReturnParameters": 11466,
|
||||
"id": 11485,
|
||||
"nodeType": "Return",
|
||||
"src": "249:12:48"
|
||||
}
|
||||
]
|
||||
},
|
||||
"id": 11487,
|
||||
"implemented": true,
|
||||
"kind": "function",
|
||||
"modifiers": [],
|
||||
"name": "asSingletonArray",
|
||||
"nameLocation": "83:16:48",
|
||||
"nodeType": "FunctionDefinition",
|
||||
"parameters": {
|
||||
"id": 11462,
|
||||
"nodeType": "ParameterList",
|
||||
"parameters": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 11461,
|
||||
"mutability": "mutable",
|
||||
"name": "element",
|
||||
"nameLocation": "108:7:48",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 11487,
|
||||
"src": "100:15:48",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "default",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
},
|
||||
"typeName": {
|
||||
"id": 11460,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "100:7:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"src": "99:17:48"
|
||||
},
|
||||
"returnParameters": {
|
||||
"id": 11466,
|
||||
"nodeType": "ParameterList",
|
||||
"parameters": [
|
||||
{
|
||||
"constant": false,
|
||||
"id": 11465,
|
||||
"mutability": "mutable",
|
||||
"name": "",
|
||||
"nameLocation": "-1:-1:-1",
|
||||
"nodeType": "VariableDeclaration",
|
||||
"scope": 11487,
|
||||
"src": "152:16:48",
|
||||
"stateVariable": false,
|
||||
"storageLocation": "memory",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
|
||||
"typeString": "uint256[]"
|
||||
},
|
||||
"typeName": {
|
||||
"baseType": {
|
||||
"id": 11463,
|
||||
"name": "uint256",
|
||||
"nodeType": "ElementaryTypeName",
|
||||
"src": "152:7:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_uint256",
|
||||
"typeString": "uint256"
|
||||
}
|
||||
},
|
||||
"id": 11464,
|
||||
"nodeType": "ArrayTypeName",
|
||||
"src": "152:9:48",
|
||||
"typeDescriptions": {
|
||||
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
|
||||
"typeString": "uint256[]"
|
||||
}
|
||||
},
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"src": "151:18:48"
|
||||
},
|
||||
"scope": 11488,
|
||||
"src": "74:192:48",
|
||||
"stateMutability": "pure",
|
||||
"virtual": false,
|
||||
"visibility": "internal"
|
||||
}
|
||||
],
|
||||
"scope": 11489,
|
||||
"src": "57:211:48",
|
||||
"usedErrors": []
|
||||
}
|
||||
],
|
||||
"src": "32:237:48"
|
||||
"src": "32:237:72"
|
||||
},
|
||||
"compiler": {
|
||||
"name": "solc",
|
||||
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
||||
},
|
||||
"networks": {},
|
||||
"schemaVersion": "3.4.4",
|
||||
"updatedAt": "2022-10-14T05:18:29.972Z",
|
||||
"schemaVersion": "3.4.16",
|
||||
"updatedAt": "2023-11-27T08:18:52.516Z",
|
||||
"devdoc": {
|
||||
"kind": "dev",
|
||||
"methods": {},
|
||||
|
File diff suppressed because one or more lines are too long
33
config/config_arbitrum_testnet.js
Normal file
33
config/config_arbitrum_testnet.js
Normal file
@ -0,0 +1,33 @@
|
||||
const market = {
|
||||
feeToAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
mallFeeAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
paymentTokens: [
|
||||
"0x514609B71340E149Cb81A80A953D07A7Fe41bd4F", // USDT
|
||||
],
|
||||
};
|
||||
|
||||
const admins = {
|
||||
admin: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
proposers: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
],
|
||||
confirmers: ["0x50A8e60041A206AcaA5F844a1104896224be6F39"],
|
||||
executors: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
"0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b",
|
||||
],
|
||||
};
|
||||
|
||||
const token = {
|
||||
baseTokenURI: "https://market.cebg.games/api/nft/info/",
|
||||
};
|
||||
|
||||
var config = {
|
||||
market,
|
||||
admins,
|
||||
token,
|
||||
};
|
||||
|
||||
module.exports = config;
|
33
config/config_develop.js
Normal file
33
config/config_develop.js
Normal file
@ -0,0 +1,33 @@
|
||||
const market = {
|
||||
feeToAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
mallFeeAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
paymentTokens: [
|
||||
"0x514609B71340E149Cb81A80A953D07A7Fe41bd4F", // USDT
|
||||
],
|
||||
};
|
||||
|
||||
const admins = {
|
||||
admin: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
proposers: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
],
|
||||
confirmers: ["0x50A8e60041A206AcaA5F844a1104896224be6F39"],
|
||||
executors: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
"0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b",
|
||||
],
|
||||
};
|
||||
|
||||
const token = {
|
||||
baseTokenURI: "https://market.cebg.games/api/nft/info/",
|
||||
};
|
||||
|
||||
var config = {
|
||||
market,
|
||||
admins,
|
||||
token,
|
||||
};
|
||||
|
||||
module.exports = config;
|
33
config/config_development.js
Normal file
33
config/config_development.js
Normal file
@ -0,0 +1,33 @@
|
||||
const market = {
|
||||
feeToAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
mallFeeAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
paymentTokens: [
|
||||
"0x514609B71340E149Cb81A80A953D07A7Fe41bd4F", // USDT
|
||||
],
|
||||
};
|
||||
|
||||
const admins = {
|
||||
admin: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
proposers: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
],
|
||||
confirmers: ["0x50A8e60041A206AcaA5F844a1104896224be6F39"],
|
||||
executors: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
"0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b",
|
||||
],
|
||||
};
|
||||
|
||||
const token = {
|
||||
baseTokenURI: "https://market.cebg.games/api/nft/info/",
|
||||
};
|
||||
|
||||
var config = {
|
||||
market,
|
||||
admins,
|
||||
token,
|
||||
};
|
||||
|
||||
module.exports = config;
|
33
config/config_x1_testnet.js
Normal file
33
config/config_x1_testnet.js
Normal file
@ -0,0 +1,33 @@
|
||||
const market = {
|
||||
feeToAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
mallFeeAddress: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
paymentTokens: [
|
||||
"0x514609B71340E149Cb81A80A953D07A7Fe41bd4F", // USDT
|
||||
],
|
||||
};
|
||||
|
||||
const admins = {
|
||||
admin: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
proposers: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
],
|
||||
confirmers: ["0x50A8e60041A206AcaA5F844a1104896224be6F39"],
|
||||
executors: [
|
||||
"0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
"0x746338765a8FbDD1c5aB61bfb92CD6D960C3C662",
|
||||
"0x22d491Bde2303f2f43325b2108D26f1eAbA1e32b",
|
||||
],
|
||||
};
|
||||
|
||||
const token = {
|
||||
baseTokenURI: "https://market.cebg.games/api/nft/info/",
|
||||
};
|
||||
|
||||
var config = {
|
||||
market,
|
||||
admins,
|
||||
token,
|
||||
};
|
||||
|
||||
module.exports = config;
|
@ -7,8 +7,8 @@ contract BETimelockController is TimelockController {
|
||||
uint256 public constant MAX_DELAY = 16 days;
|
||||
uint256 private _minDelay;
|
||||
|
||||
constructor(address[] memory proposers, address[] memory executors)
|
||||
TimelockController(MIN_DELAY, proposers, executors)
|
||||
constructor(address[] memory proposers, address[] memory executors, address admin)
|
||||
TimelockController(MIN_DELAY, proposers, executors, admin)
|
||||
{
|
||||
_minDelay = MIN_DELAY;
|
||||
}
|
||||
|
89
contracts/logic/EvolveProxy.sol
Normal file
89
contracts/logic/EvolveProxy.sol
Normal file
@ -0,0 +1,89 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity 0.8.10;
|
||||
import "@openzeppelin/contracts/access/Ownable.sol";
|
||||
import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
||||
import "../core/HasSignature.sol";
|
||||
import "../utils/TimeChecker.sol";
|
||||
import "../utils/UInt.sol";
|
||||
|
||||
interface IBurnableERC721 is IERC721 {
|
||||
function burn(uint256 tokenId) external;
|
||||
|
||||
function batchMint(address to, uint256[] memory tokenIds) external;
|
||||
}
|
||||
|
||||
contract EvolveProxy is Ownable, TimeChecker, HasSignature {
|
||||
using UInt for uint256;
|
||||
|
||||
IBurnableERC721 public nft;
|
||||
|
||||
address public executor;
|
||||
|
||||
event TokenEvolved(
|
||||
uint256 indexed evolveEventId,
|
||||
address indexed owner,
|
||||
uint256[] tokenIds
|
||||
);
|
||||
|
||||
constructor(address _address){
|
||||
nft = IBurnableERC721(_address);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev update executor
|
||||
*/
|
||||
function updateExecutor(address account) external onlyOwner {
|
||||
require(account != address(0), "address can not be zero");
|
||||
executor = account;
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev evolve function to Counter Fire nft NFT
|
||||
* tokenIds: [nft_to_evolve, nft_for_burn, nft_for_burn...]
|
||||
* nft_to_evolve: nft to evolve, auto mint if not exist
|
||||
*/
|
||||
function evolveNft(
|
||||
uint256 evolveEventId,
|
||||
uint256[] calldata tokenIds,
|
||||
uint256 startTime,
|
||||
uint256 saltNonce,
|
||||
bytes calldata signature
|
||||
) external signatureValid(signature) timeValid(startTime) {
|
||||
require(tokenIds.length > 0, "EvolveProxy: tokenIds length must > 0");
|
||||
require(tokenIds[0] > 0, "EvolveProxy: nft to evolve can not be 0");
|
||||
address user = _msgSender();
|
||||
|
||||
bytes32 criteriaMessageHash = getMessageHash(
|
||||
evolveEventId,
|
||||
user,
|
||||
startTime,
|
||||
saltNonce,
|
||||
tokenIds
|
||||
);
|
||||
checkSigner(executor, criteriaMessageHash, signature);
|
||||
try nft.batchMint(user, tokenIds[0].asSingletonArray()) {} catch {}
|
||||
require(nft.ownerOf(tokenIds[0]) == user,"EvolveProxy: not owner of this nft now");
|
||||
if (tokenIds.length > 1) {
|
||||
for (uint256 i = 1; i < tokenIds.length; ++i) {
|
||||
nft.burn(tokenIds[i]);
|
||||
}
|
||||
}
|
||||
_useSignature(signature);
|
||||
emit TokenEvolved(evolveEventId,user,tokenIds);
|
||||
}
|
||||
|
||||
function getMessageHash(
|
||||
uint256 _eventId,
|
||||
address _user,
|
||||
uint256 _startTime,
|
||||
uint256 _saltNonce,
|
||||
uint256[] memory _tokenIds
|
||||
) public pure returns (bytes32) {
|
||||
bytes memory encoded = abi.encodePacked(_eventId, _user, _startTime, _saltNonce);
|
||||
uint256 len = _tokenIds.length;
|
||||
for (uint256 i = 0; i < len; ++i) {
|
||||
encoded = bytes.concat(encoded, abi.encodePacked(_tokenIds[i]));
|
||||
}
|
||||
return keccak256(encoded);
|
||||
}
|
||||
}
|
@ -33,39 +33,39 @@ contract ExecuteRelay is HasSignature712, TimeChecker {
|
||||
uint256 tokenAmount
|
||||
);
|
||||
|
||||
function execute(
|
||||
address sender,
|
||||
address target,
|
||||
uint256 value,
|
||||
bytes calldata data,
|
||||
uint256 startTime,
|
||||
uint256 saltNonce,
|
||||
bytes calldata signature
|
||||
) external payable signatureValid(signature) timeValid(startTime) {
|
||||
bytes32 messageHash = getMessageHash(
|
||||
target,
|
||||
value,
|
||||
data,
|
||||
startTime,
|
||||
saltNonce
|
||||
);
|
||||
uint256 gasStart = gasleft();
|
||||
checkSigner712(sender, messageHash, signature);
|
||||
uint256 gasPrice = tx.gasprice;
|
||||
_call(target, value, data);
|
||||
uint256 gasUsed = gasStart - gasleft();
|
||||
uint256 tokenAmount = gasPrice * gasUsed; // TODO:: calc real token amount
|
||||
IToken(tokenAddress).signApprove(
|
||||
sender,
|
||||
tokenAmount,
|
||||
startTime,
|
||||
saltNonce,
|
||||
signature
|
||||
);
|
||||
IToken(tokenAddress).transferFrom(sender, address(this), tokenAmount);
|
||||
_useSignature(signature);
|
||||
emit MethodExecuted(sender, target, data, gasUsed, tokenAmount);
|
||||
}
|
||||
// function execute(
|
||||
// address sender,
|
||||
// address target,
|
||||
// uint256 value,
|
||||
// bytes calldata data,
|
||||
// uint256 startTime,
|
||||
// uint256 saltNonce,
|
||||
// bytes calldata signature
|
||||
// ) external payable signatureValid(signature) timeValid(startTime) {
|
||||
// bytes32 messageHash = getMessageHash(
|
||||
// target,
|
||||
// value,
|
||||
// data,
|
||||
// startTime,
|
||||
// saltNonce
|
||||
// );
|
||||
// uint256 gasStart = gasleft();
|
||||
// checkSigner712(sender, messageHash, signature);
|
||||
// uint256 gasPrice = tx.gasprice;
|
||||
// _call(target, value, data);
|
||||
// uint256 gasUsed = gasStart - gasleft();
|
||||
// uint256 tokenAmount = gasPrice * gasUsed; // TODO:: calc real token amount
|
||||
// IToken(tokenAddress).signApprove(
|
||||
// sender,
|
||||
// tokenAmount,
|
||||
// startTime,
|
||||
// saltNonce,
|
||||
// signature
|
||||
// );
|
||||
// IToken(tokenAddress).transferFrom(sender, address(this), tokenAmount);
|
||||
// _useSignature(signature);
|
||||
// emit MethodExecuted(sender, target, data, gasUsed, tokenAmount);
|
||||
// }
|
||||
|
||||
/**
|
||||
* @dev Execute an operation's call.
|
||||
|
@ -36,8 +36,6 @@ contract MysteryBoxProxy is Ownable, Initializable, HasSignature {
|
||||
uint8[3] types
|
||||
);
|
||||
|
||||
constructor() HasSignature("MysteryBoxProxy", "1") {}
|
||||
|
||||
function init(address[4] calldata _erc721s) external initializer onlyOwner {
|
||||
hero = IBEERC721(_erc721s[0]);
|
||||
equip = IBEERC721(_erc721s[1]);
|
||||
|
@ -6,9 +6,9 @@ import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
||||
import "@openzeppelin/contracts/access/Ownable.sol";
|
||||
import "@openzeppelin/contracts/utils/Address.sol";
|
||||
import "@openzeppelin/contracts/governance/TimelockController.sol";
|
||||
import "../core/HasSignature.sol";
|
||||
import "../core/HasSignature712.sol";
|
||||
|
||||
contract BEBoxMall is Ownable, HasSignature, TimelockController {
|
||||
contract BEBoxMall is Ownable, HasSignature712, TimelockController {
|
||||
using SafeERC20 for IERC20;
|
||||
using Address for address;
|
||||
|
||||
@ -18,9 +18,9 @@ contract BEBoxMall is Ownable, HasSignature, TimelockController {
|
||||
|
||||
bool public address_initialized;
|
||||
|
||||
constructor(address[] memory proposers, address[] memory executors)
|
||||
TimelockController(MIN_DELAY, proposers, executors)
|
||||
HasSignature("BEBoxMall", "1")
|
||||
constructor(address[] memory proposers, address[] memory executors, address admin)
|
||||
TimelockController(MIN_DELAY, proposers, executors, admin)
|
||||
HasSignature712("BEBoxMall", "1")
|
||||
{
|
||||
_minDelay = MIN_DELAY;
|
||||
address_initialized = false;
|
||||
|
@ -4,14 +4,14 @@ import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
||||
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
|
||||
import "@openzeppelin/contracts/security/Pausable.sol";
|
||||
import "@openzeppelin/contracts/access/AccessControl.sol";
|
||||
import "../../core/HasSignature.sol";
|
||||
import "../../core/HasSignature712.sol";
|
||||
|
||||
contract FTSigner is
|
||||
ERC20,
|
||||
ERC20Burnable,
|
||||
Pausable,
|
||||
AccessControl,
|
||||
HasSignature
|
||||
HasSignature712
|
||||
{
|
||||
bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
|
||||
bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
|
||||
@ -21,7 +21,7 @@ contract FTSigner is
|
||||
string memory name_,
|
||||
string memory symbol_,
|
||||
uint256 _supplyLimt
|
||||
) ERC20(name_, symbol_) HasSignature("FTSign", "1") {
|
||||
) ERC20(name_, symbol_) HasSignature712("FTSign", "1") {
|
||||
_setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
|
||||
_setupRole(PAUSER_ROLE, msg.sender);
|
||||
_setupRole(MINTER_ROLE, msg.sender);
|
||||
|
@ -1,11 +1,12 @@
|
||||
const Box = artifacts.require("market/BEBoxMall");
|
||||
|
||||
const config = require("../config/config");
|
||||
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
await deployer.deploy(Box, config.admins.proposers, config.admins.executors);
|
||||
const boxInstance = await Box.deployed();
|
||||
if (boxInstance) {
|
||||
console.log("BEBoxMall successfully deployed.");
|
||||
}
|
||||
// const config = require(`../config/config_${network}`);
|
||||
// await deployer.deploy(Box, config.admins.proposers, config.admins.executors);
|
||||
// const boxInstance = await Box.deployed();
|
||||
// if (boxInstance) {
|
||||
// console.log("BEBoxMall successfully deployed.");
|
||||
// }
|
||||
};
|
||||
|
@ -1,15 +1,32 @@
|
||||
const EvolveFactory = artifacts.require('logic/EvolveFactory');
|
||||
const UserEvolveFactory = artifacts.require('logic/UserEvolveFactory');
|
||||
const EvolveProxy = artifacts.require('logic/EvolveProxy');
|
||||
const NFT = artifacts.require("tokens/erc721/NFT");
|
||||
const base = require("../scripts/base");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
await deployer.deploy(EvolveFactory);
|
||||
const proxyInstance = await EvolveFactory.deployed();
|
||||
if(proxyInstance) {
|
||||
console.log("EvolveFactory successfully deployed.")
|
||||
const config = require(`../config/config_${network}`);
|
||||
let cfgs = base.loadData({ network });
|
||||
const heroAddress = cfgs.find((c) => c.name === "HERO").address
|
||||
await deployer.deploy(EvolveProxy, heroAddress);
|
||||
const proxyInstance = await EvolveProxy.deployed();
|
||||
if(!proxyInstance) {
|
||||
return console.log("EvolveProxy deploy failed.")
|
||||
}
|
||||
await deployer.deploy(UserEvolveFactory);
|
||||
const userProxyInstance = await EvolveFactory.deployed();
|
||||
if(userProxyInstance) {
|
||||
console.log("UserEvolveFactory successfully deployed.")
|
||||
console.log("EvolveProxy successfully deployed.")
|
||||
base.updateArray({
|
||||
name: "EvolveProxy",
|
||||
type: "logic",
|
||||
json: "assets/contracts/EvolveProxy.json",
|
||||
address: proxyInstance.address,
|
||||
network,
|
||||
});
|
||||
|
||||
try {
|
||||
const heroInstance = await NFT.at(heroAddress);
|
||||
await heroInstance.setMintRole(proxyInstance.address);
|
||||
console.log(`success set mint role for: ${heroInstance.address}`)
|
||||
await proxyInstance.updateExecutor(config.admins.admin);
|
||||
console.log(`success update executor for: ${proxyInstance.address}`)
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +0,0 @@
|
||||
const NftMall = artifacts.require("market/BENftMall");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
await deployer.deploy(NftMall);
|
||||
const mallInstance = await NftMall.deployed();
|
||||
if (mallInstance) {
|
||||
console.log("BENftMall successfully deployed.");
|
||||
}
|
||||
};
|
@ -1,9 +0,0 @@
|
||||
const NftChipLocker = artifacts.require("logic/NftChipLocker");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
await deployer.deploy(NftChipLocker);
|
||||
const lockerInstance = await NftChipLocker.deployed();
|
||||
if (lockerInstance) {
|
||||
console.log("NftChipLocker successfully deployed.");
|
||||
}
|
||||
};
|
@ -1,14 +0,0 @@
|
||||
const TimelockController = artifacts.require("BETimelockController");
|
||||
const config = require("../config/config");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
await deployer.deploy(
|
||||
TimelockController,
|
||||
config.admins.proposers,
|
||||
config.admins.executors
|
||||
);
|
||||
const timelockInstance = await TimelockController.deployed();
|
||||
if (timelockInstance) {
|
||||
console.log("TimelockController successfully deployed.");
|
||||
}
|
||||
};
|
@ -1,38 +1,38 @@
|
||||
// const Badge = artifacts.require("tokens/erc721/BEBadge");
|
||||
// const Coin = artifacts.require("tokens/erc20/BEUSDT");
|
||||
const Badge = artifacts.require("tokens/erc721/BEBadge");
|
||||
const Coin = artifacts.require("tokens/erc20/BEUSDT");
|
||||
const Wallet = artifacts.require("core/BEMultiSigWallet");
|
||||
// const Distributor = artifacts.require("logic/NftDistributor");
|
||||
const config = require("../config/config");
|
||||
const Distributor = artifacts.require("logic/NftDistributor");
|
||||
const base = require("../scripts/base");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
// await deployer.deploy(Badge, "BE Badge", "Badge", "4000");
|
||||
// const badgeInstance = await Badge.deployed();
|
||||
// if (badgeInstance) {
|
||||
// console.log("BEBadge successfully deployed. ");
|
||||
// console.log("address: " + badgeInstance.address);
|
||||
// }
|
||||
// base.updateArray({
|
||||
// name: "BEBadge",
|
||||
// type: "erc721",
|
||||
// json: "assets/contracts/BEBadge.json",
|
||||
// address: badgeInstance.address,
|
||||
// network,
|
||||
// });
|
||||
// await badgeInstance.updateBaseURI(config.token.baseTokenURI);
|
||||
// await deployer.deploy(Coin, "BE test USDT", "USDT");
|
||||
// const coinInstance = await Coin.deployed();
|
||||
// if (coinInstance) {
|
||||
// console.log("BEUSDT successfully deployed. ");
|
||||
// console.log("address: " + coinInstance.address);
|
||||
// }
|
||||
// base.updateArray({
|
||||
// name: "BEUSDT",
|
||||
// type: "erc20",
|
||||
// json: "assets/contracts/BEUSDT.json",
|
||||
// address: coinInstance.address,
|
||||
// network,
|
||||
// });
|
||||
const config = require(`../config/config_${network}`);
|
||||
await deployer.deploy(Badge, "BE Badge", "Badge", "4000");
|
||||
const badgeInstance = await Badge.deployed();
|
||||
if (badgeInstance) {
|
||||
console.log("BEBadge successfully deployed. ");
|
||||
console.log("address: " + badgeInstance.address);
|
||||
}
|
||||
base.updateArray({
|
||||
name: "BEBadge",
|
||||
type: "erc721",
|
||||
json: "assets/contracts/BEBadge.json",
|
||||
address: badgeInstance.address,
|
||||
network,
|
||||
});
|
||||
|
||||
await deployer.deploy(Coin, "BE test USDT", "USDT");
|
||||
const coinInstance = await Coin.deployed();
|
||||
if (coinInstance) {
|
||||
console.log("BEUSDT successfully deployed. ");
|
||||
console.log("address: " + coinInstance.address);
|
||||
}
|
||||
base.updateArray({
|
||||
name: "BEUSDT",
|
||||
type: "erc20",
|
||||
json: "assets/contracts/BEUSDT.json",
|
||||
address: coinInstance.address,
|
||||
network,
|
||||
});
|
||||
await deployer.deploy(
|
||||
Wallet,
|
||||
60,
|
||||
@ -53,32 +53,32 @@ module.exports = async function (deployer, network, accounts) {
|
||||
address: walletInstance.address,
|
||||
network,
|
||||
});
|
||||
// await badgeInstance.setMintRole(walletInstance.address);
|
||||
// console.log("success add wallet to badge's mint role");
|
||||
// await coinInstance.setMintRole(walletInstance.address);
|
||||
// console.log("success add wallet to usdt's mint role");
|
||||
await badgeInstance.setMintRole(walletInstance.address);
|
||||
console.log("success add wallet to badge's mint role");
|
||||
await coinInstance.setMintRole(walletInstance.address);
|
||||
console.log("success add wallet to usdt's mint role");
|
||||
|
||||
// await deployer.deploy(
|
||||
// Distributor,
|
||||
// badgeInstance.address,
|
||||
// config.admins.executors
|
||||
// );
|
||||
// const distributorInstance = await Distributor.deployed();
|
||||
// if (distributorInstance) {
|
||||
// console.log("NftDistributor successfully deployed.");
|
||||
// console.log("address: " + distributorInstance.address);
|
||||
// }
|
||||
// base.updateArray({
|
||||
// name: "NftDistributor",
|
||||
// type: "logic",
|
||||
// json: "assets/contracts/NftDistributor.json",
|
||||
// address: distributorInstance.address,
|
||||
// network,
|
||||
// });
|
||||
// await badgeInstance.setMintRole(distributorInstance.address);
|
||||
// await distributorInstance.grantRole(
|
||||
// "0xa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091",
|
||||
// walletInstance.address
|
||||
// );
|
||||
// console.log("success add distributor to badge's mint role");
|
||||
await deployer.deploy(
|
||||
Distributor,
|
||||
badgeInstance.address,
|
||||
config.admins.executors
|
||||
);
|
||||
const distributorInstance = await Distributor.deployed();
|
||||
if (distributorInstance) {
|
||||
console.log("NftDistributor successfully deployed.");
|
||||
console.log("address: " + distributorInstance.address);
|
||||
}
|
||||
base.updateArray({
|
||||
name: "NftDistributor",
|
||||
type: "logic",
|
||||
json: "assets/contracts/NftDistributor.json",
|
||||
address: distributorInstance.address,
|
||||
network,
|
||||
});
|
||||
await badgeInstance.setMintRole(distributorInstance.address);
|
||||
await distributorInstance.grantRole(
|
||||
"0xa076a07f65bcd51bcb15a0f01a65bc18f2d922acb81bcfd8af4caf5adb557091",
|
||||
walletInstance.address
|
||||
);
|
||||
console.log("success add distributor to badge's mint role");
|
||||
};
|
||||
|
@ -8,6 +8,8 @@ module.exports = async function (deployer, network, accounts) {
|
||||
limit: "10000000000000000000000000",
|
||||
},
|
||||
{ name: "CEG", desc: "CRYPTO ELITE'S GOLD", limit: 0 },
|
||||
{ name: "BEUSDC", desc: "USDC for test", limit: 0 },
|
||||
{ name: "BEUSDT", desc: "USDT for test", limit: 0 },
|
||||
];
|
||||
for (let i = 0, l = tokens.length; i < l; i++) {
|
||||
const Coin = artifacts.require("tokens/erc20/FT");
|
||||
|
@ -1,12 +1,13 @@
|
||||
const Box = artifacts.require("tokens/erc721/BEPresaleBox");
|
||||
const config = require("../config/config");
|
||||
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
await deployer.deploy(Box);
|
||||
const boxInstance = await Box.deployed();
|
||||
if (boxInstance) {
|
||||
console.log("BEPresaleBox successfully deployed.");
|
||||
}
|
||||
await boxInstance.updateBaseURI(config.token.baseTokenURI);
|
||||
await boxInstance.setMintFactory(config.admins.admin);
|
||||
// const config = require(`../config/config_${network}`);
|
||||
// await deployer.deploy(Box);
|
||||
// const boxInstance = await Box.deployed();
|
||||
// if (boxInstance) {
|
||||
// console.log("BEPresaleBox successfully deployed.");
|
||||
// }
|
||||
// await boxInstance.updateBaseURI(config.token.baseTokenURI);
|
||||
// await boxInstance.setMintFactory(config.admins.admin);
|
||||
};
|
||||
|
@ -1,9 +1,12 @@
|
||||
const config = require("../config/config");
|
||||
const base = require("../scripts/base");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
// const tokens = [{ name: "HERO", desc: "CRYPTO ELITE'S HERO", limit: 0 }];
|
||||
const tokens = [{ name: "PLANET", desc: "CF PLANET", limit: 0 }];
|
||||
const tokens = [
|
||||
{ name: "HERO", desc: "CRYPTO ELITE'S HERO", limit: 0 },
|
||||
{ name: "PLANET", desc: "CF PLANET", limit: 0 },
|
||||
{ name: "TestHERO", desc: "CRYPTO ELITE'S HERO", limit: 0 },
|
||||
];
|
||||
for (let i = 0, l = tokens.length; i < l; i++) {
|
||||
const { name, desc, limit } = tokens[i];
|
||||
let Nft = artifacts.require("tokens/erc721/NFT");
|
||||
|
@ -16,7 +16,4 @@ module.exports = async function (deployer, network, accounts) {
|
||||
network,
|
||||
});
|
||||
|
||||
// // update settings
|
||||
// for (let cfg of cfgs) {
|
||||
// }
|
||||
};
|
||||
|
@ -1,99 +1,100 @@
|
||||
const BENftMarket = artifacts.require("market/BENftMarket");
|
||||
// const BENftMall = artifacts.require("market/BENftMall");
|
||||
const BENftMall = artifacts.require("market/BENftMall");
|
||||
const BENftMallTrans = artifacts.require("market/BENftMallTrans");
|
||||
const GameItemMarket = artifacts.require("market/GameItemMarket");
|
||||
const GameItemMall = artifacts.require("market/GameItemMall");
|
||||
const FT = artifacts.require("tokens/erc20/FT");
|
||||
const BETokenMall = artifacts.require("market/BETokenMall");
|
||||
const config = require("../config/config");
|
||||
const base = require("../scripts/base");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
// await deployer.deploy(BENftMarket);
|
||||
// const marketInstance = await BENftMarket.deployed();
|
||||
// if (marketInstance) {
|
||||
// console.log("MarketPlace successfully deployed.");
|
||||
// }
|
||||
// base.updateArray({
|
||||
// name: "BENftMarket",
|
||||
// type: "logic",
|
||||
// json: "assets/contracts/BENftMarket.json",
|
||||
// address: marketInstance.address,
|
||||
// network,
|
||||
// });
|
||||
|
||||
// await deployer.deploy(BENftMall);
|
||||
// const nftMallInstance = await BENftMall.deployed();
|
||||
// if (nftMallInstance) {
|
||||
// console.log("BENftMall successfully deployed.");
|
||||
// }
|
||||
// base.updateArray({
|
||||
// name: "BENftMall",
|
||||
// type: "logic",
|
||||
// json: "assets/contracts/BENftMall.json",
|
||||
// address: nftMallInstance.address,
|
||||
// network,
|
||||
// });
|
||||
await deployer.deploy(BENftMallTrans);
|
||||
const nftMallInstance = await BENftMallTrans.deployed();
|
||||
if (nftMallInstance) {
|
||||
console.log("BENftMallTrans successfully deployed.");
|
||||
const config = require(`../config/config_${network}`);
|
||||
await deployer.deploy(BENftMarket);
|
||||
const marketInstance = await BENftMarket.deployed();
|
||||
if (marketInstance) {
|
||||
console.log("MarketPlace successfully deployed.");
|
||||
}
|
||||
base.updateArray({
|
||||
name: "BENftMallTrans",
|
||||
name: "BENftMarket",
|
||||
type: "logic",
|
||||
json: "assets/contracts/BENftMallTrans.json",
|
||||
json: "assets/contracts/BENftMarket.json",
|
||||
address: marketInstance.address,
|
||||
network,
|
||||
});
|
||||
|
||||
await deployer.deploy(BENftMall);
|
||||
const nftMallInstance = await BENftMall.deployed();
|
||||
if (nftMallInstance) {
|
||||
console.log("BENftMall successfully deployed.");
|
||||
}
|
||||
base.updateArray({
|
||||
name: "BENftMall",
|
||||
type: "logic",
|
||||
json: "assets/contracts/BENftMall.json",
|
||||
address: nftMallInstance.address,
|
||||
network,
|
||||
});
|
||||
// let cfgs = base.loadData({ network });
|
||||
// const cegInstance = await FT.at(cfgs.find((c) => c.name === "CEG").address);
|
||||
// await deployer.deploy(
|
||||
// BETokenMall,
|
||||
// cegInstance.address,
|
||||
// config.market.feeToAddress
|
||||
// );
|
||||
// const tokenMallInstance = await BETokenMall.deployed();
|
||||
// if (tokenMallInstance) {
|
||||
// console.log("BETokenMall successfully deployed.");
|
||||
// }
|
||||
// await tokenMallInstance.setFeeToAddress(config.market.feeToAddress);
|
||||
// const usdcInstance = await FT.at(
|
||||
// cfgs.find((c) => c.name === "BEUSDC").address
|
||||
// );
|
||||
// await tokenMallInstance.addERC20Support(usdcInstance.address);
|
||||
// await tokenMallInstance.updateTokenPrice(usdcInstance.address, "10000000");
|
||||
// base.updateArray({
|
||||
// name: "BETokenMall",
|
||||
// type: "logic",
|
||||
// json: "assets/contracts/BETokenMall.json",
|
||||
// address: tokenMallInstance.address,
|
||||
// network,
|
||||
// });
|
||||
|
||||
// await deployer.deploy(GameItemMarket);
|
||||
// const gameMarketInstance = await GameItemMarket.deployed();
|
||||
// if (gameMarketInstance) {
|
||||
// console.log("GameItemMarket successfully deployed.");
|
||||
// await deployer.deploy(BENftMallTrans);
|
||||
// const nftMallInstance = await BENftMallTrans.deployed();
|
||||
// if (nftMallInstance) {
|
||||
// console.log("BENftMallTrans successfully deployed.");
|
||||
// }
|
||||
// base.updateArray({
|
||||
// name: "GameItemMarket",
|
||||
// name: "BENftMallTrans",
|
||||
// type: "logic",
|
||||
// json: "assets/contracts/GameItemMarket.json",
|
||||
// address: gameMarketInstance.address,
|
||||
// json: "assets/contracts/BENftMallTrans.json",
|
||||
// address: nftMallInstance.address,
|
||||
// network,
|
||||
// });
|
||||
let cfgs = base.loadData({ network });
|
||||
const cegInstance = await FT.at(cfgs.find((c) => c.name === "CEG").address);
|
||||
await deployer.deploy(
|
||||
BETokenMall,
|
||||
cegInstance.address,
|
||||
config.market.feeToAddress
|
||||
);
|
||||
const tokenMallInstance = await BETokenMall.deployed();
|
||||
if (tokenMallInstance) {
|
||||
console.log("BETokenMall successfully deployed.");
|
||||
}
|
||||
await tokenMallInstance.setFeeToAddress(config.market.feeToAddress);
|
||||
const usdcInstance = await FT.at(
|
||||
cfgs.find((c) => c.name === "BEUSDC").address
|
||||
);
|
||||
await tokenMallInstance.addERC20Support(usdcInstance.address);
|
||||
await tokenMallInstance.updateTokenPrice(usdcInstance.address, "10000000");
|
||||
base.updateArray({
|
||||
name: "BETokenMall",
|
||||
type: "logic",
|
||||
json: "assets/contracts/BETokenMall.json",
|
||||
address: tokenMallInstance.address,
|
||||
network,
|
||||
});
|
||||
|
||||
// await deployer.deploy(GameItemMall);
|
||||
// const gameMallInstance = await GameItemMall.deployed();
|
||||
// if (gameMallInstance) {
|
||||
// console.log("GameItemMall successfully deployed.");
|
||||
// }
|
||||
// base.updateArray({
|
||||
// name: "GameItemMall",
|
||||
// type: "logic",
|
||||
// json: "assets/contracts/GameItemMall.json",
|
||||
// address: gameMallInstance.address,
|
||||
// network,
|
||||
// });
|
||||
await deployer.deploy(GameItemMarket);
|
||||
const gameMarketInstance = await GameItemMarket.deployed();
|
||||
if (gameMarketInstance) {
|
||||
console.log("GameItemMarket successfully deployed.");
|
||||
}
|
||||
base.updateArray({
|
||||
name: "GameItemMarket",
|
||||
type: "logic",
|
||||
json: "assets/contracts/GameItemMarket.json",
|
||||
address: gameMarketInstance.address,
|
||||
network,
|
||||
});
|
||||
|
||||
await deployer.deploy(GameItemMall);
|
||||
const gameMallInstance = await GameItemMall.deployed();
|
||||
if (gameMallInstance) {
|
||||
console.log("GameItemMall successfully deployed.");
|
||||
}
|
||||
base.updateArray({
|
||||
name: "GameItemMall",
|
||||
type: "logic",
|
||||
json: "assets/contracts/GameItemMall.json",
|
||||
address: gameMallInstance.address,
|
||||
network,
|
||||
});
|
||||
};
|
||||
|
@ -2,9 +2,9 @@ const Factory = artifacts.require("activity/ClaimBoxFactory");
|
||||
const Box = artifacts.require("tokens/erc721/BEBadge");
|
||||
const Metadata = artifacts.require("core/JSONMetadata");
|
||||
const base = require("../scripts/base");
|
||||
const config = require("../config/config");
|
||||
|
||||
module.exports = async function (deployer, network, accounts) {
|
||||
const config = require(`../config/config_${network}`);
|
||||
const name = "Gacha";
|
||||
const symbol = "GACHA";
|
||||
await deployer.deploy(Box, name, symbol, 0);
|
||||
|
@ -15,11 +15,12 @@ module.exports = async function (deployer, network, accounts) {
|
||||
address: stakeInstance.address,
|
||||
network,
|
||||
});
|
||||
|
||||
let cfgs = base.loadData({ network });
|
||||
const gacha = cfgs.find((c) => c.name === "Gacha").address
|
||||
const testHERO = cfgs.find((c) => c.name === "TestHERO").address
|
||||
const nfts = [
|
||||
"0xae37bb7BcA26Bab9a11D8BaE8fdB97f63b82c189",
|
||||
"0xEbC170185ad614C05Af38C820020b70E458717F5",
|
||||
"0x2d3Afa678F777Df6b59186A54E5427c3527C637c",
|
||||
gacha,
|
||||
testHERO,
|
||||
];
|
||||
for (let i = 0; i < nfts.length; i++) {
|
||||
await stakeInstance.updateERC721Support(nfts[i], true);
|
||||
|
128
out/develop_dev.json
Normal file
128
out/develop_dev.json
Normal file
@ -0,0 +1,128 @@
|
||||
[
|
||||
{
|
||||
"name": "BEBadge",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/BEBadge.json",
|
||||
"address": "0x9683c54eccfd8F7F0613Cd5AC7c3119ABa93ee36"
|
||||
},
|
||||
{
|
||||
"name": "BEMultiSigWallet",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BEMultiSigWallet.json",
|
||||
"address": "0xB28eAd4e87100aa438da90ce87dF9BAd201C391d"
|
||||
},
|
||||
{
|
||||
"name": "NftDistributor",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/NftDistributor.json",
|
||||
"address": "0xC4F938c122907B39Eab6d1aD883E08808fB84985"
|
||||
},
|
||||
{
|
||||
"name": "CEC",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0xE449cB74e7f8f79d7E487EeC05E233C6c225db26"
|
||||
},
|
||||
{
|
||||
"name": "CEG",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x3276D767418bC9f1Aa3EC3C62e0805A2A2B0536c"
|
||||
},
|
||||
{
|
||||
"name": "BEUSDC",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x60Ba00C1af6196Ff72E6B08e3fC1aAC76856d80d"
|
||||
},
|
||||
{
|
||||
"name": "BEUSDT",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0xc97A85581b2a5Af7c69838B783311332F522a451"
|
||||
},
|
||||
{
|
||||
"name": "HERO",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0x139348A7e57859d2F63274C7642Fbf9f1470B1a2"
|
||||
},
|
||||
{
|
||||
"name": "PLANET",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0xD5fD5A9Ad06735AbB3Ff7A88D494556AdfFa2fcC"
|
||||
},
|
||||
{
|
||||
"name": "TestHERO",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0x33Ecac595cFad08721aF95d53eC61Ec46b92071b"
|
||||
},
|
||||
{
|
||||
"name": "UserMinterFactory",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/UserMinterFactory.json",
|
||||
"address": "0x20889131ed057B57c5A7F66A349DbE66D3776038"
|
||||
},
|
||||
{
|
||||
"name": "BENftMarket",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BENftMarket.json",
|
||||
"address": "0xA31b1edf33E4fbAd25f515F2466dAD36a31239DA"
|
||||
},
|
||||
{
|
||||
"name": "BENftMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BENftMall.json",
|
||||
"address": "0x1c83bBb8c4A17aEE9b31452C24a784B989CEaBAA"
|
||||
},
|
||||
{
|
||||
"name": "BETokenMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BETokenMall.json",
|
||||
"address": "0xdEa731D41EeB6d52B3A003CdB8257337C94Dc3BE"
|
||||
},
|
||||
{
|
||||
"name": "GameItemMarket",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/GameItemMarket.json",
|
||||
"address": "0xb8b88759e6FDc80309d29857d136E2b5eA01f7B0"
|
||||
},
|
||||
{
|
||||
"name": "GameItemMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/GameItemMall.json",
|
||||
"address": "0xAF5F30fB42DfE78B5726fF9c3EA2f9E15b6C0F8e"
|
||||
},
|
||||
{
|
||||
"name": "Gacha",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/BEBadge.json",
|
||||
"address": "0xAa4367D3B2B745245edeCE3ae894053206152a63"
|
||||
},
|
||||
{
|
||||
"name": "ClaimGachaFactory",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/ClaimBoxFactory.json",
|
||||
"address": "0xCA510c9b2767E2DC39E7a38B24Ec26279ec3fAC1"
|
||||
},
|
||||
{
|
||||
"name": "JSONMetadata",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/JSONMetadata.json",
|
||||
"address": "0xb8739c95fF0EA21B6A4EDc91159080aFd5882847"
|
||||
},
|
||||
{
|
||||
"name": "ERC721Staking",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/ERC721Staking.json",
|
||||
"address": "0x193a9148CbC2cc57F4A4876D5CB451C24DEe50A1"
|
||||
},
|
||||
{
|
||||
"name": "EvolveProxy",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/EvolveProxy.json",
|
||||
"address": "0xA03eb8AA2D43169F94f7F199382c1a4ae585d59f"
|
||||
}
|
||||
]
|
128
out/development_dev.json
Normal file
128
out/development_dev.json
Normal file
@ -0,0 +1,128 @@
|
||||
[
|
||||
{
|
||||
"name": "BEBadge",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/BEBadge.json",
|
||||
"address": "0x464c94ea90fc7D0D08Bb956cffB9AcfE3AAA5313"
|
||||
},
|
||||
{
|
||||
"name": "BEMultiSigWallet",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BEMultiSigWallet.json",
|
||||
"address": "0x53b94F9474c01678040BA7da4bc54DCD8c0Ed0BA"
|
||||
},
|
||||
{
|
||||
"name": "NftDistributor",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/NftDistributor.json",
|
||||
"address": "0xFd8643CeE37DaE121Ca0E84FD2Ceeb49E828B493"
|
||||
},
|
||||
{
|
||||
"name": "CEC",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x5C3670E0Ac747b03CD0e3B3165b2fd69e6fB790A"
|
||||
},
|
||||
{
|
||||
"name": "CEG",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x51E8aB3c2885860c34d38922c5a9b54215B8CC9b"
|
||||
},
|
||||
{
|
||||
"name": "BEUSDC",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x0a8c20aadDDDF50AFD1d431342Aaf28E4e757884"
|
||||
},
|
||||
{
|
||||
"name": "BEUSDT",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x1DbdE3fbc981A0B5E02778286aE623e864e09dCD"
|
||||
},
|
||||
{
|
||||
"name": "HERO",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0xe67a1e001a30eF1e0EDE04637F1Aceb3F2080604"
|
||||
},
|
||||
{
|
||||
"name": "PLANET",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0x4c8cF69bfd3361Dcf1795354afB32Ec4a26212F8"
|
||||
},
|
||||
{
|
||||
"name": "TestHERO",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0x3c3d89322de3aC6D5BCBD10801BbB2C68f5AC5f1"
|
||||
},
|
||||
{
|
||||
"name": "UserMinterFactory",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/UserMinterFactory.json",
|
||||
"address": "0x102EB6c9895955Ce780508f1e9ee7Ac2bdd1CE57"
|
||||
},
|
||||
{
|
||||
"name": "BENftMarket",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BENftMarket.json",
|
||||
"address": "0x0937F524C8A7d3D6Af3023875CF6c7f293F3B994"
|
||||
},
|
||||
{
|
||||
"name": "BENftMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BENftMall.json",
|
||||
"address": "0x1932400a9A132D20c3961E2848DE4bA3Ce8Ff30B"
|
||||
},
|
||||
{
|
||||
"name": "BETokenMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BETokenMall.json",
|
||||
"address": "0x79e0ba0C34ED4cc6a493ebCdf11A84491Cb6f5ea"
|
||||
},
|
||||
{
|
||||
"name": "GameItemMarket",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/GameItemMarket.json",
|
||||
"address": "0xc080828C1A20E7cb0D20AD5191314e64286989E5"
|
||||
},
|
||||
{
|
||||
"name": "GameItemMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/GameItemMall.json",
|
||||
"address": "0x3B2d33aC0B76462c8Eb58548ed7db68BC826F15E"
|
||||
},
|
||||
{
|
||||
"name": "Gacha",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/BEBadge.json",
|
||||
"address": "0xe00b745b5e71337507d43a8584320c4192CA7994"
|
||||
},
|
||||
{
|
||||
"name": "ClaimGachaFactory",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/ClaimBoxFactory.json",
|
||||
"address": "0x3e5399049a779489000583dD0d14576D0472Fe94"
|
||||
},
|
||||
{
|
||||
"name": "JSONMetadata",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/JSONMetadata.json",
|
||||
"address": "0x0d31fD995E1540CE90Fd98462Cf3284b1693Ad8C"
|
||||
},
|
||||
{
|
||||
"name": "ERC721Staking",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/ERC721Staking.json",
|
||||
"address": "0x59a13b07fE44Aa7221Fd6C55A3E8df26d4E37a65"
|
||||
},
|
||||
{
|
||||
"name": "EvolveProxy",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/EvolveProxy.json",
|
||||
"address": "0xC4bC1f775dB36c07b0bC506cbB83fCe12E182053"
|
||||
}
|
||||
]
|
8
out/lan22_dev.json
Normal file
8
out/lan22_dev.json
Normal file
@ -0,0 +1,8 @@
|
||||
[
|
||||
{
|
||||
"name": "EvolveProxy",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/EvolveProxy.json",
|
||||
"address": "0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"
|
||||
}
|
||||
]
|
128
out/x1_testnet_dev.json
Normal file
128
out/x1_testnet_dev.json
Normal file
@ -0,0 +1,128 @@
|
||||
[
|
||||
{
|
||||
"name": "CEC",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0xB469331cEC98E52b7Eab07dFB586253bE232BBF7"
|
||||
},
|
||||
{
|
||||
"name": "CEG",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x0Ddb3c60DEab2d55bb757772A89680A0533f6B41"
|
||||
},
|
||||
{
|
||||
"name": "HERO",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0xE68F149daF2F314d9960c08496D8701BC7671850"
|
||||
},
|
||||
{
|
||||
"name": "PLANET",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0xD80a641a28702064e3f5EF383bd2640d4ff795c8"
|
||||
},
|
||||
{
|
||||
"name": "UserMinterFactory",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/UserMinterFactory.json",
|
||||
"address": "0xf45702180314187a3549FEDac3B78349b47ca6A0"
|
||||
},
|
||||
{
|
||||
"name": "BEBadge",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/BEBadge.json",
|
||||
"address": "0x4A490306E1644Ce1AA755c90A2F3728A1E925e11"
|
||||
},
|
||||
{
|
||||
"name": "BEMultiSigWallet",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BEMultiSigWallet.json",
|
||||
"address": "0x705FA0719764E184458b407dfeFD54958b52070a"
|
||||
},
|
||||
{
|
||||
"name": "NftDistributor",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/NftDistributor.json",
|
||||
"address": "0x8ee0a9D6025A46f21c9b0b75a8472D001d94e8A7"
|
||||
},
|
||||
{
|
||||
"name": "BEUSDC",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x23e7Ef7D6F9bc3305E8EF0Fa1e5e12C1D5a4b06B"
|
||||
},
|
||||
{
|
||||
"name": "BEUSDT",
|
||||
"type": "erc20",
|
||||
"json": "assets/contracts/FT.json",
|
||||
"address": "0x0Fd13D2CD0B6c679B6f92590E0b91C18DDe7BD3A"
|
||||
},
|
||||
{
|
||||
"name": "BENftMarket",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BENftMarket.json",
|
||||
"address": "0xD7Fc45b5E6C7A7ad299b45E6D34B59b9c3B5e7e1"
|
||||
},
|
||||
{
|
||||
"name": "BENftMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BENftMall.json",
|
||||
"address": "0x2036A0708AC2F17F67b08357d8b4A7d47cF49c29"
|
||||
},
|
||||
{
|
||||
"name": "BETokenMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/BETokenMall.json",
|
||||
"address": "0x20e2677F32dC0CB5D0bB0DEf9df84369AD5a7EC2"
|
||||
},
|
||||
{
|
||||
"name": "GameItemMarket",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/GameItemMarket.json",
|
||||
"address": "0x61E1B8A2937Fa966a6D50D294B66948Ee20f328a"
|
||||
},
|
||||
{
|
||||
"name": "GameItemMall",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/GameItemMall.json",
|
||||
"address": "0x31F29C9A3D0c1c13C825475aebF0d964b5B47c45"
|
||||
},
|
||||
{
|
||||
"name": "Gacha",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/BEBadge.json",
|
||||
"address": "0x1991ee2f224ae5500fb15E90f9967Fb70F4ca27f"
|
||||
},
|
||||
{
|
||||
"name": "ClaimGachaFactory",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/ClaimBoxFactory.json",
|
||||
"address": "0xc8C15a5043f1922EDEF2Fb3982769CbE22aE60f8"
|
||||
},
|
||||
{
|
||||
"name": "JSONMetadata",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/JSONMetadata.json",
|
||||
"address": "0xd46fA2E72BA0F54092D0eF6a6e0D1d5660259C7a"
|
||||
},
|
||||
{
|
||||
"name": "TestHERO",
|
||||
"type": "erc721",
|
||||
"json": "assets/contracts/NFT.json",
|
||||
"address": "0xC35Dcdb3672f1CFC5fe0B0Ec6861a5e9777757CD"
|
||||
},
|
||||
{
|
||||
"name": "ERC721Staking",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/ERC721Staking.json",
|
||||
"address": "0x07564E0C9dAC31F1640b34070C09aF3C820CD9E7"
|
||||
},
|
||||
{
|
||||
"name": "EvolveProxy",
|
||||
"type": "logic",
|
||||
"json": "assets/contracts/EvolveProxy.json",
|
||||
"address": "0x376076491F4fa4139f6FFec8D4abdE92f186f312"
|
||||
}
|
||||
]
|
@ -8,6 +8,7 @@
|
||||
"build": "truffle compile",
|
||||
"prettier": "prettier --write 'contracts/**/*.sol'",
|
||||
"lint": "prettier --list-different 'contracts/**/*.sol'",
|
||||
"develop": "truffle develop",
|
||||
"deploy:dev": "truffle migrate --network development",
|
||||
"deploy:20": "truffle migrate --network lan20 --compile-none",
|
||||
"deploy:22": "truffle migrate --network lan22 --compile-none",
|
||||
@ -16,6 +17,8 @@
|
||||
"deploy:polygon_testnet": "truffle migrate --network polygon_testnet --compile-none",
|
||||
"deploy:dev:arbitrum_testnet": "DEPLOY_ENV=dev truffle migrate --network arbitrum_testnet --compile-none",
|
||||
"deploy:dev:zk_testnet": "DEPLOY_ENV=dev truffle migrate --network zk_testnet --compile-none",
|
||||
"deploy:dev:x1_testnet": "DEPLOY_ENV=dev truffle migrate --network x1_testnet --compile-none",
|
||||
"deploy:dev:goerli": "DEPLOY_ENV=dev truffle migrate --network goerli --compile-none",
|
||||
"deploy:release:arbitrum_testnet": "DEPLOY_ENV=release truffle migrate --network arbitrum_testnet --compile-none",
|
||||
"update:nft_setting": "npx truffle exec --network arbitrum_testnet ./init_scripts/update_nft_setting.js",
|
||||
"mint_presale:dev": "npx truffle exec --network development ./init_scripts/generate_presalebox.js",
|
||||
|
14
readme.md
14
readme.md
@ -4,4 +4,16 @@
|
||||
hero √ 0x0EB362BD40F2288fF25A6Ee1b487cB0cb4638e0D
|
||||
weapon √ 0x29F67A372AC1c6AcF478A564992D421FE20F2cc8
|
||||
chip √ 0x54B6ED7EDe9355b471985439421Aa1DC7Da6Dc20
|
||||
Box √ 0x8444404bD78089A5a6d5Cc57f7Df8924f2DdACB4
|
||||
Box √ 0x8444404bD78089A5a6d5Cc57f7Df8924f2DdACB4
|
||||
|
||||
|
||||
## 运行Test
|
||||
|
||||
```bash
|
||||
# truffle develop模式下运行
|
||||
# 进入develop模式
|
||||
truffle develop
|
||||
# 执行test
|
||||
test
|
||||
|
||||
```
|
@ -3,7 +3,7 @@ const jetpack = require("fs-jetpack");
|
||||
module.exports = {
|
||||
updateArray: function ({ name, type, json, address, network }) {
|
||||
let env = process.env.NODE_ENV || "dev";
|
||||
const filename = `./out_${network}_${env}.json`;
|
||||
const filename = `./out/${network}_${env}.json`;
|
||||
let cfgs = jetpack.read(filename, "json");
|
||||
cfgs = cfgs || [];
|
||||
if (cfgs.find((item) => item.name === name)) {
|
||||
@ -24,7 +24,7 @@ module.exports = {
|
||||
|
||||
loadData: function ({ network }) {
|
||||
let env = process.env.NODE_ENV || "dev";
|
||||
const filename = `./out_${network}_${env}.json`;
|
||||
const filename = `./out/${network}_${env}.json`;
|
||||
return jetpack.read(filename, "json");
|
||||
},
|
||||
};
|
||||
|
@ -5,23 +5,17 @@ const {
|
||||
expectEvent,
|
||||
expectRevert,
|
||||
} = require("@openzeppelin/test-helpers");
|
||||
const BECoin = artifacts.require("BECoin");
|
||||
const BECoin = artifacts.require("tokens/erc20/FT");
|
||||
|
||||
contract("BECoin", ([owner, other]) => {
|
||||
const amount = new BN(10000);
|
||||
|
||||
beforeEach(async () => {
|
||||
this.coin = await BECoin.new();
|
||||
});
|
||||
it("should put 20000000 * 1e18 BECoin in the first account", async () => {
|
||||
let balance = await this.coin.balanceOf.call(owner);
|
||||
assert.equal(
|
||||
balance.valueOf(),
|
||||
20000000 * 1e18,
|
||||
"20000000 * 1e18 wasn't in the first account"
|
||||
);
|
||||
this.coin = await BECoin.new('CEG', 'CEG', 0);
|
||||
await this.coin.mint(owner, amount);
|
||||
});
|
||||
|
||||
|
||||
it("reverts when transferring tokens to the zero address", async () => {
|
||||
// Conditions that trigger a require statement can be precisely tested
|
||||
await expectRevert(
|
89
test/evolve.test.js
Normal file
89
test/evolve.test.js
Normal file
@ -0,0 +1,89 @@
|
||||
const EvolveProxy = artifacts.require("EvolveProxy");
|
||||
const NFT = artifacts.require("NFT");
|
||||
const {
|
||||
BN,
|
||||
constants,
|
||||
expectEvent,
|
||||
expectRevert,
|
||||
} = require("@openzeppelin/test-helpers");
|
||||
const Web3 = require("web3");
|
||||
|
||||
contract("EvolveProxy", (accounts) => {
|
||||
let evolveProxy;
|
||||
let nft;
|
||||
const owner = accounts[0];
|
||||
const user = accounts[1];
|
||||
const executor = accounts[2];
|
||||
let web3 = new Web3(Web3.givenProvider);
|
||||
|
||||
beforeEach(async () => {
|
||||
nft = await NFT.new("CRYPTO ELITE'S HERO", "HERO", 0);
|
||||
evolveProxy = await EvolveProxy.new(nft.address);
|
||||
await nft.setMintRole(evolveProxy.address);
|
||||
});
|
||||
|
||||
it("should evolve the NFT when tokenIds[0] does not exist", async () => {
|
||||
const evolveEventId = "1";
|
||||
const tokenIds = [new BN(1)];
|
||||
const startTime = Date.now() / 1000 | 0;
|
||||
const saltNonce = (Math.random() * 1000) | 0;
|
||||
let signStr = web3.utils.soliditySha3.apply(this,
|
||||
[evolveEventId, user, startTime, saltNonce, ...tokenIds]);
|
||||
let signature = await web3.eth.sign(signStr, executor);
|
||||
signature = signature.replace(/00$/, "1b").replace(/01$/, "1c");
|
||||
|
||||
await evolveProxy.updateExecutor(executor, { from: owner });
|
||||
|
||||
const receipt = await evolveProxy.evolveNft(
|
||||
evolveEventId,
|
||||
tokenIds,
|
||||
startTime,
|
||||
saltNonce,
|
||||
signature,
|
||||
{ from: user }
|
||||
);
|
||||
// const tokenBNIds = tokenIds.map((id) => web3.utils.toBN(id));
|
||||
// expectEvent(receipt, "TokenEvolved", {
|
||||
// evolveEventId,
|
||||
// owner: user,
|
||||
// tokenIds,
|
||||
// });
|
||||
|
||||
const ownerOfToken1 = await nft.ownerOf("1");
|
||||
assert.equal(ownerOfToken1, user, "Token 1 ownership not transferred");
|
||||
|
||||
const balanceOfUser = await nft.balanceOf(user);
|
||||
assert.equal(balanceOfUser, 1, "Incorrect user balance");
|
||||
});
|
||||
|
||||
it("should evolve the NFT and burn other tokens when tokenIds length is greater than 1", async () => {
|
||||
const evolveEventId = "2";
|
||||
const tokenIds = ["1", "2", "3"];
|
||||
const startTime = Date.now() / 1000 | 0;
|
||||
const saltNonce = (Math.random() * 1000) | 0;
|
||||
let signStr = web3.utils.soliditySha3.apply(this,
|
||||
[evolveEventId, user, startTime, saltNonce, ...tokenIds]);
|
||||
let signature = await web3.eth.sign(signStr, executor);
|
||||
signature = signature.replace(/00$/, "1b").replace(/01$/, "1c");
|
||||
|
||||
await evolveProxy.updateExecutor(executor, { from: owner });
|
||||
await nft.batchMint(user, tokenIds, { from: owner });
|
||||
await nft.approve(evolveProxy.address, "2", { from: user });
|
||||
await nft.approve(evolveProxy.address, "3", { from: user });
|
||||
|
||||
await evolveProxy.evolveNft(
|
||||
evolveEventId,
|
||||
tokenIds,
|
||||
startTime,
|
||||
saltNonce,
|
||||
signature,
|
||||
{ from: user }
|
||||
);
|
||||
|
||||
const ownerOfToken1 = await nft.ownerOf(1);
|
||||
assert.equal(ownerOfToken1, user, "Token 1 ownership not transferred");
|
||||
|
||||
const balanceOfUser = await nft.balanceOf(user);
|
||||
assert.equal(balanceOfUser, 1, "Incorrect user balance");
|
||||
});
|
||||
});
|
@ -141,6 +141,40 @@ module.exports = {
|
||||
disableConfirmationListener: true,
|
||||
from: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
},
|
||||
x1_testnet: {
|
||||
provider: () =>
|
||||
new HDWalletProvider({
|
||||
privateKeys: [kccTestnetKey],
|
||||
providerOrUrl: "https://testrpc.x1.tech",
|
||||
pollingInterval: 8000,
|
||||
}),
|
||||
network_id: 195,
|
||||
confirmations: 6,
|
||||
timeoutBlocks: 5000,
|
||||
networkCheckTimeout: 10000000,
|
||||
deploymentPollingInterval: 8000,
|
||||
skipDryRun: true,
|
||||
production: true,
|
||||
disableConfirmationListener: true,
|
||||
from: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
},
|
||||
goerli: {
|
||||
provider: () =>
|
||||
new HDWalletProvider({
|
||||
privateKeys: [kccTestnetKey],
|
||||
providerOrUrl: "https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161",
|
||||
pollingInterval: 8000,
|
||||
}),
|
||||
network_id: 5,
|
||||
confirmations: 6,
|
||||
timeoutBlocks: 5000,
|
||||
networkCheckTimeout: 10000000,
|
||||
deploymentPollingInterval: 8000,
|
||||
skipDryRun: true,
|
||||
production: true,
|
||||
disableConfirmationListener: true,
|
||||
from: "0x50A8e60041A206AcaA5F844a1104896224be6F39",
|
||||
},
|
||||
arbitrum_testnet: {
|
||||
provider: () =>
|
||||
new HDWalletProvider({
|
||||
@ -234,7 +268,7 @@ module.exports = {
|
||||
},
|
||||
development: {
|
||||
host: "127.0.0.1", // Localhost (default: none)
|
||||
port: 7545, // Standard Ethereum port (default: none)
|
||||
port: 9545, // Standard Ethereum port (default: none)
|
||||
network_id: "*", // Any network (default: none)
|
||||
},
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user