@bitgo-beta/sdk-coin-atom 1.1.2-alpha.4 → 1.1.2-alpha.400

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 (78) hide show
  1. package/dist/src/atom.d.ts +19 -21
  2. package/dist/src/atom.d.ts.map +1 -1
  3. package/dist/src/atom.js +33 -43
  4. package/dist/src/index.js +6 -2
  5. package/dist/src/lib/constants.d.ts +5 -5
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +10 -9
  8. package/dist/src/lib/index.d.ts +3 -5
  9. package/dist/src/lib/index.d.ts.map +1 -1
  10. package/dist/src/lib/index.js +33 -18
  11. package/dist/src/lib/keyPair.d.ts +3 -14
  12. package/dist/src/lib/keyPair.d.ts.map +1 -1
  13. package/dist/src/lib/keyPair.js +6 -52
  14. package/dist/src/lib/transactionBuilderFactory.d.ts +11 -11
  15. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  16. package/dist/src/lib/transactionBuilderFactory.js +38 -16
  17. package/dist/src/lib/utils.d.ts +7 -84
  18. package/dist/src/lib/utils.d.ts.map +1 -1
  19. package/dist/src/lib/utils.js +49 -191
  20. package/dist/src/tatom.d.ts +0 -8
  21. package/dist/src/tatom.d.ts.map +1 -1
  22. package/dist/src/tatom.js +1 -13
  23. package/dist/test/integration/index.d.ts +2 -0
  24. package/dist/test/integration/index.d.ts.map +1 -0
  25. package/dist/test/integration/index.js +54 -0
  26. package/dist/test/resources/atom.d.ts +291 -0
  27. package/dist/test/resources/atom.d.ts.map +1 -0
  28. package/dist/test/resources/atom.js +471 -0
  29. package/dist/test/unit/atom.d.ts +2 -0
  30. package/dist/test/unit/atom.d.ts.map +1 -0
  31. package/dist/test/unit/atom.js +552 -0
  32. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  33. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  34. package/dist/test/unit/getBuilderFactory.js +10 -0
  35. package/dist/test/unit/keyPair.d.ts +2 -0
  36. package/dist/test/unit/keyPair.d.ts.map +1 -0
  37. package/dist/test/unit/keyPair.js +93 -0
  38. package/dist/test/unit/transaction.d.ts +2 -0
  39. package/dist/test/unit/transaction.d.ts.map +1 -0
  40. package/dist/test/unit/transaction.js +220 -0
  41. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts +2 -0
  42. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts.map +1 -0
  43. package/dist/test/unit/transactionBuilder/StakingActivateBuilder.js +171 -0
  44. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts +2 -0
  45. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts.map +1 -0
  46. package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.js +140 -0
  47. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts +2 -0
  48. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts.map +1 -0
  49. package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.js +93 -0
  50. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts +2 -0
  51. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts.map +1 -0
  52. package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.js +141 -0
  53. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  54. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  55. package/dist/test/unit/transactionBuilder/transactionBuilder.js +100 -0
  56. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  57. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  58. package/dist/test/unit/transactionBuilder/transferBuilder.js +241 -0
  59. package/dist/test/unit/utils.d.ts +2 -0
  60. package/dist/test/unit/utils.d.ts.map +1 -0
  61. package/dist/test/unit/utils.js +85 -0
  62. package/dist/tsconfig.tsbuildinfo +1 -0
  63. package/package.json +17 -13
  64. package/.eslintignore +0 -5
  65. package/.mocharc.yml +0 -8
  66. package/CHANGELOG.md +0 -51
  67. package/dist/src/lib/iface.d.ts +0 -31
  68. package/dist/src/lib/iface.d.ts.map +0 -1
  69. package/dist/src/lib/iface.js +0 -3
  70. package/dist/src/lib/transaction.d.ts +0 -46
  71. package/dist/src/lib/transaction.d.ts.map +0 -1
  72. package/dist/src/lib/transaction.js +0 -161
  73. package/dist/src/lib/transactionBuilder.d.ts +0 -76
  74. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  75. package/dist/src/lib/transactionBuilder.js +0 -211
  76. package/dist/src/lib/transferBuilder.d.ts +0 -8
  77. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  78. package/dist/src/lib/transferBuilder.js +0 -15
@@ -1,91 +1,14 @@
1
- /// <reference types="node" />
2
- import { BaseUtils, Signature } from '@bitgo-beta/sdk-core';
3
- import { DecodedTxRaw } from '@cosmjs/proto-signing';
4
- import { AtomTransaction, GasFeeLimitData, MessageData } from './iface';
5
- import { TxRaw, SignDoc } from 'cosmjs-types/cosmos/tx/v1beta1/tx';
6
- export declare class Utils implements BaseUtils {
1
+ import { CosmosUtils } from '@bitgo-beta/abstract-cosmos';
2
+ import { Coin } from '@cosmjs/stargate';
3
+ export declare class Utils extends CosmosUtils {
7
4
  /** @inheritdoc */
8
- isValidBlockId(hash: string): boolean;
9
- /** @inheritdoc */
10
- isValidPrivateKey(key: string): boolean;
5
+ isValidAddress(address: string): boolean;
11
6
  /** @inheritdoc */
12
- isValidPublicKey(key: string): boolean;
7
+ isValidValidatorAddress(address: string): boolean;
13
8
  /** @inheritdoc */
14
- isValidSignature(signature: string): boolean;
9
+ isValidContractAddress(address: string): boolean;
15
10
  /** @inheritdoc */
16
- isValidTransactionId(txId: string): boolean;
17
- validateBlake2b(hash: string): boolean;
18
- /**
19
- * Checks if raw transaction can be deserialized
20
- *
21
- * @param {string} rawTransaction - transaction in base64 string format
22
- * @returns {boolean} - the validation result
23
- */
24
- isValidRawTransaction(rawTransaction: string): boolean;
25
- /**
26
- * Check the raw transaction has a valid format in the blockchain context, throw otherwise.
27
- *
28
- * @param {string} rawTransaction - Transaction in base64 string format
29
- */
30
- validateRawTransaction(rawTransaction: string): void;
31
- isValidAddress(address: string): boolean;
32
- /**
33
- * Returns whether or not the string is a valid amount
34
- *
35
- * @param {number[]} amounts - the amounts to validate
36
- * @returns {boolean} - the validation result
37
- */
38
- isValidAmounts(amounts: number[]): boolean;
39
- isValidAmount(amount: number): boolean;
40
- /**
41
- * Decodes raw tx data into messages, signing info, and fee data
42
- * @param txHex - raw base64 tx
43
- */
44
- getDecodedTxFromRawBase64(txRaw: string): DecodedTxRaw;
45
- /**
46
- * Returns the array of messages in the body of the decoded transaction
47
- * @param decodedTx
48
- */
49
- private getEncodedMessagesFromDecodedTx;
50
- /**
51
- * Arranges a decoded message into our MessageData value interface
52
- * @param decodedMessage
53
- * @private
54
- */
55
- private getMessageValueDataFromDecodedMessage;
56
- /**
57
- * Returns an array of MessageData[] from an encoded messages array
58
- * @param encodedMessages
59
- * @private
60
- */
61
- private getMessageDataFromEncodedMessages;
62
- /**
63
- * Pulls the sequence number from a DecodedTxRaw AuthInfo property
64
- * @param decodedTx
65
- * @private
66
- */
67
- getSequenceFromDecodedTx(decodedTx: DecodedTxRaw): number;
68
- /**
69
- * Pulls the typeUrl from the encoded message of a DecodedTxRaw
70
- * @param decodedTx
71
- */
72
- getTypeUrlFromDecodedTx(decodedTx: DecodedTxRaw): string;
73
- getGasBudgetFromDecodedTx(decodedTx: DecodedTxRaw): GasFeeLimitData;
74
- /**
75
- * Returns the array of MessageData[] from the decoded transaction
76
- * @param decodedTx
77
- */
78
- getMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
79
- createSignDocFromAtomTransaction(pubkey: any, atomTransaction: AtomTransaction): import("cosmjs-types/cosmos/tx/v1beta1/tx").SignDoc;
80
- createSignedTxRaw(atomSignature: Signature, signDoc: SignDoc): TxRaw;
81
- createBase64SignedTxBytesFromSignedTxRaw(signedTxRaw: TxRaw): string;
82
- isSignedRawTx(rawTransaction: string): boolean;
83
- getSignerInfoFromRawSignedTx(rawTransaction: string): {
84
- pubKey: {
85
- pub: string;
86
- };
87
- signature: Buffer;
88
- };
11
+ validateAmount(amount: Coin): void;
89
12
  }
90
13
  declare const utils: Utils;
91
14
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAyB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGnF,OAAO,EACL,YAAY,EAOb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAGnE,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMtC;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAItD;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOxC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;IAS1C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQtC;;;OAGG;IACH,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAItD;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAIvC;;;;OAIG;IACH,OAAO,CAAC,qCAAqC;IAQ7C;;;;OAIG;IACH,OAAO,CAAC,iCAAiC;IAYzC;;;;OAIG;IACH,wBAAwB,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM;IAIzD;;;OAGG;IACH,uBAAuB,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM;IAKxD,yBAAyB,CAAC,SAAS,EAAE,YAAY,GAAG,eAAe;IAOnE;;;OAGG;IACH,2BAA2B,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,EAAE;IAKnE,gCAAgC,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,eAAe;IAqB9E,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK;IASpE,wCAAwC,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM;IAKpE,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAQ9C,4BAA4B,CAAC,cAAc,EAAE,MAAM;;;;;;CAapD;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC,qBAAa,KAAM,SAAQ,WAAW;IACpC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIjD,kBAAkB;IAClB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIhD,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;CASnC;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -1,213 +1,71 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.Utils = void 0;
40
+ const abstract_cosmos_1 = require("@bitgo-beta/abstract-cosmos");
7
41
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
42
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- const encoding_1 = require("@cosmjs/encoding");
10
- const proto_signing_1 = require("@cosmjs/proto-signing");
11
- const stargate_1 = require("@cosmjs/stargate");
12
- const amino_1 = require("@cosmjs/amino");
13
- const tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
14
- class Utils {
15
- /** @inheritdoc */
16
- isValidBlockId(hash) {
17
- return this.validateBlake2b(hash);
18
- }
43
+ const constants = __importStar(require("./constants"));
44
+ class Utils extends abstract_cosmos_1.CosmosUtils {
19
45
  /** @inheritdoc */
20
- isValidPrivateKey(key) {
21
- throw new Error('Method not implemented.');
46
+ isValidAddress(address) {
47
+ return this.isValidCosmosLikeAddressWithMemoId(address, constants.accountAddressRegex);
22
48
  }
23
49
  /** @inheritdoc */
24
- isValidPublicKey(key) {
25
- throw new Error('Method not implemented.');
50
+ isValidValidatorAddress(address) {
51
+ return this.isValidBech32AddressMatchingRegex(address, constants.validatorAddressRegex);
26
52
  }
27
53
  /** @inheritdoc */
28
- isValidSignature(signature) {
29
- throw new Error('Method not implemented.');
54
+ isValidContractAddress(address) {
55
+ return this.isValidBech32AddressMatchingRegex(address, constants.contractAddressRegex);
30
56
  }
31
57
  /** @inheritdoc */
32
- isValidTransactionId(txId) {
33
- return this.validateBlake2b(txId);
34
- }
35
- validateBlake2b(hash) {
36
- if ((hash === null || hash === void 0 ? void 0 : hash.length) !== 64) {
37
- return false;
38
- }
39
- return hash.match(/^[a-zA-Z0-9]+$/) !== null;
40
- }
41
- /**
42
- * Checks if raw transaction can be deserialized
43
- *
44
- * @param {string} rawTransaction - transaction in base64 string format
45
- * @returns {boolean} - the validation result
46
- */
47
- isValidRawTransaction(rawTransaction) {
48
- throw new Error('Method not implemented.');
49
- }
50
- /**
51
- * Check the raw transaction has a valid format in the blockchain context, throw otherwise.
52
- *
53
- * @param {string} rawTransaction - Transaction in base64 string format
54
- */
55
- validateRawTransaction(rawTransaction) {
56
- if (!rawTransaction) {
57
- throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
58
- }
59
- if (!this.isValidRawTransaction(rawTransaction)) {
60
- throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
61
- }
62
- }
63
- isValidAddress(address) {
64
- const allowed_chars = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';
65
- const atomRegex = '^(cosmos)1([' + allowed_chars + ']+)$';
66
- const re = new RegExp(atomRegex);
67
- return re.test(address);
68
- }
69
- /**
70
- * Returns whether or not the string is a valid amount
71
- *
72
- * @param {number[]} amounts - the amounts to validate
73
- * @returns {boolean} - the validation result
74
- */
75
- isValidAmounts(amounts) {
76
- for (const amount of amounts) {
77
- if (!this.isValidAmount(amount)) {
78
- return false;
79
- }
80
- }
81
- return true;
82
- }
83
- isValidAmount(amount) {
84
- const bigNumberAmount = new bignumber_js_1.default(amount);
85
- if (!bigNumberAmount.isInteger() || bigNumberAmount.isLessThanOrEqualTo(0)) {
86
- return false;
87
- }
88
- return true;
89
- }
90
- /**
91
- * Decodes raw tx data into messages, signing info, and fee data
92
- * @param txHex - raw base64 tx
93
- */
94
- getDecodedTxFromRawBase64(txRaw) {
95
- return proto_signing_1.decodeTxRaw(encoding_1.fromBase64(txRaw));
96
- }
97
- /**
98
- * Returns the array of messages in the body of the decoded transaction
99
- * @param decodedTx
100
- */
101
- getEncodedMessagesFromDecodedTx(decodedTx) {
102
- return decodedTx.body.messages;
103
- }
104
- /**
105
- * Arranges a decoded message into our MessageData value interface
106
- * @param decodedMessage
107
- * @private
108
- */
109
- getMessageValueDataFromDecodedMessage(decodedMessage) {
110
- return {
111
- fromAddress: decodedMessage.fromAddress,
112
- toAddress: decodedMessage.toAddress,
113
- amount: decodedMessage.amount,
114
- };
115
- }
116
- /**
117
- * Returns an array of MessageData[] from an encoded messages array
118
- * @param encodedMessages
119
- * @private
120
- */
121
- getMessageDataFromEncodedMessages(encodedMessages) {
122
- const registry = new proto_signing_1.Registry(stargate_1.defaultRegistryTypes);
123
- const messageData = [];
124
- for (const message of encodedMessages) {
125
- messageData.push({
126
- value: this.getMessageValueDataFromDecodedMessage(registry.decode(message)),
127
- typeUrl: message.typeUrl,
128
- });
58
+ validateAmount(amount) {
59
+ const amountBig = (0, bignumber_js_1.default)(amount.amount);
60
+ if (amountBig.isLessThanOrEqualTo(0)) {
61
+ throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid amount: ' + amount.amount);
129
62
  }
130
- return messageData;
131
- }
132
- /**
133
- * Pulls the sequence number from a DecodedTxRaw AuthInfo property
134
- * @param decodedTx
135
- * @private
136
- */
137
- getSequenceFromDecodedTx(decodedTx) {
138
- return Number(decodedTx.authInfo.signerInfos[0].sequence);
139
- }
140
- /**
141
- * Pulls the typeUrl from the encoded message of a DecodedTxRaw
142
- * @param decodedTx
143
- */
144
- getTypeUrlFromDecodedTx(decodedTx) {
145
- const encodedMessage = this.getEncodedMessagesFromDecodedTx(decodedTx)[0];
146
- return encodedMessage.typeUrl;
147
- }
148
- getGasBudgetFromDecodedTx(decodedTx) {
149
- var _a, _b;
150
- return {
151
- amount: (_a = decodedTx.authInfo.fee) === null || _a === void 0 ? void 0 : _a.amount,
152
- gas: Number((_b = decodedTx.authInfo.fee) === null || _b === void 0 ? void 0 : _b.gasLimit),
153
- };
154
- }
155
- /**
156
- * Returns the array of MessageData[] from the decoded transaction
157
- * @param decodedTx
158
- */
159
- getMessageDataFromDecodedTx(decodedTx) {
160
- const encodedMessages = this.getEncodedMessagesFromDecodedTx(decodedTx);
161
- return this.getMessageDataFromEncodedMessages(encodedMessages);
162
- }
163
- createSignDocFromAtomTransaction(pubkey, atomTransaction) {
164
- const register = new proto_signing_1.Registry(stargate_1.defaultRegistryTypes);
165
- const txBodyValue = {
166
- messages: atomTransaction.sendMessages,
167
- };
168
- const txBodyBytes = register.encodeTxBody(txBodyValue);
169
- const sequence = atomTransaction.sequence;
170
- const authInfoBytes = proto_signing_1.makeAuthInfoBytes([{ pubkey, sequence }], atomTransaction.gasBudget.amount, atomTransaction.gasBudget.gas, undefined, undefined, undefined);
171
- // Ignoring linting because makeSignDoc expects string/number inputs but are null for our purposes
172
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
173
- // @ts-ignore
174
- return proto_signing_1.makeSignDoc(txBodyBytes, authInfoBytes, null, null);
175
- }
176
- createSignedTxRaw(atomSignature, signDoc) {
177
- const stdSignature = amino_1.encodeSecp256k1Signature(encoding_1.fromHex(atomSignature.publicKey.pub), atomSignature.signature);
178
- return tx_1.TxRaw.fromPartial({
179
- bodyBytes: signDoc.bodyBytes,
180
- authInfoBytes: signDoc.authInfoBytes,
181
- signatures: [encoding_1.fromBase64(stdSignature.signature)],
182
- });
183
- }
184
- createBase64SignedTxBytesFromSignedTxRaw(signedTxRaw) {
185
- const signedTxBytes = tx_1.TxRaw.encode(signedTxRaw).finish();
186
- return encoding_1.toBase64(signedTxBytes);
187
- }
188
- isSignedRawTx(rawTransaction) {
189
- const decodedTx = this.getDecodedTxFromRawBase64(rawTransaction);
190
- if (decodedTx.authInfo.signerInfos.length > 0) {
191
- return true;
192
- }
193
- return false;
194
- }
195
- getSignerInfoFromRawSignedTx(rawTransaction) {
196
- var _a;
197
- if (!this.isSignedRawTx(rawTransaction)) {
198
- throw new Error('getSignerInfoFromRawTx failed, raw tx is not signed');
63
+ if (!constants.validDenoms.find((denom) => denom === amount.denom)) {
64
+ throw new sdk_core_1.InvalidTransactionError('transactionBuilder: validateAmount: Invalid denom: ' + amount.denom);
199
65
  }
200
- const decodedTx = this.getDecodedTxFromRawBase64(rawTransaction);
201
- const aminoPubKey = decodedTx.authInfo.signerInfos[0].publicKey;
202
- const decodedPubKeyHex = encoding_1.toHex(encoding_1.fromBase64((_a = proto_signing_1.decodePubkey(aminoPubKey)) === null || _a === void 0 ? void 0 : _a.value));
203
- const pubKey = {
204
- pub: decodedPubKeyHex,
205
- };
206
- const signature = Buffer.from(decodedTx.signatures[0]);
207
- return { pubKey, signature };
208
66
  }
209
67
  }
210
68
  exports.Utils = Utils;
211
69
  const utils = new Utils();
212
70
  exports.default = utils;
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUFtRjtBQUNuRixnRUFBcUM7QUFDckMsK0NBQXdFO0FBQ3hFLHlEQVErQjtBQUUvQiwrQ0FBOEQ7QUFDOUQseUNBQXlEO0FBQ3pELDBEQUFtRTtBQUduRSxNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLE1BQUssRUFBRSxFQUFFO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gscUJBQXFCLENBQUMsY0FBc0I7UUFDMUMsTUFB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Q0FBQyxTQUFnQixDQUFDO1FBQ3ZFLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQUssQ0FBQyxxQkFBVSxDQUFDLE1BQUEsNEJBQVksQ0FBQyxXQUFXLENBQUMsMENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM3RSxNQUFNLE1BQU0sR0FBRztZQUNiLEdBQUcsRUFBRSxnQkFBZ0I7U0FDdEIsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBOU5ELHNCQThOQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVV0aWxzLCBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsIFNpZ25hdHVyZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IGZyb21CYXNlNjQsIGZyb21IZXgsIHRvQmFzZTY0LCB0b0hleCB9IGZyb20gJ0Bjb3NtanMvZW5jb2RpbmcnO1xuaW1wb3J0IHtcbiAgRGVjb2RlZFR4UmF3LFxuICBkZWNvZGVQdWJrZXksXG4gIGRlY29kZVR4UmF3LFxuICBFbmNvZGVPYmplY3QsXG4gIG1ha2VBdXRoSW5mb0J5dGVzLFxuICBtYWtlU2lnbkRvYyxcbiAgUmVnaXN0cnksXG59IGZyb20gJ0Bjb3NtanMvcHJvdG8tc2lnbmluZyc7XG5pbXBvcnQgeyBBdG9tVHJhbnNhY3Rpb24sIEdhc0ZlZUxpbWl0RGF0YSwgTWVzc2FnZURhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IENvaW4sIGRlZmF1bHRSZWdpc3RyeVR5cGVzIH0gZnJvbSAnQGNvc21qcy9zdGFyZ2F0ZSc7XG5pbXBvcnQgeyBlbmNvZGVTZWNwMjU2azFTaWduYXR1cmUgfSBmcm9tICdAY29zbWpzL2FtaW5vJztcbmltcG9ydCB7IFR4UmF3LCBTaWduRG9jIH0gZnJvbSAnY29zbWpzLXR5cGVzL2Nvc21vcy90eC92MWJldGExL3R4JztcbmltcG9ydCB7IEFueSB9IGZyb20gJ2Nvc21qcy10eXBlcy9nb29nbGUvcHJvdG9idWYvYW55JztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQmxha2UyYihoYXNoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVCbGFrZTJiKHR4SWQpO1xuICB9XG5cbiAgdmFsaWRhdGVCbGFrZTJiKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmIChoYXNoPy5sZW5ndGggIT09IDY0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBoYXNoLm1hdGNoKC9eW2EtekEtWjAtOV0rJC8pICE9PSBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgcmF3IHRyYW5zYWN0aW9uIGNhbiBiZSBkZXNlcmlhbGl6ZWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJhd1RyYW5zYWN0aW9uIC0gdHJhbnNhY3Rpb24gaW4gYmFzZTY0IHN0cmluZyBmb3JtYXRcbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gICAqL1xuICBpc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGUgcmF3IHRyYW5zYWN0aW9uIGhhcyBhIHZhbGlkIGZvcm1hdCBpbiB0aGUgYmxvY2tjaGFpbiBjb250ZXh0LCB0aHJvdyBvdGhlcndpc2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIFRyYW5zYWN0aW9uIGluIGJhc2U2NCBzdHJpbmcgIGZvcm1hdFxuICAgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBhbGxvd2VkX2NoYXJzID0gJ3FwenJ5OXg4Z2YydHZkdzBzM2puNTRraGNlNm11YTdsJztcbiAgICBjb25zdCBhdG9tUmVnZXggPSAnXihjb3Ntb3MpMShbJyArIGFsbG93ZWRfY2hhcnMgKyAnXSspJCc7XG4gICAgY29uc3QgcmUgPSBuZXcgUmVnRXhwKGF0b21SZWdleCk7XG4gICAgcmV0dXJuIHJlLnRlc3QoYWRkcmVzcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50XG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyW119IGFtb3VudHMgLSB0aGUgYW1vdW50cyB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAgICovXG4gIGlzVmFsaWRBbW91bnRzKGFtb3VudHM6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBhbW91bnQgb2YgYW1vdW50cykge1xuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRBbW91bnQoYW1vdW50KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaXNWYWxpZEFtb3VudChhbW91bnQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGJpZ051bWJlckFtb3VudCA9IG5ldyBCaWdOdW1iZXIoYW1vdW50KTtcbiAgICBpZiAoIWJpZ051bWJlckFtb3VudC5pc0ludGVnZXIoKSB8fCBiaWdOdW1iZXJBbW91bnQuaXNMZXNzVGhhbk9yRXF1YWxUbygwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHJhdyB0eCBkYXRhIGludG8gbWVzc2FnZXMsIHNpZ25pbmcgaW5mbywgYW5kIGZlZSBkYXRhXG4gICAqIEBwYXJhbSB0eEhleCAtIHJhdyBiYXNlNjQgdHhcbiAgICovXG4gIGdldERlY29kZWRUeEZyb21SYXdCYXNlNjQodHhSYXc6IHN0cmluZyk6IERlY29kZWRUeFJhdyB7XG4gICAgcmV0dXJuIGRlY29kZVR4UmF3KGZyb21CYXNlNjQodHhSYXcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhcnJheSBvZiBtZXNzYWdlcyBpbiB0aGUgYm9keSBvZiB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gZGVjb2RlZFR4XG4gICAqL1xuICBwcml2YXRlIGdldEVuY29kZWRNZXNzYWdlc0Zyb21EZWNvZGVkVHgoZGVjb2RlZFR4OiBEZWNvZGVkVHhSYXcpOiBFbmNvZGVPYmplY3RbXSB7XG4gICAgcmV0dXJuIGRlY29kZWRUeC5ib2R5Lm1lc3NhZ2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFycmFuZ2VzIGEgZGVjb2RlZCBtZXNzYWdlIGludG8gb3VyIE1lc3NhZ2VEYXRhIHZhbHVlIGludGVyZmFjZVxuICAgKiBAcGFyYW0gZGVjb2RlZE1lc3NhZ2VcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0TWVzc2FnZVZhbHVlRGF0YUZyb21EZWNvZGVkTWVzc2FnZShkZWNvZGVkTWVzc2FnZTogYW55KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbUFkZHJlc3M6IGRlY29kZWRNZXNzYWdlLmZyb21BZGRyZXNzLFxuICAgICAgdG9BZGRyZXNzOiBkZWNvZGVkTWVzc2FnZS50b0FkZHJlc3MsXG4gICAgICBhbW91bnQ6IGRlY29kZWRNZXNzYWdlLmFtb3VudCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgTWVzc2FnZURhdGFbXSBmcm9tIGFuIGVuY29kZWQgbWVzc2FnZXMgYXJyYXlcbiAgICogQHBhcmFtIGVuY29kZWRNZXNzYWdlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRNZXNzYWdlRGF0YUZyb21FbmNvZGVkTWVzc2FnZXMoZW5jb2RlZE1lc3NhZ2VzOiBFbmNvZGVPYmplY3RbXSk6IE1lc3NhZ2VEYXRhW10ge1xuICAgIGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IFJlZ2lzdHJ5KGRlZmF1bHRSZWdpc3RyeVR5cGVzKTtcbiAgICBjb25zdCBtZXNzYWdlRGF0YTogTWVzc2FnZURhdGFbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBlbmNvZGVkTWVzc2FnZXMpIHtcbiAgICAgIG1lc3NhZ2VEYXRhLnB1c2goe1xuICAgICAgICB2YWx1ZTogdGhpcy5nZXRNZXNzYWdlVmFsdWVEYXRhRnJvbURlY29kZWRNZXNzYWdlKHJlZ2lzdHJ5LmRlY29kZShtZXNzYWdlKSksXG4gICAgICAgIHR5cGVVcmw6IG1lc3NhZ2UudHlwZVVybCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZURhdGE7XG4gIH1cblxuICAvKipcbiAgICogUHVsbHMgdGhlIHNlcXVlbmNlIG51bWJlciBmcm9tIGEgRGVjb2RlZFR4UmF3IEF1dGhJbmZvIHByb3BlcnR5XG4gICAqIEBwYXJhbSBkZWNvZGVkVHhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGdldFNlcXVlbmNlRnJvbURlY29kZWRUeChkZWNvZGVkVHg6IERlY29kZWRUeFJhdyk6IG51bWJlciB7XG4gICAgcmV0dXJuIE51bWJlcihkZWNvZGVkVHguYXV0aEluZm8uc2lnbmVySW5mb3NbMF0uc2VxdWVuY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1bGxzIHRoZSB0eXBlVXJsIGZyb20gdGhlIGVuY29kZWQgbWVzc2FnZSBvZiBhIERlY29kZWRUeFJhd1xuICAgKiBAcGFyYW0gZGVjb2RlZFR4XG4gICAqL1xuICBnZXRUeXBlVXJsRnJvbURlY29kZWRUeChkZWNvZGVkVHg6IERlY29kZWRUeFJhdyk6IHN0cmluZyB7XG4gICAgY29uc3QgZW5jb2RlZE1lc3NhZ2UgPSB0aGlzLmdldEVuY29kZWRNZXNzYWdlc0Zyb21EZWNvZGVkVHgoZGVjb2RlZFR4KVswXTtcbiAgICByZXR1cm4gZW5jb2RlZE1lc3NhZ2UudHlwZVVybDtcbiAgfVxuXG4gIGdldEdhc0J1ZGdldEZyb21EZWNvZGVkVHgoZGVjb2RlZFR4OiBEZWNvZGVkVHhSYXcpOiBHYXNGZWVMaW1pdERhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBhbW91bnQ6IGRlY29kZWRUeC5hdXRoSW5mby5mZWU/LmFtb3VudCBhcyBDb2luW10sXG4gICAgICBnYXM6IE51bWJlcihkZWNvZGVkVHguYXV0aEluZm8uZmVlPy5nYXNMaW1pdCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhcnJheSBvZiBNZXNzYWdlRGF0YVtdIGZyb20gdGhlIGRlY29kZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGRlY29kZWRUeFxuICAgKi9cbiAgZ2V0TWVzc2FnZURhdGFGcm9tRGVjb2RlZFR4KGRlY29kZWRUeDogRGVjb2RlZFR4UmF3KTogTWVzc2FnZURhdGFbXSB7XG4gICAgY29uc3QgZW5jb2RlZE1lc3NhZ2VzID0gdGhpcy5nZXRFbmNvZGVkTWVzc2FnZXNGcm9tRGVjb2RlZFR4KGRlY29kZWRUeCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZURhdGFGcm9tRW5jb2RlZE1lc3NhZ2VzKGVuY29kZWRNZXNzYWdlcyk7XG4gIH1cblxuICBjcmVhdGVTaWduRG9jRnJvbUF0b21UcmFuc2FjdGlvbihwdWJrZXk6IGFueSwgYXRvbVRyYW5zYWN0aW9uOiBBdG9tVHJhbnNhY3Rpb24pIHtcbiAgICBjb25zdCByZWdpc3RlciA9IG5ldyBSZWdpc3RyeShkZWZhdWx0UmVnaXN0cnlUeXBlcyk7XG4gICAgY29uc3QgdHhCb2R5VmFsdWUgPSB7XG4gICAgICBtZXNzYWdlczogYXRvbVRyYW5zYWN0aW9uLnNlbmRNZXNzYWdlcyBhcyB1bmtub3duIGFzIEFueVtdLFxuICAgIH07XG4gICAgY29uc3QgdHhCb2R5Qnl0ZXMgPSByZWdpc3Rlci5lbmNvZGVUeEJvZHkodHhCb2R5VmFsdWUpO1xuICAgIGNvbnN0IHNlcXVlbmNlID0gYXRvbVRyYW5zYWN0aW9uLnNlcXVlbmNlO1xuICAgIGNvbnN0IGF1dGhJbmZvQnl0ZXMgPSBtYWtlQXV0aEluZm9CeXRlcyhcbiAgICAgIFt7IHB1YmtleSwgc2VxdWVuY2UgfV0sXG4gICAgICBhdG9tVHJhbnNhY3Rpb24uZ2FzQnVkZ2V0LmFtb3VudCxcbiAgICAgIGF0b21UcmFuc2FjdGlvbi5nYXNCdWRnZXQuZ2FzLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcbiAgICAvLyBJZ25vcmluZyBsaW50aW5nIGJlY2F1c2UgbWFrZVNpZ25Eb2MgZXhwZWN0cyBzdHJpbmcvbnVtYmVyIGlucHV0cyBidXQgYXJlIG51bGwgZm9yIG91ciBwdXJwb3Nlc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIG1ha2VTaWduRG9jKHR4Qm9keUJ5dGVzLCBhdXRoSW5mb0J5dGVzLCBudWxsLCBudWxsKTtcbiAgfVxuXG4gIGNyZWF0ZVNpZ25lZFR4UmF3KGF0b21TaWduYXR1cmU6IFNpZ25hdHVyZSwgc2lnbkRvYzogU2lnbkRvYyk6IFR4UmF3IHtcbiAgICBjb25zdCBzdGRTaWduYXR1cmUgPSBlbmNvZGVTZWNwMjU2azFTaWduYXR1cmUoZnJvbUhleChhdG9tU2lnbmF0dXJlLnB1YmxpY0tleS5wdWIpLCBhdG9tU2lnbmF0dXJlLnNpZ25hdHVyZSk7XG4gICAgcmV0dXJuIFR4UmF3LmZyb21QYXJ0aWFsKHtcbiAgICAgIGJvZHlCeXRlczogc2lnbkRvYy5ib2R5Qnl0ZXMsXG4gICAgICBhdXRoSW5mb0J5dGVzOiBzaWduRG9jLmF1dGhJbmZvQnl0ZXMsXG4gICAgICBzaWduYXR1cmVzOiBbZnJvbUJhc2U2NChzdGRTaWduYXR1cmUuc2lnbmF0dXJlKV0sXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVCYXNlNjRTaWduZWRUeEJ5dGVzRnJvbVNpZ25lZFR4UmF3KHNpZ25lZFR4UmF3OiBUeFJhdyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2lnbmVkVHhCeXRlcyA9IFR4UmF3LmVuY29kZShzaWduZWRUeFJhdykuZmluaXNoKCk7XG4gICAgcmV0dXJuIHRvQmFzZTY0KHNpZ25lZFR4Qnl0ZXMpO1xuICB9XG5cbiAgaXNTaWduZWRSYXdUeChyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVjb2RlZFR4ID0gdGhpcy5nZXREZWNvZGVkVHhGcm9tUmF3QmFzZTY0KHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAoZGVjb2RlZFR4LmF1dGhJbmZvLnNpZ25lckluZm9zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRTaWduZXJJbmZvRnJvbVJhd1NpZ25lZFR4KHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuaXNTaWduZWRSYXdUeChyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZ2V0U2lnbmVySW5mb0Zyb21SYXdUeCBmYWlsZWQsIHJhdyB0eCBpcyBub3Qgc2lnbmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGRlY29kZWRUeCA9IHRoaXMuZ2V0RGVjb2RlZFR4RnJvbVJhd0Jhc2U2NChyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYW1pbm9QdWJLZXkgPSBkZWNvZGVkVHguYXV0aEluZm8uc2lnbmVySW5mb3NbMF0ucHVibGljS2V5IGFzIEFueTtcbiAgICBjb25zdCBkZWNvZGVkUHViS2V5SGV4ID0gdG9IZXgoZnJvbUJhc2U2NChkZWNvZGVQdWJrZXkoYW1pbm9QdWJLZXkpPy52YWx1ZSkpO1xuICAgIGNvbnN0IHB1YktleSA9IHtcbiAgICAgIHB1YjogZGVjb2RlZFB1YktleUhleCxcbiAgICB9O1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IEJ1ZmZlci5mcm9tKGRlY29kZWRUeC5zaWduYXR1cmVzWzBdKTtcbiAgICByZXR1cm4geyBwdWJLZXksIHNpZ25hdHVyZSB9O1xuICB9XG59XG5cbmNvbnN0IHV0aWxzID0gbmV3IFV0aWxzKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlFQUEwRDtBQUMxRCxtREFBK0Q7QUFFL0QsZ0VBQXFDO0FBQ3JDLHVEQUF5QztBQUV6QyxNQUFhLEtBQU0sU0FBUSw2QkFBVztJQUNwQyxrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsdUJBQXVCLENBQUMsT0FBZTtRQUNyQyxPQUFPLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixzQkFBc0IsQ0FBQyxPQUFlO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxNQUFZO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUEsc0JBQVMsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsSUFBSSxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksa0NBQXVCLENBQUMsc0RBQXNELEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVHLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxNQUFNLElBQUksa0NBQXVCLENBQUMscURBQXFELEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFHLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUExQkQsc0JBMEJDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3Ntb3NVdGlscyB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWNvc21vcyc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENvaW4gfSBmcm9tICdAY29zbWpzL3N0YXJnYXRlJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBleHRlbmRzIENvc21vc1V0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRDb3Ntb3NMaWtlQWRkcmVzc1dpdGhNZW1vSWQoYWRkcmVzcywgY29uc3RhbnRzLmFjY291bnRBZGRyZXNzUmVnZXgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRWYWxpZGF0b3JBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRCZWNoMzJBZGRyZXNzTWF0Y2hpbmdSZWdleChhZGRyZXNzLCBjb25zdGFudHMudmFsaWRhdG9yQWRkcmVzc1JlZ2V4KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQ29udHJhY3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRCZWNoMzJBZGRyZXNzTWF0Y2hpbmdSZWdleChhZGRyZXNzLCBjb25zdGFudHMuY29udHJhY3RBZGRyZXNzUmVnZXgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlQW1vdW50KGFtb3VudDogQ29pbik6IHZvaWQge1xuICAgIGNvbnN0IGFtb3VudEJpZyA9IEJpZ051bWJlcihhbW91bnQuYW1vdW50KTtcbiAgICBpZiAoYW1vdW50QmlnLmlzTGVzc1RoYW5PckVxdWFsVG8oMCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb25CdWlsZGVyOiB2YWxpZGF0ZUFtb3VudDogSW52YWxpZCBhbW91bnQ6ICcgKyBhbW91bnQuYW1vdW50KTtcbiAgICB9XG4gICAgaWYgKCFjb25zdGFudHMudmFsaWREZW5vbXMuZmluZCgoZGVub20pID0+IGRlbm9tID09PSBhbW91bnQuZGVub20pKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogdmFsaWRhdGVBbW91bnQ6IEludmFsaWQgZGVub206ICcgKyBhbW91bnQuZGVub20pO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
@@ -10,13 +10,5 @@ export declare class Tatom extends Atom {
10
10
  protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
11
11
  protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
12
12
  static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
13
- /**
14
- * Identifier for the blockchain which supports this coin
15
- */
16
- getChain(): string;
17
- /**
18
- * Complete human-readable name of this coin
19
- */
20
- getFullName(): string;
21
13
  }
22
14
  //# sourceMappingURL=tatom.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tatom.d.ts","sourceRoot":"","sources":["../../src/tatom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAElE,qBAAa,KAAM,SAAQ,IAAI;IAC7B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,WAAW,IAAI,MAAM;CAG7B"}
1
+ {"version":3,"file":"tatom.d.ts","sourceRoot":"","sources":["../../src/tatom.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAElE,qBAAa,KAAM,SAAQ,IAAI;IAC7B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;CAG3F"}
package/dist/src/tatom.js CHANGED
@@ -13,18 +13,6 @@ class Tatom extends atom_1.Atom {
13
13
  static createInstance(bitgo, staticsCoin) {
14
14
  return new Tatom(bitgo, staticsCoin);
15
15
  }
16
- /**
17
- * Identifier for the blockchain which supports this coin
18
- */
19
- getChain() {
20
- return this._staticsCoin.name;
21
- }
22
- /**
23
- * Complete human-readable name of this coin
24
- */
25
- getFullName() {
26
- return this._staticsCoin.fullName;
27
- }
28
16
  }
29
17
  exports.Tatom = Tatom;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF0b20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGF0b20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsaUNBQThCO0FBRzlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFFN0IsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBN0JELHNCQTZCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVzdG5ldCBDb3Ntb3NcbiAqXG4gKiBAZm9ybWF0XG4gKi9cbmltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBBdG9tIH0gZnJvbSAnLi9hdG9tJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgY2xhc3MgVGF0b20gZXh0ZW5kcyBBdG9tIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0aWNzQ29pbjogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG5cbiAgICBpZiAoIXN0YXRpY3NDb2luKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgY29uc3RydWN0b3IgcGFyYW1ldGVyIHN0YXRpY3NDb2luJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGljc0NvaW4gPSBzdGF0aWNzQ29pbjtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBUYXRvbShiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXIgZm9yIHRoZSBibG9ja2NoYWluIHdoaWNoIHN1cHBvcnRzIHRoaXMgY29pblxuICAgKi9cbiAgcHVibGljIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGxldGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIGNvaW5cbiAgICovXG4gIHB1YmxpYyBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5mdWxsTmFtZTtcbiAgfVxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF0b20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGF0b20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsaUNBQThCO0FBRzlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFFN0IsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBZkQsc0JBZUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlc3RuZXQgQ29zbW9zXG4gKlxuICogQGZvcm1hdFxuICovXG5pbXBvcnQgeyBCYXNlQ29pbiwgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQXRvbSB9IGZyb20gJy4vYXRvbSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuZXhwb3J0IGNsYXNzIFRhdG9tIGV4dGVuZHMgQXRvbSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3RhdGljc0NvaW46IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj47XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuXG4gICAgaWYgKCFzdGF0aWNzQ29pbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBzdGF0aWNzQ29pbicpO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRpY3NDb2luID0gc3RhdGljc0NvaW47XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgVGF0b20oYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/integration/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("should");
4
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
5
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
6
+ const index_1 = require("../../src/index");
7
+ describe('ATOM', function () {
8
+ let bitgo;
9
+ // let basecoin;
10
+ before(function () {
11
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
12
+ bitgo.safeRegister('atom', index_1.Atom.createInstance);
13
+ bitgo.safeRegister('tatom', index_1.Tatom.createInstance);
14
+ bitgo.initializeTestVars();
15
+ // basecoin = bitgo.coin('tatom');
16
+ });
17
+ });
18
+ /*
19
+ nock.disableNetConnect();
20
+
21
+ const bitgo: TestBitGoAPI = TestBitGo.decorate(BitGoAPI, { env: 'test' });
22
+ bitgo.safeRegister('tatom', Tatom.createInstance);
23
+
24
+ before(function () {
25
+ bitgo.initializeTestVars();
26
+ basecoin = bitgo.coin('tatom');
27
+ });
28
+
29
+ after(function () {
30
+ nock.pendingMocks().should.be.empty();
31
+ });
32
+
33
+ it('should instantiate the coin', function () {
34
+ const basecoin = bitgo.coin('tatom');
35
+ basecoin.should.be.an.instanceof(Tatom);
36
+ });
37
+
38
+ it('isValidAddress should be correct', function () {
39
+ // Add valid addresses for testing
40
+ basecoin.isValidAddress('').should.be.True();
41
+ basecoin.isValidAddress('').should.be.True();
42
+ basecoin.isValidAddress('').should.be.True();
43
+ });
44
+
45
+ it('verifyAddress should work', function () {
46
+
47
+ }
48
+
49
+ it('Should be able to explain an Cosmos transaction', async function () {
50
+
51
+ });
52
+ });
53
+ */
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ludGVncmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWdCO0FBRWhCLG1EQUErRDtBQUMvRCxpREFBK0M7QUFFL0MsMkNBQThDO0FBRTlDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7SUFDZixJQUFJLEtBQW1CLENBQUM7SUFDeEIsZ0JBQWdCO0lBQ2hCLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGFBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQixrQ0FBa0M7SUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1DRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcblxuaW1wb3J0IHsgVGVzdEJpdEdvLCBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuXG5pbXBvcnQgeyBBdG9tLCBUYXRvbSB9IGZyb20gJy4uLy4uL3NyYy9pbmRleCc7XG5cbmRlc2NyaWJlKCdBVE9NJywgZnVuY3Rpb24gKCkge1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcbiAgLy8gbGV0IGJhc2Vjb2luO1xuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ21vY2snIH0pO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcignYXRvbScsIEF0b20uY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGF0b20nLCBUYXRvbS5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgLy8gYmFzZWNvaW4gPSBiaXRnby5jb2luKCd0YXRvbScpO1xuICB9KTtcbn0pO1xuXG4vKlxuICAgIG5vY2suZGlzYWJsZU5ldENvbm5lY3QoKTtcblxuICAgIGNvbnN0IGJpdGdvOiBUZXN0Qml0R29BUEkgPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAndGVzdCcgfSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0YXRvbScsIFRhdG9tLmNyZWF0ZUluc3RhbmNlKTtcblxuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgYmFzZWNvaW4gPSBiaXRnby5jb2luKCd0YXRvbScpO1xuICB9KTtcblxuICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgbm9jay5wZW5kaW5nTW9ja3MoKS5zaG91bGQuYmUuZW1wdHkoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBpbnN0YW50aWF0ZSB0aGUgY29pbicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RhdG9tJyk7XG4gICAgYmFzZWNvaW4uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVGF0b20pO1xuICB9KTtcblxuICBpdCgnaXNWYWxpZEFkZHJlc3Mgc2hvdWxkIGJlIGNvcnJlY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gQWRkIHZhbGlkIGFkZHJlc3NlcyBmb3IgdGVzdGluZ1xuICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuYmUuVHJ1ZSgpO1xuICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuYmUuVHJ1ZSgpO1xuICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCcnKS5zaG91bGQuYmUuVHJ1ZSgpO1xuICB9KTtcblxuICBpdCgndmVyaWZ5QWRkcmVzcyBzaG91bGQgd29yaycsIGZ1bmN0aW9uICgpIHtcblxuICB9XG5cbiAgaXQoJ1Nob3VsZCBiZSBhYmxlIHRvIGV4cGxhaW4gYW4gQ29zbW9zIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuXG4gIH0pO1xufSk7XG4qL1xuIl19