@bitgo-beta/abstract-eth 1.0.2-beta.45 → 1.0.2-beta.450
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 +717 -0
- package/dist/src/abstractEthLikeCoin.d.ts +7 -5
- package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
- package/dist/src/abstractEthLikeCoin.js +10 -10
- package/dist/src/abstractEthLikeNewCoins.d.ts +635 -0
- package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
- package/dist/src/abstractEthLikeNewCoins.js +1839 -0
- package/dist/src/ethLikeToken.d.ts +15 -4
- package/dist/src/ethLikeToken.d.ts.map +1 -1
- package/dist/src/ethLikeToken.js +61 -7
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- 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 +130 -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 +42 -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 +232 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +689 -0
- package/dist/src/lib/transferBuilder.d.ts +66 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +224 -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 +16 -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 +228 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +577 -0
- package/dist/src/lib/walletUtil.d.ts +26 -0
- package/dist/src/lib/walletUtil.d.ts.map +1 -0
- package/dist/src/lib/walletUtil.js +29 -0
- package/dist/tsconfig.tsbuildinfo +1 -7896
- package/package.json +23 -9
|
@@ -0,0 +1,66 @@
|
|
|
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
|
+
constructor(serializedData?: string);
|
|
16
|
+
/**
|
|
17
|
+
* A method to set the native coin or ERC20 token to be transferred.
|
|
18
|
+
* This ERC20 token may not be compatible with the network.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} coin - the native coin or ERC20 token to be set
|
|
21
|
+
* @returns {TransferBuilder} the transfer builder instance modified
|
|
22
|
+
*/
|
|
23
|
+
coin(coin: string): TransferBuilder;
|
|
24
|
+
data(additionalData: string): TransferBuilder;
|
|
25
|
+
amount(amount: string): this;
|
|
26
|
+
to(address: string): TransferBuilder;
|
|
27
|
+
contractSequenceId(counter: number): TransferBuilder;
|
|
28
|
+
key(signKey: string): TransferBuilder;
|
|
29
|
+
expirationTime(date: number): TransferBuilder;
|
|
30
|
+
signAndBuild(chainId?: string): string;
|
|
31
|
+
private hasMandatoryFields;
|
|
32
|
+
/**
|
|
33
|
+
* Obtains the proper operation hash to sign either a sendMultiSig data
|
|
34
|
+
* or a sendMultiSigToken data
|
|
35
|
+
*
|
|
36
|
+
* @returns {string} the operation hash
|
|
37
|
+
*/
|
|
38
|
+
private getOperationHash;
|
|
39
|
+
protected getOperationData(): (string | Buffer)[][];
|
|
40
|
+
/**
|
|
41
|
+
* Get the prefix used in generating an operation hash for sending tokens
|
|
42
|
+
*
|
|
43
|
+
* @returns the string prefix
|
|
44
|
+
*/
|
|
45
|
+
protected getTokenOperationHashPrefix(): string;
|
|
46
|
+
/**
|
|
47
|
+
* Get the prefix used in generating an operation hash for sending native coins
|
|
48
|
+
*
|
|
49
|
+
* @returns the string prefix
|
|
50
|
+
*/
|
|
51
|
+
protected getNativeOperationHashPrefix(): string;
|
|
52
|
+
/** Return an expiration time, in seconds, set to one hour from now
|
|
53
|
+
*
|
|
54
|
+
* @returns {number} expiration time
|
|
55
|
+
*/
|
|
56
|
+
private getExpirationTime;
|
|
57
|
+
/**
|
|
58
|
+
* If a signing key is set for this builder, recalculates the signature
|
|
59
|
+
*
|
|
60
|
+
* @returns {string} the signature value
|
|
61
|
+
*/
|
|
62
|
+
protected getSignature(): string;
|
|
63
|
+
protected ethSignMsgHash(): string;
|
|
64
|
+
private decodeTransferData;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":";AAOA,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;gBAEd,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,GAAG,MAAM;IA4BtC,OAAO,CAAC,kBAAkB;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAKxB,SAAS,CAAC,gBAAgB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE;IA8BnD;;;;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,224 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.TransferBuilder = void 0;
|
|
26
|
+
const ethUtil = __importStar(require("ethereumjs-util"));
|
|
27
|
+
const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
|
|
28
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
|
29
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
30
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
31
|
+
const utils_1 = require("./utils");
|
|
32
|
+
/** ETH transfer builder */
|
|
33
|
+
class TransferBuilder {
|
|
34
|
+
constructor(serializedData) {
|
|
35
|
+
this._EMPTY_HEX_VALUE = '0x';
|
|
36
|
+
if (serializedData) {
|
|
37
|
+
this.decodeTransferData(serializedData);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// initialize with default values for non mandatory fields
|
|
41
|
+
this._expirationTime = this.getExpirationTime();
|
|
42
|
+
this._data = this._EMPTY_HEX_VALUE;
|
|
43
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A method to set the native coin or ERC20 token to be transferred.
|
|
48
|
+
* This ERC20 token may not be compatible with the network.
|
|
49
|
+
*
|
|
50
|
+
* @param {string} coin - the native coin or ERC20 token to be set
|
|
51
|
+
* @returns {TransferBuilder} the transfer builder instance modified
|
|
52
|
+
*/
|
|
53
|
+
coin(coin) {
|
|
54
|
+
this._coin = statics_1.coins.get(coin);
|
|
55
|
+
if (this._coin instanceof statics_1.ContractAddressDefinedToken) {
|
|
56
|
+
this._tokenContractAddress = this._coin.contractAddress.toString();
|
|
57
|
+
}
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
data(additionalData) {
|
|
61
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
62
|
+
this._data = additionalData;
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
amount(amount) {
|
|
66
|
+
if (!utils_1.isValidAmount(amount)) {
|
|
67
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid amount');
|
|
68
|
+
}
|
|
69
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
70
|
+
this._amount = amount;
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
to(address) {
|
|
74
|
+
if (utils_1.isValidEthAddress(address)) {
|
|
75
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
76
|
+
this._toAddress = address;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid address');
|
|
80
|
+
}
|
|
81
|
+
contractSequenceId(counter) {
|
|
82
|
+
if (counter >= 0) {
|
|
83
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
84
|
+
this._sequenceId = counter;
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid contract sequence id');
|
|
88
|
+
}
|
|
89
|
+
key(signKey) {
|
|
90
|
+
this._signKey = signKey;
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
expirationTime(date) {
|
|
94
|
+
if (date > 0) {
|
|
95
|
+
this._signature = this._EMPTY_HEX_VALUE;
|
|
96
|
+
this._expirationTime = date;
|
|
97
|
+
return this;
|
|
98
|
+
}
|
|
99
|
+
throw new sdk_core_1.InvalidParameterValueError('Invalid expiration time');
|
|
100
|
+
}
|
|
101
|
+
signAndBuild(chainId) {
|
|
102
|
+
this._chainId = chainId;
|
|
103
|
+
if (this.hasMandatoryFields()) {
|
|
104
|
+
if (this._tokenContractAddress !== undefined) {
|
|
105
|
+
return utils_1.sendMultiSigTokenData(this._toAddress, this._amount, this._tokenContractAddress, this._expirationTime, this._sequenceId, this.getSignature());
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return utils_1.sendMultiSigData(this._toAddress, this._amount, this._data, this._expirationTime, this._sequenceId, this.getSignature());
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
throw new sdk_core_1.BuildTransactionError('Missing transfer mandatory fields. Amount, destination (to) address and sequenceID are mandatory');
|
|
112
|
+
}
|
|
113
|
+
hasMandatoryFields() {
|
|
114
|
+
return this._amount !== undefined && this._toAddress !== undefined && this._sequenceId !== undefined;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Obtains the proper operation hash to sign either a sendMultiSig data
|
|
118
|
+
* or a sendMultiSigToken data
|
|
119
|
+
*
|
|
120
|
+
* @returns {string} the operation hash
|
|
121
|
+
*/
|
|
122
|
+
getOperationHash() {
|
|
123
|
+
const operationData = this.getOperationData();
|
|
124
|
+
return ethUtil.bufferToHex(ethereumjs_abi_1.default.soliditySHA3(...operationData));
|
|
125
|
+
}
|
|
126
|
+
getOperationData() {
|
|
127
|
+
let operationData;
|
|
128
|
+
if (this._tokenContractAddress !== undefined) {
|
|
129
|
+
operationData = [
|
|
130
|
+
['string', 'address', 'uint', 'address', 'uint', 'uint'],
|
|
131
|
+
[
|
|
132
|
+
this.getTokenOperationHashPrefix(),
|
|
133
|
+
new bn_js_1.default(ethUtil.stripHexPrefix(this._toAddress), 16),
|
|
134
|
+
this._amount,
|
|
135
|
+
new bn_js_1.default(ethUtil.stripHexPrefix(this._tokenContractAddress), 16),
|
|
136
|
+
this._expirationTime,
|
|
137
|
+
this._sequenceId,
|
|
138
|
+
],
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
operationData = [
|
|
143
|
+
['string', 'address', 'uint', 'bytes', 'uint', 'uint'],
|
|
144
|
+
[
|
|
145
|
+
this.getNativeOperationHashPrefix(),
|
|
146
|
+
new bn_js_1.default(ethUtil.stripHexPrefix(this._toAddress), 16),
|
|
147
|
+
this._amount,
|
|
148
|
+
Buffer.from(ethUtil.padToEven(ethUtil.stripHexPrefix(this._data)) || '', 'hex'),
|
|
149
|
+
this._expirationTime,
|
|
150
|
+
this._sequenceId,
|
|
151
|
+
],
|
|
152
|
+
];
|
|
153
|
+
}
|
|
154
|
+
return operationData;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get the prefix used in generating an operation hash for sending tokens
|
|
158
|
+
*
|
|
159
|
+
* @returns the string prefix
|
|
160
|
+
*/
|
|
161
|
+
getTokenOperationHashPrefix() {
|
|
162
|
+
var _a, _b, _c, _d;
|
|
163
|
+
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';
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get the prefix used in generating an operation hash for sending native coins
|
|
167
|
+
*
|
|
168
|
+
* @returns the string prefix
|
|
169
|
+
*/
|
|
170
|
+
getNativeOperationHashPrefix() {
|
|
171
|
+
var _a, _b, _c, _d;
|
|
172
|
+
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';
|
|
173
|
+
}
|
|
174
|
+
/** Return an expiration time, in seconds, set to one hour from now
|
|
175
|
+
*
|
|
176
|
+
* @returns {number} expiration time
|
|
177
|
+
*/
|
|
178
|
+
getExpirationTime() {
|
|
179
|
+
const currentDate = new Date();
|
|
180
|
+
currentDate.setHours(currentDate.getHours() + 1);
|
|
181
|
+
return currentDate.getTime() / 1000;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* If a signing key is set for this builder, recalculates the signature
|
|
185
|
+
*
|
|
186
|
+
* @returns {string} the signature value
|
|
187
|
+
*/
|
|
188
|
+
getSignature() {
|
|
189
|
+
if (this._signKey) {
|
|
190
|
+
this._signature = this.ethSignMsgHash();
|
|
191
|
+
}
|
|
192
|
+
return this._signature;
|
|
193
|
+
}
|
|
194
|
+
ethSignMsgHash() {
|
|
195
|
+
const data = this.getOperationHash();
|
|
196
|
+
const keyBuffer = Buffer.from(ethUtil.padToEven(this._signKey), 'hex');
|
|
197
|
+
if (keyBuffer.length !== 32) {
|
|
198
|
+
throw new Error('private key length is invalid');
|
|
199
|
+
}
|
|
200
|
+
const signatureInParts = ethUtil.ecsign(Buffer.from(ethUtil.padToEven(ethUtil.stripHexPrefix(data)), 'hex'), keyBuffer);
|
|
201
|
+
// Assemble strings from r, s and v
|
|
202
|
+
const r = ethUtil.setLengthLeft(signatureInParts.r, 32).toString('hex');
|
|
203
|
+
const s = ethUtil.setLengthLeft(signatureInParts.s, 32).toString('hex');
|
|
204
|
+
const v = ethUtil.stripHexPrefix(ethUtil.intToHex(signatureInParts.v));
|
|
205
|
+
// Concatenate the r, s and v parts to make the signature string
|
|
206
|
+
return ethUtil.addHexPrefix(r.concat(s, v));
|
|
207
|
+
}
|
|
208
|
+
decodeTransferData(data) {
|
|
209
|
+
const transferData = utils_1.decodeTransferData(data);
|
|
210
|
+
this._toAddress = transferData.to;
|
|
211
|
+
this._amount = transferData.amount;
|
|
212
|
+
this._expirationTime = transferData.expireTime;
|
|
213
|
+
this._sequenceId = transferData.sequenceId;
|
|
214
|
+
this._signature = transferData.signature;
|
|
215
|
+
if (transferData.data) {
|
|
216
|
+
this._data = transferData.data;
|
|
217
|
+
}
|
|
218
|
+
if (transferData.tokenContractAddress) {
|
|
219
|
+
this._tokenContractAddress = transferData.tokenContractAddress;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
exports.TransferBuilder = TransferBuilder;
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUEyQztBQUMzQyxvRUFBeUM7QUFDekMsa0RBQXVCO0FBQ3ZCLGlEQUFzSDtBQUN0SCxtREFBeUY7QUFDekYsbUNBQXdIO0FBRXhILDJCQUEyQjtBQUMzQixNQUFhLGVBQWU7SUFhMUIsWUFBWSxjQUF1QjtRQVpsQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFhdkMsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pDO2FBQU07WUFDTCwwREFBMEQ7WUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQUMsSUFBWTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxLQUFLLFlBQVkscUNBQTJCLEVBQUU7WUFDckQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3BFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQXNCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcs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QUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxZQUFZLENBQUMsb0JBQW9CLEVBQUU7WUFDckMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztTQUNoRTtJQUNILENBQUM7Q0FDRjtBQTdPRCwwQ0E2T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBldGhVdGlsIGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgRXRoZXJldW1BYmkgZnJvbSAnZXRoZXJldW1qcy1hYmknO1xuaW1wb3J0IEJOIGZyb20gJ2JuLmpzJztcbmltcG9ydCB7IGNvaW5zLCBCYXNlQ29pbiwgQ29udHJhY3RBZGRyZXNzRGVmaW5lZFRva2VuLCBFdGhlcmV1bU5ldHdvcmsgYXMgRXRoTGlrZU5ldHdvcmsgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBkZWNvZGVUcmFuc2ZlckRhdGEsIHNlbmRNdWx0aVNpZ0RhdGEsIHNlbmRNdWx0aVNpZ1Rva2VuRGF0YSwgaXNWYWxpZEV0aEFkZHJlc3MsIGlzVmFsaWRBbW91bnQgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqIEVUSCB0cmFuc2ZlciBidWlsZGVyICovXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJCdWlsZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfRU1QVFlfSEVYX1ZBTFVFID0gJzB4JztcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90b0FkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9zZXF1ZW5jZUlkOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2lnbktleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2V4cGlyYXRpb25UaW1lOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlOiBzdHJpbmc7XG4gIHByaXZhdGUgX2RhdGE6IHN0cmluZztcbiAgcHJpdmF0ZSBfdG9rZW5Db250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvaW46IFJlYWRvbmx5PEJhc2VDb2luPjtcbiAgcHJpdmF0ZSBfY2hhaW5JZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzZXJpYWxpemVkRGF0YT86IHN0cmluZykge1xuICAgIGlmIChzZXJpYWxpemVkRGF0YSkge1xuICAgICAgdGhpcy5kZWNvZGVUcmFuc2ZlckRhdGEoc2VyaWFsaXplZERhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbml0aWFsaXplIHdpdGggZGVmYXVsdCB2YWx1ZXMgZm9yIG5vbiBtYW5kYXRvcnkgZmllbGRzXG4gICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IHRoaXMuZ2V0RXhwaXJhdGlvblRpbWUoKTtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEEgbWV0aG9kIHRvIHNldCB0aGUgbmF0aXZlIGNvaW4gb3IgRVJDMjAgdG9rZW4gdG8gYmUgdHJhbnNmZXJyZWQuXG4gICAqIFRoaXMgRVJDMjAgdG9rZW4gbWF5IG5vdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIG5ldHdvcmsuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2luIC0gdGhlIG5hdGl2ZSBjb2luIG9yIEVSQzIwIHRva2VuIHRvIGJlIHNldFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSB0aGUgdHJhbnNmZXIgYnVpbGRlciBpbnN0YW5jZSBtb2RpZmllZFxuICAgKi9cbiAgY29pbihjb2luOiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX2NvaW4gPSBjb2lucy5nZXQoY29pbik7XG4gICAgaWYgKHRoaXMuX2NvaW4gaW5zdGFuY2VvZiBDb250cmFjdEFkZHJlc3NEZWZpbmVkVG9rZW4pIHtcbiAgICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzID0gdGhpcy5fY29pbi5jb250cmFjdEFkZHJlc3MudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRhdGEoYWRkaXRpb25hbERhdGE6IHN0cmluZyk6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgIHRoaXMuX2RhdGEgPSBhZGRpdGlvbmFsRGF0YTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFtb3VudChhbW91bnQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZEFtb3VudChhbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYW1vdW50Jyk7XG4gICAgfVxuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0byhhZGRyZXNzOiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmIChpc1ZhbGlkRXRoQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgICAgdGhpcy5fdG9BZGRyZXNzID0gYWRkcmVzcztcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICB9XG5cbiAgY29udHJhY3RTZXF1ZW5jZUlkKGNvdW50ZXI6IG51bWJlcik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgaWYgKGNvdW50ZXIgPj0gMCkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgICAgdGhpcy5fc2VxdWVuY2VJZCA9IGNvdW50ZXI7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbnRyYWN0IHNlcXVlbmNlIGlkJyk7XG4gIH1cblxuICBrZXkoc2lnbktleTogc3RyaW5nKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl9zaWduS2V5ID0gc2lnbktleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGV4cGlyYXRpb25UaW1lKGRhdGU6IG51bWJlcik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgaWYgKGRhdGUgPiAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSA9IGRhdGU7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGV4cGlyYXRpb24gdGltZScpO1xuICB9XG5cbiAgc2lnbkFuZEJ1aWxkKGNoYWluSWQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuX2NoYWluSWQgPSBjaGFpbklkO1xuICAgIGlmICh0aGlzLmhhc01hbmRhdG9yeUZpZWxkcygpKSB7XG4gICAgICBpZiAodGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gc2VuZE11bHRpU2lnVG9rZW5EYXRhKFxuICAgICAgICAgIHRoaXMuX3RvQWRkcmVzcyxcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MsXG4gICAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgICAgdGhpcy5fc2VxdWVuY2VJZCxcbiAgICAgICAgICB0aGlzLmdldFNpZ25hdHVyZSgpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc2VuZE11bHRpU2lnRGF0YShcbiAgICAgICAgICB0aGlzLl90b0FkZHJlc3MsXG4gICAgICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgICAgIHRoaXMuX2RhdGEsXG4gICAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgICAgdGhpcy5fc2VxdWVuY2VJZCxcbiAgICAgICAgICB0aGlzLmdldFNpZ25hdHVyZSgpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAnTWlzc2luZyB0cmFuc2ZlciBtYW5kYXRvcnkgZmllbGRzLiBBbW91bnQsIGRlc3RpbmF0aW9uICh0bykgYWRkcmVzcyBhbmQgc2VxdWVuY2VJRCBhcmUgbWFuZGF0b3J5J1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhc01hbmRhdG9yeUZpZWxkcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYW1vdW50ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fdG9BZGRyZXNzICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fc2VxdWVuY2VJZCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGFpbnMgdGhlIHByb3BlciBvcGVyYXRpb24gaGFzaCB0byBzaWduIGVpdGhlciBhIHNlbmRNdWx0aVNpZyBkYXRhXG4gICAqIG9yIGEgc2VuZE11bHRpU2lnVG9rZW4gZGF0YVxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgb3BlcmF0aW9uIGhhc2hcbiAgICovXG4gIHByaXZhdGUgZ2V0T3BlcmF0aW9uSGFzaCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG9wZXJhdGlvbkRhdGEgPSB0aGlzLmdldE9wZXJhdGlvbkRhdGEoKTtcbiAgICByZXR1cm4gZXRoVXRpbC5idWZmZXJUb0hleChFdGhlcmV1bUFiaS5zb2xpZGl0eVNIQTMoLi4ub3BlcmF0aW9uRGF0YSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE9wZXJhdGlvbkRhdGEoKTogKHN0cmluZyB8IEJ1ZmZlcilbXVtdIHtcbiAgICBsZXQgb3BlcmF0aW9uRGF0YTtcbiAgICBpZiAodGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3BlcmF0aW9uRGF0YSA9IFtcbiAgICAgICAgWydzdHJpbmcnLCAnYWRkcmVzcycsICd1aW50JywgJ2FkZHJlc3MnLCAndWludCcsICd1aW50J10sXG4gICAgICAgIFtcbiAgICAgICAgICB0aGlzLmdldFRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCgpLFxuICAgICAgICAgIG5ldyBCTihldGhVdGlsLnN0cmlwSGV4UHJlZml4KHRoaXMuX3RvQWRkcmVzcyksIDE2KSxcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgbmV3IEJOKGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgodGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MpLCAxNiksXG4gICAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgICAgdGhpcy5fc2VxdWVuY2VJZCxcbiAgICAgICAgXSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wZXJhdGlvbkRhdGEgPSBbXG4gICAgICAgIFsnc3RyaW5nJywgJ2FkZHJlc3MnLCAndWludCcsICdieXRlcycsICd1aW50JywgJ3VpbnQnXSxcbiAgICAgICAgW1xuICAgICAgICAgIHRoaXMuZ2V0TmF0aXZlT3BlcmF0aW9uSGFzaFByZWZpeCgpLFxuICAgICAgICAgIG5ldyBCTihldGhVdGlsLnN0cmlwSGV4UHJlZml4KHRoaXMuX3RvQWRkcmVzcyksIDE2KSxcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgQnVmZmVyLmZyb20oZXRoVXRpbC5wYWRUb0V2ZW4oZXRoVXRpbC5zdHJpcEhleFByZWZpeCh0aGlzLl9kYXRhKSkgfHwgJycsICdoZXgnKSxcbiAgICAgICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSxcbiAgICAgICAgICB0aGlzLl9zZXF1ZW5jZUlkLFxuICAgICAgICBdLFxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIG9wZXJhdGlvbkRhdGE7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmVmaXggdXNlZCBpbiBnZW5lcmF0aW5nIGFuIG9wZXJhdGlvbiBoYXNoIGZvciBzZW5kaW5nIHRva2Vuc1xuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHByZWZpeFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5fY29pbj8ubmV0d29yayBhcyBFdGhMaWtlTmV0d29yayk/LnRva2VuT3BlcmF0aW9uSGFzaFByZWZpeCA/PyBgJHt0aGlzLl9jaGFpbklkfS1FUkMyMGAgPz8gJ0VSQzIwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByZWZpeCB1c2VkIGluIGdlbmVyYXRpbmcgYW4gb3BlcmF0aW9uIGhhc2ggZm9yIHNlbmRpbmcgbmF0aXZlIGNvaW5zXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBzdHJpbmcgcHJlZml4XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0TmF0aXZlT3BlcmF0aW9uSGFzaFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5fY29pbj8ubmV0d29yayBhcyBFdGhMaWtlTmV0d29yayk/Lm5hdGl2ZUNvaW5PcGVyYXRpb25IYXNoUHJlZml4ID8/IGAke3RoaXMuX2NoYWluSWR9YCA/PyAnRVRIRVInO1xuICB9XG5cbiAgLyoqIFJldHVybiBhbiBleHBpcmF0aW9uIHRpbWUsIGluIHNlY29uZHMsIHNldCB0byBvbmUgaG91ciBmcm9tIG5vd1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBleHBpcmF0aW9uIHRpbWVcbiAgICovXG4gIHByaXZhdGUgZ2V0RXhwaXJhdGlvblRpbWUoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgY3VycmVudERhdGUuc2V0SG91cnMoY3VycmVudERhdGUuZ2V0SG91cnMoKSArIDEpO1xuICAgIHJldHVybiBjdXJyZW50RGF0ZS5nZXRUaW1lKCkgLyAxMDAwO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGEgc2lnbmluZyBrZXkgaXMgc2V0IGZvciB0aGlzIGJ1aWxkZXIsIHJlY2FsY3VsYXRlcyB0aGUgc2lnbmF0dXJlXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBzaWduYXR1cmUgdmFsdWVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRTaWduYXR1cmUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fc2lnbktleSkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5ldGhTaWduTXNnSGFzaCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlITtcbiAgfVxuXG4gIHByb3RlY3RlZCBldGhTaWduTXNnSGFzaCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldE9wZXJhdGlvbkhhc2goKTtcbiAgICBjb25zdCBrZXlCdWZmZXIgPSBCdWZmZXIuZnJvbShldGhVdGlsLnBhZFRvRXZlbih0aGlzLl9zaWduS2V5KSwgJ2hleCcpO1xuICAgIGlmIChrZXlCdWZmZXIubGVuZ3RoICE9PSAzMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwcml2YXRlIGtleSBsZW5ndGggaXMgaW52YWxpZCcpO1xuICAgIH1cbiAgICBjb25zdCBzaWduYXR1cmVJblBhcnRzID0gZXRoVXRpbC5lY3NpZ24oXG4gICAgICBCdWZmZXIuZnJvbShldGhVdGlsLnBhZFRvRXZlbihldGhVdGlsLnN0cmlwSGV4UHJlZml4KGRhdGEpKSwgJ2hleCcpLFxuICAgICAga2V5QnVmZmVyXG4gICAgKTtcblxuICAgIC8vIEFzc2VtYmxlIHN0cmluZ3MgZnJvbSByLCBzIGFuZCB2XG4gICAgY29uc3QgciA9IGV0aFV0aWwuc2V0TGVuZ3RoTGVmdChzaWduYXR1cmVJblBhcnRzLnIsIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgcyA9IGV0aFV0aWwuc2V0TGVuZ3RoTGVmdChzaWduYXR1cmVJblBhcnRzLnMsIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgdiA9IGV0aFV0aWwuc3RyaXBIZXhQcmVmaXgoZXRoVXRpbC5pbnRUb0hleChzaWduYXR1cmVJblBhcnRzLnYpKTtcblxuICAgIC8vIENvbmNhdGVuYXRlIHRoZSByLCBzIGFuZCB2IHBhcnRzIHRvIG1ha2UgdGhlIHNpZ25hdHVyZSBzdHJpbmdcbiAgICByZXR1cm4gZXRoVXRpbC5hZGRIZXhQcmVmaXgoci5jb25jYXQocywgdikpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVUcmFuc2ZlckRhdGEoZGF0YTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdHJhbnNmZXJEYXRhID0gZGVjb2RlVHJhbnNmZXJEYXRhKGRhdGEpO1xuXG4gICAgdGhpcy5fdG9BZGRyZXNzID0gdHJhbnNmZXJEYXRhLnRvO1xuICAgIHRoaXMuX2Ftb3VudCA9IHRyYW5zZmVyRGF0YS5hbW91bnQ7XG4gICAgdGhpcy5fZXhwaXJhdGlvblRpbWUgPSB0cmFuc2ZlckRhdGEuZXhwaXJlVGltZTtcbiAgICB0aGlzLl9zZXF1ZW5jZUlkID0gdHJhbnNmZXJEYXRhLnNlcXVlbmNlSWQ7XG4gICAgdGhpcy5fc2lnbmF0dXJlID0gdHJhbnNmZXJEYXRhLnNpZ25hdHVyZTtcblxuICAgIGlmICh0cmFuc2ZlckRhdGEuZGF0YSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHRyYW5zZmVyRGF0YS5kYXRhO1xuICAgIH1cblxuICAgIGlmICh0cmFuc2ZlckRhdGEudG9rZW5Db250cmFjdEFkZHJlc3MpIHtcbiAgICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzID0gdHJhbnNmZXJEYXRhLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -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 (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 (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 = 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 = utils_2.joinSignature(digest);
|
|
110
|
+
return rawSignature;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.BaseNFTTransferBuilder = BaseNFTTransferBuilder;
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZU5GVFRyYW5zZmVyQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNmZXJCdWlsZGVycy9iYXNlTkZUVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUF5RjtBQUN6RixvQ0FBNkM7QUFDN0MsNENBQWdGO0FBR2hGLE1BQXNCLHNCQUFzQjtJQWlCMUMsWUFBc0IsY0FBdUI7UUFoQjFCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQWlCekMsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQ2hDLDBEQUEwRDtZQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBZTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFlO1FBQ2hDLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztZQUMzQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxJQUFJLHFDQUEwQixDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEVBQUUsQ0FBQyxPQUFlO1FBQ2hCLElBQUkseUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sSUFBSSxxQ0FBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZTtRQUNsQixJQUFJLHlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUkscUNBQTBCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLGlCQUFpQjtRQUM5QixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLElBQUksZ0NBQXFCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLDRCQUE0Qjs7UUFDcEMsT0FBTyxNQUFBLE1BQUEsSUFBSSxDQUFDLDhCQUE4QixtQ0FBSSxJQUFJLENBQUMsUUFBUSxtQ0FBSSxPQUFPLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssZ0JBQWdCO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLHlCQUFpQixDQUM1QixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQ3REO1lBQ0UsSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ25DLElBQUksQ0FBQyxVQUFVO1lBQ2YsR0FBRztZQUNILElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLGVBQWU7WUFDcEIsSUFBSSxDQUFDLFdBQVc7U0FDakIsQ0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sY0FBYztRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLGtCQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQUcscUJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQyxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFySUQsd0RBcUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IsIEludmFsaWRTaWduYXR1cmVFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGlzVmFsaWRFdGhBZGRyZXNzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgam9pblNpZ25hdHVyZSwgc29saWRpdHlLZWNjYWsyNTYsIFNpZ25pbmdLZXkgfSBmcm9tICdldGhlcnMvbGliL3V0aWxzJztcbmltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTkZUVHJhbnNmZXJCdWlsZGVyIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9FTVBUWV9IRVhfVkFMVUUgPSAnMHgnO1xuICAvLyBkdW1teSBhY2NvdW50IHZhbHVlLCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFNlbmRNdWx0aVNpZ1xuICBwcm90ZWN0ZWQgX2Zyb21BZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdG9BZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc2VxdWVuY2VJZDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3NpZ25LZXk6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9leHBpcmF0aW9uVGltZTogbnVtYmVyO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2RhdGE6IHN0cmluZztcbiAgcHJvdGVjdGVkIF90b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2NvaW46IFJlYWRvbmx5PEJhc2VDb2luPjtcbiAgcHJvdGVjdGVkIF9uYXRpdmVDb2luT3BlcmF0aW9uSGFzaFByZWZpeD86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9jaGFpbklkPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBidWlsZCgpOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHNlcmlhbGl6ZWREYXRhPzogc3RyaW5nKSB7XG4gICAgaWYgKHNlcmlhbGl6ZWREYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIGluaXRpYWxpemUgd2l0aCBkZWZhdWx0IHZhbHVlcyBmb3Igbm9uIG1hbmRhdG9yeSBmaWVsZHNcbiAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gQmFzZU5GVFRyYW5zZmVyQnVpbGRlci5nZXRFeHBpcmF0aW9uVGltZSgpO1xuICAgICAgdGhpcy5fZGF0YSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICB9XG4gIH1cblxuICBleHBpcmF0aW9uVGltZShkYXRlOiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAoZGF0ZSA+IDApIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gZGF0ZTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgZXhwaXJhdGlvbiB0aW1lJyk7XG4gIH1cblxuICBrZXkoc2lnbktleTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5fc2lnbktleSA9IHNpZ25LZXk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjb250cmFjdFNlcXVlbmNlSWQoY291bnRlcjogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKGNvdW50ZXIgPj0gMCkge1xuICAgICAgdGhpcy5fc2lnbmF0dXJlID0gdGhpcy5fRU1QVFlfSEVYX1ZBTFVFO1xuICAgICAgdGhpcy5fc2VxdWVuY2VJZCA9IGNvdW50ZXI7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbnRyYWN0IHNlcXVlbmNlIGlkJyk7XG4gIH1cblxuICB0byhhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoaXNWYWxpZEV0aEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRoaXMuX0VNUFRZX0hFWF9WQUxVRTtcbiAgICAgIHRoaXMuX3RvQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgfVxuXG4gIGZyb20oYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKGlzVmFsaWRFdGhBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLl9FTVBUWV9IRVhfVkFMVUU7XG4gICAgICB0aGlzLl9mcm9tQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yKCdJbnZhbGlkIGFkZHJlc3MnKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gYW4gZXhwaXJhdGlvbiB0aW1lLCBpbiBzZWNvbmRzLCBzZXQgdG8gb25lIGhvdXIgZnJvbSBub3dcbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gZXhwaXJhdGlvbiB0aW1lXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRFeHBpcmF0aW9uVGltZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgICBjdXJyZW50RGF0ZS5zZXRIb3VycyhjdXJyZW50RGF0ZS5nZXRIb3VycygpICsgMSk7XG4gICAgcmV0dXJuIGN1cnJlbnREYXRlLmdldFRpbWUoKSAvIDEwMDA7XG4gIH1cblxuICAvKipcbiAgICogSWYgYSBzaWduaW5nIGtleSBpcyBzZXQgZm9yIHRoaXMgYnVpbGRlciwgcmVjYWxjdWxhdGVzIHRoZSBzaWduYXR1cmVcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIHNpZ25hdHVyZSB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFNpZ25hdHVyZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl9zaWduS2V5KSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmUgPSB0aGlzLmV0aFNpZ25Nc2dIYXNoKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zaWduYXR1cmUgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkU2lnbmF0dXJlRXJyb3IoJ051bGwgc2lnbmF0dXJlIHZhbHVlJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmVmaXggdXNlZCBpbiBnZW5lcmF0aW5nIGFuIG9wZXJhdGlvbiBoYXNoIGZvciBzZW5kaW5nIG5hdGl2ZSBjb2luc1xuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHByZWZpeFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5hdGl2ZU9wZXJhdGlvbkhhc2hQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmF0aXZlQ29pbk9wZXJhdGlvbkhhc2hQcmVmaXggPz8gdGhpcy5fY2hhaW5JZCA/PyAnRVRIRVInO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGFpbnMgdGhlIHByb3BlciBvcGVyYXRpb24gaGFzaCB0byBzaWduIGVpdGhlciBhIHNlbmRNdWx0aVNpZyBkYXRhXG4gICAqIG9yIGEgc2VuZE11bHRpU2lnVG9rZW4gZGF0YVxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgb3BlcmF0aW9uIGhhc2hcbiAgICovXG4gIHByaXZhdGUgZ2V0T3BlcmF0aW9uSGFzaCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhhc2ggPSBzb2xpZGl0eUtlY2NhazI1NihcbiAgICAgIFsnc3RyaW5nJywgJ2FkZHJlc3MnLCAndWludCcsICdieXRlcycsICd1aW50JywgJ3VpbnQnXSxcbiAgICAgIFtcbiAgICAgICAgdGhpcy5nZXROYXRpdmVPcGVyYXRpb25IYXNoUHJlZml4KCksXG4gICAgICAgIHRoaXMuX3RvQWRkcmVzcyxcbiAgICAgICAgJzAnLCAvLyBkdW1teSBhbW91bnQgdmFsdWVcbiAgICAgICAgdGhpcy5fZGF0YSxcbiAgICAgICAgdGhpcy5fZXhwaXJhdGlvblRpbWUsXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlSWQsXG4gICAgICBdXG4gICAgKTtcbiAgICByZXR1cm4gaGFzaDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyB0aGUgTWVzc2FnZSB3aXRoIHRoZSBnaXZlbiBwcml2YXRlIGtleVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSA2NSBieXRlIGxvbmcgcmF3IHNpZ25hdHVyZVxuICAgKi9cbiAgcHJvdGVjdGVkIGV0aFNpZ25Nc2dIYXNoKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2lnbktleSA9IG5ldyBTaWduaW5nS2V5KCcweCcuY29uY2F0KHRoaXMuX3NpZ25LZXkpKTtcbiAgICBjb25zdCBkaWdlc3QgPSBzaWduS2V5LnNpZ25EaWdlc3QodGhpcy5nZXRPcGVyYXRpb25IYXNoKCkpO1xuICAgIGNvbnN0IHJhd1NpZ25hdHVyZSA9IGpvaW5TaWduYXR1cmUoZGlnZXN0KTtcblxuICAgIHJldHVybiByYXdTaWduYXR1cmU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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,16 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./baseNFTTransferBuilder"), exports);
|
|
14
|
+
__exportStar(require("./transferBuilderERC1155"), exports);
|
|
15
|
+
__exportStar(require("./transferBuilderERC721"), exports);
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zZmVyQnVpbGRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXlDO0FBQ3pDLDJEQUF5QztBQUN6QywwREFBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2VORlRUcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXJFUkMxMTU1JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyRVJDNzIxJztcbiJdfQ==
|
|
@@ -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"}
|