test2.ts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. const algosdk = require('algosdk');
  2. const TestLib = require('./testlib.ts')
  3. const testLib = new TestLib.TestLib()
  4. const fs = require('fs');
  5. const path = require('path');
  6. import {
  7. getAlgoClient,
  8. submitVAA,
  9. submitVAAHdr,
  10. simpleSignVAA,
  11. getIsTransferCompletedAlgorand,
  12. parseVAA,
  13. CORE_ID,
  14. TOKEN_BRIDGE_ID
  15. } from "@certusone/wormhole-sdk/lib/cjs/algorand/Algorand";
  16. import {
  17. hexStringToUint8Array,
  18. uint8ArrayToHexString,
  19. } from "@certusone/wormhole-sdk/lib/cjs/algorand/TmplSig";
  20. import {
  21. getTempAccounts,
  22. } from "@certusone/wormhole-sdk/lib/cjs/algorand/Helpers";
  23. const guardianKeys = [
  24. "beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe"
  25. ]
  26. const guardianPrivKeys = [
  27. "cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0"
  28. ]
  29. class AlgoTests {
  30. constructor() {
  31. }
  32. async runTests() {
  33. let seq = Math.floor(new Date().getTime() / 1000.0);
  34. // let t = "01000000000100bc942f5b6da266078844b26cb01bb541e0b5963da5bae9aadfe717ed5376efa711224796fc9e893dbf6f19ef6472a62f9af9241ece016e42da8a076bbf1ffe3c006250770b625077090001000000000000000000000000000000000000000000000000000000000000000400000000625077092000000000000000000000000000000000000000000000000000000000436f72650200000000000101beFA429d57cD18b7F8A4d91A29AB4AF05d0FBe"
  35. // console.log(t)
  36. // console.log(parseVAA(hexStringToUint8Array(t)))
  37. // process.exit(0)
  38. console.log("test start");
  39. let client = getAlgoClient();
  40. let accounts = await getTempAccounts();
  41. let player = accounts[0]
  42. let t = testLib.genAssetMeta(guardianPrivKeys, 0, seq, seq, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 1, 8, "USDC", "CircleCoin")
  43. console.log(t)
  44. console.log(parseVAA(hexStringToUint8Array(t)))
  45. await submitVAA(hexStringToUint8Array(t), client, player, TOKEN_BRIDGE_ID)
  46. process.exit(0)
  47. // vaaLogs.append(["createWrappedOnAlgorand", attestVAA.hex()])
  48. // self.submitVAA(attestVAA, client, player, self.tokenid)
  49. t = testLib.genTransfer(guardianPrivKeys, 1, 1, 1, 1, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 2, uint8ArrayToHexString(algosdk.decodeAddress(player.addr).publicKey, false), 8, 0)
  50. console.log(t)
  51. console.log(parseVAA(hexStringToUint8Array(t)))
  52. process.exit(0)
  53. console.log("seq = ", seq);
  54. console.log("XXX upgrading the the guardian set using untrusted account...", seq)
  55. let upgradeVAA = testLib.genGuardianSetUpgrade(guardianPrivKeys, 0, 1, seq, seq, guardianKeys)
  56. console.log(upgradeVAA)
  57. console.log(parseVAA(hexStringToUint8Array(upgradeVAA)))
  58. let vaa = hexStringToUint8Array(upgradeVAA);
  59. if (await getIsTransferCompletedAlgorand(client, vaa, CORE_ID, player) != false) {
  60. console.log("assert failed 1");
  61. process.exit(-1);
  62. }
  63. await submitVAA(vaa, client, player, CORE_ID)
  64. if (await getIsTransferCompletedAlgorand(client, vaa, CORE_ID, player) != true) {
  65. console.log("assert failed 2");
  66. process.exit(-1);
  67. }
  68. process.exit(0)
  69. seq = seq + 1
  70. console.log("XXX upgrading again...", seq)
  71. upgradeVAA = testLib.genGuardianSetUpgrade(guardianPrivKeys, 1, 2, seq, seq, guardianKeys)
  72. console.log(upgradeVAA)
  73. await submitVAA(hexStringToUint8Array(upgradeVAA), client, player, CORE_ID)
  74. seq = seq + 1
  75. console.log("XXX registering chain 2", seq)
  76. let reg = testLib.genRegisterChain(guardianPrivKeys, 2, 1, seq, 2)
  77. console.log(reg)
  78. await submitVAA(hexStringToUint8Array(reg), client, player, TOKEN_BRIDGE_ID)
  79. seq = seq + 1
  80. console.log("XXX gen asset meta", seq)
  81. let a = testLib.genAssetMeta(guardianPrivKeys, 2, seq, seq, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 2, 8, "USDC", "CircleCoin")
  82. console.log(a)
  83. await submitVAA(hexStringToUint8Array(a), client, player, TOKEN_BRIDGE_ID)
  84. seq = seq + 1
  85. console.log("XXX Transfer the asset ")
  86. let transferVAA = testLib.genTransfer(guardianPrivKeys, 2, 1, seq, 1, "4523c3F29447d1f32AEa95BEBD00383c4640F1b4", 2, uint8ArrayToHexString(algosdk.decodeAddress(player.addr).publicKey, false), 8, 0)
  87. await submitVAA(hexStringToUint8Array(transferVAA), client, player, TOKEN_BRIDGE_ID)
  88. seq = seq + 1
  89. console.log("test complete");
  90. }
  91. };
  92. let t = new AlgoTests()
  93. t.runTests()