@bitgo-beta/sdk-coin-stx 1.4.3-alpha.43 → 1.4.3-alpha.431

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 (74) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +24 -9
  4. package/dist/src/lib/abstractContractBuilder.js +2 -2
  5. package/dist/src/lib/constants.d.ts +2 -1
  6. package/dist/src/lib/constants.d.ts.map +1 -1
  7. package/dist/src/lib/constants.js +5 -3
  8. package/dist/src/lib/contractBuilder.js +10 -10
  9. package/dist/src/lib/fungibleTokenTransferBuilder.d.ts +62 -0
  10. package/dist/src/lib/fungibleTokenTransferBuilder.d.ts.map +1 -0
  11. package/dist/src/lib/fungibleTokenTransferBuilder.js +131 -0
  12. package/dist/src/lib/iface.d.ts +56 -0
  13. package/dist/src/lib/iface.d.ts.map +1 -1
  14. package/dist/src/lib/iface.js +1 -1
  15. package/dist/src/lib/index.js +23 -9
  16. package/dist/src/lib/keyPair.js +18 -19
  17. package/dist/src/lib/sendmanyBuilder.js +11 -11
  18. package/dist/src/lib/transaction.d.ts.map +1 -1
  19. package/dist/src/lib/transaction.js +31 -15
  20. package/dist/src/lib/transactionBuilder.js +12 -12
  21. package/dist/src/lib/transactionBuilderFactory.d.ts +2 -0
  22. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  23. package/dist/src/lib/transactionBuilderFactory.js +9 -2
  24. package/dist/src/lib/transferBuilder.js +4 -4
  25. package/dist/src/lib/utils.d.ts +25 -2
  26. package/dist/src/lib/utils.d.ts.map +1 -1
  27. package/dist/src/lib/utils.js +141 -62
  28. package/dist/src/register.d.ts.map +1 -1
  29. package/dist/src/register.js +5 -1
  30. package/dist/src/sip10Token.d.ts +22 -0
  31. package/dist/src/sip10Token.d.ts.map +1 -0
  32. package/dist/src/sip10Token.js +128 -0
  33. package/dist/src/stx.d.ts +146 -2
  34. package/dist/src/stx.d.ts.map +1 -1
  35. package/dist/src/stx.js +420 -11
  36. package/dist/src/tstx.js +1 -1
  37. package/dist/test/fixtures.d.ts +119 -0
  38. package/dist/test/fixtures.d.ts.map +1 -0
  39. package/dist/test/fixtures.js +147 -0
  40. package/dist/test/unit/keyPair.d.ts +2 -0
  41. package/dist/test/unit/keyPair.d.ts.map +1 -0
  42. package/dist/test/unit/keyPair.js +144 -0
  43. package/dist/test/unit/resources.d.ts +97 -0
  44. package/dist/test/unit/resources.d.ts.map +1 -0
  45. package/dist/test/unit/resources.js +144 -0
  46. package/dist/test/unit/sip10Token.d.ts +2 -0
  47. package/dist/test/unit/sip10Token.d.ts.map +1 -0
  48. package/dist/test/unit/sip10Token.js +374 -0
  49. package/dist/test/unit/stx.d.ts +2 -0
  50. package/dist/test/unit/stx.d.ts.map +1 -0
  51. package/dist/test/unit/stx.js +470 -0
  52. package/dist/test/unit/transaction.d.ts +2 -0
  53. package/dist/test/unit/transaction.d.ts.map +1 -0
  54. package/dist/test/unit/transaction.js +83 -0
  55. package/dist/test/unit/transactionBuilder/contractBuilder.d.ts +2 -0
  56. package/dist/test/unit/transactionBuilder/contractBuilder.d.ts.map +1 -0
  57. package/dist/test/unit/transactionBuilder/contractBuilder.js +421 -0
  58. package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.d.ts +2 -0
  59. package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.d.ts.map +1 -0
  60. package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.js +187 -0
  61. package/dist/test/unit/transactionBuilder/sendmanyBuilder.d.ts +2 -0
  62. package/dist/test/unit/transactionBuilder/sendmanyBuilder.d.ts.map +1 -0
  63. package/dist/test/unit/transactionBuilder/sendmanyBuilder.js +140 -0
  64. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  65. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  66. package/dist/test/unit/transactionBuilder/transferBuilder.js +347 -0
  67. package/dist/test/unit/util.d.ts +2 -0
  68. package/dist/test/unit/util.d.ts.map +1 -0
  69. package/dist/test/unit/util.js +326 -0
  70. package/dist/tsconfig.tsbuildinfo +1 -0
  71. package/package.json +13 -11
  72. package/.eslintignore +0 -5
  73. package/.mocharc.yml +0 -8
  74. package/CHANGELOG.md +0 -127
@@ -0,0 +1,22 @@
1
+ import { BitGoBase, CoinConstructor, NamedCoinConstructor, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as StaticsBaseCoin, Sip10TokenConfig } from '@bitgo-beta/statics';
3
+ import { Stx } from './stx';
4
+ import { TransactionBuilder } from './lib/transactionBuilder';
5
+ export declare class Sip10Token extends Stx {
6
+ readonly tokenConfig: Sip10TokenConfig;
7
+ constructor(bitgo: BitGoBase, tokenConfig: Sip10TokenConfig);
8
+ static createTokenConstructor(config: Sip10TokenConfig): CoinConstructor;
9
+ static createTokenConstructors(tokenConfigs?: Sip10TokenConfig[]): NamedCoinConstructor[];
10
+ get name(): string;
11
+ get coin(): string;
12
+ get network(): string;
13
+ get assetId(): string;
14
+ get decimalPlaces(): number;
15
+ getChain(): string;
16
+ getBaseChain(): string;
17
+ getFullName(): string;
18
+ getBaseFactor(): number;
19
+ getTransaction(coinConfig: Readonly<StaticsBaseCoin>): TransactionBuilder;
20
+ verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
21
+ }
22
+ //# sourceMappingURL=sip10Token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sip10Token.d.ts","sourceRoot":"","sources":["../../src/sip10Token.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAClH,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAsB,gBAAgB,EAAU,MAAM,qBAAqB,CAAC;AAEhH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAG9D,qBAAa,UAAW,SAAQ,GAAG;IACjC,SAAgB,WAAW,EAAE,gBAAgB,CAAC;gBAElC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB;IAM3D,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAIxE,MAAM,CAAC,uBAAuB,CAC5B,YAAY,GAAE,gBAAgB,EAAiE,GAC9F,oBAAoB,EAAE;IASzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM;IAIvB,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,kBAAkB;IAInE,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;CAmE5E"}
@@ -0,0 +1,128 @@
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.Sip10Token = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ const statics_1 = require("@bitgo-beta/statics");
10
+ const stx_1 = require("./stx");
11
+ const lib_1 = require("./lib");
12
+ const utils_1 = require("./lib/utils");
13
+ class Sip10Token extends stx_1.Stx {
14
+ constructor(bitgo, tokenConfig) {
15
+ const staticsCoin = tokenConfig.network === statics_1.NetworkType.MAINNET ? statics_1.coins.get('stx') : statics_1.coins.get('tstx');
16
+ super(bitgo, staticsCoin);
17
+ this.tokenConfig = tokenConfig;
18
+ }
19
+ static createTokenConstructor(config) {
20
+ return (bitgo) => new Sip10Token(bitgo, config);
21
+ }
22
+ static createTokenConstructors(tokenConfigs = [...statics_1.tokens.bitcoin.stx.tokens, ...statics_1.tokens.testnet.stx.tokens]) {
23
+ const tokensCtors = [];
24
+ for (const token of tokenConfigs) {
25
+ const tokenConstructor = Sip10Token.createTokenConstructor(token);
26
+ tokensCtors.push({ name: token.type, coinConstructor: tokenConstructor });
27
+ }
28
+ return tokensCtors;
29
+ }
30
+ get name() {
31
+ return this.tokenConfig.name;
32
+ }
33
+ get coin() {
34
+ return this.tokenConfig.coin;
35
+ }
36
+ get network() {
37
+ return this.tokenConfig.network;
38
+ }
39
+ get assetId() {
40
+ return this.tokenConfig.assetId;
41
+ }
42
+ get decimalPlaces() {
43
+ return this.tokenConfig.decimalPlaces;
44
+ }
45
+ getChain() {
46
+ return this.tokenConfig.type;
47
+ }
48
+ getBaseChain() {
49
+ return this.coin;
50
+ }
51
+ getFullName() {
52
+ return 'Sip10 Token';
53
+ }
54
+ getBaseFactor() {
55
+ return Math.pow(10, this.tokenConfig.decimalPlaces);
56
+ }
57
+ getTransaction(coinConfig) {
58
+ return new lib_1.TransactionBuilderFactory(coinConfig).getFungibleTokenTransferBuilder();
59
+ }
60
+ async verifyTransaction(params) {
61
+ const { txPrebuild: txPrebuild, txParams: txParams } = params;
62
+ const { memo } = txParams;
63
+ if (Array.isArray(txParams.recipients) && txParams.recipients.length > 1) {
64
+ throw new Error(`${this.getChain()} doesn't support sending to more than 1 destination address within a single transaction. Try again, using only a single recipient.`);
65
+ }
66
+ const rawTx = txPrebuild.txHex;
67
+ if (!rawTx) {
68
+ throw new Error('missing required tx prebuild property txHex');
69
+ }
70
+ const coinConfig = statics_1.coins.get(this.getChain());
71
+ const transaction = this.getTransaction(coinConfig);
72
+ transaction.from(rawTx);
73
+ const explainedTx = await this.explainTransaction({ txHex: rawTx, feeInfo: { fee: '' } });
74
+ if (txParams.recipients !== undefined && explainedTx) {
75
+ const filteredRecipients = txParams.recipients?.map((recipient) => {
76
+ const addressDetails = (0, utils_1.getMemoIdAndBaseAddressFromAddress)(recipient.address);
77
+ const recipientData = {
78
+ address: addressDetails.address,
79
+ amount: BigInt(recipient.amount),
80
+ };
81
+ if (recipient.tokenName) {
82
+ recipientData['tokenName'] = recipient.tokenName;
83
+ }
84
+ return recipientData;
85
+ });
86
+ const filteredOutputs = explainedTx.outputs.map((output) => {
87
+ const recipientData = {
88
+ address: output.address,
89
+ amount: BigInt(output.amount),
90
+ };
91
+ if (output.tokenName) {
92
+ recipientData['tokenName'] = output.tokenName;
93
+ }
94
+ return recipientData;
95
+ });
96
+ if (!lodash_1.default.isEqual(filteredOutputs, filteredRecipients)) {
97
+ throw new Error('Tx outputs does not match with expected txParams recipients');
98
+ }
99
+ // compare memo
100
+ let memoInput = '';
101
+ let memoOutput = '';
102
+ if (memo && memo.value) {
103
+ memoInput = memo.value;
104
+ }
105
+ else if (txParams.recipients.length) {
106
+ const addressDetails = (0, utils_1.getMemoIdAndBaseAddressFromAddress)(txParams.recipients[0].address);
107
+ memoInput = addressDetails.memoId ? addressDetails.memoId : '';
108
+ }
109
+ if (explainedTx.memo) {
110
+ memoOutput = explainedTx.memo;
111
+ }
112
+ if (!lodash_1.default.isEqual(memoInput, memoOutput)) {
113
+ throw new Error('Tx memo does not match with expected txParams recipient memo');
114
+ }
115
+ // compare send amount
116
+ let totalAmount = new bignumber_js_1.default(0);
117
+ for (const recipients of txParams.recipients) {
118
+ totalAmount = totalAmount.plus(recipients.amount);
119
+ }
120
+ if (!totalAmount.isEqualTo(explainedTx.outputAmount)) {
121
+ throw new Error('Tx total amount does not match with expected total amount field');
122
+ }
123
+ }
124
+ return true;
125
+ }
126
+ }
127
+ exports.Sip10Token = Sip10Token;
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lwMTBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaXAxMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUF1QjtBQUN2QixnRUFBcUM7QUFHckMsaURBQWdIO0FBRWhILCtCQUE0QjtBQUM1QiwrQkFBa0Q7QUFFbEQsdUNBQWlFO0FBRWpFLE1BQWEsVUFBVyxTQUFRLFNBQUc7SUFHakMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUsscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkcsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUIsQ0FDNUIsZUFBbUMsQ0FBQyxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBRS9GLE1BQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7UUFDL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxXQUFXLENBQUMsSUFBSSxDQUFD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LE9BQU8sQ0FBQyxDQUFDO2dCQUMxRixTQUFTLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pFLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDckIsVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQyxnQkFBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7WUFDRCxzQkFBc0I7WUFDdEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxzQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEtBQUssTUFBTSxVQUFVLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUM3QyxXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7WUFDckYsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQW5JRCxnQ0FtSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQgeyBCaXRHb0Jhc2UsIENvaW5Db25zdHJ1Y3RvciwgTmFtZWRDb2luQ29uc3RydWN0b3IsIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgY29pbnMsIE5ldHdvcmtUeXBlLCBTaXAxMFRva2VuQ29uZmlnLCB0b2tlbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuaW1wb3J0IHsgU3R4IH0gZnJvbSAnLi9zdHgnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vbGliJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vbGliL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBnZXRNZW1vSWRBbmRCYXNlQWRkcmVzc0Zyb21BZGRyZXNzIH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU2lwMTBUb2tlbiBleHRlbmRzIFN0eCB7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlbkNvbmZpZzogU2lwMTBUb2tlbkNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogU2lwMTBUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/IGNvaW5zLmdldCgnc3R4JykgOiBjb2lucy5nZXQoJ3RzdHgnKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogU2lwMTBUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgU2lwMTBUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhcbiAgICB0b2tlbkNvbmZpZ3M6IFNpcDEwVG9rZW5Db25maWdbXSA9IFsuLi50b2tlbnMuYml0Y29pbi5zdHgudG9rZW5zLCAuLi50b2tlbnMudGVzdG5ldC5zdHgudG9rZW5zXVxuICApOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdIHtcbiAgICBjb25zdCB0b2tlbnNDdG9yczogTmFtZWRDb2luQ29uc3RydWN0b3JbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdG9rZW5Db25maWdzKSB7XG4gICAgICBjb25zdCB0b2tlbkNvbnN0cnVjdG9yID0gU2lwMTBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKHRva2VuKTtcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50eXBlLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgfVxuICAgIHJldHVybiB0b2tlbnNDdG9ycztcbiAgfVxuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmFtZTtcbiAgfVxuXG4gIGdldCBjb2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuY29pbjtcbiAgfVxuXG4gIGdldCBuZXR3b3JrKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmV0d29yaztcbiAgfVxuXG4gIGdldCBhc3NldElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuYXNzZXRJZDtcbiAgfVxuXG4gIGdldCBkZWNpbWFsUGxhY2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcztcbiAgfVxuXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudHlwZTtcbiAgfVxuXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnU2lwMTAgVG9rZW4nO1xuICB9XG5cbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnBvdygxMCwgdGhpcy50b2tlbkNvbmZpZy5kZWNpbWFsUGxhY2VzKTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uKGNvaW5Db25maWc6IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKS5nZXRGdW5naWJsZVRva2VuVHJhbnNmZXJCdWlsZGVyKCk7XG4gIH1cblxuICBhc3luYyB2ZXJpZnlUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgdHhQcmVidWlsZDogdHhQcmVidWlsZCwgdHhQYXJhbXM6IHR4UGFyYW1zIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgeyBtZW1vIH0gPSB0eFBhcmFtcztcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0eFBhcmFtcy5yZWNpcGllbnRzKSAmJiB0eFBhcmFtcy5yZWNpcGllbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7dGhpcy5nZXRDaGFpbigpfSBkb2Vzbid0IHN1cHBvcnQgc2VuZGluZyB0byBtb3JlIHRoYW4gMSBkZXN0aW5hdGlvbiBhZGRyZXNzIHdpdGhpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbi4gVHJ5IGFnYWluLCB1c2luZyBvbmx5IGEgc2luZ2xlIHJlY2lwaWVudC5gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCByYXdUeCA9IHR4UHJlYnVpbGQudHhIZXg7XG4gICAgaWYgKCFyYXdUeCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHR4IHByZWJ1aWxkIHByb3BlcnR5IHR4SGV4Jyk7XG4gICAgfVxuICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQodGhpcy5nZXRDaGFpbigpKTtcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZ2V0VHJhbnNhY3Rpb24oY29pbkNvbmZpZyk7XG4gICAgdHJhbnNhY3Rpb24uZnJvbShyYXdUeCk7XG4gICAgY29uc3QgZXhwbGFpbmVkVHggPSBhd2FpdCB0aGlzLmV4cGxhaW5UcmFuc2FjdGlvbih7IHR4SGV4OiByYXdUeCwgZmVlSW5mbzogeyBmZWU6ICcnIH0gfSk7XG4gICAgaWYgKHR4UGFyYW1zLnJlY2lwaWVudHMgIT09IHVuZGVmaW5lZCAmJiBleHBsYWluZWRUeCkge1xuICAgICAgY29uc3QgZmlsdGVyZWRSZWNpcGllbnRzID0gdHhQYXJhbXMucmVjaXBpZW50cz8ubWFwKChyZWNpcGllbnQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRNZW1vSWRBbmRCYXNlQWRkcmVzc0Zyb21BZGRyZXNzKHJlY2lwaWVudC5hZGRyZXNzKTtcbiAgICAgICAgY29uc3QgcmVjaXBpZW50RGF0YSA9IHtcbiAgICAgICAgICBhZGRyZXNzOiBhZGRyZXNzRGV0YWlscy5hZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAocmVjaXBpZW50LnRva2VuTmFtZSkge1xuICAgICAgICAgIHJlY2lwaWVudERhdGFbJ3Rva2VuTmFtZSddID0gcmVjaXBpZW50LnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVjaXBpZW50RGF0YTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZmlsdGVyZWRPdXRwdXRzID0gZXhwbGFpbmVkVHgub3V0cHV0cy5tYXAoKG91dHB1dCkgPT4ge1xuICAgICAgICBjb25zdCByZWNpcGllbnREYXRhID0ge1xuICAgICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogQmlnSW50KG91dHB1dC5hbW91bnQpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAob3V0cHV0LnRva2VuTmFtZSkge1xuICAgICAgICAgIHJlY2lwaWVudERhdGFbJ3Rva2VuTmFtZSddID0gb3V0cHV0LnRva2VuTmFtZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVjaXBpZW50RGF0YTtcbiAgICAgIH0pO1xuICAgICAgaWYgKCFfLmlzRXF1YWwoZmlsdGVyZWRPdXRwdXRzLCBmaWx0ZXJlZFJlY2lwaWVudHMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICAgIH1cbiAgICAgIC8vIGNvbXBhcmUgbWVtb1xuICAgICAgbGV0IG1lbW9JbnB1dCA9ICcnO1xuICAgICAgbGV0IG1lbW9PdXRwdXQgPSAnJztcbiAgICAgIGlmIChtZW1vICYmIG1lbW8udmFsdWUpIHtcbiAgICAgICAgbWVtb0lucHV0ID0gbWVtby52YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAodHhQYXJhbXMucmVjaXBpZW50cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgYWRkcmVzc0RldGFpbHMgPSBnZXRNZW1vSWRBbmRCYXNlQWRkcmVzc0Zyb21BZGRyZXNzKHR4UGFyYW1zLnJlY2lwaWVudHNbMF0uYWRkcmVzcyk7XG4gICAgICAgIG1lbW9JbnB1dCA9IGFkZHJlc3NEZXRhaWxzLm1lbW9JZCA/IGFkZHJlc3NEZXRhaWxzLm1lbW9JZCA6ICcnO1xuICAgICAgfVxuICAgICAgaWYgKGV4cGxhaW5lZFR4Lm1lbW8pIHtcbiAgICAgICAgbWVtb091dHB1dCA9IGV4cGxhaW5lZFR4Lm1lbW87XG4gICAgICB9XG4gICAgICBpZiAoIV8uaXNFcXVhbChtZW1vSW5wdXQsIG1lbW9PdXRwdXQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVHggbWVtbyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudCBtZW1vJyk7XG4gICAgICB9XG4gICAgICAvLyBjb21wYXJlIHNlbmQgYW1vdW50XG4gICAgICBsZXQgdG90YWxBbW91bnQgPSBuZXcgQmlnTnVtYmVyKDApO1xuICAgICAgZm9yIChjb25zdCByZWNpcGllbnRzIG9mIHR4UGFyYW1zLnJlY2lwaWVudHMpIHtcbiAgICAgICAgdG90YWxBbW91bnQgPSB0b3RhbEFtb3VudC5wbHVzKHJlY2lwaWVudHMuYW1vdW50KTtcbiAgICAgIH1cbiAgICAgIGlmICghdG90YWxBbW91bnQuaXNFcXVhbFRvKGV4cGxhaW5lZFR4Lm91dHB1dEFtb3VudCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUeCB0b3RhbCBhbW91bnQgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0b3RhbCBhbW91bnQgZmllbGQnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
package/dist/src/stx.d.ts CHANGED
@@ -1,7 +1,10 @@
1
- /// <reference types="node" />
2
- import { BaseCoin, BitGoBase, KeyPair, SignedTransaction, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
1
+ import { AuditDecryptedKeyParams, BaseCoin, BaseTransaction, BitGoBase, KeyPair, MultisigType, SignedTransaction, VerifyAddressOptions, VerifyTransactionOptions } from '@bitgo-beta/sdk-core';
3
2
  import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo-beta/statics';
4
3
  import { ExplainTransactionOptions, StxSignTransactionOptions, StxTransactionExplanation } from './types';
4
+ import { TransactionBuilder } from './lib/transactionBuilder';
5
+ import { AddressDetails, NativeStxBalance, RecoveryInfo, RecoveryOptions, RecoveryTransaction, SingleFungibleTokenBalance, StxNonceResponse } from './lib/iface';
6
+ import { TransferBuilder } from './lib/transferBuilder';
7
+ import { FungibleTokenTransferBuilder } from './lib/fungibleTokenTransferBuilder';
5
8
  export declare class Stx extends BaseCoin {
6
9
  protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
7
10
  constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
@@ -10,6 +13,9 @@ export declare class Stx extends BaseCoin {
10
13
  getFamily(): CoinFamily;
11
14
  getFullName(): string;
12
15
  getBaseFactor(): string | number;
16
+ getTransaction(coinConfig: Readonly<StaticsBaseCoin>): TransactionBuilder;
17
+ /** inherited doc */
18
+ getDefaultMultisigType(): MultisigType;
13
19
  verifyTransaction(params: VerifyTransactionOptions): Promise<boolean>;
14
20
  /**
15
21
  * Check if address is valid, then make sure it matches the base address.
@@ -52,5 +58,143 @@ export declare class Stx extends BaseCoin {
52
58
  * @param params
53
59
  */
54
60
  explainTransaction(params: ExplainTransactionOptions): Promise<StxTransactionExplanation | undefined>;
61
+ /**
62
+ * Get URLs of some active public nodes
63
+ * @returns {String} node url
64
+ */
65
+ getPublicNodeUrl(): string;
66
+ /**
67
+ * Get native stacks balance for an account
68
+ * @param {String} address - stacks address
69
+ * @returns {Promise<NativeStxBalance>}
70
+ */
71
+ protected getNativeStxBalanceFromNode({ address }: {
72
+ address: string;
73
+ }): Promise<NativeStxBalance>;
74
+ /**
75
+ * Get single fungible token balance for an account
76
+ * @param {String} address - stacks address
77
+ * @param {String} assetId - fungible token asset id
78
+ * @returns {Promise<SingleFungibleTokenBalance>}
79
+ */
80
+ protected getSingleFungibleTokenBalanceFromNode({ address, assetId, }: {
81
+ address: string;
82
+ assetId: string;
83
+ }): Promise<SingleFungibleTokenBalance>;
84
+ /**
85
+ * Get nonce data specific to an account from a public node
86
+ * @param {String} address - stacks address
87
+ * @returns {Promise<StxNonceResponse>}
88
+ */
89
+ protected getAccountNonceFromNode({ address }: {
90
+ address: string;
91
+ }): Promise<StxNonceResponse>;
92
+ /**
93
+ * Get stacks transaction estimated fee
94
+ * @param {String} txHex - hex of stacks transaction payload
95
+ * @param {Number} txHexLength - length of built serialized transaction
96
+ * @returns {Promise<Number>} - fee estimate (taking the lowest)
97
+ */
98
+ protected getTransactionFeeEstimation({ txHex, txHexLength, }: {
99
+ txHex: string;
100
+ txHexLength: number;
101
+ }): Promise<number>;
102
+ /**
103
+ * Format for offline vault signing
104
+ * @param {BaseTransaction} tx - base transaction
105
+ * @returns {Promise<RecoveryInfo>}
106
+ */
107
+ protected formatForOfflineVault(tx: BaseTransaction): Promise<RecoveryInfo>;
108
+ /**
109
+ * Get the recoverable amount & fee after subtracting the txn fee
110
+ * @param {String} serializedHex - serialized txn hex
111
+ * @param {Number} txHexLength - deserialized txn length
112
+ * @param {String} balance - total account balance
113
+ * @param {String} tokenBalance - total token balance
114
+ * @returns {Promise<Record<string, string>>}
115
+ */
116
+ protected getRecoverableAmountAndFee(serializedHex: string, txHexLength: number, balance: string, tokenBalance?: string): Promise<Record<string, string>>;
117
+ /**
118
+ * Method to find the right builder for token or native coin transfer
119
+ * @param {String} contractAddress - token contract address
120
+ * @param {String} contractName - token contract name
121
+ * @returns {TransferBuilder|FungibleTokenTransferBuilder}
122
+ */
123
+ protected getTokenOrNativeTransferBuilder(contractAddress?: string, contractName?: string): TransferBuilder | FungibleTokenTransferBuilder;
124
+ /**
125
+ * Method to build fungible token transfer transaction
126
+ * @param {FungibleTokenTransferBuilder} builder - fungible token transfer builder
127
+ * @param {String} contractAddress - token contract address
128
+ * @param {String} contractName - token contract name
129
+ * @param {String[]} pubs - account public keys
130
+ * @param {Number} nonce - account nonce
131
+ * @param {AddressDetails} rootAddressDetails - root address details
132
+ * @param {AddressDetails} destinationAddressDetails - receive address details
133
+ * @param {String} stxBalance - native stx balance
134
+ * @returns {Promise<BaseTransaction>} - built transaction
135
+ */
136
+ protected buildTokenTransferTransaction({ builder, contractAddress, contractName, pubs, nonce, rootAddressDetails, destinationAddressDetails, stxBalance, }: {
137
+ builder: FungibleTokenTransferBuilder;
138
+ contractAddress: string;
139
+ contractName: string;
140
+ pubs: string[];
141
+ nonce: number;
142
+ rootAddressDetails: AddressDetails;
143
+ destinationAddressDetails: AddressDetails;
144
+ stxBalance: string;
145
+ }): Promise<BaseTransaction>;
146
+ /**
147
+ * Method to build native transfer transaction
148
+ * @param {TransferBuilder} builder - transfer builder
149
+ * @param {String[]} pubs - account public keys
150
+ * @param {Number} nonce - account nonce
151
+ * @param {AddressDetails} destinationAddressDetails - receive address details
152
+ * @param {String} stxBalance - native stx balance
153
+ * @returns {Promise<BaseTransaction>} - built transaction
154
+ */
155
+ protected buildNativeTransferTransaction({ builder, pubs, nonce, destinationAddressDetails, stxBalance, }: {
156
+ builder: TransferBuilder;
157
+ pubs: string[];
158
+ nonce: number;
159
+ destinationAddressDetails: AddressDetails;
160
+ stxBalance: string;
161
+ }): Promise<BaseTransaction>;
162
+ /**
163
+ * Method that uses appropriate builder and builds transaction depending on token or native coin
164
+ * @param {String[]} pubs - public keys
165
+ * @param {AddressDetails} rootAddressDetails - sender address detail
166
+ * @param {AddressDetails} destinationAddressDetails - receiver address detail
167
+ * @param {Number} nonce - wallet nonce
168
+ * @param {String} balance - wallet balance
169
+ * @param {String | undefined} contractAddress - token contract address
170
+ * @param {String | undefined} contractName - token contract name
171
+ * @returns {Promise<BaseTransaction>} built transaction
172
+ */
173
+ protected getNativeOrTokenTransaction({ pubs, rootAddressDetails, destinationAddressDetails, nonce, stxBalance, contractAddressInput, contractName, }: {
174
+ pubs: string[];
175
+ rootAddressDetails: AddressDetails;
176
+ destinationAddressDetails: AddressDetails;
177
+ nonce: number;
178
+ stxBalance: string;
179
+ contractAddressInput?: string;
180
+ contractName?: string;
181
+ }): Promise<{
182
+ tx: BaseTransaction;
183
+ builder: TransferBuilder | FungibleTokenTransferBuilder;
184
+ }>;
185
+ /**
186
+ * Method to recover native stx or sip10 tokens from bitgo hot & cold wallets
187
+ * @param {String} params.backupKey - encrypted wallet backup key (public or private)
188
+ * @param {String} params.userKey - encrypted wallet user key (public or private)
189
+ * @param {String} params.rootAddress - wallet root address
190
+ * @param {String} params.recoveryDestination - receive address
191
+ * @param {String} params.bitgoKey - encrypted bitgo public key
192
+ * @param {String} params.walletPassphrase - wallet password
193
+ * @param {String} params.contractId - contract id of the token (mandatory for token recovery)
194
+ * @returns {Promise<RecoveryInfo|RecoveryTransaction>} RecoveryTransaction.txHex - hex of serialized transaction (signed or unsigned)
195
+ */
196
+ recover(params: RecoveryOptions): Promise<RecoveryInfo | RecoveryTransaction>;
197
+ /** @inheritDoc */
198
+ auditDecryptedKey(params: AuditDecryptedKeyParams): void;
55
199
  }
56
200
  //# sourceMappingURL=stx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stx.d.ts","sourceRoot":"","sources":["../../src/stx.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,iBAAiB,EAGjB,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,UAAU,EAAS,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAG1G,qBAAa,GAAI,SAAQ,QAAQ;IAC/B,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAE/C,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAUrE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,QAAQ,IAAI,MAAM;IAIlB,SAAS,IAAI,UAAU;IAIvB,WAAW,IAAI,MAAM;IAIrB,aAAa,IAAI,MAAM,GAAG,MAAM;IAI1B,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3E;;;;;;OAMG;IACG,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrE;;;;;OAKG;IACH,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAcvC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQhC;;;;;OAKG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQhC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQxC;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkB9E,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjD;;;OAGG;IACG,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;CAqE5G"}
1
+ {"version":3,"file":"stx.d.ts","sourceRoot":"","sources":["../../src/stx.ts"],"names":[],"mappings":"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"}