@firmachain/firma-js 0.3.7 → 0.4.0-beta1
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/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/sdk/FirmaAuthzService.js +20 -15
- package/dist/sdk/FirmaBankService.d.ts +1 -1
- package/dist/sdk/FirmaBankService.js +5 -4
- package/dist/sdk/FirmaConfig.js +4 -4
- package/dist/sdk/FirmaContractService.js +10 -8
- package/dist/sdk/FirmaDistributionService.js +37 -22
- package/dist/sdk/FirmaFeeGrantService.d.ts +0 -1
- package/dist/sdk/FirmaFeeGrantService.js +12 -14
- package/dist/sdk/FirmaGovService.d.ts +14 -0
- package/dist/sdk/FirmaGovService.js +74 -47
- package/dist/sdk/FirmaIbcService.js +4 -3
- package/dist/sdk/FirmaNftService.d.ts +3 -3
- package/dist/sdk/FirmaNftService.js +13 -10
- package/dist/sdk/FirmaStakingService.js +12 -9
- package/dist/sdk/FirmaTokenService.js +17 -14
- package/dist/sdk/FirmaUtil.js +1 -1
- package/dist/sdk/FirmaWalletService.d.ts +1 -1
- package/dist/sdk/FirmaWalletService.js +11 -23
- package/dist/sdk/firmachain/authz/AuthzTxClient.js +2 -0
- package/dist/sdk/firmachain/bank/BankTxClient.js +1 -1
- package/dist/sdk/firmachain/common/CommonTxClient.js +3 -1
- package/dist/sdk/firmachain/common/FirmaLedger.d.ts +49 -0
- package/dist/sdk/firmachain/common/FirmaLedger.js +301 -0
- package/dist/sdk/firmachain/common/ITxClient.d.ts +1 -1
- package/dist/sdk/firmachain/common/ITxClient.js +6 -4
- package/dist/sdk/firmachain/common/LedgerWallet.d.ts +5 -13
- package/dist/sdk/firmachain/common/LedgerWallet.js +1266 -124
- package/dist/sdk/firmachain/common/SigningProtobufStargateClient.js +3 -4
- package/dist/sdk/firmachain/common/SigningStargateClient.d.ts +2 -3
- package/dist/sdk/firmachain/common/SigningStargateClient.js +7 -10
- package/dist/sdk/firmachain/common/index.d.ts +1 -0
- package/dist/sdk/firmachain/common/index.js +1 -0
- package/dist/sdk/firmachain/common/signing.d.ts +4 -10
- package/dist/sdk/firmachain/common/signing.js +13 -60
- package/dist/sdk/firmachain/contract/ContractTxClient.js +1 -1
- package/dist/sdk/firmachain/contract/ContractTxTypes.js +54 -8
- package/dist/sdk/firmachain/distribution/DistributionTxClient.js +1 -1
- package/dist/sdk/firmachain/feegrant/FeeGrantTxClient.js +3 -1
- package/dist/sdk/firmachain/feegrant/FeeGrantTxTypes.d.ts +1 -2
- package/dist/sdk/firmachain/google/protobuf/any.js +0 -12
- package/dist/sdk/firmachain/gov/GovTxClient.js +3 -0
- package/dist/sdk/firmachain/nft/NftTxClient.js +1 -1
- package/dist/sdk/firmachain/token/TokenTxClient.js +1 -1
- package/package.json +16 -8
- package/dist/test/00.wallet.test.d.ts +0 -1
- package/dist/test/00.wallet.test.js +0 -96
- package/dist/test/01.contract_tx.test.d.ts +0 -1
- package/dist/test/01.contract_tx.test.js +0 -157
- package/dist/test/02.contract_query.test.d.ts +0 -1
- package/dist/test/02.contract_query.test.js +0 -245
- package/dist/test/03.contract_scenario.test.d.ts +0 -1
- package/dist/test/03.contract_scenario.test.js +0 -406
- package/dist/test/04.bank_tx.test.d.ts +0 -1
- package/dist/test/04.bank_tx.test.js +0 -126
- package/dist/test/05.bank_query.test.d.ts +0 -1
- package/dist/test/05.bank_query.test.js +0 -162
- package/dist/test/06.feegrant_tx.test.d.ts +0 -1
- package/dist/test/06.feegrant_tx.test.js +0 -185
- package/dist/test/07.feegrant_query.test.d.ts +0 -1
- package/dist/test/07.feegrant_query.test.js +0 -129
- package/dist/test/08.gas_estimate.test.d.ts +0 -1
- package/dist/test/08.gas_estimate.test.js +0 -728
- package/dist/test/09.ipfs.test.d.ts +0 -1
- package/dist/test/09.ipfs.test.js +0 -72
- package/dist/test/10.nft_tx.test.d.ts +0 -1
- package/dist/test/10.nft_tx.test.js +0 -209
- package/dist/test/11.nft_query.test.d.ts +0 -1
- package/dist/test/11.nft_query.test.js +0 -165
- package/dist/test/12.staking_tx.test.d.ts +0 -1
- package/dist/test/12.staking_tx.test.js +0 -211
- package/dist/test/13.staking_query.test.d.ts +0 -1
- package/dist/test/13.staking_query.test.js +0 -275
- package/dist/test/14.distribution_tx.test.d.ts +0 -1
- package/dist/test/14.distribution_tx.test.js +0 -170
- package/dist/test/15.distribution_query.test.d.ts +0 -1
- package/dist/test/15.distribution_query.test.js +0 -243
- package/dist/test/16.gov_tx.test.d.ts +0 -1
- package/dist/test/16.gov_tx.test.js +0 -396
- package/dist/test/17.gov_query.test.d.ts +0 -1
- package/dist/test/17.gov_query.test.js +0 -181
- package/dist/test/18.util.test.d.ts +0 -1
- package/dist/test/18.util.test.js +0 -354
- package/dist/test/19.chain.test.d.ts +0 -1
- package/dist/test/19.chain.test.js +0 -127
- package/dist/test/20.slashing_query.test.d.ts +0 -1
- package/dist/test/20.slashing_query.test.js +0 -111
- package/dist/test/21.token_tx.test.d.ts +0 -1
- package/dist/test/21.token_tx.test.js +0 -149
- package/dist/test/22.token_query.test.d.ts +0 -1
- package/dist/test/22.token_query.test.js +0 -103
- package/dist/test/23.authz_tx.test.d.ts +0 -1
- package/dist/test/23.authz_tx.test.js +0 -380
- package/dist/test/24.authz_query.test.d.ts +0 -1
- package/dist/test/24.authz_query.test.js +0 -202
- package/dist/test/25.cosmwasm_tx.test.d.ts +0 -1
- package/dist/test/25.cosmwasm_tx.test.js +0 -229
- package/dist/test/26.cosmwasm_query.test.d.ts +0 -1
- package/dist/test/26.cosmwasm_query.test.js +0 -275
- package/dist/test/27.arbitrary_sign.test.d.ts +0 -1
- package/dist/test/27.arbitrary_sign.test.js +0 -162
- package/dist/test/28.ibc_tx.test.d.ts +0 -1
- package/dist/test/28.ibc_tx.test.js +0 -98
- package/dist/test/29.mint_query.test.d.ts +0 -1
- package/dist/test/29.mint_query.test.js +0 -59
- package/dist/test/30.cw20_tx.test.d.ts +0 -1
- package/dist/test/30.cw20_tx.test.js +0 -450
- package/dist/test/31.cw20_query.test.d.ts +0 -1
- package/dist/test/31.cw20_query.test.js +0 -333
- package/dist/test/32.cw721_tx.test.d.ts +0 -1
- package/dist/test/32.cw721_tx.test.js +0 -431
- package/dist/test/33.cw721_query.test.d.ts +0 -1
- package/dist/test/33.cw721_query.test.js +0 -371
- package/dist/test/34.cw_bridge_tx.test.d.ts +0 -1
- package/dist/test/34.cw_bridge_tx.test.js +0 -476
- package/dist/test/35.cw_bridge_tx_low.test.d.ts +0 -1
- package/dist/test/35.cw_bridge_tx_low.test.js +0 -398
- package/dist/test/36.cw_bridge_query.test.d.ts +0 -1
- package/dist/test/36.cw_bridge_query.test.js +0 -318
- package/dist/test/37.cw_marketplace_tx.test.d.ts +0 -1
- package/dist/test/37.cw_marketplace_tx.test.js +0 -794
- package/dist/test/38.cw_marketplace_query.test.d.ts +0 -1
- package/dist/test/38.cw_marketplace_query.test.js +0 -128
- package/dist/test/config_test.d.ts +0 -11
- package/dist/test/config_test.js +0 -14
- package/dist/test/config_test.sample.d.ts +0 -11
- package/dist/test/config_test.sample.js +0 -14
|
@@ -52,7 +52,7 @@ var TokenService = /** @class */ (function () {
|
|
|
52
52
|
case 0:
|
|
53
53
|
_a.trys.push([0, 3, , 4]);
|
|
54
54
|
newTotalSupply = FirmaUtil_1.FirmaUtil.getUTokenFromToken(totalSupply, decimal);
|
|
55
|
-
return [4 /*yield*/, this.getSignedTxCreateToken(wallet, tokenName, tokenSymbol, tokenURI, newTotalSupply, decimal, isMintable, isBurnable, txMisc)];
|
|
55
|
+
return [4 /*yield*/, this.getSignedTxCreateToken(wallet, tokenName, tokenSymbol, tokenURI, newTotalSupply, decimal, isMintable, isBurnable, txMisc, true)];
|
|
56
56
|
case 1:
|
|
57
57
|
txRaw = _a.sent();
|
|
58
58
|
return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)];
|
|
@@ -69,13 +69,12 @@ var TokenService = /** @class */ (function () {
|
|
|
69
69
|
TokenService.prototype.getGasEstimationMint = function (wallet, tokenID, amount, decimal, toAddress, txMisc) {
|
|
70
70
|
if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; }
|
|
71
71
|
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
var
|
|
72
|
+
var txRaw, error_2;
|
|
73
73
|
return __generator(this, function (_a) {
|
|
74
74
|
switch (_a.label) {
|
|
75
75
|
case 0:
|
|
76
76
|
_a.trys.push([0, 3, , 4]);
|
|
77
|
-
|
|
78
|
-
return [4 /*yield*/, this.getSignedTxMint(wallet, tokenID, amount, toAddress, txMisc)];
|
|
77
|
+
return [4 /*yield*/, this.getSignedTxMint(wallet, tokenID, amount, toAddress, txMisc, true)];
|
|
79
78
|
case 1:
|
|
80
79
|
txRaw = _a.sent();
|
|
81
80
|
return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)];
|
|
@@ -98,7 +97,7 @@ var TokenService = /** @class */ (function () {
|
|
|
98
97
|
case 0:
|
|
99
98
|
_a.trys.push([0, 3, , 4]);
|
|
100
99
|
newAmount = FirmaUtil_1.FirmaUtil.getUTokenFromToken(amount, decimal);
|
|
101
|
-
return [4 /*yield*/, this.getSignedTxBurn(wallet, tokenID, newAmount, txMisc)];
|
|
100
|
+
return [4 /*yield*/, this.getSignedTxBurn(wallet, tokenID, newAmount, txMisc, true)];
|
|
102
101
|
case 1:
|
|
103
102
|
txRaw = _a.sent();
|
|
104
103
|
return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)];
|
|
@@ -120,7 +119,7 @@ var TokenService = /** @class */ (function () {
|
|
|
120
119
|
switch (_a.label) {
|
|
121
120
|
case 0:
|
|
122
121
|
_a.trys.push([0, 3, , 4]);
|
|
123
|
-
return [4 /*yield*/, this.getSignedTxUpdateTokenURI(wallet, tokenID, tokenURI, txMisc)];
|
|
122
|
+
return [4 /*yield*/, this.getSignedTxUpdateTokenURI(wallet, tokenID, tokenURI, txMisc, true)];
|
|
124
123
|
case 1:
|
|
125
124
|
txRaw = _a.sent();
|
|
126
125
|
return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)];
|
|
@@ -134,8 +133,9 @@ var TokenService = /** @class */ (function () {
|
|
|
134
133
|
});
|
|
135
134
|
});
|
|
136
135
|
};
|
|
137
|
-
TokenService.prototype.getSignedTxUpdateTokenURI = function (wallet, tokenID, tokenURI, txMisc) {
|
|
136
|
+
TokenService.prototype.getSignedTxUpdateTokenURI = function (wallet, tokenID, tokenURI, txMisc, simulate) {
|
|
138
137
|
if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; }
|
|
138
|
+
if (simulate === void 0) { simulate = false; }
|
|
139
139
|
return __awaiter(this, void 0, void 0, function () {
|
|
140
140
|
var address, message, txClient, error_5;
|
|
141
141
|
return __generator(this, function (_a) {
|
|
@@ -151,7 +151,7 @@ var TokenService = /** @class */ (function () {
|
|
|
151
151
|
tokenURI: tokenURI
|
|
152
152
|
});
|
|
153
153
|
txClient = new token_1.TokenTxClient(wallet, this.config.rpcAddress);
|
|
154
|
-
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc))];
|
|
154
|
+
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc), simulate)];
|
|
155
155
|
case 2: return [2 /*return*/, _a.sent()];
|
|
156
156
|
case 3:
|
|
157
157
|
error_5 = _a.sent();
|
|
@@ -162,8 +162,9 @@ var TokenService = /** @class */ (function () {
|
|
|
162
162
|
});
|
|
163
163
|
});
|
|
164
164
|
};
|
|
165
|
-
TokenService.prototype.getSignedTxBurn = function (wallet, tokenID, amount, txMisc) {
|
|
165
|
+
TokenService.prototype.getSignedTxBurn = function (wallet, tokenID, amount, txMisc, simulate) {
|
|
166
166
|
if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; }
|
|
167
|
+
if (simulate === void 0) { simulate = false; }
|
|
167
168
|
return __awaiter(this, void 0, void 0, function () {
|
|
168
169
|
var address, message, txClient, error_6;
|
|
169
170
|
return __generator(this, function (_a) {
|
|
@@ -179,7 +180,7 @@ var TokenService = /** @class */ (function () {
|
|
|
179
180
|
amount: amount
|
|
180
181
|
});
|
|
181
182
|
txClient = new token_1.TokenTxClient(wallet, this.config.rpcAddress);
|
|
182
|
-
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc))];
|
|
183
|
+
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc), simulate)];
|
|
183
184
|
case 2: return [2 /*return*/, _a.sent()];
|
|
184
185
|
case 3:
|
|
185
186
|
error_6 = _a.sent();
|
|
@@ -190,8 +191,9 @@ var TokenService = /** @class */ (function () {
|
|
|
190
191
|
});
|
|
191
192
|
});
|
|
192
193
|
};
|
|
193
|
-
TokenService.prototype.getSignedTxMint = function (wallet, tokenID, amount, toAddress, txMisc) {
|
|
194
|
+
TokenService.prototype.getSignedTxMint = function (wallet, tokenID, amount, toAddress, txMisc, simulate) {
|
|
194
195
|
if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; }
|
|
196
|
+
if (simulate === void 0) { simulate = false; }
|
|
195
197
|
return __awaiter(this, void 0, void 0, function () {
|
|
196
198
|
var address, message, txClient, error_7;
|
|
197
199
|
return __generator(this, function (_a) {
|
|
@@ -208,7 +210,7 @@ var TokenService = /** @class */ (function () {
|
|
|
208
210
|
toAddress: toAddress
|
|
209
211
|
});
|
|
210
212
|
txClient = new token_1.TokenTxClient(wallet, this.config.rpcAddress);
|
|
211
|
-
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc))];
|
|
213
|
+
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc), simulate)];
|
|
212
214
|
case 2: return [2 /*return*/, _a.sent()];
|
|
213
215
|
case 3:
|
|
214
216
|
error_7 = _a.sent();
|
|
@@ -219,8 +221,9 @@ var TokenService = /** @class */ (function () {
|
|
|
219
221
|
});
|
|
220
222
|
});
|
|
221
223
|
};
|
|
222
|
-
TokenService.prototype.getSignedTxCreateToken = function (wallet, tokenName, tokenSymbol, tokenURI, totalSupply, decimal, isMintable, isBurnable, txMisc) {
|
|
224
|
+
TokenService.prototype.getSignedTxCreateToken = function (wallet, tokenName, tokenSymbol, tokenURI, totalSupply, decimal, isMintable, isBurnable, txMisc, simulate) {
|
|
223
225
|
if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; }
|
|
226
|
+
if (simulate === void 0) { simulate = false; }
|
|
224
227
|
return __awaiter(this, void 0, void 0, function () {
|
|
225
228
|
var address, message, txClient, error_8;
|
|
226
229
|
return __generator(this, function (_a) {
|
|
@@ -241,7 +244,7 @@ var TokenService = /** @class */ (function () {
|
|
|
241
244
|
burnable: isBurnable
|
|
242
245
|
});
|
|
243
246
|
txClient = new token_1.TokenTxClient(wallet, this.config.rpcAddress);
|
|
244
|
-
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc))];
|
|
247
|
+
return [4 /*yield*/, txClient.sign([message], (0, FirmaUtil_1.getSignAndBroadcastOption)(this.config.denom, txMisc), simulate)];
|
|
245
248
|
case 2: return [2 /*return*/, _a.sent()];
|
|
246
249
|
case 3:
|
|
247
250
|
error_8 = _a.sent();
|
package/dist/sdk/FirmaUtil.js
CHANGED
|
@@ -343,7 +343,7 @@ var FirmaUtil = /** @class */ (function () {
|
|
|
343
343
|
return [4 /*yield*/, wallet.getAddress()];
|
|
344
344
|
case 2:
|
|
345
345
|
address = _a.sent();
|
|
346
|
-
dataBytes =
|
|
346
|
+
dataBytes = new TextEncoder().encode(data);
|
|
347
347
|
return [4 /*yield*/, client.experimentalAdr36Sign(address, dataBytes)];
|
|
348
348
|
case 3: return [2 /*return*/, _a.sent()];
|
|
349
349
|
case 4:
|
|
@@ -32,5 +32,5 @@ export declare class FirmaWalletService {
|
|
|
32
32
|
generateMnemonic(): Promise<string>;
|
|
33
33
|
isLedger(): boolean;
|
|
34
34
|
initFromLedger(ledger: LedgerWalletInterface): Promise<FirmaWalletService>;
|
|
35
|
-
signLedger(messages: EncodeObject[], option: SignAndBroadcastOptions, registry: Registry): Promise<TxRaw>;
|
|
35
|
+
signLedger(messages: EncodeObject[], option: SignAndBroadcastOptions, registry: Registry, simulate?: boolean): Promise<TxRaw>;
|
|
36
36
|
}
|
|
@@ -177,7 +177,7 @@ var FirmaWalletService = /** @class */ (function () {
|
|
|
177
177
|
switch (_b.label) {
|
|
178
178
|
case 0:
|
|
179
179
|
_b.trys.push([0, 2, , 3]);
|
|
180
|
-
tempPrivateKey = Buffer.from(privateKey.replace("0x", ""), "hex");
|
|
180
|
+
tempPrivateKey = new Uint8Array(Buffer.from(privateKey.replace("0x", ""), "hex"));
|
|
181
181
|
_a = this;
|
|
182
182
|
return [4 /*yield*/, proto_signing_1.DirectSecp256k1Wallet.fromKey(tempPrivateKey, this.getPrefix())];
|
|
183
183
|
case 1:
|
|
@@ -319,9 +319,10 @@ var FirmaWalletService = /** @class */ (function () {
|
|
|
319
319
|
});
|
|
320
320
|
});
|
|
321
321
|
};
|
|
322
|
-
FirmaWalletService.prototype.signLedger = function (messages, option, registry) {
|
|
322
|
+
FirmaWalletService.prototype.signLedger = function (messages, option, registry, simulate) {
|
|
323
|
+
if (simulate === void 0) { simulate = false; }
|
|
323
324
|
return __awaiter(this, void 0, void 0, function () {
|
|
324
|
-
var address, addressAndPubkey,
|
|
325
|
+
var address, addressAndPubkey, error_10, errorMessage, accountInfo, chainId, signerData;
|
|
325
326
|
return __generator(this, function (_a) {
|
|
326
327
|
switch (_a.label) {
|
|
327
328
|
case 0:
|
|
@@ -330,42 +331,29 @@ var FirmaWalletService = /** @class */ (function () {
|
|
|
330
331
|
}
|
|
331
332
|
_a.label = 1;
|
|
332
333
|
case 1:
|
|
333
|
-
_a.trys.push([1,
|
|
334
|
+
_a.trys.push([1, 3, , 4]);
|
|
334
335
|
return [4 /*yield*/, this.ledger.getAddressAndPublicKey()];
|
|
335
336
|
case 2:
|
|
336
337
|
addressAndPubkey = _a.sent();
|
|
337
338
|
address = addressAndPubkey.address;
|
|
338
|
-
|
|
339
|
-
_a.label = 3;
|
|
339
|
+
return [3 /*break*/, 4];
|
|
340
340
|
case 3:
|
|
341
|
-
_a.trys.push([3, 5, , 6]);
|
|
342
|
-
return [4 /*yield*/, this.ledger.showAddressOnDevice()];
|
|
343
|
-
case 4:
|
|
344
|
-
_a.sent();
|
|
345
|
-
return [3 /*break*/, 6];
|
|
346
|
-
case 5:
|
|
347
|
-
displayError_1 = _a.sent();
|
|
348
|
-
return [3 /*break*/, 6];
|
|
349
|
-
case 6: return [3 /*break*/, 8];
|
|
350
|
-
case 7:
|
|
351
341
|
error_10 = _a.sent();
|
|
352
342
|
errorMessage = error_10 instanceof Error ? error_10.message : String(error_10);
|
|
353
343
|
throw new Error("Failed to connect to Ledger: ".concat(errorMessage, ". Please make sure your Ledger is connected and the FirmaChain app is open."));
|
|
354
|
-
case
|
|
355
|
-
case
|
|
344
|
+
case 4: return [4 /*yield*/, FirmaUtil_1.FirmaUtil.getAccountInfo(address)];
|
|
345
|
+
case 5:
|
|
356
346
|
accountInfo = _a.sent();
|
|
357
347
|
return [4 /*yield*/, FirmaUtil_1.FirmaUtil.getChainId()];
|
|
358
|
-
case
|
|
348
|
+
case 6:
|
|
359
349
|
chainId = _a.sent();
|
|
360
350
|
signerData = {
|
|
361
351
|
account_number: parseInt(accountInfo.account_number, 10),
|
|
362
352
|
sequence: parseInt(accountInfo.sequence, 10),
|
|
363
353
|
chain_id: chainId,
|
|
364
354
|
};
|
|
365
|
-
return [4 /*yield*/, (0, LedgerWallet_1.
|
|
366
|
-
case
|
|
367
|
-
// Use protobuf signing with FirmaChain Ledger app
|
|
368
|
-
return [2 /*return*/, _a.sent()];
|
|
355
|
+
return [4 /*yield*/, (0, LedgerWallet_1.signWithSignerAuto)(this.ledger, messages, signerData, option, registry, this.config.restApiAddress, simulate)];
|
|
356
|
+
case 7: return [2 /*return*/, _a.sent()];
|
|
369
357
|
}
|
|
370
358
|
});
|
|
371
359
|
});
|
|
@@ -19,6 +19,8 @@ exports.AuthzTxClient = void 0;
|
|
|
19
19
|
var proto_signing_1 = require("@cosmjs/proto-signing");
|
|
20
20
|
var AuthzTxTypes_1 = require("./AuthzTxTypes");
|
|
21
21
|
var ITxClient_1 = require("../common/ITxClient");
|
|
22
|
+
// AuthzTxTypes are protobufjs-generated without a `decode` method, so they
|
|
23
|
+
// cannot satisfy GeneratedType directly.
|
|
22
24
|
var types = [
|
|
23
25
|
["/cosmos.authz.v1beta1.MsgExec", AuthzTxTypes_1.MsgExec],
|
|
24
26
|
["/cosmos.authz.v1beta1.MsgGrant", AuthzTxTypes_1.MsgGrant],
|
|
@@ -21,7 +21,7 @@ var tx_1 = require("cosmjs-types/cosmos/bank/v1beta1/tx");
|
|
|
21
21
|
var ITxClient_1 = require("../common/ITxClient");
|
|
22
22
|
var types = [
|
|
23
23
|
["/cosmos.bank.v1beta1.MsgSend", tx_1.MsgSend],
|
|
24
|
-
["/cosmos.bank.v1beta1.MsgMultiSend", tx_1.MsgMultiSend]
|
|
24
|
+
["/cosmos.bank.v1beta1.MsgMultiSend", tx_1.MsgMultiSend],
|
|
25
25
|
];
|
|
26
26
|
var registry = new proto_signing_1.Registry(types);
|
|
27
27
|
var BankTxClient = /** @class */ (function (_super) {
|
|
@@ -31,6 +31,8 @@ var FeeGrantTxTypes_1 = require("../feegrant/FeeGrantTxTypes");
|
|
|
31
31
|
var NftTxTypes_1 = require("../nft/NftTxTypes");
|
|
32
32
|
var TokenTxTypes_1 = require("../token/TokenTxTypes");
|
|
33
33
|
var ITxClient_1 = require("./ITxClient");
|
|
34
|
+
// Some entries use protobufjs-generated types (no `decode`) or types from
|
|
35
|
+
// @kintsugi-tech/cosmjs-types (different BinaryWriter), so a cast is required.
|
|
34
36
|
var types = [
|
|
35
37
|
["/cosmos.authz.v1beta1.MsgExec", AuthzTxTypes_1.MsgExec],
|
|
36
38
|
["/cosmos.authz.v1beta1.MsgGrant", AuthzTxTypes_1.MsgGrant],
|
|
@@ -73,7 +75,7 @@ var types = [
|
|
|
73
75
|
["/firmachain.token.MsgCreateToken", TokenTxTypes_1.MsgCreateToken],
|
|
74
76
|
["/firmachain.token.MsgUpdateTokenURI", TokenTxTypes_1.MsgUpdateTokenURI],
|
|
75
77
|
["/firmachain.token.MsgMint", NftTxTypes_1.MsgMint],
|
|
76
|
-
["/firmachain.token.MsgBurn", NftTxTypes_1.MsgBurn]
|
|
78
|
+
["/firmachain.token.MsgBurn", NftTxTypes_1.MsgBurn],
|
|
77
79
|
];
|
|
78
80
|
var registry = new proto_signing_1.Registry(types);
|
|
79
81
|
var CommonTxClient = /** @class */ (function (_super) {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { LedgerWalletInterface } from './LedgerWallet';
|
|
2
|
+
export type { LedgerWalletInterface };
|
|
3
|
+
export interface LedgerTransportClass {
|
|
4
|
+
create(): Promise<any>;
|
|
5
|
+
}
|
|
6
|
+
export declare class FirmaCosmosLedgerWallet implements LedgerWalletInterface {
|
|
7
|
+
private transportHID;
|
|
8
|
+
private cosmosApp;
|
|
9
|
+
private isOpen;
|
|
10
|
+
constructor(transportHID: LedgerTransportClass);
|
|
11
|
+
private connect;
|
|
12
|
+
private close;
|
|
13
|
+
getAddress(): Promise<string>;
|
|
14
|
+
getAddressAndPublicKey(): Promise<{
|
|
15
|
+
address: string;
|
|
16
|
+
publicKey: Uint8Array;
|
|
17
|
+
}>;
|
|
18
|
+
getPublicKey(): Promise<Uint8Array>;
|
|
19
|
+
showAddressOnDevice(): Promise<void>;
|
|
20
|
+
sign(message: string | Uint8Array, txtype?: number): Promise<Uint8Array>;
|
|
21
|
+
}
|
|
22
|
+
type GetAddressAndPublicKeyCallback = () => Promise<{
|
|
23
|
+
address: string;
|
|
24
|
+
publicKey: Uint8Array;
|
|
25
|
+
}>;
|
|
26
|
+
type GetAddressCallback = () => Promise<string>;
|
|
27
|
+
type SignCallback = (message: string | Uint8Array, txtype?: number) => Promise<Uint8Array>;
|
|
28
|
+
type GetPublicKeyCallback = () => Promise<Uint8Array>;
|
|
29
|
+
type ShowAddressOnDeviceCallback = () => void;
|
|
30
|
+
export declare class FirmaBridgeLedgerWallet implements LedgerWalletInterface {
|
|
31
|
+
private getAddressAndPublicKeyCallback;
|
|
32
|
+
private getAddressCallback;
|
|
33
|
+
private signCallback;
|
|
34
|
+
private getPublicKeyCallback;
|
|
35
|
+
private showAddressOnDeviceCallback;
|
|
36
|
+
registerGetAddressAndPublicKeyCallback(cb: GetAddressAndPublicKeyCallback): void;
|
|
37
|
+
registerGetAddressCallback(cb: GetAddressCallback): void;
|
|
38
|
+
registerGetSignCallback(cb: SignCallback): void;
|
|
39
|
+
registerGetPublicKeyCallback(cb: GetPublicKeyCallback): void;
|
|
40
|
+
registerShowAddressOnDevice(cb: ShowAddressOnDeviceCallback): void;
|
|
41
|
+
showAddressOnDevice(): Promise<void>;
|
|
42
|
+
getPublicKey(): Promise<Uint8Array>;
|
|
43
|
+
getAddressAndPublicKey(): Promise<{
|
|
44
|
+
address: string;
|
|
45
|
+
publicKey: Uint8Array;
|
|
46
|
+
}>;
|
|
47
|
+
getAddress(): Promise<string>;
|
|
48
|
+
sign(message: string | Uint8Array, txtype?: number): Promise<Uint8Array>;
|
|
49
|
+
}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
var _a;
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.FirmaBridgeLedgerWallet = exports.FirmaCosmosLedgerWallet = void 0;
|
|
44
|
+
var ledger_cosmos_js_1 = __importDefault(require("@zondax/ledger-cosmos-js"));
|
|
45
|
+
var crypto_1 = require("@cosmjs/crypto");
|
|
46
|
+
var FIRMA_PATH = "m/44'/7777777'/0'/0/0";
|
|
47
|
+
var FIRMA_HRP = 'firma';
|
|
48
|
+
// Verbose Ledger transport tracing. Enable with env DEBUG_LEDGER=1 (node) or
|
|
49
|
+
// `globalThis.DEBUG_LEDGER = true` (browser).
|
|
50
|
+
var DEBUG_LEDGER = (typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.DEBUG_LEDGER) === '1') ||
|
|
51
|
+
(typeof globalThis !== 'undefined' && globalThis.DEBUG_LEDGER === true);
|
|
52
|
+
// Sanitized error formatter — extracts only the fields Zondax/Ledger libraries
|
|
53
|
+
// surface in their documented error shape (.message, .returnCode). Prevents
|
|
54
|
+
// accidental leakage of attached context (transport state, buffered bytes) when
|
|
55
|
+
// the upstream library decorates errors with extra properties.
|
|
56
|
+
function formatLedgerError(error) {
|
|
57
|
+
var e = error;
|
|
58
|
+
var msg = typeof (e === null || e === void 0 ? void 0 : e.message) === 'string' ? e.message : String(error);
|
|
59
|
+
var rc = typeof (e === null || e === void 0 ? void 0 : e.returnCode) === 'number' ? ' | returnCode: 0x' + e.returnCode.toString(16) : '';
|
|
60
|
+
return msg + rc;
|
|
61
|
+
}
|
|
62
|
+
// ─── Web (WebHID) wallet ──────────────────────────────────────────────────────
|
|
63
|
+
var FirmaCosmosLedgerWallet = /** @class */ (function () {
|
|
64
|
+
function FirmaCosmosLedgerWallet(transportHID) {
|
|
65
|
+
this.isOpen = false;
|
|
66
|
+
this.transportHID = transportHID;
|
|
67
|
+
}
|
|
68
|
+
FirmaCosmosLedgerWallet.prototype.connect = function () {
|
|
69
|
+
var _a, _b;
|
|
70
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
71
|
+
var transport;
|
|
72
|
+
return __generator(this, function (_c) {
|
|
73
|
+
switch (_c.label) {
|
|
74
|
+
case 0:
|
|
75
|
+
if (this.isOpen)
|
|
76
|
+
return [2 /*return*/];
|
|
77
|
+
return [4 /*yield*/, this.transportHID.create()];
|
|
78
|
+
case 1:
|
|
79
|
+
transport = _c.sent();
|
|
80
|
+
if (DEBUG_LEDGER) {
|
|
81
|
+
console.log('[Ledger] transport.deviceModel id:', (_a = transport.deviceModel) === null || _a === void 0 ? void 0 : _a.id);
|
|
82
|
+
console.log('[Ledger] transport.deviceModel productName:', (_b = transport.deviceModel) === null || _b === void 0 ? void 0 : _b.productName);
|
|
83
|
+
}
|
|
84
|
+
this.cosmosApp = new ledger_cosmos_js_1.default(transport);
|
|
85
|
+
this.isOpen = true;
|
|
86
|
+
if (DEBUG_LEDGER)
|
|
87
|
+
console.log('[Ledger] connect success');
|
|
88
|
+
return [2 /*return*/];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
FirmaCosmosLedgerWallet.prototype.close = function () {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
+
var app;
|
|
97
|
+
return __generator(this, function (_c) {
|
|
98
|
+
try {
|
|
99
|
+
app = this.cosmosApp;
|
|
100
|
+
(_b = (_a = app === null || app === void 0 ? void 0 : app.transport) === null || _a === void 0 ? void 0 : _a.close) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
101
|
+
}
|
|
102
|
+
catch (_) { }
|
|
103
|
+
this.isOpen = false;
|
|
104
|
+
return [2 /*return*/];
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
FirmaCosmosLedgerWallet.prototype.getAddress = function () {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
110
|
+
var response, error_1;
|
|
111
|
+
return __generator(this, function (_a) {
|
|
112
|
+
switch (_a.label) {
|
|
113
|
+
case 0:
|
|
114
|
+
_a.trys.push([0, 4, , 6]);
|
|
115
|
+
if (DEBUG_LEDGER)
|
|
116
|
+
console.log('[FirmaLedger] getAddress');
|
|
117
|
+
return [4 /*yield*/, this.connect()];
|
|
118
|
+
case 1:
|
|
119
|
+
_a.sent();
|
|
120
|
+
return [4 /*yield*/, this.cosmosApp.getAddressAndPubKey(FIRMA_PATH, FIRMA_HRP)];
|
|
121
|
+
case 2:
|
|
122
|
+
response = _a.sent();
|
|
123
|
+
return [4 /*yield*/, this.close()];
|
|
124
|
+
case 3:
|
|
125
|
+
_a.sent();
|
|
126
|
+
return [2 /*return*/, response.bech32_address];
|
|
127
|
+
case 4:
|
|
128
|
+
error_1 = _a.sent();
|
|
129
|
+
console.error('[FirmaLedger] getAddress error:', formatLedgerError(error_1));
|
|
130
|
+
return [4 /*yield*/, this.close()];
|
|
131
|
+
case 5:
|
|
132
|
+
_a.sent();
|
|
133
|
+
return [2 /*return*/, ''];
|
|
134
|
+
case 6: return [2 /*return*/];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
FirmaCosmosLedgerWallet.prototype.getAddressAndPublicKey = function () {
|
|
140
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
141
|
+
var response, error_2;
|
|
142
|
+
return __generator(this, function (_a) {
|
|
143
|
+
switch (_a.label) {
|
|
144
|
+
case 0:
|
|
145
|
+
_a.trys.push([0, 4, , 6]);
|
|
146
|
+
return [4 /*yield*/, this.connect()];
|
|
147
|
+
case 1:
|
|
148
|
+
_a.sent();
|
|
149
|
+
return [4 /*yield*/, this.cosmosApp.getAddressAndPubKey(FIRMA_PATH, FIRMA_HRP)];
|
|
150
|
+
case 2:
|
|
151
|
+
response = _a.sent();
|
|
152
|
+
return [4 /*yield*/, this.close()];
|
|
153
|
+
case 3:
|
|
154
|
+
_a.sent();
|
|
155
|
+
return [2 /*return*/, { address: response.bech32_address, publicKey: new Uint8Array(response.compressed_pk) }];
|
|
156
|
+
case 4:
|
|
157
|
+
error_2 = _a.sent();
|
|
158
|
+
console.error('[FirmaLedger] getAddressAndPublicKey error:', formatLedgerError(error_2));
|
|
159
|
+
return [4 /*yield*/, this.close()];
|
|
160
|
+
case 5:
|
|
161
|
+
_a.sent();
|
|
162
|
+
return [2 /*return*/, { address: '', publicKey: new Uint8Array() }];
|
|
163
|
+
case 6: return [2 /*return*/];
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
FirmaCosmosLedgerWallet.prototype.getPublicKey = function () {
|
|
169
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
170
|
+
var response, error_3;
|
|
171
|
+
return __generator(this, function (_a) {
|
|
172
|
+
switch (_a.label) {
|
|
173
|
+
case 0:
|
|
174
|
+
_a.trys.push([0, 4, , 6]);
|
|
175
|
+
if (DEBUG_LEDGER)
|
|
176
|
+
console.log('[FirmaLedger] getPublicKey path:', FIRMA_PATH, 'hrp:', FIRMA_HRP);
|
|
177
|
+
return [4 /*yield*/, this.connect()];
|
|
178
|
+
case 1:
|
|
179
|
+
_a.sent();
|
|
180
|
+
return [4 /*yield*/, this.cosmosApp.getAddressAndPubKey(FIRMA_PATH, FIRMA_HRP)];
|
|
181
|
+
case 2:
|
|
182
|
+
response = _a.sent();
|
|
183
|
+
return [4 /*yield*/, this.close()];
|
|
184
|
+
case 3:
|
|
185
|
+
_a.sent();
|
|
186
|
+
return [2 /*return*/, new Uint8Array(response.compressed_pk)];
|
|
187
|
+
case 4:
|
|
188
|
+
error_3 = _a.sent();
|
|
189
|
+
console.error('[FirmaLedger] getPublicKey error:', formatLedgerError(error_3));
|
|
190
|
+
return [4 /*yield*/, this.close()];
|
|
191
|
+
case 5:
|
|
192
|
+
_a.sent();
|
|
193
|
+
throw error_3;
|
|
194
|
+
case 6: return [2 /*return*/];
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
};
|
|
199
|
+
FirmaCosmosLedgerWallet.prototype.showAddressOnDevice = function () {
|
|
200
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
201
|
+
var error_4;
|
|
202
|
+
return __generator(this, function (_a) {
|
|
203
|
+
switch (_a.label) {
|
|
204
|
+
case 0:
|
|
205
|
+
_a.trys.push([0, 4, , 6]);
|
|
206
|
+
return [4 /*yield*/, this.connect()];
|
|
207
|
+
case 1:
|
|
208
|
+
_a.sent();
|
|
209
|
+
return [4 /*yield*/, this.cosmosApp.showAddressAndPubKey(FIRMA_PATH, FIRMA_HRP)];
|
|
210
|
+
case 2:
|
|
211
|
+
_a.sent();
|
|
212
|
+
return [4 /*yield*/, this.close()];
|
|
213
|
+
case 3:
|
|
214
|
+
_a.sent();
|
|
215
|
+
return [3 /*break*/, 6];
|
|
216
|
+
case 4:
|
|
217
|
+
error_4 = _a.sent();
|
|
218
|
+
console.error('[FirmaLedger] showAddressOnDevice error:', formatLedgerError(error_4));
|
|
219
|
+
return [4 /*yield*/, this.close()];
|
|
220
|
+
case 5:
|
|
221
|
+
_a.sent();
|
|
222
|
+
return [3 /*break*/, 6];
|
|
223
|
+
case 6: return [2 /*return*/];
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
FirmaCosmosLedgerWallet.prototype.sign = function (message, txtype) {
|
|
229
|
+
if (txtype === void 0) { txtype = 0x00; }
|
|
230
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
231
|
+
var buffer, response, secp256k1, error_5;
|
|
232
|
+
return __generator(this, function (_a) {
|
|
233
|
+
switch (_a.label) {
|
|
234
|
+
case 0:
|
|
235
|
+
_a.trys.push([0, 4, , 6]);
|
|
236
|
+
buffer = typeof message === 'string' ? Buffer.from(message) : Buffer.from(message);
|
|
237
|
+
if (DEBUG_LEDGER)
|
|
238
|
+
console.log('[FirmaLedger] sign txtype:', txtype, 'buffer length:', buffer.length);
|
|
239
|
+
return [4 /*yield*/, this.connect()];
|
|
240
|
+
case 1:
|
|
241
|
+
_a.sent();
|
|
242
|
+
return [4 /*yield*/, this.cosmosApp.sign(FIRMA_PATH, buffer, FIRMA_HRP, txtype)];
|
|
243
|
+
case 2:
|
|
244
|
+
response = _a.sent();
|
|
245
|
+
return [4 /*yield*/, this.close()];
|
|
246
|
+
case 3:
|
|
247
|
+
_a.sent();
|
|
248
|
+
secp256k1 = crypto_1.Secp256k1Signature.fromDer(new Uint8Array(response.signature)).toFixedLength();
|
|
249
|
+
return [2 /*return*/, new Uint8Array(secp256k1)];
|
|
250
|
+
case 4:
|
|
251
|
+
error_5 = _a.sent();
|
|
252
|
+
console.error('[FirmaLedger] sign error:', formatLedgerError(error_5));
|
|
253
|
+
return [4 /*yield*/, this.close()];
|
|
254
|
+
case 5:
|
|
255
|
+
_a.sent();
|
|
256
|
+
throw error_5;
|
|
257
|
+
case 6: return [2 /*return*/];
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
};
|
|
262
|
+
return FirmaCosmosLedgerWallet;
|
|
263
|
+
}());
|
|
264
|
+
exports.FirmaCosmosLedgerWallet = FirmaCosmosLedgerWallet;
|
|
265
|
+
var FirmaBridgeLedgerWallet = /** @class */ (function () {
|
|
266
|
+
function FirmaBridgeLedgerWallet() {
|
|
267
|
+
}
|
|
268
|
+
FirmaBridgeLedgerWallet.prototype.registerGetAddressAndPublicKeyCallback = function (cb) { this.getAddressAndPublicKeyCallback = cb; };
|
|
269
|
+
FirmaBridgeLedgerWallet.prototype.registerGetAddressCallback = function (cb) { this.getAddressCallback = cb; };
|
|
270
|
+
FirmaBridgeLedgerWallet.prototype.registerGetSignCallback = function (cb) { this.signCallback = cb; };
|
|
271
|
+
FirmaBridgeLedgerWallet.prototype.registerGetPublicKeyCallback = function (cb) { this.getPublicKeyCallback = cb; };
|
|
272
|
+
FirmaBridgeLedgerWallet.prototype.registerShowAddressOnDevice = function (cb) { this.showAddressOnDeviceCallback = cb; };
|
|
273
|
+
FirmaBridgeLedgerWallet.prototype.showAddressOnDevice = function () {
|
|
274
|
+
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
275
|
+
this.showAddressOnDeviceCallback();
|
|
276
|
+
return [2 /*return*/];
|
|
277
|
+
}); });
|
|
278
|
+
};
|
|
279
|
+
FirmaBridgeLedgerWallet.prototype.getPublicKey = function () {
|
|
280
|
+
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
281
|
+
return [2 /*return*/, this.getPublicKeyCallback()];
|
|
282
|
+
}); });
|
|
283
|
+
};
|
|
284
|
+
FirmaBridgeLedgerWallet.prototype.getAddressAndPublicKey = function () {
|
|
285
|
+
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
286
|
+
return [2 /*return*/, this.getAddressAndPublicKeyCallback()];
|
|
287
|
+
}); });
|
|
288
|
+
};
|
|
289
|
+
FirmaBridgeLedgerWallet.prototype.getAddress = function () {
|
|
290
|
+
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
291
|
+
return [2 /*return*/, this.getAddressCallback()];
|
|
292
|
+
}); });
|
|
293
|
+
};
|
|
294
|
+
FirmaBridgeLedgerWallet.prototype.sign = function (message, txtype) {
|
|
295
|
+
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
296
|
+
return [2 /*return*/, this.signCallback(message, txtype)];
|
|
297
|
+
}); });
|
|
298
|
+
};
|
|
299
|
+
return FirmaBridgeLedgerWallet;
|
|
300
|
+
}());
|
|
301
|
+
exports.FirmaBridgeLedgerWallet = FirmaBridgeLedgerWallet;
|
|
@@ -11,7 +11,7 @@ export declare class ITxClient {
|
|
|
11
11
|
private rawWallet;
|
|
12
12
|
constructor(wallet: FirmaWalletService, serverUrl: string, registry: Registry);
|
|
13
13
|
getRegistry(): Registry;
|
|
14
|
-
sign(msgs: EncodeObject[], { fee, memo }: SignAndBroadcastOptions): Promise<TxRaw>;
|
|
14
|
+
sign(msgs: EncodeObject[], { fee, memo }: SignAndBroadcastOptions, simulate?: boolean): Promise<TxRaw>;
|
|
15
15
|
broadcast(txRaw: TxRaw): Promise<DeliverTxResponse>;
|
|
16
16
|
broadcastTxBytes(txBytes: Uint8Array): Promise<DeliverTxResponse>;
|
|
17
17
|
signAndBroadcast(msgs: EncodeObject[], { fee, memo }: SignAndBroadcastOptions): Promise<DeliverTxResponse>;
|
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.ITxClient = void 0;
|
|
40
40
|
var tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
|
|
41
41
|
var SigningStargateClient_1 = require("./SigningStargateClient");
|
|
42
|
+
var StargateClient_1 = require("./StargateClient");
|
|
42
43
|
var ITxClient = /** @class */ (function () {
|
|
43
44
|
function ITxClient(wallet, serverUrl, registry) {
|
|
44
45
|
this.wallet = wallet;
|
|
@@ -47,15 +48,16 @@ var ITxClient = /** @class */ (function () {
|
|
|
47
48
|
this.rawWallet = wallet.getRawWallet();
|
|
48
49
|
}
|
|
49
50
|
ITxClient.prototype.getRegistry = function () { return this.registry; };
|
|
50
|
-
ITxClient.prototype.sign = function (msgs, _a) {
|
|
51
|
+
ITxClient.prototype.sign = function (msgs, _a, simulate) {
|
|
51
52
|
var fee = _a.fee, memo = _a.memo;
|
|
53
|
+
if (simulate === void 0) { simulate = false; }
|
|
52
54
|
return __awaiter(this, void 0, void 0, function () {
|
|
53
55
|
var client, address;
|
|
54
56
|
return __generator(this, function (_b) {
|
|
55
57
|
switch (_b.label) {
|
|
56
58
|
case 0:
|
|
57
59
|
if (!this.wallet.isLedger()) return [3 /*break*/, 1];
|
|
58
|
-
return [2 /*return*/, this.wallet.signLedger(msgs, { fee: fee, memo: memo }, this.registry)];
|
|
60
|
+
return [2 /*return*/, this.wallet.signLedger(msgs, { fee: fee, memo: memo }, this.registry, simulate)];
|
|
59
61
|
case 1: return [4 /*yield*/, SigningStargateClient_1.SigningStargateClient.connectWithSigner(this.serverUrl, this.rawWallet, { registry: this.registry })];
|
|
60
62
|
case 2:
|
|
61
63
|
client = _b.sent();
|
|
@@ -73,7 +75,7 @@ var ITxClient = /** @class */ (function () {
|
|
|
73
75
|
var client, txBytes;
|
|
74
76
|
return __generator(this, function (_a) {
|
|
75
77
|
switch (_a.label) {
|
|
76
|
-
case 0: return [4 /*yield*/,
|
|
78
|
+
case 0: return [4 /*yield*/, StargateClient_1.StargateClient.connect(this.serverUrl)];
|
|
77
79
|
case 1:
|
|
78
80
|
client = _a.sent();
|
|
79
81
|
txBytes = tx_1.TxRaw.encode(txRaw).finish();
|
|
@@ -88,7 +90,7 @@ var ITxClient = /** @class */ (function () {
|
|
|
88
90
|
var client;
|
|
89
91
|
return __generator(this, function (_a) {
|
|
90
92
|
switch (_a.label) {
|
|
91
|
-
case 0: return [4 /*yield*/,
|
|
93
|
+
case 0: return [4 /*yield*/, StargateClient_1.StargateClient.connect(this.serverUrl)];
|
|
92
94
|
case 1:
|
|
93
95
|
client = _a.sent();
|
|
94
96
|
return [4 /*yield*/, client.broadcastTx(txBytes)];
|