@bitgo/sdk-coin-apt 1.5.1 → 1.7.0
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/CHANGELOG.md +27 -0
- package/dist/src/aptToken.d.ts +19 -0
- package/dist/src/aptToken.d.ts.map +1 -0
- package/dist/src/aptToken.js +52 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/lib/constants.d.ts +7 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +9 -2
- package/dist/src/lib/iface.d.ts +2 -1
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +6 -2
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +12 -4
- package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +9 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.js +58 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +9 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.js +59 -0
- package/dist/src/lib/transaction/transaction.d.ts +12 -3
- package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transaction.js +78 -46
- package/dist/src/lib/transaction/transferTransaction.d.ts +5 -5
- package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transferTransaction.js +40 -39
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +14 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
- package/dist/src/lib/{transactionBuilder.d.ts → transactionBuilder/transactionBuilder.d.ts} +15 -10
- package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/transactionBuilder.js +147 -0
- package/dist/src/lib/{transferBuilder.d.ts → transactionBuilder/transferBuilder.d.ts} +4 -7
- package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/transferBuilder.js +55 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +11 -3
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +35 -8
- package/dist/src/lib/utils.d.ts +2 -4
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +18 -32
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/package.json +6 -6
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -124
- package/dist/src/lib/transferBuilder.d.ts.map +0 -1
- package/dist/src/lib/transferBuilder.js +0 -25
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, Recipient, TransactionType } from '@bitgo/sdk-core';
|
|
2
|
-
import { Transaction } from '
|
|
2
|
+
import { Transaction } from '../transaction/transaction';
|
|
3
3
|
import BigNumber from 'bignumber.js';
|
|
4
4
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
5
|
-
import { GasData } from '
|
|
5
|
+
import { GasData } from '../types';
|
|
6
|
+
import { TransactionPayload } from '@aptos-labs/ts-sdk';
|
|
6
7
|
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
7
8
|
protected _transaction: Transaction;
|
|
8
9
|
constructor(coinConfig: Readonly<CoinConfig>);
|
|
@@ -10,6 +11,12 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
10
11
|
* The transaction type.
|
|
11
12
|
*/
|
|
12
13
|
protected abstract get transactionType(): TransactionType;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the transaction builder fields using the decoded transaction data
|
|
16
|
+
*
|
|
17
|
+
* @param {Transaction} tx the transaction data
|
|
18
|
+
*/
|
|
19
|
+
initBuilder(tx: Transaction): void;
|
|
13
20
|
/** @inheritdoc */
|
|
14
21
|
protected get transaction(): Transaction;
|
|
15
22
|
/** @inheritdoc */
|
|
@@ -25,6 +32,7 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
25
32
|
gasData(gasData: GasData): this;
|
|
26
33
|
sequenceNumber(seqNo: number): TransactionBuilder;
|
|
27
34
|
expirationTime(expTimeSec: number): TransactionBuilder;
|
|
35
|
+
abstract assetId(assetId: string): TransactionBuilder;
|
|
28
36
|
/** @inheritdoc */
|
|
29
37
|
protected signImplementation(key: BaseKey): Transaction;
|
|
30
38
|
/** @inheritDoc */
|
|
@@ -34,23 +42,20 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
34
42
|
protected fromImplementation(rawTransaction: string): Transaction;
|
|
35
43
|
/** @inheritdoc */
|
|
36
44
|
protected buildImplementation(): Promise<Transaction>;
|
|
37
|
-
/**
|
|
38
|
-
* Initialize the transaction builder fields using the decoded transaction data
|
|
39
|
-
*
|
|
40
|
-
* @param {Transaction} tx the transaction data
|
|
41
|
-
*/
|
|
42
|
-
abstract initBuilder(tx: Transaction): void;
|
|
43
45
|
/** @inheritdoc */
|
|
44
46
|
validateAddress(address: BaseAddress, addressFormat?: string): void;
|
|
45
47
|
/** @inheritdoc */
|
|
46
48
|
validateKey(key: BaseKey): void;
|
|
47
|
-
|
|
48
|
-
validateRawTransaction(rawTransaction: string): void;
|
|
49
|
+
protected abstract isValidTransactionPayload(payload: TransactionPayload): any;
|
|
49
50
|
/** @inheritdoc */
|
|
50
51
|
validateTransaction(transaction?: Transaction): void;
|
|
52
|
+
isValidRawTransaction(rawTransaction: string): boolean;
|
|
53
|
+
/** @inheritdoc */
|
|
54
|
+
validateRawTransaction(rawTransaction: string): void;
|
|
51
55
|
/** @inheritdoc */
|
|
52
56
|
validateValue(value: BigNumber): void;
|
|
53
57
|
private validateGasData;
|
|
54
58
|
addFeePayerAddress(address: string): void;
|
|
59
|
+
getFeePayerPubKey(): string;
|
|
55
60
|
}
|
|
56
61
|
//# sourceMappingURL=transactionBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,sBAAsB,EAGtB,SAAS,IAAI,aAAa,EAC1B,SAAS,EACT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;gBAExB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIlC,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAMnC,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAOrC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAKjD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB;IAKtD,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAErD,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAIvD,kBAAkB;IAClB,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrE,oBAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAMjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAO3D,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI/B,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB;IAExE,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI;IASpD,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAYtD,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQrC,OAAO,CAAC,eAAe;IAKvB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzC,iBAAiB,IAAI,MAAM;CAG5B"}
|
|
@@ -0,0 +1,147 @@
|
|
|
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.TransactionBuilder = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
|
+
const utils_1 = __importDefault(require("../utils"));
|
|
9
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
10
|
+
class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
11
|
+
constructor(coinConfig) {
|
|
12
|
+
super(coinConfig);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the transaction builder fields using the decoded transaction data
|
|
16
|
+
*
|
|
17
|
+
* @param {Transaction} tx the transaction data
|
|
18
|
+
*/
|
|
19
|
+
initBuilder(tx) {
|
|
20
|
+
this._transaction = tx;
|
|
21
|
+
}
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
get transaction() {
|
|
24
|
+
return this._transaction;
|
|
25
|
+
}
|
|
26
|
+
/** @inheritdoc */
|
|
27
|
+
set transaction(transaction) {
|
|
28
|
+
this._transaction = transaction;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sets the sender of this transaction.
|
|
32
|
+
*
|
|
33
|
+
* @param {string} senderAddress the account that is sending this transaction
|
|
34
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
35
|
+
*/
|
|
36
|
+
sender(senderAddress) {
|
|
37
|
+
this.validateAddress({ address: senderAddress });
|
|
38
|
+
this.transaction.sender = senderAddress;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
recipient(recipient) {
|
|
42
|
+
this.validateAddress({ address: recipient.address });
|
|
43
|
+
this.validateValue(new bignumber_js_1.default(recipient.amount));
|
|
44
|
+
this.transaction.recipient = recipient;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
gasData(gasData) {
|
|
48
|
+
this.validateGasData(gasData);
|
|
49
|
+
this.transaction.maxGasAmount = gasData.maxGasAmount;
|
|
50
|
+
this.transaction.gasUnitPrice = gasData.gasUnitPrice;
|
|
51
|
+
this.transaction.gasUsed = gasData.gasUsed ?? 0;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
sequenceNumber(seqNo) {
|
|
55
|
+
this.transaction.sequenceNumber = seqNo;
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
expirationTime(expTimeSec) {
|
|
59
|
+
this.transaction.expirationTime = expTimeSec;
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
/** @inheritdoc */
|
|
63
|
+
signImplementation(key) {
|
|
64
|
+
throw new Error('Method not implemented.');
|
|
65
|
+
}
|
|
66
|
+
/** @inheritDoc */
|
|
67
|
+
addSenderSignature(publicKey, signature) {
|
|
68
|
+
this.transaction.addSenderSignature(publicKey, signature);
|
|
69
|
+
}
|
|
70
|
+
addFeePayerSignature(publicKey, signature) {
|
|
71
|
+
this.transaction.addFeePayerSignature(publicKey, signature);
|
|
72
|
+
}
|
|
73
|
+
/** @inheritdoc */
|
|
74
|
+
fromImplementation(rawTransaction) {
|
|
75
|
+
this.transaction.fromRawTransaction(rawTransaction);
|
|
76
|
+
this.transaction.transactionType = this.transactionType;
|
|
77
|
+
return this.transaction;
|
|
78
|
+
}
|
|
79
|
+
/** @inheritdoc */
|
|
80
|
+
async buildImplementation() {
|
|
81
|
+
this.transaction.transactionType = this.transactionType;
|
|
82
|
+
await this.transaction.build();
|
|
83
|
+
return this.transaction;
|
|
84
|
+
}
|
|
85
|
+
// region Validators
|
|
86
|
+
/** @inheritdoc */
|
|
87
|
+
validateAddress(address, addressFormat) {
|
|
88
|
+
if (!utils_1.default.isValidAddress(address.address)) {
|
|
89
|
+
throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** @inheritdoc */
|
|
93
|
+
validateKey(key) {
|
|
94
|
+
throw new Error('Method not implemented.');
|
|
95
|
+
}
|
|
96
|
+
/** @inheritdoc */
|
|
97
|
+
validateTransaction(transaction) {
|
|
98
|
+
if (!transaction) {
|
|
99
|
+
throw new Error('transaction not defined');
|
|
100
|
+
}
|
|
101
|
+
this.validateAddress({ address: transaction.sender });
|
|
102
|
+
this.validateAddress({ address: transaction.recipient.address });
|
|
103
|
+
this.validateValue(new bignumber_js_1.default(transaction.recipient.amount));
|
|
104
|
+
}
|
|
105
|
+
isValidRawTransaction(rawTransaction) {
|
|
106
|
+
try {
|
|
107
|
+
const signedTxn = utils_1.default.deserializeSignedTransaction(rawTransaction);
|
|
108
|
+
const rawTxn = signedTxn.raw_txn;
|
|
109
|
+
const senderAddress = rawTxn.sender.toString();
|
|
110
|
+
return utils_1.default.isValidAddress(senderAddress) && this.isValidTransactionPayload(rawTxn.payload);
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
console.error('invalid raw transaction', e);
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/** @inheritdoc */
|
|
118
|
+
validateRawTransaction(rawTransaction) {
|
|
119
|
+
if (!rawTransaction) {
|
|
120
|
+
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
|
|
121
|
+
}
|
|
122
|
+
if (!this.isValidRawTransaction(rawTransaction)) {
|
|
123
|
+
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/** @inheritdoc */
|
|
127
|
+
validateValue(value) {
|
|
128
|
+
if (value.isNaN()) {
|
|
129
|
+
throw new sdk_core_1.BuildTransactionError('Invalid amount format');
|
|
130
|
+
}
|
|
131
|
+
else if (value.isLessThan(0)) {
|
|
132
|
+
throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
validateGasData(gasData) {
|
|
136
|
+
this.validateValue(new bignumber_js_1.default(gasData.maxGasAmount));
|
|
137
|
+
this.validateValue(new bignumber_js_1.default(gasData.gasUnitPrice));
|
|
138
|
+
}
|
|
139
|
+
addFeePayerAddress(address) {
|
|
140
|
+
this.transaction.addFeePayerAddress(address);
|
|
141
|
+
}
|
|
142
|
+
getFeePayerPubKey() {
|
|
143
|
+
return this.transaction.getFeePayerPubKey();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.TransactionBuilder = TransactionBuilder;
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQVN5QjtBQUV6QixxREFBNkI7QUFDN0IsZ0VBQXFDO0FBS3JDLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQUdyRSxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBUUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxhQUFxQjtRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFvQjtRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxzQkFBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFH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QUFNLElBQUksZ0NBQXFCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUFnQjtRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUF2S0QsZ0RBdUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUFkZHJlc3MsXG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgUGFyc2VUcmFuc2FjdGlvbkVycm9yLFxuICBQdWJsaWNLZXkgYXMgQmFzZVB1YmxpY0tleSxcbiAgUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgR2FzRGF0YSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUGF5bG9hZCB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzZW5kZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlbmRlckFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBzZW5kZXIoc2VuZGVyQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiBzZW5kZXJBZGRyZXNzIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2VuZGVyID0gc2VuZGVyQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlY2lwaWVudChyZWNpcGllbnQ6IFJlY2lwaWVudCk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKHsgYWRkcmVzczogcmVjaXBpZW50LmFkZHJlc3MgfSk7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIocmVjaXBpZW50LmFtb3VudCkpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucmVjaXBpZW50ID0gcmVjaXBpZW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZ2FzRGF0YShnYXNEYXRhOiBHYXNEYXRhKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUdhc0RhdGEoZ2FzRGF0YSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5tYXhHYXNBbW91bnQgPSBnYXNEYXRhLm1heEdhc0Ftb3VudDtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmdhc1VuaXRQcmljZSA9IGdhc0RhdGEuZ2FzVW5pdFByaWNlO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uZ2FzVXNlZCA9IGdhc0RhdGEuZ2FzVXNlZCA/PyAwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VxdWVuY2VOdW1iZXIoc2VxTm86IG51bWJlcik6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXF1ZW5jZU51bWJlciA9IHNlcU5vO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXhwaXJhdGlvblRpbWUoZXhwVGltZVNlYzogbnVtYmVyKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmV4cGlyYXRpb25UaW1lID0gZXhwVGltZVNlYztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFic3RyYWN0IGFzc2V0SWQoYXNzZXRJZDogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYWRkU2VuZGVyU2lnbmF0dXJlKHB1YmxpY0tleTogQmFzZVB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZFNlbmRlclNpZ25hdHVyZShwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gIH1cblxuICBhZGRGZWVQYXllclNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5hZGRGZWVQYXllclNpZ25hdHVyZShwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb24uYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8vIHJlZ2lvbiBWYWxpZGF0b3JzXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MsIGFkZHJlc3NGb3JtYXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzcyAnICsgYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzVmFsaWRUcmFuc2FjdGlvblBheWxvYWQocGF5bG9hZDogVHJhbnNhY3Rpb25QYXlsb2FkKTtcblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRyYW5zYWN0aW9uLnNlbmRlciB9KTtcbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRyYW5zYWN0aW9uLnJlY2lwaWVudC5hZGRyZXNzIH0pO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHRyYW5zYWN0aW9uLnJlY2lwaWVudC5hbW91bnQpKTtcbiAgfVxuXG4gIGlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNpZ25lZFR4biA9IHV0aWxzLmRlc2VyaWFsaXplU2lnbmVkVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgY29uc3QgcmF3VHhuID0gc2lnbmVkVHhuLnJhd190eG47XG4gICAgICBjb25zdCBzZW5kZXJBZGRyZXNzID0gcmF3VHhuLnNlbmRlci50b1N0cmluZygpO1xuICAgICAgcmV0dXJuIHV0aWxzLmlzVmFsaWRBZGRyZXNzKHNlbmRlckFkZHJlc3MpICYmIHRoaXMuaXNWYWxpZFRyYW5zYWN0aW9uUGF5bG9hZChyYXdUeG4ucGF5bG9hZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nLCBlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlLmlzTmFOKCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYW1vdW50IGZvcm1hdCcpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUdhc0RhdGEoZ2FzRGF0YTogR2FzRGF0YSk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKGdhc0RhdGEubWF4R2FzQW1vdW50KSk7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoZ2FzRGF0YS5nYXNVbml0UHJpY2UpKTtcbiAgfVxuXG4gIGFkZEZlZVBheWVyQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmFkZEZlZVBheWVyQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIGdldEZlZVBheWVyUHViS2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24uZ2V0RmVlUGF5ZXJQdWJLZXkoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { TransactionBuilder } from './transactionBuilder';
|
|
2
2
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
3
3
|
import { TransactionType } from '@bitgo/sdk-core';
|
|
4
|
-
import {
|
|
4
|
+
import { TransactionPayload } from '@aptos-labs/ts-sdk';
|
|
5
5
|
export declare class TransferBuilder extends TransactionBuilder {
|
|
6
6
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
7
7
|
protected get transactionType(): TransactionType;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* @param {Transaction} tx the transaction data
|
|
12
|
-
*/
|
|
13
|
-
initBuilder(tx: TransferTransaction): void;
|
|
8
|
+
validatePartsOfAssetId(assetId: string): void;
|
|
9
|
+
assetId(assetId: string): TransactionBuilder;
|
|
10
|
+
protected isValidTransactionPayload(payload: TransactionPayload): boolean;
|
|
14
11
|
}
|
|
15
12
|
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilder/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,EAAE,kBAAkB,EAAmC,MAAM,oBAAoB,CAAC;AAEzF,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO7C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAM5C,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB;CAsBhE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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.TransferBuilder = void 0;
|
|
7
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
8
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
|
+
const transferTransaction_1 = require("../transaction/transferTransaction");
|
|
10
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
11
|
+
const utils_1 = __importDefault(require("../utils"));
|
|
12
|
+
const ts_sdk_1 = require("@aptos-labs/ts-sdk");
|
|
13
|
+
class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
14
|
+
constructor(_coinConfig) {
|
|
15
|
+
super(_coinConfig);
|
|
16
|
+
this.transaction = new transferTransaction_1.TransferTransaction(_coinConfig);
|
|
17
|
+
}
|
|
18
|
+
get transactionType() {
|
|
19
|
+
return sdk_core_1.TransactionType.Send;
|
|
20
|
+
}
|
|
21
|
+
validatePartsOfAssetId(assetId) {
|
|
22
|
+
const parts = assetId.split('::');
|
|
23
|
+
if (parts.length !== 3 || ('0x1' !== parts[0] && !utils_1.default.isValidAddress(parts[0]))) {
|
|
24
|
+
throw new Error('Invalid asset ID');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
assetId(assetId) {
|
|
28
|
+
this.validatePartsOfAssetId(assetId);
|
|
29
|
+
this.transaction.assetId = assetId;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
isValidTransactionPayload(payload) {
|
|
33
|
+
try {
|
|
34
|
+
if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction) ||
|
|
35
|
+
payload.entryFunction.args.length !== 2 ||
|
|
36
|
+
payload.entryFunction.type_args.length !== 1 ||
|
|
37
|
+
payload.entryFunction.type_args[0].toString().length === 0) {
|
|
38
|
+
console.error('invalid transaction payload');
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
const entryFunction = payload.entryFunction;
|
|
42
|
+
this.validatePartsOfAssetId(entryFunction.type_args[0].toString());
|
|
43
|
+
const recipientAddress = entryFunction.args[0].toString();
|
|
44
|
+
const amountBuffer = Buffer.from(entryFunction.args[1].bcsToBytes());
|
|
45
|
+
const recipientAmount = new bignumber_js_1.default(amountBuffer.readBigUint64LE().toString());
|
|
46
|
+
return utils_1.default.isValidAddress(recipientAddress) && !recipientAmount.isLessThan(0);
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
console.error('invalid transaction payload', e);
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.TransferBuilder = TransferBuilder;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIvdHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDZEQUEwRDtBQUUxRCw4Q0FBa0Q7QUFDbEQsNEVBQXlFO0FBQ3pFLGdFQUFxQztBQUNyQyxxREFBNkI7QUFDN0IsK0NBQXlGO0FBRXpGLE1BQWEsZUFBZ0IsU0FBUSx1Q0FBa0I7SUFDckQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlDQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBZTtRQUNwQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEYsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWU7UUFDckIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFUyx5QkFBeUIsQ0FBQyxPQUEyQjtRQUM3RCxJQUFJLENBQUM7WUFDSCxJQUNFLENBQUMsQ0FBQyxPQUFPLFlBQVksd0NBQStCLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDNUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFDMUQsQ0FBQztnQkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQzdDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDNUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRSxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDckUsTUFBTSxlQUFlLEdBQUcsSUFBSSxzQkFBUyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2pGLE9BQU8sZUFBSyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBN0NELDBDQTZDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3RyYW5zYWN0aW9uL3RyYW5zZmVyVHJhbnNhY3Rpb24nO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUGF5bG9hZCwgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbiB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgdmFsaWRhdGVQYXJ0c09mQXNzZXRJZChhc3NldElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJ0cyA9IGFzc2V0SWQuc3BsaXQoJzo6Jyk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMyB8fCAoJzB4MScgIT09IHBhcnRzWzBdICYmICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhwYXJ0c1swXSkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYXNzZXQgSUQnKTtcbiAgICB9XG4gIH1cblxuICBhc3NldElkKGFzc2V0SWQ6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy52YWxpZGF0ZVBhcnRzT2ZBc3NldElkKGFzc2V0SWQpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uYXNzZXRJZCA9IGFzc2V0SWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNWYWxpZFRyYW5zYWN0aW9uUGF5bG9hZChwYXlsb2FkOiBUcmFuc2FjdGlvblBheWxvYWQpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKFxuICAgICAgICAhKHBheWxvYWQgaW5zdGFuY2VvZiBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uKSB8fFxuICAgICAgICBwYXlsb2FkLmVudHJ5RnVuY3Rpb24uYXJncy5sZW5ndGggIT09IDIgfHxcbiAgICAgICAgcGF5bG9hZC5lbnRyeUZ1bmN0aW9uLnR5cGVfYXJncy5sZW5ndGggIT09IDEgfHxcbiAgICAgICAgcGF5bG9hZC5lbnRyeUZ1bmN0aW9uLnR5cGVfYXJnc1swXS50b1N0cmluZygpLmxlbmd0aCA9PT0gMFxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2ludmFsaWQgdHJhbnNhY3Rpb24gcGF5bG9hZCcpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBjb25zdCBlbnRyeUZ1bmN0aW9uID0gcGF5bG9hZC5lbnRyeUZ1bmN0aW9uO1xuICAgICAgdGhpcy52YWxpZGF0ZVBhcnRzT2ZBc3NldElkKGVudHJ5RnVuY3Rpb24udHlwZV9hcmdzWzBdLnRvU3RyaW5nKCkpO1xuICAgICAgY29uc3QgcmVjaXBpZW50QWRkcmVzcyA9IGVudHJ5RnVuY3Rpb24uYXJnc1swXS50b1N0cmluZygpO1xuICAgICAgY29uc3QgYW1vdW50QnVmZmVyID0gQnVmZmVyLmZyb20oZW50cnlGdW5jdGlvbi5hcmdzWzFdLmJjc1RvQnl0ZXMoKSk7XG4gICAgICBjb25zdCByZWNpcGllbnRBbW91bnQgPSBuZXcgQmlnTnVtYmVyKGFtb3VudEJ1ZmZlci5yZWFkQmlnVWludDY0TEUoKS50b1N0cmluZygpKTtcbiAgICAgIHJldHVybiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnRBZGRyZXNzKSAmJiAhcmVjaXBpZW50QW1vdW50LmlzTGVzc1RoYW4oMCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignaW52YWxpZCB0cmFuc2FjdGlvbiBwYXlsb2FkJywgZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core';
|
|
2
|
-
import { TransactionBuilder } from './transactionBuilder';
|
|
3
|
-
import { TransferBuilder } from './transferBuilder';
|
|
1
|
+
import { BaseTransactionBuilderFactory, TransactionType } from '@bitgo/sdk-core';
|
|
2
|
+
import { TransactionBuilder } from './transactionBuilder/transactionBuilder';
|
|
3
|
+
import { TransferBuilder } from './transactionBuilder/transferBuilder';
|
|
4
4
|
import { Transaction } from './transaction/transaction';
|
|
5
|
+
import { SignedTransaction } from '@aptos-labs/ts-sdk';
|
|
5
6
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
7
|
+
import { FungibleAssetTransferBuilder } from './transactionBuilder/fungibleAssetTransferBuilder';
|
|
8
|
+
import { DigitalAssetTransferBuilder } from './transactionBuilder/digitalAssetTransferBuilder';
|
|
6
9
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
7
10
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
8
11
|
/** @inheritdoc */
|
|
9
12
|
from(signedRawTxn: string): TransactionBuilder;
|
|
13
|
+
getTransactionTypeFromSignedTxn(signedTxn: SignedTransaction): TransactionType;
|
|
10
14
|
/** @inheritdoc */
|
|
11
15
|
getTransferBuilder(tx?: Transaction): TransferBuilder;
|
|
12
16
|
/** @inheritdoc */
|
|
17
|
+
getFungibleAssetTransactionBuilder(tx?: Transaction): FungibleAssetTransferBuilder;
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
getDigitalAssetTransactionBuilder(tx?: Transaction): DigitalAssetTransferBuilder;
|
|
20
|
+
/** @inheritdoc */
|
|
13
21
|
getWalletInitializationBuilder(): void;
|
|
14
22
|
/**
|
|
15
23
|
* Initialize the builder with the given transaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AAEjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAE/F,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB;IAyB9C,+BAA+B,CAAC,SAAS,EAAE,iBAAiB,GAAG,eAAe;IAK9E,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB;IAClB,kCAAkC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,4BAA4B;IAIlF,kBAAkB;IAClB,iCAAiC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,2BAA2B;IAIhF,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAGzB"}
|
|
@@ -5,34 +5,61 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TransactionBuilderFactory = void 0;
|
|
7
7
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
|
-
const transferBuilder_1 = require("./transferBuilder");
|
|
8
|
+
const transferBuilder_1 = require("./transactionBuilder/transferBuilder");
|
|
9
9
|
const utils_1 = __importDefault(require("./utils"));
|
|
10
10
|
const transaction_1 = require("./transaction/transaction");
|
|
11
11
|
const transferTransaction_1 = require("./transaction/transferTransaction");
|
|
12
|
+
const fungibleAssetTransfer_1 = require("./transaction/fungibleAssetTransfer");
|
|
13
|
+
const fungibleAssetTransferBuilder_1 = require("./transactionBuilder/fungibleAssetTransferBuilder");
|
|
14
|
+
const digitalAssetTransfer_1 = require("./transaction/digitalAssetTransfer");
|
|
15
|
+
const digitalAssetTransferBuilder_1 = require("./transactionBuilder/digitalAssetTransferBuilder");
|
|
12
16
|
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
13
17
|
constructor(_coinConfig) {
|
|
14
18
|
super(_coinConfig);
|
|
15
19
|
}
|
|
16
20
|
/** @inheritdoc */
|
|
17
21
|
from(signedRawTxn) {
|
|
18
|
-
utils_1.default.validateRawTransaction(signedRawTxn);
|
|
19
22
|
try {
|
|
20
23
|
const signedTxn = this.parseTransaction(signedRawTxn);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const txnType = this.getTransactionTypeFromSignedTxn(signedTxn);
|
|
25
|
+
switch (txnType) {
|
|
26
|
+
case sdk_core_1.TransactionType.Send:
|
|
27
|
+
const transferTx = new transferTransaction_1.TransferTransaction(this._coinConfig);
|
|
28
|
+
transferTx.fromDeserializedSignedTransaction(signedTxn);
|
|
29
|
+
return this.getTransferBuilder(transferTx);
|
|
30
|
+
case sdk_core_1.TransactionType.SendToken:
|
|
31
|
+
const fungibleTransferTokenTx = new fungibleAssetTransfer_1.FungibleAssetTransfer(this._coinConfig);
|
|
32
|
+
fungibleTransferTokenTx.fromDeserializedSignedTransaction(signedTxn);
|
|
33
|
+
return this.getFungibleAssetTransactionBuilder(fungibleTransferTokenTx);
|
|
34
|
+
case sdk_core_1.TransactionType.SendNFT:
|
|
35
|
+
const digitalAssetTransferTx = new digitalAssetTransfer_1.DigitalAssetTransfer(this._coinConfig);
|
|
36
|
+
digitalAssetTransferTx.fromDeserializedSignedTransaction(signedTxn);
|
|
37
|
+
return this.getDigitalAssetTransactionBuilder(digitalAssetTransferTx);
|
|
38
|
+
default:
|
|
39
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
|
|
40
|
+
}
|
|
26
41
|
}
|
|
27
42
|
catch (e) {
|
|
28
43
|
throw e;
|
|
29
44
|
}
|
|
30
45
|
}
|
|
46
|
+
getTransactionTypeFromSignedTxn(signedTxn) {
|
|
47
|
+
const rawTxn = signedTxn.raw_txn;
|
|
48
|
+
return utils_1.default.getTransactionTypeFromTransactionPayload(rawTxn.payload);
|
|
49
|
+
}
|
|
31
50
|
/** @inheritdoc */
|
|
32
51
|
getTransferBuilder(tx) {
|
|
33
52
|
return this.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
|
|
34
53
|
}
|
|
35
54
|
/** @inheritdoc */
|
|
55
|
+
getFungibleAssetTransactionBuilder(tx) {
|
|
56
|
+
return this.initializeBuilder(tx, new fungibleAssetTransferBuilder_1.FungibleAssetTransferBuilder(this._coinConfig));
|
|
57
|
+
}
|
|
58
|
+
/** @inheritdoc */
|
|
59
|
+
getDigitalAssetTransactionBuilder(tx) {
|
|
60
|
+
return this.initializeBuilder(tx, new digitalAssetTransferBuilder_1.DigitalAssetTransferBuilder(this._coinConfig));
|
|
61
|
+
}
|
|
62
|
+
/** @inheritdoc */
|
|
36
63
|
getWalletInitializationBuilder() {
|
|
37
64
|
throw new Error('Method not implemented.');
|
|
38
65
|
}
|
|
@@ -59,4 +86,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
59
86
|
}
|
|
60
87
|
}
|
|
61
88
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBMEc7QUFFMUcsMEVBQXVFO0FBQ3ZFLG9EQUE0QjtBQUM1QiwyREFBd0Q7QUFFeEQsMkVBQXdFO0FBRXhFLCtFQUE0RTtBQUM1RSxvR0FBaUc7QUFDakcsNkVBQTBFO0FBQzFFLGtHQUErRjtBQUUvRixNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxZQUFvQjtRQUN2QixJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLFFBQVEsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLEtBQUssMEJBQWUsQ0FBQyxJQUFJO29CQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLHlDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDN0QsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUN4RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0MsS0FBSywwQkFBZSxDQUFDLFNBQVM7b0JBQzVCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSw2Q0FBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzVFLHVCQUF1QixDQUFDLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNyRSxPQUFPLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dCQUMxRSxLQUFLLDBCQUFlLENBQUMsT0FBTztvQkFDMUIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDMUUsc0JBQXNCLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3BFLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLHNCQUFzQixDQUFDLENBQUM7Z0JBQ3hFO29CQUNFLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzdELENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxTQUE0QjtRQUMxRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ2pDLE9BQU8sZUFBSyxDQUFDLHdDQUF3QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQWdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQ0FBa0MsQ0FBQyxFQUFnQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSwyREFBNEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlDQUFpQyxDQUFDLEVBQWdCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlEQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxvQkFBNEI7UUFDbkQsT0FBTyx5QkFBVyxDQUFDLDRCQUE0QixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNGO0FBOUVELDhEQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFNpZ25lZFRyYW5zYWN0aW9uIH0gZnJvbSAnQGFwdG9zLWxhYnMvdHMtc2RrJztcbmltcG9ydCB7IFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uL3RyYW5zZmVyVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEZ1bmdpYmxlQXNzZXRUcmFuc2ZlciB9IGZyb20gJy4vdHJhbnNhY3Rpb24vZnVuZ2libGVBc3NldFRyYW5zZmVyJztcbmltcG9ydCB7IEZ1bmdpYmxlQXNzZXRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9mdW5naWJsZUFzc2V0VHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IERpZ2l0YWxBc3NldFRyYW5zZmVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbi9kaWdpdGFsQXNzZXRUcmFuc2Zlcic7XG5pbXBvcnQgeyBEaWdpdGFsQXNzZXRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9kaWdpdGFsQXNzZXRUcmFuc2ZlckJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb20oc2lnbmVkUmF3VHhuOiBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduZWRUeG4gPSB0aGlzLnBhcnNlVHJhbnNhY3Rpb24oc2lnbmVkUmF3VHhuKTtcbiAgICAgIGNvbnN0IHR4blR5cGUgPSB0aGlzLmdldFRyYW5zYWN0aW9uVHlwZUZyb21TaWduZWRUeG4oc2lnbmVkVHhuKTtcbiAgICAgIHN3aXRjaCAodHhuVHlwZSkge1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICAgIGNvbnN0IHRyYW5zZmVyVHggPSBuZXcgVHJhbnNmZXJUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICB0cmFuc2ZlclR4LmZyb21EZXNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbihzaWduZWRUeG4pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFRyYW5zZmVyQnVpbGRlcih0cmFuc2ZlclR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuOlxuICAgICAgICAgIGNvbnN0IGZ1bmdpYmxlVHJhbnNmZXJUb2tlblR4ID0gbmV3IEZ1bmdpYmxlQXNzZXRUcmFuc2Zlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgICBmdW5naWJsZVRyYW5zZmVyVG9rZW5UeC5mcm9tRGVzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb24oc2lnbmVkVHhuKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGdW5naWJsZUFzc2V0VHJhbnNhY3Rpb25CdWlsZGVyKGZ1bmdpYmxlVHJhbnNmZXJUb2tlblR4KTtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZE5GVDpcbiAgICAgICAgICBjb25zdCBkaWdpdGFsQXNzZXRUcmFuc2ZlclR4ID0gbmV3IERpZ2l0YWxBc3NldFRyYW5zZmVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgICAgIGRpZ2l0YWxBc3NldFRyYW5zZmVyVHguZnJvbURlc2VyaWFsaXplZFNpZ25lZFRyYW5zYWN0aW9uKHNpZ25lZFR4bik7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGlnaXRhbEFzc2V0VHJhbnNhY3Rpb25CdWlsZGVyKGRpZ2l0YWxBc3NldFRyYW5zZmVyVHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0VHJhbnNhY3Rpb25UeXBlRnJvbVNpZ25lZFR4bihzaWduZWRUeG46IFNpZ25lZFRyYW5zYWN0aW9uKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICBjb25zdCByYXdUeG4gPSBzaWduZWRUeG4ucmF3X3R4bjtcbiAgICByZXR1cm4gdXRpbHMuZ2V0VHJhbnNhY3Rpb25UeXBlRnJvbVRyYW5zYWN0aW9uUGF5bG9hZChyYXdUeG4ucGF5bG9hZCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0VHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNmZXJCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRGdW5naWJsZUFzc2V0VHJhbnNhY3Rpb25CdWlsZGVyKHR4PzogVHJhbnNhY3Rpb24pOiBGdW5naWJsZUFzc2V0VHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEZ1bmdpYmxlQXNzZXRUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldERpZ2l0YWxBc3NldFRyYW5zYWN0aW9uQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogRGlnaXRhbEFzc2V0VHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IERpZ2l0YWxBc3NldFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb24gfCB1bmRlZmluZWR9IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uQnVpbGRlcn0gYnVpbGRlciAtIHRoZSBidWlsZGVyIHRvIGJlIGluaXRpYWxpemVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVCdWlsZGVyPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI+KHR4OiBUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCwgYnVpbGRlcjogVCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqIFBhcnNlIHRoZSB0cmFuc2FjdGlvbiBmcm9tIGEgc2lnbmVkIHR4biBoZXggc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZWRSYXdUcmFuc2FjdGlvbiAtIHRoZSBzaWduZWQgdHhuIGhleFxuICAgKiBAcmV0dXJucyB7U2lnbmVkVHJhbnNhY3Rpb259IHBhcnNlZHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIHBhcnNlVHJhbnNhY3Rpb24oc2lnbmVkUmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb24uZGVzZXJpYWxpemVTaWduZWRUcmFuc2FjdGlvbihzaWduZWRSYXdUcmFuc2FjdGlvbik7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SignedTransaction, TransactionPayload } from '@aptos-labs/ts-sdk';
|
|
2
|
-
import { BaseUtils,
|
|
2
|
+
import { BaseUtils, TransactionType } from '@bitgo/sdk-core';
|
|
3
3
|
export declare class Utils implements BaseUtils {
|
|
4
4
|
/** @inheritdoc */
|
|
5
5
|
isValidAddress(address: string): boolean;
|
|
@@ -15,9 +15,7 @@ export declare class Utils implements BaseUtils {
|
|
|
15
15
|
isValidTransactionId(txId: string): boolean;
|
|
16
16
|
isValidHex(value: string, length: number): boolean;
|
|
17
17
|
getAddressFromPublicKey(publicKey: string): string;
|
|
18
|
-
|
|
19
|
-
isValidRawTransaction(rawTransaction: string): boolean;
|
|
20
|
-
validateRawTransaction(rawTransaction: string): void;
|
|
18
|
+
getTransactionTypeFromTransactionPayload(payload: TransactionPayload): TransactionType;
|
|
21
19
|
deserializeSignedTransaction(rawTransaction: string): SignedTransaction;
|
|
22
20
|
getBufferFromHexString(hexString: string): Buffer;
|
|
23
21
|
castToNumber(value: bigint): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EAIT,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EAIT,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAYzB,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,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,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAKlD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOlD,wCAAwC,CAAC,OAAO,EAAE,kBAAkB,GAAG,eAAe;IAqBtF,4BAA4B,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB;IAMvE,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIjD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAGpC;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -43,38 +43,24 @@ class Utils {
|
|
|
43
43
|
const accountAddress = authKey.derivedAddress();
|
|
44
44
|
return accountAddress.toString();
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (payload instanceof ts_sdk_1.TransactionPayloadEntryFunction) {
|
|
50
|
-
const entryFunction = payload.entryFunction;
|
|
51
|
-
address = entryFunction.args[0].toString();
|
|
52
|
-
const amountBuffer = Buffer.from(entryFunction.args[1].bcsToBytes());
|
|
53
|
-
amount = amountBuffer.readBigUint64LE().toString();
|
|
46
|
+
getTransactionTypeFromTransactionPayload(payload) {
|
|
47
|
+
if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction)) {
|
|
48
|
+
throw new Error('Invalid Payload: Expected TransactionPayloadEntryFunction');
|
|
54
49
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
validateRawTransaction(rawTransaction) {
|
|
73
|
-
if (!rawTransaction) {
|
|
74
|
-
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
|
|
75
|
-
}
|
|
76
|
-
if (!this.isValidRawTransaction(rawTransaction)) {
|
|
77
|
-
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
|
|
50
|
+
const entryFunction = payload.entryFunction;
|
|
51
|
+
const moduleAddress = entryFunction.module_name.address.toString();
|
|
52
|
+
const moduleIdentifier = entryFunction.module_name.name.identifier;
|
|
53
|
+
const functionIdentifier = entryFunction.function_name.identifier;
|
|
54
|
+
const uniqueIdentifier = `${moduleAddress}::${moduleIdentifier}::${functionIdentifier}`;
|
|
55
|
+
switch (uniqueIdentifier) {
|
|
56
|
+
case constants_1.COIN_TRANSFER_FUNCTION:
|
|
57
|
+
return sdk_core_1.TransactionType.Send;
|
|
58
|
+
case constants_1.FUNGIBLE_ASSET_TRANSFER_FUNCTION:
|
|
59
|
+
return sdk_core_1.TransactionType.SendToken;
|
|
60
|
+
case constants_1.DIGITAL_ASSET_TRANSFER_FUNCTION:
|
|
61
|
+
return sdk_core_1.TransactionType.SendNFT;
|
|
62
|
+
default:
|
|
63
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid transaction: unable to fetch transaction type ${moduleIdentifier}`);
|
|
78
64
|
}
|
|
79
65
|
}
|
|
80
66
|
deserializeSignedTransaction(rawTransaction) {
|
|
@@ -92,4 +78,4 @@ class Utils {
|
|
|
92
78
|
exports.Utils = Utils;
|
|
93
79
|
const utils = new Utils();
|
|
94
80
|
exports.default = utils;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQVE0QjtBQUM1Qiw4Q0FNeUI7QUFDekIsMkNBUXFCO0FBQ3JCLGdFQUFxQztBQUVyQyxNQUFhLEtBQUs7SUFDaEIsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsOEJBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsK0JBQW1CLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsT0FBTyxJQUFBLGtDQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUEsa0NBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLGdDQUFvQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUscUNBQXlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWEsRUFBRSxNQUFjO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLHVCQUF1QixNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQXVCLENBQUMsU0FBaUI7UUFDdkMsTUFBTSxjQUFjLEdBQUcsSUFBSSx5QkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sT0FBTyxHQUFHLDBCQUFpQixDQUFDLGFBQWEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNoRCxPQUFPLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsd0NBQXdDLENBQUMsT0FBMkI7UUFDbEUsSUFBSSxDQUFDLENBQUMsT0FBTyxZQUFZLHdDQUErQixDQUFDLEVBQUUsQ0FBQztZQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDNUMsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkUsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkUsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUNsRSxNQUFNLGdCQUFnQixHQUFHLEdBQUcsYUFBYSxLQUFLLGdCQUFnQixLQUFLLGtCQUFrQixFQUFFLENBQUM7UUFDeEYsUUFBUSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLEtBQUssa0NBQXNCO2dCQUN6QixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFDO1lBQzlCLEtBQUssNENBQWdDO2dCQUNuQyxPQUFPLDBCQUFlLENBQUMsU0FBUyxDQUFDO1lBQ25DLEtBQUssMkNBQStCO2dCQUNsQyxPQUFPLDBCQUFlLENBQUMsT0FBTyxDQUFDO1lBQ2pDO2dCQUNFLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx5REFBeUQsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ25ILENBQUM7SUFDSCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsY0FBc0I7UUFDakQsTUFBTSxRQUFRLEdBQUcsWUFBRyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FBRyxJQUFJLHFCQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLDBCQUFpQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHNCQUFzQixDQUFDLFNBQWlCO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQTdFRCxzQkE2RUM7QUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0FBRTFCLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1dGhlbnRpY2F0aW9uS2V5LFxuICBEZXNlcmlhbGl6ZXIsXG4gIEVkMjU1MTlQdWJsaWNLZXksXG4gIEhleCxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uUGF5bG9hZCxcbiAgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbixcbn0gZnJvbSAnQGFwdG9zLWxhYnMvdHMtc2RrJztcbmltcG9ydCB7XG4gIEJhc2VVdGlscyxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5LFxuICBpc1ZhbGlkRWQyNTUxOVNlY3JldEtleSxcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgQVBUX0FERFJFU1NfTEVOR1RILFxuICBBUFRfQkxPQ0tfSURfTEVOR1RILFxuICBBUFRfU0lHTkFUVVJFX0xFTkdUSCxcbiAgQVBUX1RSQU5TQUNUSU9OX0lEX0xFTkdUSCxcbiAgQ09JTl9UUkFOU0ZFUl9GVU5DVElPTixcbiAgRElHSVRBTF9BU1NFVF9UUkFOU0ZFUl9GVU5DVElPTixcbiAgRlVOR0lCTEVfQVNTRVRfVFJBTlNGRVJfRlVOQ1RJT04sXG59IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIZXgoYWRkcmVzcywgQVBUX0FERFJFU1NfTEVOR1RIKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGV4KGhhc2gsIEFQVF9CTE9DS19JRF9MRU5HVEgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGV4KHNpZ25hdHVyZSwgQVBUX1NJR05BVFVSRV9MRU5HVEgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIZXgodHhJZCwgQVBUX1RSQU5TQUNUSU9OX0lEX0xFTkdUSCk7XG4gIH1cblxuICBpc1ZhbGlkSGV4KHZhbHVlOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeKDB4fDBYKVthLWZBLUYwLTldeyR7bGVuZ3RofX0kYCk7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpO1xuICB9XG5cbiAgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFwdG9zUHVibGljS2V5ID0gbmV3IEVkMjU1MTlQdWJsaWNLZXkoQnVmZmVyLmZyb20ocHVibGljS2V5LCAnaGV4JykpO1xuICAgIGNvbnN0IGF1dGhLZXkgPSBBdXRoZW50aWNhdGlvbktleS5mcm9tUHVibGljS2V5KHsgcHVibGljS2V5OiBhcHRvc1B1YmxpY0tleSB9KTtcbiAgICBjb25zdCBhY2NvdW50QWRkcmVzcyA9IGF1dGhLZXkuZGVyaXZlZEFkZHJlc3MoKTtcbiAgICByZXR1cm4gYWNjb3VudEFkZHJlc3MudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uVHlwZUZyb21UcmFuc2FjdGlvblBheWxvYWQocGF5bG9hZDogVHJhbnNhY3Rpb25QYXlsb2FkKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICBpZiAoIShwYXlsb2FkIGluc3RhbmNlb2YgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBQYXlsb2FkOiBFeHBlY3RlZCBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IGVudHJ5RnVuY3Rpb24gPSBwYXlsb2FkLmVudHJ5RnVuY3Rpb247XG4gICAgY29uc3QgbW9kdWxlQWRkcmVzcyA9IGVudHJ5RnVuY3Rpb24ubW9kdWxlX25hbWUuYWRkcmVzcy50b1N0cmluZygpO1xuICAgIGNvbnN0IG1vZHVsZUlkZW50aWZpZXIgPSBlbnRyeUZ1bmN0aW9uLm1vZHVsZV9uYW1lLm5hbWUuaWRlbnRpZmllcjtcbiAgICBjb25zdCBmdW5jdGlvbklkZW50aWZpZXIgPSBlbnRyeUZ1bmN0aW9uLmZ1bmN0aW9uX25hbWUuaWRlbnRpZmllcjtcbiAgICBjb25zdCB1bmlxdWVJZGVudGlmaWVyID0gYCR7bW9kdWxlQWRkcmVzc306OiR7bW9kdWxlSWRlbnRpZmllcn06OiR7ZnVuY3Rpb25JZGVudGlmaWVyfWA7XG4gICAgc3dpdGNoICh1bmlxdWVJZGVudGlmaWVyKSB7XG4gICAgICBjYXNlIENPSU5fVFJBTlNGRVJfRlVOQ1RJT046XG4gICAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgICAgIGNhc2UgRlVOR0lCTEVfQVNTRVRfVFJBTlNGRVJfRlVOQ1RJT046XG4gICAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuO1xuICAgICAgY2FzZSBESUdJVEFMX0FTU0VUX1RSQU5TRkVSX0ZVTkNUSU9OOlxuICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmRORlQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdHJhbnNhY3Rpb246IHVuYWJsZSB0byBmZXRjaCB0cmFuc2FjdGlvbiB0eXBlICR7bW9kdWxlSWRlbnRpZmllcn1gKTtcbiAgICB9XG4gIH1cblxuICBkZXNlcmlhbGl6ZVNpZ25lZFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBTaWduZWRUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHhuQnl0ZXMgPSBIZXguZnJvbUhleFN0cmluZyhyYXdUcmFuc2FjdGlvbikudG9VaW50OEFycmF5KCk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVyID0gbmV3IERlc2VyaWFsaXplcih0eG5CeXRlcyk7XG4gICAgcmV0dXJuIGRlc2VyaWFsaXplci5kZXNlcmlhbGl6ZShTaWduZWRUcmFuc2FjdGlvbik7XG4gIH1cblxuICBnZXRCdWZmZXJGcm9tSGV4U3RyaW5nKGhleFN0cmluZzogc3RyaW5nKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oSGV4LmZyb21IZXhTdHJpbmcoaGV4U3RyaW5nKS50b1VpbnQ4QXJyYXkoKSk7XG4gIH1cblxuICBjYXN0VG9OdW1iZXIodmFsdWU6IGJpZ2ludCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBCaWdOdW1iZXIodmFsdWUudG9TdHJpbmcoKSkudG9OdW1iZXIoKTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
|
package/dist/src/register.js
CHANGED
|
@@ -3,9 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.register = void 0;
|
|
4
4
|
const apt_1 = require("./apt");
|
|
5
5
|
const tapt_1 = require("./tapt");
|
|
6
|
+
const aptToken_1 = require("./aptToken");
|
|
6
7
|
const register = (sdk) => {
|
|
7
8
|
sdk.register('apt', apt_1.Apt.createInstance);
|
|
8
9
|
sdk.register('tapt', tapt_1.Tapt.createInstance);
|
|
10
|
+
aptToken_1.AptToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
|
|
11
|
+
sdk.register(name, coinConstructor);
|
|
12
|
+
});
|
|
9
13
|
};
|
|
10
14
|
exports.register = register;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLGlDQUE4QjtBQUM5Qix5Q0FBc0M7QUFFL0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLG1CQUFRLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEFwdCB9IGZyb20gJy4vYXB0JztcbmltcG9ydCB7IFRhcHQgfSBmcm9tICcuL3RhcHQnO1xuaW1wb3J0IHsgQXB0VG9rZW4gfSBmcm9tICcuL2FwdFRva2VuJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcignYXB0JywgQXB0LmNyZWF0ZUluc3RhbmNlKTtcbiAgc2RrLnJlZ2lzdGVyKCd0YXB0JywgVGFwdC5jcmVhdGVJbnN0YW5jZSk7XG4gIEFwdFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgIHNkay5yZWdpc3RlcihuYW1lLCBjb2luQ29uc3RydWN0b3IpO1xuICB9KTtcbn07XG4iXX0=
|