mirror of
https://github.com/th30d4y/OpenLearnX.git
synced 2026-05-26 11:25:49 +00:00
690 lines
14 KiB
JSON
690 lines
14 KiB
JSON
{
|
|
"contract_address": "0xC2FE2F49B3a1384aEdFAae127F054FAf216eF684",
|
|
"transaction_hash": "0xfe5a433dae316bd2d60b7190c21866a1fde30777f08d9d37e403ed642433fa28",
|
|
"deployer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
|
|
"network": "local",
|
|
"abi": [
|
|
{
|
|
"type": "constructor",
|
|
"inputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "approve",
|
|
"inputs": [
|
|
{
|
|
"name": "to",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "balanceOf",
|
|
"inputs": [
|
|
{
|
|
"name": "owner",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "certificates",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "subject",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "studentName",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "score",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "timestamp",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "verified",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "getApproved",
|
|
"inputs": [
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "getCertificate",
|
|
"inputs": [
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "tuple",
|
|
"internalType": "struct CertificateNFT.Certificate",
|
|
"components": [
|
|
{
|
|
"name": "subject",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "studentName",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "score",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "timestamp",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "verified",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "getUserCertificates",
|
|
"inputs": [
|
|
{
|
|
"name": "user",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256[]",
|
|
"internalType": "uint256[]"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "isApprovedForAll",
|
|
"inputs": [
|
|
{
|
|
"name": "owner",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "operator",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "mintCertificate",
|
|
"inputs": [
|
|
{
|
|
"name": "to",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "_tokenURI",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "mintCertificateWithDetails",
|
|
"inputs": [
|
|
{
|
|
"name": "to",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "_tokenURI",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "subject",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "studentName",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "score",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "name",
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "owner",
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "ownerOf",
|
|
"inputs": [
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "renounceOwnership",
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "safeTransferFrom",
|
|
"inputs": [
|
|
{
|
|
"name": "from",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "to",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "safeTransferFrom",
|
|
"inputs": [
|
|
{
|
|
"name": "from",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "to",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "data",
|
|
"type": "bytes",
|
|
"internalType": "bytes"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "setApprovalForAll",
|
|
"inputs": [
|
|
{
|
|
"name": "operator",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "approved",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "supportsInterface",
|
|
"inputs": [
|
|
{
|
|
"name": "interfaceId",
|
|
"type": "bytes4",
|
|
"internalType": "bytes4"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "symbol",
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "tokenURI",
|
|
"inputs": [
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "string",
|
|
"internalType": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "totalSupply",
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "transferFrom",
|
|
"inputs": [
|
|
{
|
|
"name": "from",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "to",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "transferOwnership",
|
|
"inputs": [
|
|
{
|
|
"name": "newOwner",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "userCertificates",
|
|
"inputs": [
|
|
{
|
|
"name": "",
|
|
"type": "address",
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "function",
|
|
"name": "verifyCertificate",
|
|
"inputs": [
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "",
|
|
"type": "bool",
|
|
"internalType": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view"
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "Approval",
|
|
"inputs": [
|
|
{
|
|
"name": "owner",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "approved",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"indexed": true,
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "ApprovalForAll",
|
|
"inputs": [
|
|
{
|
|
"name": "owner",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "operator",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "approved",
|
|
"type": "bool",
|
|
"indexed": false,
|
|
"internalType": "bool"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "BatchMetadataUpdate",
|
|
"inputs": [
|
|
{
|
|
"name": "_fromTokenId",
|
|
"type": "uint256",
|
|
"indexed": false,
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "_toTokenId",
|
|
"type": "uint256",
|
|
"indexed": false,
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "CertificateMinted",
|
|
"inputs": [
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"indexed": true,
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "student",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "subject",
|
|
"type": "string",
|
|
"indexed": false,
|
|
"internalType": "string"
|
|
},
|
|
{
|
|
"name": "score",
|
|
"type": "uint256",
|
|
"indexed": false,
|
|
"internalType": "uint256"
|
|
},
|
|
{
|
|
"name": "tokenURI",
|
|
"type": "string",
|
|
"indexed": false,
|
|
"internalType": "string"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "MetadataUpdate",
|
|
"inputs": [
|
|
{
|
|
"name": "_tokenId",
|
|
"type": "uint256",
|
|
"indexed": false,
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "OwnershipTransferred",
|
|
"inputs": [
|
|
{
|
|
"name": "previousOwner",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "newOwner",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
},
|
|
{
|
|
"type": "event",
|
|
"name": "Transfer",
|
|
"inputs": [
|
|
{
|
|
"name": "from",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "to",
|
|
"type": "address",
|
|
"indexed": true,
|
|
"internalType": "address"
|
|
},
|
|
{
|
|
"name": "tokenId",
|
|
"type": "uint256",
|
|
"indexed": true,
|
|
"internalType": "uint256"
|
|
}
|
|
],
|
|
"anonymous": false
|
|
}
|
|
],
|
|
"gas_used": 3387337,
|
|
"block_number": 22994809,
|
|
"status": 1
|
|
} |