@bitgo-beta/abstract-eth 1.0.2-beta.54 → 1.0.2-beta.540
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 +1269 -0
- package/dist/src/abstractEthLikeCoin.d.ts +10 -5
- package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
- package/dist/src/abstractEthLikeCoin.js +14 -11
- package/dist/src/abstractEthLikeNewCoins.d.ts +625 -0
- package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
- package/dist/src/abstractEthLikeNewCoins.js +1833 -0
- package/dist/src/ethLikeToken.d.ts +34 -4
- package/dist/src/ethLikeToken.d.ts.map +1 -1
- package/dist/src/ethLikeToken.js +281 -7
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -2
- package/dist/src/lib/contractCall.d.ts +8 -0
- package/dist/src/lib/contractCall.d.ts.map +1 -0
- package/dist/src/lib/contractCall.js +17 -0
- package/dist/src/lib/iface.d.ts +132 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +8 -0
- package/dist/src/lib/index.d.ts +15 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +46 -0
- package/dist/src/lib/keyPair.d.ts +26 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +66 -0
- package/dist/src/lib/transaction.d.ts +64 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +137 -0
- package/dist/src/lib/transactionBuilder.d.ts +239 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +718 -0
- package/dist/src/lib/transferBuilder.d.ts +67 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +246 -0
- package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +52 -0
- package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +114 -0
- package/dist/src/lib/transferBuilders/index.d.ts +4 -0
- package/dist/src/lib/transferBuilders/index.d.ts.map +1 -0
- package/dist/src/lib/transferBuilders/index.js +20 -0
- package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts +16 -0
- package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts.map +1 -0
- package/dist/src/lib/transferBuilders/transferBuilderERC1155.js +93 -0
- package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts +15 -0
- package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts.map +1 -0
- package/dist/src/lib/transferBuilders/transferBuilderERC721.js +78 -0
- package/dist/src/lib/types.d.ts +39 -0
- package/dist/src/lib/types.d.ts.map +1 -0
- package/dist/src/lib/types.js +137 -0
- package/dist/src/lib/utils.d.ts +263 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +681 -0
- package/dist/src/lib/walletUtil.d.ts +30 -0
- package/dist/src/lib/walletUtil.d.ts.map +1 -0
- package/dist/src/lib/walletUtil.js +33 -0
- package/dist/tsconfig.tsbuildinfo +1 -7922
- package/package.json +24 -9
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/** ETH transfer builder */
|
|
3
|
+
export declare class TransferBuilder {
|
|
4
|
+
private readonly _EMPTY_HEX_VALUE;
|
|
5
|
+
protected _amount: string;
|
|
6
|
+
protected _toAddress: string;
|
|
7
|
+
protected _sequenceId: number;
|
|
8
|
+
protected _signKey: string;
|
|
9
|
+
protected _expirationTime: number;
|
|
10
|
+
protected _signature: string;
|
|
11
|
+
private _data;
|
|
12
|
+
private _tokenContractAddress?;
|
|
13
|
+
private _coin;
|
|
14
|
+
private _chainId?;
|
|
15
|
+
private _coinUsesNonPackedEncodingForTxData?;
|
|
16
|
+
constructor(serializedData?: string);
|
|
17
|
+
/**
|
|
18
|
+
* A method to set the native coin or ERC20 token to be transferred.
|
|
19
|
+
* This ERC20 token may not be compatible with the network.
|
|
20
|
+
*
|
|
21
|
+
* @param {string} coin - the native coin or ERC20 token to be set
|
|
22
|
+
* @returns {TransferBuilder} the transfer builder instance modified
|
|
23
|
+
*/
|
|
24
|
+
coin(coin: string): TransferBuilder;
|
|
25
|
+
data(additionalData: string): TransferBuilder;
|
|
26
|
+
amount(amount: string): this;
|
|
27
|
+
to(address: string): TransferBuilder;
|
|
28
|
+
contractSequenceId(counter: number): TransferBuilder;
|
|
29
|
+
key(signKey: string): TransferBuilder;
|
|
30
|
+
expirationTime(date: number): TransferBuilder;
|
|
31
|
+
signAndBuild(chainId?: string, coinUsesNonPackedEncodingForTxData?: boolean): string;
|
|
32
|
+
private hasMandatoryFields;
|
|
33
|
+
/**
|
|
34
|
+
* Obtains the proper operation hash to sign either a sendMultiSig data
|
|
35
|
+
* or a sendMultiSigToken data
|
|
36
|
+
*
|
|
37
|
+
* @returns {string} the operation hash
|
|
38
|
+
*/
|
|
39
|
+
private getOperationHash;
|
|
40
|
+
protected getOperationData(): (string | Buffer)[][];
|
|
41
|
+
/**
|
|
42
|
+
* Get the prefix used in generating an operation hash for sending tokens
|
|
43
|
+
*
|
|
44
|
+
* @returns the string prefix
|
|
45
|
+
*/
|
|
46
|
+
protected getTokenOperationHashPrefix(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Get the prefix used in generating an operation hash for sending native coins
|
|
49
|
+
*
|
|
50
|
+
* @returns the string prefix
|
|
51
|
+
*/
|
|
52
|
+
protected getNativeOperationHashPrefix(): string;
|
|
53
|
+
/** Return an expiration time, in seconds, set to one hour from now
|
|
54
|
+
*
|
|
55
|
+
* @returns {number} expiration time
|
|
56
|
+
*/
|
|
57
|
+
private getExpirationTime;
|
|
58
|
+
/**
|
|
59
|
+
* If a signing key is set for this builder, recalculates the signature
|
|
60
|
+
*
|
|
61
|
+
* @returns {string} the signature value
|
|
62
|
+
*/
|
|
63
|
+
protected getSignature(): string;
|
|
64
|
+
protected ethSignMsgHash(): string;
|
|
65
|
+
private decodeTransferData;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":";AAQA,2BAA2B;AAC3B,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,mCAAmC,CAAC,CAAU;gBAE1C,cAAc,CAAC,EAAE,MAAM;IAWnC;;;;;;OAMG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IASnC,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe;IAM7C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS5B,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IASpC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IASpD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;IAKrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;IAS7C,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,kCAAkC,CAAC,EAAE,OAAO,GAAG,MAAM;IAiCpF,OAAO,CAAC,kBAAkB;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAiBxB,SAAS,CAAC,gBAAgB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE;IAiCnD;;;;OAIG;IACH,SAAS,CAAC,2BAA2B,IAAI,MAAM;IAI/C;;;;OAIG;IACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;IAIhD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM;IAOhC,SAAS,CAAC,cAAc,IAAI,MAAM;IAoBlC,OAAO,CAAC,kBAAkB;CAiB3B"}
|
|
@@ -0,0 +1,246 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.TransferBuilder = void 0;
|
|
30
|
+
const ethUtil = __importStar(require("ethereumjs-util"));
|
|
31
|
+
const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
|
|
32
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
33
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
34
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
35
|
+
const utils_1 = require("./utils");
|
|
36
|
+
const utils_2 = require("ethers/lib/utils");
|
|
37
|
+
/** ETH transfer builder */
|
|
38
|
+
class TransferBuilder {
|
|
39
|
+
constructor(serializedData) {
|
|
40
|
+
this._EMPTY_HEX_VALUE = '0x';
|
|
41
|
+
if (serializedData) {
|
|
42
|
+
this.decodeTransferData(serializedData);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// initialize with default values for non mandatory fields
|
|
46
|
+
this._expirationTime = this.getExpirationTime();
|
|
47
|
+
this._data = this._EMPTY_HEX_VALUE;
|
|
48
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A method to set the native coin or ERC20 token to be transferred.
|
|
53
|
+
* This ERC20 token may not be compatible with the network.
|
|
54
|
+
*
|
|
55
|
+
* @param {string} coin - the native coin or ERC20 token to be set
|
|
56
|
+
* @returns {TransferBuilder} the transfer builder instance modified
|
|
57
|
+
*/
|
|
58
|
+
coin(coin) {
|
|
59
|
+
this._coin = statics_1.coins.get(coin);
|
|
60
|
+
if (this._coin instanceof statics_1.ContractAddressDefinedToken) {
|
|
61
|
+
this._tokenContractAddress = this._coin.contractAddress.toString();
|
|
62
|
+
}
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
data(additionalData) {
|
|
66
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
67
|
+
this._data = additionalData;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
amount(amount) {
|
|
71
|
+
if (!(0, utils_1.isValidAmount)(amount)) {
|
|
72
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
|
|
73
|
+
}
|
|
74
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
75
|
+
this._amount = amount;
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
to(address) {
|
|
79
|
+
if ((0, utils_1.isValidEthAddress)(address)) {
|
|
80
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
81
|
+
this._toAddress = address;
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
85
|
+
}
|
|
86
|
+
contractSequenceId(counter) {
|
|
87
|
+
if (counter >= 0) {
|
|
88
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
89
|
+
this._sequenceId = counter;
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid contract sequence id');
|
|
93
|
+
}
|
|
94
|
+
key(signKey) {
|
|
95
|
+
this._signKey = signKey;
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
expirationTime(date) {
|
|
99
|
+
if (date > 0) {
|
|
100
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
101
|
+
this._expirationTime = date;
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid expiration time');
|
|
105
|
+
}
|
|
106
|
+
signAndBuild(chainId, coinUsesNonPackedEncodingForTxData) {
|
|
107
|
+
this._chainId = chainId;
|
|
108
|
+
// If the coin uses non-packed encoding for tx data, the operation hash is calculated differently
|
|
109
|
+
// This new encoding type is applicable only for native coins and not tokens
|
|
110
|
+
this._coinUsesNonPackedEncodingForTxData =
|
|
111
|
+
coinUsesNonPackedEncodingForTxData && this._tokenContractAddress === undefined;
|
|
112
|
+
if (this.hasMandatoryFields()) {
|
|
113
|
+
if (this._tokenContractAddress !== undefined) {
|
|
114
|
+
return (0, utils_1.sendMultiSigTokenData)(this._toAddress, this._amount, this._tokenContractAddress, this._expirationTime, this._sequenceId, this.getSignature());
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return (0, utils_1.sendMultiSigData)(this._toAddress, this._amount, this._data, this._expirationTime, this._sequenceId, this.getSignature());
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
throw new sdk_core_1.BuildTransactionError('Missing transfer mandatory fields. Amount, destination (to) address and sequenceID are mandatory');
|
|
121
|
+
}
|
|
122
|
+
hasMandatoryFields() {
|
|
123
|
+
return this._amount !== undefined && this._toAddress !== undefined && this._sequenceId !== undefined;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Obtains the proper operation hash to sign either a sendMultiSig data
|
|
127
|
+
* or a sendMultiSigToken data
|
|
128
|
+
*
|
|
129
|
+
* @returns {string} the operation hash
|
|
130
|
+
*/
|
|
131
|
+
getOperationHash() {
|
|
132
|
+
const operationData = this.getOperationData();
|
|
133
|
+
let operationHash;
|
|
134
|
+
if (this._coinUsesNonPackedEncodingForTxData) {
|
|
135
|
+
const types = operationData[0];
|
|
136
|
+
const values = operationData[1].map((item) => item instanceof Buffer ? '0x' + item.toString('hex') : item);
|
|
137
|
+
operationHash = (0, utils_2.keccak256)(utils_2.defaultAbiCoder.encode(types, values));
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// If the coin uses packed encoding for tx data or it is a token, the operation hash is calculated using the Ethereum ABI
|
|
141
|
+
operationHash = ethUtil.bufferToHex(ethereumjs_abi_1.default.soliditySHA3(...operationData));
|
|
142
|
+
}
|
|
143
|
+
return operationHash;
|
|
144
|
+
}
|
|
145
|
+
getOperationData() {
|
|
146
|
+
let operationData;
|
|
147
|
+
if (this._tokenContractAddress !== undefined) {
|
|
148
|
+
operationData = [
|
|
149
|
+
['string', 'address', 'uint', 'address', 'uint', 'uint'],
|
|
150
|
+
[
|
|
151
|
+
this.getTokenOperationHashPrefix(),
|
|
152
|
+
new bn_js_1.default(ethUtil.stripHexPrefix(this._toAddress), 16),
|
|
153
|
+
this._amount,
|
|
154
|
+
new bn_js_1.default(ethUtil.stripHexPrefix(this._tokenContractAddress), 16),
|
|
155
|
+
this._expirationTime,
|
|
156
|
+
this._sequenceId,
|
|
157
|
+
],
|
|
158
|
+
];
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
const toAddress = this._coinUsesNonPackedEncodingForTxData
|
|
162
|
+
? this._toAddress
|
|
163
|
+
: new bn_js_1.default(ethUtil.stripHexPrefix(this._toAddress), 16);
|
|
164
|
+
operationData = [
|
|
165
|
+
['string', 'address', 'uint', 'bytes', 'uint', 'uint'],
|
|
166
|
+
[
|
|
167
|
+
this.getNativeOperationHashPrefix(),
|
|
168
|
+
toAddress,
|
|
169
|
+
this._amount,
|
|
170
|
+
Buffer.from(ethUtil.padToEven(ethUtil.stripHexPrefix(this._data)) || '', 'hex'),
|
|
171
|
+
this._expirationTime,
|
|
172
|
+
this._sequenceId,
|
|
173
|
+
],
|
|
174
|
+
];
|
|
175
|
+
}
|
|
176
|
+
return operationData;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get the prefix used in generating an operation hash for sending tokens
|
|
180
|
+
*
|
|
181
|
+
* @returns the string prefix
|
|
182
|
+
*/
|
|
183
|
+
getTokenOperationHashPrefix() {
|
|
184
|
+
var _a, _b, _c, _d;
|
|
185
|
+
return (_d = (_c = (_b = (_a = this._coin) === null || _a === void 0 ? void 0 : _a.network) === null || _b === void 0 ? void 0 : _b.tokenOperationHashPrefix) !== null && _c !== void 0 ? _c : `${this._chainId}-ERC20`) !== null && _d !== void 0 ? _d : 'ERC20';
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get the prefix used in generating an operation hash for sending native coins
|
|
189
|
+
*
|
|
190
|
+
* @returns the string prefix
|
|
191
|
+
*/
|
|
192
|
+
getNativeOperationHashPrefix() {
|
|
193
|
+
var _a, _b, _c, _d;
|
|
194
|
+
return (_d = (_c = (_b = (_a = this._coin) === null || _a === void 0 ? void 0 : _a.network) === null || _b === void 0 ? void 0 : _b.nativeCoinOperationHashPrefix) !== null && _c !== void 0 ? _c : `${this._chainId}`) !== null && _d !== void 0 ? _d : 'ETHER';
|
|
195
|
+
}
|
|
196
|
+
/** Return an expiration time, in seconds, set to one hour from now
|
|
197
|
+
*
|
|
198
|
+
* @returns {number} expiration time
|
|
199
|
+
*/
|
|
200
|
+
getExpirationTime() {
|
|
201
|
+
const currentDate = new Date();
|
|
202
|
+
currentDate.setHours(currentDate.getHours() + 1);
|
|
203
|
+
return currentDate.getTime() / 1000;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* If a signing key is set for this builder, recalculates the signature
|
|
207
|
+
*
|
|
208
|
+
* @returns {string} the signature value
|
|
209
|
+
*/
|
|
210
|
+
getSignature() {
|
|
211
|
+
if (this._signKey) {
|
|
212
|
+
this._signature = this.ethSignMsgHash();
|
|
213
|
+
}
|
|
214
|
+
return this._signature;
|
|
215
|
+
}
|
|
216
|
+
ethSignMsgHash() {
|
|
217
|
+
const data = this.getOperationHash();
|
|
218
|
+
const keyBuffer = Buffer.from(ethUtil.padToEven(this._signKey), 'hex');
|
|
219
|
+
if (keyBuffer.length !== 32) {
|
|
220
|
+
throw new Error('private key length is invalid');
|
|
221
|
+
}
|
|
222
|
+
const signatureInParts = ethUtil.ecsign(Buffer.from(ethUtil.padToEven(ethUtil.stripHexPrefix(data)), 'hex'), keyBuffer);
|
|
223
|
+
// Assemble strings from r, s and v
|
|
224
|
+
const r = ethUtil.setLengthLeft(signatureInParts.r, 32).toString('hex');
|
|
225
|
+
const s = ethUtil.setLengthLeft(signatureInParts.s, 32).toString('hex');
|
|
226
|
+
const v = ethUtil.stripHexPrefix(ethUtil.intToHex(signatureInParts.v));
|
|
227
|
+
// Concatenate the r, s and v parts to make the signature string
|
|
228
|
+
return ethUtil.addHexPrefix(r.concat(s, v));
|
|
229
|
+
}
|
|
230
|
+
decodeTransferData(data) {
|
|
231
|
+
const transferData = (0, utils_1.decodeTransferData)(data);
|
|
232
|
+
this._toAddress = transferData.to;
|
|
233
|
+
this._amount = transferData.amount;
|
|
234
|
+
this._expirationTime = transferData.expireTime;
|
|
235
|
+
this._sequenceId = transferData.sequenceId;
|
|
236
|
+
this._signature = transferData.signature;
|
|
237
|
+
if (transferData.data) {
|
|
238
|
+
this._data = transferData.data;
|
|
239
|
+
}
|
|
240
|
+
if (transferData.tokenContractAddress) {
|
|
241
|
+
this._tokenContractAddress = transferData.tokenContractAddress;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
exports.TransferBuilder = TransferBuilder;
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBMkM7QUFDM0Msb0VBQXlDO0FBQ3pDLGtEQUF1QjtBQUN2QixpREFBc0g7QUFDdEgsbURBQXlGO0FBQ3pGLG1DQUF3SDtBQUN4SCw0Q0FBOEQ7QUFFOUQsMkJBQTJCO0FBQzNCLE1BQWEsZUFBZTtJQWMxQixZQUFZLGNBQXVCO1FBYmxCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQWN2QyxJQUFJLGNBQWMsRUFBRTtZQUNsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLDBEQUEwRDtZQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksQ0FBQyxJQUFZO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLEtBQUssWUFBWSxxQ0FBMkIsRUFBRTtZQUNyRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDcEU7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsY0FBc0I7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDeEMsSUFB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anMtdXRpbCc7XG5pbXBvcnQgRXRoZXJldW1BYmkgZnJvbSAnZXRoZXJldW1qcy1hYmknO1xuaW1wb3J0IEJOIGZyb20gJ2JuLmpzJztcbmltcG9ydCB7IGNvaW5zLCBCYXNlQ29pbiwgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuLCBFdGhlcmV1bU5ldHdvcmsgYXMgRXRoTGlrZU5ldHdvcmsgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBkZWNvZGVUcmFuc2ZlckRhdGEsIHNlbmRNdWx0aVNpZ0RhdGEsIHNlbmRNdWx0aVNpZ1Rva2VuRGF0YSwgaXNWYWxpZEV0aEFkZHJlc3MsIGlzVmFsaWRBbW91bnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGRlZmF1bHRBYmlDb2Rlciwga2VjY2FrMjU2IH0gZnJvbSAnZXRoZXJzL2xpYi91dGlscyc7XG5cbi8qKiBFVEggdHJhbnNmZXIgYnVpbGRlciAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX0VNUFRZX0hFWF9WQUxVRSA9ICcweCc7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdG9BZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc2VxdWVuY2VJZDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3NpZ25LZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9leHBpcmF0aW9uVGltZTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZTogc3RyaW5nO1xuICBwcml2YXRlIF9kYXRhOiBzdHJpbmc7XG4gIHByaXZhdGUgX3Rva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBwcml2YXRlIF9jb2luOiBSZWFkb25seTxCYXNlQ29pbj47XG4gIHByaXZhdGUgX2NoYWluSWQ/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvaW5Vc2VzTm9uUGFja2VkRW5jb2RpbmdGb3JUeERhdGE/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHNlcmlhbGl6ZWREYXRhPzogc3RyaW5nKSB7XG4gICAgaWYgKHNlcmlhbGl6ZWREYXRhKSB7XG4gICAgICB0aGlzLmRlY29kZVRyYW5zZmVyRGF0YShzZXJpYWxpemVkRGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluaXRpYWxpemUgd2l0aCBkZWZhdWx0IHZhbHVlcyBmb3Igbm9uIG1hbmRhdG9yeSBmaWVsZHNcbiAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gdGhpcy5nZXRFeHBpcmF0aW9uVGltZSgpO1xuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQSBtZXRob2QgdG8gc2V0IHRoZSBuYXRpdmUgY29pbiBvciBFUkMyMCB0b2tlbiB0byBiZSB0cmFuc2ZlcnJlZC5cbiAgICogVGhpcyBFUkMyMCB0b2tlbiBtYXkgbm90IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgbmV0d29yay5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvaW4gLSB0aGUgbmF0aXZlIGNvaW4gb3IgRVJDMjAgdG9rZW4gdG8gYmUgc2V0XG4gICAqIEByZXR1cm5zIHtUcmFuc2ZlckJ1aWxkZXJ9IHRoZSB0cmFuc2ZlciBidWlsZGVyIGluc3RhbmNlIG1vZGlmaWVkXG4gICAqL1xuICBjb2luKGNvaW46IHN0cmluZyk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgdGhpcy5fY29pbiA9IGNvaW5zLmdldChjb2luKTtcbiAgICBpZiAodGhpcy5fY29pbiBpbnN0YW5jZW9mIENvbnRyYWN0QWRkcmVzc0RlZmluZWRUb2tlbikge1xuICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPSB0aGlzLl9jb2luLmNvbnRyYWN0QWRkcmVzcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGF0YShhZGRpdGlvbmFsRGF0YTogc3RyaW5nKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgdGhpcy5fZGF0YSA9IGFkZGl0aW9uYWxEYXRhO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFpc1ZhbGlkQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgIHRoaXMuX2Ftb3VudCA9IGFtb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHRvKGFkZHJlc3M6IHN0cmluZyk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgaWYgKGlzVmFsaWRFdGhBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl90b0FkZHJlc3MgPSBhZGRyZXNzO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gIH1cblxuICBjb250cmFjdFNlcXVlbmNlSWQoY291bnRlcjogbnVtYmVyKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICBpZiAoY291bnRlciA+PSAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl9zZXF1ZW5jZUlkID0gY291bnRlcjtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgY29udHJhY3Qgc2VxdWVuY2UgaWQnKTtcbiAgfVxuXG4gIGtleShzaWduS2V5OiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX3NpZ25LZXkgPSBzaWduS2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXhwaXJhdGlvblRpbWUoZGF0ZTogbnVtYmVyKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICBpZiAoZGF0ZSA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gZGF0ZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgZXhwaXJhdGlvbiB0aW1lJyk7XG4gIH1cblxuICBzaWduQW5kQnVpbGQoY2hhaW5JZD86IHN0cmluZywgY29pblVzZXNOb25QYWNrZWRFbmNvZGluZ0ZvclR4RGF0YT86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIHRoaXMuX2NoYWluSWQgPSBjaGFpbklkO1xuXG4gICAgLy8gSWYgdGhlIGNvaW4gdXNlcyBub24tcGFja2VkIGVuY29kaW5nIGZvciB0eCBkYXRhLCB0aGUgb3BlcmF0aW9uIGhhc2ggaXMgY2FsY3VsYXRlZCBkaWZmZXJlbnRseVxuICAgIC8vIFRoaXMgbmV3IGVuY29kaW5nIHR5cGUgaXMgYXBwbGljYWJsZSBvbmx5IGZvciBuYXRpdmUgY29pbnMgYW5kIG5vdCB0b2tlbnNcbiAgICB0aGlzLl9jb2luVXNlc05vblBhY2tlZEVuY29kaW5nRm9yVHhEYXRhID1cbiAgICAgIGNvaW5Vc2VzTm9uUGFja2VkRW5jb2RpbmdGb3JUeERhdGEgJiYgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPT09IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5oYXNNYW5kYXRvcnlGaWVsZHMoKSkge1xuICAgICAgaWYgKHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRNdWx0aVNpZ1Rva2VuRGF0YShcbiAgICAgICAgICB0aGlzLl90b0FkZHJlc3MsXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lLFxuICAgICAgICAgIHRoaXMuX3NlcXVlbmNlSWQsXG4gICAgICAgICAgdGhpcy5nZXRTaWduYXR1cmUoKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNlbmRNdWx0aVNpZ0RhdGEoXG4gICAgICAgICAgdGhpcy5fdG9BZGRyZXNzLFxuICAgICAgICAgIHRoaXMuX2Ftb3VudCxcbiAgICAgICAgICB0aGlzLl9kYXRhLFxuICAgICAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lLFxuICAgICAgICAgIHRoaXMuX3NlcXVlbmNlSWQsXG4gICAgICAgICAgdGhpcy5nZXRTaWduYXR1cmUoKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgJ01pc3NpbmcgdHJhbnNmZXIgbWFuZGF0b3J5IGZpZWxkcy4gQW1vdW50LCBkZXN0aW5hdGlvbiAodG8pIGFkZHJlc3MgYW5kIHNlcXVlbmNlSUQgYXJlIG1hbmRhdG9yeSdcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNNYW5kYXRvcnlGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Ftb3VudCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3RvQWRkcmVzcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3NlcXVlbmNlSWQgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRhaW5zIHRoZSBwcm9wZXIgb3BlcmF0aW9uIGhhc2ggdG8gc2lnbiBlaXRoZXIgYSBzZW5kTXVsdGlTaWcgZGF0YVxuICAgKiBvciBhIHNlbmRNdWx0aVNpZ1Rva2VuIGRhdGFcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIG9wZXJhdGlvbiBoYXNoXG4gICAqL1xuICBwcml2YXRlIGdldE9wZXJhdGlvbkhhc2goKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcGVyYXRpb25EYXRhID0gdGhpcy5nZXRPcGVyYXRpb25EYXRhKCk7XG4gICAgbGV0IG9wZXJhdGlvbkhhc2g6IHN0cmluZztcblxuICAgIGlmICh0aGlzLl9jb2luVXNlc05vblBhY2tlZEVuY29kaW5nRm9yVHhEYXRhKSB7XG4gICAgICBjb25zdCB0eXBlczogc3RyaW5nW10gPSBvcGVyYXRpb25EYXRhWzBdIGFzIHN0cmluZ1tdO1xuICAgICAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IG9wZXJhdGlvbkRhdGFbMV0ubWFwKChpdGVtKSA9PlxuICAgICAgICBpdGVtIGluc3RhbmNlb2YgQnVmZmVyID8gJzB4JyArIGl0ZW0udG9TdHJpbmcoJ2hleCcpIDogaXRlbVxuICAgICAgKTtcbiAgICAgIG9wZXJhdGlvbkhhc2ggPSBrZWNjYWsyNTYoZGVmYXVsdEFiaUNvZGVyLmVuY29kZSh0eXBlcywgdmFsdWVzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZSBjb2luIHVzZXMgcGFja2VkIGVuY29kaW5nIGZvciB0eCBkYXRhIG9yIGl0IGlzIGEgdG9rZW4sIHRoZSBvcGVyYXRpb24gaGFzaCBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZSBFdGhlcmV1bSBBQklcbiAgICAgIG9wZXJhdGlvbkhhc2ggPSBldGhVdGlsLmJ1ZmZlclRvSGV4KEV0aGVyZXVtQWJpLnNvbGlkaXR5U0hBMyguLi5vcGVyYXRpb25EYXRhKSk7XG4gICAgfVxuICAgIHJldHVybiBvcGVyYXRpb25IYXNoO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE9wZXJhdGlvbkRhdGEoKTogKHN0cmluZyB8IEJ1ZmZlcilbXVtdIHtcbiAgICBsZXQgb3BlcmF0aW9uRGF0YTtcbiAgICBpZiAodGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3BlcmF0aW9uRGF0YSA9IFtcbiAgICAgICAgWydzdHJpbmcnLCAnYWRkcmVzcycsICd1aW50JywgJ2FkZHJlc3MnLCAndWludCcsICd1aW50J10sXG4gICAgICAgIFtcbiAgICAgICAgICB0aGlzLmdldFRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCgpLFxuICAgICAgICAgIG5ldyBCTihldGhVdGlsLnN0cmlwSGV4UHJlZml4KHRoaXMuX3RvQWRkcmVzcyksIDE2KSxcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgbmV3IEJOKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgodGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MpLCAxNiksXG4gICAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgICAgdGhpcy5fc2VxdWVuY2VJZCxcbiAgICAgICAgXSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHRvQWRkcmVzcyA9IHRoaXMuX2NvaW5Vc2VzTm9uUGFja2VkRW5jb2RpbmdGb3JUeERhdGFcbiAgICAgICAgPyB0aGlzLl90b0FkZHJlc3NcbiAgICAgICAgOiBuZXcgQk4oZXRoVXRpbC5zdHJpcEhleFByZWZpeCh0aGlzLl90b0FkZHJlc3MpLCAxNik7XG4gICAgICBvcGVyYXRpb25EYXRhID0gW1xuICAgICAgICBbJ3N0cmluZycsICdhZGRyZXNzJywgJ3VpbnQnLCAnYnl0ZXMnLCAndWludCcsICd1aW50J10sXG4gICAgICAgIFtcbiAgICAgICAgICB0aGlzLmdldE5hdGl2ZU9wZXJhdGlvbkhhc2hQcmVmaXgoKSxcbiAgICAgICAgICB0b0FkZHJlc3MsXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgIEJ1ZmZlci5mcm9tKGV0aFV0aWwucGFkVG9FdmVuKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgodGhpcy5fZGF0YSkpIHx8ICcnLCAnaGV4JyksXG4gICAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgICAgdGhpcy5fc2VxdWVuY2VJZCxcbiAgICAgICAgXSxcbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBvcGVyYXRpb25EYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJlZml4IHVzZWQgaW4gZ2VuZXJhdGluZyBhbiBvcGVyYXRpb24gaGFzaCBmb3Igc2VuZGluZyB0b2tlbnNcbiAgICpcbiAgICogQHJldHVybnMgdGhlIHN0cmluZyBwcmVmaXhcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUb2tlbk9wZXJhdGlvbkhhc2hQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuX2NvaW4/Lm5ldHdvcmsgYXMgRXRoTGlrZU5ldHdvcmspPy50b2tlbk9wZXJhdGlvbkhhc2hQcmVmaXggPz8gYCR7dGhpcy5fY2hhaW5JZH0tRVJDMjBgID8/ICdFUkMyMCc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmVmaXggdXNlZCBpbiBnZW5lcmF0aW5nIGFuIG9wZXJhdGlvbiBoYXNoIGZvciBzZW5kaW5nIG5hdGl2ZSBjb2luc1xuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHByZWZpeFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5hdGl2ZU9wZXJhdGlvbkhhc2hQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuX2NvaW4/Lm5ldHdvcmsgYXMgRXRoTGlrZU5ldHdvcmspPy5uYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA/PyBgJHt0aGlzLl9jaGFpbklkfWAgPz8gJ0VUSEVSJztcbiAgfVxuXG4gIC8qKiBSZXR1cm4gYW4gZXhwaXJhdGlvbiB0aW1lLCBpbiBzZWNvbmRzLCBzZXQgdG8gb25lIGhvdXIgZnJvbSBub3dcbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gZXhwaXJhdGlvbiB0aW1lXG4gICAqL1xuICBwcml2YXRlIGdldEV4cGlyYXRpb25UaW1lKCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnREYXRlLnNldEhvdXJzKGN1cnJlbnREYXRlLmdldEhvdXJzKCkgKyAxKTtcbiAgICByZXR1cm4gY3VycmVudERhdGUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBhIHNpZ25pbmcga2V5IGlzIHNldCBmb3IgdGhpcyBidWlsZGVyLCByZWNhbGN1bGF0ZXMgdGhlIHNpZ25hdHVyZVxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgc2lnbmF0dXJlIHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0U2lnbmF0dXJlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3NpZ25LZXkpIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuZXRoU2lnbk1zZ0hhc2goKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZSE7XG4gIH1cblxuICBwcm90ZWN0ZWQgZXRoU2lnbk1zZ0hhc2goKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRPcGVyYXRpb25IYXNoKCk7XG4gICAgY29uc3Qga2V5QnVmZmVyID0gQnVmZmVyLmZyb20oZXRoVXRpbC5wYWRUb0V2ZW4odGhpcy5fc2lnbktleSksICdoZXgnKTtcbiAgICBpZiAoa2V5QnVmZmVyLmxlbmd0aCAhPT0gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHJpdmF0ZSBrZXkgbGVuZ3RoIGlzIGludmFsaWQnKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmF0dXJlSW5QYXJ0cyA9IGV0aFV0aWwuZWNzaWduKFxuICAgICAgQnVmZmVyLmZyb20oZXRoVXRpbC5wYWRUb0V2ZW4oZXRoVXRpbC5zdHJpcEhleFByZWZpeChkYXRhKSksICdoZXgnKSxcbiAgICAgIGtleUJ1ZmZlclxuICAgICk7XG5cbiAgICAvLyBBc3NlbWJsZSBzdHJpbmdzIGZyb20gciwgcyBhbmQgdlxuICAgIGNvbnN0IHIgPSBldGhVdGlsLnNldExlbmd0aExlZnQoc2lnbmF0dXJlSW5QYXJ0cy5yLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHMgPSBldGhVdGlsLnNldExlbmd0aExlZnQoc2lnbmF0dXJlSW5QYXJ0cy5zLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IHYgPSBldGhVdGlsLnN0cmlwSGV4UHJlZml4KGV0aFV0aWwuaW50VG9IZXgoc2lnbmF0dXJlSW5QYXJ0cy52KSk7XG5cbiAgICAvLyBDb25jYXRlbmF0ZSB0aGUgciwgcyBhbmQgdiBwYXJ0cyB0byBtYWtlIHRoZSBzaWduYXR1cmUgc3RyaW5nXG4gICAgcmV0dXJuIGV0aFV0aWwuYWRkSGV4UHJlZml4KHIuY29uY2F0KHMsIHYpKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlVHJhbnNmZXJEYXRhKGRhdGE6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zZmVyRGF0YSA9IGRlY29kZVRyYW5zZmVyRGF0YShkYXRhKTtcblxuICAgIHRoaXMuX3RvQWRkcmVzcyA9IHRyYW5zZmVyRGF0YS50bztcbiAgICB0aGlzLl9hbW91bnQgPSB0cmFuc2ZlckRhdGEuYW1vdW50O1xuICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gdHJhbnNmZXJEYXRhLmV4cGlyZVRpbWU7XG4gICAgdGhpcy5fc2VxdWVuY2VJZCA9IHRyYW5zZmVyRGF0YS5zZXF1ZW5jZUlkO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRyYW5zZmVyRGF0YS5zaWduYXR1cmU7XG5cbiAgICBpZiAodHJhbnNmZXJEYXRhLmRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0cmFuc2ZlckRhdGEuZGF0YTtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmZXJEYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzKSB7XG4gICAgICB0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcyA9IHRyYW5zZmVyRGF0YS50b2tlbkNvbnRyYWN0QWRkcmVzcztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BaseCoin } from '@bitgo-beta/statics';
|
|
2
|
+
export declare abstract class BaseNFTTransferBuilder {
|
|
3
|
+
protected readonly _EMPTY_HEX_VALUE = "0x";
|
|
4
|
+
protected _fromAddress: string;
|
|
5
|
+
protected _toAddress: string;
|
|
6
|
+
protected _sequenceId: number;
|
|
7
|
+
protected _signKey: string;
|
|
8
|
+
protected _expirationTime: number;
|
|
9
|
+
protected _signature: string;
|
|
10
|
+
protected _data: string;
|
|
11
|
+
protected _tokenContractAddress: string;
|
|
12
|
+
protected _coin: Readonly<BaseCoin>;
|
|
13
|
+
protected _nativeCoinOperationHashPrefix?: string;
|
|
14
|
+
protected _chainId?: string;
|
|
15
|
+
abstract build(): string;
|
|
16
|
+
protected constructor(serializedData?: string);
|
|
17
|
+
expirationTime(date: number): this;
|
|
18
|
+
key(signKey: string): this;
|
|
19
|
+
contractSequenceId(counter: number): this;
|
|
20
|
+
to(address: string): this;
|
|
21
|
+
from(address: string): this;
|
|
22
|
+
/** Return an expiration time, in seconds, set to one hour from now
|
|
23
|
+
*
|
|
24
|
+
* @returns {number} expiration time
|
|
25
|
+
*/
|
|
26
|
+
private static getExpirationTime;
|
|
27
|
+
/**
|
|
28
|
+
* If a signing key is set for this builder, recalculates the signature
|
|
29
|
+
*
|
|
30
|
+
* @returns {string} the signature value
|
|
31
|
+
*/
|
|
32
|
+
protected getSignature(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Get the prefix used in generating an operation hash for sending native coins
|
|
35
|
+
*
|
|
36
|
+
* @returns the string prefix
|
|
37
|
+
*/
|
|
38
|
+
protected getNativeOperationHashPrefix(): string;
|
|
39
|
+
/**
|
|
40
|
+
* Obtains the proper operation hash to sign either a sendMultiSig data
|
|
41
|
+
* or a sendMultiSigToken data
|
|
42
|
+
*
|
|
43
|
+
* @returns {string} the operation hash
|
|
44
|
+
*/
|
|
45
|
+
private getOperationHash;
|
|
46
|
+
/**
|
|
47
|
+
* Signs the Message with the given private key
|
|
48
|
+
* @returns {string} 65 byte long raw signature
|
|
49
|
+
*/
|
|
50
|
+
protected ethSignMsgHash(): string;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=baseNFTTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseNFTTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilders/baseNFTTransferBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,8BAAsB,sBAAsB;IAC1C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,QAAQ;IAE3C,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,SAAS,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;aAEZ,KAAK,IAAI,MAAM;IAE/B,SAAS,aAAa,cAAc,CAAC,EAAE,MAAM;IAS7C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASlC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK1B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASzC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASzB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAMhC;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,MAAM;IAUhC;;;;OAIG;IACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;IAIhD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;OAGG;IACH,SAAS,CAAC,cAAc,IAAI,MAAM;CAOnC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseNFTTransferBuilder = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const utils_2 = require("ethers/lib/utils");
|
|
7
|
+
class BaseNFTTransferBuilder {
|
|
8
|
+
constructor(serializedData) {
|
|
9
|
+
this._EMPTY_HEX_VALUE = '0x';
|
|
10
|
+
if (serializedData === undefined) {
|
|
11
|
+
// initialize with default values for non mandatory fields
|
|
12
|
+
this._expirationTime = BaseNFTTransferBuilder.getExpirationTime();
|
|
13
|
+
this._data = this._EMPTY_HEX_VALUE;
|
|
14
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
expirationTime(date) {
|
|
18
|
+
if (date > 0) {
|
|
19
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
20
|
+
this._expirationTime = date;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid expiration time');
|
|
24
|
+
}
|
|
25
|
+
key(signKey) {
|
|
26
|
+
this._signKey = signKey;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
contractSequenceId(counter) {
|
|
30
|
+
if (counter >= 0) {
|
|
31
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
32
|
+
this._sequenceId = counter;
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid contract sequence id');
|
|
36
|
+
}
|
|
37
|
+
to(address) {
|
|
38
|
+
if ((0, utils_1.isValidEthAddress)(address)) {
|
|
39
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
40
|
+
this._toAddress = address;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
44
|
+
}
|
|
45
|
+
from(address) {
|
|
46
|
+
if ((0, utils_1.isValidEthAddress)(address)) {
|
|
47
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
48
|
+
this._fromAddress = address;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
52
|
+
}
|
|
53
|
+
/** Return an expiration time, in seconds, set to one hour from now
|
|
54
|
+
*
|
|
55
|
+
* @returns {number} expiration time
|
|
56
|
+
*/
|
|
57
|
+
static getExpirationTime() {
|
|
58
|
+
const currentDate = new Date();
|
|
59
|
+
currentDate.setHours(currentDate.getHours() + 1);
|
|
60
|
+
return currentDate.getTime() / 1000;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* If a signing key is set for this builder, recalculates the signature
|
|
64
|
+
*
|
|
65
|
+
* @returns {string} the signature value
|
|
66
|
+
*/
|
|
67
|
+
getSignature() {
|
|
68
|
+
if (this._signKey) {
|
|
69
|
+
this._signature = this.ethSignMsgHash();
|
|
70
|
+
}
|
|
71
|
+
if (this._signature === null) {
|
|
72
|
+
throw new sdk_core_1.InvalidSignatureError('Null signature value');
|
|
73
|
+
}
|
|
74
|
+
return this._signature;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get the prefix used in generating an operation hash for sending native coins
|
|
78
|
+
*
|
|
79
|
+
* @returns the string prefix
|
|
80
|
+
*/
|
|
81
|
+
getNativeOperationHashPrefix() {
|
|
82
|
+
var _a, _b;
|
|
83
|
+
return (_b = (_a = this._nativeCoinOperationHashPrefix) !== null && _a !== void 0 ? _a : this._chainId) !== null && _b !== void 0 ? _b : 'ETHER';
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Obtains the proper operation hash to sign either a sendMultiSig data
|
|
87
|
+
* or a sendMultiSigToken data
|
|
88
|
+
*
|
|
89
|
+
* @returns {string} the operation hash
|
|
90
|
+
*/
|
|
91
|
+
getOperationHash() {
|
|
92
|
+
const hash = (0, utils_2.solidityKeccak256)(['string', 'address', 'uint', 'bytes', 'uint', 'uint'], [
|
|
93
|
+
this.getNativeOperationHashPrefix(),
|
|
94
|
+
this._toAddress,
|
|
95
|
+
'0',
|
|
96
|
+
this._data,
|
|
97
|
+
this._expirationTime,
|
|
98
|
+
this._sequenceId,
|
|
99
|
+
]);
|
|
100
|
+
return hash;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Signs the Message with the given private key
|
|
104
|
+
* @returns {string} 65 byte long raw signature
|
|
105
|
+
*/
|
|
106
|
+
ethSignMsgHash() {
|
|
107
|
+
const signKey = new utils_2.SigningKey('0x'.concat(this._signKey));
|
|
108
|
+
const digest = signKey.signDigest(this.getOperationHash());
|
|
109
|
+
const rawSignature = (0, utils_2.joinSignature)(digest);
|
|
110
|
+
return rawSignature;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.BaseNFTTransferBuilder = BaseNFTTransferBuilder;
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU5GVFRyYW5zZmVyQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNmZXJCdWlsZGVycy9iYXNlTkZUVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUF5RjtBQUN6RixvQ0FBNkM7QUFDN0MsNENBQWdGO0FBR2hGLE1BQXNCLHNCQUFzQjtJQWlCMUMsWUFBc0IsY0FBdUI7UUFoQjFCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQWlCekMsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQ2hDLDBEQUEwRDtZQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBZTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFlO1FBQ2hDLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztZQUMzQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxJQUFJLHFDQUEwQixDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEVBQUUsQ0FBQyxPQUFlO1FBQ2hCLElBQUksSUFBQSx5QkFBaUIsRUFBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxJQUFJLHFDQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFlO1FBQ2xCLElBQUksSUFBQSx5QkFBaUIsRUFBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxJQUFJLHFDQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxpQkFBaUI7UUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMvQixXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRCxPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxZQUFZO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7WUFDNUIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHNCQUFzQixDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyw0QkFBNEI7O1FBQ3BDLE9BQU8sTUFBQSxNQUFBLElBQUksQ0FBQyw4QkFBOEIsbUNBQUksSUFBSSxDQUFDLFFBQVEsbUNBQUksT0FBTyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGdCQUFnQjtRQUN0QixNQUFNLElBQUksR0FBRyxJQUFBLHlCQUFpQixFQUM1QixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQ3REO1lBQ0UsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ25DLElBQUksQ0FBQyxVQUFVO1lBQ2YsR0FBRztZQUNILElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLGVBQWU7WUFDcEIsSUFBSSxDQUFDLFdBQVc7U0FDakIsQ0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sY0FBYztRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLGtCQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQUcsSUFBQSxxQkFBYSxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQXJJRCx3REFxSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvciwgSW52YWxpZFNpZ25hdHVyZUVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgaXNWYWxpZEV0aEFkZHJlc3MgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBqb2luU2lnbmF0dXJlLCBzb2xpZGl0eUtlY2NhazI1NiwgU2lnbmluZ0tleSB9IGZyb20gJ2V0aGVycy9saWIvdXRpbHMnO1xuaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VORlRUcmFuc2ZlckJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX0VNUFRZX0hFWF9WQUxVRSA9ICcweCc7XG4gIC8vIGR1bW15IGFjY291bnQgdmFsdWUsIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU2VuZE11bHRpU2lnXG4gIHByb3RlY3RlZCBfZnJvbUFkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90b0FkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zZXF1ZW5jZUlkOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2lnbktleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2V4cGlyYXRpb25UaW1lOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfZGF0YTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3Rva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfY29pbjogUmVhZG9ubHk8QmFzZUNvaW4+O1xuICBwcm90ZWN0ZWQgX25hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4Pzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2NoYWluSWQ/OiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IGJ1aWxkKCk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc2VyaWFsaXplZERhdGE/OiBzdHJpbmcpIHtcbiAgICBpZiAoc2VyaWFsaXplZERhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gaW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgdmFsdWVzIGZvciBub24gbWFuZGF0b3J5IGZpZWxkc1xuICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUgPSBCYXNlTkZUVHJhbnNmZXJCdWlsZGVyLmdldEV4cGlyYXRpb25UaW1lKCk7XG4gICAgICB0aGlzLl9kYXRhID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgIH1cbiAgfVxuXG4gIGV4cGlyYXRpb25UaW1lKGRhdGU6IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChkYXRlID4gMCkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUgPSBkYXRlO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvcignSW52YWxpZCBleHBpcmF0aW9uIHRpbWUnKTtcbiAgfVxuXG4gIGtleShzaWduS2V5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLl9zaWduS2V5ID0gc2lnbktleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbnRyYWN0U2VxdWVuY2VJZChjb3VudGVyOiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAoY291bnRlciA+PSAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl9zZXF1ZW5jZUlkID0gY291bnRlcjtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgY29udHJhY3Qgc2VxdWVuY2UgaWQnKTtcbiAgfVxuXG4gIHRvKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmIChpc1ZhbGlkRXRoQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgICAgdGhpcy5fdG9BZGRyZXNzID0gYWRkcmVzcztcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICB9XG5cbiAgZnJvbShhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoaXNWYWxpZEV0aEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICAgIHRoaXMuX2Zyb21BZGRyZXNzID0gYWRkcmVzcztcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICB9XG5cbiAgLyoqIFJldHVybiBhbiBleHBpcmF0aW9uIHRpbWUsIGluIHNlY29uZHMsIHNldCB0byBvbmUgaG91ciBmcm9tIG5vd1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBleHBpcmF0aW9uIHRpbWVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldEV4cGlyYXRpb25UaW1lKCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnREYXRlLnNldEhvdXJzKGN1cnJlbnREYXRlLmdldEhvdXJzKCkgKyAxKTtcbiAgICByZXR1cm4gY3VycmVudERhdGUuZ2V0VGltZSgpIC8gMTAwMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBhIHNpZ25pbmcga2V5IGlzIHNldCBmb3IgdGhpcyBidWlsZGVyLCByZWNhbGN1bGF0ZXMgdGhlIHNpZ25hdHVyZVxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgc2lnbmF0dXJlIHZhbHVlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0U2lnbmF0dXJlKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3NpZ25LZXkpIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuZXRoU2lnbk1zZ0hhc2goKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NpZ25hdHVyZSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRTaWduYXR1cmVFcnJvcignTnVsbCBzaWduYXR1cmUgdmFsdWUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByZWZpeCB1c2VkIGluIGdlbmVyYXRpbmcgYW4gb3BlcmF0aW9uIGhhc2ggZm9yIHNlbmRpbmcgbmF0aXZlIGNvaW5zXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBzdHJpbmcgcHJlZml4XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0TmF0aXZlT3BlcmF0aW9uSGFzaFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeCA/PyB0aGlzLl9jaGFpbklkID8/ICdFVEhFUic7XG4gIH1cblxuICAvKipcbiAgICogT2J0YWlucyB0aGUgcHJvcGVyIG9wZXJhdGlvbiBoYXNoIHRvIHNpZ24gZWl0aGVyIGEgc2VuZE11bHRpU2lnIGRhdGFcbiAgICogb3IgYSBzZW5kTXVsdGlTaWdUb2tlbiBkYXRhXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBvcGVyYXRpb24gaGFzaFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRPcGVyYXRpb25IYXNoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaGFzaCA9IHNvbGlkaXR5S2VjY2FrMjU2KFxuICAgICAgWydzdHJpbmcnLCAnYWRkcmVzcycsICd1aW50JywgJ2J5dGVzJywgJ3VpbnQnLCAndWludCddLFxuICAgICAgW1xuICAgICAgICB0aGlzLmdldE5hdGl2ZU9wZXJhdGlvbkhhc2hQcmVmaXgoKSxcbiAgICAgICAgdGhpcy5fdG9BZGRyZXNzLFxuICAgICAgICAnMCcsIC8vIGR1bW15IGFtb3VudCB2YWx1ZVxuICAgICAgICB0aGlzLl9kYXRhLFxuICAgICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSxcbiAgICAgICAgdGhpcy5fc2VxdWVuY2VJZCxcbiAgICAgIF1cbiAgICApO1xuICAgIHJldHVybiBoYXNoO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIHRoZSBNZXNzYWdlIHdpdGggdGhlIGdpdmVuIHByaXZhdGUga2V5XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IDY1IGJ5dGUgbG9uZyByYXcgc2lnbmF0dXJlXG4gICAqL1xuICBwcm90ZWN0ZWQgZXRoU2lnbk1zZ0hhc2goKTogc3RyaW5nIHtcbiAgICBjb25zdCBzaWduS2V5ID0gbmV3IFNpZ25pbmdLZXkoJzB4Jy5jb25jYXQodGhpcy5fc2lnbktleSkpO1xuICAgIGNvbnN0IGRpZ2VzdCA9IHNpZ25LZXkuc2lnbkRpZ2VzdCh0aGlzLmdldE9wZXJhdGlvbkhhc2goKSk7XG4gICAgY29uc3QgcmF3U2lnbmF0dXJlID0gam9pblNpZ25hdHVyZShkaWdlc3QpO1xuXG4gICAgcmV0dXJuIHJhd1NpZ25hdHVyZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilders/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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("./baseNFTTransferBuilder"), exports);
|
|
18
|
+
__exportStar(require("./transferBuilderERC1155"), exports);
|
|
19
|
+
__exportStar(require("./transferBuilderERC721"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zZmVyQnVpbGRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUF5QztBQUN6QywyREFBeUM7QUFDekMsMERBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlTkZUVHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyRVJDMTE1NSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZmVyQnVpbGRlckVSQzcyMSc7XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseNFTTransferBuilder } from './baseNFTTransferBuilder';
|
|
2
|
+
export declare class ERC1155TransferBuilder extends BaseNFTTransferBuilder {
|
|
3
|
+
private _tokenIds;
|
|
4
|
+
private _values;
|
|
5
|
+
private _bytes;
|
|
6
|
+
constructor(serializedData?: string);
|
|
7
|
+
coin(coin: string): ERC1155TransferBuilder;
|
|
8
|
+
tokenContractAddress(address: string): ERC1155TransferBuilder;
|
|
9
|
+
entry(tokenId: number, value: number): ERC1155TransferBuilder;
|
|
10
|
+
bytes(bytesInNumber: number): ERC1155TransferBuilder;
|
|
11
|
+
signAndBuild(chainId?: string): string;
|
|
12
|
+
private hasMandatoryFields;
|
|
13
|
+
private decodeTransferData;
|
|
14
|
+
build(): string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=transferBuilderERC1155.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilderERC1155.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilders/transferBuilderERC1155.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,sBAAuB,SAAQ,sBAAsB;IAChE,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAEX,cAAc,CAAC,EAAE,MAAM;IAWnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB;IAM1C,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB;IAQ7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAM7D,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,sBAAsB;IAKpD,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAqBtC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,kBAAkB;IAe1B,KAAK,IAAI,MAAM;CAWhB"}
|