@onekeyfe/hd-core 1.0.28 → 1.0.30
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/api/BaseMethod.d.ts +3 -1
- package/dist/api/BaseMethod.d.ts.map +1 -1
- package/dist/api/allnetwork/AllNetworkGetAddress.d.ts.map +1 -1
- package/dist/api/kaspa/KaspaGetAddress.d.ts +8 -0
- package/dist/api/kaspa/KaspaGetAddress.d.ts.map +1 -1
- package/dist/api/kaspa/KaspaSignTransaction.d.ts +8 -0
- package/dist/api/kaspa/KaspaSignTransaction.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +51 -3
- package/dist/types/api/allNetworkGetAddress.d.ts +1 -0
- package/dist/types/api/allNetworkGetAddress.d.ts.map +1 -1
- package/dist/types/api/kaspaGetAddress.d.ts +1 -0
- package/dist/types/api/kaspaGetAddress.d.ts.map +1 -1
- package/dist/types/api/kaspaSignTransaction.d.ts +1 -0
- package/dist/types/api/kaspaSignTransaction.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/BaseMethod.ts +15 -2
- package/src/api/allnetwork/AllNetworkGetAddress.ts +2 -1
- package/src/api/kaspa/KaspaGetAddress.ts +22 -1
- package/src/api/kaspa/KaspaSignTransaction.ts +23 -0
- package/src/data/messages/messages.json +14 -0
- package/src/types/api/allNetworkGetAddress.ts +1 -0
- package/src/types/api/kaspaGetAddress.ts +1 -0
- package/src/types/api/kaspaSignTransaction.ts +1 -0
package/dist/api/BaseMethod.d.ts
CHANGED
|
@@ -31,7 +31,9 @@ export declare abstract class BaseMethod<Params = undefined> {
|
|
|
31
31
|
setDevice(device: Device): void;
|
|
32
32
|
checkFirmwareRelease(): void;
|
|
33
33
|
checkDeviceSupportFeature(): void;
|
|
34
|
-
protected checkFeatureVersionLimit(checkCondition: () => boolean, getVersionRange: () => DeviceFirmwareRange
|
|
34
|
+
protected checkFeatureVersionLimit(checkCondition: () => boolean, getVersionRange: () => DeviceFirmwareRange, options?: {
|
|
35
|
+
strictCheckDeviceSupport?: boolean;
|
|
36
|
+
}): void;
|
|
35
37
|
checkSafetyLevelOnTestNet(): Promise<void>;
|
|
36
38
|
dispose(): void;
|
|
37
39
|
postPreviousAddressMessage: (data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMethod.d.ts","sourceRoot":"","sources":["../../src/api/BaseMethod.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseMethod.d.ts","sourceRoot":"","sources":["../../src/api/BaseMethod.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAe,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,WAAW,EAA4D,MAAM,WAAW,CAAC;AAMlG,8BAAsB,UAAU,CAAC,MAAM,GAAG,SAAS;IACjD,UAAU,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAOf,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,IAAI,EAAE,MAAM,CAAC;IAKb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE7B,SAAS,CAAC,EAAE,eAAe,CAAC;IAK5B,SAAS,EAAE,OAAO,CAAC;IAKnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAK7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAK5B,qBAAqB,UAAQ;IAK7B,aAAa,UAAS;IAKtB,wBAAwB,UAAQ;IAMhC,oBAAoB,UAAS;IAO7B,wBAAwB,UAAS;IAGjC,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;gBAEhC,OAAO,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE;IAYlD,QAAQ,CAAC,IAAI,IAAI,IAAI;IAErB,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAE5B,eAAe,IAAI,mBAAmB;IAItC,SAAS,CAAC,MAAM,EAAE,MAAM;IAKxB,oBAAoB;IAkBpB,yBAAyB;IAczB,SAAS,CAAC,wBAAwB,CAChC,cAAc,EAAE,MAAM,OAAO,EAC7B,eAAe,EAAE,MAAM,mBAAmB,EAC1C,OAAO,CAAC,EAAE;QACR,wBAAwB,CAAC,EAAE,OAAO,CAAC;KACpC;IAgCG,yBAAyB;IAiB/B,OAAO;IAGP,0BAA0B,SAAU;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,UAOrE;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllNetworkGetAddress.d.ts","sourceRoot":"","sources":["../../../src/api/allnetwork/AllNetworkGetAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,oBAAoB,EACpB,QAAQ,EACT,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"AllNetworkGetAddress.d.ts","sourceRoot":"","sources":["../../../src/api/allnetwork/AllNetworkGetAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,oBAAoB,EACpB,QAAQ,EACT,MAAM,sCAAsC,CAAC;AA4N9C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,oBAAoB,EAAE,uBAAuB,CAAC;CAC/C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU,CAC1D;IACE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,EAAE,CACJ;IACC,IAAI;IAkBJ,kBAAkB,CAAC,EACjB,OAAO,EACP,OAAO,GACR,EAAE;QACD,OAAO,EAAE,QAAQ,CAAC;QAClB,OAAO,EAAE,uBAAuB,CAAC;KAClC,GAAG,YAAY;IAoBV,UAAU,CACd,UAAU,EAAE,MAAM,OAAO,EACzB,MAAM,EAAE,GAAG,GAAG;QACZ,MAAM,EAAE,CAAC,GAAG,GAAG;YAAE,oBAAoB,EAAE,oBAAoB,CAAA;SAAE,CAAC,EAAE,CAAC;KAClE;IAyDG,GAAG;CA2DV"}
|
|
@@ -12,6 +12,14 @@ export default class KaspaGetAddress extends BaseMethod<HardwareKaspaGetAddress[
|
|
|
12
12
|
min: string;
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
+
getUseTweakVersionRange(): {
|
|
16
|
+
pro: {
|
|
17
|
+
min: string;
|
|
18
|
+
};
|
|
19
|
+
model_classic1s: {
|
|
20
|
+
min: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
15
23
|
run(): Promise<KaspaAddress | KaspaAddress[]>;
|
|
16
24
|
}
|
|
17
25
|
//# sourceMappingURL=KaspaGetAddress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaspaGetAddress.d.ts","sourceRoot":"","sources":["../../../src/api/kaspa/KaspaGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAyB,YAAY,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,uBAAuB,EAAE,CAAC;IAChF,SAAS,UAAS;IAElB,IAAI;
|
|
1
|
+
{"version":3,"file":"KaspaGetAddress.d.ts","sourceRoot":"","sources":["../../../src/api/kaspa/KaspaGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGpF,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAyB,YAAY,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,UAAU,CAAC,uBAAuB,EAAE,CAAC;IAChF,SAAS,UAAS;IAElB,IAAI;IAmCJ,eAAe;;;;;;;;IAWf,uBAAuB;;;;;;;;IAWjB,GAAG;CAkCV"}
|
|
@@ -13,6 +13,14 @@ export default class KaspaSignTransaction extends BaseMethod<KaspaSignTransactio
|
|
|
13
13
|
min: string;
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
+
getUseTweakVersionRange(): {
|
|
17
|
+
pro: {
|
|
18
|
+
min: string;
|
|
19
|
+
};
|
|
20
|
+
model_classic1s: {
|
|
21
|
+
min: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
16
24
|
processTxRequest(typedCall: TypedCall, res: TypedResponseMessage<'KaspaTxInputRequest'> | TypedResponseMessage<'KaspaSignedTx'>, index: number, signature: KaspaSignature[]): Promise<KaspaSignature[]>;
|
|
17
25
|
run(): Promise<KaspaSignature[]>;
|
|
18
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaspaSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/api/kaspa/KaspaSignTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAGL,0BAA0B,EAC1B,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU,CAAC,0BAA0B,CAAC;IACtF,SAAS,UAAS;IAElB,IAAI;
|
|
1
|
+
{"version":3,"file":"KaspaSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/api/kaspa/KaspaSignTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAGL,0BAA0B,EAC1B,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU,CAAC,0BAA0B,CAAC;IACtF,SAAS,UAAS;IAElB,IAAI;IAgEJ,eAAe;;;;;;;;IAWf,uBAAuB;;;;;;;;IAWjB,gBAAgB,CACpB,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,oBAAoB,CAAC,eAAe,CAAC,EACxF,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC,cAAc,EAAE,CAAC;IAsCtB,GAAG;CA+BV"}
|
package/dist/index.d.ts
CHANGED
|
@@ -660,6 +660,7 @@ type AllNetworkAddressParams = {
|
|
|
660
660
|
showOnOneKey?: boolean;
|
|
661
661
|
includePublicKey?: boolean;
|
|
662
662
|
group?: string;
|
|
663
|
+
useTweak?: boolean;
|
|
663
664
|
};
|
|
664
665
|
type AllNetworkAddressPayload = {
|
|
665
666
|
address: string;
|
|
@@ -1746,6 +1747,7 @@ type KaspaGetAddressParams = {
|
|
|
1746
1747
|
prefix?: string;
|
|
1747
1748
|
scheme?: string;
|
|
1748
1749
|
showOnOneKey?: boolean;
|
|
1750
|
+
useTweak?: boolean;
|
|
1749
1751
|
};
|
|
1750
1752
|
declare function kaspaGetAddress(connectId: string, deviceId: string, params: CommonParams & KaspaGetAddressParams): Response<KaspaAddress>;
|
|
1751
1753
|
declare function kaspaGetAddress(connectId: string, deviceId: string, params: CommonParams & {
|
|
@@ -1790,6 +1792,7 @@ type KaspaSignTransactionParams = {
|
|
|
1790
1792
|
subNetworkID?: string;
|
|
1791
1793
|
scheme?: string;
|
|
1792
1794
|
prefix?: string;
|
|
1795
|
+
useTweak?: boolean;
|
|
1793
1796
|
};
|
|
1794
1797
|
declare function kaspaSignTransaction(connectId: string, deviceId: string, params: CommonParams & KaspaSignTransactionParams): Response<KaspaSignature[]>;
|
|
1795
1798
|
|
package/dist/index.js
CHANGED
|
@@ -7203,6 +7203,13 @@ var nested$1 = {
|
|
|
7203
7203
|
options: {
|
|
7204
7204
|
"default": "schnorr"
|
|
7205
7205
|
}
|
|
7206
|
+
},
|
|
7207
|
+
use_tweak: {
|
|
7208
|
+
type: "bool",
|
|
7209
|
+
id: 5,
|
|
7210
|
+
options: {
|
|
7211
|
+
"default": true
|
|
7212
|
+
}
|
|
7206
7213
|
}
|
|
7207
7214
|
}
|
|
7208
7215
|
},
|
|
@@ -7250,6 +7257,13 @@ var nested$1 = {
|
|
|
7250
7257
|
options: {
|
|
7251
7258
|
"default": 1
|
|
7252
7259
|
}
|
|
7260
|
+
},
|
|
7261
|
+
use_tweak: {
|
|
7262
|
+
type: "bool",
|
|
7263
|
+
id: 6,
|
|
7264
|
+
options: {
|
|
7265
|
+
"default": true
|
|
7266
|
+
}
|
|
7253
7267
|
}
|
|
7254
7268
|
}
|
|
7255
7269
|
},
|
|
@@ -27040,7 +27054,7 @@ class BaseMethod {
|
|
|
27040
27054
|
device: this.device.toMessageObject(),
|
|
27041
27055
|
}));
|
|
27042
27056
|
}
|
|
27043
|
-
checkFeatureVersionLimit(checkCondition, getVersionRange) {
|
|
27057
|
+
checkFeatureVersionLimit(checkCondition, getVersionRange, options) {
|
|
27044
27058
|
var _a;
|
|
27045
27059
|
if (!checkCondition()) {
|
|
27046
27060
|
return;
|
|
@@ -27048,6 +27062,9 @@ class BaseMethod {
|
|
|
27048
27062
|
const firmwareVersion = (_a = getDeviceFirmwareVersion(this.device.features)) === null || _a === void 0 ? void 0 : _a.join('.');
|
|
27049
27063
|
const versionRange = getMethodVersionRange(this.device.features, type => getVersionRange()[type]);
|
|
27050
27064
|
if (!versionRange) {
|
|
27065
|
+
if (options === null || options === void 0 ? void 0 : options.strictCheckDeviceSupport) {
|
|
27066
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceNotSupportMethod, 'Device does not support this method');
|
|
27067
|
+
}
|
|
27051
27068
|
return;
|
|
27052
27069
|
}
|
|
27053
27070
|
if (semver__default["default"].valid(firmwareVersion) && semver__default["default"].lt(firmwareVersion, versionRange.min)) {
|
|
@@ -29733,12 +29750,13 @@ const networkConfigMap = {
|
|
|
29733
29750
|
kaspa: {
|
|
29734
29751
|
methodName: 'kaspaGetAddress',
|
|
29735
29752
|
getParams: (baseParams) => {
|
|
29736
|
-
const { path, prefix, showOnOneKey } = baseParams;
|
|
29753
|
+
const { path, prefix, showOnOneKey, useTweak } = baseParams;
|
|
29737
29754
|
return {
|
|
29738
29755
|
scheme: 'schnorr',
|
|
29739
29756
|
prefix,
|
|
29740
29757
|
path,
|
|
29741
29758
|
showOnOneKey,
|
|
29759
|
+
useTweak,
|
|
29742
29760
|
};
|
|
29743
29761
|
},
|
|
29744
29762
|
},
|
|
@@ -35563,6 +35581,7 @@ class KaspaGetAddress extends BaseMethod {
|
|
|
35563
35581
|
{ name: 'showOnOneKey', type: 'boolean' },
|
|
35564
35582
|
{ name: 'prefix', type: 'string' },
|
|
35565
35583
|
{ name: 'scheme', type: 'string' },
|
|
35584
|
+
{ name: 'useTweak', type: 'boolean' },
|
|
35566
35585
|
]);
|
|
35567
35586
|
const showOnOneKey = (_a = batch.showOnOneKey) !== null && _a !== void 0 ? _a : true;
|
|
35568
35587
|
this.params.push({
|
|
@@ -35570,6 +35589,7 @@ class KaspaGetAddress extends BaseMethod {
|
|
|
35570
35589
|
show_display: showOnOneKey,
|
|
35571
35590
|
prefix: batch.prefix,
|
|
35572
35591
|
scheme: batch.scheme,
|
|
35592
|
+
use_tweak: batch.useTweak,
|
|
35573
35593
|
});
|
|
35574
35594
|
});
|
|
35575
35595
|
}
|
|
@@ -35583,8 +35603,21 @@ class KaspaGetAddress extends BaseMethod {
|
|
|
35583
35603
|
},
|
|
35584
35604
|
};
|
|
35585
35605
|
}
|
|
35606
|
+
getUseTweakVersionRange() {
|
|
35607
|
+
return {
|
|
35608
|
+
pro: {
|
|
35609
|
+
min: '4.14.0',
|
|
35610
|
+
},
|
|
35611
|
+
model_classic1s: {
|
|
35612
|
+
min: '3.12.0',
|
|
35613
|
+
},
|
|
35614
|
+
};
|
|
35615
|
+
}
|
|
35586
35616
|
run() {
|
|
35587
35617
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35618
|
+
this.checkFeatureVersionLimit(() => this.params.some(param => param.use_tweak === false), () => this.getUseTweakVersionRange(), {
|
|
35619
|
+
strictCheckDeviceSupport: true,
|
|
35620
|
+
});
|
|
35588
35621
|
const responses = [];
|
|
35589
35622
|
for (let i = 0; i < this.params.length; i++) {
|
|
35590
35623
|
const param = this.params[i];
|
|
@@ -35928,6 +35961,7 @@ class KaspaSignTransaction extends BaseMethod {
|
|
|
35928
35961
|
{ name: 'lockTime', required: true },
|
|
35929
35962
|
{ name: 'sigOpCount', type: 'number' },
|
|
35930
35963
|
{ name: 'subNetworkID', type: 'string' },
|
|
35964
|
+
{ name: 'useTweak', type: 'boolean' },
|
|
35931
35965
|
]);
|
|
35932
35966
|
const inputs = payload.inputs.map(input => {
|
|
35933
35967
|
var _a;
|
|
@@ -35950,7 +35984,7 @@ class KaspaSignTransaction extends BaseMethod {
|
|
|
35950
35984
|
return Object.assign(Object.assign({}, output), { scriptVersion: (_a = output.scriptVersion) !== null && _a !== void 0 ? _a : 0 });
|
|
35951
35985
|
});
|
|
35952
35986
|
this.params = Object.assign(Object.assign({}, payload), { inputs,
|
|
35953
|
-
outputs, scheme: (_a = payload.scheme) !== null && _a !== void 0 ? _a : 'schnorr', prefix: (_b = payload.prefix) !== null && _b !== void 0 ? _b : 'kaspa', sigHashType: (_c = payload.sigHashType) !== null && _c !== void 0 ? _c : SignatureType.SIGHASH_ALL | SignatureType.SIGHASH_FORKID, sigOpCount: (_d = payload.sigOpCount) !== null && _d !== void 0 ? _d : 1, subNetworkID: (_e = payload.subNetworkID) !== null && _e !== void 0 ? _e : utils.bytesToHex(zeroSubnetworkID()) });
|
|
35987
|
+
outputs, scheme: (_a = payload.scheme) !== null && _a !== void 0 ? _a : 'schnorr', prefix: (_b = payload.prefix) !== null && _b !== void 0 ? _b : 'kaspa', sigHashType: (_c = payload.sigHashType) !== null && _c !== void 0 ? _c : SignatureType.SIGHASH_ALL | SignatureType.SIGHASH_FORKID, sigOpCount: (_d = payload.sigOpCount) !== null && _d !== void 0 ? _d : 1, subNetworkID: (_e = payload.subNetworkID) !== null && _e !== void 0 ? _e : utils.bytesToHex(zeroSubnetworkID()), useTweak: payload.useTweak });
|
|
35954
35988
|
}
|
|
35955
35989
|
getVersionRange() {
|
|
35956
35990
|
return {
|
|
@@ -35962,6 +35996,16 @@ class KaspaSignTransaction extends BaseMethod {
|
|
|
35962
35996
|
},
|
|
35963
35997
|
};
|
|
35964
35998
|
}
|
|
35999
|
+
getUseTweakVersionRange() {
|
|
36000
|
+
return {
|
|
36001
|
+
pro: {
|
|
36002
|
+
min: '4.14.0',
|
|
36003
|
+
},
|
|
36004
|
+
model_classic1s: {
|
|
36005
|
+
min: '3.12.0',
|
|
36006
|
+
},
|
|
36007
|
+
};
|
|
36008
|
+
}
|
|
35965
36009
|
processTxRequest(typedCall, res, index, signature) {
|
|
35966
36010
|
var _a;
|
|
35967
36011
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -35991,6 +36035,9 @@ class KaspaSignTransaction extends BaseMethod {
|
|
|
35991
36035
|
}
|
|
35992
36036
|
run() {
|
|
35993
36037
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36038
|
+
this.checkFeatureVersionLimit(() => this.params.useTweak === false, () => this.getUseTweakVersionRange(), {
|
|
36039
|
+
strictCheckDeviceSupport: true,
|
|
36040
|
+
});
|
|
35994
36041
|
const { raw: rawMessage } = serialize(this.params, 0);
|
|
35995
36042
|
const input = this.params.inputs[0];
|
|
35996
36043
|
const { device, params } = this;
|
|
@@ -36000,6 +36047,7 @@ class KaspaSignTransaction extends BaseMethod {
|
|
|
36000
36047
|
scheme: params.scheme,
|
|
36001
36048
|
prefix: params.prefix,
|
|
36002
36049
|
input_count: params.inputs.length,
|
|
36050
|
+
use_tweak: params.useTweak,
|
|
36003
36051
|
});
|
|
36004
36052
|
return this.processTxRequest(device.commands.typedCall.bind(device.commands), response, 0, []);
|
|
36005
36053
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allNetworkGetAddress.d.ts","sourceRoot":"","sources":["../../../src/types/api/allNetworkGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,MAAM,QAAQ,GAChB,KAAK,GAEL,KAAK,GACL,MAAM,GACN,MAAM,GACN,QAAQ,GACR,KAAK,GACL,KAAK,GAEL,KAAK,GACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,KAAK,GACL,QAAQ,GACR,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,KAAK,CAAC;AAEV,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,QAAQ,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"allNetworkGetAddress.d.ts","sourceRoot":"","sources":["../../../src/types/api/allNetworkGetAddress.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export type KaspaGetAddressParams = {
|
|
|
8
8
|
prefix?: string;
|
|
9
9
|
scheme?: string;
|
|
10
10
|
showOnOneKey?: boolean;
|
|
11
|
+
useTweak?: boolean;
|
|
11
12
|
};
|
|
12
13
|
export declare function kaspaGetAddress(connectId: string, deviceId: string, params: CommonParams & KaspaGetAddressParams): Response<KaspaAddress>;
|
|
13
14
|
export declare function kaspaGetAddress(connectId: string, deviceId: string, params: CommonParams & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaspaGetAddress.d.ts","sourceRoot":"","sources":["../../../src/types/api/kaspaGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,oBAAoB,CAAC;AAEzB,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"kaspaGetAddress.d.ts","sourceRoot":"","sources":["../../../src/types/api/kaspaGetAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,oBAAoB,CAAC;AAEzB,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG,qBAAqB,GAC3C,QAAQ,CAAC,YAAY,CAAC,CAAC;AAE1B,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG;IAAE,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAA;CAAE,GAC1D,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC"}
|
|
@@ -30,6 +30,7 @@ export type KaspaSignTransactionParams = {
|
|
|
30
30
|
subNetworkID?: string;
|
|
31
31
|
scheme?: string;
|
|
32
32
|
prefix?: string;
|
|
33
|
+
useTweak?: boolean;
|
|
33
34
|
};
|
|
34
35
|
export declare function kaspaSignTransaction(connectId: string, deviceId: string, params: CommonParams & KaspaSignTransactionParams): Response<KaspaSignature[]>;
|
|
35
36
|
//# sourceMappingURL=kaspaSignTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kaspaSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/types/api/kaspaSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"kaspaSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/types/api/kaspaSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,GAAG,0BAA0B,GAChD,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-shared": "^1.0.
|
|
29
|
-
"@onekeyfe/hd-transport": "^1.0.
|
|
28
|
+
"@onekeyfe/hd-shared": "^1.0.30",
|
|
29
|
+
"@onekeyfe/hd-transport": "^1.0.30",
|
|
30
30
|
"axios": "^0.27.2",
|
|
31
31
|
"bignumber.js": "^9.0.2",
|
|
32
32
|
"bytebuffer": "^5.0.1",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"@types/web-bluetooth": "^0.0.21",
|
|
47
47
|
"ripple-keypairs": "^1.1.4"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "e7d0b547c42856f3bf4801ede2cadb593e1cbf8e"
|
|
50
50
|
}
|
package/src/api/BaseMethod.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
createNeedUpgradeFirmwareHardwareError,
|
|
4
|
+
ERRORS,
|
|
5
|
+
HardwareErrorCode,
|
|
6
|
+
} from '@onekeyfe/hd-shared';
|
|
3
7
|
import { supportInputPinOnSoftware, supportModifyHomescreen } from '../utils/deviceFeaturesUtils';
|
|
4
8
|
import { createDeviceMessage } from '../events/device';
|
|
5
9
|
import { UI_REQUEST } from '../constants/ui-request';
|
|
@@ -152,7 +156,10 @@ export abstract class BaseMethod<Params = undefined> {
|
|
|
152
156
|
|
|
153
157
|
protected checkFeatureVersionLimit(
|
|
154
158
|
checkCondition: () => boolean,
|
|
155
|
-
getVersionRange: () => DeviceFirmwareRange
|
|
159
|
+
getVersionRange: () => DeviceFirmwareRange,
|
|
160
|
+
options?: {
|
|
161
|
+
strictCheckDeviceSupport?: boolean;
|
|
162
|
+
}
|
|
156
163
|
) {
|
|
157
164
|
if (!checkCondition()) {
|
|
158
165
|
return;
|
|
@@ -165,6 +172,12 @@ export abstract class BaseMethod<Params = undefined> {
|
|
|
165
172
|
);
|
|
166
173
|
|
|
167
174
|
if (!versionRange) {
|
|
175
|
+
if (options?.strictCheckDeviceSupport) {
|
|
176
|
+
throw ERRORS.TypedError(
|
|
177
|
+
HardwareErrorCode.DeviceNotSupportMethod,
|
|
178
|
+
'Device does not support this method'
|
|
179
|
+
);
|
|
180
|
+
}
|
|
168
181
|
// Equipment that does not need to be repaired
|
|
169
182
|
return;
|
|
170
183
|
}
|
|
@@ -179,12 +179,13 @@ const networkConfigMap: NetworkConfigMap = {
|
|
|
179
179
|
kaspa: {
|
|
180
180
|
methodName: 'kaspaGetAddress',
|
|
181
181
|
getParams: (baseParams: AllNetworkAddressParams) => {
|
|
182
|
-
const { path, prefix, showOnOneKey } = baseParams;
|
|
182
|
+
const { path, prefix, showOnOneKey, useTweak } = baseParams;
|
|
183
183
|
return {
|
|
184
184
|
scheme: 'schnorr',
|
|
185
185
|
prefix,
|
|
186
186
|
path,
|
|
187
187
|
showOnOneKey,
|
|
188
|
+
useTweak,
|
|
188
189
|
};
|
|
189
190
|
},
|
|
190
191
|
},
|
|
@@ -28,6 +28,7 @@ export default class KaspaGetAddress extends BaseMethod<HardwareKaspaGetAddress[
|
|
|
28
28
|
{ name: 'showOnOneKey', type: 'boolean' },
|
|
29
29
|
{ name: 'prefix', type: 'string' },
|
|
30
30
|
{ name: 'scheme', type: 'string' },
|
|
31
|
+
{ name: 'useTweak', type: 'boolean' },
|
|
31
32
|
]);
|
|
32
33
|
|
|
33
34
|
const showOnOneKey = batch.showOnOneKey ?? true;
|
|
@@ -37,6 +38,7 @@ export default class KaspaGetAddress extends BaseMethod<HardwareKaspaGetAddress[
|
|
|
37
38
|
show_display: showOnOneKey,
|
|
38
39
|
prefix: batch.prefix,
|
|
39
40
|
scheme: batch.scheme,
|
|
41
|
+
use_tweak: batch.useTweak,
|
|
40
42
|
});
|
|
41
43
|
});
|
|
42
44
|
}
|
|
@@ -52,12 +54,31 @@ export default class KaspaGetAddress extends BaseMethod<HardwareKaspaGetAddress[
|
|
|
52
54
|
};
|
|
53
55
|
}
|
|
54
56
|
|
|
57
|
+
getUseTweakVersionRange() {
|
|
58
|
+
return {
|
|
59
|
+
pro: {
|
|
60
|
+
min: '4.14.0',
|
|
61
|
+
},
|
|
62
|
+
model_classic1s: {
|
|
63
|
+
min: '3.12.0',
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
55
68
|
async run() {
|
|
69
|
+
this.checkFeatureVersionLimit(
|
|
70
|
+
// exists use_tweak is false check firmware version
|
|
71
|
+
() => this.params.some(param => param.use_tweak === false),
|
|
72
|
+
() => this.getUseTweakVersionRange(),
|
|
73
|
+
{
|
|
74
|
+
strictCheckDeviceSupport: true,
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
|
|
56
78
|
const responses: KaspaAddress[] = [];
|
|
57
79
|
|
|
58
80
|
for (let i = 0; i < this.params.length; i++) {
|
|
59
81
|
const param = this.params[i];
|
|
60
|
-
|
|
61
82
|
const res = await this.device.commands.typedCall('KaspaGetAddress', 'KaspaAddress', {
|
|
62
83
|
...param,
|
|
63
84
|
});
|
|
@@ -32,6 +32,7 @@ export default class KaspaSignTransaction extends BaseMethod<KaspaSignTransactio
|
|
|
32
32
|
{ name: 'lockTime', required: true },
|
|
33
33
|
{ name: 'sigOpCount', type: 'number' },
|
|
34
34
|
{ name: 'subNetworkID', type: 'string' },
|
|
35
|
+
{ name: 'useTweak', type: 'boolean' },
|
|
35
36
|
]);
|
|
36
37
|
|
|
37
38
|
// if(!payload.inputs.length) throw
|
|
@@ -76,6 +77,7 @@ export default class KaspaSignTransaction extends BaseMethod<KaspaSignTransactio
|
|
|
76
77
|
sigHashType: payload.sigHashType ?? SignatureType.SIGHASH_ALL | SignatureType.SIGHASH_FORKID,
|
|
77
78
|
sigOpCount: payload.sigOpCount ?? 1,
|
|
78
79
|
subNetworkID: payload.subNetworkID ?? bytesToHex(zeroSubnetworkID()),
|
|
80
|
+
useTweak: payload.useTweak,
|
|
79
81
|
};
|
|
80
82
|
}
|
|
81
83
|
|
|
@@ -90,6 +92,17 @@ export default class KaspaSignTransaction extends BaseMethod<KaspaSignTransactio
|
|
|
90
92
|
};
|
|
91
93
|
}
|
|
92
94
|
|
|
95
|
+
getUseTweakVersionRange() {
|
|
96
|
+
return {
|
|
97
|
+
pro: {
|
|
98
|
+
min: '4.14.0',
|
|
99
|
+
},
|
|
100
|
+
model_classic1s: {
|
|
101
|
+
min: '3.12.0',
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
93
106
|
async processTxRequest(
|
|
94
107
|
typedCall: TypedCall,
|
|
95
108
|
res: TypedResponseMessage<'KaspaTxInputRequest'> | TypedResponseMessage<'KaspaSignedTx'>,
|
|
@@ -134,6 +147,15 @@ export default class KaspaSignTransaction extends BaseMethod<KaspaSignTransactio
|
|
|
134
147
|
}
|
|
135
148
|
|
|
136
149
|
async run() {
|
|
150
|
+
this.checkFeatureVersionLimit(
|
|
151
|
+
// exists use_tweak is false check firmware version
|
|
152
|
+
() => this.params.useTweak === false,
|
|
153
|
+
() => this.getUseTweakVersionRange(),
|
|
154
|
+
{
|
|
155
|
+
strictCheckDeviceSupport: true,
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
|
|
137
159
|
const { raw: rawMessage } = serialize(this.params, 0);
|
|
138
160
|
const input = this.params.inputs[0];
|
|
139
161
|
|
|
@@ -149,6 +171,7 @@ export default class KaspaSignTransaction extends BaseMethod<KaspaSignTransactio
|
|
|
149
171
|
scheme: params.scheme,
|
|
150
172
|
prefix: params.prefix,
|
|
151
173
|
input_count: params.inputs.length,
|
|
174
|
+
use_tweak: params.useTweak,
|
|
152
175
|
}
|
|
153
176
|
);
|
|
154
177
|
|
|
@@ -5888,6 +5888,13 @@
|
|
|
5888
5888
|
"options": {
|
|
5889
5889
|
"default": "schnorr"
|
|
5890
5890
|
}
|
|
5891
|
+
},
|
|
5892
|
+
"use_tweak": {
|
|
5893
|
+
"type": "bool",
|
|
5894
|
+
"id": 5,
|
|
5895
|
+
"options": {
|
|
5896
|
+
"default": true
|
|
5897
|
+
}
|
|
5891
5898
|
}
|
|
5892
5899
|
}
|
|
5893
5900
|
},
|
|
@@ -5935,6 +5942,13 @@
|
|
|
5935
5942
|
"options": {
|
|
5936
5943
|
"default": 1
|
|
5937
5944
|
}
|
|
5945
|
+
},
|
|
5946
|
+
"use_tweak": {
|
|
5947
|
+
"type": "bool",
|
|
5948
|
+
"id": 6,
|
|
5949
|
+
"options": {
|
|
5950
|
+
"default": true
|
|
5951
|
+
}
|
|
5938
5952
|
}
|
|
5939
5953
|
}
|
|
5940
5954
|
},
|