@bitgo-beta/sdk-coin-trx 1.2.3-alpha.398 → 1.2.3-alpha.399
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 +6 -0
- package/package.json +7 -7
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -22
- package/dist/src/lib/address.d.ts +0 -11
- package/dist/src/lib/address.d.ts.map +0 -1
- package/dist/src/lib/address.js +0 -13
- package/dist/src/lib/builder.d.ts +0 -3
- package/dist/src/lib/builder.d.ts.map +0 -1
- package/dist/src/lib/builder.js +0 -10
- package/dist/src/lib/constants.d.ts +0 -3
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -6
- package/dist/src/lib/contractCallBuilder.d.ts +0 -62
- package/dist/src/lib/contractCallBuilder.d.ts.map +0 -1
- package/dist/src/lib/contractCallBuilder.js +0 -218
- package/dist/src/lib/delegateResourceTxBuilder.d.ts +0 -27
- package/dist/src/lib/delegateResourceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/delegateResourceTxBuilder.js +0 -98
- package/dist/src/lib/enum.d.ts +0 -58
- package/dist/src/lib/enum.d.ts.map +0 -1
- package/dist/src/lib/enum.js +0 -64
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts +0 -71
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/freezeBalanceTxBuilder.js +0 -211
- package/dist/src/lib/iface.d.ts +0 -321
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -3
- package/dist/src/lib/index.d.ts +0 -12
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -53
- package/dist/src/lib/keyPair.d.ts +0 -43
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -134
- package/dist/src/lib/resourceManagementTxBuilder.d.ts +0 -72
- package/dist/src/lib/resourceManagementTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/resourceManagementTxBuilder.js +0 -150
- package/dist/src/lib/tokenTransferBuilder.d.ts +0 -23
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/src/lib/tokenTransferBuilder.js +0 -42
- package/dist/src/lib/transaction.d.ts +0 -74
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -312
- package/dist/src/lib/transactionBuilder.d.ts +0 -110
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -304
- package/dist/src/lib/undelegateResourceTxBuilder.d.ts +0 -27
- package/dist/src/lib/undelegateResourceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/undelegateResourceTxBuilder.js +0 -98
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts +0 -65
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/unfreezeBalanceTxBuilder.js +0 -204
- package/dist/src/lib/utils.d.ts +0 -197
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -745
- package/dist/src/lib/voteWitnessTxBuilder.d.ts +0 -62
- package/dist/src/lib/voteWitnessTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/voteWitnessTxBuilder.js +0 -219
- package/dist/src/lib/withdrawBuilder.d.ts +0 -49
- package/dist/src/lib/withdrawBuilder.d.ts.map +0 -1
- package/dist/src/lib/withdrawBuilder.js +0 -167
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts +0 -49
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.js +0 -167
- package/dist/src/lib/wrappedBuilder.d.ts +0 -110
- package/dist/src/lib/wrappedBuilder.d.ts.map +0 -1
- package/dist/src/lib/wrappedBuilder.js +0 -192
- package/dist/src/register.d.ts +0 -3
- package/dist/src/register.d.ts.map +0 -1
- package/dist/src/register.js +0 -15
- package/dist/src/trx.d.ts +0 -262
- package/dist/src/trx.d.ts.map +0 -1
- package/dist/src/trx.js +0 -737
- package/dist/src/trxToken.d.ts +0 -38
- package/dist/src/trxToken.d.ts.map +0 -1
- package/dist/src/trxToken.js +0 -91
- package/dist/src/ttrx.d.ts +0 -13
- package/dist/src/ttrx.d.ts.map +0 -1
- package/dist/src/ttrx.js +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.6.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-trx@3.5.4...@bitgo/sdk-coin-trx@3.6.0) (2025-09-25)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- configure learn to skip git operations ([ee3a622](https://github.com/BitGo/BitGoJS/commit/ee3a6220496476aa7f4545b5f4a9a3bf97d9bdb9))
|
|
11
|
+
|
|
6
12
|
## [3.5.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-trx@3.5.3...@bitgo/sdk-coin-trx@3.5.4) (2025-09-03)
|
|
7
13
|
|
|
8
14
|
**Note:** Version bump only for package @bitgo/sdk-coin-trx
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-coin-trx",
|
|
3
|
-
"version": "1.2.3-alpha.
|
|
3
|
+
"version": "1.2.3-alpha.399",
|
|
4
4
|
"description": "BitGo SDK coin library for Tron",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
]
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@bitgo-beta/sdk-core": "2.4.1-alpha.
|
|
50
|
-
"@bitgo-beta/secp256k1": "1.0.1-alpha.
|
|
51
|
-
"@bitgo-beta/statics": "10.0.1-alpha.
|
|
49
|
+
"@bitgo-beta/sdk-core": "2.4.1-alpha.402",
|
|
50
|
+
"@bitgo-beta/secp256k1": "1.0.1-alpha.360",
|
|
51
|
+
"@bitgo-beta/statics": "10.0.1-alpha.402",
|
|
52
52
|
"@stablelib/hex": "^1.0.0",
|
|
53
53
|
"bignumber.js": "^9.0.0",
|
|
54
54
|
"ethers": "^5.7.2",
|
|
@@ -60,9 +60,9 @@
|
|
|
60
60
|
"tronweb": "5.1.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@bitgo-beta/sdk-api": "1.6.1-alpha.
|
|
64
|
-
"@bitgo-beta/sdk-test": "
|
|
63
|
+
"@bitgo-beta/sdk-api": "1.6.1-alpha.402",
|
|
64
|
+
"@bitgo-beta/sdk-test": "^9.1.0",
|
|
65
65
|
"shx": "^0.3.4"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "c7380a4d991afeab7fb19c4e4c654e73d6fb466b"
|
|
68
68
|
}
|
package/dist/src/index.d.ts
DELETED
package/dist/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/dist/src/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./lib"), exports);
|
|
18
|
-
__exportStar(require("./trx"), exports);
|
|
19
|
-
__exportStar(require("./ttrx"), exports);
|
|
20
|
-
__exportStar(require("./trxToken"), exports);
|
|
21
|
-
__exportStar(require("./register"), exports);
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQjtBQUN0Qix3Q0FBc0I7QUFDdEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL3RyeCc7XG5leHBvcnQgKiBmcm9tICcuL3R0cngnO1xuZXhwb3J0ICogZnJvbSAnLi90cnhUb2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { BaseAddress } from '@bitgo-beta/sdk-core';
|
|
2
|
-
/**
|
|
3
|
-
* Addresses can be encoded in three varieties:
|
|
4
|
-
* 1) ByteArray - this is a UIntArray8. Typically used for signing.
|
|
5
|
-
* 2) Hex - hex encoded string
|
|
6
|
-
* 3) Base58 - base58 encoded string. Typically used for display.
|
|
7
|
-
*/
|
|
8
|
-
export declare class Address implements BaseAddress {
|
|
9
|
-
address: string;
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=address.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/lib/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;GAKG;AACH,qBAAa,OAAQ,YAAW,WAAW;IAEzC,OAAO,EAAE,MAAM,CAAC;CACjB"}
|
package/dist/src/lib/address.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Address = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Addresses can be encoded in three varieties:
|
|
6
|
-
* 1) ByteArray - this is a UIntArray8. Typically used for signing.
|
|
7
|
-
* 2) Hex - hex encoded string
|
|
8
|
-
* 3) Base58 - base58 encoded string. Typically used for display.
|
|
9
|
-
*/
|
|
10
|
-
class Address {
|
|
11
|
-
}
|
|
12
|
-
exports.Address = Address;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7R0FLRztBQUNILE1BQWEsT0FBTztDQUduQjtBQUhELDBCQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUFkZHJlc3MgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbi8qKlxuICogQWRkcmVzc2VzIGNhbiBiZSBlbmNvZGVkIGluIHRocmVlIHZhcmlldGllczpcbiAqIDEpIEJ5dGVBcnJheSAtIHRoaXMgaXMgYSBVSW50QXJyYXk4LiBUeXBpY2FsbHkgdXNlZCBmb3Igc2lnbmluZy5cbiAqIDIpIEhleCAtIGhleCBlbmNvZGVkIHN0cmluZ1xuICogMykgQmFzZTU4IC0gYmFzZTU4IGVuY29kZWQgc3RyaW5nLiBUeXBpY2FsbHkgdXNlZCBmb3IgZGlzcGxheS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFkZHJlc3MgaW1wbGVtZW50cyBCYXNlQWRkcmVzcyB7XG4gIC8vIHRoZSBiYXNlNTggcmVwcmVzZW50YXRpb25cbiAgYWRkcmVzczogc3RyaW5nO1xufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/lib/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAInD,eAAO,MAAM,UAAU,aAAc,MAAM,KAAG,WAE7C,CAAC"}
|
package/dist/src/lib/builder.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBuilder = void 0;
|
|
4
|
-
const statics_1 = require("@bitgo-beta/statics");
|
|
5
|
-
const wrappedBuilder_1 = require("./wrappedBuilder");
|
|
6
|
-
const getBuilder = (coinName) => {
|
|
7
|
-
return new wrappedBuilder_1.WrappedBuilder(statics_1.coins.get(coinName));
|
|
8
|
-
};
|
|
9
|
-
exports.getBuilder = getBuilder;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBNEM7QUFDNUMscURBQWtEO0FBRTNDLE1BQU0sVUFBVSxHQUFHLENBQUMsUUFBZ0IsRUFBZSxFQUFFO0lBQzFELE9BQU8sSUFBSSwrQkFBYyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFGVyxRQUFBLFVBQVUsY0FFckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBXcmFwcGVkQnVpbGRlciB9IGZyb20gJy4vd3JhcHBlZEJ1aWxkZXInO1xuXG5leHBvcnQgY29uc3QgZ2V0QnVpbGRlciA9IChjb2luTmFtZTogc3RyaW5nKTogQmFzZUJ1aWxkZXIgPT4ge1xuICByZXR1cm4gbmV3IFdyYXBwZWRCdWlsZGVyKGNvaW5zLmdldChjb2luTmFtZSkpO1xufTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
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
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRyx1REFBdUQsQ0FBQztBQUM5RSxRQUFBLHFCQUFxQixHQUFHLHlEQUF5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFTEVHQVRJT05fVFlQRV9VUkwgPSAndHlwZS5nb29nbGVhcGlzLmNvbS9wcm90b2NvbC5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3QnO1xuZXhwb3J0IGNvbnN0IFVOREVMRUdBVElPTl9UWVBFX1VSTCA9ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLlVuRGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0JztcbiJdfQ==
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
-
import { BaseKey } from '@bitgo-beta/sdk-core';
|
|
3
|
-
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
-
import { Address } from './address';
|
|
5
|
-
import { Transaction } from './transaction';
|
|
6
|
-
import { Fee, TransactionReceipt, TriggerSmartContract } from './iface';
|
|
7
|
-
export declare const MAX_FEE = 5000000000;
|
|
8
|
-
export declare class ContractCallBuilder extends TransactionBuilder {
|
|
9
|
-
protected _signingKeys: BaseKey[];
|
|
10
|
-
private _toContractAddress;
|
|
11
|
-
private _data;
|
|
12
|
-
private _fee;
|
|
13
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
14
|
-
/** @inheritdoc */
|
|
15
|
-
protected buildImplementation(): Promise<Transaction>;
|
|
16
|
-
/** @inheritdoc */
|
|
17
|
-
protected signImplementation(key: BaseKey): Transaction;
|
|
18
|
-
/**
|
|
19
|
-
* Initialize the transaction builder fields using the transaction data
|
|
20
|
-
*
|
|
21
|
-
* @param {any} rawTransaction the transaction data in a string or JSON format
|
|
22
|
-
* @returns {ContractCallBuilder} the builder with the transaction data set
|
|
23
|
-
*/
|
|
24
|
-
initBuilder(rawTransaction: TransactionReceipt | string): this;
|
|
25
|
-
/**
|
|
26
|
-
* Initialize the contract call specific data
|
|
27
|
-
*
|
|
28
|
-
* @param {TriggerSmartContract} contractCall object with transfer data
|
|
29
|
-
*/
|
|
30
|
-
protected initContractCall(contractCall: TriggerSmartContract): void;
|
|
31
|
-
/**
|
|
32
|
-
* Set the address of the contract to be called,
|
|
33
|
-
*
|
|
34
|
-
* @param {Address} contractAddress the contract address
|
|
35
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
36
|
-
*/
|
|
37
|
-
to(contractAddress: Address): this;
|
|
38
|
-
/**
|
|
39
|
-
* Set the data with the method call and parameters
|
|
40
|
-
*
|
|
41
|
-
* @param {string} data data encoded on hexa
|
|
42
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
43
|
-
*/
|
|
44
|
-
data(data: string): this;
|
|
45
|
-
/** @inheritdoc */
|
|
46
|
-
extendValidTo(extensionMs: number): void;
|
|
47
|
-
/**
|
|
48
|
-
* Set the fee limit for the transaction
|
|
49
|
-
*
|
|
50
|
-
* @param {Fee} fee the fee limit for the transaction
|
|
51
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
52
|
-
*/
|
|
53
|
-
fee(fee: Fee): this;
|
|
54
|
-
private createTransaction;
|
|
55
|
-
private getRawDataHex;
|
|
56
|
-
private applySignatures;
|
|
57
|
-
/** @inheritdoc */
|
|
58
|
-
validateTransaction(transaction: Transaction): void;
|
|
59
|
-
/** @inheritdoc */
|
|
60
|
-
validateMandatoryFields(): void;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=contractCallBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ContractCallBuilder = exports.MAX_FEE = void 0;
|
|
7
|
-
const crypto_1 = require("crypto");
|
|
8
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
-
const tron_1 = require("../../resources/protobuf/tron");
|
|
10
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
11
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
12
|
-
const transaction_1 = require("./transaction");
|
|
13
|
-
const utils_1 = require("./utils");
|
|
14
|
-
var ContractType = tron_1.protocol.Transaction.Contract.ContractType;
|
|
15
|
-
exports.MAX_FEE = 5000000000; // 5e9 = 5000 TRX acording https://developers.tron.network/docs/setting-a-fee-limit-on-deployexecution
|
|
16
|
-
class ContractCallBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
17
|
-
constructor(_coinConfig) {
|
|
18
|
-
super(_coinConfig);
|
|
19
|
-
this._signingKeys = [];
|
|
20
|
-
this.transaction = new transaction_1.Transaction(_coinConfig);
|
|
21
|
-
}
|
|
22
|
-
/** @inheritdoc */
|
|
23
|
-
async buildImplementation() {
|
|
24
|
-
this.createTransaction();
|
|
25
|
-
/** @inheritdoc */
|
|
26
|
-
// This method must be extended on child classes
|
|
27
|
-
if (this._signingKeys.length > 0) {
|
|
28
|
-
this.applySignatures();
|
|
29
|
-
}
|
|
30
|
-
if (!this.transaction.id) {
|
|
31
|
-
throw new sdk_core_1.BuildTransactionError('A valid transaction must have an id');
|
|
32
|
-
}
|
|
33
|
-
return Promise.resolve(this.transaction);
|
|
34
|
-
}
|
|
35
|
-
/** @inheritdoc */
|
|
36
|
-
signImplementation(key) {
|
|
37
|
-
if (this._signingKeys.some((signingKey) => signingKey.key === key.key)) {
|
|
38
|
-
throw new sdk_core_1.SigningError('Duplicated key');
|
|
39
|
-
}
|
|
40
|
-
this._signingKeys.push(key);
|
|
41
|
-
// We keep this return for compatibility but is not meant to be use
|
|
42
|
-
return this.transaction;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Initialize the transaction builder fields using the transaction data
|
|
46
|
-
*
|
|
47
|
-
* @param {any} rawTransaction the transaction data in a string or JSON format
|
|
48
|
-
* @returns {ContractCallBuilder} the builder with the transaction data set
|
|
49
|
-
*/
|
|
50
|
-
initBuilder(rawTransaction) {
|
|
51
|
-
this.validateRawTransaction(rawTransaction);
|
|
52
|
-
const tx = this.fromImplementation(rawTransaction);
|
|
53
|
-
this.transaction = tx;
|
|
54
|
-
this._signingKeys = [];
|
|
55
|
-
const rawData = tx.toJson().raw_data;
|
|
56
|
-
this._refBlockBytes = rawData.ref_block_bytes;
|
|
57
|
-
this._refBlockHash = rawData.ref_block_hash;
|
|
58
|
-
this._expiration = rawData.expiration;
|
|
59
|
-
this._timestamp = rawData.timestamp;
|
|
60
|
-
this._fee = { feeLimit: rawData.fee_limit.toString() };
|
|
61
|
-
this.transaction.setTransactionType(sdk_core_1.TransactionType.ContractCall);
|
|
62
|
-
const contractCall = rawData.contract[0];
|
|
63
|
-
this.initContractCall(contractCall);
|
|
64
|
-
return this;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Initialize the contract call specific data
|
|
68
|
-
*
|
|
69
|
-
* @param {TriggerSmartContract} contractCall object with transfer data
|
|
70
|
-
*/
|
|
71
|
-
initContractCall(contractCall) {
|
|
72
|
-
const { data, owner_address, contract_address } = contractCall.parameter.value;
|
|
73
|
-
if (data) {
|
|
74
|
-
this.data(data);
|
|
75
|
-
}
|
|
76
|
-
if (contract_address) {
|
|
77
|
-
this.to({ address: (0, utils_1.getBase58AddressFromHex)(contract_address) });
|
|
78
|
-
}
|
|
79
|
-
if (owner_address) {
|
|
80
|
-
this.source({ address: (0, utils_1.getBase58AddressFromHex)(owner_address) });
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Set the address of the contract to be called,
|
|
85
|
-
*
|
|
86
|
-
* @param {Address} contractAddress the contract address
|
|
87
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
88
|
-
*/
|
|
89
|
-
to(contractAddress) {
|
|
90
|
-
this.validateAddress(contractAddress);
|
|
91
|
-
this._toContractAddress = (0, utils_1.getHexAddressFromBase58Address)(contractAddress.address);
|
|
92
|
-
return this;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Set the data with the method call and parameters
|
|
96
|
-
*
|
|
97
|
-
* @param {string} data data encoded on hexa
|
|
98
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
99
|
-
*/
|
|
100
|
-
data(data) {
|
|
101
|
-
if (!(0, utils_1.isValidHex)(data)) {
|
|
102
|
-
throw new sdk_core_1.InvalidParameterValueError(data + ' is not a valid hex string.');
|
|
103
|
-
}
|
|
104
|
-
this._data = data;
|
|
105
|
-
return this;
|
|
106
|
-
}
|
|
107
|
-
/** @inheritdoc */
|
|
108
|
-
extendValidTo(extensionMs) {
|
|
109
|
-
if (this.transaction.signature && this.transaction.signature.length > 0) {
|
|
110
|
-
throw new sdk_core_1.ExtendTransactionError('Cannot extend a signed transaction');
|
|
111
|
-
}
|
|
112
|
-
if (extensionMs <= 0) {
|
|
113
|
-
throw new Error('Value cannot be below zero');
|
|
114
|
-
}
|
|
115
|
-
if (extensionMs > utils_1.TRANSACTION_MAX_EXPIRATION) {
|
|
116
|
-
throw new sdk_core_1.ExtendTransactionError('The expiration cannot be extended more than one year');
|
|
117
|
-
}
|
|
118
|
-
if (this._expiration) {
|
|
119
|
-
this._expiration = this._expiration + extensionMs;
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
throw new Error('There is not expiration to extend');
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Set the fee limit for the transaction
|
|
127
|
-
*
|
|
128
|
-
* @param {Fee} fee the fee limit for the transaction
|
|
129
|
-
* @returns {ContractCallBuilder} the builder with the new parameter set
|
|
130
|
-
*/
|
|
131
|
-
fee(fee) {
|
|
132
|
-
const feeLimit = new bignumber_js_1.default(fee.feeLimit);
|
|
133
|
-
const tronNetwork = this._coinConfig.network;
|
|
134
|
-
if (feeLimit.isNaN() || feeLimit.isLessThan(0) || feeLimit.isGreaterThan(tronNetwork.maxFeeLimit)) {
|
|
135
|
-
throw new sdk_core_1.InvalidParameterValueError('Invalid fee limit value');
|
|
136
|
-
}
|
|
137
|
-
this._fee = fee;
|
|
138
|
-
return this;
|
|
139
|
-
}
|
|
140
|
-
// endregion
|
|
141
|
-
createTransaction() {
|
|
142
|
-
const rawDataHex = this.getRawDataHex();
|
|
143
|
-
const rawData = (0, utils_1.decodeTransaction)(rawDataHex);
|
|
144
|
-
const contract = rawData.contract[0];
|
|
145
|
-
const contractParameter = contract.parameter;
|
|
146
|
-
contractParameter.value.contract_address = this._toContractAddress.toLocaleLowerCase();
|
|
147
|
-
contractParameter.value.owner_address = this._ownerAddress.toLocaleLowerCase();
|
|
148
|
-
contractParameter.value.data = this._data.toLocaleLowerCase();
|
|
149
|
-
contractParameter.type_url = 'type.googleapis.com/protocol.TriggerSmartContract';
|
|
150
|
-
contract.type = 'TriggerSmartContract';
|
|
151
|
-
const hexBuffer = Buffer.from(rawDataHex, 'hex');
|
|
152
|
-
const id = (0, crypto_1.createHash)('sha256').update(hexBuffer).digest('hex');
|
|
153
|
-
const txRecip = {
|
|
154
|
-
raw_data: rawData,
|
|
155
|
-
raw_data_hex: rawDataHex,
|
|
156
|
-
txID: id,
|
|
157
|
-
signature: this.transaction.signature,
|
|
158
|
-
};
|
|
159
|
-
this.transaction = new transaction_1.Transaction(this._coinConfig, txRecip);
|
|
160
|
-
}
|
|
161
|
-
getRawDataHex() {
|
|
162
|
-
const rawContract = {
|
|
163
|
-
ownerAddress: (0, utils_1.getByteArrayFromHexAddress)(this._ownerAddress),
|
|
164
|
-
contractAddress: (0, utils_1.getByteArrayFromHexAddress)(this._toContractAddress),
|
|
165
|
-
data: (0, utils_1.getByteArrayFromHexAddress)(this._data),
|
|
166
|
-
};
|
|
167
|
-
const contractCall = tron_1.protocol.TriggerSmartContract.fromObject(rawContract);
|
|
168
|
-
const contractBytes = tron_1.protocol.TriggerSmartContract.encode(contractCall).finish();
|
|
169
|
-
const txContract = {
|
|
170
|
-
type: ContractType.TriggerSmartContract,
|
|
171
|
-
parameter: {
|
|
172
|
-
value: contractBytes,
|
|
173
|
-
type_url: 'type.googleapis.com/protocol.TriggerSmartContract',
|
|
174
|
-
},
|
|
175
|
-
};
|
|
176
|
-
const raw = {
|
|
177
|
-
refBlockBytes: Buffer.from(this._refBlockBytes, 'hex'),
|
|
178
|
-
refBlockHash: Buffer.from(this._refBlockHash, 'hex'),
|
|
179
|
-
expiration: this._expiration || Date.now() + utils_1.TRANSACTION_DEFAULT_EXPIRATION,
|
|
180
|
-
timestamp: this._timestamp || Date.now(),
|
|
181
|
-
contract: [txContract],
|
|
182
|
-
feeLimit: parseInt(this._fee.feeLimit, 10),
|
|
183
|
-
};
|
|
184
|
-
const rawTx = tron_1.protocol.Transaction.raw.create(raw);
|
|
185
|
-
return Buffer.from(tron_1.protocol.Transaction.raw.encode(rawTx).finish()).toString('hex');
|
|
186
|
-
}
|
|
187
|
-
applySignatures() {
|
|
188
|
-
if (!this.transaction.inputs) {
|
|
189
|
-
throw new sdk_core_1.SigningError('Transaction has no inputs');
|
|
190
|
-
}
|
|
191
|
-
this._signingKeys.forEach((key) => this.applySignature(key));
|
|
192
|
-
}
|
|
193
|
-
/** @inheritdoc */
|
|
194
|
-
// Specifically, checks hex underlying transaction hashes to correct transaction ID.
|
|
195
|
-
validateTransaction(transaction) {
|
|
196
|
-
this.validateMandatoryFields();
|
|
197
|
-
}
|
|
198
|
-
/** @inheritdoc */
|
|
199
|
-
validateMandatoryFields() {
|
|
200
|
-
if (!this._data) {
|
|
201
|
-
throw new sdk_core_1.BuildTransactionError('Missing parameter: data');
|
|
202
|
-
}
|
|
203
|
-
if (!this._ownerAddress) {
|
|
204
|
-
throw new sdk_core_1.BuildTransactionError('Missing parameter: source');
|
|
205
|
-
}
|
|
206
|
-
if (!this._toContractAddress) {
|
|
207
|
-
throw new sdk_core_1.BuildTransactionError('Missing parameter: contract address');
|
|
208
|
-
}
|
|
209
|
-
if (!this._refBlockBytes || !this._refBlockHash) {
|
|
210
|
-
throw new sdk_core_1.BuildTransactionError('Missing block reference information');
|
|
211
|
-
}
|
|
212
|
-
if (!this._fee) {
|
|
213
|
-
throw new sdk_core_1.BuildTransactionError('Missing fee');
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
exports.ContractCallBuilder = ContractCallBuilder;
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RDYWxsQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RDYWxsQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBb0M7QUFFcEMsZ0VBQXFDO0FBQ3JDLHdEQUF5RDtBQUN6RCxtREFPOEI7QUFDOUIsNkRBQTBEO0FBRTFELCtDQUE0QztBQUU1QyxtQ0FRaUI7QUFFakIsSUFBTyxZQUFZLEdBQUcsZUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQ3BELFFBQUEsT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLHNHQUFzRztBQUV6SSxNQUFhLG1CQUFvQixTQUFRLHVDQUFrQjtJQU16RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixrQkFBa0I7UUFDbEIsZ0RBQWdEO1FBQ2hELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksZ0NBQXFCLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Is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QUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksZ0NBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7Q0FDRjtBQS9ORCxrREErTkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcsIFRyb25OZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBwcm90b2NvbCB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9wcm90b2J1Zi90cm9uJztcbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcixcbiAgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi9hZGRyZXNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBGZWUsIFRyYW5zYWN0aW9uUmVjZWlwdCwgVHJpZ2dlclNtYXJ0Q29udHJhY3QgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7XG4gIGRlY29kZVRyYW5zYWN0aW9uLFxuICBnZXRCYXNlNThBZGRyZXNzRnJvbUhleCxcbiAgZ2V0Qnl0ZUFycmF5RnJvbUhleEFkZHJlc3MsXG4gIGdldEhleEFkZHJlc3NGcm9tQmFzZTU4QWRkcmVzcyxcbiAgaXNWYWxpZEhleCxcbiAgVFJBTlNBQ1RJT05fTUFYX0VYUElSQVRJT04sXG4gIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbn0gZnJvbSAnLi91dGlscyc7XG5cbmltcG9ydCBDb250cmFjdFR5cGUgPSBwcm90b2NvbC5UcmFuc2FjdGlvbi5Db250cmFjdC5Db250cmFjdFR5cGU7XG5leHBvcnQgY29uc3QgTUFYX0ZFRSA9IDUwMDAwMDAwMDA7IC8vIDVlOSA9IDUwMDAgVFJYIGFjb3JkaW5nIGh0dHBzOi8vZGV2ZWxvcGVycy50cm9uLm5ldHdvcmsvZG9jcy9zZXR0aW5nLWEtZmVlLWxpbWl0LW9uLWRlcGxveWV4ZWN1dGlvblxuXG5leHBvcnQgY2xhc3MgQ29udHJhY3RDYWxsQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc2lnbmluZ0tleXM6IEJhc2VLZXlbXTtcbiAgcHJpdmF0ZSBfdG9Db250cmFjdEFkZHJlc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfZGF0YTogc3RyaW5nO1xuICBwcml2YXRlIF9mZWU6IEZlZTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fc2lnbmluZ0tleXMgPSBbXTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5jcmVhdGVUcmFuc2FjdGlvbigpO1xuICAgIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAgIC8vIFRoaXMgbWV0aG9kIG11c3QgYmUgZXh0ZW5kZWQgb24gY2hpbGQgY2xhc3Nlc1xuICAgIGlmICh0aGlzLl9zaWduaW5nS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFwcGx5U2lnbmF0dXJlcygpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5pZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignQSB2YWxpZCB0cmFuc2FjdGlvbiBtdXN0IGhhdmUgYW4gaWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICBpZiAodGhpcy5fc2lnbmluZ0tleXMuc29tZSgoc2lnbmluZ0tleSkgPT4gc2lnbmluZ0tleS5rZXkgPT09IGtleS5rZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdEdXBsaWNhdGVkIGtleScpO1xuICAgIH1cbiAgICB0aGlzLl9zaWduaW5nS2V5cy5wdXNoKGtleSk7XG5cbiAgICAvLyBXZSBrZWVwIHRoaXMgcmV0dXJuIGZvciBjb21wYXRpYmlsaXR5IGJ1dCBpcyBub3QgbWVhbnQgdG8gYmUgdXNlXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHJhd1RyYW5zYWN0aW9uIHRoZSB0cmFuc2FjdGlvbiBkYXRhIGluIGEgc3RyaW5nIG9yIEpTT04gZm9ybWF0XG4gICAqIEByZXR1cm5zIHtDb250cmFjdENhbGxCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSB0cmFuc2FjdGlvbiBkYXRhIHNldFxuICAgKi9cbiAgaW5pdEJ1aWxkZXIocmF3VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgdHggPSB0aGlzLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX3NpZ25pbmdLZXlzID0gW107XG4gICAgY29uc3QgcmF3RGF0YSA9IHR4LnRvSnNvbigpLnJhd19kYXRhO1xuICAgIHRoaXMuX3JlZkJsb2NrQnl0ZXMgPSByYXdEYXRhLnJlZl9ibG9ja19ieXRlcztcbiAgICB0aGlzLl9yZWZCbG9ja0hhc2ggPSByYXdEYXRhLnJlZl9ibG9ja19oYXNoO1xuICAgIHRoaXMuX2V4cGlyYXRpb24gPSByYXdEYXRhLmV4cGlyYXRpb247XG4gICAgdGhpcy5fdGltZXN0YW1wID0gcmF3RGF0YS50aW1lc3RhbXA7XG4gICAgdGhpcy5fZmVlID0geyBmZWVMaW1pdDogcmF3RGF0YS5mZWVfbGltaXQhLnRvU3RyaW5nKCkgfTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKTtcbiAgICBjb25zdCBjb250cmFjdENhbGwgPSByYXdEYXRhLmNvbnRyYWN0WzBdIGFzIFRyaWdnZXJTbWFydENvbnRyYWN0O1xuICAgIHRoaXMuaW5pdENvbnRyYWN0Q2FsbChjb250cmFjdENhbGwpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGNvbnRyYWN0IGNhbGwgc3BlY2lmaWMgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyaWdnZXJTbWFydENvbnRyYWN0fSBjb250cmFjdENhbGwgb2JqZWN0IHdpdGggdHJhbnNmZXIgZGF0YVxuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRDb250cmFjdENhbGwoY29udHJhY3RDYWxsOiBUcmlnZ2VyU21hcnRDb250cmFjdCk6IHZvaWQge1xuICAgIGNvbnN0IHsgZGF0YSwgb3duZXJfYWRkcmVzcywgY29udHJhY3RfYWRkcmVzcyB9ID0gY29udHJhY3RDYWxsLnBhcmFtZXRlci52YWx1ZTtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5kYXRhKGRhdGEpO1xuICAgIH1cbiAgICBpZiAoY29udHJhY3RfYWRkcmVzcykge1xuICAgICAgdGhpcy50byh7IGFkZHJlc3M6IGdldEJhc2U1OEFkZHJlc3NGcm9tSGV4KGNvbnRyYWN0X2FkZHJlc3MpIH0pO1xuICAgIH1cbiAgICBpZiAob3duZXJfYWRkcmVzcykge1xuICAgICAgdGhpcy5zb3VyY2UoeyBhZGRyZXNzOiBnZXRCYXNlNThBZGRyZXNzRnJvbUhleChvd25lcl9hZGRyZXNzKSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byBiZSBjYWxsZWQsXG4gICAqXG4gICAqIEBwYXJhbSB7QWRkcmVzc30gY29udHJhY3RBZGRyZXNzIHRoZSBjb250cmFjdCBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtDb250cmFjdENhbGxCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgdG8oY29udHJhY3RBZGRyZXNzOiBBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoY29udHJhY3RBZGRyZXNzKTtcbiAgICB0aGlzLl90b0NvbnRyYWN0QWRkcmVzcyA9IGdldEhleEFkZHJlc3NGcm9tQmFzZTU4QWRkcmVzcyhjb250cmFjdEFkZHJlc3MuYWRkcmVzcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkYXRhIHdpdGggdGhlIG1ldGhvZCBjYWxsIGFuZCBwYXJhbWV0ZXJzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhIGRhdGEgZW5jb2RlZCBvbiBoZXhhXG4gICAqIEByZXR1cm5zIHtDb250cmFjdENhbGxCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgZGF0YShkYXRhOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRIZXgoZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcihkYXRhICsgJyBpcyBub3QgYSB2YWxpZCBoZXggc3RyaW5nLicpO1xuICAgIH1cbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBleHRlbmRWYWxpZFRvKGV4dGVuc2lvbk1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmUgJiYgdGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEV4dGVuZFRyYW5zYWN0aW9uRXJyb3IoJ0Nhbm5vdCBleHRlbmQgYSBzaWduZWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAoZXh0ZW5zaW9uTXMgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgYmVsb3cgemVybycpO1xuICAgIH1cblxuICAgIGlmIChleHRlbnNpb25NcyA+IFRSQU5TQUNUSU9OX01BWF9FWFBJUkFUSU9OKSB7XG4gICAgICB0aHJvdyBuZXcgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcignVGhlIGV4cGlyYXRpb24gY2Fubm90IGJlIGV4dGVuZGVkIG1vcmUgdGhhbiBvbmUgeWVhcicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9leHBpcmF0aW9uKSB7XG4gICAgICB0aGlzLl9leHBpcmF0aW9uID0gdGhpcy5fZXhwaXJhdGlvbiArIGV4dGVuc2lvbk1zO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGlzIG5vdCBleHBpcmF0aW9uIHRvIGV4dGVuZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGZlZSBsaW1pdCBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7RmVlfSBmZWUgdGhlIGZlZSBsaW1pdCBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtDb250cmFjdENhbGxCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSBuZXcgcGFyYW1ldGVyIHNldFxuICAgKi9cbiAgZmVlKGZlZTogRmVlKTogdGhpcyB7XG4gICAgY29uc3QgZmVlTGltaXQgPSBuZXcgQmlnTnVtYmVyKGZlZS5mZWVMaW1pdCk7XG4gICAgY29uc3QgdHJvbk5ldHdvcmsgPSB0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsgYXMgVHJvbk5ldHdvcms7XG4gICAgaWYgKGZlZUxpbWl0LmlzTmFOKCkgfHwgZmVlTGltaXQuaXNMZXNzVGhhbigwKSB8fCBmZWVMaW1pdC5pc0dyZWF0ZXJUaGFuKHRyb25OZXR3b3JrLm1heEZlZUxpbWl0KSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGZlZSBsaW1pdCB2YWx1ZScpO1xuICAgIH1cbiAgICB0aGlzLl9mZWUgPSBmZWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBlbmRyZWdpb25cblxuICBwcml2YXRlIGNyZWF0ZVRyYW5zYWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHJhd0RhdGFIZXggPSB0aGlzLmdldFJhd0RhdGFIZXgoKTtcbiAgICBjb25zdCByYXdEYXRhID0gZGVjb2RlVHJhbnNhY3Rpb24ocmF3RGF0YUhleCk7XG4gICAgY29uc3QgY29udHJhY3QgPSByYXdEYXRhLmNvbnRyYWN0WzBdIGFzIFRyaWdnZXJTbWFydENvbnRyYWN0O1xuICAgIGNvbnN0IGNvbnRyYWN0UGFyYW1ldGVyID0gY29udHJhY3QucGFyYW1ldGVyO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLmNvbnRyYWN0X2FkZHJlc3MgPSB0aGlzLl90b0NvbnRyYWN0QWRkcmVzcy50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLm93bmVyX2FkZHJlc3MgPSB0aGlzLl9vd25lckFkZHJlc3MudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBjb250cmFjdFBhcmFtZXRlci52YWx1ZS5kYXRhID0gdGhpcy5fZGF0YS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnR5cGVfdXJsID0gJ3R5cGUuZ29vZ2xlYXBpcy5jb20vcHJvdG9jb2wuVHJpZ2dlclNtYXJ0Q29udHJhY3QnO1xuICAgIGNvbnRyYWN0LnR5cGUgPSAnVHJpZ2dlclNtYXJ0Q29udHJhY3QnO1xuICAgIGNvbnN0IGhleEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHJhd0RhdGFIZXgsICdoZXgnKTtcbiAgICBjb25zdCBpZCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShoZXhCdWZmZXIpLmRpZ2VzdCgnaGV4Jyk7XG4gICAgY29uc3QgdHhSZWNpcDogVHJhbnNhY3Rpb25SZWNlaXB0ID0ge1xuICAgICAgcmF3X2RhdGE6IHJhd0RhdGEsXG4gICAgICByYXdfZGF0YV9oZXg6IHJhd0RhdGFIZXgsXG4gICAgICB0eElEOiBpZCxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmUsXG4gICAgfTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcsIHR4UmVjaXApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSYXdEYXRhSGV4KCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF3Q29udHJhY3QgPSB7XG4gICAgICBvd25lckFkZHJlc3M6IGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzKHRoaXMuX293bmVyQWRkcmVzcyksXG4gICAgICBjb250cmFjdEFkZHJlc3M6IGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzKHRoaXMuX3RvQ29udHJhY3RBZGRyZXNzKSxcbiAgICAgIGRhdGE6IGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzKHRoaXMuX2RhdGEpLFxuICAgIH07XG4gICAgY29uc3QgY29udHJhY3RDYWxsID0gcHJvdG9jb2wuVHJpZ2dlclNtYXJ0Q29udHJhY3QuZnJvbU9iamVjdChyYXdDb250cmFjdCk7XG4gICAgY29uc3QgY29udHJhY3RCeXRlcyA9IHByb3RvY29sLlRyaWdnZXJTbWFydENvbnRyYWN0LmVuY29kZShjb250cmFjdENhbGwpLmZpbmlzaCgpO1xuICAgIGNvbnN0IHR4Q29udHJhY3QgPSB7XG4gICAgICB0eXBlOiBDb250cmFjdFR5cGUuVHJpZ2dlclNtYXJ0Q29udHJhY3QsXG4gICAgICBwYXJhbWV0ZXI6IHtcbiAgICAgICAgdmFsdWU6IGNvbnRyYWN0Qnl0ZXMsXG4gICAgICAgIHR5cGVfdXJsOiAndHlwZS5nb29nbGVhcGlzLmNvbS9wcm90b2NvbC5UcmlnZ2VyU21hcnRDb250cmFjdCcsXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcmF3ID0ge1xuICAgICAgcmVmQmxvY2tCeXRlczogQnVmZmVyLmZyb20odGhpcy5fcmVmQmxvY2tCeXRlcywgJ2hleCcpLFxuICAgICAgcmVmQmxvY2tIYXNoOiBCdWZmZXIuZnJvbSh0aGlzLl9yZWZCbG9ja0hhc2gsICdoZXgnKSxcbiAgICAgIGV4cGlyYXRpb246IHRoaXMuX2V4cGlyYXRpb24gfHwgRGF0ZS5ub3coKSArIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbiAgICAgIHRpbWVzdGFtcDogdGhpcy5fdGltZXN0YW1wIHx8IERhdGUubm93KCksXG4gICAgICBjb250cmFjdDogW3R4Q29udHJhY3RdLFxuICAgICAgZmVlTGltaXQ6IHBhcnNlSW50KHRoaXMuX2ZlZS5mZWVMaW1pdCwgMTApLFxuICAgIH07XG4gICAgY29uc3QgcmF3VHggPSBwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuY3JlYXRlKHJhdyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHByb3RvY29sLlRyYW5zYWN0aW9uLnJhdy5lbmNvZGUocmF3VHgpLmZpbmlzaCgpKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2lnbmF0dXJlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb24uaW5wdXRzKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdUcmFuc2FjdGlvbiBoYXMgbm8gaW5wdXRzJyk7XG4gICAgfVxuICAgIHRoaXMuX3NpZ25pbmdLZXlzLmZvckVhY2goKGtleSkgPT4gdGhpcy5hcHBseVNpZ25hdHVyZShrZXkpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAvLyBTcGVjaWZpY2FsbHksIGNoZWNrcyBoZXggdW5kZXJseWluZyB0cmFuc2FjdGlvbiBoYXNoZXMgdG8gY29ycmVjdCB0cmFuc2FjdGlvbiBJRC5cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlTWFuZGF0b3J5RmllbGRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVNYW5kYXRvcnlGaWVsZHMoKSB7XG4gICAgaWYgKCF0aGlzLl9kYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIHBhcmFtZXRlcjogZGF0YScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX293bmVyQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IHNvdXJjZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3RvQ29udHJhY3RBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIHBhcmFtZXRlcjogY29udHJhY3QgYWRkcmVzcycpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3JlZkJsb2NrQnl0ZXMgfHwgIXRoaXMuX3JlZkJsb2NrSGFzaCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBibG9jayByZWZlcmVuY2UgaW5mb3JtYXRpb24nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9mZWUpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgZmVlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
-
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
-
import { TransactionReceipt } from './iface';
|
|
4
|
-
import { ResourceManagementTxBuilder } from './resourceManagementTxBuilder';
|
|
5
|
-
export declare class DelegateResourceTxBuilder extends ResourceManagementTxBuilder {
|
|
6
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
7
|
-
/** @inheritdoc */
|
|
8
|
-
protected get transactionType(): TransactionType;
|
|
9
|
-
/**
|
|
10
|
-
* Initialize the transaction builder fields using the transaction data
|
|
11
|
-
*
|
|
12
|
-
* @param {TransactionReceipt | string} rawTransaction the transaction data in a string or JSON format
|
|
13
|
-
* @returns {DelegateResourceTxBuilder} the builder with the transaction data set
|
|
14
|
-
*/
|
|
15
|
-
initBuilder(rawTransaction: TransactionReceipt | string): this;
|
|
16
|
-
/**
|
|
17
|
-
* Helper method to create the delegate resource transaction
|
|
18
|
-
*/
|
|
19
|
-
protected createResourceManagementTransaction(): void;
|
|
20
|
-
/**
|
|
21
|
-
* Helper method to get the delegate resource transaction raw data hex
|
|
22
|
-
*
|
|
23
|
-
* @returns {string} the delegate resource transaction raw data hex
|
|
24
|
-
*/
|
|
25
|
-
protected getResourceManagementTxRawDataHex(): string;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=delegateResourceTxBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delegateResourceTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/delegateResourceTxBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAA8B,MAAM,SAAS,CAAC;AAMzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,yBAA0B,SAAQ,2BAA2B;gBAC5D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;OAKG;IACH,WAAW,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAgB9D;;OAEG;IACH,SAAS,CAAC,mCAAmC,IAAI,IAAI;IAsBrD;;;;OAIG;IACH,SAAS,CAAC,iCAAiC,IAAI,MAAM;CA0BtD"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DelegateResourceTxBuilder = void 0;
|
|
4
|
-
const crypto_1 = require("crypto");
|
|
5
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
-
const transaction_1 = require("./transaction");
|
|
7
|
-
const utils_1 = require("./utils");
|
|
8
|
-
const tron_1 = require("../../resources/protobuf/tron");
|
|
9
|
-
const constants_1 = require("./constants");
|
|
10
|
-
var ContractType = tron_1.protocol.Transaction.Contract.ContractType;
|
|
11
|
-
const resourceManagementTxBuilder_1 = require("./resourceManagementTxBuilder");
|
|
12
|
-
class DelegateResourceTxBuilder extends resourceManagementTxBuilder_1.ResourceManagementTxBuilder {
|
|
13
|
-
constructor(_coinConfig) {
|
|
14
|
-
super(_coinConfig);
|
|
15
|
-
}
|
|
16
|
-
/** @inheritdoc */
|
|
17
|
-
get transactionType() {
|
|
18
|
-
return sdk_core_1.TransactionType.DelegateResource;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Initialize the transaction builder fields using the transaction data
|
|
22
|
-
*
|
|
23
|
-
* @param {TransactionReceipt | string} rawTransaction the transaction data in a string or JSON format
|
|
24
|
-
* @returns {DelegateResourceTxBuilder} the builder with the transaction data set
|
|
25
|
-
*/
|
|
26
|
-
initBuilder(rawTransaction) {
|
|
27
|
-
this.validateRawTransaction(rawTransaction);
|
|
28
|
-
const tx = this.fromImplementation(rawTransaction);
|
|
29
|
-
this.transaction = tx;
|
|
30
|
-
this._signingKeys = [];
|
|
31
|
-
const rawData = tx.toJson().raw_data;
|
|
32
|
-
this._refBlockBytes = rawData.ref_block_bytes;
|
|
33
|
-
this._refBlockHash = rawData.ref_block_hash;
|
|
34
|
-
this._expiration = rawData.expiration;
|
|
35
|
-
this._timestamp = rawData.timestamp;
|
|
36
|
-
this.transaction.setTransactionType(sdk_core_1.TransactionType.DelegateResource);
|
|
37
|
-
const contractCall = rawData.contract[0];
|
|
38
|
-
this.initResourceManagementContractCall(contractCall);
|
|
39
|
-
return this;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Helper method to create the delegate resource transaction
|
|
43
|
-
*/
|
|
44
|
-
createResourceManagementTransaction() {
|
|
45
|
-
const rawDataHex = this.getResourceManagementTxRawDataHex();
|
|
46
|
-
const rawData = (0, utils_1.decodeTransaction)(rawDataHex);
|
|
47
|
-
const contract = rawData.contract[0];
|
|
48
|
-
const contractParameter = contract.parameter;
|
|
49
|
-
contractParameter.value.owner_address = this._ownerAddress.toLocaleLowerCase();
|
|
50
|
-
contractParameter.value.balance = Number(this._balance);
|
|
51
|
-
contractParameter.value.receiver_address = this._receiverAddress.toLocaleLowerCase();
|
|
52
|
-
contractParameter.value.resource = this._resource;
|
|
53
|
-
contractParameter.type_url = constants_1.DELEGATION_TYPE_URL;
|
|
54
|
-
contract.type = 'DelegateResourceContract';
|
|
55
|
-
const hexBuffer = Buffer.from(rawDataHex, 'hex');
|
|
56
|
-
const id = (0, crypto_1.createHash)('sha256').update(hexBuffer).digest('hex');
|
|
57
|
-
const txReceipt = {
|
|
58
|
-
raw_data: rawData,
|
|
59
|
-
raw_data_hex: rawDataHex,
|
|
60
|
-
txID: id,
|
|
61
|
-
signature: this.transaction.signature,
|
|
62
|
-
};
|
|
63
|
-
this.transaction = new transaction_1.Transaction(this._coinConfig, txReceipt);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Helper method to get the delegate resource transaction raw data hex
|
|
67
|
-
*
|
|
68
|
-
* @returns {string} the delegate resource transaction raw data hex
|
|
69
|
-
*/
|
|
70
|
-
getResourceManagementTxRawDataHex() {
|
|
71
|
-
const rawContract = {
|
|
72
|
-
ownerAddress: (0, utils_1.getByteArrayFromHexAddress)(this._ownerAddress),
|
|
73
|
-
receiverAddress: (0, utils_1.getByteArrayFromHexAddress)(this._receiverAddress),
|
|
74
|
-
balance: this._balance,
|
|
75
|
-
resource: this._resource,
|
|
76
|
-
};
|
|
77
|
-
const delegateResourceContract = tron_1.protocol.DelegateResourceContract.fromObject(rawContract);
|
|
78
|
-
const delegateResourceContractBytes = tron_1.protocol.DelegateResourceContract.encode(delegateResourceContract).finish();
|
|
79
|
-
const txContract = {
|
|
80
|
-
type: ContractType.DelegateResourceContract,
|
|
81
|
-
parameter: {
|
|
82
|
-
value: delegateResourceContractBytes,
|
|
83
|
-
type_url: constants_1.DELEGATION_TYPE_URL,
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
const raw = {
|
|
87
|
-
refBlockBytes: Buffer.from(this._refBlockBytes, 'hex'),
|
|
88
|
-
refBlockHash: Buffer.from(this._refBlockHash, 'hex'),
|
|
89
|
-
expiration: this._expiration || Date.now() + utils_1.TRANSACTION_DEFAULT_EXPIRATION,
|
|
90
|
-
timestamp: this._timestamp || Date.now(),
|
|
91
|
-
contract: [txContract],
|
|
92
|
-
};
|
|
93
|
-
const rawTx = tron_1.protocol.Transaction.raw.create(raw);
|
|
94
|
-
return Buffer.from(tron_1.protocol.Transaction.raw.encode(rawTx).finish()).toString('hex');
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
exports.DelegateResourceTxBuilder = DelegateResourceTxBuilder;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbURBQXVEO0FBR3ZELCtDQUE0QztBQUU1QyxtQ0FBd0c7QUFDeEcsd0RBQXlEO0FBQ3pELDJDQUFrRDtBQUVsRCxJQUFPLFlBQVksR0FBRyxlQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7QUFDakUsK0VBQTRFO0FBRTVFLE1BQWEseUJBQTBCLFNBQVEseURBQTJCO0lBQ3hFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsY0FBMkM7UUFDckQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxD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LEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQztZQUNwRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsc0NBQThCO1lBQzNFLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEMsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQ3ZCLENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxlQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RixDQUFDO0NBQ0Y7QUF4RkQsOERBd0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHQsIFJlc291cmNlTWFuYWdlbWVudENvbnRyYWN0IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBkZWNvZGVUcmFuc2FjdGlvbiwgZ2V0Qnl0ZUFycmF5RnJvbUhleEFkZHJlc3MsIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgcHJvdG9jb2wgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvcHJvdG9idWYvdHJvbic7XG5pbXBvcnQgeyBERUxFR0FUSU9OX1RZUEVfVVJMIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgQ29udHJhY3RUeXBlID0gcHJvdG9jb2wuVHJhbnNhY3Rpb24uQ29udHJhY3QuQ29udHJhY3RUeXBlO1xuaW1wb3J0IHsgUmVzb3VyY2VNYW5hZ2VtZW50VHhCdWlsZGVyIH0gZnJvbSAnLi9yZXNvdXJjZU1hbmFnZW1lbnRUeEJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgRGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlciBleHRlbmRzIFJlc291cmNlTWFuYWdlbWVudFR4QnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuRGVsZWdhdGVSZXNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZ30gcmF3VHJhbnNhY3Rpb24gdGhlIHRyYW5zYWN0aW9uIGRhdGEgaW4gYSBzdHJpbmcgb3IgSlNPTiBmb3JtYXRcbiAgICogQHJldHVybnMge0RlbGVnYXRlUmVzb3VyY2VUeEJ1aWxkZXJ9IHRoZSBidWlsZGVyIHdpdGggdGhlIHRyYW5zYWN0aW9uIGRhdGEgc2V0XG4gICAqL1xuICBpbml0QnVpbGRlcihyYXdUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBjb25zdCB0eCA9IHRoaXMuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gdHg7XG4gICAgdGhpcy5fc2lnbmluZ0tleXMgPSBbXTtcbiAgICBjb25zdCByYXdEYXRhID0gdHgudG9Kc29uKCkucmF3X2RhdGE7XG4gICAgdGhpcy5fcmVmQmxvY2tCeXRlcyA9IHJhd0RhdGEucmVmX2Jsb2NrX2J5dGVzO1xuICAgIHRoaXMuX3JlZkJsb2NrSGFzaCA9IHJhd0RhdGEucmVmX2Jsb2NrX2hhc2g7XG4gICAgdGhpcy5fZXhwaXJhdGlvbiA9IHJhd0RhdGEuZXhwaXJhdGlvbjtcbiAgICB0aGlzLl90aW1lc3RhbXAgPSByYXdEYXRhLnRpbWVzdGFtcDtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuRGVsZWdhdGVSZXNvdXJjZSk7XG4gICAgY29uc3QgY29udHJhY3RDYWxsID0gcmF3RGF0YS5jb250cmFjdFswXSBhcyBSZXNvdXJjZU1hbmFnZW1lbnRDb250cmFjdDtcbiAgICB0aGlzLmluaXRSZXNvdXJjZU1hbmFnZW1lbnRDb250cmFjdENhbGwoY29udHJhY3RDYWxsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSB0aGUgZGVsZWdhdGUgcmVzb3VyY2UgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZU1hbmFnZW1lbnRUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCByYXdEYXRhSGV4ID0gdGhpcy5nZXRSZXNvdXJjZU1hbmFnZW1lbnRUeFJhd0RhdGFIZXgoKTtcbiAgICBjb25zdCByYXdEYXRhID0gZGVjb2RlVHJhbnNhY3Rpb24ocmF3RGF0YUhleCk7XG4gICAgY29uc3QgY29udHJhY3QgPSByYXdEYXRhLmNvbnRyYWN0WzBdIGFzIFJlc291cmNlTWFuYWdlbWVudENvbnRyYWN0O1xuICAgIGNvbnN0IGNvbnRyYWN0UGFyYW1ldGVyID0gY29udHJhY3QucGFyYW1ldGVyO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLm93bmVyX2FkZHJlc3MgPSB0aGlzLl9vd25lckFkZHJlc3MudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBjb250cmFjdFBhcmFtZXRlci52YWx1ZS5iYWxhbmNlID0gTnVtYmVyKHRoaXMuX2JhbGFuY2UpO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnZhbHVlLnJlY2VpdmVyX2FkZHJlc3MgPSB0aGlzLl9yZWNlaXZlckFkZHJlc3MudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBjb250cmFjdFBhcmFtZXRlci52YWx1ZS5yZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnR5cGVfdXJsID0gREVMRUdBVElPTl9UWVBFX1VSTDtcbiAgICBjb250cmFjdC50eXBlID0gJ0RlbGVnYXRlUmVzb3VyY2VDb250cmFjdCc7XG4gICAgY29uc3QgaGV4QnVmZmVyID0gQnVmZmVyLmZyb20ocmF3RGF0YUhleCwgJ2hleCcpO1xuICAgIGNvbnN0IGlkID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhleEJ1ZmZlcikuZGlnZXN0KCdoZXgnKTtcbiAgICBjb25zdCB0eFJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdCA9IHtcbiAgICAgIHJhd19kYXRhOiByYXdEYXRhLFxuICAgICAgcmF3X2RhdGFfaGV4OiByYXdEYXRhSGV4LFxuICAgICAgdHhJRDogaWQsXG4gICAgICBzaWduYXR1cmU6IHRoaXMudHJhbnNhY3Rpb24uc2lnbmF0dXJlLFxuICAgIH07XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCB0eFJlY2VpcHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZ2V0IHRoZSBkZWxlZ2F0ZSByZXNvdXJjZSB0cmFuc2FjdGlvbiByYXcgZGF0YSBoZXhcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIGRlbGVnYXRlIHJlc291cmNlIHRyYW5zYWN0aW9uIHJhdyBkYXRhIGhleFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFJlc291cmNlTWFuYWdlbWVudFR4UmF3RGF0YUhleCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJhd0NvbnRyYWN0ID0ge1xuICAgICAgb3duZXJBZGRyZXNzOiBnZXRCeXRlQXJyYXlGcm9tSGV4QWRkcmVzcyh0aGlzLl9vd25lckFkZHJlc3MpLFxuICAgICAgcmVjZWl2ZXJBZGRyZXNzOiBnZXRCeXRlQXJyYXlGcm9tSGV4QWRkcmVzcyh0aGlzLl9yZWNlaXZlckFkZHJlc3MpLFxuICAgICAgYmFsYW5jZTogdGhpcy5fYmFsYW5jZSxcbiAgICAgIHJlc291cmNlOiB0aGlzLl9yZXNvdXJjZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCA9IHByb3RvY29sLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5mcm9tT2JqZWN0KHJhd0NvbnRyYWN0KTtcbiAgICBjb25zdCBkZWxlZ2F0ZVJlc291cmNlQ29udHJhY3RCeXRlcyA9IHByb3RvY29sLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdC5lbmNvZGUoZGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0KS5maW5pc2goKTtcbiAgICBjb25zdCB0eENvbnRyYWN0ID0ge1xuICAgICAgdHlwZTogQ29udHJhY3RUeXBlLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdCxcbiAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICB2YWx1ZTogZGVsZWdhdGVSZXNvdXJjZUNvbnRyYWN0Qnl0ZXMsXG4gICAgICAgIHR5cGVfdXJsOiBERUxFR0FUSU9OX1RZUEVfVVJMLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHJhdyA9IHtcbiAgICAgIHJlZkJsb2NrQnl0ZXM6IEJ1ZmZlci5mcm9tKHRoaXMuX3JlZkJsb2NrQnl0ZXMsICdoZXgnKSxcbiAgICAgIHJlZkJsb2NrSGFzaDogQnVmZmVyLmZyb20odGhpcy5fcmVmQmxvY2tIYXNoLCAnaGV4JyksXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLl9leHBpcmF0aW9uIHx8IERhdGUubm93KCkgKyBUUkFOU0FDVElPTl9ERUZBVUxUX0VYUElSQVRJT04sXG4gICAgICB0aW1lc3RhbXA6IHRoaXMuX3RpbWVzdGFtcCB8fCBEYXRlLm5vdygpLFxuICAgICAgY29udHJhY3Q6IFt0eENvbnRyYWN0XSxcbiAgICB9O1xuICAgIGNvbnN0IHJhd1R4ID0gcHJvdG9jb2wuVHJhbnNhY3Rpb24ucmF3LmNyZWF0ZShyYXcpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuZW5jb2RlKHJhd1R4KS5maW5pc2goKSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG59XG4iXX0=
|