@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.
- package/dist/AvalancheSignRequest.cjs +11 -2
- package/dist/AvalancheSignRequest.cjs.map +1 -1
- package/dist/AvalancheSignRequest.d.cts +1 -1
- package/dist/AvalancheSignRequest.d.cts.map +1 -1
- package/dist/AvalancheSignRequest.d.mts +1 -1
- package/dist/AvalancheSignRequest.d.mts.map +1 -1
- package/dist/AvalancheSignRequest.mjs +12 -3
- package/dist/AvalancheSignRequest.mjs.map +1 -1
- package/package.json +1 -1
- package/src/AvalancheSignRequest.ts +19 -3
|
@@ -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,
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"AvalancheSignRequest.cjs","sourceRoot":"","sources":["../src/AvalancheSignRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAOoC;AACpC,qDAAuD;AACvD,2CAA6B;AAC7B,uDAAmE;AAEnE,MAAM,EAAE,aAAa,EAAE,GAAG,uBAAM,CAAC;AASjC,IAAK,IAKJ;AALD,WAAK,IAAI;IACP,yCAAa,CAAA;IACb,uCAAQ,CAAA;IACR,mDAAc,CAAA;IACd,iCAAK,CAAA;AACP,CAAC,EALI,IAAI,KAAJ,IAAI,QAKR;AACD,MAAa,oBAAqB,SAAQ,6BAAY;IASpD,YAAY,IAAsB;QAChC,KAAK,EAAE,CAAC;QAHV,oBAAe,GAAG,GAAG,EAAE,CAAC,oCAAqB,CAAC,sBAAsB,CAAC;QAU9D,iBAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QACpC,gBAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,aAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,sBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;QAE9C,eAAU,GAAG,GAAG,EAAE;YACvB,MAAM,GAAG,GAAgB,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,yBAAQ,CAChC,IAAI,CAAC,SAAS,EACd,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAC5B,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5C,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,yBAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC;QA7BA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IA8CM,MAAM,CAAC,yBAAyB,CACrC,IAAY,EACZ,MAAc,EACd,KAA0B,EAC1B,GAAW,EACX,SAA2B;QAE3B,IAAI,UAAU,CAAC;QACf,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAe,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,SAAS,YAAY,MAAM,EAAE,CAAC;YACvC,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAe,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxC,6BAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAC3C,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,IAAI,8BAAa,CACpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YACD,OAAO,IAAI,8BAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,EACF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CACxB,CAAC;QAEF,OAAO,IAAI,oBAAoB,CAAC;YAC9B,IAAI;YACJ,SAAS,EAAE,UAAU;YACrB,cAAc,EAAE,YAAY;YAC5B,KAAK,EAAE,cAAc;SACtB,CAAC,CAAC;IACL,CAAC;;AApGH,oDAqGC;AA3De,iCAAY,GAAG,CAAC,QAAkB,EAAE,EAAE;IAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;QAC/B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAoB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAc,EAAE,EAAE,CACpE,6BAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CACjC,CAAC;IAEF,OAAO,IAAI,oBAAoB,CAAC;QAC9B,SAAS;QACT,IAAI;QACJ,cAAc;QACd,KAAK;KACN,CAAC,CAAC;AACL,CAAC,AAjByB,CAiBxB","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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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":";;;
|
|
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
|
@@ -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
|
-
|
|
91
|
+
hdPath: string,
|
|
91
92
|
utxos: AvalancheUtxoData[],
|
|
92
|
-
|
|
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
|
}
|