diff --git a/node/package-lock.json b/node/package-lock.json index 6600a1b..1391683 100644 --- a/node/package-lock.json +++ b/node/package-lock.json @@ -9,7 +9,8 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@namada/sdk-node": "^0.23.0" + "@namada/sdk-node": "^0.23.1", + "bignumber.js": "^9.3.1" }, "devDependencies": { "@eslint/js": "^9.33.0", @@ -310,9 +311,9 @@ "license": "Apache-2.0" }, "node_modules/@namada/sdk-node": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@namada/sdk-node/-/sdk-node-0.23.0.tgz", - "integrity": "sha512-PoWfcQ0XpZdZJluTL/g66/z18SEp0Yj6dpXowPJaVcLZv+9bNAE3J1vYtIPBsMIxx9rsmHeXYFIvifWfZCGwvg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@namada/sdk-node/-/sdk-node-0.23.1.tgz", + "integrity": "sha512-ADa18DJI2tXHVAnI27tXv8qtr1ACM33lYYHqw8D6/9t2LJy+AThKJCrYXxaBBEi/W4RmU6QMYw1otct/VrNydQ==", "license": "MIT", "dependencies": { "@cosmjs/encoding": "^0.29.0", diff --git a/node/package.json b/node/package.json index 160591b..a2e7ebd 100644 --- a/node/package.json +++ b/node/package.json @@ -19,7 +19,8 @@ }, "homepage": "https://github.com/namada-net/namada-sdkjs-examples#readme", "dependencies": { - "@namada/sdk-node": "^0.23.0" + "@namada/sdk-node": "^0.23.1", + "bignumber.js": "^9.3.1" }, "devDependencies": { "@eslint/js": "^9.33.0", diff --git a/node/src/index.ts b/node/src/index.ts index bc1cf52..dc8b041 100644 --- a/node/src/index.ts +++ b/node/src/index.ts @@ -1,9 +1,10 @@ -import { Sdk, initSdk } from "@namada/sdk-node"; +import BigNumber from "bignumber.js"; +import { Sdk, WrapperTxProps, initSdk } from "@namada/sdk-node"; const initializeSdk = async (): Promise => { - const rpcUrl = "https://rpc.housefire.tududes.com"; + const rpcUrl = "https://rpc.mainnet.siuuu.click"; const token = "tnam1q9gr66cvu4hrzm0sd5kmlnjje82gs3xlfg3v6nu7"; - const maspIndexerUrl = "https://masp.housefire.tududes.com"; + const maspIndexerUrl = "https://masp.mainnet.siuuu.click"; const dbName = "testDb"; const sdk = await initSdk({ rpcUrl, token, maspIndexerUrl, dbName }); @@ -17,6 +18,40 @@ const app = async () => { console.log("Native token:", nativeToken); const validators = await sdk.rpc.queryAllValidators(); console.log("Validators:", validators); + await broadcastTransferTx(sdk); }; app().then(() => console.log("IT WORKED!")); + +const broadcastTransferTx = async (sdk: Sdk) => { + const wrapperTxProps: WrapperTxProps = { + token: "tnam1q9gr66cvu4hrzm0sd5kmlnjje82gs3xlfg3v6nu7", + feeAmount: BigNumber("0.000001"), + gasLimit: BigNumber("62500"), + chainId: "namada.5f5de2dd1b88cba30586420", + publicKey: + "tpknam1qpam035talr4f8qgltku73dl6zr3t6p22t39w74qatpcecfxgkhgw8tktev", // replace with actual public key + }; + const transferProps = { + data: [ + { + source: "tnam1qrxsru5rdu4he400xny6p779fcw7xuftsgjnmzup", // replace with actual source address + target: "tnam1qpqfsmj2quxnakfq0rn8y2tjcvtz26f8pyw4fq98", // replace with actual target address + token: "tnam1q9gr66cvu4hrzm0sd5kmlnjje82gs3xlfg3v6nu7", + amount: BigNumber("0.00001"), + }, + ], + }; + const tx = await sdk + .getTx() + .buildTransparentTransfer(wrapperTxProps, transferProps); + console.log("Built Tx:", tx); + const signedTx = await sdk.getSigning().sign( + tx, + "4d4c31e159acffa2ab5983d953f56ef4d9375538eb7f030cff538dd58e197097", // replace with actual private key + ); + console.log("Signed Tx:", signedTx); + console.log("Broadcasting Tx..., it might take a while"); + const response = await sdk.getRpc().broadcastTx(signedTx); + console.log("Broadcast Response:", response); +};