优化发布脚本, 调整输出配置文件的路径

This commit is contained in:
CounterFire2023 2023-11-28 11:14:31 +08:00
parent 775fc91697
commit 77a208736a
85 changed files with 241356 additions and 175030 deletions

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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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": {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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

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

File diff suppressed because one or more lines are too long

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

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

View 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

File diff suppressed because it is too large Load Diff

View File

@ -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": {

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

View File

@ -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

File diff suppressed because one or more lines are too long

View File

@ -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

View 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
View 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;

View 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;

View 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;

View File

@ -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;
}

View 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);
}
}

View File

@ -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.

View File

@ -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]);

View File

@ -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;

View File

@ -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);

View File

@ -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.");
// }
};

View File

@ -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);
}
}

View File

@ -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.");
}
};

View File

@ -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.");
}
};

View File

@ -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.");
}
};

View File

@ -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");
};

View File

@ -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");

View File

@ -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);
};

View File

@ -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");

View File

@ -16,7 +16,4 @@ module.exports = async function (deployer, network, accounts) {
network,
});
// // update settings
// for (let cfg of cfgs) {
// }
};

View File

@ -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,
});
};

View File

@ -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);

View File

@ -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
View 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
View 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
View File

@ -0,0 +1,8 @@
[
{
"name": "EvolveProxy",
"type": "logic",
"json": "assets/contracts/EvolveProxy.json",
"address": "0x5b1869D9A4C187F2EAa108f3062412ecf0526b24"
}
]

128
out/x1_testnet_dev.json Normal file
View 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"
}
]

View File

@ -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",

View File

@ -4,4 +4,16 @@
hero √ 0x0EB362BD40F2288fF25A6Ee1b487cB0cb4638e0D
weapon √ 0x29F67A372AC1c6AcF478A564992D421FE20F2cc8
chip √ 0x54B6ED7EDe9355b471985439421Aa1DC7Da6Dc20
Box √ 0x8444404bD78089A5a6d5Cc57f7Df8924f2DdACB4
Box √ 0x8444404bD78089A5a6d5Cc57f7Df8924f2DdACB4
## 运行Test
```bash
# truffle develop模式下运行
# 进入develop模式
truffle develop
# 执行test
test
```

View File

@ -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");
},
};

View File

@ -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
View 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");
});
});

View File

@ -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)
},
},