Search
Search

Transaction: Fzzp9Zw...LDBW

Signed by
Receiver
Status
Succeeded
Transaction Fee
0.00112 
Deposit Value
0 
Gas Used
11 Tgas
Attached Gas
100 Tgas
Created
March 23, 2023 at 10:16:44pm
Hash
Fzzp9ZwGgp1WeLv1UvcbEonCAk9vd2c9eqZGG22cLDBW

Actions

Called method: 'set' in contract: social.near
Arguments:
{ "data": { "syi216.near": { "widget": { "GNS-Staking": { "": "// FETCH LIDO ABI\r\n\r\nconst lidoContract = \"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F\";\r\n\r\n//Contrato de gains bridge\r\nconst gbContract = \"0xDF774A4F3EA5095535f5B8f5b9149caF90FF75Bd\";\r\nconst gnsLZContract = \"0x3c2269811836af69497E5F486A85D7316753cf62\";\r\nconst gnsToken = \"0xE5417Af564e4bFDA1c483642db72007871397896\";\r\nconst gnsStaking = \"0xFb06a737f549Eb2512Eb6082A808fc7F16C0819D\";\r\n\r\nconst mainnetLidoContract = \"0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f\";\r\nconst gorliLidoContract = \"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506\";\r\nconst tokenDecimals = 18;\r\nconst contract = \"0x6B3595068778DD592e39A122f4f5a5cF09C90fE2\";\r\n\r\nconst lidoAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/QmawuBDkx1w56AFpZ2hiph1gaVrnq3gyAMRnSH2c9S54TY\"\r\n);\r\n\r\nconst gnsLZEndAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/Qmd3xkYoDxS7ATdvoDzTgF1ojLog7kTqoTeWBhJQfUZ4F9\"\r\n);\r\n\r\nconst gnsTokenAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/QmRNckfDbxxjHBhHqMWewKg2dxfUXpoCumxS6YGRW4uAhq\"\r\n);\r\n\r\nconst gnsStakingAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/QmXj2sEUz2RNubsnnAt5hpBBeHtRzhVMZvJ8vVG5WwTcND\"\r\n);\r\n\r\nconsole.log(lidoAbi);\r\n\r\nif (!lidoAbi.ok) {\r\n return \"Loading\";\r\n}\r\n\r\nconst iface = new ethers.utils.Interface(lidoAbi.body);\r\n\r\n// HELPER FUNCTIONS\r\n\r\nconst getStakedBalance = (receiver) => {\r\n const contractGNSStaking = new ethers.Contract(\r\n gnsStaking,\r\n gnsStakingAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n contractGNSStaking\r\n .users(Ethers.provider().getSigner().getAddress())\r\n .then((res) => {\r\n console.log(res[0]);\r\n return Big(res[0]).div(Big(10).pow(18)).toFixed(2);\r\n });\r\n};\r\n\r\nconst submitEthers = (strEther, _referral) => {\r\n if (!strEther) {\r\n console.log(\"contrato: \", state.tokenTo);\r\n return console.log(\"Amount is missing\");\r\n }\r\n\r\n const contractGNSStaking = new ethers.Contract(\r\n gnsStaking,\r\n gnsStakingAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n let amount = ethers.utils.parseUnits(strEther, tokenDecimals).toHexString();\r\n\r\n contractGNSStaking\r\n .stakeTokens(amount, { gasLimit: 3e6 })\r\n .then((transactionHash) => {\r\n console.log(\"transactionHash is \" + transactionHash);\r\n });\r\n};\r\n\r\nconst approveGNS = (strEther, _referral) => {\r\n const contractGNSTOK = new ethers.Contract(\r\n gnsToken,\r\n gnsTokenAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n console.log(\"balance unfixed: \", state.balanceUnfixed);\r\n contractGNSTOK\r\n .approve(gnsStaking, state.balanceUnfixed, {\r\n value: state.balanceUnfixed,\r\n gasLimit: 3e4,\r\n })\r\n .then((th) => {\r\n console.log(\"transaction Hash: \", th);\r\n });\r\n};\r\n\r\n// DETECT SENDER\r\n\r\nif (state.sender === undefined) {\r\n const accounts = Ethers.send(\"eth_requestAccounts\", []);\r\n if (accounts.length) {\r\n State.update({ sender: accounts[0] });\r\n console.log(\"set sender\", accounts[0]);\r\n }\r\n}\r\n\r\n// FETCH SENDER BALANCE\r\n\r\nif (state.balance === undefined && state.sender) {\r\n const contractGNSTOK = new ethers.Contract(\r\n gnsToken,\r\n gnsTokenAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n contractGNSTOK.balanceOf(state.sender).then((res) => {\r\n console.log(\"balance GNS\", Big(res).div(Big(10).pow(18)).toFixed(2));\r\n State.update({ balanceUnfixed: res.toHexString() });\r\n State.update({ balance: Big(res).div(Big(10).pow(18)).toFixed(2) });\r\n });\r\n}\r\n\r\n// FETCH SENDER STETH BALANCE\r\n\r\nif (state.stakedBalance === undefined && state.sender) {\r\n const contractGNSStaking = new ethers.Contract(\r\n gnsStaking,\r\n gnsStakingAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n contractGNSStaking\r\n .users(Ethers.provider().getSigner().getAddress())\r\n .then((res) => {\r\n console.log(res[0]);\r\n State.update({\r\n stakedBalance: Big(res[0]).div(Big(10).pow(18)).toFixed(2),\r\n });\r\n State.update({\r\n daiBalance: Big(res[1]).div(Big(10).pow(18)).toFixed(4),\r\n });\r\n });\r\n}\r\n\r\n// FETCH CSS\r\n\r\nconst cssFont = fetch(\r\n \"https://fonts.googleapis.com/css2?family=Manrope:wght@200;300;400;500;600;700;800\"\r\n).body;\r\nconst css = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/Qmdpe64Mm46fvWNVaCroSGa2JKgauUUUE5251Cx9nTKNrs\"\r\n).body;\r\n\r\nif (!cssFont || !css) return \"\";\r\n\r\nif (!state.theme) {\r\n State.update({\r\n theme: styled.div`\r\n font-family: Manrope, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\r\n ${cssFont}\r\n ${css}\r\n`,\r\n });\r\n}\r\nconst Theme = state.theme;\r\n\r\n// OUTPUT UI\r\n\r\nconst getSender = () => {\r\n return !state.sender\r\n ? \"\"\r\n : state.sender.substring(0, 6) +\r\n \"...\" +\r\n state.sender.substring(state.sender.length - 4, state.sender.length);\r\n};\r\n\r\nreturn (\r\n <Theme>\r\n <div class=\"LidoContainer\">\r\n <div class=\"Header\">Stake GNS</div>\r\n <div class=\"SubHeader\">Stake GNS token on Polygon </div>\r\n <div class=\"SubHeader-2\">\r\n Before staking press the approve button to give access to your GNS\r\n </div>\r\n <div class=\"LidoForm\">\r\n {state.sender && (\r\n <>\r\n <div class=\"LidoFormTopContainer\">\r\n <div class=\"LidoFormTopContainerLeft\">\r\n <div class=\"LidoFormTopContainerLeftContent1\">\r\n <div class=\"LidoFormTopContainerLeftContent1Container\">\r\n <span>Available to stake</span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerLeftContent2\">\r\n <span>\r\n {state.balance ?? (!state.sender ? \"0\" : \"...\")}&nbsp;GNS\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerRight\">\r\n <div class=\"LidoFormTopContainerRightContent1\">\r\n <div class=\"LidoFormTopContainerRightContent1Text\">\r\n <span>\r\n <b>Account:</b> {getSender()}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"LidoSplitter\" />\r\n </>\r\n )}\r\n <div\r\n class={\r\n state.sender ? \"LidoFormBottomContainer\" : \"LidoFormTopContainer\"\r\n }\r\n >\r\n <div class=\"LidoFormTopContainerLeft\">\r\n <div class=\"LidoFormTopContainerLeftContent1\">\r\n <div class=\"LidoFormTopContainerLeftContent1Container\">\r\n <span>Staked amount</span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerLeftContent2\">\r\n <span>\r\n {state.stakedBalance ?? (!state.sender ? \"0\" : \"...\")}\r\n &nbsp;GNS\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerRight\">\r\n <div class=\"LidoAprContainer\">\r\n <div class=\"LidoAprTitle\">Your APR</div>\r\n <div class=\"LidoAprValue\">\r\n {(state.daiBalance * 100).toFixed(2) ?? \"...\"}&nbsp;DAI\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"LidoStakeForm\">\r\n <div class=\"LidoStakeFormInputContainer\">\r\n <span class=\"LidoStakeFormInputContainerSpan1\">\r\n <img\r\n src=\"https://research.binance.com/static/images/projects/gains-network/logo.png\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </span>\r\n <span class=\"LidoStakeFormInputContainerSpan2\">\r\n <input\r\n disabled={!state.sender}\r\n class=\"LidoStakeFormInputContainerSpan2Input\"\r\n value={state.strEther}\r\n onChange={(e) => State.update({ strEther: e.target.value })}\r\n placeholder=\"Amount\"\r\n />\r\n </span>\r\n <span\r\n class=\"LidoStakeFormInputContainerSpan3\"\r\n onClick={() => {\r\n State.update({\r\n //strEther: (parseFloat(state.balance) - 0.05).toFixed(2),\r\n strEther: parseFloat(state.balance).toFixed(2),\r\n });\r\n }}\r\n >\r\n <button\r\n class=\"LidoStakeFormInputContainerSpan3Content\"\r\n disabled={!state.sender}\r\n >\r\n <span class=\"LidoStakeFormInputContainerSpan3Max\">MAX</span>\r\n </button>\r\n </span>\r\n </div>\r\n {!!state.sender ? (\r\n <div>\r\n <button\r\n class=\"LidoStakeFormSubmitContainer mb-2\"\r\n onClick={() => approveGNS(state.strEther, state.sender)}\r\n >\r\n <span>Approve use of GNS</span>\r\n </button>\r\n <button\r\n class=\"LidoStakeFormSubmitContainer\"\r\n onClick={() => submitEthers(state.strEther, state.sender)}\r\n >\r\n <span>Stake</span>\r\n </button>\r\n </div>\r\n ) : (\r\n <Web3Connect\r\n className=\"LidoStakeFormSubmitContainer\"\r\n connectLabel=\"Connect with Web3\"\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </Theme>\r\n);\r\n" } } } } }

Transaction Execution Plan

Convert Transaction To Receipt
Gas Burned:
2 Tgas
Tokens Burned:
0.00025 
Receipt:
Predecessor ID:
Receiver ID:
Gas Burned:
8 Tgas
Tokens Burned:
0.00087 
Called method: 'set' in contract: social.near
Arguments:
{ "data": { "syi216.near": { "widget": { "GNS-Staking": { "": "// FETCH LIDO ABI\r\n\r\nconst lidoContract = \"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F\";\r\n\r\n//Contrato de gains bridge\r\nconst gbContract = \"0xDF774A4F3EA5095535f5B8f5b9149caF90FF75Bd\";\r\nconst gnsLZContract = \"0x3c2269811836af69497E5F486A85D7316753cf62\";\r\nconst gnsToken = \"0xE5417Af564e4bFDA1c483642db72007871397896\";\r\nconst gnsStaking = \"0xFb06a737f549Eb2512Eb6082A808fc7F16C0819D\";\r\n\r\nconst mainnetLidoContract = \"0xd9e1ce17f2641f24ae83637ab66a2cca9c378b9f\";\r\nconst gorliLidoContract = \"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506\";\r\nconst tokenDecimals = 18;\r\nconst contract = \"0x6B3595068778DD592e39A122f4f5a5cF09C90fE2\";\r\n\r\nconst lidoAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/QmawuBDkx1w56AFpZ2hiph1gaVrnq3gyAMRnSH2c9S54TY\"\r\n);\r\n\r\nconst gnsLZEndAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/Qmd3xkYoDxS7ATdvoDzTgF1ojLog7kTqoTeWBhJQfUZ4F9\"\r\n);\r\n\r\nconst gnsTokenAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/QmRNckfDbxxjHBhHqMWewKg2dxfUXpoCumxS6YGRW4uAhq\"\r\n);\r\n\r\nconst gnsStakingAbi = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/QmXj2sEUz2RNubsnnAt5hpBBeHtRzhVMZvJ8vVG5WwTcND\"\r\n);\r\n\r\nconsole.log(lidoAbi);\r\n\r\nif (!lidoAbi.ok) {\r\n return \"Loading\";\r\n}\r\n\r\nconst iface = new ethers.utils.Interface(lidoAbi.body);\r\n\r\n// HELPER FUNCTIONS\r\n\r\nconst getStakedBalance = (receiver) => {\r\n const contractGNSStaking = new ethers.Contract(\r\n gnsStaking,\r\n gnsStakingAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n contractGNSStaking\r\n .users(Ethers.provider().getSigner().getAddress())\r\n .then((res) => {\r\n console.log(res[0]);\r\n return Big(res[0]).div(Big(10).pow(18)).toFixed(2);\r\n });\r\n};\r\n\r\nconst submitEthers = (strEther, _referral) => {\r\n if (!strEther) {\r\n console.log(\"contrato: \", state.tokenTo);\r\n return console.log(\"Amount is missing\");\r\n }\r\n\r\n const contractGNSStaking = new ethers.Contract(\r\n gnsStaking,\r\n gnsStakingAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n let amount = ethers.utils.parseUnits(strEther, tokenDecimals).toHexString();\r\n\r\n contractGNSStaking\r\n .stakeTokens(amount, { gasLimit: 3e6 })\r\n .then((transactionHash) => {\r\n console.log(\"transactionHash is \" + transactionHash);\r\n });\r\n};\r\n\r\nconst approveGNS = (strEther, _referral) => {\r\n const contractGNSTOK = new ethers.Contract(\r\n gnsToken,\r\n gnsTokenAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n console.log(\"balance unfixed: \", state.balanceUnfixed);\r\n contractGNSTOK\r\n .approve(gnsStaking, state.balanceUnfixed, {\r\n value: state.balanceUnfixed,\r\n gasLimit: 3e4,\r\n })\r\n .then((th) => {\r\n console.log(\"transaction Hash: \", th);\r\n });\r\n};\r\n\r\n// DETECT SENDER\r\n\r\nif (state.sender === undefined) {\r\n const accounts = Ethers.send(\"eth_requestAccounts\", []);\r\n if (accounts.length) {\r\n State.update({ sender: accounts[0] });\r\n console.log(\"set sender\", accounts[0]);\r\n }\r\n}\r\n\r\n// FETCH SENDER BALANCE\r\n\r\nif (state.balance === undefined && state.sender) {\r\n const contractGNSTOK = new ethers.Contract(\r\n gnsToken,\r\n gnsTokenAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n contractGNSTOK.balanceOf(state.sender).then((res) => {\r\n console.log(\"balance GNS\", Big(res).div(Big(10).pow(18)).toFixed(2));\r\n State.update({ balanceUnfixed: res.toHexString() });\r\n State.update({ balance: Big(res).div(Big(10).pow(18)).toFixed(2) });\r\n });\r\n}\r\n\r\n// FETCH SENDER STETH BALANCE\r\n\r\nif (state.stakedBalance === undefined && state.sender) {\r\n const contractGNSStaking = new ethers.Contract(\r\n gnsStaking,\r\n gnsStakingAbi.body,\r\n Ethers.provider().getSigner()\r\n );\r\n contractGNSStaking\r\n .users(Ethers.provider().getSigner().getAddress())\r\n .then((res) => {\r\n console.log(res[0]);\r\n State.update({\r\n stakedBalance: Big(res[0]).div(Big(10).pow(18)).toFixed(2),\r\n });\r\n State.update({\r\n daiBalance: Big(res[1]).div(Big(10).pow(18)).toFixed(4),\r\n });\r\n });\r\n}\r\n\r\n// FETCH CSS\r\n\r\nconst cssFont = fetch(\r\n \"https://fonts.googleapis.com/css2?family=Manrope:wght@200;300;400;500;600;700;800\"\r\n).body;\r\nconst css = fetch(\r\n \"https://nativonft.mypinata.cloud/ipfs/Qmdpe64Mm46fvWNVaCroSGa2JKgauUUUE5251Cx9nTKNrs\"\r\n).body;\r\n\r\nif (!cssFont || !css) return \"\";\r\n\r\nif (!state.theme) {\r\n State.update({\r\n theme: styled.div`\r\n font-family: Manrope, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\r\n ${cssFont}\r\n ${css}\r\n`,\r\n });\r\n}\r\nconst Theme = state.theme;\r\n\r\n// OUTPUT UI\r\n\r\nconst getSender = () => {\r\n return !state.sender\r\n ? \"\"\r\n : state.sender.substring(0, 6) +\r\n \"...\" +\r\n state.sender.substring(state.sender.length - 4, state.sender.length);\r\n};\r\n\r\nreturn (\r\n <Theme>\r\n <div class=\"LidoContainer\">\r\n <div class=\"Header\">Stake GNS</div>\r\n <div class=\"SubHeader\">Stake GNS token on Polygon </div>\r\n <div class=\"SubHeader-2\">\r\n Before staking press the approve button to give access to your GNS\r\n </div>\r\n <div class=\"LidoForm\">\r\n {state.sender && (\r\n <>\r\n <div class=\"LidoFormTopContainer\">\r\n <div class=\"LidoFormTopContainerLeft\">\r\n <div class=\"LidoFormTopContainerLeftContent1\">\r\n <div class=\"LidoFormTopContainerLeftContent1Container\">\r\n <span>Available to stake</span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerLeftContent2\">\r\n <span>\r\n {state.balance ?? (!state.sender ? \"0\" : \"...\")}&nbsp;GNS\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerRight\">\r\n <div class=\"LidoFormTopContainerRightContent1\">\r\n <div class=\"LidoFormTopContainerRightContent1Text\">\r\n <span>\r\n <b>Account:</b> {getSender()}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"LidoSplitter\" />\r\n </>\r\n )}\r\n <div\r\n class={\r\n state.sender ? \"LidoFormBottomContainer\" : \"LidoFormTopContainer\"\r\n }\r\n >\r\n <div class=\"LidoFormTopContainerLeft\">\r\n <div class=\"LidoFormTopContainerLeftContent1\">\r\n <div class=\"LidoFormTopContainerLeftContent1Container\">\r\n <span>Staked amount</span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerLeftContent2\">\r\n <span>\r\n {state.stakedBalance ?? (!state.sender ? \"0\" : \"...\")}\r\n &nbsp;GNS\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"LidoFormTopContainerRight\">\r\n <div class=\"LidoAprContainer\">\r\n <div class=\"LidoAprTitle\">Your APR</div>\r\n <div class=\"LidoAprValue\">\r\n {(state.daiBalance * 100).toFixed(2) ?? \"...\"}&nbsp;DAI\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"LidoStakeForm\">\r\n <div class=\"LidoStakeFormInputContainer\">\r\n <span class=\"LidoStakeFormInputContainerSpan1\">\r\n <img\r\n src=\"https://research.binance.com/static/images/projects/gains-network/logo.png\"\r\n width=\"24\"\r\n height=\"24\"\r\n />\r\n </span>\r\n <span class=\"LidoStakeFormInputContainerSpan2\">\r\n <input\r\n disabled={!state.sender}\r\n class=\"LidoStakeFormInputContainerSpan2Input\"\r\n value={state.strEther}\r\n onChange={(e) => State.update({ strEther: e.target.value })}\r\n placeholder=\"Amount\"\r\n />\r\n </span>\r\n <span\r\n class=\"LidoStakeFormInputContainerSpan3\"\r\n onClick={() => {\r\n State.update({\r\n //strEther: (parseFloat(state.balance) - 0.05).toFixed(2),\r\n strEther: parseFloat(state.balance).toFixed(2),\r\n });\r\n }}\r\n >\r\n <button\r\n class=\"LidoStakeFormInputContainerSpan3Content\"\r\n disabled={!state.sender}\r\n >\r\n <span class=\"LidoStakeFormInputContainerSpan3Max\">MAX</span>\r\n </button>\r\n </span>\r\n </div>\r\n {!!state.sender ? (\r\n <div>\r\n <button\r\n class=\"LidoStakeFormSubmitContainer mb-2\"\r\n onClick={() => approveGNS(state.strEther, state.sender)}\r\n >\r\n <span>Approve use of GNS</span>\r\n </button>\r\n <button\r\n class=\"LidoStakeFormSubmitContainer\"\r\n onClick={() => submitEthers(state.strEther, state.sender)}\r\n >\r\n <span>Stake</span>\r\n </button>\r\n </div>\r\n ) : (\r\n <Web3Connect\r\n className=\"LidoStakeFormSubmitContainer\"\r\n connectLabel=\"Connect with Web3\"\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </Theme>\r\n);\r\n" } } } } }
Empty result
No logs
Receipt:
Predecessor ID:
Receiver ID:
Gas Burned:
223 Ggas
Tokens Burned:
0 
Transferred 0.01819  to syi216.near
Empty result
No logs