@firmachain/firma-js 0.2.37 → 0.2.40

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 (181) hide show
  1. package/dist/index.d.ts +16 -0
  2. package/dist/index.js +32 -0
  3. package/dist/sdk/FirmaAuthzService.d.ts +41 -0
  4. package/dist/sdk/FirmaAuthzService.js +633 -0
  5. package/dist/sdk/FirmaBankService.d.ts +17 -0
  6. package/dist/sdk/FirmaBankService.js +236 -0
  7. package/dist/sdk/FirmaChainService.d.ts +8 -0
  8. package/dist/sdk/FirmaChainService.js +86 -0
  9. package/dist/sdk/FirmaConfig.d.ts +18 -0
  10. package/dist/sdk/FirmaConfig.js +63 -0
  11. package/dist/sdk/FirmaContractService.d.ts +32 -0
  12. package/dist/sdk/FirmaContractService.js +434 -0
  13. package/dist/sdk/FirmaCosmWasmService.d.ts +38 -0
  14. package/dist/sdk/FirmaCosmWasmService.js +667 -0
  15. package/dist/sdk/FirmaDistributionService.d.ts +32 -0
  16. package/dist/sdk/FirmaDistributionService.js +527 -0
  17. package/dist/sdk/FirmaFeeGrantService.d.ts +21 -0
  18. package/dist/sdk/FirmaFeeGrantService.js +341 -0
  19. package/dist/sdk/FirmaGovService.d.ts +35 -0
  20. package/dist/sdk/FirmaGovService.js +775 -0
  21. package/dist/sdk/FirmaIbcService.d.ts +15 -0
  22. package/dist/sdk/FirmaIbcService.js +144 -0
  23. package/dist/sdk/FirmaIpfsService.d.ts +10 -0
  24. package/dist/sdk/FirmaIpfsService.js +143 -0
  25. package/dist/sdk/FirmaMobileSDK.d.ts +29 -0
  26. package/dist/sdk/FirmaMobileSDK.js +48 -0
  27. package/dist/sdk/FirmaNftService.d.ts +31 -0
  28. package/dist/sdk/FirmaNftService.js +372 -0
  29. package/dist/sdk/FirmaSDK.d.ts +35 -0
  30. package/dist/sdk/FirmaSDK.js +57 -0
  31. package/dist/sdk/FirmaSlashingService.d.ts +9 -0
  32. package/dist/sdk/FirmaSlashingService.js +105 -0
  33. package/dist/sdk/FirmaStakingService.d.ts +47 -0
  34. package/dist/sdk/FirmaStakingService.js +611 -0
  35. package/dist/sdk/FirmaTokenService.d.ts +26 -0
  36. package/dist/sdk/FirmaTokenService.js +416 -0
  37. package/dist/sdk/FirmaUtil.d.ts +56 -0
  38. package/dist/sdk/FirmaUtil.js +430 -0
  39. package/dist/sdk/FirmaWalletService.d.ts +39 -0
  40. package/dist/sdk/FirmaWalletService.js +317 -0
  41. package/dist/sdk/firmachain/amino/addresses.d.ts +5 -0
  42. package/dist/sdk/firmachain/amino/addresses.js +46 -0
  43. package/dist/sdk/firmachain/amino/aminomsgs.d.ts +281 -0
  44. package/dist/sdk/firmachain/amino/aminomsgs.js +77 -0
  45. package/dist/sdk/firmachain/amino/aminotypes.d.ts +22 -0
  46. package/dist/sdk/firmachain/amino/aminotypes.js +525 -0
  47. package/dist/sdk/firmachain/amino/coins.d.ts +30 -0
  48. package/dist/sdk/firmachain/amino/coins.js +69 -0
  49. package/dist/sdk/firmachain/amino/encoding.d.ts +24 -0
  50. package/dist/sdk/firmachain/amino/encoding.js +238 -0
  51. package/dist/sdk/firmachain/amino/multisig.d.ts +10 -0
  52. package/dist/sdk/firmachain/amino/multisig.js +42 -0
  53. package/dist/sdk/firmachain/amino/paths.d.ts +6 -0
  54. package/dist/sdk/firmachain/amino/paths.js +18 -0
  55. package/dist/sdk/firmachain/amino/pubkeys.d.ts +47 -0
  56. package/dist/sdk/firmachain/amino/pubkeys.js +29 -0
  57. package/dist/sdk/firmachain/amino/signature.d.ts +16 -0
  58. package/dist/sdk/firmachain/amino/signature.js +36 -0
  59. package/dist/sdk/firmachain/amino/signdoc.d.ts +26 -0
  60. package/dist/sdk/firmachain/amino/signdoc.js +42 -0
  61. package/dist/sdk/firmachain/amino/signer.d.ts +32 -0
  62. package/dist/sdk/firmachain/amino/signer.js +2 -0
  63. package/dist/sdk/firmachain/amino/stdtx.d.ts +15 -0
  64. package/dist/sdk/firmachain/amino/stdtx.js +17 -0
  65. package/dist/sdk/firmachain/amino/wallet.d.ts +32 -0
  66. package/dist/sdk/firmachain/amino/wallet.js +136 -0
  67. package/dist/sdk/firmachain/authz/AuthzQueryClient.d.ts +48 -0
  68. package/dist/sdk/firmachain/authz/AuthzQueryClient.js +142 -0
  69. package/dist/sdk/firmachain/authz/AuthzTxClient.d.ts +23 -0
  70. package/dist/sdk/firmachain/authz/AuthzTxClient.js +47 -0
  71. package/dist/sdk/firmachain/authz/AuthzTxTypes.d.ts +147 -0
  72. package/dist/sdk/firmachain/authz/AuthzTxTypes.js +358 -0
  73. package/dist/sdk/firmachain/authz/index.d.ts +4 -0
  74. package/dist/sdk/firmachain/authz/index.js +20 -0
  75. package/dist/sdk/firmachain/bank/BankQueryClient.d.ts +12 -0
  76. package/dist/sdk/firmachain/bank/BankQueryClient.js +116 -0
  77. package/dist/sdk/firmachain/bank/BankTxClient.d.ts +18 -0
  78. package/dist/sdk/firmachain/bank/BankTxClient.js +43 -0
  79. package/dist/sdk/firmachain/bank/index.d.ts +3 -0
  80. package/dist/sdk/firmachain/bank/index.js +19 -0
  81. package/dist/sdk/firmachain/common/CommonTxClient.d.ts +7 -0
  82. package/dist/sdk/firmachain/common/CommonTxClient.js +79 -0
  83. package/dist/sdk/firmachain/common/ITxClient.d.ts +18 -0
  84. package/dist/sdk/firmachain/common/ITxClient.js +117 -0
  85. package/dist/sdk/firmachain/common/LedgerSigningStargateClient.d.ts +27 -0
  86. package/dist/sdk/firmachain/common/LedgerSigningStargateClient.js +165 -0
  87. package/dist/sdk/firmachain/common/LedgerWallet.d.ts +14 -0
  88. package/dist/sdk/firmachain/common/LedgerWallet.js +151 -0
  89. package/dist/sdk/firmachain/common/QueryCommon.d.ts +4 -0
  90. package/dist/sdk/firmachain/common/QueryCommon.js +2 -0
  91. package/dist/sdk/firmachain/common/TendermintQueryClient.d.ts +42 -0
  92. package/dist/sdk/firmachain/common/TendermintQueryClient.js +111 -0
  93. package/dist/sdk/firmachain/common/TxCommon.d.ts +87 -0
  94. package/dist/sdk/firmachain/common/TxCommon.js +18 -0
  95. package/dist/sdk/firmachain/common/accounts.d.ts +16 -0
  96. package/dist/sdk/firmachain/common/accounts.js +64 -0
  97. package/dist/sdk/firmachain/common/index.d.ts +2 -0
  98. package/dist/sdk/firmachain/common/index.js +18 -0
  99. package/dist/sdk/firmachain/common/signing.d.ts +10 -0
  100. package/dist/sdk/firmachain/common/signing.js +79 -0
  101. package/dist/sdk/firmachain/common/signingaminostargateclient.d.ts +50 -0
  102. package/dist/sdk/firmachain/common/signingaminostargateclient.js +267 -0
  103. package/dist/sdk/firmachain/common/signingstargateclient.d.ts +44 -0
  104. package/dist/sdk/firmachain/common/signingstargateclient.js +361 -0
  105. package/dist/sdk/firmachain/common/stargateclient.d.ts +46 -0
  106. package/dist/sdk/firmachain/common/stargateclient.js +211 -0
  107. package/dist/sdk/firmachain/contract/ContractQueryClient.d.ts +32 -0
  108. package/dist/sdk/firmachain/contract/ContractQueryClient.js +156 -0
  109. package/dist/sdk/firmachain/contract/ContractTxClient.d.ts +18 -0
  110. package/dist/sdk/firmachain/contract/ContractTxClient.js +43 -0
  111. package/dist/sdk/firmachain/contract/ContractTxTypes.d.ts +69 -0
  112. package/dist/sdk/firmachain/contract/ContractTxTypes.js +483 -0
  113. package/dist/sdk/firmachain/contract/index.d.ts +3 -0
  114. package/dist/sdk/firmachain/contract/index.js +19 -0
  115. package/dist/sdk/firmachain/cosmwasm/CosmWasmQueryClient.d.ts +52 -0
  116. package/dist/sdk/firmachain/cosmwasm/CosmWasmQueryClient.js +193 -0
  117. package/dist/sdk/firmachain/cosmwasm/CosmWasmTxClient.d.ts +38 -0
  118. package/dist/sdk/firmachain/cosmwasm/CosmWasmTxClient.js +59 -0
  119. package/dist/sdk/firmachain/cosmwasm/index.d.ts +3 -0
  120. package/dist/sdk/firmachain/cosmwasm/index.js +19 -0
  121. package/dist/sdk/firmachain/distribution/DistributionQueryClient.d.ts +18 -0
  122. package/dist/sdk/firmachain/distribution/DistributionQueryClient.js +167 -0
  123. package/dist/sdk/firmachain/distribution/DistributionTxClient.d.ts +28 -0
  124. package/dist/sdk/firmachain/distribution/DistributionTxClient.js +51 -0
  125. package/dist/sdk/firmachain/distribution/index.d.ts +3 -0
  126. package/dist/sdk/firmachain/distribution/index.js +19 -0
  127. package/dist/sdk/firmachain/feegrant/FeeGrantQueryClient.d.ts +17 -0
  128. package/dist/sdk/firmachain/feegrant/FeeGrantQueryClient.js +86 -0
  129. package/dist/sdk/firmachain/feegrant/FeeGrantTxClient.d.ts +18 -0
  130. package/dist/sdk/firmachain/feegrant/FeeGrantTxClient.js +43 -0
  131. package/dist/sdk/firmachain/feegrant/FeeGrantTxTypes.d.ts +76 -0
  132. package/dist/sdk/firmachain/feegrant/FeeGrantTxTypes.js +194 -0
  133. package/dist/sdk/firmachain/feegrant/index.d.ts +3 -0
  134. package/dist/sdk/firmachain/feegrant/index.js +19 -0
  135. package/dist/sdk/firmachain/google/protobuf/any.d.ts +128 -0
  136. package/dist/sdk/firmachain/google/protobuf/any.js +106 -0
  137. package/dist/sdk/firmachain/google/protobuf/descriptor.d.ts +996 -0
  138. package/dist/sdk/firmachain/google/protobuf/descriptor.js +5329 -0
  139. package/dist/sdk/firmachain/google/protobuf/duration.d.ts +91 -0
  140. package/dist/sdk/firmachain/google/protobuf/duration.js +107 -0
  141. package/dist/sdk/firmachain/google/protobuf/timestamp.d.ts +109 -0
  142. package/dist/sdk/firmachain/google/protobuf/timestamp.js +107 -0
  143. package/dist/sdk/firmachain/gov/GovQueryClient.d.ts +61 -0
  144. package/dist/sdk/firmachain/gov/GovQueryClient.js +152 -0
  145. package/dist/sdk/firmachain/gov/GovTxClient.d.ts +23 -0
  146. package/dist/sdk/firmachain/gov/GovTxClient.js +47 -0
  147. package/dist/sdk/firmachain/gov/index.d.ts +3 -0
  148. package/dist/sdk/firmachain/gov/index.js +19 -0
  149. package/dist/sdk/firmachain/ibc/IbcQueryClient.d.ts +34 -0
  150. package/dist/sdk/firmachain/ibc/IbcQueryClient.js +71 -0
  151. package/dist/sdk/firmachain/ibc/IbcTxClient.d.ts +13 -0
  152. package/dist/sdk/firmachain/ibc/IbcTxClient.js +39 -0
  153. package/dist/sdk/firmachain/ibc/index.d.ts +3 -0
  154. package/dist/sdk/firmachain/ibc/index.js +19 -0
  155. package/dist/sdk/firmachain/nft/NftQueryClient.d.ts +20 -0
  156. package/dist/sdk/firmachain/nft/NftQueryClient.js +125 -0
  157. package/dist/sdk/firmachain/nft/NftTxClient.d.ts +23 -0
  158. package/dist/sdk/firmachain/nft/NftTxClient.js +47 -0
  159. package/dist/sdk/firmachain/nft/NftTxTypes.d.ts +86 -0
  160. package/dist/sdk/firmachain/nft/NftTxTypes.js +424 -0
  161. package/dist/sdk/firmachain/nft/index.d.ts +3 -0
  162. package/dist/sdk/firmachain/nft/index.js +19 -0
  163. package/dist/sdk/firmachain/slashing/SlashingQueryClient.d.ts +22 -0
  164. package/dist/sdk/firmachain/slashing/SlashingQueryClient.js +101 -0
  165. package/dist/sdk/firmachain/slashing/index.d.ts +2 -0
  166. package/dist/sdk/firmachain/slashing/index.js +18 -0
  167. package/dist/sdk/firmachain/staking/StakingQueryClient.d.ts +106 -0
  168. package/dist/sdk/firmachain/staking/StakingQueryClient.js +243 -0
  169. package/dist/sdk/firmachain/staking/StakingTxClient.d.ts +33 -0
  170. package/dist/sdk/firmachain/staking/StakingTxClient.js +55 -0
  171. package/dist/sdk/firmachain/staking/index.d.ts +3 -0
  172. package/dist/sdk/firmachain/staking/index.js +19 -0
  173. package/dist/sdk/firmachain/token/TokenQueryClient.d.ts +24 -0
  174. package/dist/sdk/firmachain/token/TokenQueryClient.js +106 -0
  175. package/dist/sdk/firmachain/token/TokenTxClient.d.ts +28 -0
  176. package/dist/sdk/firmachain/token/TokenTxClient.js +51 -0
  177. package/dist/sdk/firmachain/token/TokenTxTypes.d.ts +116 -0
  178. package/dist/sdk/firmachain/token/TokenTxTypes.js +685 -0
  179. package/dist/sdk/firmachain/token/index.d.ts +3 -0
  180. package/dist/sdk/firmachain/token/index.js +19 -0
  181. package/package.json +3 -7
@@ -0,0 +1,430 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ exports.getSignAndBroadcastOption = exports.DefaultTxMisc = exports.FirmaUtil = void 0;
54
+ var fs_1 = require("fs");
55
+ var tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
56
+ var TendermintQueryClient_1 = require("./firmachain/common/TendermintQueryClient");
57
+ var encoding_1 = require("@cosmjs/encoding");
58
+ var LedgerSigningStargateClient_1 = require("./firmachain/common/LedgerSigningStargateClient");
59
+ var encoding_2 = require("@cosmjs/encoding");
60
+ var crypto_1 = require("@cosmjs/crypto");
61
+ var amino_1 = require("@cosmjs/amino");
62
+ var signingaminostargateclient_1 = require("./firmachain/common/signingaminostargateclient");
63
+ var proto_signing_1 = require("@cosmjs/proto-signing");
64
+ var signingstargateclient_1 = require("./firmachain/common/signingstargateclient");
65
+ var any_1 = require("./firmachain/google/protobuf/any");
66
+ var long_1 = __importDefault(require("long"));
67
+ var CommonTxClient_1 = require("./firmachain/common/CommonTxClient");
68
+ var CryptoJS = require("crypto-js");
69
+ var sha1 = require("crypto-js/sha1");
70
+ var sha256 = require("crypto-js/sha256");
71
+ var encHex = require("crypto-js/enc-hex");
72
+ var FirmaUtil = /** @class */ (function () {
73
+ function FirmaUtil(firmaConfig) {
74
+ FirmaUtil.config = firmaConfig;
75
+ }
76
+ FirmaUtil.getSignAndBroadcastOption = function (denom, txMisc) {
77
+ if (txMisc.memo == null)
78
+ txMisc.memo = "";
79
+ // INFO: if fee or gas data is not set default, those value will be null. So we have to double check it.
80
+ if (txMisc.fee == 0 || txMisc.fee == null)
81
+ txMisc.fee = FirmaUtil.config.defaultFee;
82
+ if (txMisc.gas == 0 || txMisc.gas == null)
83
+ txMisc.gas = FirmaUtil.config.defaultGas;
84
+ if (txMisc.feeGranter == null)
85
+ txMisc.feeGranter = "";
86
+ var gasFeeAmount = { denom: denom, amount: txMisc.fee.toString() };
87
+ var defaultFee = { amount: [gasFeeAmount], gas: txMisc.gas.toString(), granter: txMisc.feeGranter };
88
+ return { fee: defaultFee, memo: txMisc.memo };
89
+ };
90
+ FirmaUtil.getUTokenStringFromTokenStr = function (tokenAmount, decimal) {
91
+ var fct = Number.parseFloat(tokenAmount);
92
+ var decimalMutiplyer = Math.pow(10, decimal);
93
+ var big = fct * decimalMutiplyer;
94
+ return big.toFixed(0);
95
+ };
96
+ FirmaUtil.getTokenStringFromUTokenStr = function (uTokenAmount, decimal) {
97
+ var ufct = Number.parseInt(uTokenAmount);
98
+ var decimalMutiplyer = Math.pow(10, decimal);
99
+ return (ufct / decimalMutiplyer).toString();
100
+ };
101
+ FirmaUtil.getUTokenStringFromToken = function (tokenAmount, decimal) {
102
+ var decimalMutiplyer = Math.pow(10, decimal);
103
+ var big = tokenAmount * decimalMutiplyer;
104
+ return big.toFixed(0);
105
+ };
106
+ FirmaUtil.getUTokenFromToken = function (tokenAmount, decimal) {
107
+ var decimalMutiplyer = Math.pow(10, decimal);
108
+ var big = tokenAmount * decimalMutiplyer;
109
+ var newBig = big.toFixed(0);
110
+ return Number.parseInt(newBig);
111
+ };
112
+ FirmaUtil.arrayBufferToBase64 = function (buffer) {
113
+ return Buffer.from(buffer).toString("base64");
114
+ /*var binary = '';
115
+ var bytes = new Uint8Array(buffer);
116
+ var len = bytes.byteLength;
117
+ for (var i = 0; i < len; i++) {
118
+ binary += String.fromCharCode(bytes[i]);
119
+ }
120
+ return btoa(binary);*/
121
+ };
122
+ FirmaUtil.base64ToArrayBuffer = function (base64) {
123
+ var buffer = Buffer.from(base64, "base64");
124
+ return new Uint8Array(buffer);
125
+ /* var binary_string = atob(base64);
126
+ var len = binary_string.length;
127
+ var bytes = new Uint8Array(len);
128
+ for (var i = 0; i < len; i++) {
129
+ bytes[i] = binary_string.charCodeAt(i);
130
+ }
131
+ return bytes;*/
132
+ };
133
+ FirmaUtil.getTokenStringFromUToken = function (uTokenAmount, decimal) {
134
+ var fixedUTokenAmount = Math.floor(uTokenAmount);
135
+ var decimalMutiplyer = Math.pow(10, decimal);
136
+ return (fixedUTokenAmount / decimalMutiplyer).toString();
137
+ };
138
+ FirmaUtil.getUFCTStringFromFCTStr = function (fctAmount) {
139
+ return this.getUTokenStringFromTokenStr(fctAmount, this.FctDecimal);
140
+ };
141
+ FirmaUtil.getUFCTFromFCT = function (fctAmount) {
142
+ return this.getUTokenFromToken(fctAmount, this.FctDecimal);
143
+ };
144
+ FirmaUtil.getFCTStringFromUFCTStr = function (uFctAmount) {
145
+ return this.getTokenStringFromUTokenStr(uFctAmount, this.FctDecimal);
146
+ };
147
+ FirmaUtil.getUFCTStringFromFCT = function (fctAmount) {
148
+ return this.getUTokenStringFromToken(fctAmount, this.FctDecimal);
149
+ };
150
+ FirmaUtil.getFCTStringFromUFCT = function (uFctAmount) {
151
+ return this.getTokenStringFromUToken(uFctAmount, this.FctDecimal);
152
+ };
153
+ FirmaUtil.getFileHash = function (filePath) {
154
+ return __awaiter(this, void 0, void 0, function () {
155
+ var fileData, data;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0: return [4 /*yield*/, fs_1.promises.readFile(filePath)];
159
+ case 1:
160
+ fileData = _a.sent();
161
+ data = CryptoJS.lib.WordArray.create(fileData.buffer);
162
+ return [2 /*return*/, sha256(data).toString(encHex)];
163
+ }
164
+ });
165
+ });
166
+ };
167
+ FirmaUtil.getFileHashFromBuffer = function (buffer) {
168
+ var data = CryptoJS.lib.WordArray.create(buffer);
169
+ return sha256(data).toString(encHex);
170
+ };
171
+ FirmaUtil.getSha1HashFromString = function (text) {
172
+ var data = CryptoJS.lib.WordArray.create(text);
173
+ return sha1(data).toString(encHex);
174
+ };
175
+ FirmaUtil.getHashFromString = function (text) {
176
+ var data = CryptoJS.lib.WordArray.create(text);
177
+ return sha256(data).toString(encHex);
178
+ };
179
+ FirmaUtil.isValidAddress = function (address) {
180
+ try {
181
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
182
+ encoding_1.Bech32.decode(address).data;
183
+ return true;
184
+ }
185
+ catch (e) {
186
+ }
187
+ return false;
188
+ };
189
+ FirmaUtil.getValOperAddressFromAccAddress = function (address) {
190
+ var data = encoding_1.Bech32.decode(address).data;
191
+ return encoding_1.Bech32.encode(FirmaUtil.config.prefix + "valoper", data);
192
+ };
193
+ FirmaUtil.getAccAddressFromValOperAddress = function (address) {
194
+ var data = encoding_1.Bech32.decode(address).data;
195
+ return encoding_1.Bech32.encode(FirmaUtil.config.prefix, data);
196
+ };
197
+ FirmaUtil.getSignerDataForLedger = function (address) {
198
+ return __awaiter(this, void 0, void 0, function () {
199
+ var signingClient, sequence, error_1;
200
+ return __generator(this, function (_a) {
201
+ switch (_a.label) {
202
+ case 0:
203
+ _a.trys.push([0, 3, , 4]);
204
+ return [4 /*yield*/, LedgerSigningStargateClient_1.LedgerSigningStargateClient.connectWithSigner(FirmaUtil.config.rpcAddress)];
205
+ case 1:
206
+ signingClient = _a.sent();
207
+ return [4 /*yield*/, signingClient.getSignerData(address)];
208
+ case 2:
209
+ sequence = _a.sent();
210
+ return [2 /*return*/, sequence];
211
+ case 3:
212
+ error_1 = _a.sent();
213
+ FirmaUtil.printLog(error_1);
214
+ throw error_1;
215
+ case 4: return [2 /*return*/];
216
+ }
217
+ });
218
+ });
219
+ };
220
+ FirmaUtil.estimateGas = function (txRaw) {
221
+ return __awaiter(this, void 0, void 0, function () {
222
+ var encodedTx, hexTx, queryClient, gas, multiplier, error_2;
223
+ return __generator(this, function (_a) {
224
+ switch (_a.label) {
225
+ case 0:
226
+ _a.trys.push([0, 2, , 3]);
227
+ encodedTx = Uint8Array.from(tx_1.TxRaw.encode(txRaw).finish());
228
+ hexTx = "0x".concat(Buffer.from(encodedTx).toString("hex"));
229
+ queryClient = new TendermintQueryClient_1.TendermintQueryClient(FirmaUtil.config.rpcAddress);
230
+ return [4 /*yield*/, queryClient.queryEstimateGas(hexTx)];
231
+ case 1:
232
+ gas = _a.sent();
233
+ multiplier = 1.15;
234
+ return [2 /*return*/, Math.ceil(gas * multiplier)];
235
+ case 2:
236
+ error_2 = _a.sent();
237
+ FirmaUtil.printLog(error_2);
238
+ throw error_2;
239
+ case 3: return [2 /*return*/];
240
+ }
241
+ });
242
+ });
243
+ };
244
+ FirmaUtil.estimateGasRaw = function (txRaw) {
245
+ return __awaiter(this, void 0, void 0, function () {
246
+ var encodedTx, hexTx, queryClient, gas, multiplier, error_3;
247
+ return __generator(this, function (_a) {
248
+ switch (_a.label) {
249
+ case 0:
250
+ _a.trys.push([0, 2, , 3]);
251
+ encodedTx = Uint8Array.from(txRaw);
252
+ hexTx = "0x".concat(Buffer.from(encodedTx).toString("hex"));
253
+ console.log("hexTx:" + hexTx);
254
+ queryClient = new TendermintQueryClient_1.TendermintQueryClient(FirmaUtil.config.rpcAddress);
255
+ return [4 /*yield*/, queryClient.queryEstimateGas(hexTx)];
256
+ case 1:
257
+ gas = _a.sent();
258
+ multiplier = 1.25;
259
+ return [2 /*return*/, Math.ceil(gas * multiplier)];
260
+ case 2:
261
+ error_3 = _a.sent();
262
+ FirmaUtil.printLog(error_3);
263
+ throw error_3;
264
+ case 3: return [2 /*return*/];
265
+ }
266
+ });
267
+ });
268
+ };
269
+ FirmaUtil.printLog = function (log) {
270
+ if (FirmaUtil.config.isShowLog === false)
271
+ return;
272
+ console.log("[FirmaSDK] ".concat(log));
273
+ };
274
+ FirmaUtil.experimentalAdr36Sign = function (wallet, data) {
275
+ return __awaiter(this, void 0, void 0, function () {
276
+ var registry, aliceClient, address, userData, error_4;
277
+ return __generator(this, function (_a) {
278
+ switch (_a.label) {
279
+ case 0:
280
+ _a.trys.push([0, 4, , 5]);
281
+ registry = new proto_signing_1.Registry();
282
+ return [4 /*yield*/, signingaminostargateclient_1.SigningAminoStargateClient.connectWithSigner(FirmaUtil.config.rpcAddress, wallet.getRawAminoWallet(), registry)];
283
+ case 1:
284
+ aliceClient = _a.sent();
285
+ return [4 /*yield*/, wallet.getAddress()];
286
+ case 2:
287
+ address = _a.sent();
288
+ userData = Buffer.from(data);
289
+ return [4 /*yield*/, aliceClient.experimentalAdr36Sign(address, userData)];
290
+ case 3: return [2 /*return*/, _a.sent()];
291
+ case 4:
292
+ error_4 = _a.sent();
293
+ FirmaUtil.printLog(error_4);
294
+ throw error_4;
295
+ case 5: return [2 /*return*/];
296
+ }
297
+ });
298
+ });
299
+ };
300
+ FirmaUtil.experimentalAdr36Verify = function (data, checkMsg) {
301
+ return __awaiter(this, void 0, void 0, function () {
302
+ var error_5;
303
+ return __generator(this, function (_a) {
304
+ switch (_a.label) {
305
+ case 0:
306
+ _a.trys.push([0, 2, , 3]);
307
+ return [4 /*yield*/, signingaminostargateclient_1.SigningAminoStargateClient.experimentalAdr36Verify(data, checkMsg)];
308
+ case 1: return [2 /*return*/, _a.sent()];
309
+ case 2:
310
+ error_5 = _a.sent();
311
+ FirmaUtil.printLog(error_5);
312
+ throw error_5;
313
+ case 3: return [2 /*return*/];
314
+ }
315
+ });
316
+ });
317
+ };
318
+ FirmaUtil.recoverSigningAddress = function (signature, hash, recoveryIndex) {
319
+ return __awaiter(this, void 0, void 0, function () {
320
+ var sig, extendedSig, recoveredPubKey, _a;
321
+ return __generator(this, function (_b) {
322
+ switch (_b.label) {
323
+ case 0:
324
+ if (recoveryIndex > 3) {
325
+ throw new Error('Invalid recovery index');
326
+ }
327
+ sig = crypto_1.Secp256k1Signature.fromFixedLength((0, encoding_2.fromBase64)(signature));
328
+ extendedSig = new crypto_1.ExtendedSecp256k1Signature(sig.r(), sig.s(), recoveryIndex);
329
+ _b.label = 1;
330
+ case 1:
331
+ _b.trys.push([1, 3, , 4]);
332
+ return [4 /*yield*/, crypto_1.Secp256k1.recoverPubkey(extendedSig, hash)];
333
+ case 2:
334
+ recoveredPubKey = _b.sent();
335
+ return [2 /*return*/, (0, amino_1.pubkeyToAddress)({
336
+ type: 'tendermint/PubKeySecp256k1',
337
+ value: (0, encoding_2.toBase64)(crypto_1.Secp256k1.compressPubkey(recoveredPubKey)),
338
+ }, 'firma')];
339
+ case 3:
340
+ _a = _b.sent();
341
+ return [2 /*return*/, null];
342
+ case 4: return [2 /*return*/];
343
+ }
344
+ });
345
+ });
346
+ };
347
+ FirmaUtil.verifySignature = function (address, signature, hash) {
348
+ return __awaiter(this, void 0, void 0, function () {
349
+ var i, recoveredAddress;
350
+ return __generator(this, function (_a) {
351
+ switch (_a.label) {
352
+ case 0:
353
+ i = 0;
354
+ _a.label = 1;
355
+ case 1:
356
+ if (!(i < 4)) return [3 /*break*/, 4];
357
+ return [4 /*yield*/, this.recoverSigningAddress(signature, hash, i)];
358
+ case 2:
359
+ recoveredAddress = _a.sent();
360
+ if (recoveredAddress === address) {
361
+ return [2 /*return*/, true];
362
+ }
363
+ _a.label = 3;
364
+ case 3:
365
+ i++;
366
+ return [3 /*break*/, 1];
367
+ case 4: return [2 /*return*/, false];
368
+ }
369
+ });
370
+ });
371
+ };
372
+ FirmaUtil.verifyDirectSignature = function (address, signature, signDoc) {
373
+ var messageHash = (0, crypto_1.sha256)((0, proto_signing_1.makeSignBytes)(signDoc));
374
+ return this.verifySignature(address, signature, messageHash);
375
+ };
376
+ ;
377
+ FirmaUtil.parseSignDocValues = function (signDocString) {
378
+ return __assign(__assign({}, signDocString), { bodyBytes: (0, encoding_2.fromHex)(signDocString.bodyBytes), authInfoBytes: (0, encoding_2.fromHex)(signDocString.authInfoBytes), accountNumber: new long_1.default(signDocString.accountNumber) });
379
+ };
380
+ FirmaUtil.stringifySignDocValues = function (signDoc) {
381
+ return __assign(__assign({}, signDoc), { bodyBytes: (0, encoding_2.toHex)(signDoc.bodyBytes), authInfoBytes: (0, encoding_2.toHex)(signDoc.authInfoBytes), accountNumber: signDoc.accountNumber.toString(16) });
382
+ };
383
+ FirmaUtil.makeSignDoc = function (signerAddress, messages, txMisc) {
384
+ if (txMisc === void 0) { txMisc = exports.DefaultTxMisc; }
385
+ return __awaiter(this, void 0, void 0, function () {
386
+ var result, chainID, serverUrl, registry;
387
+ return __generator(this, function (_a) {
388
+ switch (_a.label) {
389
+ case 0:
390
+ result = FirmaUtil.getSignAndBroadcastOption(FirmaUtil.config.denom, txMisc);
391
+ chainID = FirmaUtil.config.chainID;
392
+ serverUrl = FirmaUtil.config.rpcAddress;
393
+ registry = CommonTxClient_1.CommonTxClient.getRegistry();
394
+ return [4 /*yield*/, signingstargateclient_1.SigningStargateClient.makeSignDocForSend(signerAddress, messages, result.fee, result.memo, serverUrl, chainID, registry)];
395
+ case 1: return [2 /*return*/, _a.sent()];
396
+ }
397
+ });
398
+ });
399
+ };
400
+ FirmaUtil.makeSignDocWithStringify = function (signerAddress, messages, txMisc) {
401
+ if (txMisc === void 0) { txMisc = exports.DefaultTxMisc; }
402
+ return __awaiter(this, void 0, void 0, function () {
403
+ var signDoc, stringSignDoc;
404
+ return __generator(this, function (_a) {
405
+ switch (_a.label) {
406
+ case 0: return [4 /*yield*/, this.makeSignDoc(signerAddress, messages, txMisc)];
407
+ case 1:
408
+ signDoc = _a.sent();
409
+ stringSignDoc = this.stringifySignDocValues(signDoc);
410
+ return [2 /*return*/, stringSignDoc];
411
+ }
412
+ });
413
+ });
414
+ };
415
+ FirmaUtil.getAnyData = function (registry, message) {
416
+ var anyData = any_1.Any.fromPartial({
417
+ typeUrl: message.typeUrl,
418
+ value: registry.encode(message)
419
+ });
420
+ return anyData;
421
+ };
422
+ FirmaUtil.getCommonTxClient = function (aliceWallet) {
423
+ return new CommonTxClient_1.CommonTxClient(aliceWallet, FirmaUtil.config.rpcAddress);
424
+ };
425
+ FirmaUtil.FctDecimal = 6;
426
+ return FirmaUtil;
427
+ }());
428
+ exports.FirmaUtil = FirmaUtil;
429
+ exports.DefaultTxMisc = { memo: "", fee: 0, gas: 0, feeGranter: "" };
430
+ exports.getSignAndBroadcastOption = FirmaUtil.getSignAndBroadcastOption;
@@ -0,0 +1,39 @@
1
+ import { DirectSecp256k1Wallet, Registry } from "@cosmjs/proto-signing";
2
+ import { EncodeObject } from "@cosmjs/proto-signing";
3
+ import { FirmaConfig } from "./FirmaConfig";
4
+ import { SignAndBroadcastOptions } from "./firmachain/common";
5
+ import { LedgerWalletInterface } from "./firmachain/common/LedgerWallet";
6
+ import { TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
7
+ import { Secp256k1Wallet } from "@cosmjs/amino";
8
+ export declare class FirmaWalletService {
9
+ private readonly config;
10
+ private mnemonic;
11
+ private privateKey;
12
+ private accountIndex;
13
+ private aminoWallet;
14
+ private wallet;
15
+ private ledger;
16
+ getHdPath(): string;
17
+ getPrefix(): string;
18
+ getRawWallet(): DirectSecp256k1Wallet;
19
+ getRawAminoWallet(): Secp256k1Wallet;
20
+ getPrivateKey(): string;
21
+ getMnemonic(): string;
22
+ isLedger(): boolean;
23
+ initFromLedger(ledger: LedgerWalletInterface): Promise<FirmaWalletService>;
24
+ signLedger(messages: EncodeObject[], option: SignAndBroadcastOptions, registry: Registry): Promise<TxRaw>;
25
+ getAddress(): Promise<string>;
26
+ constructor(config: FirmaConfig);
27
+ private static getHdPath;
28
+ initFromMnemonic(mnemonic: string, accountIndex?: number): Promise<{
29
+ success: boolean;
30
+ }>;
31
+ private getPrivateKeyInternal;
32
+ initFromPrivateKey(privateKey: string): Promise<void>;
33
+ decryptData(data: string): string;
34
+ encryptData(data: string): string;
35
+ newWallet(): Promise<FirmaWalletService>;
36
+ fromMnemonic(mnemonic: string, accountIndex?: number): Promise<FirmaWalletService>;
37
+ fromPrivateKey(privateKey: string): Promise<FirmaWalletService>;
38
+ generateMnemonic(): Promise<string>;
39
+ }