@injectivelabs/sdk-ts 0.0.67 → 0.0.68

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/README.md CHANGED
@@ -271,6 +271,12 @@ import { ExchangeGrpcStreamClient } from "@injectivelabs/sdk-ts/dist/client/exch
271
271
 
272
272
  ---
273
273
 
274
+ ## 📜 Contribution
275
+
276
+ **Contribution guides and practices will be available once there is a stable foundation of the whole package set within the `injective-ts` repo.**
277
+
278
+ ---
279
+
274
280
  ## ⛑ Support
275
281
 
276
282
  Reach out to us at one of the following places!
@@ -0,0 +1,35 @@
1
+ import { PrepareTxResponse, BroadcastTxResponse } from '@injectivelabs/exchange-api/injective_exchange_rpc_pb';
2
+ import { AccountAddress, EthereumChainId } from '@injectivelabs/ts-types';
3
+ import BaseConsumer from '../../BaseGrpcConsumer';
4
+ export declare class ChainGrpcTransactionApi extends BaseConsumer {
5
+ prepareTxRequest({ address, chainId, message, memo, estimateGas, gasLimit, feeDenom, feePrice, timeoutHeight, }: {
6
+ address: AccountAddress;
7
+ chainId: EthereumChainId;
8
+ message: any;
9
+ estimateGas?: boolean;
10
+ gasLimit?: number;
11
+ memo?: string;
12
+ timeoutHeight?: number;
13
+ feeDenom?: string;
14
+ feePrice?: string;
15
+ }): Promise<PrepareTxResponse>;
16
+ prepareExchangeTxRequest({ address, chainId, message, memo, estimateGas, gasLimit, feeDenom, feePrice, timeoutHeight, delegatedFee, }: {
17
+ address: AccountAddress;
18
+ chainId: EthereumChainId;
19
+ message: any;
20
+ estimateGas?: boolean;
21
+ gasLimit?: number;
22
+ memo?: string;
23
+ feeDenom?: string;
24
+ feePrice?: string;
25
+ timeoutHeight?: number;
26
+ delegatedFee?: boolean;
27
+ }): Promise<PrepareTxResponse>;
28
+ broadcastTxRequest({ signature, chainId, message, txResponse, }: {
29
+ signature: string;
30
+ chainId: EthereumChainId;
31
+ txResponse: PrepareTxResponse;
32
+ message: Record<string, any>;
33
+ }): Promise<BroadcastTxResponse.AsObject>;
34
+ }
35
+ //# sourceMappingURL=ChainGrpcTransactionApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainGrpcTransactionApi.d.ts","sourceRoot":"","sources":["../../../../src/client/chain/grpc/ChainGrpcTransactionApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAEjB,mBAAmB,EAGpB,MAAM,uDAAuD,CAAA;AAG9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAOzE,OAAO,YAAY,MAAM,wBAAwB,CAAA;AAGjD,qBAAa,uBAAwB,SAAQ,YAAY;IACjD,gBAAgB,CAAC,EACrB,OAAO,EACP,OAAO,EACP,OAAO,EACP,IAAI,EACJ,WAAkB,EAClB,QAA4B,EAC5B,QAAmC,EACnC,QAAmC,EACnC,aAAa,GACd,EAAE;QACD,OAAO,EAAE,cAAc,CAAA;QACvB,OAAO,EAAE,eAAe,CAAA;QACxB,OAAO,EAAE,GAAG,CAAA;QACZ,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB;IA2CK,wBAAwB,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,OAAO,EACP,IAAI,EACJ,WAAkB,EAClB,QAAiC,EACjC,QAAmC,EACnC,QAAmC,EACnC,aAAa,EACb,YAAY,GACb,EAAE;QACD,OAAO,EAAE,cAAc,CAAA;QACvB,OAAO,EAAE,eAAe,CAAA;QACxB,OAAO,EAAE,GAAG,CAAA;QACZ,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB;IA+CK,kBAAkB,CAAC,EACvB,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,GACX,EAAE;QACD,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,eAAe,CAAA;QACxB,UAAU,EAAE,iBAAiB,CAAA;QAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAC7B;CAuCF"}
@@ -0,0 +1,122 @@
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.ChainGrpcTransactionApi = void 0;
16
+ const injective_exchange_rpc_pb_1 = require("@injectivelabs/exchange-api/injective_exchange_rpc_pb");
17
+ const injective_exchange_rpc_pb_service_1 = require("@injectivelabs/exchange-api/injective_exchange_rpc_pb_service");
18
+ const coin_pb_1 = require("@injectivelabs/chain-api/cosmos/base/v1beta1/coin_pb");
19
+ const utils_1 = require("@injectivelabs/utils");
20
+ const BaseGrpcConsumer_1 = __importDefault(require("../../BaseGrpcConsumer"));
21
+ const transaction_1 = require("../../../utils/transaction");
22
+ class ChainGrpcTransactionApi extends BaseGrpcConsumer_1.default {
23
+ prepareTxRequest({ address, chainId, message, memo, estimateGas = true, gasLimit = utils_1.DEFAULT_GAS_LIMIT, feeDenom = utils_1.DEFAULT_BRIDGE_FEE_DENOM, feePrice = utils_1.DEFAULT_BRIDGE_FEE_PRICE, timeoutHeight, }) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ const txFeeAmount = new coin_pb_1.Coin();
26
+ txFeeAmount.setDenom(feeDenom);
27
+ txFeeAmount.setAmount(feePrice);
28
+ const cosmosTxFee = new injective_exchange_rpc_pb_1.CosmosTxFee();
29
+ cosmosTxFee.setPriceList([txFeeAmount]);
30
+ if (!estimateGas) {
31
+ cosmosTxFee.setGas(gasLimit);
32
+ }
33
+ const prepareTxRequest = new injective_exchange_rpc_pb_1.PrepareTxRequest();
34
+ prepareTxRequest.setChainId(chainId);
35
+ prepareTxRequest.setSignerAddress(address);
36
+ prepareTxRequest.setFee(cosmosTxFee);
37
+ const arrayOfMessages = Array.isArray(message) ? message : [message];
38
+ for (const message of arrayOfMessages) {
39
+ prepareTxRequest.addMsgs(Buffer.from(JSON.stringify(message), 'utf8'));
40
+ }
41
+ if (timeoutHeight !== undefined) {
42
+ prepareTxRequest.setTimeoutHeight(timeoutHeight);
43
+ }
44
+ if (memo) {
45
+ prepareTxRequest.setMemo(memo);
46
+ }
47
+ try {
48
+ const response = yield this.request(prepareTxRequest, injective_exchange_rpc_pb_service_1.InjectiveExchangeRPC.PrepareTx);
49
+ return response;
50
+ }
51
+ catch (e) {
52
+ throw new Error(e.message);
53
+ }
54
+ });
55
+ }
56
+ prepareExchangeTxRequest({ address, chainId, message, memo, estimateGas = true, gasLimit = utils_1.DEFAULT_EXCHANGE_LIMIT, feeDenom = utils_1.DEFAULT_BRIDGE_FEE_DENOM, feePrice = utils_1.DEFAULT_BRIDGE_FEE_PRICE, timeoutHeight, delegatedFee, }) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const txFeeAmount = new coin_pb_1.Coin();
59
+ txFeeAmount.setDenom(feeDenom);
60
+ txFeeAmount.setAmount(feePrice);
61
+ const cosmosTxFee = new injective_exchange_rpc_pb_1.CosmosTxFee();
62
+ cosmosTxFee.setPriceList([txFeeAmount]);
63
+ if (delegatedFee !== undefined) {
64
+ cosmosTxFee.setDelegateFee(delegatedFee);
65
+ }
66
+ if (!estimateGas) {
67
+ cosmosTxFee.setGas(gasLimit);
68
+ }
69
+ const prepareTxRequest = new injective_exchange_rpc_pb_1.PrepareTxRequest();
70
+ prepareTxRequest.setChainId(chainId);
71
+ prepareTxRequest.setSignerAddress(address);
72
+ prepareTxRequest.setFee(cosmosTxFee);
73
+ const arrayOfMessages = Array.isArray(message) ? message : [message];
74
+ for (const message of arrayOfMessages) {
75
+ prepareTxRequest.addMsgs(Buffer.from(JSON.stringify(message), 'utf8'));
76
+ }
77
+ if (timeoutHeight !== undefined) {
78
+ prepareTxRequest.setTimeoutHeight(timeoutHeight);
79
+ }
80
+ if (memo) {
81
+ prepareTxRequest.setMemo(memo);
82
+ }
83
+ try {
84
+ const response = yield this.request(prepareTxRequest, injective_exchange_rpc_pb_service_1.InjectiveExchangeRPC.PrepareTx);
85
+ return response;
86
+ }
87
+ catch (e) {
88
+ throw new Error(e.message);
89
+ }
90
+ });
91
+ }
92
+ broadcastTxRequest({ signature, chainId, message, txResponse, }) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const parsedTypedData = JSON.parse(txResponse.getData());
95
+ const publicKeyHex = (0, transaction_1.recoverTypedSignaturePubKey)(parsedTypedData, signature);
96
+ const cosmosPubKey = new injective_exchange_rpc_pb_1.CosmosPubKey();
97
+ cosmosPubKey.setType(txResponse.getPubKeyType());
98
+ cosmosPubKey.setKey(publicKeyHex);
99
+ parsedTypedData.message.msgs = null;
100
+ const broadcastTxRequest = new injective_exchange_rpc_pb_1.BroadcastTxRequest();
101
+ broadcastTxRequest.setMode('block');
102
+ broadcastTxRequest.setChainId(chainId);
103
+ broadcastTxRequest.setPubKey(cosmosPubKey);
104
+ broadcastTxRequest.setSignature(signature);
105
+ broadcastTxRequest.setTx(Buffer.from(JSON.stringify(parsedTypedData.message), 'utf8'));
106
+ broadcastTxRequest.setFeePayer(txResponse.getFeePayer());
107
+ broadcastTxRequest.setFeePayerSig(txResponse.getFeePayerSig());
108
+ const arrayOfMessages = Array.isArray(message) ? message : [message];
109
+ const messagesList = arrayOfMessages.map((message) => Buffer.from(JSON.stringify(message), 'utf8'));
110
+ broadcastTxRequest.setMsgsList(messagesList);
111
+ try {
112
+ const response = yield this.request(broadcastTxRequest, injective_exchange_rpc_pb_service_1.InjectiveExchangeRPC.BroadcastTx);
113
+ return response.toObject();
114
+ }
115
+ catch (e) {
116
+ throw new Error(e.message);
117
+ }
118
+ });
119
+ }
120
+ }
121
+ exports.ChainGrpcTransactionApi = ChainGrpcTransactionApi;
122
+ //# sourceMappingURL=ChainGrpcTransactionApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainGrpcTransactionApi.js","sourceRoot":"","sources":["../../../../src/client/chain/grpc/ChainGrpcTransactionApi.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- export * from './TxInjective';
2
- export * from './TxService';
3
1
  export * from './PrivateKey';
4
2
  export * from './PublicKey';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
@@ -11,8 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  // export * from './Network'
14
- __exportStar(require("./TxInjective"), exports);
15
- __exportStar(require("./TxService"), exports);
16
14
  __exportStar(require("./PrivateKey"), exports);
17
15
  __exportStar(require("./PublicKey"), exports);
18
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA4B;AAC5B,gDAA6B;AAC7B,8CAA2B;AAC3B,+CAA4B;AAC5B,8CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA4B;AAC5B,+CAA4B;AAC5B,8CAA2B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@injectivelabs/sdk-ts",
3
3
  "description": "SDK in TypeScript for building Injective applications in a Node environment.",
4
- "version": "0.0.67",
4
+ "version": "0.0.68",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Bojan Angjelkoski",
@@ -58,5 +58,5 @@
58
58
  "snakecase-keys": "^5.4.1",
59
59
  "tiny-secp256k1": "^2.2.1"
60
60
  },
61
- "gitHead": "fe1050fcc442e8f8893e318cec0487ee5228c5f5"
61
+ "gitHead": "e30a89f465772a19c2c09c7ee83b06c6402d2db1"
62
62
  }
@@ -1,28 +0,0 @@
1
- import { Any } from 'google-protobuf/google/protobuf/any_pb';
2
- import { TxBody, AuthInfo, SignDoc, TxRaw } from '@injectivelabs/chain-api/cosmos/tx/v1beta1/tx_pb';
3
- import { Msgs } from '../core/msgs';
4
- import { BaseAccount } from '../classes/BaseAccount';
5
- export interface TxInjectiveParams {
6
- msgs: Msgs | Msgs[];
7
- memo?: string;
8
- address: string;
9
- feePrice?: string;
10
- feeDenom?: string;
11
- gasLimit?: number;
12
- chainId: string;
13
- baseAccount: BaseAccount;
14
- }
15
- export declare class TxInjective {
16
- tx: TxInjectiveParams;
17
- signature?: string | Uint8Array;
18
- constructor(tx: TxInjectiveParams);
19
- get packedMsgs(): Any[];
20
- get txBody(): TxBody;
21
- get authInfo(): AuthInfo;
22
- get signDoc(): SignDoc;
23
- get signBytes(): Uint8Array;
24
- withSignature(signature: string | Uint8Array): this;
25
- toTxRaw(): TxRaw;
26
- getTxHash(): string;
27
- }
28
- //# sourceMappingURL=TxInjective.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TxInjective.d.ts","sourceRoot":"","sources":["../../src/local/TxInjective.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,wCAAwC,CAAA;AAC5D,OAAO,EACL,MAAM,EAIN,QAAQ,EACR,OAAO,EACP,KAAK,EACN,MAAM,kDAAkD,CAAA;AAKzD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAMnC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,qBAAa,WAAW;IACf,EAAE,EAAE,iBAAiB,CAAA;IAErB,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;gBAE1B,EAAE,EAAE,iBAAiB;IAIjC,IAAI,UAAU,UAcb;IAED,IAAI,MAAM,WAST;IAED,IAAI,QAAQ,aA0CX;IAED,IAAI,OAAO,YAWV;IAED,IAAI,SAAS,eAEZ;IAED,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAM5C,OAAO;IAcP,SAAS;CAMV"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TxInjective = void 0;
7
- const any_pb_1 = require("google-protobuf/google/protobuf/any_pb");
8
- const tx_pb_1 = require("@injectivelabs/chain-api/cosmos/tx/v1beta1/tx_pb");
9
- const signing_pb_1 = require("@injectivelabs/chain-api/cosmos/tx/signing/v1beta1/signing_pb");
10
- const coin_pb_1 = require("@injectivelabs/chain-api/cosmos/base/v1beta1/coin_pb");
11
- const utils_1 = require("@injectivelabs/utils");
12
- const crypto_1 = __importDefault(require("crypto"));
13
- const utils_2 = require("../utils");
14
- const keys_pb_1 = require("@injectivelabs/chain-api/injective/crypto/v1beta1/ethsecp256k1/keys_pb");
15
- class TxInjective {
16
- constructor(tx) {
17
- this.tx = tx;
18
- }
19
- get packedMsgs() {
20
- const { tx } = this;
21
- const msgs = Array.isArray(tx.msgs) ? tx.msgs : [tx.msgs];
22
- const packedMsgs = msgs.map((msg) => {
23
- const amino = msg.toDirectSign();
24
- const packedMessage = new any_pb_1.Any();
25
- packedMessage.setTypeUrl(amino.type);
26
- packedMessage.setValue(amino.message.serializeBinary());
27
- return packedMessage;
28
- });
29
- return packedMsgs;
30
- }
31
- get txBody() {
32
- const { tx, packedMsgs } = this;
33
- const txBody = new tx_pb_1.TxBody();
34
- txBody.setMessagesList(packedMsgs);
35
- txBody.setMemo(tx.memo || '');
36
- txBody.setTimeoutHeight(0);
37
- return txBody;
38
- }
39
- get authInfo() {
40
- const { tx } = this;
41
- const { baseAccount } = tx;
42
- // TODO: gas limit based on the message type (lower limit for exchange messages)
43
- const gasLimit = tx.gasLimit || utils_2.DEFAULT_GAS_LIMIT;
44
- const feePrice = tx.feePrice || utils_2.DEFAULT_GAS_PRICE;
45
- const feeDenom = tx.feeDenom || utils_2.DEFAULT_FEE_DENOM;
46
- const feeAmount = new coin_pb_1.Coin();
47
- feeAmount.setAmount(new utils_1.BigNumber(gasLimit).times(feePrice).toString());
48
- feeAmount.setDenom(feeDenom);
49
- const fee = new tx_pb_1.Fee();
50
- fee.setGasLimit(gasLimit);
51
- fee.setAmountList([feeAmount]);
52
- const publicKey = new keys_pb_1.PubKey();
53
- publicKey.setKey(baseAccount.pubKey.key);
54
- const packedPublicKey = new any_pb_1.Any();
55
- packedPublicKey.setTypeUrl(baseAccount.pubKey.type);
56
- packedPublicKey.setValue(Buffer.from(publicKey.serializeBinary()).toString('base64'));
57
- const modeSingleDirect = new tx_pb_1.ModeInfo.Single();
58
- modeSingleDirect.setMode(signing_pb_1.SignMode.SIGN_MODE_DIRECT);
59
- const modeInfo = new tx_pb_1.ModeInfo();
60
- modeInfo.setSingle(modeSingleDirect);
61
- const signerInfo = new tx_pb_1.SignerInfo();
62
- signerInfo.setPublicKey(packedPublicKey);
63
- signerInfo.setModeInfo(modeInfo);
64
- signerInfo.setSequence(baseAccount.sequence);
65
- const authInfo = new tx_pb_1.AuthInfo();
66
- authInfo.setSignerInfosList([signerInfo]);
67
- authInfo.setFee(fee);
68
- return authInfo;
69
- }
70
- get signDoc() {
71
- const { tx, txBody, authInfo } = this;
72
- const { baseAccount } = tx;
73
- const signDoc = new tx_pb_1.SignDoc();
74
- signDoc.setBodyBytes(txBody.serializeBinary());
75
- signDoc.setAuthInfoBytes(authInfo.serializeBinary());
76
- signDoc.setChainId(tx.chainId);
77
- signDoc.setAccountNumber(baseAccount.accountNumber);
78
- return signDoc;
79
- }
80
- get signBytes() {
81
- return this.signDoc.serializeBinary();
82
- }
83
- withSignature(signature) {
84
- this.signature = signature;
85
- return this;
86
- }
87
- toTxRaw() {
88
- const { signature, txBody, authInfo } = this;
89
- const txRaw = new tx_pb_1.TxRaw();
90
- txRaw.setBodyBytes(txBody.serializeBinary());
91
- txRaw.setAuthInfoBytes(authInfo.serializeBinary());
92
- if (signature) {
93
- txRaw.setSignaturesList([signature]);
94
- }
95
- return txRaw;
96
- }
97
- getTxHash() {
98
- return crypto_1.default
99
- .createHash('sha256')
100
- .update(this.toTxRaw().serializeBinary())
101
- .digest('hex');
102
- }
103
- }
104
- exports.TxInjective = TxInjective;
105
- //# sourceMappingURL=TxInjective.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TxInjective.js","sourceRoot":"","sources":["../../src/local/TxInjective.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { ServiceClient } from '@injectivelabs/chain-api/cosmos/tx/v1beta1/service_pb_service';
2
- import { GasInfo, Result, TxResponse } from '@injectivelabs/chain-api/cosmos/base/abci/v1beta1/abci_pb';
3
- import { TxInjective } from './TxInjective';
4
- export declare class TxService {
5
- txService: ServiceClient;
6
- txInjective: TxInjective;
7
- constructor({ txInjective, endpoint, }: {
8
- txInjective: TxInjective;
9
- endpoint: string;
10
- });
11
- simulate(): Promise<{
12
- result: Result.AsObject;
13
- gasInfo: GasInfo.AsObject;
14
- }>;
15
- broadcast(): Promise<TxResponse.AsObject>;
16
- }
17
- //# sourceMappingURL=TxService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TxService.d.ts","sourceRoot":"","sources":["../../src/local/TxService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+DAA+D,CAAA;AAM7F,OAAO,EACL,OAAO,EACP,MAAM,EACN,UAAU,EACX,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,qBAAa,SAAS;IACb,SAAS,EAAE,aAAa,CAAA;IAExB,WAAW,EAAE,WAAW,CAAA;gBAEnB,EACV,WAAW,EACX,QAAQ,GACT,EAAE;QACD,WAAW,EAAE,WAAW,CAAA;QACxB,QAAQ,EAAE,MAAM,CAAA;KACjB;IAOY,QAAQ,IAAI,OAAO,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAA;QACvB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAA;KAC1B,CAAC;IA4BW,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;CA0BvD"}
@@ -1,70 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.TxService = void 0;
13
- const grpc_web_node_http_transport_1 = require("@improbable-eng/grpc-web-node-http-transport");
14
- const service_pb_service_1 = require("@injectivelabs/chain-api/cosmos/tx/v1beta1/service_pb_service");
15
- const service_pb_1 = require("@injectivelabs/chain-api/cosmos/tx/v1beta1/service_pb");
16
- class TxService {
17
- constructor({ txInjective, endpoint, }) {
18
- this.txInjective = txInjective;
19
- this.txService = new service_pb_service_1.ServiceClient(endpoint, {
20
- transport: (0, grpc_web_node_http_transport_1.NodeHttpTransport)(),
21
- });
22
- }
23
- simulate() {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const { txService, txInjective } = this;
26
- const txRaw = txInjective.toTxRaw();
27
- const simulateRequest = new service_pb_1.SimulateRequest();
28
- simulateRequest.setTxBytes(txRaw.serializeBinary());
29
- try {
30
- return new Promise((resolve, reject) => txService.simulate(simulateRequest, (error, response) => {
31
- if (error || !response) {
32
- return reject(error);
33
- }
34
- const result = response.getResult();
35
- const gasInfo = response.getGasInfo();
36
- return resolve({
37
- result: result ? result.toObject() : {},
38
- gasInfo: gasInfo ? gasInfo.toObject() : {},
39
- });
40
- }));
41
- }
42
- catch (e) {
43
- throw new Error(e.message);
44
- }
45
- });
46
- }
47
- broadcast() {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const { txService, txInjective } = this;
50
- const txRaw = txInjective.toTxRaw();
51
- const broadcastTxRequest = new service_pb_1.BroadcastTxRequest();
52
- broadcastTxRequest.setTxBytes(txRaw.serializeBinary());
53
- broadcastTxRequest.setMode(service_pb_1.BroadcastMode.BROADCAST_MODE_BLOCK);
54
- try {
55
- return new Promise((resolve, reject) => txService.broadcastTx(broadcastTxRequest, (error, response) => {
56
- if (error || !response) {
57
- return reject(error);
58
- }
59
- const txResponse = response.getTxResponse();
60
- return resolve((txResponse ? txResponse.toObject() : {}));
61
- }));
62
- }
63
- catch (e) {
64
- throw new Error(e.message);
65
- }
66
- });
67
- }
68
- }
69
- exports.TxService = TxService;
70
- //# sourceMappingURL=TxService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TxService.js","sourceRoot":"","sources":["../../src/local/TxService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+FAAgF;AAChF,sGAA6F;AAC7F,sFAI8D;AAQ9D,MAAa,SAAS;IAKpB,YAAY,EACV,WAAW,EACX,QAAQ,GAIT;QACC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,kCAAa,CAAC,QAAQ,EAAE;YAC3C,SAAS,EAAE,IAAA,gDAAiB,GAAE;SAC/B,CAAC,CAAA;IACJ,CAAC;IAEY,QAAQ;;YAInB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;YACvC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,CAAA;YAEnC,MAAM,eAAe,GAAG,IAAI,4BAAe,EAAE,CAAA;YAC7C,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAA;YAEnD,IAAI;gBACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;oBACtD,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;wBACtB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;qBACrB;oBAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAA;oBACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAA;oBAErC,OAAO,OAAO,CAAC;wBACb,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAE,EAAsB;wBAC5D,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAE,EAAuB;qBACjE,CAAC,CAAA;gBACJ,CAAC,CAAC,CACH,CAAA;aACF;YAAC,OAAO,CAAM,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;aAC3B;QACH,CAAC;KAAA;IAEY,SAAS;;YACpB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;YACvC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,CAAA;YAEnC,MAAM,kBAAkB,GAAG,IAAI,+BAAkB,EAAE,CAAA;YACnD,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAA;YACtD,kBAAkB,CAAC,OAAO,CAAC,0BAAa,CAAC,oBAAoB,CAAC,CAAA;YAE9D,IAAI;gBACF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,SAAS,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;oBAC5D,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;wBACtB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;qBACrB;oBAED,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAA;oBAE3C,OAAO,OAAO,CACZ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAwB,CACjE,CAAA;gBACH,CAAC,CAAC,CACH,CAAA;aACF;YAAC,OAAO,CAAM,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;aAC3B;QACH,CAAC;KAAA;CACF;AA3ED,8BA2EC"}