carbon-js-sdk 0.1.103 → 0.1.104

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.
@@ -0,0 +1,30 @@
1
+ import { TxRaw } from "../codec/cosmos/tx/v1beta1/tx";
2
+ import { CarbonSignerData } from "../util/tx";
3
+ import { EncodeObject, OfflineSigner, Registry } from "@cosmjs/proto-signing";
4
+ import { AminoTypes, GasPrice, SigningStargateClientOptions, StargateClient, StdFee } from "@cosmjs/stargate";
5
+ import { Tendermint34Client } from "@cosmjs/tendermint-rpc";
6
+ export declare class CarbonSigningClient extends StargateClient {
7
+ readonly signer: OfflineSigner;
8
+ readonly options: SigningStargateClientOptions;
9
+ readonly registry: Registry;
10
+ readonly aminoTypes: AminoTypes;
11
+ readonly broadcastTimeoutMs?: number;
12
+ readonly broadcastPollIntervalMs?: number;
13
+ readonly gasPrice?: GasPrice;
14
+ constructor(tmClient: Tendermint34Client, signer: OfflineSigner, options?: SigningStargateClientOptions);
15
+ /**
16
+ * @see SigningStargateClient
17
+ * Gets account number and sequence from the API, creates a sign doc,
18
+ * creates a single signature and assembles the signed transaction.
19
+ *
20
+ * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer.
21
+ *
22
+ * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them
23
+ * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing
24
+ * (See the SigningStargateClient.offline constructor).
25
+ */
26
+ sign(signerAddress: string, messages: readonly EncodeObject[], fee: StdFee, memo: string, signerData: CarbonSignerData): Promise<TxRaw>;
27
+ private signDirect;
28
+ private signAmino;
29
+ }
30
+ //# sourceMappingURL=CarbonSigningClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarbonSigningClient.d.ts","sourceRoot":"","sources":["../../src/wallet/CarbonSigningClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,EAAE,YAAY,EAA4F,aAAa,EAAE,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AAC5L,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAI5D,qBAAa,mBAAoB,SAAQ,cAAc;aASnC,MAAM,EAAE,aAAa;aACrB,OAAO,EAAE,4BAA4B;IATvD,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5C,SAAgB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjD,SAAgB,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAGlC,QAAQ,EAAE,kBAAkB,EACZ,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,4BAAiC;IAY5D;;;;;;;;;;OAUG;IACU,IAAI,CACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,KAAK,CAAC;YAMH,UAAU;YAsCV,SAAS;CA8CxB"}
@@ -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 __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.CarbonSigningClient = void 0;
16
+ const codec_1 = require("../codec");
17
+ const signing_1 = require("../codec/cosmos/tx/signing/v1beta1/signing");
18
+ const tx_1 = require("../codec/cosmos/tx/v1beta1/tx");
19
+ const amino_1 = require("@cosmjs/amino");
20
+ const encoding_1 = require("@cosmjs/encoding");
21
+ const math_1 = require("@cosmjs/math");
22
+ const proto_signing_1 = require("@cosmjs/proto-signing");
23
+ const stargate_1 = require("@cosmjs/stargate");
24
+ const long_1 = __importDefault(require("long"));
25
+ const provider_1 = require("../provider");
26
+ class CarbonSigningClient extends stargate_1.StargateClient {
27
+ constructor(tmClient, signer, options = {}) {
28
+ super(tmClient, options);
29
+ this.signer = signer;
30
+ this.options = options;
31
+ const { registry = codec_1.registry, aminoTypes = provider_1.AminoTypesMap } = options;
32
+ this.registry = registry;
33
+ this.aminoTypes = aminoTypes;
34
+ this.signer = signer;
35
+ this.broadcastTimeoutMs = options.broadcastTimeoutMs;
36
+ this.broadcastPollIntervalMs = options.broadcastPollIntervalMs;
37
+ this.gasPrice = options.gasPrice;
38
+ }
39
+ /**
40
+ * @see SigningStargateClient
41
+ * Gets account number and sequence from the API, creates a sign doc,
42
+ * creates a single signature and assembles the signed transaction.
43
+ *
44
+ * The sign mode (SIGN_MODE_DIRECT or SIGN_MODE_LEGACY_AMINO_JSON) is determined by this client's signer.
45
+ *
46
+ * You can pass signer data (account number, sequence and chain ID) explicitly instead of querying them
47
+ * from the chain. This is needed when signing for a multisig account, but it also allows for offline signing
48
+ * (See the SigningStargateClient.offline constructor).
49
+ */
50
+ sign(signerAddress, messages, fee, memo, signerData) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return proto_signing_1.isOfflineDirectSigner(this.signer)
53
+ ? this.signDirect(signerAddress, messages, fee, memo, signerData)
54
+ : this.signAmino(signerAddress, messages, fee, memo, signerData);
55
+ });
56
+ }
57
+ signDirect(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId, timeoutHeight }) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const signer = this.signer;
60
+ const accountFromSigner = (yield this.signer.getAccounts()).find((account) => account.address === signerAddress);
61
+ if (!accountFromSigner) {
62
+ throw new Error("Failed to retrieve account from signer");
63
+ }
64
+ const pubkey = proto_signing_1.encodePubkey(amino_1.encodeSecp256k1Pubkey(accountFromSigner.pubkey));
65
+ const txBodyEncodeObject = {
66
+ typeUrl: "/cosmos.tx.v1beta1.TxBody",
67
+ value: Object.assign({ messages: messages, memo: memo }, timeoutHeight && {
68
+ timeoutHeight: long_1.default.fromNumber(timeoutHeight),
69
+ }),
70
+ };
71
+ const txBodyBytes = this.registry.encode(txBodyEncodeObject);
72
+ const gasLimit = math_1.Int53.fromString(fee.gas).toNumber();
73
+ const authInfoBytes = proto_signing_1.makeAuthInfoBytes([{ pubkey, sequence }], fee.amount, gasLimit);
74
+ const signDoc = proto_signing_1.makeSignDoc(txBodyBytes, authInfoBytes, chainId, accountNumber);
75
+ const { signature, signed } = yield signer.signDirect(signerAddress, signDoc);
76
+ return tx_1.TxRaw.fromPartial({
77
+ bodyBytes: signed.bodyBytes,
78
+ authInfoBytes: signed.authInfoBytes,
79
+ signatures: [encoding_1.fromBase64(signature.signature)],
80
+ });
81
+ });
82
+ }
83
+ signAmino(signerAddress, messages, fee, memo, { accountNumber, sequence, chainId, timeoutHeight }) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ const signer = this.signer;
86
+ const accountFromSigner = (yield this.signer.getAccounts()).find((account) => account.address === signerAddress);
87
+ if (!accountFromSigner) {
88
+ throw new Error("Failed to retrieve account from signer");
89
+ }
90
+ const pubkey = proto_signing_1.encodePubkey(amino_1.encodeSecp256k1Pubkey(accountFromSigner.pubkey));
91
+ const signMode = signing_1.SignMode.SIGN_MODE_LEGACY_AMINO_JSON;
92
+ const msgs = messages.map((msg) => this.aminoTypes.toAmino(msg));
93
+ const signDoc = amino_1.makeSignDoc(msgs, fee, chainId, memo, accountNumber, sequence);
94
+ const { signature, signed } = yield signer.signAmino(signerAddress, signDoc);
95
+ const signedTxBody = Object.assign({ messages: signed.msgs.map((msg) => this.aminoTypes.fromAmino(msg)), memo: signed.memo }, timeoutHeight && {
96
+ timeoutHeight: long_1.default.fromNumber(timeoutHeight),
97
+ });
98
+ const signedTxBodyEncodeObject = {
99
+ typeUrl: "/cosmos.tx.v1beta1.TxBody",
100
+ value: signedTxBody,
101
+ };
102
+ const signedTxBodyBytes = this.registry.encode(signedTxBodyEncodeObject);
103
+ const signedGasLimit = math_1.Int53.fromString(signed.fee.gas).toNumber();
104
+ const signedSequence = math_1.Int53.fromString(signed.sequence).toNumber();
105
+ const signedAuthInfoBytes = proto_signing_1.makeAuthInfoBytes([{ pubkey, sequence: signedSequence }], signed.fee.amount, signedGasLimit, signMode);
106
+ return tx_1.TxRaw.fromPartial({
107
+ bodyBytes: signedTxBodyBytes,
108
+ authInfoBytes: signedAuthInfoBytes,
109
+ signatures: [encoding_1.fromBase64(signature.signature)],
110
+ });
111
+ });
112
+ }
113
+ }
114
+ exports.CarbonSigningClient = CarbonSigningClient;
115
+ ;
116
+ //# sourceMappingURL=CarbonSigningClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarbonSigningClient.js","sourceRoot":"","sources":["../../src/wallet/CarbonSigningClient.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-js-sdk",
3
- "version": "0.1.103",
3
+ "version": "0.1.104",
4
4
  "description": "TypeScript SDK for Carbon blockchain",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -40,8 +40,8 @@
40
40
  "@cityofzion/neon-core-next": "npm:@cityofzion/neon-core@^5.0.0",
41
41
  "@cityofzion/neon-js": "^4.9.0",
42
42
  "@cityofzion/neon-js-next": "npm:@cityofzion/neon-js@^5.0.0",
43
- "@cosmjs/proto-signing": "^0.28.9",
44
- "@cosmjs/stargate": "^0.28.9",
43
+ "@cosmjs/proto-signing": "^0.28.10",
44
+ "@cosmjs/stargate": "^0.28.10",
45
45
  "@grpc/grpc-js": "^1.3.2",
46
46
  "@keplr-wallet/stores": "~0.9.0-alpha.10",
47
47
  "@keplr-wallet/types": "~0.8.13",