@keystonehq/bc-ur-registry-avalanche 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -73,7 +73,7 @@ class AvalancheSignRequest extends bc_ur_registry_1.RegistryItem {
73
73
  this.derivationPath = args.derivationPath;
74
74
  this.utxos = args.utxos;
75
75
  }
76
- static constructAvalancheRequest(data, derivationPath, utxos, requestId) {
76
+ static constructAvalancheRequest(data, hdPath, utxos, xfp, requestId) {
77
77
  let _requestId;
78
78
  if (typeof requestId === "string") {
79
79
  _requestId = Buffer.from(uuid.parse(requestId));
@@ -85,10 +85,19 @@ class AvalancheSignRequest extends bc_ur_registry_1.RegistryItem {
85
85
  _requestId = Buffer.from(uuid.parse(uuid.v4()));
86
86
  }
87
87
  const avalancheUtxos = utxos.map((utxo) => AvalancheUtxo_1.AvalancheUtxo.constructAvalancheUtxo(utxo));
88
+ const paths = hdPath.replace(/[m|M]\//, "").split("/");
89
+ const hdpathObject = new bc_ur_registry_1.CryptoKeypath(paths.map((path) => {
90
+ const index = parseInt(path.replace("'", ""));
91
+ let isHardened = false;
92
+ if (path.endsWith("'")) {
93
+ isHardened = true;
94
+ }
95
+ return new bc_ur_registry_1.PathComponent({ index, hardened: isHardened });
96
+ }), Buffer.from(xfp, "hex"));
88
97
  return new AvalancheSignRequest({
89
98
  data,
90
99
  requestId: _requestId,
91
- derivationPath,
100
+ derivationPath: hdpathObject,
92
101
  utxos: avalancheUtxos,
93
102
  });
94
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AvalancheSignRequest.cjs","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DataItem,\n RegistryItem,\n extend,\n DataItemMap,\n CryptoKeypath,\n} from \"@keystonehq/bc-ur-registry\";\nimport { ExtendedRegistryTypes } from \"./RegistryType\";\nimport * as uuid from \"uuid\";\nimport { AvalancheUtxo, AvalancheUtxoData } from \"./AvalancheUtxo\";\n\nconst { RegistryTypes } = extend;\n\ntype signRequestProps = {\n requestId?: Buffer;\n data: Buffer;\n derivationPath: CryptoKeypath;\n utxos: AvalancheUtxo[];\n};\n\nenum Keys {\n requestId = 1,\n signData,\n derivationPath,\n utxos,\n}\nexport class AvalancheSignRequest extends RegistryItem {\n private requestId?: Buffer;\n private data: Buffer;\n private derivationPath: CryptoKeypath;\n private utxos: AvalancheUtxo[];\n\n\n getRegistryType = () => ExtendedRegistryTypes.AVALANCHE_SIGN_REQUEST;\n\n constructor(args: signRequestProps) {\n super();\n this.requestId = args.requestId;\n this.data = args.data;\n this.derivationPath = args.derivationPath;\n this.utxos = args.utxos;\n }\n\n public getRequestId = () => this.requestId;\n public getSignData = () => this.data;\n public getUtxos = () => this.utxos;\n public getDerivationPath = () => this.derivationPath;\n\n public toDataItem = () => {\n const map: DataItemMap = {};\n if (this.requestId) {\n map[Keys.requestId] = new DataItem(\n this.requestId,\n RegistryTypes.UUID.getTag()\n );\n }\n\n map[Keys.signData] = Buffer.from(this.data);\n map[Keys.derivationPath] = this.derivationPath;\n map[Keys.utxos] = this.utxos.map((utxo) => {\n const res = utxo.toDataItem();\n res.setTag(utxo.getRegistryType().getTag());\n return res;\n });\n\n return new DataItem(map);\n };\n\n public static fromDataItem = (dataItem: DataItem) => {\n const map = dataItem.getData();\n const requestId = map[Keys.requestId]\n ? map[Keys.requestId].getData()\n : undefined;\n const data = map[Keys.signData];\n const derivationPath = map[Keys.signData];\n const utxos: AvalancheUtxo[] = map[Keys.utxos].map((utxo: DataItem) =>\n AvalancheUtxo.fromDataItem(utxo)\n );\n\n return new AvalancheSignRequest({\n requestId,\n data,\n derivationPath,\n utxos,\n });\n };\n\n public static constructAvalancheRequest(\n data: Buffer,\n derivationPath: CryptoKeypath,\n utxos: AvalancheUtxoData[],\n requestId?: string | Buffer,\n ) {\n let _requestId;\n if (typeof requestId === \"string\") {\n _requestId = Buffer.from(uuid.parse(requestId) as Uint8Array);\n } else if (requestId instanceof Buffer) {\n _requestId = requestId;\n } else {\n _requestId = Buffer.from(uuid.parse(uuid.v4()) as Uint8Array);\n }\n const avalancheUtxos = utxos.map((utxo) =>\n AvalancheUtxo.constructAvalancheUtxo(utxo)\n );\n\n return new AvalancheSignRequest({\n data,\n requestId: _requestId,\n derivationPath,\n utxos: avalancheUtxos,\n });\n }\n}\n"]}
1
+ {"version":3,"file":"AvalancheSignRequest.cjs","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DataItem,\n RegistryItem,\n extend,\n DataItemMap,\n CryptoKeypath,\n PathComponent,\n} from \"@keystonehq/bc-ur-registry\";\nimport { ExtendedRegistryTypes } from \"./RegistryType\";\nimport * as uuid from \"uuid\";\nimport { AvalancheUtxo, AvalancheUtxoData } from \"./AvalancheUtxo\";\n\nconst { RegistryTypes } = extend;\n\ntype signRequestProps = {\n requestId?: Buffer;\n data: Buffer;\n derivationPath: CryptoKeypath;\n utxos: AvalancheUtxo[];\n};\n\nenum Keys {\n requestId = 1,\n signData,\n derivationPath,\n utxos,\n}\nexport class AvalancheSignRequest extends RegistryItem {\n private requestId?: Buffer;\n private data: Buffer;\n private derivationPath: CryptoKeypath;\n private utxos: AvalancheUtxo[];\n\n\n getRegistryType = () => ExtendedRegistryTypes.AVALANCHE_SIGN_REQUEST;\n\n constructor(args: signRequestProps) {\n super();\n this.requestId = args.requestId;\n this.data = args.data;\n this.derivationPath = args.derivationPath;\n this.utxos = args.utxos;\n }\n\n public getRequestId = () => this.requestId;\n public getSignData = () => this.data;\n public getUtxos = () => this.utxos;\n public getDerivationPath = () => this.derivationPath;\n\n public toDataItem = () => {\n const map: DataItemMap = {};\n if (this.requestId) {\n map[Keys.requestId] = new DataItem(\n this.requestId,\n RegistryTypes.UUID.getTag()\n );\n }\n\n map[Keys.signData] = Buffer.from(this.data);\n map[Keys.derivationPath] = this.derivationPath;\n map[Keys.utxos] = this.utxos.map((utxo) => {\n const res = utxo.toDataItem();\n res.setTag(utxo.getRegistryType().getTag());\n return res;\n });\n\n return new DataItem(map);\n };\n\n public static fromDataItem = (dataItem: DataItem) => {\n const map = dataItem.getData();\n const requestId = map[Keys.requestId]\n ? map[Keys.requestId].getData()\n : undefined;\n const data = map[Keys.signData];\n const derivationPath = map[Keys.signData];\n const utxos: AvalancheUtxo[] = map[Keys.utxos].map((utxo: DataItem) =>\n AvalancheUtxo.fromDataItem(utxo)\n );\n\n return new AvalancheSignRequest({\n requestId,\n data,\n derivationPath,\n utxos,\n });\n };\n\n public static constructAvalancheRequest(\n data: Buffer,\n hdPath: string,\n utxos: AvalancheUtxoData[],\n xfp: string,\n requestId?: string | Buffer\n ) {\n let _requestId;\n if (typeof requestId === \"string\") {\n _requestId = Buffer.from(uuid.parse(requestId) as Uint8Array);\n } else if (requestId instanceof Buffer) {\n _requestId = requestId;\n } else {\n _requestId = Buffer.from(uuid.parse(uuid.v4()) as Uint8Array);\n }\n \n const avalancheUtxos = utxos.map((utxo) =>\n AvalancheUtxo.constructAvalancheUtxo(utxo)\n );\n\n const paths = hdPath.replace(/[m|M]\\//, \"\").split(\"/\");\n const hdpathObject = new CryptoKeypath(\n paths.map((path) => {\n const index = parseInt(path.replace(\"'\", \"\"));\n let isHardened = false;\n if (path.endsWith(\"'\")) {\n isHardened = true;\n }\n return new PathComponent({ index, hardened: isHardened });\n }),\n Buffer.from(xfp, \"hex\")\n );\n\n return new AvalancheSignRequest({\n data,\n requestId: _requestId,\n derivationPath: hdpathObject,\n utxos: avalancheUtxos,\n });\n }\n}\n"]}
@@ -19,7 +19,7 @@ export declare class AvalancheSignRequest extends RegistryItem {
19
19
  getDerivationPath: () => CryptoKeypath;
20
20
  toDataItem: () => DataItem;
21
21
  static fromDataItem: (dataItem: DataItem) => AvalancheSignRequest;
22
- static constructAvalancheRequest(data: Buffer, derivationPath: CryptoKeypath, utxos: AvalancheUtxoData[], requestId?: string | Buffer): AvalancheSignRequest;
22
+ static constructAvalancheRequest(data: Buffer, hdPath: string, utxos: AvalancheUtxoData[], xfp: string, requestId?: string | Buffer): AvalancheSignRequest;
23
23
  }
24
24
  export {};
25
25
  //# sourceMappingURL=AvalancheSignRequest.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AvalancheSignRequest.d.cts","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EAGZ,aAAa,EACd,mCAAmC;AAGpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,4BAAwB;AAInE,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAQF,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,KAAK,CAAkB;IAG/B,eAAe,0DAAsD;gBAEzD,IAAI,EAAE,gBAAgB;IAQ3B,YAAY,gCAAwB;IACpC,WAAW,gCAAmB;IAC9B,QAAQ,wBAAoB;IAC5B,iBAAiB,sBAA6B;IAE9C,UAAU,iBAkBf;IAEF,OAAc,YAAY,GAAI,UAAU,QAAQ,0BAiB9C;WAEY,yBAAyB,CACrC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,iBAAiB,EAAE,EAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAqB9B"}
1
+ {"version":3,"file":"AvalancheSignRequest.d.cts","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EAGZ,aAAa,EAEd,mCAAmC;AAGpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,4BAAwB;AAInE,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAQF,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,KAAK,CAAkB;IAG/B,eAAe,0DAAsD;gBAEzD,IAAI,EAAE,gBAAgB;IAQ3B,YAAY,gCAAwB;IACpC,WAAW,gCAAmB;IAC9B,QAAQ,wBAAoB;IAC5B,iBAAiB,sBAA6B;IAE9C,UAAU,iBAkBf;IAEF,OAAc,YAAY,GAAI,UAAU,QAAQ,0BAiB9C;WAEY,yBAAyB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,EAAE,EAC1B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAmC9B"}
@@ -19,7 +19,7 @@ export declare class AvalancheSignRequest extends RegistryItem {
19
19
  getDerivationPath: () => CryptoKeypath;
20
20
  toDataItem: () => DataItem;
21
21
  static fromDataItem: (dataItem: DataItem) => AvalancheSignRequest;
22
- static constructAvalancheRequest(data: Buffer, derivationPath: CryptoKeypath, utxos: AvalancheUtxoData[], requestId?: string | Buffer): AvalancheSignRequest;
22
+ static constructAvalancheRequest(data: Buffer, hdPath: string, utxos: AvalancheUtxoData[], xfp: string, requestId?: string | Buffer): AvalancheSignRequest;
23
23
  }
24
24
  export {};
25
25
  //# sourceMappingURL=AvalancheSignRequest.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AvalancheSignRequest.d.mts","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EAGZ,aAAa,EACd,mCAAmC;AAGpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,4BAAwB;AAInE,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAQF,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,KAAK,CAAkB;IAG/B,eAAe,0DAAsD;gBAEzD,IAAI,EAAE,gBAAgB;IAQ3B,YAAY,gCAAwB;IACpC,WAAW,gCAAmB;IAC9B,QAAQ,wBAAoB;IAC5B,iBAAiB,sBAA6B;IAE9C,UAAU,iBAkBf;IAEF,OAAc,YAAY,GAAI,UAAU,QAAQ,0BAiB9C;WAEY,yBAAyB,CACrC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,iBAAiB,EAAE,EAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAqB9B"}
1
+ {"version":3,"file":"AvalancheSignRequest.d.mts","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EAGZ,aAAa,EAEd,mCAAmC;AAGpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,4BAAwB;AAInE,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,aAAa,CAAC;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAQF,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,KAAK,CAAkB;IAG/B,eAAe,0DAAsD;gBAEzD,IAAI,EAAE,gBAAgB;IAQ3B,YAAY,gCAAwB;IACpC,WAAW,gCAAmB;IAC9B,QAAQ,wBAAoB;IAC5B,iBAAiB,sBAA6B;IAE9C,UAAU,iBAkBf;IAEF,OAAc,YAAY,GAAI,UAAU,QAAQ,0BAiB9C;WAEY,yBAAyB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,EAAE,EAC1B,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAmC9B"}
@@ -1,4 +1,4 @@
1
- import { DataItem, extend, CryptoKeypath } from "@keystonehq/bc-ur-registry";
1
+ import { DataItem, extend, CryptoKeypath, PathComponent } from "@keystonehq/bc-ur-registry";
2
2
  import $keystonehqbcurregistry from "@keystonehq/bc-ur-registry";
3
3
  const { RegistryItem } = $keystonehqbcurregistry;
4
4
  import { ExtendedRegistryTypes } from "./RegistryType.mjs";
@@ -39,7 +39,7 @@ export class AvalancheSignRequest extends RegistryItem {
39
39
  this.derivationPath = args.derivationPath;
40
40
  this.utxos = args.utxos;
41
41
  }
42
- static constructAvalancheRequest(data, derivationPath, utxos, requestId) {
42
+ static constructAvalancheRequest(data, hdPath, utxos, xfp, requestId) {
43
43
  let _requestId;
44
44
  if (typeof requestId === "string") {
45
45
  _requestId = Buffer.from(uuid.parse(requestId));
@@ -51,10 +51,19 @@ export class AvalancheSignRequest extends RegistryItem {
51
51
  _requestId = Buffer.from(uuid.parse(uuid.v4()));
52
52
  }
53
53
  const avalancheUtxos = utxos.map((utxo) => AvalancheUtxo.constructAvalancheUtxo(utxo));
54
+ const paths = hdPath.replace(/[m|M]\//, "").split("/");
55
+ const hdpathObject = new CryptoKeypath(paths.map((path) => {
56
+ const index = parseInt(path.replace("'", ""));
57
+ let isHardened = false;
58
+ if (path.endsWith("'")) {
59
+ isHardened = true;
60
+ }
61
+ return new PathComponent({ index, hardened: isHardened });
62
+ }), Buffer.from(xfp, "hex"));
54
63
  return new AvalancheSignRequest({
55
64
  data,
56
65
  requestId: _requestId,
57
- derivationPath,
66
+ derivationPath: hdpathObject,
58
67
  utxos: avalancheUtxos,
59
68
  });
60
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AvalancheSignRequest.mjs","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DataItem,\n RegistryItem,\n extend,\n DataItemMap,\n CryptoKeypath,\n} from \"@keystonehq/bc-ur-registry\";\nimport { ExtendedRegistryTypes } from \"./RegistryType\";\nimport * as uuid from \"uuid\";\nimport { AvalancheUtxo, AvalancheUtxoData } from \"./AvalancheUtxo\";\n\nconst { RegistryTypes } = extend;\n\ntype signRequestProps = {\n requestId?: Buffer;\n data: Buffer;\n derivationPath: CryptoKeypath;\n utxos: AvalancheUtxo[];\n};\n\nenum Keys {\n requestId = 1,\n signData,\n derivationPath,\n utxos,\n}\nexport class AvalancheSignRequest extends RegistryItem {\n private requestId?: Buffer;\n private data: Buffer;\n private derivationPath: CryptoKeypath;\n private utxos: AvalancheUtxo[];\n\n\n getRegistryType = () => ExtendedRegistryTypes.AVALANCHE_SIGN_REQUEST;\n\n constructor(args: signRequestProps) {\n super();\n this.requestId = args.requestId;\n this.data = args.data;\n this.derivationPath = args.derivationPath;\n this.utxos = args.utxos;\n }\n\n public getRequestId = () => this.requestId;\n public getSignData = () => this.data;\n public getUtxos = () => this.utxos;\n public getDerivationPath = () => this.derivationPath;\n\n public toDataItem = () => {\n const map: DataItemMap = {};\n if (this.requestId) {\n map[Keys.requestId] = new DataItem(\n this.requestId,\n RegistryTypes.UUID.getTag()\n );\n }\n\n map[Keys.signData] = Buffer.from(this.data);\n map[Keys.derivationPath] = this.derivationPath;\n map[Keys.utxos] = this.utxos.map((utxo) => {\n const res = utxo.toDataItem();\n res.setTag(utxo.getRegistryType().getTag());\n return res;\n });\n\n return new DataItem(map);\n };\n\n public static fromDataItem = (dataItem: DataItem) => {\n const map = dataItem.getData();\n const requestId = map[Keys.requestId]\n ? map[Keys.requestId].getData()\n : undefined;\n const data = map[Keys.signData];\n const derivationPath = map[Keys.signData];\n const utxos: AvalancheUtxo[] = map[Keys.utxos].map((utxo: DataItem) =>\n AvalancheUtxo.fromDataItem(utxo)\n );\n\n return new AvalancheSignRequest({\n requestId,\n data,\n derivationPath,\n utxos,\n });\n };\n\n public static constructAvalancheRequest(\n data: Buffer,\n derivationPath: CryptoKeypath,\n utxos: AvalancheUtxoData[],\n requestId?: string | Buffer,\n ) {\n let _requestId;\n if (typeof requestId === \"string\") {\n _requestId = Buffer.from(uuid.parse(requestId) as Uint8Array);\n } else if (requestId instanceof Buffer) {\n _requestId = requestId;\n } else {\n _requestId = Buffer.from(uuid.parse(uuid.v4()) as Uint8Array);\n }\n const avalancheUtxos = utxos.map((utxo) =>\n AvalancheUtxo.constructAvalancheUtxo(utxo)\n );\n\n return new AvalancheSignRequest({\n data,\n requestId: _requestId,\n derivationPath,\n utxos: avalancheUtxos,\n });\n }\n}\n"]}
1
+ {"version":3,"file":"AvalancheSignRequest.mjs","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DataItem,\n RegistryItem,\n extend,\n DataItemMap,\n CryptoKeypath,\n PathComponent,\n} from \"@keystonehq/bc-ur-registry\";\nimport { ExtendedRegistryTypes } from \"./RegistryType\";\nimport * as uuid from \"uuid\";\nimport { AvalancheUtxo, AvalancheUtxoData } from \"./AvalancheUtxo\";\n\nconst { RegistryTypes } = extend;\n\ntype signRequestProps = {\n requestId?: Buffer;\n data: Buffer;\n derivationPath: CryptoKeypath;\n utxos: AvalancheUtxo[];\n};\n\nenum Keys {\n requestId = 1,\n signData,\n derivationPath,\n utxos,\n}\nexport class AvalancheSignRequest extends RegistryItem {\n private requestId?: Buffer;\n private data: Buffer;\n private derivationPath: CryptoKeypath;\n private utxos: AvalancheUtxo[];\n\n\n getRegistryType = () => ExtendedRegistryTypes.AVALANCHE_SIGN_REQUEST;\n\n constructor(args: signRequestProps) {\n super();\n this.requestId = args.requestId;\n this.data = args.data;\n this.derivationPath = args.derivationPath;\n this.utxos = args.utxos;\n }\n\n public getRequestId = () => this.requestId;\n public getSignData = () => this.data;\n public getUtxos = () => this.utxos;\n public getDerivationPath = () => this.derivationPath;\n\n public toDataItem = () => {\n const map: DataItemMap = {};\n if (this.requestId) {\n map[Keys.requestId] = new DataItem(\n this.requestId,\n RegistryTypes.UUID.getTag()\n );\n }\n\n map[Keys.signData] = Buffer.from(this.data);\n map[Keys.derivationPath] = this.derivationPath;\n map[Keys.utxos] = this.utxos.map((utxo) => {\n const res = utxo.toDataItem();\n res.setTag(utxo.getRegistryType().getTag());\n return res;\n });\n\n return new DataItem(map);\n };\n\n public static fromDataItem = (dataItem: DataItem) => {\n const map = dataItem.getData();\n const requestId = map[Keys.requestId]\n ? map[Keys.requestId].getData()\n : undefined;\n const data = map[Keys.signData];\n const derivationPath = map[Keys.signData];\n const utxos: AvalancheUtxo[] = map[Keys.utxos].map((utxo: DataItem) =>\n AvalancheUtxo.fromDataItem(utxo)\n );\n\n return new AvalancheSignRequest({\n requestId,\n data,\n derivationPath,\n utxos,\n });\n };\n\n public static constructAvalancheRequest(\n data: Buffer,\n hdPath: string,\n utxos: AvalancheUtxoData[],\n xfp: string,\n requestId?: string | Buffer\n ) {\n let _requestId;\n if (typeof requestId === \"string\") {\n _requestId = Buffer.from(uuid.parse(requestId) as Uint8Array);\n } else if (requestId instanceof Buffer) {\n _requestId = requestId;\n } else {\n _requestId = Buffer.from(uuid.parse(uuid.v4()) as Uint8Array);\n }\n \n const avalancheUtxos = utxos.map((utxo) =>\n AvalancheUtxo.constructAvalancheUtxo(utxo)\n );\n\n const paths = hdPath.replace(/[m|M]\\//, \"\").split(\"/\");\n const hdpathObject = new CryptoKeypath(\n paths.map((path) => {\n const index = parseInt(path.replace(\"'\", \"\"));\n let isHardened = false;\n if (path.endsWith(\"'\")) {\n isHardened = true;\n }\n return new PathComponent({ index, hardened: isHardened });\n }),\n Buffer.from(xfp, \"hex\")\n );\n\n return new AvalancheSignRequest({\n data,\n requestId: _requestId,\n derivationPath: hdpathObject,\n utxos: avalancheUtxos,\n });\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keystonehq/bc-ur-registry-avalanche",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "bc-ur-registry extension for Avalanche",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",
@@ -4,6 +4,7 @@ import {
4
4
  extend,
5
5
  DataItemMap,
6
6
  CryptoKeypath,
7
+ PathComponent,
7
8
  } from "@keystonehq/bc-ur-registry";
8
9
  import { ExtendedRegistryTypes } from "./RegistryType";
9
10
  import * as uuid from "uuid";
@@ -87,9 +88,10 @@ export class AvalancheSignRequest extends RegistryItem {
87
88
 
88
89
  public static constructAvalancheRequest(
89
90
  data: Buffer,
90
- derivationPath: CryptoKeypath,
91
+ hdPath: string,
91
92
  utxos: AvalancheUtxoData[],
92
- requestId?: string | Buffer,
93
+ xfp: string,
94
+ requestId?: string | Buffer
93
95
  ) {
94
96
  let _requestId;
95
97
  if (typeof requestId === "string") {
@@ -99,14 +101,28 @@ export class AvalancheSignRequest extends RegistryItem {
99
101
  } else {
100
102
  _requestId = Buffer.from(uuid.parse(uuid.v4()) as Uint8Array);
101
103
  }
104
+
102
105
  const avalancheUtxos = utxos.map((utxo) =>
103
106
  AvalancheUtxo.constructAvalancheUtxo(utxo)
104
107
  );
105
108
 
109
+ const paths = hdPath.replace(/[m|M]\//, "").split("/");
110
+ const hdpathObject = new CryptoKeypath(
111
+ paths.map((path) => {
112
+ const index = parseInt(path.replace("'", ""));
113
+ let isHardened = false;
114
+ if (path.endsWith("'")) {
115
+ isHardened = true;
116
+ }
117
+ return new PathComponent({ index, hardened: isHardened });
118
+ }),
119
+ Buffer.from(xfp, "hex")
120
+ );
121
+
106
122
  return new AvalancheSignRequest({
107
123
  data,
108
124
  requestId: _requestId,
109
- derivationPath,
125
+ derivationPath: hdpathObject,
110
126
  utxos: avalancheUtxos,
111
127
  });
112
128
  }