@bitgo-beta/sdk-coin-trx 1.0.2-beta.229 → 1.0.2-beta.2291
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/dist/resources/protobuf/Contract.proto +32 -0
- package/dist/resources/protobuf/tron.d.ts +1478 -214
- package/dist/resources/protobuf/tron.js +6312 -2600
- package/dist/resources/protobuf/tron.proto +6 -0
- package/dist/src/index.js +6 -2
- package/dist/src/lib/accountCreateTxBuilder.d.ts +60 -0
- package/dist/src/lib/accountCreateTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/accountCreateTxBuilder.js +191 -0
- package/dist/src/lib/constants.d.ts +4 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +7 -0
- package/dist/src/lib/contractCallBuilder.d.ts +1 -35
- package/dist/src/lib/contractCallBuilder.d.ts.map +1 -1
- package/dist/src/lib/contractCallBuilder.js +13 -76
- package/dist/src/lib/delegateResourceTxBuilder.d.ts +27 -0
- package/dist/src/lib/delegateResourceTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/delegateResourceTxBuilder.js +104 -0
- package/dist/src/lib/enum.d.ts +40 -1
- package/dist/src/lib/enum.d.ts.map +1 -1
- package/dist/src/lib/enum.js +44 -4
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts +71 -0
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/freezeBalanceTxBuilder.js +217 -0
- package/dist/src/lib/iface.d.ts +248 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.js +23 -9
- package/dist/src/lib/keyPair.d.ts +0 -1
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +31 -18
- package/dist/src/lib/resourceManagementTxBuilder.d.ts +72 -0
- package/dist/src/lib/resourceManagementTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/resourceManagementTxBuilder.js +150 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts +1 -1
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -1
- package/dist/src/lib/tokenTransferBuilder.js +5 -3
- package/dist/src/lib/transaction.d.ts +3 -0
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +115 -6
- package/dist/src/lib/transactionBuilder.d.ts +53 -6
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +121 -22
- package/dist/src/lib/undelegateResourceTxBuilder.d.ts +27 -0
- package/dist/src/lib/undelegateResourceTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/undelegateResourceTxBuilder.js +104 -0
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts +65 -0
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/unfreezeBalanceTxBuilder.js +210 -0
- package/dist/src/lib/utils.d.ts +115 -8
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +534 -55
- package/dist/src/lib/voteWitnessTxBuilder.d.ts +62 -0
- package/dist/src/lib/voteWitnessTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/voteWitnessTxBuilder.js +219 -0
- package/dist/src/lib/withdrawBuilder.d.ts +49 -0
- package/dist/src/lib/withdrawBuilder.d.ts.map +1 -0
- package/dist/src/lib/withdrawBuilder.js +167 -0
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts +49 -0
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.js +167 -0
- package/dist/src/lib/wrappedBuilder.d.ts +67 -1
- package/dist/src/lib/wrappedBuilder.d.ts.map +1 -1
- package/dist/src/lib/wrappedBuilder.js +114 -4
- package/dist/src/trx.d.ts +138 -7
- package/dist/src/trx.d.ts.map +1 -1
- package/dist/src/trx.js +664 -149
- package/dist/src/trxToken.d.ts +2 -2
- package/dist/src/trxToken.d.ts.map +1 -1
- package/dist/src/trxToken.js +22 -7
- package/dist/test/fixtures.d.ts +40 -0
- package/dist/test/fixtures.d.ts.map +1 -0
- package/dist/test/fixtures.js +46 -0
- package/dist/test/resources.d.ts +614 -0
- package/dist/test/resources.d.ts.map +1 -0
- package/dist/test/resources.js +782 -0
- package/dist/test/unit/index.d.ts +2 -0
- package/dist/test/unit/index.d.ts.map +1 -0
- package/dist/test/unit/index.js +19 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +163 -0
- package/dist/test/unit/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +38 -0
- package/dist/test/unit/transactionBuilder/accountCreateTxBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/accountCreateTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/accountCreateTxBuilder.js +248 -0
- package/dist/test/unit/transactionBuilder/contractCallBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/contractCallBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/contractCallBuilder.js +315 -0
- package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/delegateResourceTxBuilder.js +339 -0
- package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/freezeBalanceTxBuilder.js +365 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +87 -0
- package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/undelegateResourceTxBuilder.js +339 -0
- package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/unfreezeBalanceTxBuilder.js +336 -0
- package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/voteWitnessTxBuilder.js +277 -0
- package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/withdrawBalanceBuilder.js +213 -0
- package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/withdrawExpireUnfreezeTxBuilder.js +213 -0
- package/dist/test/unit/transactionBuilder/wrappedBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/wrappedBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/wrappedBuilder.js +68 -0
- package/dist/test/unit/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder.js +178 -0
- package/dist/test/unit/trx.d.ts +2 -0
- package/dist/test/unit/trx.d.ts.map +1 -0
- package/dist/test/unit/trx.js +809 -0
- package/dist/test/unit/trxToken.d.ts +2 -0
- package/dist/test/unit/trxToken.d.ts.map +1 -0
- package/dist/test/unit/trxToken.js +152 -0
- package/dist/test/unit/util.d.ts +2 -0
- package/dist/test/unit/util.d.ts.map +1 -0
- package/dist/test/unit/util.js +156 -0
- package/dist/test/unit/verifyTransaction.d.ts +2 -0
- package/dist/test/unit/verifyTransaction.d.ts.map +1 -0
- package/dist/test/unit/verifyTransaction.js +695 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +22 -16
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -118
- package/resources/README.md +0 -31
- package/resources/protobuf/Contract.proto +0 -256
- package/resources/protobuf/Discover.proto +0 -44
- package/resources/protobuf/tron.d.ts +0 -11205
- package/resources/protobuf/tron.js +0 -33480
- package/resources/protobuf/tron.proto +0 -677
|
@@ -273,6 +273,12 @@ message Transaction {
|
|
|
273
273
|
UpdateEnergyLimitContract = 45;
|
|
274
274
|
AccountPermissionUpdateContract = 46;
|
|
275
275
|
ClearABIContract = 48;
|
|
276
|
+
UpdateBrokerageContract = 49;
|
|
277
|
+
FreezeBalanceV2Contract = 54;
|
|
278
|
+
UnfreezeBalanceV2Contract = 55;
|
|
279
|
+
WithdrawExpireUnfreezeContract = 56;
|
|
280
|
+
DelegateResourceContract = 57;
|
|
281
|
+
UnDelegateResourceContract = 58;
|
|
276
282
|
}
|
|
277
283
|
ContractType type = 1;
|
|
278
284
|
google.protobuf.Any parameter = 2;
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -15,4 +19,4 @@ __exportStar(require("./trx"), exports);
|
|
|
15
19
|
__exportStar(require("./ttrx"), exports);
|
|
16
20
|
__exportStar(require("./trxToken"), exports);
|
|
17
21
|
__exportStar(require("./register"), exports);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qix3Q0FBc0I7QUFDdEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL3RyeCc7XG5leHBvcnQgKiBmcm9tICcuL3R0cngnO1xuZXhwb3J0ICogZnJvbSAnLi90cnhUb2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { TransactionType, BaseKey } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransactionReceipt, AccountCreateContract } from './iface';
|
|
6
|
+
export declare class AccountCreateTxBuilder extends TransactionBuilder {
|
|
7
|
+
protected _signingKeys: BaseKey[];
|
|
8
|
+
protected _accountAddress: string;
|
|
9
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
protected get transactionType(): TransactionType;
|
|
12
|
+
/**
|
|
13
|
+
* Sets the account address (Base58) to be created/activated on-chain.
|
|
14
|
+
* Stored internally as hex for protobuf encoding.
|
|
15
|
+
*
|
|
16
|
+
* @param {object} address - object containing the Base58 address of the new account
|
|
17
|
+
* @returns {this}
|
|
18
|
+
*/
|
|
19
|
+
setAccountAddress(address: {
|
|
20
|
+
address: string;
|
|
21
|
+
}): this;
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
extendValidTo(extensionMs: number): void;
|
|
24
|
+
initBuilder(rawTransaction: TransactionReceipt | string): this;
|
|
25
|
+
/**
|
|
26
|
+
* Initialize the account create contract call specific data.
|
|
27
|
+
* Addresses stored in the receipt are hex (set by createAccountCreateTransaction).
|
|
28
|
+
*
|
|
29
|
+
* @param {AccountCreateContract} accountCreateContractCall object with account create contract data
|
|
30
|
+
*/
|
|
31
|
+
protected initAccountCreateContractCall(accountCreateContractCall: AccountCreateContract): void;
|
|
32
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
33
|
+
/**
|
|
34
|
+
* Helper method to create the account create transaction
|
|
35
|
+
*/
|
|
36
|
+
private createAccountCreateTransaction;
|
|
37
|
+
/**
|
|
38
|
+
* Helper method to get the account create transaction raw data hex
|
|
39
|
+
*
|
|
40
|
+
* @returns {string} the account create transaction raw data hex
|
|
41
|
+
*/
|
|
42
|
+
private getAccountCreateTxRawDataHex;
|
|
43
|
+
/** @inheritdoc */
|
|
44
|
+
protected signImplementation(key: BaseKey): Transaction;
|
|
45
|
+
private applySignatures;
|
|
46
|
+
/**
|
|
47
|
+
* Validates the transaction
|
|
48
|
+
*
|
|
49
|
+
* @param {Transaction} transaction - The transaction to validate
|
|
50
|
+
* @throws {BuildTransactionError} when the transaction is invalid
|
|
51
|
+
*/
|
|
52
|
+
validateTransaction(transaction: Transaction): void;
|
|
53
|
+
/**
|
|
54
|
+
* Validates if the transaction is a valid account create transaction
|
|
55
|
+
*
|
|
56
|
+
* @throws {BuildTransactionError} when the transaction is invalid
|
|
57
|
+
*/
|
|
58
|
+
private validateAccountCreateTransactionFields;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=accountCreateTxBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accountCreateTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/accountCreateTxBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAA+D,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAYpE,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;IAElC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;gBAEtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMrD,kBAAkB;IAClB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBxC,WAAW,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAgB9D;;;;;OAKG;IACH,SAAS,CAAC,6BAA6B,CAAC,yBAAyB,EAAE,qBAAqB,GAAG,IAAI;cAY/E,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAoBtC;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IA8BpC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAUvD,OAAO,CAAC,eAAe;IAQvB;;;;;OAKG;IACH,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAInD;;;;OAIG;IACH,OAAO,CAAC,sCAAsC;CAa/C"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AccountCreateTxBuilder = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
7
|
+
const transaction_1 = require("./transaction");
|
|
8
|
+
const tron_1 = require("../../resources/protobuf/tron");
|
|
9
|
+
const utils_1 = require("./utils");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
class AccountCreateTxBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
12
|
+
constructor(_coinConfig) {
|
|
13
|
+
super(_coinConfig);
|
|
14
|
+
this._signingKeys = [];
|
|
15
|
+
this.transaction = new transaction_1.Transaction(_coinConfig);
|
|
16
|
+
}
|
|
17
|
+
/** @inheritdoc */
|
|
18
|
+
get transactionType() {
|
|
19
|
+
return sdk_core_1.TransactionType.AccountCreate;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Sets the account address (Base58) to be created/activated on-chain.
|
|
23
|
+
* Stored internally as hex for protobuf encoding.
|
|
24
|
+
*
|
|
25
|
+
* @param {object} address - object containing the Base58 address of the new account
|
|
26
|
+
* @returns {this}
|
|
27
|
+
*/
|
|
28
|
+
setAccountAddress(address) {
|
|
29
|
+
this.validateAddress(address);
|
|
30
|
+
this._accountAddress = (0, utils_1.getHexAddressFromBase58Address)(address.address);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/** @inheritdoc */
|
|
34
|
+
extendValidTo(extensionMs) {
|
|
35
|
+
if (this.transaction.signature && this.transaction.signature.length > 0) {
|
|
36
|
+
throw new sdk_core_1.ExtendTransactionError('Cannot extend a signed transaction');
|
|
37
|
+
}
|
|
38
|
+
if (extensionMs <= 0) {
|
|
39
|
+
throw new Error('Value cannot be below zero');
|
|
40
|
+
}
|
|
41
|
+
if (extensionMs > utils_1.TRANSACTION_MAX_EXPIRATION) {
|
|
42
|
+
throw new sdk_core_1.ExtendTransactionError('The expiration cannot be extended more than one day');
|
|
43
|
+
}
|
|
44
|
+
if (this._expiration) {
|
|
45
|
+
this._expiration = this._expiration + extensionMs;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error('There is not expiration to extend');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
initBuilder(rawTransaction) {
|
|
52
|
+
this.validateRawTransaction(rawTransaction);
|
|
53
|
+
const tx = this.fromImplementation(rawTransaction);
|
|
54
|
+
this.transaction = tx;
|
|
55
|
+
this._signingKeys = [];
|
|
56
|
+
const rawData = tx.toJson().raw_data;
|
|
57
|
+
this._refBlockBytes = rawData.ref_block_bytes;
|
|
58
|
+
this._refBlockHash = rawData.ref_block_hash;
|
|
59
|
+
this._expiration = rawData.expiration;
|
|
60
|
+
this._timestamp = rawData.timestamp;
|
|
61
|
+
this.transaction.setTransactionType(this.transactionType);
|
|
62
|
+
const contractCall = rawData.contract[0];
|
|
63
|
+
this.initAccountCreateContractCall(contractCall);
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Initialize the account create contract call specific data.
|
|
68
|
+
* Addresses stored in the receipt are hex (set by createAccountCreateTransaction).
|
|
69
|
+
*
|
|
70
|
+
* @param {AccountCreateContract} accountCreateContractCall object with account create contract data
|
|
71
|
+
*/
|
|
72
|
+
initAccountCreateContractCall(accountCreateContractCall) {
|
|
73
|
+
const { owner_address, account_address } = accountCreateContractCall.parameter.value;
|
|
74
|
+
if (owner_address) {
|
|
75
|
+
// owner_address stored in receipt is hex; source() expects Base58
|
|
76
|
+
this.source({ address: (0, utils_1.getBase58AddressFromHex)(owner_address) });
|
|
77
|
+
}
|
|
78
|
+
if (account_address) {
|
|
79
|
+
// account_address stored in receipt is hex; store directly
|
|
80
|
+
this._accountAddress = account_address;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async buildImplementation() {
|
|
84
|
+
this.createAccountCreateTransaction();
|
|
85
|
+
if (this._signingKeys.length > 0) {
|
|
86
|
+
this.applySignatures();
|
|
87
|
+
}
|
|
88
|
+
if (!this.transaction.id) {
|
|
89
|
+
throw new sdk_core_1.BuildTransactionError('A valid transaction must have an id');
|
|
90
|
+
}
|
|
91
|
+
return Promise.resolve(this.transaction);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Helper method to create the account create transaction
|
|
95
|
+
*/
|
|
96
|
+
createAccountCreateTransaction() {
|
|
97
|
+
const rawDataHex = this.getAccountCreateTxRawDataHex();
|
|
98
|
+
const rawData = (0, utils_1.decodeTransaction)(rawDataHex);
|
|
99
|
+
const contract = rawData.contract[0];
|
|
100
|
+
const contractParameter = contract.parameter;
|
|
101
|
+
contractParameter.value.owner_address = this._ownerAddress.toLocaleLowerCase();
|
|
102
|
+
contractParameter.value.account_address = this._accountAddress.toLocaleLowerCase();
|
|
103
|
+
contractParameter.type_url = constants_1.ACCOUNT_CREATE_TYPE_URL;
|
|
104
|
+
contract.type = 'AccountCreateContract';
|
|
105
|
+
const hexBuffer = Buffer.from(rawDataHex, 'hex');
|
|
106
|
+
const id = (0, crypto_1.createHash)('sha256').update(hexBuffer).digest('hex');
|
|
107
|
+
const txReceipt = {
|
|
108
|
+
raw_data: rawData,
|
|
109
|
+
raw_data_hex: rawDataHex,
|
|
110
|
+
txID: id,
|
|
111
|
+
signature: this.transaction.signature,
|
|
112
|
+
};
|
|
113
|
+
this.transaction = new transaction_1.Transaction(this._coinConfig, txReceipt);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Helper method to get the account create transaction raw data hex
|
|
117
|
+
*
|
|
118
|
+
* @returns {string} the account create transaction raw data hex
|
|
119
|
+
*/
|
|
120
|
+
getAccountCreateTxRawDataHex() {
|
|
121
|
+
const rawContract = {
|
|
122
|
+
ownerAddress: (0, utils_1.getByteArrayFromHexAddress)(this._ownerAddress),
|
|
123
|
+
accountAddress: (0, utils_1.getByteArrayFromHexAddress)(this._accountAddress),
|
|
124
|
+
};
|
|
125
|
+
const accountCreateContract = tron_1.protocol.AccountCreateContract.fromObject(rawContract);
|
|
126
|
+
const accountCreateContractBytes = tron_1.protocol.AccountCreateContract.encode(accountCreateContract).finish();
|
|
127
|
+
// AccountCreateContract is enum value 0 — the proto3 default. TRON's node
|
|
128
|
+
// re-serializes raw_data from broadcast JSON and omits default-valued
|
|
129
|
+
// fields, producing a different raw_data_hex (and txID) than the SDK if
|
|
130
|
+
// we encode the type field explicitly. Skip it so signing and broadcast
|
|
131
|
+
// hashes match. See freezeBalanceTxBuilder.ts:175-181 for the same class
|
|
132
|
+
// of issue on the inner `resource` field.
|
|
133
|
+
const txContract = {
|
|
134
|
+
parameter: {
|
|
135
|
+
value: accountCreateContractBytes,
|
|
136
|
+
type_url: constants_1.ACCOUNT_CREATE_TYPE_URL,
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
const raw = {
|
|
140
|
+
refBlockBytes: Buffer.from(this._refBlockBytes, 'hex'),
|
|
141
|
+
refBlockHash: Buffer.from(this._refBlockHash, 'hex'),
|
|
142
|
+
expiration: this._expiration || Date.now() + utils_1.TRANSACTION_DEFAULT_EXPIRATION,
|
|
143
|
+
timestamp: this._timestamp || Date.now(),
|
|
144
|
+
contract: [txContract],
|
|
145
|
+
};
|
|
146
|
+
const rawTx = tron_1.protocol.Transaction.raw.create(raw);
|
|
147
|
+
return Buffer.from(tron_1.protocol.Transaction.raw.encode(rawTx).finish()).toString('hex');
|
|
148
|
+
}
|
|
149
|
+
/** @inheritdoc */
|
|
150
|
+
signImplementation(key) {
|
|
151
|
+
if (this._signingKeys.some((signingKey) => signingKey.key === key.key)) {
|
|
152
|
+
throw new sdk_core_1.SigningError('Duplicated key');
|
|
153
|
+
}
|
|
154
|
+
this._signingKeys.push(key);
|
|
155
|
+
// We keep this return for compatibility but is not meant to be use
|
|
156
|
+
return this.transaction;
|
|
157
|
+
}
|
|
158
|
+
applySignatures() {
|
|
159
|
+
if (!this.transaction.inputs) {
|
|
160
|
+
throw new sdk_core_1.SigningError('Transaction has no inputs');
|
|
161
|
+
}
|
|
162
|
+
this._signingKeys.forEach((key) => this.applySignature(key));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Validates the transaction
|
|
166
|
+
*
|
|
167
|
+
* @param {Transaction} transaction - The transaction to validate
|
|
168
|
+
* @throws {BuildTransactionError} when the transaction is invalid
|
|
169
|
+
*/
|
|
170
|
+
validateTransaction(transaction) {
|
|
171
|
+
this.validateAccountCreateTransactionFields();
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Validates if the transaction is a valid account create transaction
|
|
175
|
+
*
|
|
176
|
+
* @throws {BuildTransactionError} when the transaction is invalid
|
|
177
|
+
*/
|
|
178
|
+
validateAccountCreateTransactionFields() {
|
|
179
|
+
if (!this._ownerAddress) {
|
|
180
|
+
throw new sdk_core_1.BuildTransactionError('Missing parameter: source');
|
|
181
|
+
}
|
|
182
|
+
if (!this._accountAddress) {
|
|
183
|
+
throw new sdk_core_1.BuildTransactionError('Missing parameter: account address');
|
|
184
|
+
}
|
|
185
|
+
if (!this._refBlockBytes || !this._refBlockHash) {
|
|
186
|
+
throw new sdk_core_1.BuildTransactionError('Missing block reference information');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.AccountCreateTxBuilder = AccountCreateTxBuilder;
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudENyZWF0ZVR4QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYWNjb3VudENyZWF0ZVR4QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbURBQTZIO0FBRTdILDZEQUEwRDtBQUMxRCwrQ0FBNEM7QUFFNUMsd0RBQXlEO0FBQ3pELG1DQU9pQjtBQUNqQiwyQ0FBc0Q7QUFFdEQsTUFBYSxzQkFBdUIsU0FBUSx1Q0FBa0I7SUFLNUQsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQUMsT0FBNEI7UUFDNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUEsc0NBQThCLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsV0FBbUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEUsTUFBTSxJQUFJLGlDQUFzQixDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELElBQUksV0FBVyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0s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aCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEJhc2VLZXksIEV4dGVuZFRyYW5zYWN0aW9uRXJyb3IsIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgU2lnbmluZ0Vycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVjZWlwdCwgQWNjb3VudENyZWF0ZUNvbnRyYWN0IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBwcm90b2NvbCB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9wcm90b2J1Zi90cm9uJztcbmltcG9ydCB7XG4gIGRlY29kZVRyYW5zYWN0aW9uLFxuICBnZXRCeXRlQXJyYXlGcm9tSGV4QWRkcmVzcyxcbiAgZ2V0QmFzZTU4QWRkcmVzc0Zyb21IZXgsXG4gIGdldEhleEFkZHJlc3NGcm9tQmFzZTU4QWRkcmVzcyxcbiAgVFJBTlNBQ1RJT05fTUFYX0VYUElSQVRJT04sXG4gIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbn0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBBQ0NPVU5UX0NSRUFURV9UWVBFX1VSTCB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIEFjY291bnRDcmVhdGVUeEJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3NpZ25pbmdLZXlzOiBCYXNlS2V5W107XG4gIC8vIFN0b3JlZCBhcyBoZXggYWRkcmVzcywgY29uc2lzdGVudCB3aXRoIF9vd25lckFkZHJlc3NcbiAgcHJvdGVjdGVkIF9hY2NvdW50QWRkcmVzczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl9zaWduaW5nS2V5cyA9IFtdO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50Q3JlYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjY291bnQgYWRkcmVzcyAoQmFzZTU4KSB0byBiZSBjcmVhdGVkL2FjdGl2YXRlZCBvbi1jaGFpbi5cbiAgICogU3RvcmVkIGludGVybmFsbHkgYXMgaGV4IGZvciBwcm90b2J1ZiBlbmNvZGluZy5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGFkZHJlc3MgLSBvYmplY3QgY29udGFpbmluZyB0aGUgQmFzZTU4IGFkZHJlc3Mgb2YgdGhlIG5ldyBhY2NvdW50XG4gICAqIEByZXR1cm5zIHt0aGlzfVxuICAgKi9cbiAgc2V0QWNjb3VudEFkZHJlc3MoYWRkcmVzczogeyBhZGRyZXNzOiBzdHJpbmcgfSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgIHRoaXMuX2FjY291bnRBZGRyZXNzID0gZ2V0SGV4QWRkcmVzc0Zyb21CYXNlNThBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZXh0ZW5kVmFsaWRUbyhleHRlbnNpb25NczogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uc2lnbmF0dXJlICYmIHRoaXMudHJhbnNhY3Rpb24uc2lnbmF0dXJlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFeHRlbmRUcmFuc2FjdGlvbkVycm9yKCdDYW5ub3QgZXh0ZW5kIGEgc2lnbmVkIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKGV4dGVuc2lvbk1zIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgY2Fubm90IGJlIGJlbG93IHplcm8nKTtcbiAgICB9XG5cbiAgICBpZiAoZXh0ZW5zaW9uTXMgPiBUUkFOU0FDVElPTl9NQVhfRVhQSVJBVElPTikge1xuICAgICAgdGhyb3cgbmV3IEV4dGVuZFRyYW5zYWN0aW9uRXJyb3IoJ1RoZSBleHBpcmF0aW9uIGNhbm5vdCBiZSBleHRlbmRlZCBtb3JlIHRoYW4gb25lIGRheScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9leHBpcmF0aW9uKSB7XG4gICAgICB0aGlzLl9leHBpcmF0aW9uID0gdGhpcy5fZXhwaXJhdGlvbiArIGV4dGVuc2lvbk1zO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGlzIG5vdCBleHBpcmF0aW9uIHRvIGV4dGVuZCcpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRCdWlsZGVyKHJhd1RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblJlY2VpcHQgfCBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHR4ID0gdGhpcy5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0eDtcbiAgICB0aGlzLl9zaWduaW5nS2V5cyA9IFtdO1xuICAgIGNvbnN0IHJhd0RhdGEgPSB0eC50b0pzb24oKS5yYXdfZGF0YTtcbiAgICB0aGlzLl9yZWZCbG9ja0J5dGVzID0gcmF3RGF0YS5yZWZfYmxvY2tfYnl0ZXM7XG4gICAgdGhpcy5fcmVmQmxvY2tIYXNoID0gcmF3RGF0YS5yZWZfYmxvY2tfaGFzaDtcbiAgICB0aGlzLl9leHBpcmF0aW9uID0gcmF3RGF0YS5leHBpcmF0aW9uO1xuICAgIHRoaXMuX3RpbWVzdGFtcCA9IHJhd0RhdGEudGltZXN0YW1wO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICBjb25zdCBjb250cmFjdENhbGwgPSByYXdEYXRhLmNvbnRyYWN0WzBdIGFzIEFjY291bnRDcmVhdGVDb250cmFjdDtcbiAgICB0aGlzLmluaXRBY2NvdW50Q3JlYXRlQ29udHJhY3RDYWxsKGNvbnRyYWN0Q2FsbCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgYWNjb3VudCBjcmVhdGUgY29udHJhY3QgY2FsbCBzcGVjaWZpYyBkYXRhLlxuICAgKiBBZGRyZXNzZXMgc3RvcmVkIGluIHRoZSByZWNlaXB0IGFyZSBoZXggKHNldCBieSBjcmVhdGVBY2NvdW50Q3JlYXRlVHJhbnNhY3Rpb24pLlxuICAgKlxuICAgKiBAcGFyYW0ge0FjY291bnRDcmVhdGVDb250cmFjdH0gYWNjb3VudENyZWF0ZUNvbnRyYWN0Q2FsbCBvYmplY3Qgd2l0aCBhY2NvdW50IGNyZWF0ZSBjb250cmFjdCBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdEFjY291bnRDcmVhdGVDb250cmFjdENhbGwoYWNjb3VudENyZWF0ZUNvbnRyYWN0Q2FsbDogQWNjb3VudENyZWF0ZUNvbnRyYWN0KTogdm9pZCB7XG4gICAgY29uc3QgeyBvd25lcl9hZGRyZXNzLCBhY2NvdW50X2FkZHJlc3MgfSA9IGFjY291bnRDcmVhdGVDb250cmFjdENhbGwucGFyYW1ldGVyLnZhbHVlO1xuICAgIGlmIChvd25lcl9hZGRyZXNzKSB7XG4gICAgICAvLyBvd25lcl9hZGRyZXNzIHN0b3JlZCBpbiByZWNlaXB0IGlzIGhleDsgc291cmNlKCkgZXhwZWN0cyBCYXNlNThcbiAgICAgIHRoaXMuc291cmNlKHsgYWRkcmVzczogZ2V0QmFzZTU4QWRkcmVzc0Zyb21IZXgob3duZXJfYWRkcmVzcykgfSk7XG4gICAgfVxuICAgIGlmIChhY2NvdW50X2FkZHJlc3MpIHtcbiAgICAgIC8vIGFjY291bnRfYWRkcmVzcyBzdG9yZWQgaW4gcmVjZWlwdCBpcyBoZXg7IHN0b3JlIGRpcmVjdGx5XG4gICAgICB0aGlzLl9hY2NvdW50QWRkcmVzcyA9IGFjY291bnRfYWRkcmVzcztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5jcmVhdGVBY2NvdW50Q3JlYXRlVHJhbnNhY3Rpb24oKTtcbiAgICBpZiAodGhpcy5fc2lnbmluZ0tleXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hcHBseVNpZ25hdHVyZXMoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb24uaWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0EgdmFsaWQgdHJhbnNhY3Rpb24gbXVzdCBoYXZlIGFuIGlkJyk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy50cmFuc2FjdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgdGhlIGFjY291bnQgY3JlYXRlIHRyYW5zYWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUFjY291bnRDcmVhdGVUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCByYXdEYXRhSGV4ID0gdGhpcy5nZXRBY2NvdW50Q3JlYXRlVHhSYXdEYXRhSGV4KCk7XG4gICAgY29uc3QgcmF3RGF0YSA9IGRlY29kZVRyYW5zYWN0aW9uKHJhd0RhdGFIZXgpO1xuICAgIGNvbnN0IGNvbnRyYWN0ID0gcmF3RGF0YS5jb250cmFjdFswXSBhcyBBY2NvdW50Q3JlYXRlQ29udHJhY3Q7XG4gICAgY29uc3QgY29udHJhY3RQYXJhbWV0ZXIgPSBjb250cmFjdC5wYXJhbWV0ZXI7XG4gICAgY29udHJhY3RQYXJhbWV0ZXIudmFsdWUub3duZXJfYWRkcmVzcyA9IHRoaXMuX293bmVyQWRkcmVzcy50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLmFjY291bnRfYWRkcmVzcyA9IHRoaXMuX2FjY291bnRBZGRyZXNzLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgY29udHJhY3RQYXJhbWV0ZXIudHlwZV91cmwgPSBBQ0NPVU5UX0NSRUFURV9UWVBFX1VSTDtcbiAgICBjb250cmFjdC50eXBlID0gJ0FjY291bnRDcmVhdGVDb250cmFjdCc7XG4gICAgY29uc3QgaGV4QnVmZmVyID0gQnVmZmVyLmZyb20ocmF3RGF0YUhleCwgJ2hleCcpO1xuICAgIGNvbnN0IGlkID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhleEJ1ZmZlcikuZGlnZXN0KCdoZXgnKTtcbiAgICBjb25zdCB0eFJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCA9IHtcbiAgICAgIHJhd19kYXRhOiByYXdEYXRhLFxuICAgICAgcmF3X2RhdGFfaGV4OiByYXdEYXRhSGV4LFxuICAgICAgdHhJRDogaWQsXG4gICAgICBzaWduYXR1cmU6IHRoaXMudHJhbnNhY3Rpb24uc2lnbmF0dXJlLFxuICAgIH07XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCB0eFJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZ2V0IHRoZSBhY2NvdW50IGNyZWF0ZSB0cmFuc2FjdGlvbiByYXcgZGF0YSBoZXhcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIGFjY291bnQgY3JlYXRlIHRyYW5zYWN0aW9uIHJhdyBkYXRhIGhleFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBY2NvdW50Q3JlYXRlVHhSYXdEYXRhSGV4KCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF3Q29udHJhY3QgPSB7XG4gICAgICBvd25lckFkZHJlc3M6IGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzKHRoaXMuX293bmVyQWRkcmVzcyksXG4gICAgICBhY2NvdW50QWRkcmVzczogZ2V0Qnl0ZUFycmF5RnJvbUhleEFkZHJlc3ModGhpcy5fYWNjb3VudEFkZHJlc3MpLFxuICAgIH07XG4gICAgY29uc3QgYWNjb3VudENyZWF0ZUNvbnRyYWN0ID0gcHJvdG9jb2wuQWNjb3VudENyZWF0ZUNvbnRyYWN0LmZyb21PYmplY3QocmF3Q29udHJhY3QpO1xuICAgIGNvbnN0IGFjY291bnRDcmVhdGVDb250cmFjdEJ5dGVzID0gcHJvdG9jb2wuQWNjb3VudENyZWF0ZUNvbnRyYWN0LmVuY29kZShhY2NvdW50Q3JlYXRlQ29udHJhY3QpLmZpbmlzaCgpO1xuICAgIC8vIEFjY291bnRDcmVhdGVDb250cmFjdCBpcyBlbnVtIHZhbHVlIDAg4oCUIHRoZSBwcm90bzMgZGVmYXVsdC4gVFJPTidzIG5vZGVcbiAgICAvLyByZS1zZXJpYWxpemVzIHJhd19kYXRhIGZyb20gYnJvYWRjYXN0IEpTT04gYW5kIG9taXRzIGRlZmF1bHQtdmFsdWVkXG4gICAgLy8gZmllbGRzLCBwcm9kdWNpbmcgYSBkaWZmZXJlbnQgcmF3X2RhdGFfaGV4IChhbmQgdHhJRCkgdGhhbiB0aGUgU0RLIGlmXG4gICAgLy8gd2UgZW5jb2RlIHRoZSB0eXBlIGZpZWxkIGV4cGxpY2l0bHkuIFNraXAgaXQgc28gc2lnbmluZyBhbmQgYnJvYWRjYXN0XG4gICAgLy8gaGFzaGVzIG1hdGNoLiBTZWUgZnJlZXplQmFsYW5jZVR4QnVpbGRlci50czoxNzUtMTgxIGZvciB0aGUgc2FtZSBjbGFzc1xuICAgIC8vIG9mIGlzc3VlIG9uIHRoZSBpbm5lciBgcmVzb3VyY2VgIGZpZWxkLlxuICAgIGNvbnN0IHR4Q29udHJhY3QgPSB7XG4gICAgICBwYXJhbWV0ZXI6IHtcbiAgICAgICAgdmFsdWU6IGFjY291bnRDcmVhdGVDb250cmFjdEJ5dGVzLFxuICAgICAgICB0eXBlX3VybDogQUNDT1VOVF9DUkVBVEVfVFlQRV9VUkwsXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcmF3ID0ge1xuICAgICAgcmVmQmxvY2tCeXRlczogQnVmZmVyLmZyb20odGhpcy5fcmVmQmxvY2tCeXRlcywgJ2hleCcpLFxuICAgICAgcmVmQmxvY2tIYXNoOiBCdWZmZXIuZnJvbSh0aGlzLl9yZWZCbG9ja0hhc2gsICdoZXgnKSxcbiAgICAgIGV4cGlyYXRpb246IHRoaXMuX2V4cGlyYXRpb24gfHwgRGF0ZS5ub3coKSArIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbiAgICAgIHRpbWVzdGFtcDogdGhpcy5fdGltZXN0YW1wIHx8IERhdGUubm93KCksXG4gICAgICBjb250cmFjdDogW3R4Q29udHJhY3RdLFxuICAgIH07XG4gICAgY29uc3QgcmF3VHggPSBwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuY3JlYXRlKHJhdyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHByb3RvY29sLlRyYW5zYWN0aW9uLnJhdy5lbmNvZGUocmF3VHgpLmZpbmlzaCgpKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKHRoaXMuX3NpZ25pbmdLZXlzLnNvbWUoKHNpZ25pbmdLZXkpID0+IHNpZ25pbmdLZXkua2V5ID09PSBrZXkua2V5KSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignRHVwbGljYXRlZCBrZXknKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmluZ0tleXMucHVzaChrZXkpO1xuXG4gICAgLy8gV2Uga2VlcCB0aGlzIHJldHVybiBmb3IgY29tcGF0aWJpbGl0eSBidXQgaXMgbm90IG1lYW50IHRvIGJlIHVzZVxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNpZ25hdHVyZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLmlucHV0cykge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignVHJhbnNhY3Rpb24gaGFzIG5vIGlucHV0cycpO1xuICAgIH1cblxuICAgIHRoaXMuX3NpZ25pbmdLZXlzLmZvckVhY2goKGtleSkgPT4gdGhpcy5hcHBseVNpZ25hdHVyZShrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHRyYW5zYWN0aW9uIC0gVGhlIHRyYW5zYWN0aW9uIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3Mge0J1aWxkVHJhbnNhY3Rpb25FcnJvcn0gd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgaW52YWxpZFxuICAgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlQWNjb3VudENyZWF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyBhIHZhbGlkIGFjY291bnQgY3JlYXRlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEB0aHJvd3Mge0J1aWxkVHJhbnNhY3Rpb25FcnJvcn0gd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgaW52YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFjY291bnRDcmVhdGVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX293bmVyQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IHNvdXJjZScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fYWNjb3VudEFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgcGFyYW1ldGVyOiBhY2NvdW50IGFkZHJlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX3JlZkJsb2NrQnl0ZXMgfHwgIXRoaXMuX3JlZkJsb2NrSGFzaCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBibG9jayByZWZlcmVuY2UgaW5mb3JtYXRpb24nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const DELEGATION_TYPE_URL = "type.googleapis.com/protocol.DelegateResourceContract";
|
|
2
|
+
export declare const UNDELEGATION_TYPE_URL = "type.googleapis.com/protocol.UnDelegateResourceContract";
|
|
3
|
+
export declare const ACCOUNT_CREATE_TYPE_URL = "type.googleapis.com/protocol.AccountCreateContract";
|
|
4
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,0DAA0D,CAAC;AAC3F,eAAO,MAAM,qBAAqB,4DAA4D,CAAC;AAC/F,eAAO,MAAM,uBAAuB,uDAAuD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ACCOUNT_CREATE_TYPE_URL = exports.UNDELEGATION_TYPE_URL = exports.DELEGATION_TYPE_URL = void 0;
|
|
4
|
+
exports.DELEGATION_TYPE_URL = 'type.googleapis.com/protocol.DelegateResourceContract';
|
|
5
|
+
exports.UNDELEGATION_TYPE_URL = 'type.googleapis.com/protocol.UnDelegateResourceContract';
|
|
6
|
+
exports.ACCOUNT_CREATE_TYPE_URL = 'type.googleapis.com/protocol.AccountCreateContract';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRyx1REFBdUQsQ0FBQztBQUM5RSxRQUFBLHFCQUFxQixHQUFHLHlEQUF5RCxDQUFDO0FBQ2xGLFFBQUEsdUJBQXVCLEdBQUcsb0RBQW9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgREVMRUdBVElPTl9UWVBFX1VSTCA9ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCc7XG5leHBvcnQgY29uc3QgVU5ERUxFR0FUSU9OX1RZUEVfVVJMID0gJ3R5cGUuZ29vZ2xlYXBpcy5jb20vcHJvdG9jb2wuVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QnO1xuZXhwb3J0IGNvbnN0IEFDQ09VTlRfQ1JFQVRFX1RZUEVfVVJMID0gJ3R5cGUuZ29vZ2xlYXBpcy5jb20vcHJvdG9jb2wuQWNjb3VudENyZWF0ZUNvbnRyYWN0JztcbiJdfQ==
|
|
@@ -3,17 +3,12 @@ import { BaseKey } from '@bitgo-beta/sdk-core';
|
|
|
3
3
|
import { TransactionBuilder } from './transactionBuilder';
|
|
4
4
|
import { Address } from './address';
|
|
5
5
|
import { Transaction } from './transaction';
|
|
6
|
-
import {
|
|
6
|
+
import { Fee, TransactionReceipt, TriggerSmartContract } from './iface';
|
|
7
7
|
export declare const MAX_FEE = 5000000000;
|
|
8
8
|
export declare class ContractCallBuilder extends TransactionBuilder {
|
|
9
9
|
protected _signingKeys: BaseKey[];
|
|
10
10
|
private _toContractAddress;
|
|
11
11
|
private _data;
|
|
12
|
-
private _ownerAddress;
|
|
13
|
-
private _refBlockBytes;
|
|
14
|
-
private _refBlockHash;
|
|
15
|
-
private _expiration;
|
|
16
|
-
private _timestamp;
|
|
17
12
|
private _fee;
|
|
18
13
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
19
14
|
/** @inheritdoc */
|
|
@@ -33,13 +28,6 @@ export declare class ContractCallBuilder extends TransactionBuilder {
|
|
|
33
28
|
* @param {TriggerSmartContract} contractCall object with transfer data
|
|
34
29
|
*/
|
|
35
30
|
protected initContractCall(contractCall: TriggerSmartContract): void;
|
|
36
|
-
/**
|
|
37
|
-
* Set the source address,
|
|
38
|
-
*
|
|
39
|
-
* @param {Address} address source account
|
|
40
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
41
|
-
*/
|
|
42
|
-
source(address: Address): this;
|
|
43
31
|
/**
|
|
44
32
|
* Set the address of the contract to be called,
|
|
45
33
|
*
|
|
@@ -54,29 +42,8 @@ export declare class ContractCallBuilder extends TransactionBuilder {
|
|
|
54
42
|
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
55
43
|
*/
|
|
56
44
|
data(data: string): this;
|
|
57
|
-
/**
|
|
58
|
-
* Set the block values,
|
|
59
|
-
*
|
|
60
|
-
* @param {Block} block the object containing number and hash of the block
|
|
61
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
62
|
-
*/
|
|
63
|
-
block(block: Block): this;
|
|
64
|
-
/**
|
|
65
|
-
* Set the expiration time for the transaction, set also timestamp if it was not set previously
|
|
66
|
-
*
|
|
67
|
-
* @param {number} time the expiration time in milliseconds
|
|
68
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
69
|
-
*/
|
|
70
|
-
expiration(time: number): this;
|
|
71
45
|
/** @inheritdoc */
|
|
72
46
|
extendValidTo(extensionMs: number): void;
|
|
73
|
-
/**
|
|
74
|
-
* Set the timestamp for the transaction
|
|
75
|
-
*
|
|
76
|
-
* @param {number} time the timestamp in milliseconds
|
|
77
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
78
|
-
*/
|
|
79
|
-
timestamp(time: number): this;
|
|
80
47
|
/**
|
|
81
48
|
* Set the fee limit for the transaction
|
|
82
49
|
*
|
|
@@ -91,6 +58,5 @@ export declare class ContractCallBuilder extends TransactionBuilder {
|
|
|
91
58
|
validateTransaction(transaction: Transaction): void;
|
|
92
59
|
/** @inheritdoc */
|
|
93
60
|
validateMandatoryFields(): void;
|
|
94
|
-
validateExpirationTime(value: number): void;
|
|
95
61
|
}
|
|
96
62
|
//# sourceMappingURL=contractCallBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractCallBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractCallBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EACL,OAAO,EAMR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"contractCallBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/contractCallBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EACL,OAAO,EAMR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAYxE,eAAO,MAAM,OAAO,aAAa,CAAC;AAElC,qBAAa,mBAAoB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;IAClC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAM;gBAEN,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAc3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAUvD;;;;;OAKG;IACH,WAAW,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAiB9D;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,GAAG,IAAI;IAapE;;;;;OAKG;IACH,EAAE,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI;IAMlC;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxB,kBAAkB;IAClB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBxC;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAYnB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,eAAe;IAOvB,kBAAkB;IAElB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAInD,kBAAkB;IAClB,uBAAuB;CAiBxB"}
|