@bitgo/account-lib 2.20.0-rc.31 → 2.20.0-rc.32
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 +11 -0
- package/dist/src/coin/hbar/coinTransferBuilder.js +2 -2
- package/dist/src/coin/hbar/iface.d.ts +21 -4
- package/dist/src/coin/hbar/iface.d.ts.map +1 -1
- package/dist/src/coin/hbar/iface.js +1 -1
- package/dist/src/coin/hbar/index.d.ts +3 -0
- package/dist/src/coin/hbar/index.d.ts.map +1 -1
- package/dist/src/coin/hbar/index.js +8 -2
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts +4 -1
- package/dist/src/coin/hbar/tokenAssociateBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/tokenAssociateBuilder.js +18 -10
- package/dist/src/coin/hbar/tokenTransferBuilder.js +2 -2
- package/dist/src/coin/hbar/transaction.d.ts +10 -2
- package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
- package/dist/src/coin/hbar/transaction.js +76 -29
- package/dist/src/coin/hbar/utils.d.ts +0 -1
- package/dist/src/coin/hbar/utils.d.ts.map +1 -1
- package/dist/src/coin/hbar/utils.js +1 -2
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/tsconfig.tsbuildinfo +840 -3247
- package/package.json +11 -15
- package/dist/src/coin/avaxc/index.d.ts +0 -7
- package/dist/src/coin/avaxc/index.d.ts.map +0 -1
- package/dist/src/coin/avaxc/index.js +0 -34
- package/dist/src/coin/avaxc/keyPair.d.ts +0 -26
- package/dist/src/coin/avaxc/keyPair.d.ts.map +0 -1
- package/dist/src/coin/avaxc/keyPair.js +0 -83
- package/dist/src/coin/avaxc/resources.d.ts +0 -12
- package/dist/src/coin/avaxc/resources.d.ts.map +0 -1
- package/dist/src/coin/avaxc/resources.js +0 -27
- package/dist/src/coin/avaxc/transactionBuilder.d.ts +0 -17
- package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/avaxc/transactionBuilder.js +0 -45
- package/dist/src/coin/avaxc/transferBuilder.d.ts +0 -17
- package/dist/src/coin/avaxc/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/avaxc/transferBuilder.js +0 -25
- package/dist/src/coin/avaxc/utils.d.ts +0 -38
- package/dist/src/coin/avaxc/utils.d.ts.map +0 -1
- package/dist/src/coin/avaxc/utils.js +0 -70
- package/dist/src/coin/avaxc/walletUtil.d.ts +0 -22
- package/dist/src/coin/avaxc/walletUtil.d.ts.map +0 -1
- package/dist/src/coin/avaxc/walletUtil.js +0 -62
- package/dist/src/coin/celo/index.d.ts +0 -7
- package/dist/src/coin/celo/index.d.ts.map +0 -1
- package/dist/src/coin/celo/index.js +0 -34
- package/dist/src/coin/celo/resources.d.ts +0 -10
- package/dist/src/coin/celo/resources.d.ts.map +0 -1
- package/dist/src/coin/celo/resources.js +0 -26
- package/dist/src/coin/celo/stakingBuilder.d.ts +0 -91
- package/dist/src/coin/celo/stakingBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingBuilder.js +0 -276
- package/dist/src/coin/celo/stakingCall.d.ts +0 -7
- package/dist/src/coin/celo/stakingCall.d.ts.map +0 -1
- package/dist/src/coin/celo/stakingCall.js +0 -13
- package/dist/src/coin/celo/transaction.d.ts +0 -9
- package/dist/src/coin/celo/transaction.d.ts.map +0 -1
- package/dist/src/coin/celo/transaction.js +0 -37
- package/dist/src/coin/celo/transactionBuilder.d.ts +0 -85
- package/dist/src/coin/celo/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/transactionBuilder.js +0 -208
- package/dist/src/coin/celo/transferBuilder.d.ts +0 -19
- package/dist/src/coin/celo/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/celo/transferBuilder.js +0 -27
- package/dist/src/coin/celo/types.d.ts +0 -51
- package/dist/src/coin/celo/types.d.ts.map +0 -1
- package/dist/src/coin/celo/types.js +0 -222
- package/dist/src/coin/celo/utils.d.ts +0 -18
- package/dist/src/coin/celo/utils.d.ts.map +0 -1
- package/dist/src/coin/celo/utils.js +0 -99
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ContractCall } from '@bitgo/sdk-coin-eth';
|
|
2
|
-
export declare class StakingCall extends ContractCall {
|
|
3
|
-
amount: string;
|
|
4
|
-
address: string;
|
|
5
|
-
constructor(amount: string, address: string, _methodId: string, _types: string[], _params: string[]);
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=stakingCall.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stakingCall.d.ts","sourceRoot":"","sources":["../../../../src/coin/celo/stakingCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,WAAY,SAAQ,YAAY;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;gBACX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;CAKpG"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StakingCall = void 0;
|
|
4
|
-
const sdk_coin_eth_1 = require("@bitgo/sdk-coin-eth");
|
|
5
|
-
class StakingCall extends sdk_coin_eth_1.ContractCall {
|
|
6
|
-
constructor(amount, address, _methodId, _types, _params) {
|
|
7
|
-
super(_methodId, _types, _params);
|
|
8
|
-
this.amount = amount;
|
|
9
|
-
this.address = address;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
exports.StakingCall = StakingCall;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0NhbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9jZWxvL3N0YWtpbmdDYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFtRDtBQUVuRCxNQUFhLFdBQVksU0FBUSwyQkFBWTtJQUczQyxZQUFZLE1BQWMsRUFBRSxPQUFlLEVBQUUsU0FBaUIsRUFBRSxNQUFnQixFQUFFLE9BQWlCO1FBQ2pHLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQVJELGtDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJhY3RDYWxsIH0gZnJvbSAnQGJpdGdvL3Nkay1jb2luLWV0aCc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nQ2FsbCBleHRlbmRzIENvbnRyYWN0Q2FsbCB7XG4gIHB1YmxpYyBhbW91bnQ6IHN0cmluZztcbiAgcHVibGljIGFkZHJlc3M6IHN0cmluZztcbiAgY29uc3RydWN0b3IoYW1vdW50OiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZywgX21ldGhvZElkOiBzdHJpbmcsIF90eXBlczogc3RyaW5nW10sIF9wYXJhbXM6IHN0cmluZ1tdKSB7XG4gICAgc3VwZXIoX21ldGhvZElkLCBfdHlwZXMsIF9wYXJhbXMpO1xuICAgIHRoaXMuYW1vdW50ID0gYW1vdW50O1xuICAgIHRoaXMuYWRkcmVzcyA9IGFkZHJlc3M7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
-
import EthereumCommon from '@ethereumjs/common';
|
|
3
|
-
import { Transaction as EthTransaction, LegacyTxData } from '@bitgo/sdk-coin-eth';
|
|
4
|
-
export declare class Transaction extends EthTransaction {
|
|
5
|
-
setTransactionData(txData: LegacyTxData): void;
|
|
6
|
-
/** @inheritdoc */
|
|
7
|
-
static fromSerialized(coinConfig: Readonly<CoinConfig>, common: EthereumCommon, serializedTx: string): Transaction;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/celo/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIlF,qBAAa,WAAY,SAAQ,cAAc;IAC7C,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAK9C,kBAAkB;WACJ,cAAc,CAC1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChC,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,MAAM,GACnB,WAAW;CAGf"}
|
|
@@ -1,37 +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
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.Transaction = void 0;
|
|
23
|
-
const sdk_coin_eth_1 = require("@bitgo/sdk-coin-eth");
|
|
24
|
-
const types_1 = require("./types");
|
|
25
|
-
const Utils = __importStar(require("./utils"));
|
|
26
|
-
class Transaction extends sdk_coin_eth_1.Transaction {
|
|
27
|
-
setTransactionData(txData) {
|
|
28
|
-
this._transactionData = types_1.CeloTransactionData.fromJson(txData);
|
|
29
|
-
this.updateFields();
|
|
30
|
-
}
|
|
31
|
-
/** @inheritdoc */
|
|
32
|
-
static fromSerialized(coinConfig, common, serializedTx) {
|
|
33
|
-
return new Transaction(coinConfig, common, Utils.deserialize(serializedTx));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.Transaction = Transaction;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9jZWxvL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxzREFBa0Y7QUFDbEYsbUNBQThDO0FBQzlDLCtDQUFpQztBQUVqQyxNQUFhLFdBQVksU0FBUSwwQkFBYztJQUM3QyxrQkFBa0IsQ0FBQyxNQUFvQjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsMkJBQW1CLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsTUFBTSxDQUFDLGNBQWMsQ0FDMUIsVUFBZ0MsRUFDaEMsTUFBc0IsRUFDdEIsWUFBb0I7UUFFcEIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0Y7QUFkRCxrQ0FjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgRXRoZXJldW1Db21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIEV0aFRyYW5zYWN0aW9uLCBMZWdhY3lUeERhdGEgfSBmcm9tICdAYml0Z28vc2RrLWNvaW4tZXRoJztcbmltcG9ydCB7IENlbG9UcmFuc2FjdGlvbkRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBFdGhUcmFuc2FjdGlvbiB7XG4gIHNldFRyYW5zYWN0aW9uRGF0YSh0eERhdGE6IExlZ2FjeVR4RGF0YSk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uRGF0YSA9IENlbG9UcmFuc2FjdGlvbkRhdGEuZnJvbUpzb24odHhEYXRhKTtcbiAgICB0aGlzLnVwZGF0ZUZpZWxkcygpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNlcmlhbGl6ZWQoXG4gICAgY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sXG4gICAgY29tbW9uOiBFdGhlcmV1bUNvbW1vbixcbiAgICBzZXJpYWxpemVkVHg6IHN0cmluZyxcbiAgKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oY29pbkNvbmZpZywgY29tbW9uLCBVdGlscy5kZXNlcmlhbGl6ZShzZXJpYWxpemVkVHgpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
-
import { TransactionBuilder as EthTransactionBuilder, TxData } from '@bitgo/sdk-coin-eth';
|
|
3
|
-
import { TransactionType } from '@bitgo/sdk-core';
|
|
4
|
-
import { Transaction } from './transaction';
|
|
5
|
-
import { StakingBuilder } from './stakingBuilder';
|
|
6
|
-
import { TransferBuilder } from './transferBuilder';
|
|
7
|
-
export declare class TransactionBuilder extends EthTransactionBuilder {
|
|
8
|
-
private _stakingBuilder?;
|
|
9
|
-
protected _transfer: TransferBuilder;
|
|
10
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
11
|
-
/** @inheritdoc */
|
|
12
|
-
type(type: TransactionType): void;
|
|
13
|
-
protected getTransactionData(): TxData;
|
|
14
|
-
/** @inheritdoc */
|
|
15
|
-
protected fromImplementation(rawTransaction: string): Transaction;
|
|
16
|
-
protected setTransactionTypeFields(decodedType: TransactionType, transactionJson: TxData): void;
|
|
17
|
-
/**
|
|
18
|
-
* Returns the smart contract encoded data
|
|
19
|
-
*
|
|
20
|
-
* @param {string[]} addresses - the contract signers
|
|
21
|
-
* @returns {string} - the smart contract encoded data
|
|
22
|
-
*/
|
|
23
|
-
protected getContractData(addresses: string[]): string;
|
|
24
|
-
/**
|
|
25
|
-
* Gets the staking lock builder if exist, or creates a new one for this transaction and returns it
|
|
26
|
-
* requires: amount
|
|
27
|
-
*
|
|
28
|
-
* @returns {StakingBuilder} the staking builder
|
|
29
|
-
*/
|
|
30
|
-
lock(): StakingBuilder;
|
|
31
|
-
/**
|
|
32
|
-
* Gets the staking vote builder if exist, or creates a new one for this transaction and returns it
|
|
33
|
-
* requires: group, lesser, greater, amount
|
|
34
|
-
*
|
|
35
|
-
* @returns {StakingBuilder} the staking builder
|
|
36
|
-
*/
|
|
37
|
-
vote(): StakingBuilder;
|
|
38
|
-
/**
|
|
39
|
-
* Gets the staking activate builder if exist, or creates a new one for this transaction and returns it
|
|
40
|
-
* requires: group
|
|
41
|
-
*
|
|
42
|
-
* @returns {StakingBuilder} the staking builder
|
|
43
|
-
*/
|
|
44
|
-
activate(): StakingBuilder;
|
|
45
|
-
/**
|
|
46
|
-
* Gets the staking unlock builder if exist, or creates a new one for this transaction and returns it
|
|
47
|
-
* requires: amount
|
|
48
|
-
*
|
|
49
|
-
* @returns {StakingBuilder} the staking builder
|
|
50
|
-
*/
|
|
51
|
-
unlock(): StakingBuilder;
|
|
52
|
-
/**
|
|
53
|
-
* Gets the staking unvote builder if exist, or creates a new one for this transaction and returns it
|
|
54
|
-
* requires: group, lesser, greater, amount, index
|
|
55
|
-
*
|
|
56
|
-
* @returns {StakingBuilder} the staking builder
|
|
57
|
-
*/
|
|
58
|
-
unvote(): StakingBuilder;
|
|
59
|
-
/**
|
|
60
|
-
* Gets the staking withdraw builder if exist, or creates a new one for this transaction and returns it
|
|
61
|
-
* requires: index (unlock list)
|
|
62
|
-
*
|
|
63
|
-
* @returns {StakingBuilder} the staking builder
|
|
64
|
-
*/
|
|
65
|
-
withdraw(): StakingBuilder;
|
|
66
|
-
/** @inheritdoc */
|
|
67
|
-
transfer(data?: string): TransferBuilder;
|
|
68
|
-
/**
|
|
69
|
-
* Get the appropriate builder for the selected type
|
|
70
|
-
*
|
|
71
|
-
* @param {StakingOperationTypes} type the selected type for the staking builder
|
|
72
|
-
* @returns {StakingBuilder} the staking builder for the selected type
|
|
73
|
-
*/
|
|
74
|
-
private getBuilder;
|
|
75
|
-
private getStaking;
|
|
76
|
-
private buildLockStakeTransaction;
|
|
77
|
-
private buildStakingTransaction;
|
|
78
|
-
/**
|
|
79
|
-
* Get the final v value. Final v is described in EIP-155.
|
|
80
|
-
*
|
|
81
|
-
* @protected for internal use when the enableFinalVField flag is true.
|
|
82
|
-
*/
|
|
83
|
-
protected getFinalV(): string;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=transactionBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/celo/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,kBAAkB,IAAI,qBAAqB,EAAE,MAAM,EAA2B,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAyB,eAAe,EAAyB,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,qBAAa,kBAAmB,SAAQ,qBAAqB;IAE3D,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAKjC,SAAS,CAAC,kBAAkB,IAAI,MAAM;IActC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAYjE,SAAS,CAAC,wBAAwB,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAoB/F;;;;;OAKG;IACH,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAUtD;;;;;OAKG;IACH,IAAI,IAAI,cAAc;IAQtB;;;;;OAKG;IACH,IAAI,IAAI,cAAc;IAQtB;;;;;OAKG;IACH,QAAQ,IAAI,cAAc;IAQ1B;;;;;OAKG;IACH,MAAM,IAAI,cAAc;IAQxB;;;;;OAKG;IACH,MAAM,IAAI,cAAc;IAQxB;;;;;OAKG;IACH,QAAQ,IAAI,cAAc;IAQ1B,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe;IAUxC;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,uBAAuB;IAQ/B;;;;OAIG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM;CAI9B"}
|
|
@@ -1,208 +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.TransactionBuilder = void 0;
|
|
7
|
-
const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
|
|
8
|
-
const sdk_coin_eth_1 = require("@bitgo/sdk-coin-eth");
|
|
9
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
10
|
-
const transaction_1 = require("./transaction");
|
|
11
|
-
const stakingBuilder_1 = require("./stakingBuilder");
|
|
12
|
-
const utils_1 = require("./utils");
|
|
13
|
-
const transferBuilder_1 = require("./transferBuilder");
|
|
14
|
-
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
15
|
-
class TransactionBuilder extends sdk_coin_eth_1.TransactionBuilder {
|
|
16
|
-
constructor(_coinConfig) {
|
|
17
|
-
super(_coinConfig);
|
|
18
|
-
this._common = utils_1.getCommon(this._coinConfig.network.type);
|
|
19
|
-
this.transaction = new transaction_1.Transaction(this._coinConfig, this._common);
|
|
20
|
-
}
|
|
21
|
-
/** @inheritdoc */
|
|
22
|
-
type(type) {
|
|
23
|
-
super.type(type);
|
|
24
|
-
this._stakingBuilder = undefined;
|
|
25
|
-
}
|
|
26
|
-
getTransactionData() {
|
|
27
|
-
switch (this._type) {
|
|
28
|
-
case sdk_core_1.TransactionType.StakingLock:
|
|
29
|
-
return this.buildLockStakeTransaction();
|
|
30
|
-
case sdk_core_1.TransactionType.StakingUnlock:
|
|
31
|
-
case sdk_core_1.TransactionType.StakingVote:
|
|
32
|
-
case sdk_core_1.TransactionType.StakingUnvote:
|
|
33
|
-
case sdk_core_1.TransactionType.StakingActivate:
|
|
34
|
-
case sdk_core_1.TransactionType.StakingWithdraw:
|
|
35
|
-
return this.buildStakingTransaction();
|
|
36
|
-
}
|
|
37
|
-
return super.getTransactionData();
|
|
38
|
-
}
|
|
39
|
-
/** @inheritdoc */
|
|
40
|
-
fromImplementation(rawTransaction) {
|
|
41
|
-
let tx;
|
|
42
|
-
if (/^0x?[0-9a-f]{1,}$/.test(rawTransaction.toLowerCase())) {
|
|
43
|
-
tx = transaction_1.Transaction.fromSerialized(this._coinConfig, this._common, rawTransaction);
|
|
44
|
-
super.loadBuilderInput(tx.toJson());
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
const txData = JSON.parse(rawTransaction);
|
|
48
|
-
tx = new transaction_1.Transaction(this._coinConfig, this._common, txData);
|
|
49
|
-
}
|
|
50
|
-
return tx;
|
|
51
|
-
}
|
|
52
|
-
setTransactionTypeFields(decodedType, transactionJson) {
|
|
53
|
-
switch (decodedType) {
|
|
54
|
-
case sdk_core_1.TransactionType.StakingLock:
|
|
55
|
-
this._stakingBuilder = new stakingBuilder_1.StakingBuilder(this._coinConfig)
|
|
56
|
-
.type(sdk_core_1.StakingOperationTypes.LOCK)
|
|
57
|
-
.amount(transactionJson.value);
|
|
58
|
-
break;
|
|
59
|
-
case sdk_core_1.TransactionType.StakingUnlock:
|
|
60
|
-
case sdk_core_1.TransactionType.StakingVote:
|
|
61
|
-
case sdk_core_1.TransactionType.StakingUnvote:
|
|
62
|
-
case sdk_core_1.TransactionType.StakingActivate:
|
|
63
|
-
case sdk_core_1.TransactionType.StakingWithdraw:
|
|
64
|
-
this._stakingBuilder = new stakingBuilder_1.StakingBuilder(this._coinConfig, transactionJson.data);
|
|
65
|
-
break;
|
|
66
|
-
default:
|
|
67
|
-
super.setTransactionTypeFields(decodedType, transactionJson);
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Returns the smart contract encoded data
|
|
73
|
-
*
|
|
74
|
-
* @param {string[]} addresses - the contract signers
|
|
75
|
-
* @returns {string} - the smart contract encoded data
|
|
76
|
-
*/
|
|
77
|
-
getContractData(addresses) {
|
|
78
|
-
const params = [addresses];
|
|
79
|
-
const resultEncodedParameters = ethereumjs_abi_1.default.rawEncode(sdk_coin_eth_1.walletSimpleConstructor, params)
|
|
80
|
-
.toString('hex')
|
|
81
|
-
.replace('0x', '');
|
|
82
|
-
return utils_1.walletSimpleByteCode + resultEncodedParameters;
|
|
83
|
-
}
|
|
84
|
-
// region Stake methods
|
|
85
|
-
/**
|
|
86
|
-
* Gets the staking lock builder if exist, or creates a new one for this transaction and returns it
|
|
87
|
-
* requires: amount
|
|
88
|
-
*
|
|
89
|
-
* @returns {StakingBuilder} the staking builder
|
|
90
|
-
*/
|
|
91
|
-
lock() {
|
|
92
|
-
if (this._type !== sdk_core_1.TransactionType.StakingLock) {
|
|
93
|
-
throw new sdk_core_1.BuildTransactionError('Lock can only be set for Staking Lock transactions type');
|
|
94
|
-
}
|
|
95
|
-
return this.getBuilder(sdk_core_1.StakingOperationTypes.LOCK);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Gets the staking vote builder if exist, or creates a new one for this transaction and returns it
|
|
99
|
-
* requires: group, lesser, greater, amount
|
|
100
|
-
*
|
|
101
|
-
* @returns {StakingBuilder} the staking builder
|
|
102
|
-
*/
|
|
103
|
-
vote() {
|
|
104
|
-
if (this._type !== sdk_core_1.TransactionType.StakingVote) {
|
|
105
|
-
throw new sdk_core_1.BuildTransactionError('Votes can only be set for a staking transaction');
|
|
106
|
-
}
|
|
107
|
-
return this.getBuilder(sdk_core_1.StakingOperationTypes.VOTE);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Gets the staking activate builder if exist, or creates a new one for this transaction and returns it
|
|
111
|
-
* requires: group
|
|
112
|
-
*
|
|
113
|
-
* @returns {StakingBuilder} the staking builder
|
|
114
|
-
*/
|
|
115
|
-
activate() {
|
|
116
|
-
if (this._type !== sdk_core_1.TransactionType.StakingActivate) {
|
|
117
|
-
throw new sdk_core_1.BuildTransactionError('Activation can only be set for a staking transaction');
|
|
118
|
-
}
|
|
119
|
-
return this.getBuilder(sdk_core_1.StakingOperationTypes.ACTIVATE);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Gets the staking unlock builder if exist, or creates a new one for this transaction and returns it
|
|
123
|
-
* requires: amount
|
|
124
|
-
*
|
|
125
|
-
* @returns {StakingBuilder} the staking builder
|
|
126
|
-
*/
|
|
127
|
-
unlock() {
|
|
128
|
-
if (this._type !== sdk_core_1.TransactionType.StakingUnlock) {
|
|
129
|
-
throw new sdk_core_1.BuildTransactionError('Unlock can only be set for Staking Unlock transactions type');
|
|
130
|
-
}
|
|
131
|
-
return this.getBuilder(sdk_core_1.StakingOperationTypes.UNLOCK);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Gets the staking unvote builder if exist, or creates a new one for this transaction and returns it
|
|
135
|
-
* requires: group, lesser, greater, amount, index
|
|
136
|
-
*
|
|
137
|
-
* @returns {StakingBuilder} the staking builder
|
|
138
|
-
*/
|
|
139
|
-
unvote() {
|
|
140
|
-
if (this._type !== sdk_core_1.TransactionType.StakingUnvote) {
|
|
141
|
-
throw new sdk_core_1.BuildTransactionError('Unvote can only be set for a staking transaction');
|
|
142
|
-
}
|
|
143
|
-
return this.getBuilder(sdk_core_1.StakingOperationTypes.UNVOTE);
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Gets the staking withdraw builder if exist, or creates a new one for this transaction and returns it
|
|
147
|
-
* requires: index (unlock list)
|
|
148
|
-
*
|
|
149
|
-
* @returns {StakingBuilder} the staking builder
|
|
150
|
-
*/
|
|
151
|
-
withdraw() {
|
|
152
|
-
if (this._type !== sdk_core_1.TransactionType.StakingWithdraw) {
|
|
153
|
-
throw new sdk_core_1.BuildTransactionError('Withdraw can only be set for a staking transaction');
|
|
154
|
-
}
|
|
155
|
-
return this.getBuilder(sdk_core_1.StakingOperationTypes.WITHDRAW);
|
|
156
|
-
}
|
|
157
|
-
/** @inheritdoc */
|
|
158
|
-
transfer(data) {
|
|
159
|
-
if (this._type !== sdk_core_1.TransactionType.Send) {
|
|
160
|
-
throw new sdk_core_1.BuildTransactionError('Transfers can only be set for send transactions');
|
|
161
|
-
}
|
|
162
|
-
if (!this._transfer) {
|
|
163
|
-
this._transfer = new transferBuilder_1.TransferBuilder(data);
|
|
164
|
-
}
|
|
165
|
-
return this._transfer;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Get the appropriate builder for the selected type
|
|
169
|
-
*
|
|
170
|
-
* @param {StakingOperationTypes} type the selected type for the staking builder
|
|
171
|
-
* @returns {StakingBuilder} the staking builder for the selected type
|
|
172
|
-
*/
|
|
173
|
-
getBuilder(type) {
|
|
174
|
-
if (!this._stakingBuilder) {
|
|
175
|
-
this._stakingBuilder = new stakingBuilder_1.StakingBuilder(this._coinConfig).type(type);
|
|
176
|
-
}
|
|
177
|
-
return this._stakingBuilder;
|
|
178
|
-
}
|
|
179
|
-
getStaking() {
|
|
180
|
-
if (!this._stakingBuilder) {
|
|
181
|
-
throw new sdk_core_1.BuildTransactionError('No staking information set');
|
|
182
|
-
}
|
|
183
|
-
return this._stakingBuilder.build();
|
|
184
|
-
}
|
|
185
|
-
buildLockStakeTransaction() {
|
|
186
|
-
const stake = this.getStaking();
|
|
187
|
-
const data = this.buildBase(stake.serialize());
|
|
188
|
-
data.to = stake.address;
|
|
189
|
-
data.value = stake.amount;
|
|
190
|
-
return data;
|
|
191
|
-
}
|
|
192
|
-
buildStakingTransaction() {
|
|
193
|
-
const stake = this.getStaking();
|
|
194
|
-
const data = this.buildBase(stake.serialize());
|
|
195
|
-
data.to = stake.address;
|
|
196
|
-
return data;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Get the final v value. Final v is described in EIP-155.
|
|
200
|
-
*
|
|
201
|
-
* @protected for internal use when the enableFinalVField flag is true.
|
|
202
|
-
*/
|
|
203
|
-
getFinalV() {
|
|
204
|
-
return ethereumjs_util_1.addHexPrefix(this._common.chainIdBN().toString(16));
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
exports.TransactionBuilder = TransactionBuilder;
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vY2Vsby90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esb0VBQXlDO0FBQ3pDLHNEQUFtSDtBQUNuSCw4Q0FBZ0c7QUFDaEcsK0NBQTRDO0FBQzVDLHFEQUFrRDtBQUVsRCxtQ0FBMEQ7QUFDMUQsdURBQW9EO0FBQ3BELHFEQUErQztBQUUvQyxNQUFhLGtCQUFtQixTQUFRLGlDQUFxQjtJQUszRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsSUFBcUI7UUFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNsQixLQUFLLDBCQUFlLENBQUMsV0FBVztnQkFDOUIsT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUMxQyxLQUFLLDBCQUFlLENBQUMsYUFBYSxDQUFDO1lBQ25DLEtBQUssMEJBQWUsQ0FBQyxXQUFXLENBQUM7WUFDakMsS0FBSywwQkFBZSxDQUFDLGFBQWEsQ0FBQztZQUNuQyxLQUFLLDBCQUFlLENBQUMsZUFBZSxDQUFDO1lBQ3JDLEtBQUssMEJBQWUsQ0FBQyxlQUFlO2dC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RyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRXhCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxTQUFTO1FBQ2pCLE9BQU8sOEJBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FFRjtBQTlORCxnREE4TkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciBhcyBFdGhUcmFuc2FjdGlvbkJ1aWxkZXIsIFR4RGF0YSwgd2FsbGV0U2ltcGxlQ29uc3RydWN0b3IgfSBmcm9tICdAYml0Z28vc2RrLWNvaW4tZXRoJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlLCBTdGFraW5nT3BlcmF0aW9uVHlwZXMgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFN0YWtpbmdCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nQnVpbGRlcic7XG5pbXBvcnQgeyBTdGFraW5nQ2FsbCB9IGZyb20gJy4vc3Rha2luZ0NhbGwnO1xuaW1wb3J0IHsgZ2V0Q29tbW9uLCB3YWxsZXRTaW1wbGVCeXRlQ29kZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgYWRkSGV4UHJlZml4IH0gZnJvbSAnZXRoZXJldW1qcy11dGlsJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEV0aFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIC8vIFN0YWtpbmcgc3BlY2lmaWMgcGFyYW1ldGVyc1xuICBwcml2YXRlIF9zdGFraW5nQnVpbGRlcj86IFN0YWtpbmdCdWlsZGVyO1xuICBwcm90ZWN0ZWQgX3RyYW5zZmVyOiBUcmFuc2ZlckJ1aWxkZXI7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX2NvbW1vbiA9IGdldENvbW1vbih0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCB0aGlzLl9jb21tb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHR5cGUodHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgc3VwZXIudHlwZSh0eXBlKTtcbiAgICB0aGlzLl9zdGFraW5nQnVpbGRlciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUcmFuc2FjdGlvbkRhdGEoKTogVHhEYXRhIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrOlxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZExvY2tTdGFrZVRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1ZvdGU6XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW52b3RlOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3OlxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZFN0YWtpbmdUcmFuc2FjdGlvbigpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuZ2V0VHJhbnNhY3Rpb25EYXRhKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGxldCB0eDogVHJhbnNhY3Rpb247XG4gICAgaWYgKC9eMHg/WzAtOWEtZl17MSx9JC8udGVzdChyYXdUcmFuc2FjdGlvbi50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgdHggPSBUcmFuc2FjdGlvbi5mcm9tU2VyaWFsaXplZCh0aGlzLl9jb2luQ29uZmlnLCB0aGlzLl9jb21tb24sIHJhd1RyYW5zYWN0aW9uKTtcbiAgICAgIHN1cGVyLmxvYWRCdWlsZGVySW5wdXQodHgudG9Kc29uKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eERhdGEgPSBKU09OLnBhcnNlKHJhd1RyYW5zYWN0aW9uKTtcbiAgICAgIHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcsIHRoaXMuX2NvbW1vbiwgdHhEYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFRyYW5zYWN0aW9uVHlwZUZpZWxkcyhkZWNvZGVkVHlwZTogVHJhbnNhY3Rpb25UeXBlLCB0cmFuc2FjdGlvbkpzb246IFR4RGF0YSk6IHZvaWQge1xuICAgIHN3aXRjaCAoZGVjb2RlZFR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrOlxuICAgICAgICB0aGlzLl9zdGFraW5nQnVpbGRlciA9IG5ldyBTdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKVxuICAgICAgICAgIC50eXBlKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5MT0NLKVxuICAgICAgICAgIC5hbW91bnQodHJhbnNhY3Rpb25Kc29uLnZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1ZvdGU6XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW52b3RlOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlOlxuICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1dpdGhkcmF3OlxuICAgICAgICB0aGlzLl9zdGFraW5nQnVpbGRlciA9IG5ldyBTdGFraW5nQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnLCB0cmFuc2FjdGlvbkpzb24uZGF0YSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc3VwZXIuc2V0VHJhbnNhY3Rpb25UeXBlRmllbGRzKGRlY29kZWRUeXBlLCB0cmFuc2FjdGlvbkpzb24pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc21hcnQgY29udHJhY3QgZW5jb2RlZCBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFkZHJlc3NlcyAtIHRoZSBjb250cmFjdCBzaWduZXJzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIHNtYXJ0IGNvbnRyYWN0IGVuY29kZWQgZGF0YVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldENvbnRyYWN0RGF0YShhZGRyZXNzZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJhbXMgPSBbYWRkcmVzc2VzXTtcbiAgICBjb25zdCByZXN1bHRFbmNvZGVkUGFyYW1ldGVycyA9IEV0aGVyZXVtQWJpLnJhd0VuY29kZSh3YWxsZXRTaW1wbGVDb25zdHJ1Y3RvciwgcGFyYW1zKVxuICAgICAgLnRvU3RyaW5nKCdoZXgnKVxuICAgICAgLnJlcGxhY2UoJzB4JywgJycpO1xuICAgIHJldHVybiB3YWxsZXRTaW1wbGVCeXRlQ29kZSArIHJlc3VsdEVuY29kZWRQYXJhbWV0ZXJzO1xuICB9XG5cbiAgLy8gcmVnaW9uIFN0YWtlIG1ldGhvZHNcblxuICAvKipcbiAgICogR2V0cyB0aGUgc3Rha2luZyBsb2NrIGJ1aWxkZXIgaWYgZXhpc3QsIG9yIGNyZWF0ZXMgYSBuZXcgb25lIGZvciB0aGlzIHRyYW5zYWN0aW9uIGFuZCByZXR1cm5zIGl0XG4gICAqIHJlcXVpcmVzOiBhbW91bnRcbiAgICpcbiAgICogQHJldHVybnMge1N0YWtpbmdCdWlsZGVyfSB0aGUgc3Rha2luZyBidWlsZGVyXG4gICAqL1xuICBsb2NrKCk6IFN0YWtpbmdCdWlsZGVyIHtcbiAgICBpZiAodGhpcy5fdHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdMb2NrKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdMb2NrIGNhbiBvbmx5IGJlIHNldCBmb3IgU3Rha2luZyBMb2NrIHRyYW5zYWN0aW9ucyB0eXBlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlcihTdGFraW5nT3BlcmF0aW9uVHlwZXMuTE9DSyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc3Rha2luZyB2b3RlIGJ1aWxkZXIgaWYgZXhpc3QsIG9yIGNyZWF0ZXMgYSBuZXcgb25lIGZvciB0aGlzIHRyYW5zYWN0aW9uIGFuZCByZXR1cm5zIGl0XG4gICAqIHJlcXVpcmVzOiBncm91cCwgbGVzc2VyLCBncmVhdGVyLCBhbW91bnRcbiAgICpcbiAgICogQHJldHVybnMge1N0YWtpbmdCdWlsZGVyfSB0aGUgc3Rha2luZyBidWlsZGVyXG4gICAqL1xuICB2b3RlKCk6IFN0YWtpbmdCdWlsZGVyIHtcbiAgICBpZiAodGhpcy5fdHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdWb3RlKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdWb3RlcyBjYW4gb25seSBiZSBzZXQgZm9yIGEgc3Rha2luZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXIoU3Rha2luZ09wZXJhdGlvblR5cGVzLlZPVEUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHN0YWtpbmcgYWN0aXZhdGUgYnVpbGRlciBpZiBleGlzdCwgb3IgY3JlYXRlcyBhIG5ldyBvbmUgZm9yIHRoaXMgdHJhbnNhY3Rpb24gYW5kIHJldHVybnMgaXRcbiAgICogcmVxdWlyZXM6IGdyb3VwXG4gICAqXG4gICAqIEByZXR1cm5zIHtTdGFraW5nQnVpbGRlcn0gdGhlIHN0YWtpbmcgYnVpbGRlclxuICAgKi9cbiAgYWN0aXZhdGUoKTogU3Rha2luZ0J1aWxkZXIge1xuICAgIGlmICh0aGlzLl90eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdBY3RpdmF0aW9uIGNhbiBvbmx5IGJlIHNldCBmb3IgYSBzdGFraW5nIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0QnVpbGRlcihTdGFraW5nT3BlcmF0aW9uVHlwZXMuQUNUSVZBVEUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHN0YWtpbmcgdW5sb2NrIGJ1aWxkZXIgaWYgZXhpc3QsIG9yIGNyZWF0ZXMgYSBuZXcgb25lIGZvciB0aGlzIHRyYW5zYWN0aW9uIGFuZCByZXR1cm5zIGl0XG4gICAqIHJlcXVpcmVzOiBhbW91bnRcbiAgICpcbiAgICogQHJldHVybnMge1N0YWtpbmdCdWlsZGVyfSB0aGUgc3Rha2luZyBidWlsZGVyXG4gICAqL1xuICB1bmxvY2soKTogU3Rha2luZ0J1aWxkZXIge1xuICAgIGlmICh0aGlzLl90eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jaykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVW5sb2NrIGNhbiBvbmx5IGJlIHNldCBmb3IgU3Rha2luZyBVbmxvY2sgdHJhbnNhY3Rpb25zIHR5cGUnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5VTkxPQ0spO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHN0YWtpbmcgdW52b3RlIGJ1aWxkZXIgaWYgZXhpc3QsIG9yIGNyZWF0ZXMgYSBuZXcgb25lIGZvciB0aGlzIHRyYW5zYWN0aW9uIGFuZCByZXR1cm5zIGl0XG4gICAqIHJlcXVpcmVzOiBncm91cCwgbGVzc2VyLCBncmVhdGVyLCBhbW91bnQsIGluZGV4XG4gICAqXG4gICAqIEByZXR1cm5zIHtTdGFraW5nQnVpbGRlcn0gdGhlIHN0YWtpbmcgYnVpbGRlclxuICAgKi9cbiAgdW52b3RlKCk6IFN0YWtpbmdCdWlsZGVyIHtcbiAgICBpZiAodGhpcy5fdHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbnZvdGUpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1Vudm90ZSBjYW4gb25seSBiZSBzZXQgZm9yIGEgc3Rha2luZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldEJ1aWxkZXIoU3Rha2luZ09wZXJhdGlvblR5cGVzLlVOVk9URSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc3Rha2luZyB3aXRoZHJhdyBidWlsZGVyIGlmIGV4aXN0LCBvciBjcmVhdGVzIGEgbmV3IG9uZSBmb3IgdGhpcyB0cmFuc2FjdGlvbiBhbmQgcmV0dXJucyBpdFxuICAgKiByZXF1aXJlczogaW5kZXggKHVubG9jayBsaXN0KVxuICAgKlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0J1aWxkZXJ9IHRoZSBzdGFraW5nIGJ1aWxkZXJcbiAgICovXG4gIHdpdGhkcmF3KCk6IFN0YWtpbmdCdWlsZGVyIHtcbiAgICBpZiAodGhpcy5fdHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignV2l0aGRyYXcgY2FuIG9ubHkgYmUgc2V0IGZvciBhIHN0YWtpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRCdWlsZGVyKFN0YWtpbmdPcGVyYXRpb25UeXBlcy5XSVRIRFJBVyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdHJhbnNmZXIoZGF0YT86IHN0cmluZyk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgaWYgKHRoaXMuX3R5cGUgIT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2ZlcnMgY2FuIG9ubHkgYmUgc2V0IGZvciBzZW5kIHRyYW5zYWN0aW9ucycpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3RyYW5zZmVyKSB7XG4gICAgICB0aGlzLl90cmFuc2ZlciA9IG5ldyBUcmFuc2ZlckJ1aWxkZXIoZGF0YSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl90cmFuc2ZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFwcHJvcHJpYXRlIGJ1aWxkZXIgZm9yIHRoZSBzZWxlY3RlZCB0eXBlXG4gICAqXG4gICAqIEBwYXJhbSB7U3Rha2luZ09wZXJhdGlvblR5cGVzfSB0eXBlIHRoZSBzZWxlY3RlZCB0eXBlIGZvciB0aGUgc3Rha2luZyBidWlsZGVyXG4gICAqIEByZXR1cm5zIHtTdGFraW5nQnVpbGRlcn0gdGhlIHN0YWtpbmcgYnVpbGRlciBmb3IgdGhlIHNlbGVjdGVkIHR5cGVcbiAgICovXG4gIHByaXZhdGUgZ2V0QnVpbGRlcih0eXBlOiBTdGFraW5nT3BlcmF0aW9uVHlwZXMpOiBTdGFraW5nQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLl9zdGFraW5nQnVpbGRlcikge1xuICAgICAgdGhpcy5fc3Rha2luZ0J1aWxkZXIgPSBuZXcgU3Rha2luZ0J1aWxkZXIodGhpcy5fY29pbkNvbmZpZykudHlwZSh0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc3Rha2luZ0J1aWxkZXI7XG4gIH1cblxuICBwcml2YXRlIGdldFN0YWtpbmcoKTogU3Rha2luZ0NhbGwge1xuICAgIGlmICghdGhpcy5fc3Rha2luZ0J1aWxkZXIpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ05vIHN0YWtpbmcgaW5mb3JtYXRpb24gc2V0Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zdGFraW5nQnVpbGRlci5idWlsZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExvY2tTdGFrZVRyYW5zYWN0aW9uKCk6IFR4RGF0YSB7XG4gICAgY29uc3Qgc3Rha2UgPSB0aGlzLmdldFN0YWtpbmcoKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5idWlsZEJhc2Uoc3Rha2Uuc2VyaWFsaXplKCkpO1xuICAgIGRhdGEudG8gPSBzdGFrZS5hZGRyZXNzO1xuICAgIGRhdGEudmFsdWUgPSBzdGFrZS5hbW91bnQ7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTdGFraW5nVHJhbnNhY3Rpb24oKTogVHhEYXRhIHtcbiAgICBjb25zdCBzdGFrZSA9IHRoaXMuZ2V0U3Rha2luZygpO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1aWxkQmFzZShzdGFrZS5zZXJpYWxpemUoKSk7XG4gICAgZGF0YS50byA9IHN0YWtlLmFkZHJlc3M7XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZpbmFsIHYgdmFsdWUuIEZpbmFsIHYgaXMgZGVzY3JpYmVkIGluIEVJUC0xNTUuXG4gICAqXG4gICAqIEBwcm90ZWN0ZWQgZm9yIGludGVybmFsIHVzZSB3aGVuIHRoZSBlbmFibGVGaW5hbFZGaWVsZCBmbGFnIGlzIHRydWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RmluYWxWKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFkZEhleFByZWZpeCh0aGlzLl9jb21tb24uY2hhaW5JZEJOKCkudG9TdHJpbmcoMTYpKTtcbiAgfVxuICAvLyBlbmRyZWdpb25cbn1cbiJdfQ==
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { TransferBuilder as EthTransferBuilder } from '@bitgo/sdk-coin-eth';
|
|
2
|
-
/** CELO transfer builder */
|
|
3
|
-
export declare class TransferBuilder extends EthTransferBuilder {
|
|
4
|
-
/**
|
|
5
|
-
* Get the prefix used in generating an operation hash for sending tokens
|
|
6
|
-
* See https://github.com/BitGo/eth-multisig-v2/blob/master/contracts/coins/CeloWalletSimple.sol
|
|
7
|
-
*
|
|
8
|
-
* @returns the string prefix
|
|
9
|
-
*/
|
|
10
|
-
protected getTokenOperationHashPrefix(): string;
|
|
11
|
-
/**
|
|
12
|
-
* Get the prefix used in generating an operation hash for sending native coins
|
|
13
|
-
* See https://github.com/BitGo/eth-multisig-v2/blob/master/contracts/coins/CeloWalletSimple.sol
|
|
14
|
-
*
|
|
15
|
-
* @returns the string prefix
|
|
16
|
-
*/
|
|
17
|
-
protected getNativeOperationHashPrefix(): string;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/celo/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,4BAA4B;AAC5B,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD;;;;;OAKG;IACH,SAAS,CAAC,2BAA2B,IAAI,MAAM;IAI/C;;;;;OAKG;IACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;CAGjD"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransferBuilder = void 0;
|
|
4
|
-
const sdk_coin_eth_1 = require("@bitgo/sdk-coin-eth");
|
|
5
|
-
/** CELO transfer builder */
|
|
6
|
-
class TransferBuilder extends sdk_coin_eth_1.TransferBuilder {
|
|
7
|
-
/**
|
|
8
|
-
* Get the prefix used in generating an operation hash for sending tokens
|
|
9
|
-
* See https://github.com/BitGo/eth-multisig-v2/blob/master/contracts/coins/CeloWalletSimple.sol
|
|
10
|
-
*
|
|
11
|
-
* @returns the string prefix
|
|
12
|
-
*/
|
|
13
|
-
getTokenOperationHashPrefix() {
|
|
14
|
-
return 'CELO-ERC20';
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Get the prefix used in generating an operation hash for sending native coins
|
|
18
|
-
* See https://github.com/BitGo/eth-multisig-v2/blob/master/contracts/coins/CeloWalletSimple.sol
|
|
19
|
-
*
|
|
20
|
-
* @returns the string prefix
|
|
21
|
-
*/
|
|
22
|
-
getNativeOperationHashPrefix() {
|
|
23
|
-
return 'CELO';
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.TransferBuilder = TransferBuilder;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vY2Vsby90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQTRFO0FBRTVFLDRCQUE0QjtBQUM1QixNQUFhLGVBQWdCLFNBQVEsOEJBQWtCO0lBQ3JEOzs7OztPQUtHO0lBQ08sMkJBQTJCO1FBQ25DLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLDRCQUE0QjtRQUNwQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFwQkQsMENBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIGFzIEV0aFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJ0BiaXRnby9zZGstY29pbi1ldGgnO1xuXG4vKiogQ0VMTyB0cmFuc2ZlciBidWlsZGVyICovXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgRXRoVHJhbnNmZXJCdWlsZGVyIHtcbiAgLyoqXG4gICAqIEdldCB0aGUgcHJlZml4IHVzZWQgaW4gZ2VuZXJhdGluZyBhbiBvcGVyYXRpb24gaGFzaCBmb3Igc2VuZGluZyB0b2tlbnNcbiAgICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9CaXRHby9ldGgtbXVsdGlzaWctdjIvYmxvYi9tYXN0ZXIvY29udHJhY3RzL2NvaW5zL0NlbG9XYWxsZXRTaW1wbGUuc29sXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBzdHJpbmcgcHJlZml4XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VG9rZW5PcGVyYXRpb25IYXNoUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdDRUxPLUVSQzIwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByZWZpeCB1c2VkIGluIGdlbmVyYXRpbmcgYW4gb3BlcmF0aW9uIGhhc2ggZm9yIHNlbmRpbmcgbmF0aXZlIGNvaW5zXG4gICAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vQml0R28vZXRoLW11bHRpc2lnLXYyL2Jsb2IvbWFzdGVyL2NvbnRyYWN0cy9jb2lucy9DZWxvV2FsbGV0U2ltcGxlLnNvbFxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHByZWZpeFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5hdGl2ZU9wZXJhdGlvbkhhc2hQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ0NFTE8nO1xuICB9XG59XG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { EthLikeTransactionData, KeyPair, LegacyTxData } from '@bitgo/sdk-coin-eth';
|
|
3
|
-
export declare class CeloTransaction {
|
|
4
|
-
private raw;
|
|
5
|
-
private _from;
|
|
6
|
-
private _senderPubKey?;
|
|
7
|
-
private _signatures;
|
|
8
|
-
private _feeCurrency;
|
|
9
|
-
private _gatewayFeeRecipient;
|
|
10
|
-
private _gatewayFee;
|
|
11
|
-
nonce: Buffer;
|
|
12
|
-
gasLimit: Buffer;
|
|
13
|
-
gasPrice: Buffer;
|
|
14
|
-
data: Buffer;
|
|
15
|
-
value: Buffer;
|
|
16
|
-
to: Buffer;
|
|
17
|
-
v: Buffer;
|
|
18
|
-
r: Buffer;
|
|
19
|
-
s: Buffer;
|
|
20
|
-
/**
|
|
21
|
-
* Clean hex formatted values ensuring they have an even length
|
|
22
|
-
*
|
|
23
|
-
* @param numberValue Hex formatted number value. Example '0x01'
|
|
24
|
-
* @returns sanitized value
|
|
25
|
-
*/
|
|
26
|
-
private sanitizeHexString;
|
|
27
|
-
constructor(tx: LegacyTxData);
|
|
28
|
-
private initRaw;
|
|
29
|
-
hash(includeSignature?: boolean): Buffer;
|
|
30
|
-
getSenderAddress(): Buffer;
|
|
31
|
-
getSenderPublicKey(): any;
|
|
32
|
-
serialize(): Buffer;
|
|
33
|
-
sign(privateKey: Buffer): void;
|
|
34
|
-
verifySignature(): boolean;
|
|
35
|
-
getChainId(): number;
|
|
36
|
-
}
|
|
37
|
-
export declare class CeloTransactionData implements EthLikeTransactionData {
|
|
38
|
-
private tx;
|
|
39
|
-
private deployedAddress?;
|
|
40
|
-
constructor(tx: CeloTransaction, deployedAddress?: string);
|
|
41
|
-
static fromJson(tx: LegacyTxData): CeloTransactionData;
|
|
42
|
-
sign(keyPair: KeyPair): Promise<void>;
|
|
43
|
-
/** @inheritdoc */
|
|
44
|
-
toJson(): LegacyTxData;
|
|
45
|
-
private setSignatureFields;
|
|
46
|
-
/** @inheritdoc */
|
|
47
|
-
toSerialized(): string;
|
|
48
|
-
private static txJsonToCeloTx;
|
|
49
|
-
private static encodedTxToJson;
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/coin/celo/types.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,sBAAsB,EAAsB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExG,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAC,CAAC;IACvB,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,WAAW,CAA0B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAgB;IAC1B,CAAC,EAAE,MAAM,CAAgB;IACzB,CAAC,EAAE,MAAM,CAAgB;IACzB,CAAC,EAAE,MAAM,CAAgB;IAGzB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;gBASb,EAAE,EAAE,YAAY;IAwB5B,OAAO,CAAC,OAAO;IAiBf,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM;IAUxC,gBAAgB,IAAI,MAAM;IAS1B,kBAAkB;IAQlB,SAAS,IAAI,MAAM;IAInB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI9B,eAAe,IAAI,OAAO;IAY1B,UAAU,IAAI,MAAM;CAOrB;AAED,qBAAa,mBAAoB,YAAW,sBAAsB;IAChE,OAAO,CAAC,EAAE,CAAkB;IAC5B,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,EAAE,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,MAAM;WAK3C,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,mBAAmB;IAoBvD,IAAI,CAAC,OAAO,EAAE,OAAO;IAe3B,kBAAkB;IAClB,MAAM,IAAI,YAAY;IAiCtB,OAAO,CAAC,kBAAkB;IAc1B,kBAAkB;IAClB,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B,OAAO,CAAC,MAAM,CAAC,eAAe;CAS/B"}
|