wormhole/algorand/test/test2.ts

134 lines
4.4 KiB
TypeScript

const algosdk = require('algosdk');
const TestLib = require('./testlib.ts')
const testLib = new TestLib.TestLib()
const fs = require('fs');
const path = require('path');
import {
getAlgoClient,
submitVAA,
submitVAAHdr,
simpleSignVAA,
getIsTransferCompletedAlgorand,
parseVAA,
CORE_ID,
TOKEN_BRIDGE_ID
} from "@certusone/wormhole-sdk/lib/cjs/algorand/Algorand";
import {
hexStringToUint8Array,
uint8ArrayToHexString,
} from "@certusone/wormhole-sdk/lib/cjs/algorand/TmplSig";
import {
getTempAccounts,
} from "@certusone/wormhole-sdk/lib/cjs/algorand/Helpers";
const guardianKeys = [
"beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe"
]
const guardianPrivKeys = [
"cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0"
]
class AlgoTests {
constructor() {
}
async runTests() {
let seq = Math.floor(new Date().getTime() / 1000.0);
// let t = "01000000000100bc942f5b6da266078844b26cb01bb541e0b5963da5bae9aadfe717ed5376efa711224796fc9e893dbf6f19ef6472a62f9af9241ece016e42da8a076bbf1ffe3c006250770b625077090001000000000000000000000000000000000000000000000000000000000000000400000000625077092000000000000000000000000000000000000000000000000000000000436f72650200000000000101beFA429d57cD18b7F8A4d91A29AB4AF05d0FBe"
// console.log(t)
// console.log(parseVAA(hexStringToUint8Array(t)))
// process.exit(0)
console.log("test start");
let client = getAlgoClient();
let accounts = await getTempAccounts();
let player = accounts[0]
let t = testLib.genAssetMeta(guardianPrivKeys, 0, seq, seq, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 1, 8, "USDC", "CircleCoin")
console.log(t)
console.log(parseVAA(hexStringToUint8Array(t)))
await submitVAA(hexStringToUint8Array(t), client, player, TOKEN_BRIDGE_ID)
process.exit(0)
// vaaLogs.append(["createWrappedOnAlgorand", attestVAA.hex()])
// self.submitVAA(attestVAA, client, player, self.tokenid)
t = testLib.genTransfer(guardianPrivKeys, 1, 1, 1, 1, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 2, uint8ArrayToHexString(algosdk.decodeAddress(player.addr).publicKey, false), 8, 0)
console.log(t)
console.log(parseVAA(hexStringToUint8Array(t)))
process.exit(0)
console.log("seq = ", seq);
console.log("XXX upgrading the the guardian set using untrusted account...", seq)
let upgradeVAA = testLib.genGuardianSetUpgrade(guardianPrivKeys, 0, 1, seq, seq, guardianKeys)
console.log(upgradeVAA)
console.log(parseVAA(hexStringToUint8Array(upgradeVAA)))
let vaa = hexStringToUint8Array(upgradeVAA);
if (await getIsTransferCompletedAlgorand(client, vaa, CORE_ID, player) != false) {
console.log("assert failed 1");
process.exit(-1);
}
await submitVAA(vaa, client, player, CORE_ID)
if (await getIsTransferCompletedAlgorand(client, vaa, CORE_ID, player) != true) {
console.log("assert failed 2");
process.exit(-1);
}
process.exit(0)
seq = seq + 1
console.log("XXX upgrading again...", seq)
upgradeVAA = testLib.genGuardianSetUpgrade(guardianPrivKeys, 1, 2, seq, seq, guardianKeys)
console.log(upgradeVAA)
await submitVAA(hexStringToUint8Array(upgradeVAA), client, player, CORE_ID)
seq = seq + 1
console.log("XXX registering chain 2", seq)
let reg = testLib.genRegisterChain(guardianPrivKeys, 2, 1, seq, 2)
console.log(reg)
await submitVAA(hexStringToUint8Array(reg), client, player, TOKEN_BRIDGE_ID)
seq = seq + 1
console.log("XXX gen asset meta", seq)
let a = testLib.genAssetMeta(guardianPrivKeys, 2, seq, seq, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 2, 8, "USDC", "CircleCoin")
console.log(a)
await submitVAA(hexStringToUint8Array(a), client, player, TOKEN_BRIDGE_ID)
seq = seq + 1
console.log("XXX Transfer the asset ")
let transferVAA = testLib.genTransfer(guardianPrivKeys, 2, 1, seq, 1, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 2, uint8ArrayToHexString(algosdk.decodeAddress(player.addr).publicKey, false), 8, 0)
await submitVAA(hexStringToUint8Array(transferVAA), client, player, TOKEN_BRIDGE_ID)
seq = seq + 1
console.log("test complete");
}
};
let t = new AlgoTests()
t.runTests()