-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexperiment.ts
44 lines (37 loc) · 1.84 KB
/
experiment.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { readFile } from "fs/promises"
import { DirectSecp256k1HdWallet, OfflineDirectSigner } from "@cosmjs/proto-signing"
import { IndexedTx, SigningStargateClient, StargateClient } from "@cosmjs/stargate"
import { MsgSend } from "cosmjs-types/cosmos/bank/v1beta1/tx"
import { Tx } from "cosmjs-types/cosmos/tx/v1beta1/tx"
const rpc = "https://rpc-testnet1.turablockchain.com"
const getAliceSignerFromMnemonic = async (): Promise<OfflineDirectSigner> => {
return DirectSecp256k1HdWallet.fromMnemonic((await readFile("./testnet.alice.mnemonic.key")).toString(), {
prefix: "tura",
})
}
const runAll = async (): Promise<void> => {
const client = await StargateClient.connect(rpc)
console.log("With client, chain id:", await client.getChainId(), ", height:", await client.getHeight())
console.log(
"Alice balances:",
await client.getAllBalances("tura1kcs5kjjnnqmc70emzskezu39zfzz9mkpqrtap8")
)
const aliceSigner: OfflineDirectSigner = await getAliceSignerFromMnemonic()
const alice = (await aliceSigner.getAccounts())[0].address
console.log("Alice's address from signer", alice)
const signingClient = await SigningStargateClient.connectWithSigner(rpc, aliceSigner)
console.log(
"With signing client, chain id:",
await signingClient.getChainId(),
", height:",
await signingClient.getHeight()
)
const result = await signingClient.sendTokens(alice, "tura1wth75m94vyulakw4zw8yjrzyk62gm2d8snwh64", [{ denom: "utura", amount: "100000000" }], {
amount: [{ denom: "utura", amount: "3000" }],
gas: "200000",
})
console.log("Transfer result:", result)
console.log("Alice balance after:", await client.getAllBalances(alice))
console.log("Faucet balance after:", await client.getAllBalances("tura1wth75m94vyulakw4zw8yjrzyk62gm2d8snwh64"))
}
runAll()