调整部分页面
This commit is contained in:
parent
f1dd02bb55
commit
202ab6b28f
|
|
@ -24,7 +24,8 @@ REACT_APP_SNAPSHOT_VOTING_API = "https://xtjyd0liqe.execute-api.ap-northeast-1.a
|
||||||
|
|
||||||
|
|
||||||
# REACT_APP_REQUEST_URL = 'http://192.253.237.94:9090'
|
# REACT_APP_REQUEST_URL = 'http://192.253.237.94:9090'
|
||||||
REACT_APP_REQUEST_URL = 'http://101.35.117.69:9090'
|
REACT_APP_REQUEST_URL = 'http://HousedeMacBook-Air.local:8080'
|
||||||
|
# REACT_APP_REQUEST_URL = 'http://101.35.117.69:9090'
|
||||||
# REACT_APP_REQUEST_URL = 'http://192.168.2.147:8080'
|
# REACT_APP_REQUEST_URL = 'http://192.168.2.147:8080'
|
||||||
# REACT_APP_REQUEST_URL = 'http://192.168.2.:8080'
|
# REACT_APP_REQUEST_URL = 'http://192.168.2.:8080'
|
||||||
# REACT_APP_REQUEST_URL = 'http://6o7g1fv83e.51xd.pub'
|
# REACT_APP_REQUEST_URL = 'http://6o7g1fv83e.51xd.pub'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,449 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "_hccAddress", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "_otherPaymentAddress", "type": "address" }
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "constructor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "owner", "type": "address" },
|
||||||
|
{ "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" },
|
||||||
|
{ "indexed": true, "internalType": "uint256", "name": "code", "type": "uint256" },
|
||||||
|
{ "indexed": false, "internalType": "uint256", "name": "tpe", "type": "uint256" },
|
||||||
|
{ "indexed": false, "internalType": "uint256", "name": "timestamp", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "CreateNft",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "address", "name": "newHccAddress", "type": "address" }],
|
||||||
|
"name": "HccAddressChange",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "newHccPrice", "type": "uint256" }],
|
||||||
|
"name": "HccPriceChange",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "address", "name": "newNftHolderPool", "type": "address" }],
|
||||||
|
"name": "NftHolderPoolChange",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "address", "name": "newOtherPaymentAddress", "type": "address" }],
|
||||||
|
"name": "OtherPaymentAddressChange",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "newOtherPaymentPirce", "type": "uint256" }],
|
||||||
|
"name": "OtherPaymentPirceChange",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "OwnershipTransferred",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [{ "indexed": false, "internalType": "bool", "name": "pause", "type": "bool" }],
|
||||||
|
"name": "PauseEvent",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "START_AT",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "_lastTokenID",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"name": "_userPowerMap",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "_timestamp", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "code", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "tpe", "type": "uint256" },
|
||||||
|
{ "internalType": "bytes", "name": "_signature", "type": "bytes" }
|
||||||
|
],
|
||||||
|
"name": "adminMint",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "approve",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "owner", "type": "address" }],
|
||||||
|
"name": "balanceOf",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "baseTokenURI",
|
||||||
|
"outputs": [{ "internalType": "string", "name": "", "type": "string" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "executorAddress",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }],
|
||||||
|
"name": "getApproved",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "hccAddress",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "owner", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "operator", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "isApprovedForAll",
|
||||||
|
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "num", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "hccPirce", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "otherPaymentPirce", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "_timestamp", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "code", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "tpe", "type": "uint256" },
|
||||||
|
{ "internalType": "bytes", "name": "_signature", "type": "bytes" }
|
||||||
|
],
|
||||||
|
"name": "mint",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "name",
|
||||||
|
"outputs": [{ "internalType": "string", "name": "", "type": "string" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "nftHolderPool",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "nftRewardPool",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "_findAddress", "type": "address" }],
|
||||||
|
"name": "notifyPowerChange",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "otherPaymentAddress",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "owner",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }],
|
||||||
|
"name": "ownerOf",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }],
|
||||||
|
"name": "rawOwnerOf",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{ "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "from", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "safeTransferFrom",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "from", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" },
|
||||||
|
{ "internalType": "bytes", "name": "_data", "type": "bytes" }
|
||||||
|
],
|
||||||
|
"name": "safeTransferFrom",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "operator", "type": "address" },
|
||||||
|
{ "internalType": "bool", "name": "approved", "type": "bool" }
|
||||||
|
],
|
||||||
|
"name": "setApprovalForAll",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "string", "name": "baseURI", "type": "string" }],
|
||||||
|
"name": "setBaseURI",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "executor", "type": "address" }],
|
||||||
|
"name": "setExecutorAddress",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "newHccAddress", "type": "address" }],
|
||||||
|
"name": "setHccAddress",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "newNftHolderPool", "type": "address" }],
|
||||||
|
"name": "setNftHolderPool",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "newOtherPaymentAddress", "type": "address" }],
|
||||||
|
"name": "setOtherPaymentAddress",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "bool", "name": "_pause", "type": "bool" }],
|
||||||
|
"name": "setPause",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "num", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "hccPirce", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "otherPaymentPirce", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "_timestamp", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "code", "type": "uint256" },
|
||||||
|
{ "internalType": "bytes", "name": "_signature", "type": "bytes" }
|
||||||
|
],
|
||||||
|
"name": "signatureMint",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "pure",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "wallet", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "code", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "_timestamp", "type": "uint256" },
|
||||||
|
{ "internalType": "bytes", "name": "_signature", "type": "bytes" }
|
||||||
|
],
|
||||||
|
"name": "signatureWallet",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "pure",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" }],
|
||||||
|
"name": "supportsInterface",
|
||||||
|
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "symbol",
|
||||||
|
"outputs": [{ "internalType": "string", "name": "", "type": "string" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "index", "type": "uint256" }],
|
||||||
|
"name": "tokenByIndex",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "owner", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "index", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "tokenOfOwnerByIndex",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }],
|
||||||
|
"name": "tokenURI",
|
||||||
|
"outputs": [{ "internalType": "string", "name": "", "type": "string" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "totalSupply",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "totalToken",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "from", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "transferFrom",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
|
||||||
|
"name": "transferOwnership",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "_owner", "type": "address" }],
|
||||||
|
"name": "walletOfOwner",
|
||||||
|
"outputs": [{ "internalType": "uint256[]", "name": "", "type": "uint256[]" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "address", "name": "tokenAddress", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "to", "type": "address" },
|
||||||
|
{ "internalType": "uint256", "name": "value", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "withDrawToken",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,129 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "contract IERC20", "name": "_HCC", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "_HCCNftAddress", "type": "address" },
|
||||||
|
{ "internalType": "address", "name": "_HCCNFTReawardPool", "type": "address" }
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "constructor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "OwnershipTransferred",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "user", "type": "address" },
|
||||||
|
{ "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "UserFightPoint",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "user", "type": "address" },
|
||||||
|
{ "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"name": "Withdraw",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "HCC",
|
||||||
|
"outputs": [{ "internalType": "contract IERC20", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "HCCNFTReawardPool",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "HCCNftAddress",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "_poolInfo",
|
||||||
|
"outputs": [
|
||||||
|
{ "internalType": "uint256", "name": "accHCCPerShare", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "totalAmount", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "totalReward", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "owner",
|
||||||
|
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "paused",
|
||||||
|
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "_user", "type": "address" }],
|
||||||
|
"name": "pendingHCC",
|
||||||
|
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{ "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
|
||||||
|
{ "inputs": [], "name": "setPause", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
|
||||||
|
"name": "transferOwnership",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{ "inputs": [], "name": "updatePool", "outputs": [], "stateMutability": "nonpayable", "type": "function" },
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
||||||
|
"name": "userInfo",
|
||||||
|
"outputs": [
|
||||||
|
{ "internalType": "uint256", "name": "amount", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "rewardDebt", "type": "uint256" },
|
||||||
|
{ "internalType": "uint256", "name": "receiveReward", "type": "uint256" }
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{ "internalType": "uint256", "name": "_amount", "type": "uint256" },
|
||||||
|
{ "internalType": "address", "name": "_user", "type": "address" }
|
||||||
|
],
|
||||||
|
"name": "userPowerChange",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [{ "internalType": "address", "name": "_user", "type": "address" }],
|
||||||
|
"name": "withdrawHCC",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -35,6 +35,17 @@
|
||||||
"name": "OwnershipTransferred",
|
"name": "OwnershipTransferred",
|
||||||
"type": "event"
|
"type": "event"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{ "indexed": true, "internalType": "address", "name": "user", "type": "address" },
|
||||||
|
{ "indexed": false, "internalType": "uint256", "name": "buy", "type": "uint256" },
|
||||||
|
{ "indexed": false, "internalType": "uint256", "name": "pay", "type": "uint256" },
|
||||||
|
{ "indexed": false, "internalType": "bool", "name": "isCredited", "type": "bool" }
|
||||||
|
],
|
||||||
|
"name": "Purchase",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"anonymous": false,
|
"anonymous": false,
|
||||||
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "newLockTime", "type": "uint256" }],
|
"inputs": [{ "indexed": false, "internalType": "uint256", "name": "newLockTime", "type": "uint256" }],
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,12 @@ export default {
|
||||||
idoPurchase: {
|
idoPurchase: {
|
||||||
97: '0x2f562A9fE0325501A6Aa92cd9e2081B026fC35aa',
|
97: '0x2f562A9fE0325501A6Aa92cd9e2081B026fC35aa',
|
||||||
56: '0x2f562A9fE0325501A6Aa92cd9e2081B026fC35aa', // NEED CHANGE IDO兑换
|
56: '0x2f562A9fE0325501A6Aa92cd9e2081B026fC35aa', // NEED CHANGE IDO兑换
|
||||||
5: '0xC7dB5e542f63CB616fF7D25c683f82f96dBfBEe6',
|
5: '0x81cdaf31147b86ffe6303b1bde6f20a5377d87b1',
|
||||||
|
},
|
||||||
|
blindBox: {
|
||||||
|
97: '0x0e226d7b83b511ce224803b1330beb4a59bfa5d6',
|
||||||
|
56: '0x0e226d7b83b511ce224803b1330beb4a59bfa5d6', // NEED CHANGE 官方市场 盲盒
|
||||||
|
5: '0x0e226d7b83b511ce224803b1330beb4a59bfa5d6',
|
||||||
},
|
},
|
||||||
lotteryV2: {
|
lotteryV2: {
|
||||||
97: '0x5790c3534F30437641541a0FA04C992799602998',
|
97: '0x5790c3534F30437641541a0FA04C992799602998',
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import {
|
||||||
getBoardchefContract,
|
getBoardchefContract,
|
||||||
getReferralRewardchefContract,
|
getReferralRewardchefContract,
|
||||||
getIdoPurchaseContract,
|
getIdoPurchaseContract,
|
||||||
|
getHccGiftNftContract,
|
||||||
} from 'utils/contractHelpers'
|
} from 'utils/contractHelpers'
|
||||||
|
|
||||||
// Imports below migrated from Exchange useContract.ts
|
// Imports below migrated from Exchange useContract.ts
|
||||||
|
|
@ -114,6 +115,10 @@ export const useIdoPurchase = () => {
|
||||||
const { library } = useActiveWeb3React()
|
const { library } = useActiveWeb3React()
|
||||||
return useMemo(() => getIdoPurchaseContract(library.getSigner()), [library])
|
return useMemo(() => getIdoPurchaseContract(library.getSigner()), [library])
|
||||||
}
|
}
|
||||||
|
export const useHccGiftNft = () => {
|
||||||
|
const { library } = useActiveWeb3React()
|
||||||
|
return useMemo(() => getHccGiftNftContract(library.getSigner()), [library])
|
||||||
|
}
|
||||||
export const useReferralRewardchef = () => {
|
export const useReferralRewardchef = () => {
|
||||||
const { library } = useActiveWeb3React()
|
const { library } = useActiveWeb3React()
|
||||||
return useMemo(() => getReferralRewardchefContract(library.getSigner()), [library])
|
return useMemo(() => getReferralRewardchefContract(library.getSigner()), [library])
|
||||||
|
|
|
||||||
|
|
@ -14,5 +14,11 @@ export const getBoxDetail = (id) => {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export const getPurchase = (id) => {
|
||||||
|
return request.request({
|
||||||
|
url: `/high_city/app/api/box/purchase/${id}`,
|
||||||
|
method: 'get',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default getBoxPage
|
export default getBoxPage
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
import { createSlice } from '@reduxjs/toolkit'
|
||||||
|
import BigNumber from 'bignumber.js'
|
||||||
|
import erc20ABI from 'config/abi/erc20.json'
|
||||||
|
import multicall from 'utils/multicall'
|
||||||
|
import tokens from 'config/constants/tokens'
|
||||||
|
import { getAddress, getBlindBoxAddress } from 'utils/addressHelpers'
|
||||||
|
|
||||||
|
const payWayList = {
|
||||||
|
usdt: tokens.usdt,
|
||||||
|
hcc: tokens.hcc,
|
||||||
|
}
|
||||||
|
|
||||||
|
export const fetchBlindBoxUserAllowances = async (account: string) => {
|
||||||
|
const calls = Object.values(payWayList).map((payWayItem) => {
|
||||||
|
const tokenAddresses = getAddress(payWayItem.address)
|
||||||
|
const referralChefAddress = getBlindBoxAddress()
|
||||||
|
return { address: tokenAddresses, name: 'allowance', params: [account, referralChefAddress] }
|
||||||
|
})
|
||||||
|
|
||||||
|
const rawLpAllowances = await multicall(erc20ABI, calls)
|
||||||
|
const parsedLpAllowances = rawLpAllowances.map((balance) => {
|
||||||
|
return new BigNumber(balance).toNumber()
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
usdt: parsedLpAllowances[0],
|
||||||
|
hcc: parsedLpAllowances[1],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default fetchBlindBoxUserAllowances
|
||||||
|
|
@ -77,3 +77,6 @@ export const getBunnySpecialPredictionAddress = () => {
|
||||||
export const getIdoPurchaseAddress = () => {
|
export const getIdoPurchaseAddress = () => {
|
||||||
return getAddress(addresses.idoPurchase)
|
return getAddress(addresses.idoPurchase)
|
||||||
}
|
}
|
||||||
|
export const getBlindBoxAddress = () => {
|
||||||
|
return getAddress(addresses.blindBox)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import {
|
||||||
getReferralAddress,
|
getReferralAddress,
|
||||||
getReferralRewardAddress,
|
getReferralRewardAddress,
|
||||||
getIdoPurchaseAddress,
|
getIdoPurchaseAddress,
|
||||||
|
getBlindBoxAddress,
|
||||||
} from 'utils/addressHelpers'
|
} from 'utils/addressHelpers'
|
||||||
|
|
||||||
// ABI
|
// ABI
|
||||||
|
|
@ -61,6 +62,7 @@ import MultiCallAbi from 'config/abi/Multicall.json'
|
||||||
import bunnySpecialCakeVaultAbi from 'config/abi/bunnySpecialCakeVault.json'
|
import bunnySpecialCakeVaultAbi from 'config/abi/bunnySpecialCakeVault.json'
|
||||||
import bunnySpecialPredictionAbi from 'config/abi/bunnySpecialPrediction.json'
|
import bunnySpecialPredictionAbi from 'config/abi/bunnySpecialPrediction.json'
|
||||||
import idoPurchase from 'config/abi/idoPurchase.json'
|
import idoPurchase from 'config/abi/idoPurchase.json'
|
||||||
|
import blindBox from 'config/abi/blindBox.json'
|
||||||
import { ChainLinkOracleContract, PredictionsContract } from './types'
|
import { ChainLinkOracleContract, PredictionsContract } from './types'
|
||||||
|
|
||||||
const getContract = (abi: any, address: string, signer?: ethers.Signer | ethers.providers.Provider) => {
|
const getContract = (abi: any, address: string, signer?: ethers.Signer | ethers.providers.Provider) => {
|
||||||
|
|
@ -132,6 +134,9 @@ export const getReferralRewardchefContract = (signer?: ethers.Signer | ethers.pr
|
||||||
export const getIdoPurchaseContract = (signer?: ethers.Signer | ethers.providers.Provider) => {
|
export const getIdoPurchaseContract = (signer?: ethers.Signer | ethers.providers.Provider) => {
|
||||||
return getContract(idoPurchase, getIdoPurchaseAddress(), signer)
|
return getContract(idoPurchase, getIdoPurchaseAddress(), signer)
|
||||||
}
|
}
|
||||||
|
export const getHccGiftNftContract = (signer?: ethers.Signer | ethers.providers.Provider) => {
|
||||||
|
return getContract(blindBox, getBlindBoxAddress(), signer)
|
||||||
|
}
|
||||||
export const getClaimRefundContract = (signer?: ethers.Signer | ethers.providers.Provider) => {
|
export const getClaimRefundContract = (signer?: ethers.Signer | ethers.providers.Provider) => {
|
||||||
return getContract(claimRefundAbi, getClaimRefundAddress(), signer)
|
return getContract(claimRefundAbi, getClaimRefundAddress(), signer)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
import { useCallback } from 'react'
|
import { useCallback } from 'react'
|
||||||
import { getBoxPage, getBoxDetail } from 'services/blindBox'
|
import { useHccGiftNft } from 'hooks/useContract'
|
||||||
|
import blindBox from 'config/abi/blindBox.json'
|
||||||
|
import { getAddress, getBlindBoxAddress } from 'utils/addressHelpers'
|
||||||
|
import multicall from 'utils/multicall'
|
||||||
|
import { ethers, Contract } from 'ethers'
|
||||||
|
import { getBoxPage, getBoxDetail, getPurchase } from 'services/blindBox'
|
||||||
|
|
||||||
// nft盒子
|
// nft盒子
|
||||||
export const useGetList = () => {
|
export const useGetList = () => {
|
||||||
|
|
@ -18,4 +23,41 @@ export const useGetBoxDetail = () => {
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 授权usdt
|
||||||
|
export const useApproveUsdt = (tokenContract: Contract) => {
|
||||||
|
const handleApprove = useCallback(async () => {
|
||||||
|
try {
|
||||||
|
const tx = await tokenContract.approve(getBlindBoxAddress(), ethers.constants.MaxUint256)
|
||||||
|
const receipt = await tx.wait()
|
||||||
|
return receipt.status
|
||||||
|
} catch (e) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}, [tokenContract])
|
||||||
|
|
||||||
|
return { onApprove: handleApprove }
|
||||||
|
}
|
||||||
|
export const useApproveHccGiftNft = (tokenContract: Contract) => {
|
||||||
|
const handleApprove = useCallback(async () => {
|
||||||
|
try {
|
||||||
|
const tx = await tokenContract.approve(getBlindBoxAddress(), ethers.constants.MaxUint256)
|
||||||
|
const receipt = await tx.wait()
|
||||||
|
return receipt.status
|
||||||
|
} catch (e) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}, [tokenContract])
|
||||||
|
|
||||||
|
return { onApprove: handleApprove }
|
||||||
|
}
|
||||||
|
|
||||||
|
// 购买
|
||||||
|
export const useGetPurchase = () => {
|
||||||
|
const data = async (id) => {
|
||||||
|
const result = await getPurchase(id)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
export default useGetList
|
export default useGetList
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,19 @@ import React, { useEffect, useState } from 'react'
|
||||||
import styled from 'styled-components'
|
import styled from 'styled-components'
|
||||||
import { useTranslation } from 'contexts/Localization'
|
import { useTranslation } from 'contexts/Localization'
|
||||||
import { useAccount } from 'state/userInfo/hooks'
|
import { useAccount } from 'state/userInfo/hooks'
|
||||||
|
import { getAddress } from 'utils/addressHelpers'
|
||||||
|
import { fetchBlindBoxUserAllowances } from 'state/blindBox'
|
||||||
|
import { useERC20 } from 'hooks/useContract'
|
||||||
import UnlockButton from 'components/UnlockButton'
|
import UnlockButton from 'components/UnlockButton'
|
||||||
import SwiperCore, { Keyboard, Mousewheel, Pagination } from 'swiper'
|
import SwiperCore, { Keyboard, Mousewheel, Pagination } from 'swiper'
|
||||||
import { Swiper, SwiperSlide } from 'swiper/react'
|
import { Swiper, SwiperSlide } from 'swiper/react'
|
||||||
import { Card, Text, Flex, Image, Button } from '@pancakeswap/uikit'
|
import { Card, Text, Flex, Image, Button } from '@pancakeswap/uikit'
|
||||||
import { UnOpenModel } from 'components/Modal'
|
import { UnOpenModel } from 'components/Modal'
|
||||||
|
import tokens from 'config/constants/tokens'
|
||||||
import { ListProp } from 'types/blindBox'
|
import { ListProp } from 'types/blindBox'
|
||||||
import Header from './component/Header'
|
import Header from './component/Header'
|
||||||
import Operation from './component/Operation'
|
import Operation from './component/Operation'
|
||||||
import { useGetList } from './hooks'
|
import { useGetList, useApproveHccGiftNft } from './hooks'
|
||||||
|
|
||||||
import 'swiper/swiper.min.css'
|
import 'swiper/swiper.min.css'
|
||||||
import 'swiper/components/pagination/pagination.min.css'
|
import 'swiper/components/pagination/pagination.min.css'
|
||||||
|
|
@ -139,13 +143,47 @@ const BuyButton = styled(Button)`
|
||||||
width: 500px;
|
width: 500px;
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
const AuthorizationBtn = styled(Button)`
|
||||||
|
width: 40%;
|
||||||
|
margin: 20px auto 0px auto;
|
||||||
|
border-radius: 50px;
|
||||||
|
background: linear-gradient(180deg, #7be0fc 0%, #ac7bf1 100%);
|
||||||
|
border: none;
|
||||||
|
`
|
||||||
|
|
||||||
const BlindBox: React.FC = () => {
|
const BlindBox: React.FC = () => {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
|
|
||||||
|
const [allowanceList, setAllowanceList] = useState({ usdt: 0, hcc: 0 })
|
||||||
|
const [loading, setLoading] = useState(false)
|
||||||
const account = useAccount()
|
const account = useAccount()
|
||||||
const [blindBoxList, setBlindBoxList] = useState<ListProp[]>()
|
const [blindBoxList, setBlindBoxList] = useState<ListProp[]>()
|
||||||
const [buyNum, setBuyNum] = useState(0)
|
const [buyNum, setBuyNum] = useState(0)
|
||||||
|
|
||||||
|
const usdtContract = useERC20(getAddress(tokens.usdt.address))
|
||||||
|
const hccContract = useERC20(getAddress(tokens.hcc.address))
|
||||||
|
const { onApprove: onUsdtApprove } = useApproveHccGiftNft(usdtContract)
|
||||||
|
const { onApprove: onHccApprove } = useApproveHccGiftNft(hccContract)
|
||||||
|
|
||||||
|
const getAllowances = async () => {
|
||||||
|
const allowances = await fetchBlindBoxUserAllowances(account)
|
||||||
|
setAllowanceList({
|
||||||
|
usdt: allowances.usdt,
|
||||||
|
hcc: allowances.hcc,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleApprove = async (approve) => {
|
||||||
|
try {
|
||||||
|
setLoading(true)
|
||||||
|
await approve()
|
||||||
|
setLoading(false)
|
||||||
|
getAllowances()
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const getList = useGetList()
|
const getList = useGetList()
|
||||||
|
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
|
|
@ -199,6 +237,28 @@ const BlindBox: React.FC = () => {
|
||||||
<Operation detail={item} getNum={(v) => setBuyNum(v)} />
|
<Operation detail={item} getNum={(v) => setBuyNum(v)} />
|
||||||
</BlindBoxCard>
|
</BlindBoxCard>
|
||||||
{account ? <BuyButton onClick={handleBuy}>{t('Buy It Now')}</BuyButton> : <UnlockButtonDiv />}
|
{account ? <BuyButton onClick={handleBuy}>{t('Buy It Now')}</BuyButton> : <UnlockButtonDiv />}
|
||||||
|
|
||||||
|
{!allowanceList.usdt && (
|
||||||
|
<AuthorizationBtn
|
||||||
|
disabled={loading}
|
||||||
|
onClick={() => {
|
||||||
|
handleApprove(onUsdtApprove)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t('Approve %coin% Contract', { coin: 'USDT' })}
|
||||||
|
</AuthorizationBtn>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{!allowanceList.hcc && (
|
||||||
|
<AuthorizationBtn
|
||||||
|
disabled={loading}
|
||||||
|
onClick={() => {
|
||||||
|
handleApprove(onHccApprove)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{t('Approve %coin% Contract', { coin: 'HCC' })}
|
||||||
|
</AuthorizationBtn>
|
||||||
|
)}
|
||||||
</BlindBoxFlex>
|
</BlindBoxFlex>
|
||||||
</SwiperSlide>
|
</SwiperSlide>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,8 @@ export const useGetRound = () => {
|
||||||
}
|
}
|
||||||
const { id } = data
|
const { id } = data
|
||||||
const idoPurchaseAddress = getIdoPurchaseAddress()
|
const idoPurchaseAddress = getIdoPurchaseAddress()
|
||||||
|
console.log(idoPurchaseAddress)
|
||||||
|
console.log(id)
|
||||||
const calls = [
|
const calls = [
|
||||||
{
|
{
|
||||||
address: idoPurchaseAddress,
|
address: idoPurchaseAddress,
|
||||||
|
|
@ -76,6 +78,7 @@ export const useGetRound = () => {
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
const res = await multicall(idoPurchaseABI, calls)
|
const res = await multicall(idoPurchaseABI, calls)
|
||||||
|
console.log(res)
|
||||||
const detail = res.map((item) => {
|
const detail = res.map((item) => {
|
||||||
return {
|
return {
|
||||||
beginTime: new BigNumber(item?.beginTime._hex).toNumber() * 1000,
|
beginTime: new BigNumber(item?.beginTime._hex).toNumber() * 1000,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue