mainnet
English
Русский
Tiếng Việt
繁體中文
简体中文
Українська
Home
Explore
Transaction: 57bP6Yb...z5m3
Signed by
buildnyc.near
Receiver
social.near
Status
Succeeded
Transaction Fee
0.00101 Ⓝ
Deposit Value
0.03745 Ⓝ
Gas Used
10 Tgas
Attached Gas
100 Tgas
Created
March 26, 2024 at 5:59:42pm
Hash
57bP6Ybweb9vYimyXCqMP5hbUyR7RKQmSnysXF1Lz5m3
Block Hash
9kxRj9rXnkcDmke77BKoKGzBJuoVinvee8d8ad5cfSav
Actions
Called method: 'set' in contract:
social.near
Arguments:
{ "data": { "buildcity.near": { "widget": { "AddCity": { "": "const creatorId = props.creatorId ?? context.accountId;\nconst [graphId, setGraphId] = useState(\"\");\n\nState.init({\n group,\n members: { [creatorId]: \"\" },\n newMember: \"\",\n});\n\nfunction addMember(newMember) {\n State.update({\n members: { ...state.members, [newMember]: \"\" },\n });\n}\n\nfunction removeMember(memberKey) {\n const updatedMembers = { ...state.members };\n delete updatedMembers[memberKey];\n\n State.update({\n members: updatedMembers,\n });\n}\n\nfunction isNearAddress(address) {\n if (typeof address !== \"string\") {\n return false;\n }\n if (!address.endsWith(\".near\")) {\n return false;\n }\n const parts = address.split(\".\");\n if (parts.length !== 2) {\n return false;\n }\n if (parts[0].length < 2 || parts[0].length > 32) {\n return false;\n }\n if (!/^[a-z0-9_-]+$/i.test(parts[0])) {\n return false;\n }\n return true;\n}\n\nconst memberId = props.memberId ?? state.newMember;\nconst isValid = isNearAddress(memberId);\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n height: auto;\n align-items: flex-start;\n background: #fff;\n border-radius: 10px;\n padding: 20px;\n margin: 20px auto;\n`;\n\nconst handleCreate = () => {\n const data = {\n graph: {\n [graphId]: {\n ...state.members,\n },\n },\n };\n Social.set(data);\n};\n\nreturn (\n <div className=\"m-3\">\n <div className=\"d-flex flex-row justify-content-between\">\n <h3>Build Social</h3>\n <button\n disabled={!graphId}\n onClick={handleCreate}\n className=\"btn btn-success\"\n >\n Create\n </button>\n </div>\n <div className=\"m-2\">\n <h5 className=\"mb-2\">Graph ID</h5>\n <div className=\"mb-3\">\n <input\n placeholder=\"name this group\"\n onChange={(e) =>\n setGraphId(e.target.value.replace(/\\s+/g, \"-\").replace(/\\//g, \"\"))\n }\n />\n </div>\n <h5 className=\"mb-2\">New Member</h5>\n <div className=\"mb-2\">\n <input\n label=\"input each member's account ID here, then click `add` below\"\n placeholder=\"<example>.near\"\n onChange={(e) => State.update({ newMember: e.target.value })}\n />\n <div className=\"d-flex align-items-center mt-2\">\n <button\n disabled={!isValid}\n className=\"btn btn-primary mt-1\"\n onClick={() => addMember(state.newMember)}\n >\n Add\n </button>\n </div>\n </div>\n <br />\n <div>\n {Object.keys(state.members).map((a) => {\n return (\n <div className=\"d-flex m-2 p-2 justify-content-between align-items-center\">\n <div className=\"d-flex align-items-center\">\n <Widget\n src=\"mob.near/widget/Profile\"\n props={{ accountId: a }}\n />\n </div>\n <button\n className=\"btn btn-danger m-1\"\n onClick={() => removeMember(a)}\n >\n Remove\n </button>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n);\n", "metadata": { "fork_of": "buildnyc.near/widget/graph.create@115262699" } } } } } }
Transaction Execution Plan
Convert Transaction To Receipt
Gas Burned:
2 Tgas
Tokens Burned:
0.00024 Ⓝ
Receipt:
Receipt ID:
2bJdYg6VycQW256ZxW6AvKdoFzJCZS7KULrCgZrBfsRC
Executed in Block:
E3BFQpBtiTcdNhKMNPvwtxzVXwjGnGwuTQVxdWB4zcPf
Predecessor ID:
buildnyc.near
Receiver ID:
social.near
Gas Burned:
7 Tgas
Tokens Burned:
0.00077 Ⓝ
Called method: 'set' in contract:
social.near
Arguments:
{ "data": { "buildcity.near": { "widget": { "AddCity": { "": "const creatorId = props.creatorId ?? context.accountId;\nconst [graphId, setGraphId] = useState(\"\");\n\nState.init({\n group,\n members: { [creatorId]: \"\" },\n newMember: \"\",\n});\n\nfunction addMember(newMember) {\n State.update({\n members: { ...state.members, [newMember]: \"\" },\n });\n}\n\nfunction removeMember(memberKey) {\n const updatedMembers = { ...state.members };\n delete updatedMembers[memberKey];\n\n State.update({\n members: updatedMembers,\n });\n}\n\nfunction isNearAddress(address) {\n if (typeof address !== \"string\") {\n return false;\n }\n if (!address.endsWith(\".near\")) {\n return false;\n }\n const parts = address.split(\".\");\n if (parts.length !== 2) {\n return false;\n }\n if (parts[0].length < 2 || parts[0].length > 32) {\n return false;\n }\n if (!/^[a-z0-9_-]+$/i.test(parts[0])) {\n return false;\n }\n return true;\n}\n\nconst memberId = props.memberId ?? state.newMember;\nconst isValid = isNearAddress(memberId);\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n height: auto;\n align-items: flex-start;\n background: #fff;\n border-radius: 10px;\n padding: 20px;\n margin: 20px auto;\n`;\n\nconst handleCreate = () => {\n const data = {\n graph: {\n [graphId]: {\n ...state.members,\n },\n },\n };\n Social.set(data);\n};\n\nreturn (\n <div className=\"m-3\">\n <div className=\"d-flex flex-row justify-content-between\">\n <h3>Build Social</h3>\n <button\n disabled={!graphId}\n onClick={handleCreate}\n className=\"btn btn-success\"\n >\n Create\n </button>\n </div>\n <div className=\"m-2\">\n <h5 className=\"mb-2\">Graph ID</h5>\n <div className=\"mb-3\">\n <input\n placeholder=\"name this group\"\n onChange={(e) =>\n setGraphId(e.target.value.replace(/\\s+/g, \"-\").replace(/\\//g, \"\"))\n }\n />\n </div>\n <h5 className=\"mb-2\">New Member</h5>\n <div className=\"mb-2\">\n <input\n label=\"input each member's account ID here, then click `add` below\"\n placeholder=\"<example>.near\"\n onChange={(e) => State.update({ newMember: e.target.value })}\n />\n <div className=\"d-flex align-items-center mt-2\">\n <button\n disabled={!isValid}\n className=\"btn btn-primary mt-1\"\n onClick={() => addMember(state.newMember)}\n >\n Add\n </button>\n </div>\n </div>\n <br />\n <div>\n {Object.keys(state.members).map((a) => {\n return (\n <div className=\"d-flex m-2 p-2 justify-content-between align-items-center\">\n <div className=\"d-flex align-items-center\">\n <Widget\n src=\"mob.near/widget/Profile\"\n props={{ accountId: a }}\n />\n </div>\n <button\n className=\"btn btn-danger m-1\"\n onClick={() => removeMember(a)}\n >\n Remove\n </button>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n);\n", "metadata": { "fork_of": "buildnyc.near/widget/graph.create@115262699" } } } } } }
Result:
{ "block_height": "115527157" }
No logs
Receipt:
Receipt ID:
Bcav3xDY1vJ3ZsJ4o1YMagK2qKhdbX6qAYcssjCKv8so
Executed in Block:
FbzjtY2NyXoEttNiPXhzW9XBerCQqi15FfH5cBKDZRxz
Predecessor ID:
system
Receiver ID:
buildnyc.near
Gas Burned:
223 Ggas
Tokens Burned:
0 Ⓝ
Transferred
0.01829 Ⓝ
to
buildnyc.near
Empty result
No logs
© 2024 NEAR Inc. All Rights Reserved.
Terms of Service
|
Privacy Policy
Questions?
Join the Community
◍