Search
Search

Transaction: AFtR17a...TGSK

Receiver
Status
Succeeded
Transaction Fee
0.00091 
Deposit Value
0 
Gas Used
9 Tgas
Attached Gas
100 Tgas
Created
April 10, 2024 at 4:49:21am
Hash
AFtR17a9HrToyjmLXw8KqRkXBbmSA77etv5Y3aF4TGSK

Actions

Called method: 'set' in contract: social.near
Arguments:
{ "data": { "flowscience.near": { "widget": { "eas": { "": "//const { getAttestation } = VM.require(\"flowscience.near/widget/generateUID\");\r\n// Example attestation UID: 0xff5dc0cdc3de27dfe6a4352c596c0f97b1f99c51a67bbae142ce315e34969dcd\r\nconst { easRenderAttestation } = VM.require(\r\n \"flowscience.near/widget/easRenderAttestation\"\r\n);\r\n\r\nconst user = Ethers.send(\"eth_requestAccounts\", [])[0];\r\n\r\nif (!user) return <Web3Connect connectLabel=\"Connect\" />;\r\n\r\nconst chain = Ethers.provider()\r\n .getNetwork()\r\n .then((chainIdData) => {\r\n console.log(chainIdData.chainId);\r\n });\r\n\r\nconsole.log(\"chain:\", chain);\r\n\r\nconst abi = fetch(\r\n \"https://raw.githubusercontent.com/ethereum-attestation-service/eas-contracts/master/deployments/optimism/EAS.json\"\r\n);\r\nconst provider = new ethers.providers.JsonRpcProvider(\r\n \"https://optimism.drpc.org\"\r\n);\r\nconst signer = provider.getSigner(user);\r\nconsole.log(\"chain:\", chain);\r\nconsole.log(\"signer:\", signer);\r\n\r\nconst contractAddress = \"0x4200000000000000000000000000000000000021\";\r\nconst parsedAbi = JSON.parse(abi.body);\r\nconst contract = new ethers.Contract(contractAddress, parsedAbi.abi, signer);\r\nconsole.log(contract);\r\nconst [attestation, setAttestation] = useState(null);\r\nconst [error, setError] = useState(\"\");\r\nconst [uid, setUid] = useState(\"\");\r\nfunction getAttestation() {\r\n if (typeof uid !== \"string\" || uid.trim() === \"\") {\r\n console.error(\"UID must be a non-empty string.\");\r\n setError(\"UID must be provided.\");\r\n return;\r\n }\r\n\r\n contract\r\n .getAttestation(uid)\r\n .then((result) => {\r\n const [\r\n uid,\r\n schema,\r\n time,\r\n expirationTime,\r\n revocationTime,\r\n refUID,\r\n recipient,\r\n attester,\r\n revocable,\r\n data,\r\n ] = result;\r\n const mappedAttestation = {\r\n uid,\r\n schema,\r\n time: time.toNumber(),\r\n expirationTime: expirationTime.toNumber(),\r\n revocationTime: revocationTime.toNumber(),\r\n refUID,\r\n recipient,\r\n attester,\r\n revocable,\r\n data,\r\n };\r\n setAttestation(mappedAttestation);\r\n setError(\"\");\r\n })\r\n .catch((error) => {\r\n console.error(\"error fetching attestation:\", error);\r\n setError(\"Failed to retrieve data. Please try with a verified uid.\");\r\n });\r\n}\r\n\r\nconst App = () => {\r\n const attestationDetails = {\r\n uid: attestation.uid,\r\n schema: state.attestation.schema,\r\n time: attestation.timestamp, // Example Unix timestamp = 1633036800\r\n expirationTime: props.expiration, // Example Unix timestamp\r\n revocationTime: props.revocation, // 0 indicates not revoked\r\n refUID: props.refUID,\r\n recipient: props.recipient, // Blockchain account, if self = {context.accountId}\r\n attester: props.attester, // Blockchain account, if self = {context.accountId}\r\n revocable: props.revocable, // Boolean\r\n data: props.data, // Example hex data = \"0xdeadbeef\"\r\n };\r\n};\r\n\r\nreturn (\r\n <>\r\n <div className=\"m-2\">\r\n <h3>Get Attestation</h3>\r\n <input\r\n type=\"text\"\r\n placeholder=\"input UID\"\r\n value={uid}\r\n onChange={(e) => setUid(e.target.value)}\r\n />\r\n </div>\r\n <div className=\"m-2\">\r\n <button className=\"btn btn-primary m-1\" onClick={getAttestation}>\r\n Get Attestation\r\n </button>\r\n <p className=\"m-1\">{error}</p>\r\n </div>\r\n <div>\r\n {attestation && (\r\n <div className=\"App\">\r\n <easRenderAttestation attestation={attestation} />\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n);\r\n", "metadata": { "fork_of": "hack.near/widget/passport@114479597" } } } } } }

Transaction Execution Plan

Convert Transaction To Receipt
Gas Burned:
2 Tgas
Tokens Burned:
0.00024 
Receipt:
Predecessor ID:
Receiver ID:
Gas Burned:
6 Tgas
Tokens Burned:
0.00067 
Called method: 'set' in contract: social.near
Arguments:
{ "data": { "flowscience.near": { "widget": { "eas": { "": "//const { getAttestation } = VM.require(\"flowscience.near/widget/generateUID\");\r\n// Example attestation UID: 0xff5dc0cdc3de27dfe6a4352c596c0f97b1f99c51a67bbae142ce315e34969dcd\r\nconst { easRenderAttestation } = VM.require(\r\n \"flowscience.near/widget/easRenderAttestation\"\r\n);\r\n\r\nconst user = Ethers.send(\"eth_requestAccounts\", [])[0];\r\n\r\nif (!user) return <Web3Connect connectLabel=\"Connect\" />;\r\n\r\nconst chain = Ethers.provider()\r\n .getNetwork()\r\n .then((chainIdData) => {\r\n console.log(chainIdData.chainId);\r\n });\r\n\r\nconsole.log(\"chain:\", chain);\r\n\r\nconst abi = fetch(\r\n \"https://raw.githubusercontent.com/ethereum-attestation-service/eas-contracts/master/deployments/optimism/EAS.json\"\r\n);\r\nconst provider = new ethers.providers.JsonRpcProvider(\r\n \"https://optimism.drpc.org\"\r\n);\r\nconst signer = provider.getSigner(user);\r\nconsole.log(\"chain:\", chain);\r\nconsole.log(\"signer:\", signer);\r\n\r\nconst contractAddress = \"0x4200000000000000000000000000000000000021\";\r\nconst parsedAbi = JSON.parse(abi.body);\r\nconst contract = new ethers.Contract(contractAddress, parsedAbi.abi, signer);\r\nconsole.log(contract);\r\nconst [attestation, setAttestation] = useState(null);\r\nconst [error, setError] = useState(\"\");\r\nconst [uid, setUid] = useState(\"\");\r\nfunction getAttestation() {\r\n if (typeof uid !== \"string\" || uid.trim() === \"\") {\r\n console.error(\"UID must be a non-empty string.\");\r\n setError(\"UID must be provided.\");\r\n return;\r\n }\r\n\r\n contract\r\n .getAttestation(uid)\r\n .then((result) => {\r\n const [\r\n uid,\r\n schema,\r\n time,\r\n expirationTime,\r\n revocationTime,\r\n refUID,\r\n recipient,\r\n attester,\r\n revocable,\r\n data,\r\n ] = result;\r\n const mappedAttestation = {\r\n uid,\r\n schema,\r\n time: time.toNumber(),\r\n expirationTime: expirationTime.toNumber(),\r\n revocationTime: revocationTime.toNumber(),\r\n refUID,\r\n recipient,\r\n attester,\r\n revocable,\r\n data,\r\n };\r\n setAttestation(mappedAttestation);\r\n setError(\"\");\r\n })\r\n .catch((error) => {\r\n console.error(\"error fetching attestation:\", error);\r\n setError(\"Failed to retrieve data. Please try with a verified uid.\");\r\n });\r\n}\r\n\r\nconst App = () => {\r\n const attestationDetails = {\r\n uid: attestation.uid,\r\n schema: state.attestation.schema,\r\n time: attestation.timestamp, // Example Unix timestamp = 1633036800\r\n expirationTime: props.expiration, // Example Unix timestamp\r\n revocationTime: props.revocation, // 0 indicates not revoked\r\n refUID: props.refUID,\r\n recipient: props.recipient, // Blockchain account, if self = {context.accountId}\r\n attester: props.attester, // Blockchain account, if self = {context.accountId}\r\n revocable: props.revocable, // Boolean\r\n data: props.data, // Example hex data = \"0xdeadbeef\"\r\n };\r\n};\r\n\r\nreturn (\r\n <>\r\n <div className=\"m-2\">\r\n <h3>Get Attestation</h3>\r\n <input\r\n type=\"text\"\r\n placeholder=\"input UID\"\r\n value={uid}\r\n onChange={(e) => setUid(e.target.value)}\r\n />\r\n </div>\r\n <div className=\"m-2\">\r\n <button className=\"btn btn-primary m-1\" onClick={getAttestation}>\r\n Get Attestation\r\n </button>\r\n <p className=\"m-1\">{error}</p>\r\n </div>\r\n <div>\r\n {attestation && (\r\n <div className=\"App\">\r\n <easRenderAttestation attestation={attestation} />\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n);\r\n", "metadata": { "fork_of": "hack.near/widget/passport@114479597" } } } } } }
Result:
{ "block_height": "116516257" }
No logs
Receipt:
Predecessor ID:
Receiver ID:
Gas Burned:
223 Ggas
Tokens Burned:
0 
Transferred 0.01839  to flowscience.near
Empty result
No logs