134 lines
4.4 KiB
TypeScript
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()
|
|
|
|
|