Search
Search

Transaction: 5X6FbF7...CGv8

Receiver
Status
Succeeded
Transaction Fee
0.00106 
Deposit Value
0 
Gas Used
10 Tgas
Attached Gas
100 Tgas
Created
March 27, 2023 at 7:49:08pm
Hash
5X6FbF7zB2by2kxxBDnqUj9xM2Vc2CtK9Wk7u5WpCGv8

Actions

Called method: 'set' in contract: social.near
Arguments:
{ "data": { "wendersonpires.near": { "widget": { "NearSocialBridge_Demo": { "": "// This is a DEV env Widget\n// if (!context.accountId || context.accountId !== \"wendersonpires.near\")\n// return null;\n\n/**\n * External App URL (must)\n */\nconst externalAppUrl = \"https://near-test-app.web.app/\";\n// const externalAppUrl = \"https://d43af01531fe.ngrok.app\";\n\n// Storage.privateSet(\"app:rooms-list\", [\n// \"near-social-community\",\n// \"bos\",\n// \"satori\",\n// \"dragon-ball-z\",\n// \"sala-teste-1\",\n// ]);\n\n// console.log(\"TROCA:\", Storage.privateGet(\"app:rooms-list\"));\n\n/**\n * Initial Path (optional but recommended)\n */\nconst path = props.path;\n/**\n * Initial view height (optional but recommended)\n */\nconst initialViewHeight = 740;\n/**\n * Initial Payload (optional) - Do not use async data here, it may fail to be ready before sending this initial payload.\n * If you want to get some data, make a \"request\"\n */\nconst initialPayload = {};\n\n// Migration\n// Storage.privateSet(\"app:rooms-list\", [\n// \"near-social-community\",\n// \"bos\",\n// \"satori\",\n// \"dragon-ball-z\",\n// \"sala-teste-1\",\n// ]);\n\n// Social.set(\"wendersonpires.near/experimental/chatv2/rooms-list\", [\n// \"near-social-community\",\n// ]);\n\n// console.log(\n// \"BATATA\",\n// Social.get(\"wendersonpires.near/experimental/chatv2/rooms-list\")\n// );\n\n/**\n * Request Handlers - Backend.\n *\n * - request: payload sent by External App\n *\n * - response: method to send the answer back to the External App\n *\n * - utils: Utils features like\n * - promisify: (caller, resolve, reject)\n * There's no Promisse for some features yet, So this is util for when you need to get cached data using DiscoveryAPI, e.g:\n * utils.promisify(() => Social.getr(`${context.accountId}/profile`), (res) => console.log(res), (err) => console.log(err))\n *\n * @param {{type: string, payload: {}}} request request with payload sent by External App\n * @param {(request) => {send: () => void}} response send the answer back to the External App\n * @param {{promisify:(caller: () => void, resolve: (data) => void, reject: (error) => void)}} utils Utils features like\n */\nconst requestHandler = (request, response, Utils) => {\n switch (request.type) {\n case \"get-room-data\":\n getRoomDataHandler(request, response, Utils);\n break;\n case \"send-message\":\n sendMessageHandler(request, response);\n break;\n case \"register-new-room\":\n registerNewRoomHandler(request, response, Utils);\n break;\n case \"get-rooms-list\":\n getRoomsListHandler(request, response, Utils);\n break;\n }\n};\n\nconst getRoomDataHandler = (request, response, Utils) => {\n const { payload } = request;\n\n if (!payload.roomId) {\n response(request).send({ error: \"roomId prop must be provided\" });\n return;\n }\n\n Utils.promisify(\n () =>\n Social.index(payload.roomId, \"data\", {\n subscribe: true,\n limit: 100,\n order: \"desc\",\n }),\n (roomData) => {\n const roomExists = roomData && roomData.length > 0;\n if (!roomExists) {\n response(request).send({ error: \"room not found\" });\n return;\n }\n response(request).send({ messages: roomData });\n },\n (err) => {\n response(request).send({ error: \"internal error\" });\n }\n );\n};\n\nconst sendMessageHandler = (request, response) => {\n const { payload } = request;\n if (payload.roomId && payload.message) {\n // Store message\n Social.set(\n {\n index: {\n [payload.roomId]: JSON.stringify(\n {\n key: \"data\",\n value: payload.message,\n },\n undefined,\n 0\n ),\n },\n },\n {\n force: true,\n onCommit: () => {\n response(request).send();\n },\n onCancel: () => {\n response(request).send({ error: \"the action was canceled\" });\n },\n }\n );\n return;\n }\n\n // Error\n response(request).send({\n error: \"you must provide the roomId and a message prop\",\n });\n};\n\nconst registerNewRoomHandler = (request, response, Utils) => {\n const { roomId } = request.payload;\n if (!roomId) {\n response(request).send({ error: \"you must provide the roomId prop\" });\n return;\n }\n\n Utils.promisify(\n () => Storage.privateGet(\"app:rooms-list\"),\n (rooms) => {\n if (rooms.includes(roomId)) {\n response(request).send({ roomsList: rooms });\n return;\n }\n\n // Update the rooms list\n const updatedRoomsList = [...rooms, roomId];\n Storage.privateSet(\"app:rooms-list\", updatedRoomsList);\n response(request).send({ roomsList: updatedRoomsList });\n },\n // If error: because there's no room yet\n () => {\n Storage.privateSet(\"app:rooms-list\", [roomId]);\n response(request).send({ roomsList: [roomId] });\n }\n );\n};\n\nconst getRoomsListHandler = (request, response, Utils) => {\n // Error: IDK why but this is working only when rendering the preview. Final app is not working :/\n Utils.promisify(\n () => Storage.privateGet(\"app:rooms-list\"),\n (rooms) => {\n // Send the rooms list\n response(request).send({ roomsList: rooms });\n }\n );\n};\n\nreturn (\n <Widget\n // src={\"wendersonpires.near/widget/NearSocialBridgeWithExternalApp_Test\"}\n src={\"wendersonpires.near/widget/NearSocialBridgeCore\"}\n props={{\n externalAppUrl,\n path,\n initialViewHeight,\n initialPayload,\n requestHandler,\n }}\n />\n);\n" } } } } }

Transaction Execution Plan

Convert Transaction To Receipt
Gas Burned:
2 Tgas
Tokens Burned:
0.00024 
Receipt:
Predecessor ID:
Receiver ID:
Gas Burned:
8 Tgas
Tokens Burned:
0.00081 
Called method: 'set' in contract: social.near
Arguments:
{ "data": { "wendersonpires.near": { "widget": { "NearSocialBridge_Demo": { "": "// This is a DEV env Widget\n// if (!context.accountId || context.accountId !== \"wendersonpires.near\")\n// return null;\n\n/**\n * External App URL (must)\n */\nconst externalAppUrl = \"https://near-test-app.web.app/\";\n// const externalAppUrl = \"https://d43af01531fe.ngrok.app\";\n\n// Storage.privateSet(\"app:rooms-list\", [\n// \"near-social-community\",\n// \"bos\",\n// \"satori\",\n// \"dragon-ball-z\",\n// \"sala-teste-1\",\n// ]);\n\n// console.log(\"TROCA:\", Storage.privateGet(\"app:rooms-list\"));\n\n/**\n * Initial Path (optional but recommended)\n */\nconst path = props.path;\n/**\n * Initial view height (optional but recommended)\n */\nconst initialViewHeight = 740;\n/**\n * Initial Payload (optional) - Do not use async data here, it may fail to be ready before sending this initial payload.\n * If you want to get some data, make a \"request\"\n */\nconst initialPayload = {};\n\n// Migration\n// Storage.privateSet(\"app:rooms-list\", [\n// \"near-social-community\",\n// \"bos\",\n// \"satori\",\n// \"dragon-ball-z\",\n// \"sala-teste-1\",\n// ]);\n\n// Social.set(\"wendersonpires.near/experimental/chatv2/rooms-list\", [\n// \"near-social-community\",\n// ]);\n\n// console.log(\n// \"BATATA\",\n// Social.get(\"wendersonpires.near/experimental/chatv2/rooms-list\")\n// );\n\n/**\n * Request Handlers - Backend.\n *\n * - request: payload sent by External App\n *\n * - response: method to send the answer back to the External App\n *\n * - utils: Utils features like\n * - promisify: (caller, resolve, reject)\n * There's no Promisse for some features yet, So this is util for when you need to get cached data using DiscoveryAPI, e.g:\n * utils.promisify(() => Social.getr(`${context.accountId}/profile`), (res) => console.log(res), (err) => console.log(err))\n *\n * @param {{type: string, payload: {}}} request request with payload sent by External App\n * @param {(request) => {send: () => void}} response send the answer back to the External App\n * @param {{promisify:(caller: () => void, resolve: (data) => void, reject: (error) => void)}} utils Utils features like\n */\nconst requestHandler = (request, response, Utils) => {\n switch (request.type) {\n case \"get-room-data\":\n getRoomDataHandler(request, response, Utils);\n break;\n case \"send-message\":\n sendMessageHandler(request, response);\n break;\n case \"register-new-room\":\n registerNewRoomHandler(request, response, Utils);\n break;\n case \"get-rooms-list\":\n getRoomsListHandler(request, response, Utils);\n break;\n }\n};\n\nconst getRoomDataHandler = (request, response, Utils) => {\n const { payload } = request;\n\n if (!payload.roomId) {\n response(request).send({ error: \"roomId prop must be provided\" });\n return;\n }\n\n Utils.promisify(\n () =>\n Social.index(payload.roomId, \"data\", {\n subscribe: true,\n limit: 100,\n order: \"desc\",\n }),\n (roomData) => {\n const roomExists = roomData && roomData.length > 0;\n if (!roomExists) {\n response(request).send({ error: \"room not found\" });\n return;\n }\n response(request).send({ messages: roomData });\n },\n (err) => {\n response(request).send({ error: \"internal error\" });\n }\n );\n};\n\nconst sendMessageHandler = (request, response) => {\n const { payload } = request;\n if (payload.roomId && payload.message) {\n // Store message\n Social.set(\n {\n index: {\n [payload.roomId]: JSON.stringify(\n {\n key: \"data\",\n value: payload.message,\n },\n undefined,\n 0\n ),\n },\n },\n {\n force: true,\n onCommit: () => {\n response(request).send();\n },\n onCancel: () => {\n response(request).send({ error: \"the action was canceled\" });\n },\n }\n );\n return;\n }\n\n // Error\n response(request).send({\n error: \"you must provide the roomId and a message prop\",\n });\n};\n\nconst registerNewRoomHandler = (request, response, Utils) => {\n const { roomId } = request.payload;\n if (!roomId) {\n response(request).send({ error: \"you must provide the roomId prop\" });\n return;\n }\n\n Utils.promisify(\n () => Storage.privateGet(\"app:rooms-list\"),\n (rooms) => {\n if (rooms.includes(roomId)) {\n response(request).send({ roomsList: rooms });\n return;\n }\n\n // Update the rooms list\n const updatedRoomsList = [...rooms, roomId];\n Storage.privateSet(\"app:rooms-list\", updatedRoomsList);\n response(request).send({ roomsList: updatedRoomsList });\n },\n // If error: because there's no room yet\n () => {\n Storage.privateSet(\"app:rooms-list\", [roomId]);\n response(request).send({ roomsList: [roomId] });\n }\n );\n};\n\nconst getRoomsListHandler = (request, response, Utils) => {\n // Error: IDK why but this is working only when rendering the preview. Final app is not working :/\n Utils.promisify(\n () => Storage.privateGet(\"app:rooms-list\"),\n (rooms) => {\n // Send the rooms list\n response(request).send({ roomsList: rooms });\n }\n );\n};\n\nreturn (\n <Widget\n // src={\"wendersonpires.near/widget/NearSocialBridgeWithExternalApp_Test\"}\n src={\"wendersonpires.near/widget/NearSocialBridgeCore\"}\n props={{\n externalAppUrl,\n path,\n initialViewHeight,\n initialPayload,\n requestHandler,\n }}\n />\n);\n" } } } } }
Empty result
No logs
Receipt:
Predecessor ID:
Gas Burned:
223 Ggas
Tokens Burned:
0 
Transferred 0.01824  to wendersonpires.near
Empty result
No logs