| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /// We build a programmable txn to create a price feed.
- import dotenv from "dotenv";
- import {
- RawSigner,
- SUI_CLOCK_OBJECT_ID,
- TransactionBlock,
- JsonRpcProvider,
- Ed25519Keypair,
- Connection,
- } from "@optke3/sui.js";
- dotenv.config({ path: "~/.env" });
- import { REGISTRY, NETWORK } from "../registry";
- // Network dependent settings.
- let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network
- const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network
- const registry = REGISTRY[network];
- const provider = new JsonRpcProvider(
- new Connection({ fullnode: registry["RPC_URL"] })
- );
- async function main() {
- if (walletPrivateKey === undefined) {
- throw new Error("SUI_TESTNET unset in environment");
- }
- const wallet = new RawSigner(
- Ed25519Keypair.fromSecretKey(
- Buffer.from(walletPrivateKey, "hex")
- ),
- provider
- );
- let sender = await wallet.getAddress()
- let recipient = "0x4ed01b6abcc271a5c7a1e05ee9344d6eb72d0c1f2483a1c600b46d73a22ba764"
- console.log("Sender: ", sender);
- transfer_tokens(wallet, recipient);
- }
- main();
- async function transfer_tokens(
- signer: RawSigner,
- recipient: string
- ) {
- const tx = new TransactionBlock();
- let coin = tx.splitCoins(tx.gas, [tx.pure(100000000000)]);
- tx.transferObjects([coin], tx.pure(recipient))
- tx.setGasBudget(1000000000);
- let result = await signer.signAndExecuteTransactionBlock({
- transactionBlock: tx,
- options: {
- showInput: true,
- showEffects: true,
- showEvents: true,
- showObjectChanges: true,
- showBalanceChanges: true,
- },
- });
- console.log(result);
- return result;
- }
|