@firmachain/firma-js 0.2.17 → 0.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +136 -136
- package/dist/index.d.ts +4 -0
- package/dist/index.js +16 -0
- package/dist/sdk/FirmaBankService.d.ts +15 -0
- package/dist/sdk/FirmaBankService.js +211 -0
- package/dist/sdk/FirmaChainService.d.ts +8 -0
- package/dist/sdk/FirmaChainService.js +86 -0
- package/dist/sdk/FirmaConfig.d.ts +16 -0
- package/dist/sdk/FirmaConfig.js +55 -0
- package/dist/sdk/FirmaContractService.d.ts +31 -0
- package/dist/sdk/FirmaContractService.js +413 -0
- package/dist/sdk/FirmaDistributionService.d.ts +31 -0
- package/dist/sdk/FirmaDistributionService.js +524 -0
- package/dist/sdk/FirmaFeeGrantService.d.ts +21 -0
- package/dist/sdk/FirmaFeeGrantService.js +341 -0
- package/dist/sdk/FirmaGovService.d.ts +35 -0
- package/dist/sdk/FirmaGovService.js +775 -0
- package/dist/sdk/FirmaIpfsService.d.ts +12 -0
- package/dist/sdk/FirmaIpfsService.js +185 -0
- package/dist/sdk/FirmaMobileSDK.d.ts +27 -0
- package/dist/sdk/FirmaMobileSDK.js +45 -0
- package/dist/sdk/FirmaNftService.d.ts +31 -0
- package/dist/sdk/FirmaNftService.js +372 -0
- package/dist/sdk/FirmaSDK.d.ts +29 -0
- package/dist/sdk/FirmaSDK.js +48 -0
- package/dist/sdk/FirmaSlashingService.d.ts +9 -0
- package/dist/sdk/FirmaSlashingService.js +105 -0
- package/dist/sdk/FirmaStakingService.d.ts +34 -0
- package/dist/sdk/FirmaStakingService.js +604 -0
- package/dist/sdk/FirmaTokenService.d.ts +26 -0
- package/dist/sdk/FirmaTokenService.js +416 -0
- package/dist/sdk/FirmaUtil.d.ts +26 -0
- package/dist/sdk/FirmaUtil.js +210 -0
- package/dist/sdk/FirmaWalletService.d.ts +36 -0
- package/dist/sdk/FirmaWalletService.js +309 -0
- package/dist/sdk/firmachain/amino/addresses.d.ts +5 -0
- package/dist/sdk/firmachain/amino/addresses.js +46 -0
- package/dist/sdk/firmachain/amino/aminomsgs.d.ts +281 -0
- package/dist/sdk/firmachain/amino/aminomsgs.js +77 -0
- package/dist/sdk/firmachain/amino/aminotypes.d.ts +22 -0
- package/dist/sdk/firmachain/amino/aminotypes.js +521 -0
- package/dist/sdk/firmachain/amino/coins.d.ts +30 -0
- package/dist/sdk/firmachain/amino/coins.js +69 -0
- package/dist/sdk/firmachain/amino/encoding.d.ts +24 -0
- package/dist/sdk/firmachain/amino/encoding.js +234 -0
- package/dist/sdk/firmachain/amino/multisig.d.ts +10 -0
- package/dist/sdk/firmachain/amino/multisig.js +42 -0
- package/dist/sdk/firmachain/amino/paths.d.ts +6 -0
- package/dist/sdk/firmachain/amino/paths.js +18 -0
- package/dist/sdk/firmachain/amino/pubkeys.d.ts +47 -0
- package/dist/sdk/firmachain/amino/pubkeys.js +29 -0
- package/dist/sdk/firmachain/amino/secp256k1hdwallet.d.ts +94 -0
- package/dist/sdk/firmachain/amino/secp256k1hdwallet.js +437 -0
- package/dist/sdk/firmachain/amino/secp256k1wallet.d.ts +23 -0
- package/dist/sdk/firmachain/amino/secp256k1wallet.js +141 -0
- package/dist/sdk/firmachain/amino/signature.d.ts +16 -0
- package/dist/sdk/firmachain/amino/signature.js +36 -0
- package/dist/sdk/firmachain/amino/signdoc.d.ts +26 -0
- package/dist/sdk/firmachain/amino/signdoc.js +42 -0
- package/dist/sdk/firmachain/amino/signer.d.ts +33 -0
- package/dist/sdk/firmachain/amino/signer.js +2 -0
- package/dist/sdk/firmachain/amino/stdtx.d.ts +15 -0
- package/dist/sdk/firmachain/amino/stdtx.js +17 -0
- package/dist/sdk/firmachain/amino/wallet.d.ts +32 -0
- package/dist/sdk/firmachain/amino/wallet.js +132 -0
- package/dist/sdk/firmachain/bank/BankQueryClient.d.ts +12 -0
- package/dist/sdk/firmachain/bank/BankQueryClient.js +116 -0
- package/dist/sdk/firmachain/bank/BankTxClient.d.ts +17 -0
- package/dist/sdk/firmachain/bank/BankTxClient.js +40 -0
- package/dist/sdk/firmachain/bank/index.d.ts +3 -0
- package/dist/sdk/firmachain/bank/index.js +15 -0
- package/dist/sdk/firmachain/common/ITxClient.d.ts +15 -0
- package/dist/sdk/firmachain/common/ITxClient.js +102 -0
- package/dist/sdk/firmachain/common/LedgerSigningStargateClient.d.ts +27 -0
- package/dist/sdk/firmachain/common/LedgerSigningStargateClient.js +165 -0
- package/dist/sdk/firmachain/common/LedgerWallet.d.ts +14 -0
- package/dist/sdk/firmachain/common/LedgerWallet.js +147 -0
- package/dist/sdk/firmachain/common/QueryCommon.d.ts +4 -0
- package/dist/sdk/firmachain/common/QueryCommon.js +2 -0
- package/dist/sdk/firmachain/common/TendermintQueryClient.d.ts +42 -0
- package/dist/sdk/firmachain/common/TendermintQueryClient.js +108 -0
- package/dist/sdk/firmachain/common/TxCommon.d.ts +94 -0
- package/dist/sdk/firmachain/common/TxCommon.js +34 -0
- package/dist/sdk/firmachain/common/accounts.d.ts +16 -0
- package/dist/sdk/firmachain/common/accounts.js +64 -0
- package/dist/sdk/firmachain/common/index.d.ts +2 -0
- package/dist/sdk/firmachain/common/index.js +14 -0
- package/dist/sdk/firmachain/common/signing.d.ts +10 -0
- package/dist/sdk/firmachain/common/signing.js +75 -0
- package/dist/sdk/firmachain/common/signingstargateclient.d.ts +37 -0
- package/dist/sdk/firmachain/common/signingstargateclient.js +298 -0
- package/dist/sdk/firmachain/common/stargateclient.d.ts +46 -0
- package/dist/sdk/firmachain/common/stargateclient.js +211 -0
- package/dist/sdk/firmachain/contract/ContractQueryClient.d.ts +32 -0
- package/dist/sdk/firmachain/contract/ContractQueryClient.js +156 -0
- package/dist/sdk/firmachain/contract/ContractTxClient.d.ts +17 -0
- package/dist/sdk/firmachain/contract/ContractTxClient.js +40 -0
- package/dist/sdk/firmachain/contract/ContractTxTypes.d.ts +69 -0
- package/dist/sdk/firmachain/contract/ContractTxTypes.js +483 -0
- package/dist/sdk/firmachain/contract/index.d.ts +3 -0
- package/dist/sdk/firmachain/contract/index.js +15 -0
- package/dist/sdk/firmachain/distribution/DistributionQueryClient.d.ts +18 -0
- package/dist/sdk/firmachain/distribution/DistributionQueryClient.js +167 -0
- package/dist/sdk/firmachain/distribution/DistributionTxClient.d.ts +27 -0
- package/dist/sdk/firmachain/distribution/DistributionTxClient.js +48 -0
- package/dist/sdk/firmachain/distribution/index.d.ts +3 -0
- package/dist/sdk/firmachain/distribution/index.js +15 -0
- package/dist/sdk/firmachain/feegrant/FeeGrantQueryClient.d.ts +17 -0
- package/dist/sdk/firmachain/feegrant/FeeGrantQueryClient.js +86 -0
- package/dist/sdk/firmachain/feegrant/FeeGrantTxClient.d.ts +17 -0
- package/dist/sdk/firmachain/feegrant/FeeGrantTxClient.js +40 -0
- package/dist/sdk/firmachain/feegrant/FeeGrantTxTypes.d.ts +76 -0
- package/dist/sdk/firmachain/feegrant/FeeGrantTxTypes.js +194 -0
- package/dist/sdk/firmachain/feegrant/index.d.ts +2 -0
- package/dist/sdk/firmachain/feegrant/index.js +15 -0
- package/dist/sdk/firmachain/google/protobuf/any.d.ts +128 -0
- package/dist/sdk/firmachain/google/protobuf/any.js +106 -0
- package/dist/sdk/firmachain/google/protobuf/descriptor.d.ts +996 -0
- package/dist/sdk/firmachain/google/protobuf/descriptor.js +5329 -0
- package/dist/sdk/firmachain/google/protobuf/duration.d.ts +91 -0
- package/dist/sdk/firmachain/google/protobuf/duration.js +107 -0
- package/dist/sdk/firmachain/google/protobuf/timestamp.d.ts +109 -0
- package/dist/sdk/firmachain/google/protobuf/timestamp.js +107 -0
- package/dist/sdk/firmachain/gov/GovQueryClient.d.ts +61 -0
- package/dist/sdk/firmachain/gov/GovQueryClient.js +152 -0
- package/dist/sdk/firmachain/gov/GovTxClient.d.ts +22 -0
- package/dist/sdk/firmachain/gov/GovTxClient.js +44 -0
- package/dist/sdk/firmachain/gov/index.d.ts +3 -0
- package/dist/sdk/firmachain/gov/index.js +15 -0
- package/dist/sdk/firmachain/nft/NftQueryClient.d.ts +20 -0
- package/dist/sdk/firmachain/nft/NftQueryClient.js +125 -0
- package/dist/sdk/firmachain/nft/NftTxClient.d.ts +22 -0
- package/dist/sdk/firmachain/nft/NftTxClient.js +44 -0
- package/dist/sdk/firmachain/nft/NftTxTypes.d.ts +86 -0
- package/dist/sdk/firmachain/nft/NftTxTypes.js +424 -0
- package/dist/sdk/firmachain/nft/index.d.ts +3 -0
- package/dist/sdk/firmachain/nft/index.js +15 -0
- package/dist/sdk/firmachain/slashing/SlashingQueryClient.d.ts +22 -0
- package/dist/sdk/firmachain/slashing/SlashingQueryClient.js +101 -0
- package/dist/sdk/firmachain/slashing/index.d.ts +2 -0
- package/dist/sdk/firmachain/slashing/index.js +14 -0
- package/dist/sdk/firmachain/staking/StakingQueryClient.d.ts +93 -0
- package/dist/sdk/firmachain/staking/StakingQueryClient.js +223 -0
- package/dist/sdk/firmachain/staking/StakingTxClient.d.ts +32 -0
- package/dist/sdk/firmachain/staking/StakingTxClient.js +52 -0
- package/dist/sdk/firmachain/staking/index.d.ts +3 -0
- package/dist/sdk/firmachain/staking/index.js +15 -0
- package/dist/sdk/firmachain/token/TokenQueryClient.d.ts +24 -0
- package/dist/sdk/firmachain/token/TokenQueryClient.js +106 -0
- package/dist/sdk/firmachain/token/TokenTxClient.d.ts +27 -0
- package/dist/sdk/firmachain/token/TokenTxClient.js +48 -0
- package/dist/sdk/firmachain/token/TokenTxTypes.d.ts +116 -0
- package/dist/sdk/firmachain/token/TokenTxTypes.js +685 -0
- package/dist/sdk/firmachain/token/index.d.ts +3 -0
- package/dist/sdk/firmachain/token/index.js +15 -0
- package/package.json +54 -54
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Coin } from "./coins";
|
|
2
|
+
export interface AminoMsg {
|
|
3
|
+
readonly type: string;
|
|
4
|
+
readonly value: any;
|
|
5
|
+
}
|
|
6
|
+
export interface StdFee {
|
|
7
|
+
amount: Coin[];
|
|
8
|
+
gas: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The document to be signed
|
|
12
|
+
*
|
|
13
|
+
* @see https://docs.cosmos.network/master/modules/auth/03_types.html#stdsigndoc
|
|
14
|
+
*/
|
|
15
|
+
export interface StdSignDoc {
|
|
16
|
+
readonly chain_id: string;
|
|
17
|
+
readonly account_number: string;
|
|
18
|
+
readonly sequence: string;
|
|
19
|
+
readonly fee: StdFee;
|
|
20
|
+
readonly msgs: readonly AminoMsg[];
|
|
21
|
+
readonly memo: string;
|
|
22
|
+
}
|
|
23
|
+
/** Returns a JSON string with objects sorted by key */
|
|
24
|
+
export declare function sortedJsonStringify(obj: any): string;
|
|
25
|
+
export declare function makeSignDoc(msgs: readonly AminoMsg[], fee: StdFee, chainId: string, memo: string | undefined, accountNumber: number | string, sequence: number | string): StdSignDoc;
|
|
26
|
+
export declare function serializeSignDoc(signDoc: StdSignDoc): Uint8Array;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeSignDoc = exports.makeSignDoc = exports.sortedJsonStringify = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
|
+
var encoding_1 = require("@cosmjs/encoding");
|
|
6
|
+
var math_1 = require("@cosmjs/math");
|
|
7
|
+
function sortedObject(obj) {
|
|
8
|
+
if (typeof obj !== "object" || obj === null) {
|
|
9
|
+
return obj;
|
|
10
|
+
}
|
|
11
|
+
if (Array.isArray(obj)) {
|
|
12
|
+
return obj.map(sortedObject);
|
|
13
|
+
}
|
|
14
|
+
var sortedKeys = Object.keys(obj).sort();
|
|
15
|
+
var result = {};
|
|
16
|
+
// NOTE: Use forEach instead of reduce for performance with large objects eg Wasm code
|
|
17
|
+
sortedKeys.forEach(function (key) {
|
|
18
|
+
result[key] = sortedObject(obj[key]);
|
|
19
|
+
});
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
/** Returns a JSON string with objects sorted by key */
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
24
|
+
function sortedJsonStringify(obj) {
|
|
25
|
+
return JSON.stringify(sortedObject(obj));
|
|
26
|
+
}
|
|
27
|
+
exports.sortedJsonStringify = sortedJsonStringify;
|
|
28
|
+
function makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence) {
|
|
29
|
+
return {
|
|
30
|
+
chain_id: chainId,
|
|
31
|
+
account_number: math_1.Uint53.fromString(accountNumber.toString()).toString(),
|
|
32
|
+
sequence: math_1.Uint53.fromString(sequence.toString()).toString(),
|
|
33
|
+
fee: fee,
|
|
34
|
+
msgs: msgs,
|
|
35
|
+
memo: memo || "",
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
exports.makeSignDoc = makeSignDoc;
|
|
39
|
+
function serializeSignDoc(signDoc) {
|
|
40
|
+
return encoding_1.toUtf8(sortedJsonStringify(signDoc));
|
|
41
|
+
}
|
|
42
|
+
exports.serializeSignDoc = serializeSignDoc;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { StdSignature } from "./signature";
|
|
2
|
+
import { StdSignDoc } from "./signdoc";
|
|
3
|
+
export declare type Algo = "secp256k1" | "ed25519" | "sr25519";
|
|
4
|
+
export interface AccountData {
|
|
5
|
+
/** A printable address (typically bech32 encoded) */
|
|
6
|
+
readonly address: string;
|
|
7
|
+
readonly algo: Algo;
|
|
8
|
+
readonly pubkey: Uint8Array;
|
|
9
|
+
}
|
|
10
|
+
export interface AminoSignResponse {
|
|
11
|
+
/**
|
|
12
|
+
* The sign doc that was signed.
|
|
13
|
+
* This may be different from the input signDoc when the signer modifies it as part of the signing process.
|
|
14
|
+
*/
|
|
15
|
+
readonly signed: StdSignDoc;
|
|
16
|
+
readonly signature: StdSignature;
|
|
17
|
+
}
|
|
18
|
+
export interface OfflineAminoSigner {
|
|
19
|
+
/**
|
|
20
|
+
* Get AccountData array from wallet. Rejects if not enabled.
|
|
21
|
+
*/
|
|
22
|
+
readonly getAccounts: () => Promise<readonly AccountData[]>;
|
|
23
|
+
/**
|
|
24
|
+
* Request signature from whichever key corresponds to provided bech32-encoded address. Rejects if not enabled.
|
|
25
|
+
*
|
|
26
|
+
* The signer implementation may offer the user the ability to override parts of the signDoc. It must
|
|
27
|
+
* return the doc that was signed in the response.
|
|
28
|
+
*
|
|
29
|
+
* @param signerAddress The address of the account that should sign the transaction
|
|
30
|
+
* @param signDoc The content that should be signed
|
|
31
|
+
*/
|
|
32
|
+
readonly signAmino: (signerAddress: string, signDoc: StdSignDoc) => Promise<AminoSignResponse>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { StdSignature } from "./signature";
|
|
2
|
+
import { AminoMsg, StdFee, StdSignDoc } from "./signdoc";
|
|
3
|
+
/**
|
|
4
|
+
* A Cosmos SDK StdTx
|
|
5
|
+
*
|
|
6
|
+
* @see https://docs.cosmos.network/master/modules/auth/03_types.html#stdtx
|
|
7
|
+
*/
|
|
8
|
+
export interface StdTx {
|
|
9
|
+
readonly msg: readonly AminoMsg[];
|
|
10
|
+
readonly fee: StdFee;
|
|
11
|
+
readonly signatures: readonly StdSignature[];
|
|
12
|
+
readonly memo: string | undefined;
|
|
13
|
+
}
|
|
14
|
+
export declare function isStdTx(txValue: unknown): txValue is StdTx;
|
|
15
|
+
export declare function makeStdTx(content: Pick<StdSignDoc, "msgs" | "fee" | "memo">, signatures: StdSignature | readonly StdSignature[]): StdTx;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeStdTx = exports.isStdTx = void 0;
|
|
4
|
+
function isStdTx(txValue) {
|
|
5
|
+
var _a = txValue, memo = _a.memo, msg = _a.msg, fee = _a.fee, signatures = _a.signatures;
|
|
6
|
+
return (typeof memo === "string" && Array.isArray(msg) && typeof fee === "object" && Array.isArray(signatures));
|
|
7
|
+
}
|
|
8
|
+
exports.isStdTx = isStdTx;
|
|
9
|
+
function makeStdTx(content, signatures) {
|
|
10
|
+
return {
|
|
11
|
+
msg: content.msgs,
|
|
12
|
+
fee: content.fee,
|
|
13
|
+
memo: content.memo,
|
|
14
|
+
signatures: Array.isArray(signatures) ? signatures : [signatures],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
exports.makeStdTx = makeStdTx;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A fixed salt is chosen to archive a deterministic password to key derivation.
|
|
3
|
+
* This reduces the scope of a potential rainbow attack to all CosmJS users.
|
|
4
|
+
* Must be 16 bytes due to implementation limitations.
|
|
5
|
+
*/
|
|
6
|
+
export declare const cosmjsSalt: Uint8Array;
|
|
7
|
+
export interface KdfConfiguration {
|
|
8
|
+
/**
|
|
9
|
+
* An algorithm identifier, such as "argon2id" or "scrypt".
|
|
10
|
+
*/
|
|
11
|
+
readonly algorithm: string;
|
|
12
|
+
/** A map of algorithm-specific parameters */
|
|
13
|
+
readonly params: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export declare function executeKdf(password: string, configuration: KdfConfiguration): Promise<Uint8Array>;
|
|
16
|
+
/**
|
|
17
|
+
* Configuration how to encrypt data or how data was encrypted.
|
|
18
|
+
* This is stored as part of the wallet serialization and must only contain JSON types.
|
|
19
|
+
*/
|
|
20
|
+
export interface EncryptionConfiguration {
|
|
21
|
+
/**
|
|
22
|
+
* An algorithm identifier, such as "xchacha20poly1305-ietf".
|
|
23
|
+
*/
|
|
24
|
+
readonly algorithm: string;
|
|
25
|
+
/** A map of algorithm-specific parameters */
|
|
26
|
+
readonly params?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export declare const supportedAlgorithms: {
|
|
29
|
+
xchacha20poly1305Ietf: string;
|
|
30
|
+
};
|
|
31
|
+
export declare function encrypt(plaintext: Uint8Array, encryptionKey: Uint8Array, config: EncryptionConfiguration): Promise<Uint8Array>;
|
|
32
|
+
export declare function decrypt(ciphertext: Uint8Array, encryptionKey: Uint8Array, config: EncryptionConfiguration): Promise<Uint8Array>;
|
|
@@ -0,0 +1,132 @@
|
|
|
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 (_) 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 __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
54
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
55
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
56
|
+
to[j] = from[i];
|
|
57
|
+
return to;
|
|
58
|
+
};
|
|
59
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
+
exports.decrypt = exports.encrypt = exports.supportedAlgorithms = exports.executeKdf = exports.cosmjsSalt = void 0;
|
|
61
|
+
var crypto_1 = require("@cosmjs/crypto");
|
|
62
|
+
var encoding_1 = require("@cosmjs/encoding");
|
|
63
|
+
/**
|
|
64
|
+
* A fixed salt is chosen to archive a deterministic password to key derivation.
|
|
65
|
+
* This reduces the scope of a potential rainbow attack to all CosmJS users.
|
|
66
|
+
* Must be 16 bytes due to implementation limitations.
|
|
67
|
+
*/
|
|
68
|
+
exports.cosmjsSalt = encoding_1.toAscii("The CosmJS salt.");
|
|
69
|
+
function executeKdf(password, configuration) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
71
|
+
var options;
|
|
72
|
+
return __generator(this, function (_a) {
|
|
73
|
+
switch (configuration.algorithm) {
|
|
74
|
+
case "argon2id": {
|
|
75
|
+
options = configuration.params;
|
|
76
|
+
if (!crypto_1.isArgon2idOptions(options))
|
|
77
|
+
throw new Error("Invalid format of argon2id params");
|
|
78
|
+
return [2 /*return*/, crypto_1.Argon2id.execute(password, exports.cosmjsSalt, options)];
|
|
79
|
+
}
|
|
80
|
+
default:
|
|
81
|
+
throw new Error("Unsupported KDF algorithm");
|
|
82
|
+
}
|
|
83
|
+
return [2 /*return*/];
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
exports.executeKdf = executeKdf;
|
|
88
|
+
exports.supportedAlgorithms = {
|
|
89
|
+
xchacha20poly1305Ietf: "xchacha20poly1305-ietf",
|
|
90
|
+
};
|
|
91
|
+
function encrypt(plaintext, encryptionKey, config) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
93
|
+
var _a, nonce, _b, _c;
|
|
94
|
+
return __generator(this, function (_d) {
|
|
95
|
+
switch (_d.label) {
|
|
96
|
+
case 0:
|
|
97
|
+
_a = config.algorithm;
|
|
98
|
+
switch (_a) {
|
|
99
|
+
case exports.supportedAlgorithms.xchacha20poly1305Ietf: return [3 /*break*/, 1];
|
|
100
|
+
}
|
|
101
|
+
return [3 /*break*/, 3];
|
|
102
|
+
case 1:
|
|
103
|
+
nonce = crypto_1.Random.getBytes(crypto_1.xchacha20NonceLength);
|
|
104
|
+
_b = Uint8Array.bind;
|
|
105
|
+
_c = [__spreadArray([], __read(nonce))];
|
|
106
|
+
return [4 /*yield*/, crypto_1.Xchacha20poly1305Ietf.encrypt(plaintext, encryptionKey, nonce)];
|
|
107
|
+
case 2:
|
|
108
|
+
// Prepend fixed-length nonce to ciphertext as suggested in the example from https://github.com/jedisct1/libsodium.js#api
|
|
109
|
+
return [2 /*return*/, new (_b.apply(Uint8Array, [void 0, __spreadArray.apply(void 0, _c.concat([__read.apply(void 0, [(_d.sent())])]))]))()];
|
|
110
|
+
case 3: throw new Error("Unsupported encryption algorithm: '" + config.algorithm + "'");
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
exports.encrypt = encrypt;
|
|
116
|
+
function decrypt(ciphertext, encryptionKey, config) {
|
|
117
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
118
|
+
var nonce;
|
|
119
|
+
return __generator(this, function (_a) {
|
|
120
|
+
switch (config.algorithm) {
|
|
121
|
+
case exports.supportedAlgorithms.xchacha20poly1305Ietf: {
|
|
122
|
+
nonce = ciphertext.slice(0, crypto_1.xchacha20NonceLength);
|
|
123
|
+
return [2 /*return*/, crypto_1.Xchacha20poly1305Ietf.decrypt(ciphertext.slice(crypto_1.xchacha20NonceLength), encryptionKey, nonce)];
|
|
124
|
+
}
|
|
125
|
+
default:
|
|
126
|
+
throw new Error("Unsupported encryption algorithm: '" + config.algorithm + "'");
|
|
127
|
+
}
|
|
128
|
+
return [2 /*return*/];
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
exports.decrypt = decrypt;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface Token {
|
|
2
|
+
denom: string;
|
|
3
|
+
amount: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class BankQueryClient {
|
|
6
|
+
private readonly axios;
|
|
7
|
+
constructor(baseUrl: string);
|
|
8
|
+
querySupplyOf(denom: string): Promise<string>;
|
|
9
|
+
queryTokenBalance(address: string, denom: string): Promise<Token>;
|
|
10
|
+
queryBalanceList(address: string): Promise<Token[]>;
|
|
11
|
+
queryBalance(address: string, denom: string): Promise<Token>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
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 (_) 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.BankQueryClient = void 0;
|
|
43
|
+
var axios_1 = __importDefault(require("axios"));
|
|
44
|
+
var BankQueryClient = /** @class */ (function () {
|
|
45
|
+
function BankQueryClient(baseUrl) {
|
|
46
|
+
this.axios = axios_1.default.create({
|
|
47
|
+
baseURL: baseUrl,
|
|
48
|
+
headers: {
|
|
49
|
+
Accept: "application/json",
|
|
50
|
+
},
|
|
51
|
+
timeout: 15000,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
BankQueryClient.prototype.querySupplyOf = function (denom) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
56
|
+
var path, result;
|
|
57
|
+
return __generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
path = "/cosmos/bank/v1beta1/supply/" + denom;
|
|
61
|
+
return [4 /*yield*/, this.axios.get(path)];
|
|
62
|
+
case 1:
|
|
63
|
+
result = _a.sent();
|
|
64
|
+
return [2 /*return*/, result.data.amount.amount];
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
BankQueryClient.prototype.queryTokenBalance = function (address, denom) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
71
|
+
var path, result;
|
|
72
|
+
return __generator(this, function (_a) {
|
|
73
|
+
switch (_a.label) {
|
|
74
|
+
case 0:
|
|
75
|
+
path = "/cosmos/bank/v1beta1/balances/" + address + "/by_denom?denom=" + denom;
|
|
76
|
+
return [4 /*yield*/, this.axios.get(path)];
|
|
77
|
+
case 1:
|
|
78
|
+
result = _a.sent();
|
|
79
|
+
return [2 /*return*/, result.data.balance];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
BankQueryClient.prototype.queryBalanceList = function (address) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
86
|
+
var path, result;
|
|
87
|
+
return __generator(this, function (_a) {
|
|
88
|
+
switch (_a.label) {
|
|
89
|
+
case 0:
|
|
90
|
+
path = "/cosmos/bank/v1beta1/balances/" + address;
|
|
91
|
+
return [4 /*yield*/, this.axios.get(path)];
|
|
92
|
+
case 1:
|
|
93
|
+
result = _a.sent();
|
|
94
|
+
return [2 /*return*/, result.data.balances];
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
BankQueryClient.prototype.queryBalance = function (address, denom) {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
101
|
+
var path, result;
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
switch (_a.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
path = "/cosmos/bank/v1beta1/balances/" + address + "/by_denom?denom=" + denom;
|
|
106
|
+
return [4 /*yield*/, this.axios.get(path)];
|
|
107
|
+
case 1:
|
|
108
|
+
result = _a.sent();
|
|
109
|
+
return [2 /*return*/, result.data.balance];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
return BankQueryClient;
|
|
115
|
+
}());
|
|
116
|
+
exports.BankQueryClient = BankQueryClient;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EncodeObject } from "@cosmjs/proto-signing";
|
|
2
|
+
import { MsgSend, MsgMultiSend } from "cosmjs-types/cosmos/bank/v1beta1/tx";
|
|
3
|
+
import { FirmaWalletService } from "../../FirmaWalletService";
|
|
4
|
+
import { ITxClient } from "../common/ITxClient";
|
|
5
|
+
export interface MsgSendEncodeObject extends EncodeObject {
|
|
6
|
+
readonly typeUrl: "/cosmos.bank.v1beta1.MsgSend";
|
|
7
|
+
readonly value: Partial<MsgSend>;
|
|
8
|
+
}
|
|
9
|
+
export interface MsgMultiSendEncodeObject extends EncodeObject {
|
|
10
|
+
readonly typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend";
|
|
11
|
+
readonly value: Partial<MsgMultiSend>;
|
|
12
|
+
}
|
|
13
|
+
export declare class BankTxClient extends ITxClient {
|
|
14
|
+
constructor(wallet: FirmaWalletService, address: string);
|
|
15
|
+
msgSend(data: MsgSend): MsgSendEncodeObject;
|
|
16
|
+
msgMultiSend(data: MsgMultiSend): MsgMultiSendEncodeObject;
|
|
17
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.BankTxClient = void 0;
|
|
19
|
+
var proto_signing_1 = require("@cosmjs/proto-signing");
|
|
20
|
+
var tx_1 = require("cosmjs-types/cosmos/bank/v1beta1/tx");
|
|
21
|
+
var ITxClient_1 = require("../common/ITxClient");
|
|
22
|
+
var types = [
|
|
23
|
+
["/cosmos.bank.v1beta1.MsgSend", tx_1.MsgSend],
|
|
24
|
+
["/cosmos.bank.v1beta1.MsgMultiSend", tx_1.MsgMultiSend]
|
|
25
|
+
];
|
|
26
|
+
var registry = new proto_signing_1.Registry(types);
|
|
27
|
+
var BankTxClient = /** @class */ (function (_super) {
|
|
28
|
+
__extends(BankTxClient, _super);
|
|
29
|
+
function BankTxClient(wallet, address) {
|
|
30
|
+
return _super.call(this, wallet, address, registry) || this;
|
|
31
|
+
}
|
|
32
|
+
BankTxClient.prototype.msgSend = function (data) {
|
|
33
|
+
return { typeUrl: "/cosmos.bank.v1beta1.MsgSend", value: data };
|
|
34
|
+
};
|
|
35
|
+
BankTxClient.prototype.msgMultiSend = function (data) {
|
|
36
|
+
return { typeUrl: "/cosmos.bank.v1beta1.MsgMultiSend", value: data };
|
|
37
|
+
};
|
|
38
|
+
return BankTxClient;
|
|
39
|
+
}(ITxClient_1.ITxClient));
|
|
40
|
+
exports.BankTxClient = BankTxClient;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./BankTxClient"), exports);
|
|
14
|
+
__exportStar(require("./BankQueryClient"), exports);
|
|
15
|
+
__exportStar(require("../common"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Registry, EncodeObject } from "@cosmjs/proto-signing";
|
|
2
|
+
import { SignAndBroadcastOptions } from ".";
|
|
3
|
+
import { TxRaw } from "cosmjs-types/cosmos/tx/v1beta1/tx";
|
|
4
|
+
import { BroadcastTxResponse } from "./stargateclient";
|
|
5
|
+
import { FirmaWalletService } from "../../FirmaWalletService";
|
|
6
|
+
export declare class ITxClient {
|
|
7
|
+
private readonly wallet;
|
|
8
|
+
private readonly serverUrl;
|
|
9
|
+
private readonly registry;
|
|
10
|
+
private rawWallet;
|
|
11
|
+
constructor(wallet: FirmaWalletService, serverUrl: string, registry: Registry);
|
|
12
|
+
sign(msgs: EncodeObject[], { fee, memo }: SignAndBroadcastOptions): Promise<TxRaw>;
|
|
13
|
+
broadcast(txRaw: TxRaw): Promise<BroadcastTxResponse>;
|
|
14
|
+
signAndBroadcast(msgs: EncodeObject[], { fee, memo }: SignAndBroadcastOptions): Promise<BroadcastTxResponse>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
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 (_) 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.ITxClient = void 0;
|
|
40
|
+
var tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
|
|
41
|
+
var signingstargateclient_1 = require("./signingstargateclient");
|
|
42
|
+
var ITxClient = /** @class */ (function () {
|
|
43
|
+
function ITxClient(wallet, serverUrl, registry) {
|
|
44
|
+
this.wallet = wallet;
|
|
45
|
+
this.serverUrl = serverUrl;
|
|
46
|
+
this.registry = registry;
|
|
47
|
+
this.rawWallet = wallet.getRawWallet();
|
|
48
|
+
}
|
|
49
|
+
ITxClient.prototype.sign = function (msgs, _a) {
|
|
50
|
+
var fee = _a.fee, memo = _a.memo;
|
|
51
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
52
|
+
var client, address;
|
|
53
|
+
return __generator(this, function (_b) {
|
|
54
|
+
switch (_b.label) {
|
|
55
|
+
case 0:
|
|
56
|
+
if (!this.wallet.isLedger()) return [3 /*break*/, 1];
|
|
57
|
+
return [2 /*return*/, this.wallet.signLedger(msgs, { fee: fee, memo: memo }, this.registry)];
|
|
58
|
+
case 1: return [4 /*yield*/, signingstargateclient_1.SigningStargateClient.connectWithSigner(this.serverUrl, this.rawWallet, this.registry)];
|
|
59
|
+
case 2:
|
|
60
|
+
client = _b.sent();
|
|
61
|
+
return [4 /*yield*/, this.rawWallet.getAccounts()];
|
|
62
|
+
case 3:
|
|
63
|
+
address = (_b.sent())[0].address;
|
|
64
|
+
return [4 /*yield*/, client.sign(address, msgs, fee, memo)];
|
|
65
|
+
case 4: return [2 /*return*/, _b.sent()];
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
ITxClient.prototype.broadcast = function (txRaw) {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
+
var client, txBytes;
|
|
73
|
+
return __generator(this, function (_a) {
|
|
74
|
+
switch (_a.label) {
|
|
75
|
+
case 0: return [4 /*yield*/, signingstargateclient_1.SigningStargateClient.connectWithSigner(this.serverUrl, this.rawWallet, this.registry)];
|
|
76
|
+
case 1:
|
|
77
|
+
client = _a.sent();
|
|
78
|
+
txBytes = tx_1.TxRaw.encode(txRaw).finish();
|
|
79
|
+
return [4 /*yield*/, client.broadcastTx(txBytes)];
|
|
80
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
ITxClient.prototype.signAndBroadcast = function (msgs, _a) {
|
|
86
|
+
var fee = _a.fee, memo = _a.memo;
|
|
87
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
+
var _b;
|
|
89
|
+
return __generator(this, function (_c) {
|
|
90
|
+
switch (_c.label) {
|
|
91
|
+
case 0:
|
|
92
|
+
_b = this.broadcast;
|
|
93
|
+
return [4 /*yield*/, this.sign(msgs, { fee: fee, memo: memo })];
|
|
94
|
+
case 1: return [4 /*yield*/, _b.apply(this, [_c.sent()])];
|
|
95
|
+
case 2: return [2 /*return*/, _c.sent()];
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
return ITxClient;
|
|
101
|
+
}());
|
|
102
|
+
exports.ITxClient = ITxClient;
|