@firmachain/firma-js 0.3.8 → 0.4.0-beta2

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.
Files changed (131) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +1 -0
  3. package/dist/sdk/FirmaAuthzService.js +20 -15
  4. package/dist/sdk/FirmaBankService.d.ts +1 -1
  5. package/dist/sdk/FirmaBankService.js +5 -4
  6. package/dist/sdk/FirmaConfig.js +4 -4
  7. package/dist/sdk/FirmaContractService.js +10 -8
  8. package/dist/sdk/FirmaDistributionService.js +20 -15
  9. package/dist/sdk/FirmaFeeGrantService.d.ts +0 -1
  10. package/dist/sdk/FirmaFeeGrantService.js +12 -14
  11. package/dist/sdk/FirmaGovService.d.ts +14 -0
  12. package/dist/sdk/FirmaGovService.js +58 -37
  13. package/dist/sdk/FirmaIbcService.js +4 -3
  14. package/dist/sdk/FirmaNftService.d.ts +3 -3
  15. package/dist/sdk/FirmaNftService.js +13 -10
  16. package/dist/sdk/FirmaStakingService.d.ts +4 -0
  17. package/dist/sdk/FirmaStakingService.js +58 -33
  18. package/dist/sdk/FirmaTokenService.js +17 -14
  19. package/dist/sdk/FirmaUtil.js +1 -1
  20. package/dist/sdk/FirmaWalletService.d.ts +1 -1
  21. package/dist/sdk/FirmaWalletService.js +11 -23
  22. package/dist/sdk/firmachain/authz/AuthzTxClient.js +2 -0
  23. package/dist/sdk/firmachain/bank/BankTxClient.js +1 -1
  24. package/dist/sdk/firmachain/common/CommonTxClient.js +3 -1
  25. package/dist/sdk/firmachain/common/FirmaLedger.d.ts +49 -0
  26. package/dist/sdk/firmachain/common/FirmaLedger.js +301 -0
  27. package/dist/sdk/firmachain/common/ITxClient.d.ts +1 -1
  28. package/dist/sdk/firmachain/common/ITxClient.js +6 -4
  29. package/dist/sdk/firmachain/common/LedgerWallet.d.ts +5 -13
  30. package/dist/sdk/firmachain/common/LedgerWallet.js +1266 -124
  31. package/dist/sdk/firmachain/common/SigningProtobufStargateClient.js +3 -4
  32. package/dist/sdk/firmachain/common/SigningStargateClient.d.ts +2 -3
  33. package/dist/sdk/firmachain/common/SigningStargateClient.js +7 -10
  34. package/dist/sdk/firmachain/common/index.d.ts +1 -0
  35. package/dist/sdk/firmachain/common/index.js +1 -0
  36. package/dist/sdk/firmachain/common/signing.d.ts +4 -10
  37. package/dist/sdk/firmachain/common/signing.js +13 -60
  38. package/dist/sdk/firmachain/contract/ContractTxClient.js +1 -1
  39. package/dist/sdk/firmachain/contract/ContractTxTypes.js +54 -8
  40. package/dist/sdk/firmachain/distribution/DistributionTxClient.js +1 -1
  41. package/dist/sdk/firmachain/feegrant/FeeGrantTxClient.js +3 -1
  42. package/dist/sdk/firmachain/feegrant/FeeGrantTxTypes.d.ts +1 -2
  43. package/dist/sdk/firmachain/google/protobuf/any.js +0 -12
  44. package/dist/sdk/firmachain/gov/GovTxClient.js +3 -0
  45. package/dist/sdk/firmachain/nft/NftTxClient.js +1 -1
  46. package/dist/sdk/firmachain/staking/StakingQueryClient.d.ts +15 -0
  47. package/dist/sdk/firmachain/staking/StakingQueryClient.js +109 -0
  48. package/dist/sdk/firmachain/token/TokenTxClient.js +1 -1
  49. package/package.json +18 -9
  50. package/dist/test/00.wallet.test.d.ts +0 -1
  51. package/dist/test/00.wallet.test.js +0 -96
  52. package/dist/test/01.contract_tx.test.d.ts +0 -1
  53. package/dist/test/01.contract_tx.test.js +0 -157
  54. package/dist/test/02.contract_query.test.d.ts +0 -1
  55. package/dist/test/02.contract_query.test.js +0 -245
  56. package/dist/test/03.contract_scenario.test.d.ts +0 -1
  57. package/dist/test/03.contract_scenario.test.js +0 -406
  58. package/dist/test/04.bank_tx.test.d.ts +0 -1
  59. package/dist/test/04.bank_tx.test.js +0 -126
  60. package/dist/test/05.bank_query.test.d.ts +0 -1
  61. package/dist/test/05.bank_query.test.js +0 -162
  62. package/dist/test/06.feegrant_tx.test.d.ts +0 -1
  63. package/dist/test/06.feegrant_tx.test.js +0 -185
  64. package/dist/test/07.feegrant_query.test.d.ts +0 -1
  65. package/dist/test/07.feegrant_query.test.js +0 -129
  66. package/dist/test/08.gas_estimate.test.d.ts +0 -1
  67. package/dist/test/08.gas_estimate.test.js +0 -728
  68. package/dist/test/09.ipfs.test.d.ts +0 -1
  69. package/dist/test/09.ipfs.test.js +0 -72
  70. package/dist/test/10.nft_tx.test.d.ts +0 -1
  71. package/dist/test/10.nft_tx.test.js +0 -209
  72. package/dist/test/11.nft_query.test.d.ts +0 -1
  73. package/dist/test/11.nft_query.test.js +0 -165
  74. package/dist/test/12.staking_tx.test.d.ts +0 -1
  75. package/dist/test/12.staking_tx.test.js +0 -211
  76. package/dist/test/13.staking_query.test.d.ts +0 -1
  77. package/dist/test/13.staking_query.test.js +0 -275
  78. package/dist/test/14.distribution_tx.test.d.ts +0 -1
  79. package/dist/test/14.distribution_tx.test.js +0 -170
  80. package/dist/test/15.distribution_query.test.d.ts +0 -1
  81. package/dist/test/15.distribution_query.test.js +0 -243
  82. package/dist/test/16.gov_tx.test.d.ts +0 -1
  83. package/dist/test/16.gov_tx.test.js +0 -394
  84. package/dist/test/17.gov_query.test.d.ts +0 -1
  85. package/dist/test/17.gov_query.test.js +0 -181
  86. package/dist/test/18.util.test.d.ts +0 -1
  87. package/dist/test/18.util.test.js +0 -354
  88. package/dist/test/19.chain.test.d.ts +0 -1
  89. package/dist/test/19.chain.test.js +0 -127
  90. package/dist/test/20.slashing_query.test.d.ts +0 -1
  91. package/dist/test/20.slashing_query.test.js +0 -111
  92. package/dist/test/21.token_tx.test.d.ts +0 -1
  93. package/dist/test/21.token_tx.test.js +0 -149
  94. package/dist/test/22.token_query.test.d.ts +0 -1
  95. package/dist/test/22.token_query.test.js +0 -103
  96. package/dist/test/23.authz_tx.test.d.ts +0 -1
  97. package/dist/test/23.authz_tx.test.js +0 -380
  98. package/dist/test/24.authz_query.test.d.ts +0 -1
  99. package/dist/test/24.authz_query.test.js +0 -202
  100. package/dist/test/25.cosmwasm_tx.test.d.ts +0 -1
  101. package/dist/test/25.cosmwasm_tx.test.js +0 -229
  102. package/dist/test/26.cosmwasm_query.test.d.ts +0 -1
  103. package/dist/test/26.cosmwasm_query.test.js +0 -275
  104. package/dist/test/27.arbitrary_sign.test.d.ts +0 -1
  105. package/dist/test/27.arbitrary_sign.test.js +0 -162
  106. package/dist/test/28.ibc_tx.test.d.ts +0 -1
  107. package/dist/test/28.ibc_tx.test.js +0 -98
  108. package/dist/test/29.mint_query.test.d.ts +0 -1
  109. package/dist/test/29.mint_query.test.js +0 -59
  110. package/dist/test/30.cw20_tx.test.d.ts +0 -1
  111. package/dist/test/30.cw20_tx.test.js +0 -450
  112. package/dist/test/31.cw20_query.test.d.ts +0 -1
  113. package/dist/test/31.cw20_query.test.js +0 -333
  114. package/dist/test/32.cw721_tx.test.d.ts +0 -1
  115. package/dist/test/32.cw721_tx.test.js +0 -431
  116. package/dist/test/33.cw721_query.test.d.ts +0 -1
  117. package/dist/test/33.cw721_query.test.js +0 -371
  118. package/dist/test/34.cw_bridge_tx.test.d.ts +0 -1
  119. package/dist/test/34.cw_bridge_tx.test.js +0 -476
  120. package/dist/test/35.cw_bridge_tx_low.test.d.ts +0 -1
  121. package/dist/test/35.cw_bridge_tx_low.test.js +0 -398
  122. package/dist/test/36.cw_bridge_query.test.d.ts +0 -1
  123. package/dist/test/36.cw_bridge_query.test.js +0 -318
  124. package/dist/test/37.cw_marketplace_tx.test.d.ts +0 -1
  125. package/dist/test/37.cw_marketplace_tx.test.js +0 -794
  126. package/dist/test/38.cw_marketplace_query.test.d.ts +0 -1
  127. package/dist/test/38.cw_marketplace_query.test.js +0 -128
  128. package/dist/test/config_test.d.ts +0 -11
  129. package/dist/test/config_test.js +0 -26
  130. package/dist/test/config_test.sample.d.ts +0 -11
  131. package/dist/test/config_test.sample.js +0 -14
@@ -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*/, SigningStargateClient_1.SigningStargateClient.connectWithSigner(this.serverUrl, this.rawWallet, { registry: this.registry })];
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*/, SigningStargateClient_1.SigningStargateClient.connectWithSigner(this.serverUrl, this.rawWallet, { registry: this.registry })];
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)];
@@ -3,7 +3,7 @@ import { TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
3
3
  import { SignAndBroadcastOptions } from "./TxCommon";
4
4
  export interface LedgerWalletInterface {
5
5
  getAddress(): Promise<string>;
6
- sign(message: string): Promise<Uint8Array>;
6
+ sign(message: string | Uint8Array, txtype?: number): Promise<Uint8Array>;
7
7
  getPublicKey(): Promise<Uint8Array>;
8
8
  getAddressAndPublicKey(): Promise<{
9
9
  address: string;
@@ -16,15 +16,7 @@ export interface SignerData {
16
16
  readonly sequence: number;
17
17
  readonly chain_id: string;
18
18
  }
19
- /**
20
- * Signs a protobuf-based Cosmos transaction using a general Signer
21
- * compatible with SIGN_MODE_DIRECT (e.g. Ledger, Keplr, etc.)
22
- *
23
- * @param signer - SignerInterface instance
24
- * @param messages - Cosmos transaction messages
25
- * @param signerData - Chain ID, account number, sequence
26
- * @param option - Fee, memo, granter info
27
- * @param registry - Protobuf registry for message encoding
28
- * @returns TxRaw - fully signed transaction
29
- */
30
- export declare function signWithSignerProtobuf(signer: LedgerWalletInterface, messages: EncodeObject[], signerData: SignerData, option: SignAndBroadcastOptions, registry: Registry): Promise<TxRaw>;
19
+ export declare function signWithSignerAmino(signer: LedgerWalletInterface, messages: EncodeObject[], signerData: SignerData, option: SignAndBroadcastOptions, registry: Registry): Promise<TxRaw>;
20
+ export declare function signWithSignerAuto(signer: LedgerWalletInterface, messages: EncodeObject[], signerData: SignerData, option: SignAndBroadcastOptions, registry: Registry, restApiAddress?: string, simulate?: boolean): Promise<TxRaw>;
21
+ export declare function buildSimulationTxRawLedger(signer: LedgerWalletInterface, messages: EncodeObject[], signerData: SignerData, option: SignAndBroadcastOptions, registry: Registry): Promise<TxRaw>;
22
+ export declare function signWithSignerTextual(signer: LedgerWalletInterface, messages: EncodeObject[], signerData: SignerData, option: SignAndBroadcastOptions, registry: Registry, restApiAddress?: string): Promise<TxRaw>;