Search
Search

Transaction: AhBY5wx...K8ML

Signed by
Receiver
Status
Succeeded
Transaction Fee
0.00086 
Deposit Value
0 
Gas Used
8 Tgas
Attached Gas
300 Tgas
Created
February 27, 2024 at 5:21:52am
Hash
AhBY5wx766R98C2ViamCDpX7hDgnDTHaVoyTVtZgK8ML

Actions

Called method: 'set' in contract: social.near
Arguments:
{ "data": { "potlock.near": { "widget": { "Profile.Body": { "": "const { projectId } = props;\nconst { getTagsFromSocialProfileData } = VM.require(\"potlock.near/widget/utils\") || {\n getTagsFromSocialProfileData: () => [],\n};\nconst {\n ownerId,\n SUPPORTED_FTS: { NEAR },\n} = VM.require(\"potlock.near/widget/constants\") || {\n ownerId: \"\",\n SUPPORTED_FTS: {},\n};\nconst accountId = props.accountId ?? context.accountId;\n\nconst [statusReview, setStatusReview] = useState({ modalOpen: false, notes: \"\", newStatus: \"\" });\n\nconst PotlockRegistrySDK = VM.require(\"potlock.near/widget/SDK.registry\") || (() => ({}));\nconst registry = PotlockRegistrySDK({ env: props.env });\nconst userIsRegistryAdmin = registry.isUserRegistryAdmin(context.accountId);\n\nconst handleUpdateStatus = () => {\n Near.call([\n {\n contractName: PotlockRegistrySDK.getContractId(),\n methodName: \"admin_set_project_status\",\n args: {\n project_id: projectId,\n status: statusReview.newStatus,\n review_notes: statusReview.notes,\n },\n deposit: NEAR.toIndivisible(0.01).toString(),\n },\n ]);\n};\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst Container = styled.div`\n padding-top: 252px;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n @media screen and (max-width: 768px) {\n flex-direction: column;\n gap: 1rem;\n padding-top: 240px;\n }\n`;\n\nconst Details = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2rem;\n flex: 1 1 0%;\n width: 100%;\n .nav-view {\n width: 100%;\n padding: 24px 50px;\n background: #f6f5f3;\n @media screen and (max-width: 768px) {\n padding: 24px 1rem;\n }\n }\n`;\n\nconst SidebarContainer = styled.div`\n width: 15%;\n padding-left: 1rem;\n @media screen and (max-width: 768px) {\n width: fit-content;\n > div:first-of-type {\n display: none;\n }\n }\n`;\n\nconst ModalTitle = styled.div`\n color: #525252;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n word-wrap: break-word;\n margin-bottom: 8px;\n`;\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\nconst { PROJECT_STATUSES } = VM.require(\"potlock.near/widget/constants\") || {\n PROJECT_STATUSES: [],\n};\n\nreturn (\n <Wrapper>\n <Widget\n src={`${ownerId}/widget/Profile.BannerHeader`}\n props={{\n ...props,\n accountId: projectId || accountId,\n backgroundStyle: {\n objectFit: \"cover\",\n left: 0,\n top: 0,\n height: \"280px\",\n },\n }}\n />\n <Container>\n {/* Side Nav */}\n <Widget\n src={`${ownerId}/widget/Project.NavOptionsMobile`}\n props={{\n ...props,\n }}\n />\n <SidebarContainer>\n <Widget\n src={`${ownerId}/widget/Components.NavOptions`}\n props={{\n ...props,\n }}\n />\n <Widget\n src={`${ownerId}/widget/Profile.Linktree`}\n props={{\n ...props,\n }}\n />\n </SidebarContainer>\n\n {/* Body */}\n <Details>\n <Widget\n src={`${ownerId}/widget/Profile.BodyHeader`}\n props={{\n ...props,\n accountId,\n }}\n />\n {userIsRegistryAdmin && projectId && (\n <Widget\n src={`${ownerId}/widget/Inputs.Select`}\n props={{\n noLabel: true,\n options: PROJECT_STATUSES.map((status) => ({\n value: status,\n text: status,\n })),\n value: { text: props.project.status, value: props.project.status },\n onChange: (status) => {\n if (status.value != project.status) {\n setStatusReview({ ...statusReview, newStatus: status.value, modalOpen: true });\n }\n },\n containerStyles: {\n padding: \"16px 24px\",\n },\n }}\n />\n )}\n <div className=\"nav-view\">\n <Widget\n src={props.navOptions.find((option) => option.id == props.nav).source}\n props={{\n ...props,\n }}\n />\n </div>\n </Details>\n </Container>\n <Widget\n src={`${ownerId}/widget/Components.Modal`}\n props={{\n ...props,\n isModalOpen: statusReview.modalOpen,\n onClose: () => setStatusReview({ ...statusReview, modalOpen: false }),\n children: (\n <>\n <ModalTitle>Enter Notes for changing status to {statusReview.newStatus}</ModalTitle>\n <Widget\n src={`${ownerId}/widget/Inputs.TextArea`}\n props={{\n noLabel: true,\n inputRows: 5,\n inputStyle: {\n background: \"#FAFAFA\",\n },\n placeholder: \"Your notes here...\",\n value: statusReview.notes,\n onChange: (notes) => setStatusReview({ ...statusReview, notes }),\n validate: () => {\n // none necessary\n },\n }}\n />\n <Row style={{ justifyContent: \"flex-end\", marginTop: \"12px\" }}>\n <Widget\n src={`${ownerId}/widget/Components.Button`}\n props={{\n type: \"primary\",\n text: \"Submit\",\n onClick: handleUpdateStatus,\n }}\n />\n </Row>\n </>\n ),\n }}\n />\n </Wrapper>\n);\n" } } } } }

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.00062 
Called method: 'set' in contract: social.near
Arguments:
{ "data": { "potlock.near": { "widget": { "Profile.Body": { "": "const { projectId } = props;\nconst { getTagsFromSocialProfileData } = VM.require(\"potlock.near/widget/utils\") || {\n getTagsFromSocialProfileData: () => [],\n};\nconst {\n ownerId,\n SUPPORTED_FTS: { NEAR },\n} = VM.require(\"potlock.near/widget/constants\") || {\n ownerId: \"\",\n SUPPORTED_FTS: {},\n};\nconst accountId = props.accountId ?? context.accountId;\n\nconst [statusReview, setStatusReview] = useState({ modalOpen: false, notes: \"\", newStatus: \"\" });\n\nconst PotlockRegistrySDK = VM.require(\"potlock.near/widget/SDK.registry\") || (() => ({}));\nconst registry = PotlockRegistrySDK({ env: props.env });\nconst userIsRegistryAdmin = registry.isUserRegistryAdmin(context.accountId);\n\nconst handleUpdateStatus = () => {\n Near.call([\n {\n contractName: PotlockRegistrySDK.getContractId(),\n methodName: \"admin_set_project_status\",\n args: {\n project_id: projectId,\n status: statusReview.newStatus,\n review_notes: statusReview.notes,\n },\n deposit: NEAR.toIndivisible(0.01).toString(),\n },\n ]);\n};\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst Container = styled.div`\n padding-top: 252px;\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n @media screen and (max-width: 768px) {\n flex-direction: column;\n gap: 1rem;\n padding-top: 240px;\n }\n`;\n\nconst Details = styled.div`\n display: flex;\n flex-direction: column;\n gap: 2rem;\n flex: 1 1 0%;\n width: 100%;\n .nav-view {\n width: 100%;\n padding: 24px 50px;\n background: #f6f5f3;\n @media screen and (max-width: 768px) {\n padding: 24px 1rem;\n }\n }\n`;\n\nconst SidebarContainer = styled.div`\n width: 15%;\n padding-left: 1rem;\n @media screen and (max-width: 768px) {\n width: fit-content;\n > div:first-of-type {\n display: none;\n }\n }\n`;\n\nconst ModalTitle = styled.div`\n color: #525252;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n word-wrap: break-word;\n margin-bottom: 8px;\n`;\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\nconst { PROJECT_STATUSES } = VM.require(\"potlock.near/widget/constants\") || {\n PROJECT_STATUSES: [],\n};\n\nreturn (\n <Wrapper>\n <Widget\n src={`${ownerId}/widget/Profile.BannerHeader`}\n props={{\n ...props,\n accountId: projectId || accountId,\n backgroundStyle: {\n objectFit: \"cover\",\n left: 0,\n top: 0,\n height: \"280px\",\n },\n }}\n />\n <Container>\n {/* Side Nav */}\n <Widget\n src={`${ownerId}/widget/Project.NavOptionsMobile`}\n props={{\n ...props,\n }}\n />\n <SidebarContainer>\n <Widget\n src={`${ownerId}/widget/Components.NavOptions`}\n props={{\n ...props,\n }}\n />\n <Widget\n src={`${ownerId}/widget/Profile.Linktree`}\n props={{\n ...props,\n }}\n />\n </SidebarContainer>\n\n {/* Body */}\n <Details>\n <Widget\n src={`${ownerId}/widget/Profile.BodyHeader`}\n props={{\n ...props,\n accountId,\n }}\n />\n {userIsRegistryAdmin && projectId && (\n <Widget\n src={`${ownerId}/widget/Inputs.Select`}\n props={{\n noLabel: true,\n options: PROJECT_STATUSES.map((status) => ({\n value: status,\n text: status,\n })),\n value: { text: props.project.status, value: props.project.status },\n onChange: (status) => {\n if (status.value != project.status) {\n setStatusReview({ ...statusReview, newStatus: status.value, modalOpen: true });\n }\n },\n containerStyles: {\n padding: \"16px 24px\",\n },\n }}\n />\n )}\n <div className=\"nav-view\">\n <Widget\n src={props.navOptions.find((option) => option.id == props.nav).source}\n props={{\n ...props,\n }}\n />\n </div>\n </Details>\n </Container>\n <Widget\n src={`${ownerId}/widget/Components.Modal`}\n props={{\n ...props,\n isModalOpen: statusReview.modalOpen,\n onClose: () => setStatusReview({ ...statusReview, modalOpen: false }),\n children: (\n <>\n <ModalTitle>Enter Notes for changing status to {statusReview.newStatus}</ModalTitle>\n <Widget\n src={`${ownerId}/widget/Inputs.TextArea`}\n props={{\n noLabel: true,\n inputRows: 5,\n inputStyle: {\n background: \"#FAFAFA\",\n },\n placeholder: \"Your notes here...\",\n value: statusReview.notes,\n onChange: (notes) => setStatusReview({ ...statusReview, notes }),\n validate: () => {\n // none necessary\n },\n }}\n />\n <Row style={{ justifyContent: \"flex-end\", marginTop: \"12px\" }}>\n <Widget\n src={`${ownerId}/widget/Components.Button`}\n props={{\n type: \"primary\",\n text: \"Submit\",\n onClick: handleUpdateStatus,\n }}\n />\n </Row>\n </>\n ),\n }}\n />\n </Wrapper>\n);\n" } } } } }
Result:
{ "block_height": "113665528" }
No logs
Receipt:
Predecessor ID:
Receiver ID:
Gas Burned:
223 Ggas
Tokens Burned:
0 
Transferred 0.18842  to potlock.near
Empty result
No logs