diff --git a/packages/ur-registry-avalanche/__tests__/AvalancheSignRequest.test.ts b/packages/ur-registry-avalanche/__tests__/AvalancheSignRequest.test.ts index d8ef728..ddf798b 100644 --- a/packages/ur-registry-avalanche/__tests__/AvalancheSignRequest.test.ts +++ b/packages/ur-registry-avalanche/__tests__/AvalancheSignRequest.test.ts @@ -1,14 +1,15 @@ // @ts-nocheck import { AvalancheSignRequest, AvalancheSignature } from "../src"; +import { UREncoder } from "@ngraveio/bc-ur"; describe("avalanche-sign-request", () => { it("test should generate avalanche-sign-reqeust", () => { const avalancheData = Buffer.from( - "00000000000000000001ed5f38341e436e5d46e2bb00b45d62ae97d1b050c64bc634ae10626739e35c4b0000000121e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff00000007000000000089544000000000000000000000000100000001512e7191685398f00663e12197a3d8f6012d9ea300000001db720ad6707915cc4751fb7e5491a3af74e127a1d81817abe9438590c0833fe10000000021e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff000000050000000000989680000000010000000000000000", + "0000000000220000000100000000000000000000000000000000000000000000000000000000000000000000000221e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff0000000700000000006c2b4400000000000000000000000100000001b5e66be5c7093d1114d74940333c0c45f81092c521e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff00000007000000000176bbb400000000000000000000000100000001b5e66be5c7093d1114d74940333c0c45f81092c500000001cd53226620f4be2b6f6e43b1470f4f715b3bc7f40c4530cd5237a1c4156b537f0000000021e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff000000050000000001e2fb33000000010000000000000000", "hex" ); - const derivationPath = "m/44'/133'/0'/0/0"; + const derivationPath = "m/44'/9000'/0'/0/1"; const utxos = []; const xfp = '2d0bdabc' @@ -18,13 +19,25 @@ describe("avalanche-sign-request", () => { utxos, xfp ); + console.log('-----avalancheSignRequest--------',avalancheSignRequest.toCBOR().toString('hex')) + const ur = avalancheSignRequest.toUR(); + const encoder = new UREncoder(ur, Infinity); + console.log('----- Full UR String -----'); + console.log(encoder.nextPart().toUpperCase()); const request = AvalancheSignRequest.fromDataItem( avalancheSignRequest.toDataItem() ); + const path = request.getDerivationPath(); + expect(path).toBeDefined(); + expect(path.getPath()).toBe("44'/9000'/0'/0/1"); + + const recoveredXfp = request.getDerivationPath().getSourceFingerprint().toString('hex'); + expect(recoveredXfp).toBe(xfp) + expect(request.getSignData().toString("hex")).toBe( - "00000000000000000001ed5f38341e436e5d46e2bb00b45d62ae97d1b050c64bc634ae10626739e35c4b0000000121e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff00000007000000000089544000000000000000000000000100000001512e7191685398f00663e12197a3d8f6012d9ea300000001db720ad6707915cc4751fb7e5491a3af74e127a1d81817abe9438590c0833fe10000000021e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff000000050000000000989680000000010000000000000000" + "0000000000220000000100000000000000000000000000000000000000000000000000000000000000000000000221e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff0000000700000000006c2b4400000000000000000000000100000001b5e66be5c7093d1114d74940333c0c45f81092c521e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff00000007000000000176bbb400000000000000000000000100000001b5e66be5c7093d1114d74940333c0c45f81092c500000001cd53226620f4be2b6f6e43b1470f4f715b3bc7f40c4530cd5237a1c4156b537f0000000021e67317cbc4be2aeb00677ad6462778a8f52274b9d605df2591b23027a87dff000000050000000001e2fb33000000010000000000000000" ); }); diff --git a/packages/ur-registry-avalanche/src/AvalancheSignRequest.ts b/packages/ur-registry-avalanche/src/AvalancheSignRequest.ts index 68b702b..b1c41dd 100644 --- a/packages/ur-registry-avalanche/src/AvalancheSignRequest.ts +++ b/packages/ur-registry-avalanche/src/AvalancheSignRequest.ts @@ -57,7 +57,11 @@ export class AvalancheSignRequest extends RegistryItem { } map[Keys.signData] = Buffer.from(this.data); - map[Keys.derivationPath] = this.derivationPath; + + const keyPath = this.derivationPath.toDataItem(); + keyPath.setTag(this.derivationPath.getRegistryType().getTag()); + map[Keys.derivationPath] = keyPath; + map[Keys.utxos] = this.utxos.map((utxo) => { const res = utxo.toDataItem(); res.setTag(utxo.getRegistryType().getTag()); @@ -73,7 +77,7 @@ export class AvalancheSignRequest extends RegistryItem { ? map[Keys.requestId].getData() : undefined; const data = map[Keys.signData]; - const derivationPath = map[Keys.signData]; + const derivationPath = CryptoKeypath.fromDataItem(map[Keys.derivationPath]); const utxos: AvalancheUtxo[] = map[Keys.utxos].map((utxo: DataItem) => AvalancheUtxo.fromDataItem(utxo) );