Skip to content

Commit

Permalink
test: script for sending tokens from relay to para
Browse files Browse the repository at this point in the history
  • Loading branch information
hemz10 committed Jan 5, 2024
1 parent 5bc1d20 commit a97f47e
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 38 deletions.
83 changes: 83 additions & 0 deletions testdata/e2e/relay_para.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import { ApiPromise, WsProvider, Keyring } from "@polkadot/api";
import { Builder } from "@paraspell/sdk";

async function testRelayToPara() {
console.log("*".repeat(100));
console.log("Demo on Sending tokens from Relay Chain to Para chain. \n");
console.log("*".repeat(100), "\n");

console.log("Establishing connection to Relay Chain....");
let relayWsProvider = new WsProvider("ws://127.0.0.1:34322");
const relayaAPI = await ApiPromise.create({ provider: relayWsProvider });

const relayBlock = await relayaAPI.rpc.chain.getBlock();
console.log(
"Latest Relay Chain Block Height: ",
relayBlock.block.header.number.toHuman(),
"\n"
);

console.log("Establishing connection to Para Chain....");
let paraWsProvider = new WsProvider("ws://127.0.0.1:34328");
const paraAPI = await ApiPromise.create({
provider: paraWsProvider,
noInitWarn: true,
});

const paraBlock = await paraAPI.rpc.chain.getBlock();
console.log(
"Latest Para Chain Block Height: ",
paraBlock.block.header.number.toHuman(),
"\n"
);
const accountAddress = "gXCcrjjFX3RPyhHYgwZDmw8oe4JFpd5anko3nTY8VrmnJpe";
console.log(
"Destination Para Chain Account Address : ",
accountAddress,
"\n"
);

const initialBal = await paraAPI.query.tokens.accounts(accountAddress, {
token: "KSM",
});
console.log(
"Initial KSM Balance on Destination chain : ",
initialBal.free.toHuman()
);

console.log(
"Building an XCM call to transfer asset from relay chain to Para chain...\n"
);
const call = Builder(relayaAPI)
.to("BifrostPolkadot", 2000) // Destination Parachain and Para ID
.amount(10000000000000) // Token amount
.address("gXCcrjjFX3RPyhHYgwZDmw8oe4JFpd5anko3nTY8VrmnJpe") // AccountId32 or AccountKey20 address
.build(); // Function called to build call

console.log("Getting Alice address to sign and send the transaction.. \n");
const keyring = new Keyring({ type: "sr25519" });
const alice = keyring.addFromUri("//Alice");
console.log("Alice Address : ", alice.address, "\n");

const hash = await call.signAndSend(alice);
console.log(
"Transaction Successfully submitted. \nHash: ",
JSON.stringify(hash)
);
relayaAPI.disconnect();

// TODO: Listen for events and then check final Balance
await new Promise((f) => setTimeout(f, 25000));

const finalBal = await paraAPI.query.tokens.accounts(accountAddress, {
token: "KSM",
});
console.log(
"KSM Balance on Destination chain after transfer: ",
finalBal.free.toHuman()
);

paraAPI.disconnect();
}

testRelayToPara();
38 changes: 0 additions & 38 deletions testdata/e2e/test.ts

This file was deleted.

0 comments on commit a97f47e

Please sign in to comment.