@onekeyfe/hd-core 1.0.20 → 1.0.21
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/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/benfen/BenfenGetAddress.d.ts.map +1 -1
- package/dist/api/cardano/CardanoSignTransaction.d.ts +4 -0
- package/dist/api/cardano/CardanoSignTransaction.d.ts.map +1 -1
- package/dist/api/cardano/helper/auxiliaryData.d.ts.map +1 -1
- package/dist/api/cardano/helper/certificate.d.ts.map +1 -1
- package/dist/index.d.ts +21 -11
- package/dist/index.js +224 -49
- package/dist/types/api/cardano.d.ts +20 -9
- package/dist/types/api/cardano.d.ts.map +1 -1
- package/dist/utils/patch.d.ts +1 -1
- package/dist/utils/patch.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/FirmwareUpdateV2.ts +10 -0
- package/src/api/benfen/BenfenGetAddress.ts +6 -2
- package/src/api/cardano/CardanoSignTransaction.ts +87 -2
- package/src/api/cardano/helper/auxiliaryData.ts +56 -31
- package/src/api/cardano/helper/certificate.ts +47 -0
- package/src/data/messages/messages.json +68 -15
- package/src/types/api/cardano.ts +21 -9
package/dist/index.js
CHANGED
|
@@ -1467,7 +1467,6 @@ var nested$1 = {
|
|
|
1467
1467
|
BenfenAddress: {
|
|
1468
1468
|
fields: {
|
|
1469
1469
|
address: {
|
|
1470
|
-
rule: "required",
|
|
1471
1470
|
type: "string",
|
|
1472
1471
|
id: 1
|
|
1473
1472
|
}
|
|
@@ -3139,7 +3138,18 @@ var nested$1 = {
|
|
|
3139
3138
|
STAKE_REGISTRATION: 0,
|
|
3140
3139
|
STAKE_DEREGISTRATION: 1,
|
|
3141
3140
|
STAKE_DELEGATION: 2,
|
|
3142
|
-
STAKE_POOL_REGISTRATION: 3
|
|
3141
|
+
STAKE_POOL_REGISTRATION: 3,
|
|
3142
|
+
STAKE_REGISTRATION_CONWAY: 7,
|
|
3143
|
+
STAKE_DEREGISTRATION_CONWAY: 8,
|
|
3144
|
+
VOTE_DELEGATION: 9
|
|
3145
|
+
}
|
|
3146
|
+
},
|
|
3147
|
+
CardanoDRepType: {
|
|
3148
|
+
values: {
|
|
3149
|
+
KEY_HASH: 0,
|
|
3150
|
+
SCRIPT_HASH: 1,
|
|
3151
|
+
ABSTAIN: 2,
|
|
3152
|
+
NO_CONFIDENCE: 3
|
|
3143
3153
|
}
|
|
3144
3154
|
},
|
|
3145
3155
|
CardanoPoolRelayType: {
|
|
@@ -3152,10 +3162,10 @@ var nested$1 = {
|
|
|
3152
3162
|
CardanoTxAuxiliaryDataSupplementType: {
|
|
3153
3163
|
values: {
|
|
3154
3164
|
NONE: 0,
|
|
3155
|
-
|
|
3165
|
+
CVOTE_REGISTRATION_SIGNATURE: 1
|
|
3156
3166
|
}
|
|
3157
3167
|
},
|
|
3158
|
-
|
|
3168
|
+
CardanoCVoteRegistrationFormat: {
|
|
3159
3169
|
values: {
|
|
3160
3170
|
CIP15: 0,
|
|
3161
3171
|
CIP36: 1
|
|
@@ -3329,6 +3339,10 @@ var nested$1 = {
|
|
|
3329
3339
|
rule: "required",
|
|
3330
3340
|
type: "CardanoDerivationType",
|
|
3331
3341
|
id: 6
|
|
3342
|
+
},
|
|
3343
|
+
chunkify: {
|
|
3344
|
+
type: "bool",
|
|
3345
|
+
id: 7
|
|
3332
3346
|
}
|
|
3333
3347
|
}
|
|
3334
3348
|
},
|
|
@@ -3484,6 +3498,17 @@ var nested$1 = {
|
|
|
3484
3498
|
options: {
|
|
3485
3499
|
"default": 0
|
|
3486
3500
|
}
|
|
3501
|
+
},
|
|
3502
|
+
chunkify: {
|
|
3503
|
+
type: "bool",
|
|
3504
|
+
id: 22
|
|
3505
|
+
},
|
|
3506
|
+
tag_cbor_sets: {
|
|
3507
|
+
type: "bool",
|
|
3508
|
+
id: 23,
|
|
3509
|
+
options: {
|
|
3510
|
+
"default": false
|
|
3511
|
+
}
|
|
3487
3512
|
}
|
|
3488
3513
|
}
|
|
3489
3514
|
},
|
|
@@ -3705,6 +3730,23 @@ var nested$1 = {
|
|
|
3705
3730
|
}
|
|
3706
3731
|
}
|
|
3707
3732
|
},
|
|
3733
|
+
CardanoDRep: {
|
|
3734
|
+
fields: {
|
|
3735
|
+
type: {
|
|
3736
|
+
rule: "required",
|
|
3737
|
+
type: "CardanoDRepType",
|
|
3738
|
+
id: 1
|
|
3739
|
+
},
|
|
3740
|
+
key_hash: {
|
|
3741
|
+
type: "bytes",
|
|
3742
|
+
id: 2
|
|
3743
|
+
},
|
|
3744
|
+
script_hash: {
|
|
3745
|
+
type: "bytes",
|
|
3746
|
+
id: 3
|
|
3747
|
+
}
|
|
3748
|
+
}
|
|
3749
|
+
},
|
|
3708
3750
|
CardanoTxCertificate: {
|
|
3709
3751
|
fields: {
|
|
3710
3752
|
type: {
|
|
@@ -3735,6 +3777,14 @@ var nested$1 = {
|
|
|
3735
3777
|
key_hash: {
|
|
3736
3778
|
type: "bytes",
|
|
3737
3779
|
id: 6
|
|
3780
|
+
},
|
|
3781
|
+
deposit: {
|
|
3782
|
+
type: "uint64",
|
|
3783
|
+
id: 7
|
|
3784
|
+
},
|
|
3785
|
+
drep: {
|
|
3786
|
+
type: "CardanoDRep",
|
|
3787
|
+
id: 8
|
|
3738
3788
|
}
|
|
3739
3789
|
}
|
|
3740
3790
|
},
|
|
@@ -3763,9 +3813,9 @@ var nested$1 = {
|
|
|
3763
3813
|
}
|
|
3764
3814
|
}
|
|
3765
3815
|
},
|
|
3766
|
-
|
|
3816
|
+
CardanoCVoteRegistrationDelegation: {
|
|
3767
3817
|
fields: {
|
|
3768
|
-
|
|
3818
|
+
vote_public_key: {
|
|
3769
3819
|
rule: "required",
|
|
3770
3820
|
type: "bytes",
|
|
3771
3821
|
id: 1
|
|
@@ -3777,9 +3827,9 @@ var nested$1 = {
|
|
|
3777
3827
|
}
|
|
3778
3828
|
}
|
|
3779
3829
|
},
|
|
3780
|
-
|
|
3830
|
+
CardanoCVoteRegistrationParametersType: {
|
|
3781
3831
|
fields: {
|
|
3782
|
-
|
|
3832
|
+
vote_public_key: {
|
|
3783
3833
|
type: "bytes",
|
|
3784
3834
|
id: 1
|
|
3785
3835
|
},
|
|
@@ -3791,8 +3841,7 @@ var nested$1 = {
|
|
|
3791
3841
|
packed: false
|
|
3792
3842
|
}
|
|
3793
3843
|
},
|
|
3794
|
-
|
|
3795
|
-
rule: "required",
|
|
3844
|
+
payment_address_parameters: {
|
|
3796
3845
|
type: "CardanoAddressParametersType",
|
|
3797
3846
|
id: 3
|
|
3798
3847
|
},
|
|
@@ -3802,7 +3851,7 @@ var nested$1 = {
|
|
|
3802
3851
|
id: 4
|
|
3803
3852
|
},
|
|
3804
3853
|
format: {
|
|
3805
|
-
type: "
|
|
3854
|
+
type: "CardanoCVoteRegistrationFormat",
|
|
3806
3855
|
id: 5,
|
|
3807
3856
|
options: {
|
|
3808
3857
|
"default": "CIP15"
|
|
@@ -3810,19 +3859,23 @@ var nested$1 = {
|
|
|
3810
3859
|
},
|
|
3811
3860
|
delegations: {
|
|
3812
3861
|
rule: "repeated",
|
|
3813
|
-
type: "
|
|
3862
|
+
type: "CardanoCVoteRegistrationDelegation",
|
|
3814
3863
|
id: 6
|
|
3815
3864
|
},
|
|
3816
3865
|
voting_purpose: {
|
|
3817
3866
|
type: "uint64",
|
|
3818
3867
|
id: 7
|
|
3868
|
+
},
|
|
3869
|
+
payment_address: {
|
|
3870
|
+
type: "string",
|
|
3871
|
+
id: 8
|
|
3819
3872
|
}
|
|
3820
3873
|
}
|
|
3821
3874
|
},
|
|
3822
3875
|
CardanoTxAuxiliaryData: {
|
|
3823
3876
|
fields: {
|
|
3824
|
-
|
|
3825
|
-
type: "
|
|
3877
|
+
cvote_registration_parameters: {
|
|
3878
|
+
type: "CardanoCVoteRegistrationParametersType",
|
|
3826
3879
|
id: 1
|
|
3827
3880
|
},
|
|
3828
3881
|
hash: {
|
|
@@ -3899,7 +3952,7 @@ var nested$1 = {
|
|
|
3899
3952
|
type: "bytes",
|
|
3900
3953
|
id: 2
|
|
3901
3954
|
},
|
|
3902
|
-
|
|
3955
|
+
cvote_registration_signature: {
|
|
3903
3956
|
type: "bytes",
|
|
3904
3957
|
id: 3
|
|
3905
3958
|
}
|
|
@@ -28013,19 +28066,29 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
28013
28066
|
}
|
|
28014
28067
|
}
|
|
28015
28068
|
checkDeviceToBootloader(connectId) {
|
|
28069
|
+
var _a, _b;
|
|
28016
28070
|
this.checkPromise = hdShared.createDeferred();
|
|
28017
28071
|
const env = DataManager.getSettings('env');
|
|
28018
28072
|
const isBleReconnect = connectId && DataManager.isBleConnect(env);
|
|
28019
28073
|
Log$3.log('FirmwareUpdateV2 [checkDeviceToBootloader] isBleReconnect: ', isBleReconnect);
|
|
28074
|
+
let isFirstCheck = true;
|
|
28075
|
+
const isTouchOrProDevice = getDeviceType((_a = this === null || this === void 0 ? void 0 : this.device) === null || _a === void 0 ? void 0 : _a.features) === 'touch' ||
|
|
28076
|
+
getDeviceType((_b = this === null || this === void 0 ? void 0 : this.device) === null || _b === void 0 ? void 0 : _b.features) === 'pro';
|
|
28020
28077
|
const intervalTimer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
28021
|
-
var
|
|
28078
|
+
var _c, _d, _e, _f, _g, _h, _j, _k;
|
|
28079
|
+
Log$3.log('FirmwareUpdateV2 [checkDeviceToBootloader] isFirstCheck: ', isFirstCheck);
|
|
28080
|
+
if (isTouchOrProDevice && isFirstCheck) {
|
|
28081
|
+
isFirstCheck = false;
|
|
28082
|
+
Log$3.log('FirmwareUpdateV2 [checkDeviceToBootloader] wait 3000ms');
|
|
28083
|
+
yield wait(3000);
|
|
28084
|
+
}
|
|
28022
28085
|
if (isBleReconnect) {
|
|
28023
28086
|
try {
|
|
28024
|
-
yield ((
|
|
28087
|
+
yield ((_c = this.device.deviceConnector) === null || _c === void 0 ? void 0 : _c.acquire(this.device.originalDescriptor.id, null, true));
|
|
28025
28088
|
yield this.device.initialize();
|
|
28026
|
-
if ((
|
|
28089
|
+
if ((_d = this.device.features) === null || _d === void 0 ? void 0 : _d.bootloader_mode) {
|
|
28027
28090
|
clearInterval(intervalTimer);
|
|
28028
|
-
(
|
|
28091
|
+
(_e = this.checkPromise) === null || _e === void 0 ? void 0 : _e.resolve(true);
|
|
28029
28092
|
}
|
|
28030
28093
|
}
|
|
28031
28094
|
catch (e) {
|
|
@@ -28033,14 +28096,14 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
28033
28096
|
}
|
|
28034
28097
|
}
|
|
28035
28098
|
else {
|
|
28036
|
-
const deviceDiff = yield ((
|
|
28037
|
-
const devicesDescriptor = (
|
|
28099
|
+
const deviceDiff = yield ((_f = this.device.deviceConnector) === null || _f === void 0 ? void 0 : _f.enumerate());
|
|
28100
|
+
const devicesDescriptor = (_g = deviceDiff === null || deviceDiff === void 0 ? void 0 : deviceDiff.descriptors) !== null && _g !== void 0 ? _g : [];
|
|
28038
28101
|
const { deviceList } = yield DevicePool.getDevices(devicesDescriptor, connectId);
|
|
28039
|
-
if (deviceList.length === 1 && ((
|
|
28102
|
+
if (deviceList.length === 1 && ((_j = (_h = deviceList[0]) === null || _h === void 0 ? void 0 : _h.features) === null || _j === void 0 ? void 0 : _j.bootloader_mode)) {
|
|
28040
28103
|
this.device.updateFromCache(deviceList[0]);
|
|
28041
28104
|
this.device.commands.disposed = false;
|
|
28042
28105
|
clearInterval(intervalTimer);
|
|
28043
|
-
(
|
|
28106
|
+
(_k = this.checkPromise) === null || _k === void 0 ? void 0 : _k.resolve(true);
|
|
28044
28107
|
}
|
|
28045
28108
|
}
|
|
28046
28109
|
}), isBleReconnect ? 3000 : 2000);
|
|
@@ -33225,6 +33288,27 @@ const transformPoolParameters = (poolParameters) => {
|
|
|
33225
33288
|
})),
|
|
33226
33289
|
};
|
|
33227
33290
|
};
|
|
33291
|
+
const transformDRep = (dRep) => {
|
|
33292
|
+
if (!dRep) {
|
|
33293
|
+
return undefined;
|
|
33294
|
+
}
|
|
33295
|
+
validateParams(dRep, [
|
|
33296
|
+
{ name: 'type', type: 'number', required: true },
|
|
33297
|
+
{ name: 'keyHash', type: 'string' },
|
|
33298
|
+
{ name: 'scriptHash', type: 'string' },
|
|
33299
|
+
]);
|
|
33300
|
+
if (dRep.type === hdTransport.Messages.CardanoDRepType.KEY_HASH && !dRep.keyHash) {
|
|
33301
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'key_hash must be supplied for key_hash type');
|
|
33302
|
+
}
|
|
33303
|
+
if (dRep.type === hdTransport.Messages.CardanoDRepType.SCRIPT_HASH && !dRep.scriptHash) {
|
|
33304
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'script_hash must be supplied for script_hash type');
|
|
33305
|
+
}
|
|
33306
|
+
return {
|
|
33307
|
+
type: dRep.type,
|
|
33308
|
+
key_hash: dRep.keyHash,
|
|
33309
|
+
script_hash: dRep.scriptHash,
|
|
33310
|
+
};
|
|
33311
|
+
};
|
|
33228
33312
|
const transformCertificate = (certificate) => {
|
|
33229
33313
|
const paramsToValidate = [
|
|
33230
33314
|
{ name: 'type', type: 'number', required: true },
|
|
@@ -33239,8 +33323,16 @@ const transformCertificate = (certificate) => {
|
|
|
33239
33323
|
if (certificate.type === hdTransport.Messages.CardanoCertificateType.STAKE_POOL_REGISTRATION) {
|
|
33240
33324
|
paramsToValidate.push({ name: 'poolParameters', type: 'object', required: true });
|
|
33241
33325
|
}
|
|
33326
|
+
if (certificate.type === hdTransport.Messages.CardanoCertificateType.STAKE_REGISTRATION_CONWAY ||
|
|
33327
|
+
certificate.type === hdTransport.Messages.CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY) {
|
|
33328
|
+
paramsToValidate.push({ name: 'deposit', required: true });
|
|
33329
|
+
}
|
|
33330
|
+
if (certificate.type === hdTransport.Messages.CardanoCertificateType.VOTE_DELEGATION) {
|
|
33331
|
+
paramsToValidate.push({ name: 'dRep', type: 'object', required: true });
|
|
33332
|
+
}
|
|
33242
33333
|
validateParams(certificate, paramsToValidate);
|
|
33243
33334
|
const { poolParameters, poolOwners, poolRelays } = transformPoolParameters(certificate.poolParameters);
|
|
33335
|
+
const dRep = transformDRep(certificate.dRep);
|
|
33244
33336
|
return {
|
|
33245
33337
|
certificate: {
|
|
33246
33338
|
type: certificate.type,
|
|
@@ -33249,6 +33341,8 @@ const transformCertificate = (certificate) => {
|
|
|
33249
33341
|
key_hash: certificate.keyHash,
|
|
33250
33342
|
pool: certificate.pool,
|
|
33251
33343
|
pool_parameters: poolParameters,
|
|
33344
|
+
deposit: certificate.deposit,
|
|
33345
|
+
drep: dRep,
|
|
33252
33346
|
},
|
|
33253
33347
|
poolOwners,
|
|
33254
33348
|
poolRelays,
|
|
@@ -33257,37 +33351,56 @@ const transformCertificate = (certificate) => {
|
|
|
33257
33351
|
|
|
33258
33352
|
const MAX_DELEGATION_COUNT = 32;
|
|
33259
33353
|
const transformDelegation = (delegation) => {
|
|
33354
|
+
if (delegation.votingPublicKey) {
|
|
33355
|
+
console.warn('Please use votePublicKey instead of votingPublicKey.');
|
|
33356
|
+
delegation.votePublicKey = delegation.votingPublicKey;
|
|
33357
|
+
}
|
|
33260
33358
|
validateParams(delegation, [
|
|
33261
33359
|
{ name: 'votingPublicKey', type: 'string', required: true },
|
|
33262
33360
|
{ name: 'weight', type: 'uint', required: true },
|
|
33263
33361
|
]);
|
|
33264
33362
|
return {
|
|
33265
|
-
|
|
33363
|
+
vote_public_key: delegation.votePublicKey,
|
|
33266
33364
|
weight: delegation.weight,
|
|
33267
33365
|
};
|
|
33268
33366
|
};
|
|
33269
|
-
const
|
|
33270
|
-
|
|
33271
|
-
|
|
33367
|
+
const transformCvoteRegistrationParameters = (cVoteRegistrationParameters) => {
|
|
33368
|
+
var _a;
|
|
33369
|
+
if (cVoteRegistrationParameters.votingPublicKey) {
|
|
33370
|
+
console.warn('Please use votePublicKey instead of votingPublicKey.');
|
|
33371
|
+
cVoteRegistrationParameters.votePublicKey = cVoteRegistrationParameters.votingPublicKey;
|
|
33372
|
+
}
|
|
33373
|
+
if (cVoteRegistrationParameters.rewardAddressParameters) {
|
|
33374
|
+
console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.');
|
|
33375
|
+
cVoteRegistrationParameters.paymentAddressParameters =
|
|
33376
|
+
cVoteRegistrationParameters.rewardAddressParameters;
|
|
33377
|
+
}
|
|
33378
|
+
validateParams(cVoteRegistrationParameters, [
|
|
33379
|
+
{ name: 'votePublicKey', type: 'string' },
|
|
33272
33380
|
{ name: 'stakingPath', required: true },
|
|
33273
33381
|
{ name: 'nonce', type: 'uint', required: true },
|
|
33274
33382
|
{ name: 'format', type: 'number' },
|
|
33275
33383
|
{ name: 'delegations', type: 'array', allowEmpty: true },
|
|
33276
33384
|
{ name: 'votingPurpose', type: 'uint' },
|
|
33385
|
+
{ name: 'paymentAddress', type: 'string' },
|
|
33277
33386
|
]);
|
|
33278
|
-
|
|
33279
|
-
|
|
33387
|
+
const { paymentAddressParameters } = cVoteRegistrationParameters;
|
|
33388
|
+
validateAddressParameters(paymentAddressParameters);
|
|
33389
|
+
const { delegations } = cVoteRegistrationParameters;
|
|
33280
33390
|
if (delegations && delegations.length > MAX_DELEGATION_COUNT) {
|
|
33281
33391
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, `At most ${MAX_DELEGATION_COUNT} delegations are allowed in a governance registration`);
|
|
33282
33392
|
}
|
|
33283
33393
|
return {
|
|
33284
|
-
|
|
33285
|
-
staking_path: validatePath(
|
|
33286
|
-
|
|
33287
|
-
|
|
33288
|
-
|
|
33289
|
-
|
|
33290
|
-
|
|
33394
|
+
vote_public_key: cVoteRegistrationParameters.votePublicKey,
|
|
33395
|
+
staking_path: validatePath(cVoteRegistrationParameters.stakingPath, 3),
|
|
33396
|
+
payment_address_parameters: paymentAddressParameters
|
|
33397
|
+
? addressParametersToProto(paymentAddressParameters)
|
|
33398
|
+
: undefined,
|
|
33399
|
+
nonce: cVoteRegistrationParameters.nonce,
|
|
33400
|
+
format: cVoteRegistrationParameters.format,
|
|
33401
|
+
delegations: (_a = delegations === null || delegations === void 0 ? void 0 : delegations.map(transformDelegation)) !== null && _a !== void 0 ? _a : [],
|
|
33402
|
+
voting_purpose: cVoteRegistrationParameters.votingPurpose,
|
|
33403
|
+
payment_address: cVoteRegistrationParameters.paymentAddress,
|
|
33291
33404
|
};
|
|
33292
33405
|
};
|
|
33293
33406
|
const transformAuxiliaryData = (auxiliaryData) => {
|
|
@@ -33297,21 +33410,21 @@ const transformAuxiliaryData = (auxiliaryData) => {
|
|
|
33297
33410
|
type: 'string',
|
|
33298
33411
|
},
|
|
33299
33412
|
]);
|
|
33300
|
-
let
|
|
33301
|
-
if (auxiliaryData.
|
|
33302
|
-
|
|
33413
|
+
let cVoteRegistrationParameters;
|
|
33414
|
+
if (auxiliaryData.cVoteRegistrationParameters) {
|
|
33415
|
+
cVoteRegistrationParameters = transformCvoteRegistrationParameters(auxiliaryData.cVoteRegistrationParameters);
|
|
33303
33416
|
}
|
|
33304
33417
|
return {
|
|
33305
33418
|
hash: auxiliaryData.hash,
|
|
33306
|
-
|
|
33419
|
+
cvote_registration_parameters: cVoteRegistrationParameters,
|
|
33307
33420
|
};
|
|
33308
33421
|
};
|
|
33309
33422
|
const modifyAuxiliaryDataForBackwardsCompatibility = (auxiliary_data) => {
|
|
33310
|
-
const {
|
|
33311
|
-
if (
|
|
33312
|
-
|
|
33313
|
-
modifyAddressParametersForBackwardsCompatibility(
|
|
33314
|
-
return Object.assign(Object.assign({}, auxiliary_data), {
|
|
33423
|
+
const { cvote_registration_parameters } = auxiliary_data;
|
|
33424
|
+
if (cvote_registration_parameters === null || cvote_registration_parameters === void 0 ? void 0 : cvote_registration_parameters.payment_address_parameters) {
|
|
33425
|
+
cvote_registration_parameters.payment_address_parameters =
|
|
33426
|
+
modifyAddressParametersForBackwardsCompatibility(cvote_registration_parameters.payment_address_parameters);
|
|
33427
|
+
return Object.assign(Object.assign({}, auxiliary_data), { cvote_registration_parameters });
|
|
33315
33428
|
}
|
|
33316
33429
|
return auxiliary_data;
|
|
33317
33430
|
};
|
|
@@ -33360,6 +33473,55 @@ const gatherWitnessPaths = (inputsWithPath, certificatesWithPoolOwnersAndRelays,
|
|
|
33360
33473
|
};
|
|
33361
33474
|
|
|
33362
33475
|
class CardanoSignTransaction extends BaseMethod {
|
|
33476
|
+
constructor() {
|
|
33477
|
+
super(...arguments);
|
|
33478
|
+
this.hasConway = () => {
|
|
33479
|
+
var _a, _b;
|
|
33480
|
+
const payload = this.payload;
|
|
33481
|
+
if (payload.tagCborSets === true) {
|
|
33482
|
+
return true;
|
|
33483
|
+
}
|
|
33484
|
+
if (((_a = payload.auxiliaryData) === null || _a === void 0 ? void 0 : _a.cVoteRegistrationParameters) != null) {
|
|
33485
|
+
return true;
|
|
33486
|
+
}
|
|
33487
|
+
for (const certificate of (_b = payload.certificates) !== null && _b !== void 0 ? _b : []) {
|
|
33488
|
+
if (certificate.dRep != null) {
|
|
33489
|
+
return true;
|
|
33490
|
+
}
|
|
33491
|
+
if (certificate.deposit != null) {
|
|
33492
|
+
return true;
|
|
33493
|
+
}
|
|
33494
|
+
if (certificate.type === hdTransport.Messages.CardanoCertificateType.STAKE_REGISTRATION_CONWAY ||
|
|
33495
|
+
certificate.type === hdTransport.Messages.CardanoCertificateType.STAKE_DEREGISTRATION_CONWAY ||
|
|
33496
|
+
certificate.type === hdTransport.Messages.CardanoCertificateType.VOTE_DELEGATION) {
|
|
33497
|
+
return true;
|
|
33498
|
+
}
|
|
33499
|
+
}
|
|
33500
|
+
return false;
|
|
33501
|
+
};
|
|
33502
|
+
this.supportConwayVersionRange = () => ({
|
|
33503
|
+
pro: {
|
|
33504
|
+
min: '4.12.0',
|
|
33505
|
+
},
|
|
33506
|
+
touch: {
|
|
33507
|
+
min: '4.10.0',
|
|
33508
|
+
},
|
|
33509
|
+
});
|
|
33510
|
+
this.checkSupportConway = () => {
|
|
33511
|
+
var _a;
|
|
33512
|
+
if (!this.hasConway()) {
|
|
33513
|
+
return;
|
|
33514
|
+
}
|
|
33515
|
+
const firmwareVersion = (_a = getDeviceFirmwareVersion(this.device.features)) === null || _a === void 0 ? void 0 : _a.join('.');
|
|
33516
|
+
const versionRange = getMethodVersionRange(this.device.features, type => this.supportConwayVersionRange()[type]);
|
|
33517
|
+
if (!versionRange) {
|
|
33518
|
+
return;
|
|
33519
|
+
}
|
|
33520
|
+
if (!semver__default["default"].valid(firmwareVersion) || semver__default["default"].lt(firmwareVersion, versionRange.min)) {
|
|
33521
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodNeedUpgradeFirmware, `Device firmware version is too low, please update to ${versionRange.min}`, { current: firmwareVersion, require: versionRange.min });
|
|
33522
|
+
}
|
|
33523
|
+
};
|
|
33524
|
+
}
|
|
33363
33525
|
getVersionRange() {
|
|
33364
33526
|
return {
|
|
33365
33527
|
model_mini: {
|
|
@@ -33376,6 +33538,11 @@ class CardanoSignTransaction extends BaseMethod {
|
|
|
33376
33538
|
this.notAllowDeviceMode = [...this.notAllowDeviceMode, UI_REQUEST.INITIALIZE];
|
|
33377
33539
|
this.hasBundle = !!((_a = this.payload) === null || _a === void 0 ? void 0 : _a.bundle);
|
|
33378
33540
|
const { payload } = this;
|
|
33541
|
+
if (payload.auxiliaryData && payload.auxiliaryData.governanceRegistrationParameters) {
|
|
33542
|
+
console.warn('Please use cVoteRegistrationParameters instead of governanceRegistrationParameters.');
|
|
33543
|
+
payload.auxiliaryData.cVoteRegistrationParameters =
|
|
33544
|
+
payload.auxiliaryData.governanceRegistrationParameters;
|
|
33545
|
+
}
|
|
33379
33546
|
validateParams(payload, [
|
|
33380
33547
|
{ name: 'signingMode', type: 'number', required: true },
|
|
33381
33548
|
{ name: 'inputs', type: 'array', required: true },
|
|
@@ -33396,6 +33563,8 @@ class CardanoSignTransaction extends BaseMethod {
|
|
|
33396
33563
|
{ name: 'additionalWitnessRequests', type: 'array', allowEmpty: true },
|
|
33397
33564
|
{ name: 'derivationType', type: 'number' },
|
|
33398
33565
|
{ name: 'includeNetworkId', type: 'boolean' },
|
|
33566
|
+
{ name: 'chunkify', type: 'boolean' },
|
|
33567
|
+
{ name: 'tagCborSets', type: 'boolean' },
|
|
33399
33568
|
]);
|
|
33400
33569
|
const inputsWithPath = payload.inputs.map(transformInput);
|
|
33401
33570
|
const outputsWithData = payload.outputs.map(transformOutput);
|
|
@@ -33477,6 +33646,8 @@ class CardanoSignTransaction extends BaseMethod {
|
|
|
33477
33646
|
? payload.derivationType
|
|
33478
33647
|
: hdTransport.Messages.CardanoDerivationType.ICARUS,
|
|
33479
33648
|
includeNetworkId: payload.includeNetworkId,
|
|
33649
|
+
chunkify: payload.chunkify,
|
|
33650
|
+
tagCborSets: payload.tagCborSets,
|
|
33480
33651
|
};
|
|
33481
33652
|
}
|
|
33482
33653
|
signTx() {
|
|
@@ -33505,6 +33676,8 @@ class CardanoSignTransaction extends BaseMethod {
|
|
|
33505
33676
|
reference_inputs_count: this.params.referenceInputs.length,
|
|
33506
33677
|
derivation_type: this.params.derivationType,
|
|
33507
33678
|
include_network_id: this.params.includeNetworkId,
|
|
33679
|
+
chunkify: this.params.chunkify,
|
|
33680
|
+
tag_cbor_sets: this.params.tagCborSets,
|
|
33508
33681
|
};
|
|
33509
33682
|
yield typedCall('CardanoSignTxInit', 'CardanoTxItemAck', signTxInitMessage);
|
|
33510
33683
|
for (const { input } of this.params.inputsWithPath) {
|
|
@@ -33538,8 +33711,9 @@ class CardanoSignTransaction extends BaseMethod {
|
|
|
33538
33711
|
auxiliaryDataSupplement = {
|
|
33539
33712
|
type: auxiliaryDataType,
|
|
33540
33713
|
auxiliaryDataHash: message.auxiliary_data_hash,
|
|
33541
|
-
|
|
33542
|
-
catalystSignature: message.
|
|
33714
|
+
cVoteRegistrationSignature: message.cvote_registration_signature,
|
|
33715
|
+
catalystSignature: message.cvote_registration_signature,
|
|
33716
|
+
governanceSignature: message.cvote_registration_signature,
|
|
33543
33717
|
};
|
|
33544
33718
|
}
|
|
33545
33719
|
yield typedCall('CardanoTxHostAck', 'CardanoTxItemAck');
|
|
@@ -33588,6 +33762,7 @@ class CardanoSignTransaction extends BaseMethod {
|
|
|
33588
33762
|
});
|
|
33589
33763
|
}
|
|
33590
33764
|
run() {
|
|
33765
|
+
this.checkSupportConway();
|
|
33591
33766
|
return this.signTx();
|
|
33592
33767
|
}
|
|
33593
33768
|
}
|
|
@@ -35705,7 +35880,7 @@ class BenfenGetAddress extends BaseMethod {
|
|
|
35705
35880
|
const publicKey = publicKeyRes.message.public_keys[i];
|
|
35706
35881
|
let address;
|
|
35707
35882
|
if (this.shouldConfirm) {
|
|
35708
|
-
const addressRes = yield this.device.commands.typedCall('BenfenGetAddress', '
|
|
35883
|
+
const addressRes = yield this.device.commands.typedCall('BenfenGetAddress', 'BenfenAddress', param);
|
|
35709
35884
|
address = addressRes.message.address;
|
|
35710
35885
|
}
|
|
35711
35886
|
else {
|
|
@@ -35724,7 +35899,7 @@ class BenfenGetAddress extends BaseMethod {
|
|
|
35724
35899
|
}
|
|
35725
35900
|
else {
|
|
35726
35901
|
responses = yield Promise.all(this.params.map((param) => __awaiter(this, void 0, void 0, function* () {
|
|
35727
|
-
const res = yield this.device.commands.typedCall('BenfenGetAddress', '
|
|
35902
|
+
const res = yield this.device.commands.typedCall('BenfenGetAddress', 'BenfenAddress', param);
|
|
35728
35903
|
const result = {
|
|
35729
35904
|
path: serializedPath(param.address_n),
|
|
35730
35905
|
address: hex2BfcAddress(res.message.address),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { UintType } from '@onekeyfe/hd-transport';
|
|
1
2
|
import type { PROTO } from '../../constants';
|
|
2
3
|
export interface CardanoAddressParameters {
|
|
3
4
|
addressType: PROTO.CardanoAddressType;
|
|
@@ -26,6 +27,11 @@ export type AssetGroupWithTokens = {
|
|
|
26
27
|
policyId: string;
|
|
27
28
|
tokens: PROTO.CardanoToken[];
|
|
28
29
|
};
|
|
30
|
+
export interface CardanoDRep {
|
|
31
|
+
type: PROTO.CardanoDRepType;
|
|
32
|
+
keyHash?: string;
|
|
33
|
+
scriptHash?: string;
|
|
34
|
+
}
|
|
29
35
|
export interface CardanoCertificate {
|
|
30
36
|
type: PROTO.CardanoCertificateType;
|
|
31
37
|
path?: string | number[];
|
|
@@ -33,6 +39,8 @@ export interface CardanoCertificate {
|
|
|
33
39
|
poolParameters?: CardanoPoolParameters;
|
|
34
40
|
scriptHash?: string;
|
|
35
41
|
keyHash?: string;
|
|
42
|
+
deposit?: UintType;
|
|
43
|
+
dRep?: CardanoDRep;
|
|
36
44
|
}
|
|
37
45
|
export type CertificateWithPoolOwnersAndRelays = {
|
|
38
46
|
certificate: PROTO.CardanoTxCertificate;
|
|
@@ -106,8 +114,8 @@ export interface CardanoReferenceInput {
|
|
|
106
114
|
prev_hash: string;
|
|
107
115
|
prev_index: number;
|
|
108
116
|
}
|
|
109
|
-
export interface
|
|
110
|
-
|
|
117
|
+
export interface CardanoCVoteRegistrationDelegation {
|
|
118
|
+
votePublicKey: string;
|
|
111
119
|
weight: number;
|
|
112
120
|
}
|
|
113
121
|
export interface CardanoCatalystRegistrationParameters {
|
|
@@ -116,18 +124,19 @@ export interface CardanoCatalystRegistrationParameters {
|
|
|
116
124
|
rewardAddressParameters: CardanoAddressParameters;
|
|
117
125
|
nonce: string;
|
|
118
126
|
}
|
|
119
|
-
export interface
|
|
120
|
-
|
|
127
|
+
export interface CardanoCVoteRegistrationParameters {
|
|
128
|
+
votePublicKey?: string;
|
|
121
129
|
stakingPath: string | number[];
|
|
122
|
-
|
|
130
|
+
paymentAddressParameters: CardanoAddressParameters;
|
|
123
131
|
nonce: string;
|
|
124
|
-
format?: PROTO.
|
|
125
|
-
delegations?:
|
|
132
|
+
format?: PROTO.CardanoCVoteRegistrationFormat;
|
|
133
|
+
delegations?: CardanoCVoteRegistrationDelegation[];
|
|
126
134
|
votingPurpose?: number;
|
|
135
|
+
paymentAddress?: string;
|
|
127
136
|
}
|
|
128
137
|
export interface CardanoAuxiliaryData {
|
|
129
138
|
hash?: string;
|
|
130
|
-
|
|
139
|
+
cVoteRegistrationParameters?: CardanoCVoteRegistrationParameters;
|
|
131
140
|
}
|
|
132
141
|
export interface CardanoSignTransaction {
|
|
133
142
|
inputs: CardanoInput[];
|
|
@@ -151,6 +160,8 @@ export interface CardanoSignTransaction {
|
|
|
151
160
|
signingMode: PROTO.CardanoTxSigningMode;
|
|
152
161
|
derivationType?: PROTO.CardanoDerivationType;
|
|
153
162
|
includeNetworkId?: boolean;
|
|
163
|
+
chunkify?: boolean;
|
|
164
|
+
tagCborSets?: boolean;
|
|
154
165
|
}
|
|
155
166
|
export interface CardanoSignedTxWitness {
|
|
156
167
|
type: PROTO.CardanoTxWitnessType;
|
|
@@ -161,7 +172,7 @@ export interface CardanoSignedTxWitness {
|
|
|
161
172
|
export interface CardanoAuxiliaryDataSupplement {
|
|
162
173
|
type: PROTO.CardanoTxAuxiliaryDataSupplementType;
|
|
163
174
|
auxiliaryDataHash: string;
|
|
164
|
-
|
|
175
|
+
cVoteRegistrationSignature?: string;
|
|
165
176
|
}
|
|
166
177
|
export interface CardanoSignedTxData {
|
|
167
178
|
hash: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../src/types/api/cardano.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,KAAK,CAAC,kBAAkB,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,KAAK,CAAC,sBAAsB,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cardano.d.ts","sourceRoot":"","sources":["../../../src/types/api/cardano.ts"],"names":[],"mappings":"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"}
|