@bitgo/sdk-coin-tempo 1.6.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/lib/transaction.d.ts +23 -1
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +34 -3
- package/dist/src/lib/transactionBuilder.d.ts +17 -1
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +134 -8
- package/dist/src/lib/utils.d.ts +10 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +18 -1
- package/dist/src/register.d.ts +0 -4
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +2 -23
- package/dist/src/tempo.d.ts +18 -2
- package/dist/src/tempo.d.ts.map +1 -1
- package/dist/src/tempo.js +92 -6
- package/dist/src/tip20Token.d.ts +1 -1
- package/dist/src/tip20Token.d.ts.map +1 -1
- package/dist/src/tip20Token.js +4 -4
- package/dist/test/resources/tempo.d.ts +1 -1
- package/dist/test/resources/tempo.js +2 -2
- package/dist/test/unit/index.js +54 -1
- package/dist/test/unit/transactionBuilder.js +266 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
package/dist/src/lib/utils.js
CHANGED
|
@@ -13,10 +13,13 @@ exports.tip20UnitsToAmount = tip20UnitsToAmount;
|
|
|
13
13
|
exports.stringToBytes32 = stringToBytes32;
|
|
14
14
|
exports.encodeTip20TransferWithMemo = encodeTip20TransferWithMemo;
|
|
15
15
|
exports.isValidTip20Amount = isValidTip20Amount;
|
|
16
|
+
exports.isTip20Transaction = isTip20Transaction;
|
|
17
|
+
exports.isValidMemoId = isValidMemoId;
|
|
16
18
|
const secp256k1_1 = require("@bitgo/secp256k1");
|
|
17
19
|
const ethers_1 = require("ethers");
|
|
18
20
|
const constants_1 = require("./constants");
|
|
19
21
|
const tip20Abi_1 = require("./tip20Abi");
|
|
22
|
+
const AA_TX_HEX_REGEX = new RegExp(`^${constants_1.AA_TRANSACTION_TYPE}[0-9a-f]*$`, 'i');
|
|
20
23
|
/**
|
|
21
24
|
* Check if address is valid Ethereum-style address
|
|
22
25
|
* Uses ethers.js isAddress for proper validation including checksum
|
|
@@ -132,6 +135,18 @@ function isValidTip20Amount(amount) {
|
|
|
132
135
|
return false;
|
|
133
136
|
}
|
|
134
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Check if a raw transaction string is a Tempo AA transaction (type 0x76)
|
|
140
|
+
*/
|
|
141
|
+
function isTip20Transaction(raw) {
|
|
142
|
+
return AA_TX_HEX_REGEX.test(raw);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Validate that a memoId is a valid non-negative integer string
|
|
146
|
+
*/
|
|
147
|
+
function isValidMemoId(memoId) {
|
|
148
|
+
return typeof memoId === 'string' && /^(0|[1-9]\d*)$/.test(memoId);
|
|
149
|
+
}
|
|
135
150
|
const utils = {
|
|
136
151
|
isValidAddress,
|
|
137
152
|
isValidPublicKey,
|
|
@@ -141,6 +156,8 @@ const utils = {
|
|
|
141
156
|
stringToBytes32,
|
|
142
157
|
encodeTip20TransferWithMemo,
|
|
143
158
|
isValidTip20Amount,
|
|
159
|
+
isTip20Transaction,
|
|
160
|
+
isValidMemoId,
|
|
144
161
|
};
|
|
145
162
|
exports.default = utils;
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOztBQWNILHdDQUtDO0FBTUQsNENBVUM7QUFNRCw4Q0FVQztBQVlELGdEQU1DO0FBUUQsZ0RBRUM7QUFRRCwwQ0FPQztBQVNELGtFQUtDO0FBT0QsZ0RBY0M7QUEvSEQsZ0RBQXlDO0FBQ3pDLG1DQUFnQztBQUNoQywyQ0FBNkM7QUFDN0MseUNBQTBEO0FBSzFEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxlQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsU0FBaUI7SUFDaEQsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxVQUFrQjtJQUNsRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLGlCQUFLLENBQUMsVUFB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SUFDaEIsaUJBQWlCO0lBQ2pCLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLDJCQUEyQjtJQUMzQixrQkFBa0I7Q0FDbkIsQ0FBQztBQUVGLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVtcG8gVXRpbGl0eSBGdW5jdGlvbnNcbiAqXG4gKiBTaW5jZSBUZW1wbyBpcyBFVk0tY29tcGF0aWJsZSwgd2UgY2FuIHJldXNlIEV0aGVyZXVtIHV0aWxpdGllc1xuICovXG5cbmltcG9ydCB7IGJpcDMyIH0gZnJvbSAnQGJpdGdvL3NlY3AyNTZrMSc7XG5pbXBvcnQgeyBldGhlcnMgfSBmcm9tICdldGhlcnMnO1xuaW1wb3J0IHsgVElQMjBfREVDSU1BTFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUSVAyMF9UUkFOU0ZFUl9XSVRIX01FTU9fQUJJIH0gZnJvbSAnLi90aXAyMEFiaSc7XG5cbnR5cGUgQWRkcmVzcyA9IHN0cmluZztcbnR5cGUgSGV4ID0gc3RyaW5nO1xuXG4vKipcbiAqIENoZWNrIGlmIGFkZHJlc3MgaXMgdmFsaWQgRXRoZXJldW0tc3R5bGUgYWRkcmVzc1xuICogVXNlcyBldGhlcnMuanMgaXNBZGRyZXNzIGZvciBwcm9wZXIgdmFsaWRhdGlvbiBpbmNsdWRpbmcgY2hlY2tzdW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGFkZHJlc3MgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBldGhlcnMudXRpbHMuaXNBZGRyZXNzKGFkZHJlc3MpO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHB1YmxpYyBrZXkgaXMgdmFsaWQgKEJJUDMyIHhwdWIgZm9ybWF0KVxuICogVE9ETzogUmVwbGFjZSB3aXRoIEVUSCB1dGlscyB3aGVuIGltcGxlbWVudGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFB1YmxpY0tleShwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHB1YmxpY0tleSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBoZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHB1YmxpY0tleSk7XG4gICAgcmV0dXJuIGhkTm9kZS5pc05ldXRlcmVkKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiBwcml2YXRlIGtleSBpcyB2YWxpZCAoQklQMzIgeHBydiBmb3JtYXQpXG4gKiBUT0RPOiBSZXBsYWNlIHdpdGggRVRIIHV0aWxzIHdoZW4gaW1wbGVtZW50aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHJpdmF0ZUtleShwcml2YXRlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBwcml2YXRlS2V5ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHJpdmF0ZUtleSk7XG4gICAgcmV0dXJuICFoZE5vZGUuaXNOZXV0ZXJlZCgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogVElQLTIwIFV0aWxpdHkgRnVuY3Rpb25zXG4gKi9cblxuLyoqXG4gKiBDb252ZXJ0IGh1bWFuLXJlYWRhYmxlIGFtb3VudCB0byBUSVAtMjAgdW5pdHMgKDYgZGVjaW1hbHMpXG4gKiBAcGFyYW0gYW1vdW50IC0gSHVtYW4tcmVhZGFibGUgYW1vdW50IChlLmcuLCBcIjEuNVwiKVxuICogQHJldHVybnMgQW1vdW50IGluIFRJUC0yMCBzbWFsbGVzdCB1bml0cyBhcyBiaWdpbnRcbiAqIEBleGFtcGxlIGFtb3VudFRvVGlwMjBVbml0cyhcIjEuNVwiKSA9PiAxNTAwMDAwblxuICovXG5leHBvcnQgZnVuY3Rpb24gYW1vdW50VG9UaXAyMFVuaXRzKGFtb3VudDogc3RyaW5nKTogYmlnaW50IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gQmlnSW50KGV0aGVycy51dGlscy5wYXJzZVVuaXRzKGFtb3VudCwgVElQMjBfREVDSU1BTFMpLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQgZm9ybWF0OiAke2Ftb3VudH0uIEV4cGVjdGVkIGRlY2ltYWwgc3RyaW5nLmApO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydCBUSVAtMjAgdW5pdHMgKDYgZGVjaW1hbHMpIHRvIGh1bWFuLXJlYWRhYmxlIGFtb3VudFxuICogQHBhcmFtIHVuaXRzIC0gQW1vdW50IGluIFRJUC0yMCBzbWFsbGVzdCB1bml0c1xuICogQHJldHVybnMgSHVtYW4tcmVhZGFibGUgYW1vdW50IHN0cmluZ1xuICogQGV4YW1wbGUgdGlwMjBVbml0c1RvQW1vdW50KDE1MDAwMDBuKSA9PiBcIjEuNVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aXAyMFVuaXRzVG9BbW91bnQodW5pdHM6IGJpZ2ludCk6IHN0cmluZyB7XG4gIHJldHVybiBldGhlcnMudXRpbHMuZm9ybWF0VW5pdHModW5pdHMudG9TdHJpbmcoKSwgVElQMjBfREVDSU1BTFMpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgc3RyaW5nIHRvIGJ5dGVzMzIgZm9yIG1lbW8gZmllbGRcbiAqIEBwYXJhbSBtZW1vIC0gTWVtbyBzdHJpbmcgdG8gZW5jb2RlXG4gKiBAcmV0dXJucyBIZXgtZW5jb2RlZCBieXRlczMyIHZhbHVlXG4gKiBAZXhhbXBsZSBzdHJpbmdUb0J5dGVzMzIoXCJJTlZPSUNFLTAwMVwiKSA9PiBcIjB4NDk0ZTU2NGY0OTQzNDUyZDMwMzAzMTAwLi4uXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvQnl0ZXMzMihtZW1vOiBzdHJpbmcpOiBIZXgge1xuICBjb25zdCBtZW1vQnl0ZUxlbmd0aCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShtZW1vKS5sZW5ndGg7XG4gIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZW1vIHRvbyBsb25nOiAke21lbW9CeXRlTGVuZ3RofSBieXRlcy4gTWF4aW11bSAzMiBieXRlcy5gKTtcbiAgfVxuICBjb25zdCBoZXhTdHJpbmcgPSBldGhlcnMudXRpbHMuaGV4bGlmeShldGhlcnMudXRpbHMudG9VdGY4Qnl0ZXMobWVtbykpO1xuICByZXR1cm4gZXRoZXJzLnV0aWxzLmhleFplcm9QYWQoaGV4U3RyaW5nLCAzMik7XG59XG5cbi8qKlxuICogRW5jb2RlIFRJUC0yMCB0cmFuc2ZlcldpdGhNZW1vIGZ1bmN0aW9uIGNhbGwgdXNpbmcgZXRoZXJzLmpzXG4gKiBAcGFyYW0gdG8gLSBSZWNpcGllbnQgYWRkcmVzc1xuICogQHBhcmFtIGFtb3VudCAtIEFtb3VudCBpbiBUSVAtMjAgdW5pdHMgKGJpZ2ludClcbiAqIEBwYXJhbSBtZW1vIC0gT3B0aW9uYWwgbWVtbyBzdHJpbmdcbiAqIEByZXR1cm5zIEVuY29kZWQgZnVuY3Rpb24gY2FsbCBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8odG86IEFkZHJlc3MsIGFtb3VudDogYmlnaW50LCBtZW1vPzogc3RyaW5nKTogSGV4IHtcbiAgY29uc3QgbWVtb0J5dGVzID0gbWVtbyA/IHN0cmluZ1RvQnl0ZXMzMihtZW1vKSA6IGV0aGVycy51dGlscy5oZXhaZXJvUGFkKCcweCcsIDMyKTtcblxuICBjb25zdCBpZmFjZSA9IG5ldyBldGhlcnMudXRpbHMuSW50ZXJmYWNlKFRJUDIwX1RSQU5TRkVSX1dJVEhfTUVNT19BQkkpO1xuICByZXR1cm4gaWZhY2UuZW5jb2RlRnVuY3Rpb25EYXRhKCd0cmFuc2ZlcldpdGhNZW1vJywgW3RvLCBhbW91bnQsIG1lbW9CeXRlc10pO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIFRJUC0yMCBhbW91bnQgZm9ybWF0XG4gKiBAcGFyYW0gYW1vdW50IC0gQW1vdW50IHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGlwMjBBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBhbW91bnQgIT09ICdzdHJpbmcnIHx8IGFtb3VudC50cmltKCkgPT09ICcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIENoZWNrIGZvciBuZWdhdGl2ZSBhbW91bnRzIGJlZm9yZSBwYXJzaW5nXG4gIGlmIChhbW91bnQuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gZXRoZXJzLnV0aWxzLnBhcnNlVW5pdHMoYW1vdW50LCBUSVAyMF9ERUNJTUFMUyk7XG4gICAgcmV0dXJuIHBhcnNlZC5ndGUoMCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IHtcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGlzVmFsaWRQdWJsaWNLZXksXG4gIGlzVmFsaWRQcml2YXRlS2V5LFxuICBhbW91bnRUb1RpcDIwVW5pdHMsXG4gIHRpcDIwVW5pdHNUb0Ftb3VudCxcbiAgc3RyaW5nVG9CeXRlczMyLFxuICBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sXG4gIGlzVmFsaWRUaXAyMEFtb3VudCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOztBQWdCSCx3Q0FLQztBQU1ELDRDQVVDO0FBTUQsOENBVUM7QUFZRCxnREFNQztBQVFELGdEQUVDO0FBUUQsMENBT0M7QUFTRCxrRUFLQztBQU9ELGdEQWNDO0FBS0QsZ0RBRUM7QUFLRCxzQ0FFQztBQS9JRCxnREFBeUM7QUFDekMsbUNBQWdDO0FBQ2hDLDJDQUFrRTtBQUNsRSx5Q0FBMEQ7QUFFMUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSwrQkFBbUIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBSzdFOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxlQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsU0FBaUI7SUFDaEQsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxVQUFrQjtJQUNsRCxJQUFJLE9BQU8sVUFBVSxLQUFL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QUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLEdBQVc7SUFDNUMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxNQUFjO0lBQzFDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxLQUFLLEdBQUc7SUFDWixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZiwyQkFBMkI7SUFDM0Isa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixhQUFhO0NBQ2QsQ0FBQztBQUVGLGtCQUFlLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVtcG8gVXRpbGl0eSBGdW5jdGlvbnNcbiAqXG4gKiBTaW5jZSBUZW1wbyBpcyBFVk0tY29tcGF0aWJsZSwgd2UgY2FuIHJldXNlIEV0aGVyZXVtIHV0aWxpdGllc1xuICovXG5cbmltcG9ydCB7IGJpcDMyIH0gZnJvbSAnQGJpdGdvL3NlY3AyNTZrMSc7XG5pbXBvcnQgeyBldGhlcnMgfSBmcm9tICdldGhlcnMnO1xuaW1wb3J0IHsgQUFfVFJBTlNBQ1RJT05fVFlQRSwgVElQMjBfREVDSU1BTFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUSVAyMF9UUkFOU0ZFUl9XSVRIX01FTU9fQUJJIH0gZnJvbSAnLi90aXAyMEFiaSc7XG5cbmNvbnN0IEFBX1RYX0hFWF9SRUdFWCA9IG5ldyBSZWdFeHAoYF4ke0FBX1RSQU5TQUNUSU9OX1RZUEV9WzAtOWEtZl0qJGAsICdpJyk7XG5cbnR5cGUgQWRkcmVzcyA9IHN0cmluZztcbnR5cGUgSGV4ID0gc3RyaW5nO1xuXG4vKipcbiAqIENoZWNrIGlmIGFkZHJlc3MgaXMgdmFsaWQgRXRoZXJldW0tc3R5bGUgYWRkcmVzc1xuICogVXNlcyBldGhlcnMuanMgaXNBZGRyZXNzIGZvciBwcm9wZXIgdmFsaWRhdGlvbiBpbmNsdWRpbmcgY2hlY2tzdW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGFkZHJlc3MgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBldGhlcnMudXRpbHMuaXNBZGRyZXNzKGFkZHJlc3MpO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHB1YmxpYyBrZXkgaXMgdmFsaWQgKEJJUDMyIHhwdWIgZm9ybWF0KVxuICogVE9ETzogUmVwbGFjZSB3aXRoIEVUSCB1dGlscyB3aGVuIGltcGxlbWVudGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFB1YmxpY0tleShwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHB1YmxpY0tleSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICBjb25zdCBoZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHB1YmxpY0tleSk7XG4gICAgcmV0dXJuIGhkTm9kZS5pc05ldXRlcmVkKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiBwcml2YXRlIGtleSBpcyB2YWxpZCAoQklQMzIgeHBydiBmb3JtYXQpXG4gKiBUT0RPOiBSZXBsYWNlIHdpdGggRVRIIHV0aWxzIHdoZW4gaW1wbGVtZW50aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHJpdmF0ZUtleShwcml2YXRlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBwcml2YXRlS2V5ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IGhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHJpdmF0ZUtleSk7XG4gICAgcmV0dXJuICFoZE5vZGUuaXNOZXV0ZXJlZCgpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogVElQLTIwIFV0aWxpdHkgRnVuY3Rpb25zXG4gKi9cblxuLyoqXG4gKiBDb252ZXJ0IGh1bWFuLXJlYWRhYmxlIGFtb3VudCB0byBUSVAtMjAgdW5pdHMgKDYgZGVjaW1hbHMpXG4gKiBAcGFyYW0gYW1vdW50IC0gSHVtYW4tcmVhZGFibGUgYW1vdW50IChlLmcuLCBcIjEuNVwiKVxuICogQHJldHVybnMgQW1vdW50IGluIFRJUC0yMCBzbWFsbGVzdCB1bml0cyBhcyBiaWdpbnRcbiAqIEBleGFtcGxlIGFtb3VudFRvVGlwMjBVbml0cyhcIjEuNVwiKSA9PiAxNTAwMDAwblxuICovXG5leHBvcnQgZnVuY3Rpb24gYW1vdW50VG9UaXAyMFVuaXRzKGFtb3VudDogc3RyaW5nKTogYmlnaW50IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gQmlnSW50KGV0aGVycy51dGlscy5wYXJzZVVuaXRzKGFtb3VudCwgVElQMjBfREVDSU1BTFMpLnRvU3RyaW5nKCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQgZm9ybWF0OiAke2Ftb3VudH0uIEV4cGVjdGVkIGRlY2ltYWwgc3RyaW5nLmApO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydCBUSVAtMjAgdW5pdHMgKDYgZGVjaW1hbHMpIHRvIGh1bWFuLXJlYWRhYmxlIGFtb3VudFxuICogQHBhcmFtIHVuaXRzIC0gQW1vdW50IGluIFRJUC0yMCBzbWFsbGVzdCB1bml0c1xuICogQHJldHVybnMgSHVtYW4tcmVhZGFibGUgYW1vdW50IHN0cmluZ1xuICogQGV4YW1wbGUgdGlwMjBVbml0c1RvQW1vdW50KDE1MDAwMDBuKSA9PiBcIjEuNVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aXAyMFVuaXRzVG9BbW91bnQodW5pdHM6IGJpZ2ludCk6IHN0cmluZyB7XG4gIHJldHVybiBldGhlcnMudXRpbHMuZm9ybWF0VW5pdHModW5pdHMudG9TdHJpbmcoKSwgVElQMjBfREVDSU1BTFMpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgc3RyaW5nIHRvIGJ5dGVzMzIgZm9yIG1lbW8gZmllbGRcbiAqIEBwYXJhbSBtZW1vIC0gTWVtbyBzdHJpbmcgdG8gZW5jb2RlXG4gKiBAcmV0dXJucyBIZXgtZW5jb2RlZCBieXRlczMyIHZhbHVlXG4gKiBAZXhhbXBsZSBzdHJpbmdUb0J5dGVzMzIoXCJJTlZPSUNFLTAwMVwiKSA9PiBcIjB4NDk0ZTU2NGY0OTQzNDUyZDMwMzAzMTAwLi4uXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvQnl0ZXMzMihtZW1vOiBzdHJpbmcpOiBIZXgge1xuICBjb25zdCBtZW1vQnl0ZUxlbmd0aCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShtZW1vKS5sZW5ndGg7XG4gIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZW1vIHRvbyBsb25nOiAke21lbW9CeXRlTGVuZ3RofSBieXRlcy4gTWF4aW11bSAzMiBieXRlcy5gKTtcbiAgfVxuICBjb25zdCBoZXhTdHJpbmcgPSBldGhlcnMudXRpbHMuaGV4bGlmeShldGhlcnMudXRpbHMudG9VdGY4Qnl0ZXMobWVtbykpO1xuICByZXR1cm4gZXRoZXJzLnV0aWxzLmhleFplcm9QYWQoaGV4U3RyaW5nLCAzMik7XG59XG5cbi8qKlxuICogRW5jb2RlIFRJUC0yMCB0cmFuc2ZlcldpdGhNZW1vIGZ1bmN0aW9uIGNhbGwgdXNpbmcgZXRoZXJzLmpzXG4gKiBAcGFyYW0gdG8gLSBSZWNpcGllbnQgYWRkcmVzc1xuICogQHBhcmFtIGFtb3VudCAtIEFtb3VudCBpbiBUSVAtMjAgdW5pdHMgKGJpZ2ludClcbiAqIEBwYXJhbSBtZW1vIC0gT3B0aW9uYWwgbWVtbyBzdHJpbmdcbiAqIEByZXR1cm5zIEVuY29kZWQgZnVuY3Rpb24gY2FsbCBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8odG86IEFkZHJlc3MsIGFtb3VudDogYmlnaW50LCBtZW1vPzogc3RyaW5nKTogSGV4IHtcbiAgY29uc3QgbWVtb0J5dGVzID0gbWVtbyA/IHN0cmluZ1RvQnl0ZXMzMihtZW1vKSA6IGV0aGVycy51dGlscy5oZXhaZXJvUGFkKCcweCcsIDMyKTtcblxuICBjb25zdCBpZmFjZSA9IG5ldyBldGhlcnMudXRpbHMuSW50ZXJmYWNlKFRJUDIwX1RSQU5TRkVSX1dJVEhfTUVNT19BQkkpO1xuICByZXR1cm4gaWZhY2UuZW5jb2RlRnVuY3Rpb25EYXRhKCd0cmFuc2ZlcldpdGhNZW1vJywgW3RvLCBhbW91bnQsIG1lbW9CeXRlc10pO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIFRJUC0yMCBhbW91bnQgZm9ybWF0XG4gKiBAcGFyYW0gYW1vdW50IC0gQW1vdW50IHN0cmluZyB0byB2YWxpZGF0ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVGlwMjBBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBhbW91bnQgIT09ICdzdHJpbmcnIHx8IGFtb3VudC50cmltKCkgPT09ICcnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIENoZWNrIGZvciBuZWdhdGl2ZSBhbW91bnRzIGJlZm9yZSBwYXJzaW5nXG4gIGlmIChhbW91bnQuc3RhcnRzV2l0aCgnLScpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gZXRoZXJzLnV0aWxzLnBhcnNlVW5pdHMoYW1vdW50LCBUSVAyMF9ERUNJTUFMUyk7XG4gICAgcmV0dXJuIHBhcnNlZC5ndGUoMCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgcmF3IHRyYW5zYWN0aW9uIHN0cmluZyBpcyBhIFRlbXBvIEFBIHRyYW5zYWN0aW9uICh0eXBlIDB4NzYpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RpcDIwVHJhbnNhY3Rpb24ocmF3OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFBX1RYX0hFWF9SRUdFWC50ZXN0KHJhdyk7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgdGhhdCBhIG1lbW9JZCBpcyBhIHZhbGlkIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZE1lbW9JZChtZW1vSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIG1lbW9JZCA9PT0gJ3N0cmluZycgJiYgL14oMHxbMS05XVxcZCopJC8udGVzdChtZW1vSWQpO1xufVxuXG5jb25zdCB1dGlscyA9IHtcbiAgaXNWYWxpZEFkZHJlc3MsXG4gIGlzVmFsaWRQdWJsaWNLZXksXG4gIGlzVmFsaWRQcml2YXRlS2V5LFxuICBhbW91bnRUb1RpcDIwVW5pdHMsXG4gIHRpcDIwVW5pdHNUb0Ftb3VudCxcbiAgc3RyaW5nVG9CeXRlczMyLFxuICBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sXG4gIGlzVmFsaWRUaXAyMEFtb3VudCxcbiAgaXNUaXAyMFRyYW5zYWN0aW9uLFxuICBpc1ZhbGlkTWVtb0lkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
|
package/dist/src/register.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
|
package/dist/src/register.js
CHANGED
|
@@ -4,33 +4,12 @@ exports.register = void 0;
|
|
|
4
4
|
const tempo_1 = require("./tempo");
|
|
5
5
|
const ttempo_1 = require("./ttempo");
|
|
6
6
|
const tip20Token_1 = require("./tip20Token");
|
|
7
|
-
/**
|
|
8
|
-
* Register Tempo and TIP20 tokens with the SDK
|
|
9
|
-
* @param sdk - BitGo SDK instance
|
|
10
|
-
*/
|
|
11
7
|
const register = (sdk) => {
|
|
12
|
-
// Register base Tempo coins
|
|
13
8
|
sdk.register('tempo', tempo_1.Tempo.createInstance);
|
|
14
9
|
sdk.register('ttempo', ttempo_1.Ttempo.createInstance);
|
|
15
|
-
|
|
16
|
-
// TODO: Add actual token configurations from @bitgo/statics
|
|
17
|
-
// For now, this creates an empty array which can be populated progressively
|
|
18
|
-
const tip20Tokens = tip20Token_1.Tip20Token.createTokenConstructors([
|
|
19
|
-
// TODO: Add TIP20 token configurations here
|
|
20
|
-
// Example:
|
|
21
|
-
// {
|
|
22
|
-
// type: 'tempo:usdc',
|
|
23
|
-
// coin: 'tempo',
|
|
24
|
-
// network: 'Mainnet',
|
|
25
|
-
// name: 'USD Coin on Tempo',
|
|
26
|
-
// tokenContractAddress: '0x...',
|
|
27
|
-
// decimalPlaces: 6,
|
|
28
|
-
// },
|
|
29
|
-
]);
|
|
30
|
-
// Register each TIP20 token with the SDK
|
|
31
|
-
tip20Tokens.forEach(({ name, coinConstructor }) => {
|
|
10
|
+
tip20Token_1.Tip20Token.createTokenConstructors().forEach(({ name, coinConstructor }) => {
|
|
32
11
|
sdk.register(name, coinConstructor);
|
|
33
12
|
});
|
|
34
13
|
};
|
|
35
14
|
exports.register = register;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQWdDO0FBQ2hDLHFDQUFrQztBQUNsQyw2Q0FBMEM7QUFFbkMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsZUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLHVCQUFVLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3pFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5pbXBvcnQgeyBUdGVtcG8gfSBmcm9tICcuL3R0ZW1wbyc7XG5pbXBvcnQgeyBUaXAyMFRva2VuIH0gZnJvbSAnLi90aXAyMFRva2VuJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcigndGVtcG8nLCBUZW1wby5jcmVhdGVJbnN0YW5jZSk7XG4gIHNkay5yZWdpc3RlcigndHRlbXBvJywgVHRlbXBvLmNyZWF0ZUluc3RhbmNlKTtcbiAgVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBzZGsucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG59O1xuIl19
|
package/dist/src/tempo.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @prettier
|
|
3
3
|
*/
|
|
4
|
-
import { AbstractEthLikeNewCoins, RecoverOptions, OfflineVaultTxInfo, UnsignedSweepTxMPCv2, TransactionBuilder } from '@bitgo/abstract-eth';
|
|
4
|
+
import { AbstractEthLikeNewCoins, RecoverOptions, OfflineVaultTxInfo, UnsignedSweepTxMPCv2, TransactionBuilder, VerifyEthTransactionOptions, VerifyEthAddressOptions, TssVerifyEthAddressOptions } from '@bitgo/abstract-eth';
|
|
5
5
|
import type * as EthLikeCommon from '@ethereumjs/common';
|
|
6
|
-
import { BaseCoin, BitGoBase, MPCAlgorithm } from '@bitgo/sdk-core';
|
|
6
|
+
import { BaseCoin, BitGoBase, MPCAlgorithm, ParseTransactionOptions, ParsedTransaction } from '@bitgo/sdk-core';
|
|
7
7
|
import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics';
|
|
8
8
|
export declare class Tempo extends AbstractEthLikeNewCoins {
|
|
9
9
|
protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
|
|
@@ -59,6 +59,22 @@ export declare class Tempo extends AbstractEthLikeNewCoins {
|
|
|
59
59
|
* @returns true if valid
|
|
60
60
|
*/
|
|
61
61
|
isValidMemoId(memoId: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Tempo uses memoId-based addresses rather than forwarder contracts.
|
|
64
|
+
* Verify that the address belongs to this wallet by checking that the
|
|
65
|
+
* base (EVM) portion matches the wallet's base address.
|
|
66
|
+
*/
|
|
67
|
+
isWalletAddress(params: VerifyEthAddressOptions | TssVerifyEthAddressOptions): Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Parse a serialised Tempo transaction and return its operations as SDK outputs.
|
|
70
|
+
* @inheritdoc
|
|
71
|
+
*/
|
|
72
|
+
parseTransaction(params: ParseTransactionOptions): Promise<ParsedTransaction>;
|
|
73
|
+
/**
|
|
74
|
+
* Verify that a Tempo transaction matches the intended recipients and amounts.
|
|
75
|
+
* @inheritdoc
|
|
76
|
+
*/
|
|
77
|
+
verifyTransaction(params: VerifyEthTransactionOptions): Promise<boolean>;
|
|
62
78
|
/**
|
|
63
79
|
* Build unsigned sweep transaction for TSS
|
|
64
80
|
* TODO: Implement sweep transaction logic
|
package/dist/src/tempo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,SAAS,EAGT,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,gBAAgB,CAAC;AAMpE,qBAAa,KAAM,SAAQ,uBAAuB;IAChD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAaxC;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAsDnG;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BrG;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyBnF;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IA2C9E;;;OAGG;cACa,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAMpH;;;OAGG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMnC;;;;;OAKG;IACH,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,kBAAkB;CAGpF"}
|
package/dist/src/tempo.js
CHANGED
|
@@ -41,6 +41,7 @@ const abstract_eth_1 = require("@bitgo/abstract-eth");
|
|
|
41
41
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
42
42
|
const statics_1 = require("@bitgo/statics");
|
|
43
43
|
const lib_1 = require("./lib");
|
|
44
|
+
const utils_1 = require("./lib/utils");
|
|
44
45
|
const url = __importStar(require("url"));
|
|
45
46
|
const querystring = __importStar(require("querystring"));
|
|
46
47
|
class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
@@ -161,12 +162,97 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
161
162
|
* @returns true if valid
|
|
162
163
|
*/
|
|
163
164
|
isValidMemoId(memoId) {
|
|
164
|
-
|
|
165
|
-
|
|
165
|
+
return (0, utils_1.isValidMemoId)(memoId);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Tempo uses memoId-based addresses rather than forwarder contracts.
|
|
169
|
+
* Verify that the address belongs to this wallet by checking that the
|
|
170
|
+
* base (EVM) portion matches the wallet's base address.
|
|
171
|
+
*/
|
|
172
|
+
async isWalletAddress(params) {
|
|
173
|
+
const { address, baseAddress } = params;
|
|
174
|
+
const rootAddress = params.rootAddress;
|
|
175
|
+
if (!address) {
|
|
176
|
+
throw new sdk_core_1.InvalidAddressError('address is required');
|
|
166
177
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
178
|
+
if (!this.isValidAddress(address)) {
|
|
179
|
+
throw new sdk_core_1.InvalidAddressError(`invalid address: ${address}`);
|
|
180
|
+
}
|
|
181
|
+
const { baseAddress: addressBase } = this.getAddressDetails(address);
|
|
182
|
+
const walletBaseAddress = baseAddress || rootAddress;
|
|
183
|
+
if (!walletBaseAddress) {
|
|
184
|
+
throw new sdk_core_1.InvalidAddressError('baseAddress or rootAddress is required for verification');
|
|
185
|
+
}
|
|
186
|
+
const { baseAddress: walletBase } = this.getAddressDetails(walletBaseAddress);
|
|
187
|
+
if (addressBase.toLowerCase() !== walletBase.toLowerCase()) {
|
|
188
|
+
throw new sdk_core_1.UnexpectedAddressError(`address validation failure: expected ${walletBase} but got ${addressBase}`);
|
|
189
|
+
}
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Parse a serialised Tempo transaction and return its operations as SDK outputs.
|
|
194
|
+
* @inheritdoc
|
|
195
|
+
*/
|
|
196
|
+
async parseTransaction(params) {
|
|
197
|
+
const txHex = (params.txHex || params.halfSigned?.txHex);
|
|
198
|
+
if (!txHex) {
|
|
199
|
+
return {};
|
|
200
|
+
}
|
|
201
|
+
if (!(0, utils_1.isTip20Transaction)(txHex)) {
|
|
202
|
+
return {};
|
|
203
|
+
}
|
|
204
|
+
const txBuilder = this.getTransactionBuilder();
|
|
205
|
+
txBuilder.from(txHex);
|
|
206
|
+
const tx = (await txBuilder.build());
|
|
207
|
+
return {
|
|
208
|
+
inputs: tx.inputs.map((input) => ({
|
|
209
|
+
address: input.address,
|
|
210
|
+
amount: input.value,
|
|
211
|
+
coin: this.getChain(),
|
|
212
|
+
})),
|
|
213
|
+
outputs: tx.outputs.map((output) => ({
|
|
214
|
+
address: output.address,
|
|
215
|
+
amount: output.value,
|
|
216
|
+
coin: this.getChain(),
|
|
217
|
+
})),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Verify that a Tempo transaction matches the intended recipients and amounts.
|
|
222
|
+
* @inheritdoc
|
|
223
|
+
*/
|
|
224
|
+
async verifyTransaction(params) {
|
|
225
|
+
const { txParams, txPrebuild } = params;
|
|
226
|
+
if (!txPrebuild?.txHex) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
// signableHex may arrive without the 0x prefix (e.g. from the TSS signing flow).
|
|
230
|
+
const txHex = txPrebuild.txHex.startsWith('0x') ? txPrebuild.txHex : '0x' + txPrebuild.txHex;
|
|
231
|
+
if (!(0, utils_1.isTip20Transaction)(txHex)) {
|
|
232
|
+
throw new Error(`Invalid Tempo transaction hex: expected a 0x76 TIP-20 transaction`);
|
|
233
|
+
}
|
|
234
|
+
const txBuilder = this.getTransactionBuilder();
|
|
235
|
+
txBuilder.from(txHex);
|
|
236
|
+
const tx = (await txBuilder.build());
|
|
237
|
+
const operations = tx.getOperations();
|
|
238
|
+
// If the caller specified explicit recipients, verify they match the operations 1-to-1
|
|
239
|
+
const recipients = txParams?.recipients;
|
|
240
|
+
if (recipients && recipients.length > 0) {
|
|
241
|
+
if (operations.length !== recipients.length) {
|
|
242
|
+
throw new Error(`Transaction has ${operations.length} operation(s) but ${recipients.length} recipient(s) were requested`);
|
|
243
|
+
}
|
|
244
|
+
for (let i = 0; i < operations.length; i++) {
|
|
245
|
+
const op = operations[i];
|
|
246
|
+
const recipient = recipients[i];
|
|
247
|
+
if (op.to.toLowerCase() !== recipient.address.toLowerCase()) {
|
|
248
|
+
throw new Error(`Operation ${i} recipient mismatch: expected ${recipient.address}, got ${op.to}`);
|
|
249
|
+
}
|
|
250
|
+
// Compare amounts in base units (smallest denomination)
|
|
251
|
+
const opAmountBaseUnits = (0, utils_1.amountToTip20Units)(op.amount).toString();
|
|
252
|
+
if (opAmountBaseUnits !== recipient.amount.toString()) {
|
|
253
|
+
throw new Error(`Operation ${i} amount mismatch: expected ${recipient.amount}, got ${opAmountBaseUnits}`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
170
256
|
}
|
|
171
257
|
return true;
|
|
172
258
|
}
|
|
@@ -199,4 +285,4 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
199
285
|
}
|
|
200
286
|
}
|
|
201
287
|
exports.Tempo = Tempo;
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxzREFPNkI7QUFFN0IsOENBQTZHO0FBQzdHLDRDQUFvRTtBQUNwRSwrQkFBZ0Q7QUFDaEQseUNBQTJCO0FBQzNCLHlEQUEyQztBQUUzQyxNQUFhLEtBQU0sU0FBUSxzQ0FBdUI7SUFDaEQsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYTtRQUNYLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7T0FHRztJQUNILHdCQUF3QjtRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FB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SUFFRDs7O09BR0c7SUFDTyxLQUFLLENBQUMsd0JBQXdCLENBQUMsTUFBc0I7UUFDN0QsZ0RBQWdEO1FBQ2hELGtFQUFrRTtRQUNsRSxPQUFPLEVBQXdCLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQywrQkFBK0IsQ0FDbkMsS0FBNkIsRUFDN0IsTUFBZTtRQUVmLGdEQUFnRDtRQUNoRCxtRUFBbUU7UUFDbkUsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxxQkFBcUIsQ0FBQyxNQUE4QjtRQUM1RCxPQUFPLElBQUksNkJBQXVCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBa0MsQ0FBQztJQUN0RyxDQUFDO0NBQ0Y7QUFyTEQsc0JBcUxDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RFdGhMaWtlTmV3Q29pbnMsXG4gIFJlY292ZXJPcHRpb25zLFxuICBPZmZsaW5lVmF1bHRUeEluZm8sXG4gIFVuc2lnbmVkU3dlZXBUeE1QQ3YyLFxuICBUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIG9wdGlvbmFsRGVwcyxcbn0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIEV0aExpa2VDb21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UsIEludmFsaWRBZGRyZXNzRXJyb3IsIEludmFsaWRNZW1vSWRFcnJvciwgTVBDQWxnb3JpdGhtIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUaXAyMFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vbGliJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuXG5leHBvcnQgY2xhc3MgVGVtcG8gZXh0ZW5kcyBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBUZW1wbyBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjaGFpbiBpZGVudGlmaWVyXG4gICAqL1xuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbj8ubmFtZSB8fCAndGVtcG8nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBjaGFpbiBuYW1lXG4gICAqL1xuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVGVtcG8nO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMWU2O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHZhbHVlLWxlc3MgdHJhbnNmZXJzIGFyZSBhbGxvd2VkXG4gICAqIFRPRE86IFVwZGF0ZSBiYXNlZCBvbiBUZW1wbyByZXF1aXJlbWVudHNcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgVFNTIGlzIHN1cHBvcnRlZFxuICAgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBNUEMgYWxnb3JpdGhtIChFQ0RTQSBmb3IgRVZNIGNoYWlucylcbiAgICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB3aGV0aGVyIGFuIGFkZHJlc3Mgc3RyaW5nIGlzIHZhbGlkIGZvciBUZW1wb1xuICAgKiBTdXBwb3J0cyBhZGRyZXNzZXMgd2l0aCBvcHRpb25hbCBtZW1vSWQgcXVlcnkgcGFyYW1ldGVyIChlLmcuLCAweC4uLj9tZW1vSWQ9MTIzKVxuICAgKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYWRkcmVzcyBpcyB2YWxpZFxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGJhc2VBZGRyZXNzIH0gPSB0aGlzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIG9wdGlvbmFsRGVwcy5ldGhVdGlsLmlzVmFsaWRBZGRyZXNzKG9wdGlvbmFsRGVwcy5ldGhVdGlsLmFkZEhleFByZWZpeChiYXNlQWRkcmVzcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYWRkcmVzcyBpbnRvIGJhc2UgYWRkcmVzcyBhbmQgb3B0aW9uYWwgbWVtb0lkXG4gICAqIFRocm93cyBJbnZhbGlkQWRkcmVzc0Vycm9yIGZvciBpbnZhbGlkIGFkZHJlc3MgZm9ybWF0c1xuICAgKiBAcGFyYW0gYWRkcmVzcyAtIEFkZHJlc3Mgc3RyaW5nLCBwb3RlbnRpYWxseSB3aXRoID9tZW1vSWQ9WCBzdWZmaXhcbiAgICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcywgYmFzZUFkZHJlc3MsIGFuZCBtZW1vSWQgKG51bGwgaWYgbm90IHByZXNlbnQpXG4gICAqIEB0aHJvd3MgSW52YWxpZEFkZHJlc3NFcnJvciBpZiBhZGRyZXNzIGZvcm1hdCBpcyBpbnZhbGlkXG4gICAqL1xuICBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzOiBzdHJpbmcpOiB7IGFkZHJlc3M6IHN0cmluZzsgYmFzZUFkZHJlc3M6IHN0cmluZzsgbWVtb0lkOiBzdHJpbmcgfCBudWxsIH0ge1xuICAgIGlmICh0eXBlb2YgYWRkcmVzcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbkRldGFpbHMgPSB1cmwucGFyc2UoYWRkcmVzcyk7XG4gICAgY29uc3QgYmFzZUFkZHJlc3MgPSBkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgfHwgJyc7XG5cbiAgICAvLyBObyBxdWVyeSBzdHJpbmcgLSBqdXN0IGEgcGxhaW4gYWRkcmVzc1xuICAgIGlmIChkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgPT09IGFkZHJlc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3MsXG4gICAgICAgIGJhc2VBZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgICBtZW1vSWQ6IG51bGwsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEhhcyBxdWVyeSBzdHJpbmcgLSBtdXN0IGNvbnRhaW4gbWVtb0lkXG4gICAgaWYgKCFkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeURldGFpbHMgPSBxdWVyeXN0cmluZy5wYXJzZShkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpO1xuXG4gICAgLy8gUXVlcnkgc3RyaW5nIG11c3QgY29udGFpbiBtZW1vSWRcbiAgICBpZiAoIXF1ZXJ5RGV0YWlscy5tZW1vSWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIHVua25vd24gcXVlcnkgcGFyYW1ldGVyc2ApO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb25lIG1lbW9JZCBhbGxvd2VkXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlEZXRhaWxzLm1lbW9JZCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKFxuICAgICAgICBgbWVtb0lkIG1heSBvbmx5IGJlIGdpdmVuIGF0IG1vc3Qgb25jZSwgYnV0IGZvdW5kICR7cXVlcnlEZXRhaWxzLm1lbW9JZC5sZW5ndGh9IGluc3RhbmNlcyBpbiBhZGRyZXNzICR7YWRkcmVzc31gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJlamVjdCBpZiB0aGVyZSBhcmUgb3RoZXIgcXVlcnkgcGFyYW1ldGVycyBiZXNpZGVzIG1lbW9JZFxuICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5RGV0YWlscyk7XG4gICAgaWYgKHF1ZXJ5S2V5cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIG9ubHkgbWVtb0lkIHF1ZXJ5IHBhcmFtZXRlciBpcyBhbGxvd2VkYCk7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgbWVtb0lkIGZvcm1hdFxuICAgIGlmICghdGhpcy5pc1ZhbGlkTWVtb0lkKHF1ZXJ5RGV0YWlscy5tZW1vSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZE1lbW9JZEVycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICcke2FkZHJlc3N9JywgbWVtb0lkIGlzIG5vdCB2YWxpZGApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzLFxuICAgICAgYmFzZUFkZHJlc3MsXG4gICAgICBtZW1vSWQ6IHF1ZXJ5RGV0YWlscy5tZW1vSWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGEgbWVtb0lkIGlzIGEgdmFsaWQgbm9uLW5lZ2F0aXZlIGludGVnZXIgc3RyaW5nXG4gICAqIEBwYXJhbSBtZW1vSWQgLSBUaGUgbWVtb0lkIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWRcbiAgICovXG4gIGlzVmFsaWRNZW1vSWQobWVtb0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIG1lbW9JZCAhPT0gJ3N0cmluZycgfHwgbWVtb0lkID09PSAnJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBNdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgKG5vIGRlY2ltYWxzLCBubyBuZWdhdGl2ZSwgbm8gbGVhZGluZyB6ZXJvcyBleGNlcHQgZm9yIFwiMFwiKVxuICAgIGlmICghL14oMHxbMS05XVxcZCopJC8udGVzdChtZW1vSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHVuc2lnbmVkIHN3ZWVwIHRyYW5zYWN0aW9uIGZvciBUU1NcbiAgICogVE9ETzogSW1wbGVtZW50IHN3ZWVwIHRyYW5zYWN0aW9uIGxvZ2ljXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRVbnNpZ25lZFN3ZWVwVHhuVFNTKHBhcmFtczogUmVjb3Zlck9wdGlvbnMpOiBQcm9taXNlPE9mZmxpbmVWYXVsdFR4SW5mbyB8IFVuc2lnbmVkU3dlZXBUeE1QQ3YyPiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHdoZW4gcmVjb3ZlcnkgbG9naWMgaXMgbmVlZGVkXG4gICAgLy8gUmV0dXJuIGR1bW15IHZhbHVlIHRvIHByZXZlbnQgZG93bnN0cmVhbSBzZXJ2aWNlcyBmcm9tIGJyZWFraW5nXG4gICAgcmV0dXJuIHt9IGFzIE9mZmxpbmVWYXVsdFR4SW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyeSBibG9jayBleHBsb3JlciBmb3IgcmVjb3ZlcnkgaW5mb3JtYXRpb25cbiAgICogVE9ETzogSW1wbGVtZW50IHdoZW4gVGVtcG8gYmxvY2sgZXhwbG9yZXIgaXMgYXZhaWxhYmxlXG4gICAqL1xuICBhc3luYyByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KFxuICAgIHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIGFwaUtleT86IHN0cmluZ1xuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHdpdGggVGVtcG8gYmxvY2sgZXhwbG9yZXIgQVBJXG4gICAgLy8gUmV0dXJuIGVtcHR5IG9iamVjdCB0byBwcmV2ZW50IGRvd25zdHJlYW0gc2VydmljZXMgZnJvbSBicmVha2luZ1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gYnVpbGRlciBmb3IgVGVtcG9cbiAgICogUmV0dXJucyBhIFRJUC0yMCB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBUZW1wby1zcGVjaWZpYyBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSBjb21tb24gLSBPcHRpb25hbCBjb21tb24gY2hhaW4gY29uZmlndXJhdGlvblxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKGNvbW1vbj86IEV0aExpa2VDb21tb24uZGVmYXVsdCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUaXAyMFRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQodGhpcy5nZXRCYXNlQ2hhaW4oKSkpIGFzIHVua25vd24gYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICB9XG59XG4iXX0=
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxzREFVNkI7QUFFN0IsOENBU3lCO0FBQ3pCLDRDQUFvRTtBQUNwRSwrQkFBa0U7QUFDbEUsdUNBQXlHO0FBQ3pHLHlDQUEyQjtBQUMzQix5REFBMkM7QUFFM0MsTUFBYSxLQUFNLFNBQVEsc0NBQXVCO0lBQ2hELFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGFBQWE7UUFDWCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUss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QUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDcEcsQ0FBQztnQkFDRCx3REFBd0Q7Z0JBQ3hELE1BQU0saUJBQWlCLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25FLElBQUksaUJBQWlCLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsU0FBUyxDQUFDLE1BQU0sU0FBUyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7Z0JBQzVHLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNPLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFzQjtRQUM3RCxnREFBZ0Q7UUFDaEQsa0VBQWtFO1FBQ2xFLE9BQU8sRUFBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLCtCQUErQixDQUNuQyxLQUE2QixFQUM3QixNQUFlO1FBRWYsZ0RBQWdEO1FBQ2hELG1FQUFtRTtRQUNuRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLHFCQUFxQixDQUFDLE1BQThCO1FBQzVELE9BQU8sSUFBSSw2QkFBdUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFrQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRjtBQTNSRCxzQkEyUkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgUmVjb3Zlck9wdGlvbnMsXG4gIE9mZmxpbmVWYXVsdFR4SW5mbyxcbiAgVW5zaWduZWRTd2VlcFR4TVBDdjIsXG4gIFRyYW5zYWN0aW9uQnVpbGRlcixcbiAgVmVyaWZ5RXRoVHJhbnNhY3Rpb25PcHRpb25zLFxuICBWZXJpZnlFdGhBZGRyZXNzT3B0aW9ucyxcbiAgVHNzVmVyaWZ5RXRoQWRkcmVzc09wdGlvbnMsXG4gIG9wdGlvbmFsRGVwcyxcbn0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIEV0aExpa2VDb21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7XG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEludmFsaWRBZGRyZXNzRXJyb3IsXG4gIEludmFsaWRNZW1vSWRFcnJvcixcbiAgTVBDQWxnb3JpdGhtLFxuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgUGFyc2VkVHJhbnNhY3Rpb24sXG4gIFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVGlwMjBUcmFuc2FjdGlvbiwgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgeyBhbW91bnRUb1RpcDIwVW5pdHMsIGlzVGlwMjBUcmFuc2FjdGlvbiwgaXNWYWxpZE1lbW9JZCBhcyBpc1ZhbGlkTWVtb0lkVXRpbCB9IGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuXG5leHBvcnQgY2xhc3MgVGVtcG8gZXh0ZW5kcyBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBUZW1wbyBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjaGFpbiBpZGVudGlmaWVyXG4gICAqL1xuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbj8ubmFtZSB8fCAndGVtcG8nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBjaGFpbiBuYW1lXG4gICAqL1xuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVGVtcG8nO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMWU2O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHZhbHVlLWxlc3MgdHJhbnNmZXJzIGFyZSBhbGxvd2VkXG4gICAqIFRPRE86IFVwZGF0ZSBiYXNlZCBvbiBUZW1wbyByZXF1aXJlbWVudHNcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgVFNTIGlzIHN1cHBvcnRlZFxuICAgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBNUEMgYWxnb3JpdGhtIChFQ0RTQSBmb3IgRVZNIGNoYWlucylcbiAgICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB3aGV0aGVyIGFuIGFkZHJlc3Mgc3RyaW5nIGlzIHZhbGlkIGZvciBUZW1wb1xuICAgKiBTdXBwb3J0cyBhZGRyZXNzZXMgd2l0aCBvcHRpb25hbCBtZW1vSWQgcXVlcnkgcGFyYW1ldGVyIChlLmcuLCAweC4uLj9tZW1vSWQ9MTIzKVxuICAgKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYWRkcmVzcyBpcyB2YWxpZFxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGJhc2VBZGRyZXNzIH0gPSB0aGlzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIG9wdGlvbmFsRGVwcy5ldGhVdGlsLmlzVmFsaWRBZGRyZXNzKG9wdGlvbmFsRGVwcy5ldGhVdGlsLmFkZEhleFByZWZpeChiYXNlQWRkcmVzcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYWRkcmVzcyBpbnRvIGJhc2UgYWRkcmVzcyBhbmQgb3B0aW9uYWwgbWVtb0lkXG4gICAqIFRocm93cyBJbnZhbGlkQWRkcmVzc0Vycm9yIGZvciBpbnZhbGlkIGFkZHJlc3MgZm9ybWF0c1xuICAgKiBAcGFyYW0gYWRkcmVzcyAtIEFkZHJlc3Mgc3RyaW5nLCBwb3RlbnRpYWxseSB3aXRoID9tZW1vSWQ9WCBzdWZmaXhcbiAgICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcywgYmFzZUFkZHJlc3MsIGFuZCBtZW1vSWQgKG51bGwgaWYgbm90IHByZXNlbnQpXG4gICAqIEB0aHJvd3MgSW52YWxpZEFkZHJlc3NFcnJvciBpZiBhZGRyZXNzIGZvcm1hdCBpcyBpbnZhbGlkXG4gICAqL1xuICBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzOiBzdHJpbmcpOiB7IGFkZHJlc3M6IHN0cmluZzsgYmFzZUFkZHJlc3M6IHN0cmluZzsgbWVtb0lkOiBzdHJpbmcgfCBudWxsIH0ge1xuICAgIGlmICh0eXBlb2YgYWRkcmVzcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbkRldGFpbHMgPSB1cmwucGFyc2UoYWRkcmVzcyk7XG4gICAgY29uc3QgYmFzZUFkZHJlc3MgPSBkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgfHwgJyc7XG5cbiAgICAvLyBObyBxdWVyeSBzdHJpbmcgLSBqdXN0IGEgcGxhaW4gYWRkcmVzc1xuICAgIGlmIChkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgPT09IGFkZHJlc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3MsXG4gICAgICAgIGJhc2VBZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgICBtZW1vSWQ6IG51bGwsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEhhcyBxdWVyeSBzdHJpbmcgLSBtdXN0IGNvbnRhaW4gbWVtb0lkXG4gICAgaWYgKCFkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeURldGFpbHMgPSBxdWVyeXN0cmluZy5wYXJzZShkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpO1xuXG4gICAgLy8gUXVlcnkgc3RyaW5nIG11c3QgY29udGFpbiBtZW1vSWRcbiAgICBpZiAoIXF1ZXJ5RGV0YWlscy5tZW1vSWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIHVua25vd24gcXVlcnkgcGFyYW1ldGVyc2ApO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb25lIG1lbW9JZCBhbGxvd2VkXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlEZXRhaWxzLm1lbW9JZCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKFxuICAgICAgICBgbWVtb0lkIG1heSBvbmx5IGJlIGdpdmVuIGF0IG1vc3Qgb25jZSwgYnV0IGZvdW5kICR7cXVlcnlEZXRhaWxzLm1lbW9JZC5sZW5ndGh9IGluc3RhbmNlcyBpbiBhZGRyZXNzICR7YWRkcmVzc31gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJlamVjdCBpZiB0aGVyZSBhcmUgb3RoZXIgcXVlcnkgcGFyYW1ldGVycyBiZXNpZGVzIG1lbW9JZFxuICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5RGV0YWlscyk7XG4gICAgaWYgKHF1ZXJ5S2V5cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIG9ubHkgbWVtb0lkIHF1ZXJ5IHBhcmFtZXRlciBpcyBhbGxvd2VkYCk7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgbWVtb0lkIGZvcm1hdFxuICAgIGlmICghdGhpcy5pc1ZhbGlkTWVtb0lkKHF1ZXJ5RGV0YWlscy5tZW1vSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZE1lbW9JZEVycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICcke2FkZHJlc3N9JywgbWVtb0lkIGlzIG5vdCB2YWxpZGApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzLFxuICAgICAgYmFzZUFkZHJlc3MsXG4gICAgICBtZW1vSWQ6IHF1ZXJ5RGV0YWlscy5tZW1vSWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGEgbWVtb0lkIGlzIGEgdmFsaWQgbm9uLW5lZ2F0aXZlIGludGVnZXIgc3RyaW5nXG4gICAqIEBwYXJhbSBtZW1vSWQgLSBUaGUgbWVtb0lkIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWRcbiAgICovXG4gIGlzVmFsaWRNZW1vSWQobWVtb0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZE1lbW9JZFV0aWwobWVtb0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wbyB1c2VzIG1lbW9JZC1iYXNlZCBhZGRyZXNzZXMgcmF0aGVyIHRoYW4gZm9yd2FyZGVyIGNvbnRyYWN0cy5cbiAgICogVmVyaWZ5IHRoYXQgdGhlIGFkZHJlc3MgYmVsb25ncyB0byB0aGlzIHdhbGxldCBieSBjaGVja2luZyB0aGF0IHRoZVxuICAgKiBiYXNlIChFVk0pIHBvcnRpb24gbWF0Y2hlcyB0aGUgd2FsbGV0J3MgYmFzZSBhZGRyZXNzLlxuICAgKi9cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5RXRoQWRkcmVzc09wdGlvbnMgfCBUc3NWZXJpZnlFdGhBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgYWRkcmVzcywgYmFzZUFkZHJlc3MgfSA9IHBhcmFtcztcbiAgICBjb25zdCByb290QWRkcmVzcyA9IChwYXJhbXMgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikucm9vdEFkZHJlc3MgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcignYWRkcmVzcyBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYmFzZUFkZHJlc3M6IGFkZHJlc3NCYXNlIH0gPSB0aGlzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuXG4gICAgY29uc3Qgd2FsbGV0QmFzZUFkZHJlc3MgPSBiYXNlQWRkcmVzcyB8fCByb290QWRkcmVzcztcbiAgICBpZiAoIXdhbGxldEJhc2VBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcignYmFzZUFkZHJlc3Mgb3Igcm9vdEFkZHJlc3MgaXMgcmVxdWlyZWQgZm9yIHZlcmlmaWNhdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYmFzZUFkZHJlc3M6IHdhbGxldEJhc2UgfSA9IHRoaXMuZ2V0QWRkcmVzc0RldGFpbHMod2FsbGV0QmFzZUFkZHJlc3MpO1xuXG4gICAgaWYgKGFkZHJlc3NCYXNlLnRvTG93ZXJDYXNlKCkgIT09IHdhbGxldEJhc2UudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiBleHBlY3RlZCAke3dhbGxldEJhc2V9IGJ1dCBnb3QgJHthZGRyZXNzQmFzZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhIHNlcmlhbGlzZWQgVGVtcG8gdHJhbnNhY3Rpb24gYW5kIHJldHVybiBpdHMgb3BlcmF0aW9ucyBhcyBTREsgb3V0cHV0cy5cbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eEhleCA9IChwYXJhbXMudHhIZXggfHwgKHBhcmFtcyBhcyBhbnkpLmhhbGZTaWduZWQ/LnR4SGV4KSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF0eEhleCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAoIWlzVGlwMjBUcmFuc2FjdGlvbih0eEhleCkpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgdHhCdWlsZGVyID0gdGhpcy5nZXRUcmFuc2FjdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuZnJvbSh0eEhleCk7XG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRpcDIwVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0czogdHguaW5wdXRzLm1hcCgoaW5wdXQpID0+ICh7XG4gICAgICAgIGFkZHJlc3M6IGlucHV0LmFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogaW5wdXQudmFsdWUsXG4gICAgICAgIGNvaW46IHRoaXMuZ2V0Q2hhaW4oKSxcbiAgICAgIH0pKSxcbiAgICAgIG91dHB1dHM6IHR4Lm91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IG91dHB1dC52YWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5nZXRDaGFpbigpLFxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgYSBUZW1wbyB0cmFuc2FjdGlvbiBtYXRjaGVzIHRoZSBpbnRlbmRlZCByZWNpcGllbnRzIGFuZCBhbW91bnRzLlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlFdGhUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UGFyYW1zLCB0eFByZWJ1aWxkIH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoIXR4UHJlYnVpbGQ/LnR4SGV4KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBzaWduYWJsZUhleCBtYXkgYXJyaXZlIHdpdGhvdXQgdGhlIDB4IHByZWZpeCAoZS5nLiBmcm9tIHRoZSBUU1Mgc2lnbmluZyBmbG93KS5cbiAgICBjb25zdCB0eEhleCA9IHR4UHJlYnVpbGQudHhIZXguc3RhcnRzV2l0aCgnMHgnKSA/IHR4UHJlYnVpbGQudHhIZXggOiAnMHgnICsgdHhQcmVidWlsZC50eEhleDtcbiAgICBpZiAoIWlzVGlwMjBUcmFuc2FjdGlvbih0eEhleCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBUZW1wbyB0cmFuc2FjdGlvbiBoZXg6IGV4cGVjdGVkIGEgMHg3NiBUSVAtMjAgdHJhbnNhY3Rpb25gKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eEJ1aWxkZXIgPSB0aGlzLmdldFRyYW5zYWN0aW9uQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5mcm9tKHR4SGV4KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVGlwMjBUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBvcGVyYXRpb25zID0gdHguZ2V0T3BlcmF0aW9ucygpO1xuXG4gICAgLy8gSWYgdGhlIGNhbGxlciBzcGVjaWZpZWQgZXhwbGljaXQgcmVjaXBpZW50cywgdmVyaWZ5IHRoZXkgbWF0Y2ggdGhlIG9wZXJhdGlvbnMgMS10by0xXG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHR4UGFyYW1zPy5yZWNpcGllbnRzO1xuICAgIGlmIChyZWNpcGllbnRzICYmIHJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKG9wZXJhdGlvbnMubGVuZ3RoICE9PSByZWNpcGllbnRzLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFRyYW5zYWN0aW9uIGhhcyAke29wZXJhdGlvbnMubGVuZ3RofSBvcGVyYXRpb24ocykgYnV0ICR7cmVjaXBpZW50cy5sZW5ndGh9IHJlY2lwaWVudChzKSB3ZXJlIHJlcXVlc3RlZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3BlcmF0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvcCA9IG9wZXJhdGlvbnNbaV07XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudCA9IHJlY2lwaWVudHNbaV07XG4gICAgICAgIGlmIChvcC50by50b0xvd2VyQ2FzZSgpICE9PSByZWNpcGllbnQuYWRkcmVzcy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcGVyYXRpb24gJHtpfSByZWNpcGllbnQgbWlzbWF0Y2g6IGV4cGVjdGVkICR7cmVjaXBpZW50LmFkZHJlc3N9LCBnb3QgJHtvcC50b31gKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDb21wYXJlIGFtb3VudHMgaW4gYmFzZSB1bml0cyAoc21hbGxlc3QgZGVub21pbmF0aW9uKVxuICAgICAgICBjb25zdCBvcEFtb3VudEJhc2VVbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhvcC5hbW91bnQpLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChvcEFtb3VudEJhc2VVbml0cyAhPT0gcmVjaXBpZW50LmFtb3VudC50b1N0cmluZygpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcGVyYXRpb24gJHtpfSBhbW91bnQgbWlzbWF0Y2g6IGV4cGVjdGVkICR7cmVjaXBpZW50LmFtb3VudH0sIGdvdCAke29wQW1vdW50QmFzZVVuaXRzfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdW5zaWduZWQgc3dlZXAgdHJhbnNhY3Rpb24gZm9yIFRTU1xuICAgKiBUT0RPOiBJbXBsZW1lbnQgc3dlZXAgdHJhbnNhY3Rpb24gbG9naWNcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZFVuc2lnbmVkU3dlZXBUeG5UU1MocGFyYW1zOiBSZWNvdmVyT3B0aW9ucyk6IFByb21pc2U8T2ZmbGluZVZhdWx0VHhJbmZvIHwgVW5zaWduZWRTd2VlcFR4TVBDdjI+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgd2hlbiByZWNvdmVyeSBsb2dpYyBpcyBuZWVkZWRcbiAgICAvLyBSZXR1cm4gZHVtbXkgdmFsdWUgdG8gcHJldmVudCBkb3duc3RyZWFtIHNlcnZpY2VzIGZyb20gYnJlYWtpbmdcbiAgICByZXR1cm4ge30gYXMgT2ZmbGluZVZhdWx0VHhJbmZvO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGJsb2NrIGV4cGxvcmVyIGZvciByZWNvdmVyeSBpbmZvcm1hdGlvblxuICAgKiBUT0RPOiBJbXBsZW1lbnQgd2hlbiBUZW1wbyBibG9jayBleHBsb3JlciBpcyBhdmFpbGFibGVcbiAgICovXG4gIGFzeW5jIHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkoXG4gICAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgYXBpS2V5Pzogc3RyaW5nXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgd2l0aCBUZW1wbyBibG9jayBleHBsb3JlciBBUElcbiAgICAvLyBSZXR1cm4gZW1wdHkgb2JqZWN0IHRvIHByZXZlbnQgZG93bnN0cmVhbSBzZXJ2aWNlcyBmcm9tIGJyZWFraW5nXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBUZW1wb1xuICAgKiBSZXR1cm5zIGEgVElQLTIwIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZm9yIFRlbXBvLXNwZWNpZmljIG9wZXJhdGlvbnNcbiAgICogQHBhcmFtIGNvbW1vbiAtIE9wdGlvbmFsIGNvbW1vbiBjaGFpbiBjb25maWd1cmF0aW9uXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUcmFuc2FjdGlvbkJ1aWxkZXIoY29tbW9uPzogRXRoTGlrZUNvbW1vbi5kZWZhdWx0KTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRpcDIwVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSkgYXMgdW5rbm93biBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
|
package/dist/src/tip20Token.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export declare class Tip20Token extends Tempo {
|
|
|
23
23
|
static createTokenConstructor(config: Tip20TokenConfig): CoinConstructor;
|
|
24
24
|
/**
|
|
25
25
|
* Create token constructors for all TIP20 tokens
|
|
26
|
-
* @param tokenConfigs - Array of token configurations
|
|
26
|
+
* @param tokenConfigs - Array of token configurations; defaults to all TIP20 tokens from statics
|
|
27
27
|
*/
|
|
28
28
|
static createTokenConstructors(tokenConfigs?: Tip20TokenConfig[]): NamedCoinConstructor[];
|
|
29
29
|
/** Get the token type */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tip20Token.d.ts","sourceRoot":"","sources":["../../src/tip20Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,
|
|
1
|
+
{"version":3,"file":"tip20Token.d.ts","sourceRoot":"","sources":["../../src/tip20Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAiB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,WAAW,EAAE,gBAAgB,CAAC;IAC9C,SAAgB,eAAe,EAAE,MAAM,CAAC;gBAE5B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB;IAO3D;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAIxE;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAC5B,YAAY,GAAE,gBAAgB,EAAqE,GAClG,oBAAoB,EAAE;IAezB,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wBAAwB;IACxB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sBAAsB;IACtB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED,+BAA+B;IAC/B,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,kBAAkB;IAClB,QAAQ,IAAI,MAAM;IAIlB,kBAAkB;IAClB,YAAY,IAAI,MAAM;IAItB,kBAAkB;IAClB,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,aAAa,IAAI,MAAM;IAIvB,kBAAkB;IAClB,wBAAwB,IAAI,OAAO;IAInC,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,kBAAkB;IAClB,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAelE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,cAAc,EAAE;IA+DrE;;;;;;OAMG;IACH,YAAY,CACV,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,GACzB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE;CA0BzB"}
|
package/dist/src/tip20Token.js
CHANGED
|
@@ -26,10 +26,10 @@ class Tip20Token extends tempo_1.Tempo {
|
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Create token constructors for all TIP20 tokens
|
|
29
|
-
* @param tokenConfigs - Array of token configurations
|
|
29
|
+
* @param tokenConfigs - Array of token configurations; defaults to all TIP20 tokens from statics
|
|
30
30
|
*/
|
|
31
|
-
static createTokenConstructors(tokenConfigs) {
|
|
32
|
-
const configs = tokenConfigs
|
|
31
|
+
static createTokenConstructors(tokenConfigs = [...statics_1.tokens.bitcoin.tempo.tokens, ...statics_1.tokens.testnet.tempo.tokens]) {
|
|
32
|
+
const configs = tokenConfigs;
|
|
33
33
|
const tokensCtors = [];
|
|
34
34
|
for (const token of configs) {
|
|
35
35
|
const tokenConstructor = Tip20Token.createTokenConstructor(token);
|
|
@@ -199,4 +199,4 @@ class Tip20Token extends tempo_1.Tempo {
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
exports.Tip20Token = Tip20Token;
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDRDQUF5RDtBQUd6RCxtQ0FBZ0M7QUFDaEMsdUNBQWtIO0FBSWxIOzs7Ozs7R0FNRztBQUNILE1BQWEsVUFBVyxTQUFRLGFBQUs7SUFJbkMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pHLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxZQUFpQztRQUM5RCxNQUFNLE9BQU8sR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7UUFFL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSx5QkFBeUI7WUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUks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SSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksY0FBYyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixjQUFjLDJCQUEyQixDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFrQixFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxJQUFBLG1DQUEyQixFQUFDLFNBQVMsQ0FBQyxPQUFrQixFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEcsOERBQThEO1FBQzlELE9BQU87WUFDTCxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFDcEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbk9ELGdDQW1PQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBNUENBbGdvcml0aG0sIE5hbWVkQ29pbkNvbnN0cnVjdG9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zLCBUaXAyMFRva2VuQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgR2V0U2VuZE1ldGhvZEFyZ3NPcHRpb25zLCBTZW5kTWV0aG9kQXJncyB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4vbGliL3R5cGVzJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5pbXBvcnQgeyBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sIGFtb3VudFRvVGlwMjBVbml0cywgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRUaXAyMEFtb3VudCB9IGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0IHsgVGlwMjBUb2tlbkNvbmZpZyB9O1xuXG4vKipcbiAqIFRJUDIwIFRva2VuIEltcGxlbWVudGF0aW9uIChTa2VsZXRvbilcbiAqXG4gKiBUaGlzIGlzIGEgbWluaW1hbCBza2VsZXRvbiBmb3IgVElQMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW4uXG4gKlxuICogVE9ETzogQWxsIG1ldGhvZHMgd2lsbCBiZSBpbXBsZW1lbnRlZCBwcm9ncmVzc2l2ZWx5XG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRva2VuIGV4dGVuZHMgVGVtcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWc7XG4gIHB1YmxpYyByZWFkb25seSBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gJ01haW5uZXQnID8gY29pbnMuZ2V0KCd0ZW1wbycpIDogY29pbnMuZ2V0KCd0dGVtcG8nKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgICB0aGlzLmNvbnRyYWN0QWRkcmVzcyA9IHRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvaW4gY29uc3RydWN0b3IgZm9yIGEgc3BlY2lmaWMgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgVGlwMjBUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdG9rZW4gY29uc3RydWN0b3JzIGZvciBhbGwgVElQMjAgdG9rZW5zXG4gICAqIEBwYXJhbSB0b2tlbkNvbmZpZ3MgLSBBcnJheSBvZiB0b2tlbiBjb25maWd1cmF0aW9ucyAob3B0aW9uYWwpXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnModG9rZW5Db25maWdzPzogVGlwMjBUb2tlbkNvbmZpZ1tdKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgY29uZmlncyA9IHRva2VuQ29uZmlncyB8fCBbXTtcbiAgICBjb25zdCB0b2tlbnNDdG9yczogTmFtZWRDb2luQ29uc3RydWN0b3JbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiBjb25maWdzKSB7XG4gICAgICBjb25zdCB0b2tlbkNvbnN0cnVjdG9yID0gVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKHRva2VuKTtcbiAgICAgIC8vIFJlZ2lzdGVyIGJ5IHRva2VuIHR5cGVcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50eXBlLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgICAvLyBBbHNvIHJlZ2lzdGVyIGJ5IGNvbnRyYWN0IGFkZHJlc3MgZm9yIGxvb2t1cHNcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50b2tlbkNvbnRyYWN0QWRkcmVzcywgY29pbkNvbnN0cnVjdG9yOiB0b2tlbkNvbnN0cnVjdG9yIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbnNDdG9ycztcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIHR5cGUgKi9cbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gbmFtZSAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICAvKiogR2V0IHRoZSBiYXNlIGNvaW4gKi9cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbmV0d29yayAqL1xuICBnZXQgbmV0d29yaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5ldHdvcms7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiBjb250cmFjdCBhZGRyZXNzICovXG4gIGdldCB0b2tlbkNvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqIEdldCB0b2tlbiBkZWNpbWFsIHBsYWNlcyAqL1xuICBnZXQgZGVjaW1hbFBsYWNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RJUDIwIFRva2VuJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvaW4vdG9rZW4gbWF0Y2hlcyB0aGlzIHRva2VuXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIC0gVHJhbnNhY3Rpb24gcHJlYnVpbGQgb2JqZWN0XG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5Q29pbih0eFByZWJ1aWxkOiB7IGNvaW4/OiBzdHJpbmc7IHRva2VuPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBpZiAoIXR4UHJlYnVpbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY29pbiBvciB0b2tlbiBtYXRjaGVzIHRoaXMgdG9rZW4ncyBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29pbk1hdGNoID0gdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLmNvaW4gfHwgdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gICAgY29uc3QgdG9rZW5NYXRjaCA9XG4gICAgICAhdHhQcmVidWlsZC50b2tlbiB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuXG4gICAgcmV0dXJuIGNvaW5NYXRjaCAmJiB0b2tlbk1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIFRJUC0yMCB0b2tlbiB0cmFuc2ZlciB3aXRoIG1lbW9cbiAgICogQHBhcmFtIHR4SW5mbyAtIFRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGluY2x1ZGluZyByZWNpcGllbnQgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudCB9ID0gdHhJbmZvO1xuXG4gICAgaWYgKCFyZWNpcGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciB0b2tlbiB0cmFuc2ZlcicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7cmVjaXBpZW50LmFkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVGlwMjBBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7cmVjaXBpZW50LmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vID0gKHJlY2lwaWVudCBhcyB7IG1lbW8/OiBzdHJpbmcgfSkubWVtbztcblxuICAgIGlmIChtZW1vICYmIEJ1ZmZlci5ieXRlTGVuZ3RoKG1lbW8sICd1dGYtOCcpID4gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWVtbyB0b28gbG9uZzogbWF4aW11bSAzMiBieXRlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgY29uc3QgZGF0YSA9IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbyhyZWNpcGllbnQuYWRkcmVzcyBhcyBBZGRyZXNzLCBhbW91bnRJblVuaXRzLCBtZW1vKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0b0FkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICAgIHR5cGU6ICd1aW50JyxcbiAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndG9rZW5Db250cmFjdEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGEnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cGlyZVRpbWUnLFxuICAgICAgICB0eXBlOiAndWludCcsXG4gICAgICAgIHZhbHVlOiB0eEluZm8uZXhwaXJlVGltZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZXF1ZW5jZUlkJyxcbiAgICAgICAgdHlwZTogJ3VpbnQnLFxuICAgICAgICB2YWx1ZTogdHhJbmZvLmNvbnRyYWN0U2VxdWVuY2VJZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaWduYXR1cmUnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20odHhJbmZvLnNpZ25hdHVyZS5yZXBsYWNlKCcweCcsICcnKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYXRpb24gb2JqZWN0IGZvciBUSVAtMjAgdG9rZW4gdHJhbnNmZXIgKGZvciBiYXRjaCB0cmFuc2FjdGlvbnMpXG4gICAqIEBwYXJhbSByZWNpcGllbnQgLSBSZWNpcGllbnQgaW5mb3JtYXRpb24gd2l0aCBhZGRyZXNzLCBhbW91bnQsIGFuZCBvcHRpb25hbCBtZW1vXG4gICAqIEBwYXJhbSBleHBpcmVUaW1lIC0gVHJhbnNhY3Rpb24gZXhwaXJhdGlvbiB0aW1lXG4gICAqIEBwYXJhbSBjb250cmFjdFNlcXVlbmNlSWQgLSBDb250cmFjdCBzZXF1ZW5jZSBJRFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gYXJyYXkgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0T3BlcmF0aW9uKFxuICAgIHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nOyBtZW1vPzogc3RyaW5nIH0sXG4gICAgZXhwaXJlVGltZTogbnVtYmVyLFxuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyXG4gICk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGllbnQgYWRkcmVzczogJHtyZWNpcGllbnQuYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtyZWNpcGllbnQuYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChyZWNpcGllbnQubWVtbyAhPT0gdW5kZWZpbmVkICYmIHJlY2lwaWVudC5tZW1vICE9PSBudWxsICYmIHJlY2lwaWVudC5tZW1vICE9PSAnJykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocmVjaXBpZW50Lm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWVtbyB0b28gbG9uZzogJHttZW1vQnl0ZUxlbmd0aH0gYnl0ZXMuIE1heGltdW0gMzIgYnl0ZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKHJlY2lwaWVudC5hZGRyZXNzIGFzIEFkZHJlc3MsIGFtb3VudEluVW5pdHMsIHJlY2lwaWVudC5tZW1vKTtcblxuICAgIC8vIFJldHVybiBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHBhcmVudCBjbGFzcyBmb3IgQUJJIGVuY29kaW5nXG4gICAgcmV0dXJuIFtcbiAgICAgIFsnYWRkcmVzcycsICdieXRlcyddLFxuICAgICAgW3RoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3MsIEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKV0sXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDRDQUFpRTtBQUdqRSxtQ0FBZ0M7QUFDaEMsdUNBQWtIO0FBSWxIOzs7Ozs7R0FNRztBQUNILE1BQWEsVUFBVyxTQUFRLGFBQUs7SUFJbkMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pHLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FDNUIsZUFBbUMsQ0FBQyxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRW5HLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztRQUM3QixNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO1FBRS9DLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxnQkFBZ0IsR0FB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QUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDckYsTUFBTSxjQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN2RSxJQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsY0FBYywyQkFBMkIsQ0FBQyxDQUFDO1lBQy9FLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQyxTQUFTLENBQUMsT0FBa0IsRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRHLDhEQUE4RDtRQUM5RCxPQUFPO1lBQ0wsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO1lBQ3BCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDM0UsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJPRCxnQ0FxT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UsIENvaW5Db25zdHJ1Y3RvciwgTVBDQWxnb3JpdGhtLCBOYW1lZENvaW5Db25zdHJ1Y3RvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBjb2lucywgdG9rZW5zLCBUaXAyMFRva2VuQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgR2V0U2VuZE1ldGhvZEFyZ3NPcHRpb25zLCBTZW5kTWV0aG9kQXJncyB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4vbGliL3R5cGVzJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5pbXBvcnQgeyBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sIGFtb3VudFRvVGlwMjBVbml0cywgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRUaXAyMEFtb3VudCB9IGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0IHsgVGlwMjBUb2tlbkNvbmZpZyB9O1xuXG4vKipcbiAqIFRJUDIwIFRva2VuIEltcGxlbWVudGF0aW9uIChTa2VsZXRvbilcbiAqXG4gKiBUaGlzIGlzIGEgbWluaW1hbCBza2VsZXRvbiBmb3IgVElQMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW4uXG4gKlxuICogVE9ETzogQWxsIG1ldGhvZHMgd2lsbCBiZSBpbXBsZW1lbnRlZCBwcm9ncmVzc2l2ZWx5XG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRva2VuIGV4dGVuZHMgVGVtcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWc7XG4gIHB1YmxpYyByZWFkb25seSBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gJ01haW5uZXQnID8gY29pbnMuZ2V0KCd0ZW1wbycpIDogY29pbnMuZ2V0KCd0dGVtcG8nKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgICB0aGlzLmNvbnRyYWN0QWRkcmVzcyA9IHRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvaW4gY29uc3RydWN0b3IgZm9yIGEgc3BlY2lmaWMgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgVGlwMjBUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdG9rZW4gY29uc3RydWN0b3JzIGZvciBhbGwgVElQMjAgdG9rZW5zXG4gICAqIEBwYXJhbSB0b2tlbkNvbmZpZ3MgLSBBcnJheSBvZiB0b2tlbiBjb25maWd1cmF0aW9uczsgZGVmYXVsdHMgdG8gYWxsIFRJUDIwIHRva2VucyBmcm9tIHN0YXRpY3NcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhcbiAgICB0b2tlbkNvbmZpZ3M6IFRpcDIwVG9rZW5Db25maWdbXSA9IFsuLi50b2tlbnMuYml0Y29pbi50ZW1wby50b2tlbnMsIC4uLnRva2Vucy50ZXN0bmV0LnRlbXBvLnRva2Vuc11cbiAgKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgY29uZmlncyA9IHRva2VuQ29uZmlncztcbiAgICBjb25zdCB0b2tlbnNDdG9yczogTmFtZWRDb2luQ29uc3RydWN0b3JbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiBjb25maWdzKSB7XG4gICAgICBjb25zdCB0b2tlbkNvbnN0cnVjdG9yID0gVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKHRva2VuKTtcbiAgICAgIC8vIFJlZ2lzdGVyIGJ5IHRva2VuIHR5cGVcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50eXBlLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgICAvLyBBbHNvIHJlZ2lzdGVyIGJ5IGNvbnRyYWN0IGFkZHJlc3MgZm9yIGxvb2t1cHNcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50b2tlbkNvbnRyYWN0QWRkcmVzcywgY29pbkNvbnN0cnVjdG9yOiB0b2tlbkNvbnN0cnVjdG9yIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbnNDdG9ycztcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIHR5cGUgKi9cbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gbmFtZSAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICAvKiogR2V0IHRoZSBiYXNlIGNvaW4gKi9cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbmV0d29yayAqL1xuICBnZXQgbmV0d29yaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5ldHdvcms7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiBjb250cmFjdCBhZGRyZXNzICovXG4gIGdldCB0b2tlbkNvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqIEdldCB0b2tlbiBkZWNpbWFsIHBsYWNlcyAqL1xuICBnZXQgZGVjaW1hbFBsYWNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RJUDIwIFRva2VuJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvaW4vdG9rZW4gbWF0Y2hlcyB0aGlzIHRva2VuXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIC0gVHJhbnNhY3Rpb24gcHJlYnVpbGQgb2JqZWN0XG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5Q29pbih0eFByZWJ1aWxkOiB7IGNvaW4/OiBzdHJpbmc7IHRva2VuPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBpZiAoIXR4UHJlYnVpbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY29pbiBvciB0b2tlbiBtYXRjaGVzIHRoaXMgdG9rZW4ncyBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29pbk1hdGNoID0gdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLmNvaW4gfHwgdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gICAgY29uc3QgdG9rZW5NYXRjaCA9XG4gICAgICAhdHhQcmVidWlsZC50b2tlbiB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuXG4gICAgcmV0dXJuIGNvaW5NYXRjaCAmJiB0b2tlbk1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIFRJUC0yMCB0b2tlbiB0cmFuc2ZlciB3aXRoIG1lbW9cbiAgICogQHBhcmFtIHR4SW5mbyAtIFRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGluY2x1ZGluZyByZWNpcGllbnQgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudCB9ID0gdHhJbmZvO1xuXG4gICAgaWYgKCFyZWNpcGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciB0b2tlbiB0cmFuc2ZlcicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7cmVjaXBpZW50LmFkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVGlwMjBBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7cmVjaXBpZW50LmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vID0gKHJlY2lwaWVudCBhcyB7IG1lbW8/OiBzdHJpbmcgfSkubWVtbztcblxuICAgIGlmIChtZW1vICYmIEJ1ZmZlci5ieXRlTGVuZ3RoKG1lbW8sICd1dGYtOCcpID4gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWVtbyB0b28gbG9uZzogbWF4aW11bSAzMiBieXRlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgY29uc3QgZGF0YSA9IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbyhyZWNpcGllbnQuYWRkcmVzcyBhcyBBZGRyZXNzLCBhbW91bnRJblVuaXRzLCBtZW1vKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0b0FkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICAgIHR5cGU6ICd1aW50JyxcbiAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndG9rZW5Db250cmFjdEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGEnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cGlyZVRpbWUnLFxuICAgICAgICB0eXBlOiAndWludCcsXG4gICAgICAgIHZhbHVlOiB0eEluZm8uZXhwaXJlVGltZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZXF1ZW5jZUlkJyxcbiAgICAgICAgdHlwZTogJ3VpbnQnLFxuICAgICAgICB2YWx1ZTogdHhJbmZvLmNvbnRyYWN0U2VxdWVuY2VJZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaWduYXR1cmUnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20odHhJbmZvLnNpZ25hdHVyZS5yZXBsYWNlKCcweCcsICcnKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYXRpb24gb2JqZWN0IGZvciBUSVAtMjAgdG9rZW4gdHJhbnNmZXIgKGZvciBiYXRjaCB0cmFuc2FjdGlvbnMpXG4gICAqIEBwYXJhbSByZWNpcGllbnQgLSBSZWNpcGllbnQgaW5mb3JtYXRpb24gd2l0aCBhZGRyZXNzLCBhbW91bnQsIGFuZCBvcHRpb25hbCBtZW1vXG4gICAqIEBwYXJhbSBleHBpcmVUaW1lIC0gVHJhbnNhY3Rpb24gZXhwaXJhdGlvbiB0aW1lXG4gICAqIEBwYXJhbSBjb250cmFjdFNlcXVlbmNlSWQgLSBDb250cmFjdCBzZXF1ZW5jZSBJRFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gYXJyYXkgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0T3BlcmF0aW9uKFxuICAgIHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nOyBtZW1vPzogc3RyaW5nIH0sXG4gICAgZXhwaXJlVGltZTogbnVtYmVyLFxuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyXG4gICk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGllbnQgYWRkcmVzczogJHtyZWNpcGllbnQuYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtyZWNpcGllbnQuYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChyZWNpcGllbnQubWVtbyAhPT0gdW5kZWZpbmVkICYmIHJlY2lwaWVudC5tZW1vICE9PSBudWxsICYmIHJlY2lwaWVudC5tZW1vICE9PSAnJykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocmVjaXBpZW50Lm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWVtbyB0b28gbG9uZzogJHttZW1vQnl0ZUxlbmd0aH0gYnl0ZXMuIE1heGltdW0gMzIgYnl0ZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKHJlY2lwaWVudC5hZGRyZXNzIGFzIEFkZHJlc3MsIGFtb3VudEluVW5pdHMsIHJlY2lwaWVudC5tZW1vKTtcblxuICAgIC8vIFJldHVybiBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHBhcmVudCBjbGFzcyBmb3IgQUJJIGVuY29kaW5nXG4gICAgcmV0dXJuIFtcbiAgICAgIFsnYWRkcmVzcycsICdieXRlcyddLFxuICAgICAgW3RoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3MsIEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKV0sXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
@@ -66,6 +66,6 @@ exports.ERROR_MESSAGES = {
|
|
|
66
66
|
missingGas: /Gas limit is required/,
|
|
67
67
|
missingMaxFeePerGas: /maxFeePerGas is required/,
|
|
68
68
|
missingMaxPriorityFeePerGas: /maxPriorityFeePerGas is required/,
|
|
69
|
-
|
|
69
|
+
invalidMemo: /Invalid memo/,
|
|
70
70
|
};
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3Jlc291cmNlcy90ZW1wby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILCtFQUErRTtBQUMvRSx5Q0FBeUM7QUFDekMsK0VBQStFO0FBRWxFLFFBQUEsY0FBYyxHQUFHO0lBQzVCLE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSw0Q0FBNEM7UUFDckQsSUFBSSxFQUFFLGdCQUFnQjtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSw0Q0FBNEM7UUFDckQsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSw0Q0FBNEM7UUFDckQsSUFBSSxFQUFFLGdCQUFnQjtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSw0Q0FBNEM7UUFDckQsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QjtDQUNGLENBQUM7QUFFRiwyQ0FBMkM7QUFDOUIsUUFBQSxzQkFBc0IsR0FBRyw0Q0FBNEMsQ0FBQztBQUVuRiwrRUFBK0U7QUFDL0UseUJBQXlCO0FBQ3pCLCtFQUErRTtBQUVsRSxRQUFBLFNBQVMsR0FBRztJQUN2QixVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUM1QixtQkFBbUIsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ3pDLDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUM7Q0FDbEQsQ0FBQztBQUVGLCtFQUErRTtBQUMvRSxzQkFBc0I7QUFDdEIsK0VBQStFO0FBRWxFLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsY0FBYyxFQUFFO1FBQ2QsQ0FBQyxFQUFFLG9FQUFxRjtRQUN4RixDQUFDLEVBQUUsb0VBQXFGO1FBQ3hGLE9BQU8sRUFBRSxDQUFDO0tBQ1g7Q0FDRixDQUFDO0FBRUYsK0VBQStFO0FBQy9FLGtCQUFrQjtBQUNsQiwrRUFBK0U7QUFFbEUsUUFBQSxlQUFlLEdBQUc7SUFDN0IsS0FBSyxFQUFFO1FBQ0wsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7UUFDMUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRTtRQUMzRCxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRTtRQUM3RCxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRTtLQUMzQztJQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLENBQUM7Q0FDOUUsQ0FBQztBQUVGLCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRWxFLFFBQUEsY0FBYyxHQUFHO0lBQzVCLFlBQVksRUFBRSxvQ0FBb0M7SUFDbEQsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxVQUFVLEVBQUUsdUJBQXVCO0lBQ25DLG1CQUFtQixFQUFFLDBCQUEwQjtJQUMvQywyQkFBMkIsRUFBRSxrQ0FBa0M7SUFDL0QsV0FBVyxFQUFFLGNBQWM7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVzdCByZXNvdXJjZXMgZm9yIFRlbXBvIFNES1xuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRJUC0yMCBUb2tlbiBBZGRyZXNzZXMgKFRlbXBvIFRlc3RuZXQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBURVNUTkVUX1RPS0VOUyA9IHtcbiAgcGF0aFVTRDoge1xuICAgIGFkZHJlc3M6ICcweDIwYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgIG5hbWU6ICd0dGVtcG86cGF0aHVzZCcsXG4gIH0sXG4gIGFscGhhVVNEOiB7XG4gICAgYWRkcmVzczogJzB4MjBjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMScsXG4gICAgbmFtZTogJ3R0ZW1wbzphbHBoYXVzZCcsXG4gIH0sXG4gIGJldGFVU0Q6IHtcbiAgICBhZGRyZXNzOiAnMHgyMGMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyJyxcbiAgICBuYW1lOiAndHRlbXBvOmJldGF1c2QnLFxuICB9LFxuICB0aGV0YVVTRDoge1xuICAgIGFkZHJlc3M6ICcweDIwYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMnLFxuICAgIG5hbWU6ICd0dGVtcG86dGhldGF1c2QnLFxuICB9LFxufTtcblxuLy8gVmFsaWQgY2hlY2tzdW1tZWQgdGVzdCByZWNpcGllbnQgYWRkcmVzc1xuZXhwb3J0IGNvbnN0IFRFU1RfUkVDSVBJRU5UX0FERFJFU1MgPSAnMHg3NDJkMzVDYzY2MzRDMDUzMjkyNWEzYjg0NEJjNDU0ZTQ0MzhmNDRlJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJhbnNhY3Rpb24gUGFyYW1ldGVyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgVFhfUEFSQU1TID0ge1xuICBkZWZhdWx0R2FzOiBCaWdJbnQoJzEwMDAwMCcpLFxuICBkZWZhdWx0TWF4RmVlUGVyR2FzOiBCaWdJbnQoJzIwMDAwMDAwMDAnKSxcbiAgZGVmYXVsdE1heFByaW9yaXR5RmVlUGVyR2FzOiBCaWdJbnQoJzEwMDAwMDAwMDAnKSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNpZ25hdHVyZSBUZXN0IERhdGFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9URVNUX0RBVEEgPSB7XG4gIHZhbGlkU2lnbmF0dXJlOiB7XG4gICAgcjogJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicgYXMgYDB4JHtzdHJpbmd9YCxcbiAgICBzOiAnMHhmZWRjYmEwOTg3NjU0MzIxZmVkY2JhMDk4NzY1NDMyMWZlZGNiYTA5ODc2NTQzMjFmZWRjYmEwOTg3NjU0MzIxJyBhcyBgMHgke3N0cmluZ31gLFxuICAgIHlQYXJpdHk6IDAsXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZW1vIFRlc3QgQ2FzZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IE1FTU9fVEVTVF9DQVNFUyA9IHtcbiAgdmFsaWQ6IFtcbiAgICB7IGlucHV0OiAnMTIzNDUnLCBkZXNjcmlwdGlvbjogJ251bWVyaWMnIH0sXG4gICAgeyBpbnB1dDogJ0lOVi0wMDEnLCBkZXNjcmlwdGlvbjogJ2FscGhhbnVtZXJpYyB3aXRoIGRhc2gnIH0sXG4gICAgeyBpbnB1dDogJ2EnLnJlcGVhdCgzMiksIGRlc2NyaXB0aW9uOiAnbWF4IGxlbmd0aCAzMiBieXRlcycgfSxcbiAgICB7IGlucHV0OiAnJywgZGVzY3JpcHRpb246ICdlbXB0eSBzdHJpbmcnIH0sXG4gIF0sXG4gIGludmFsaWQ6IFt7IGlucHV0OiAnYScucmVwZWF0KDMzKSwgZGVzY3JpcHRpb246ICczMyBieXRlcyAtIGV4Y2VlZHMgbGltaXQnIH1dLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRXJyb3IgTWVzc2FnZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VTID0ge1xuICBub09wZXJhdGlvbnM6IC9BdCBsZWFzdCBvbmUgb3BlcmF0aW9uIGlzIHJlcXVpcmVkLyxcbiAgbWlzc2luZ05vbmNlOiAvTm9uY2UgaXMgcmVxdWlyZWQvLFxuICBtaXNzaW5nR2FzOiAvR2FzIGxpbWl0IGlzIHJlcXVpcmVkLyxcbiAgbWlzc2luZ01heEZlZVBlckdhczogL21heEZlZVBlckdhcyBpcyByZXF1aXJlZC8sXG4gIG1pc3NpbmdNYXhQcmlvcml0eUZlZVBlckdhczogL21heFByaW9yaXR5RmVlUGVyR2FzIGlzIHJlcXVpcmVkLyxcbiAgaW52YWxpZE1lbW86IC9JbnZhbGlkIG1lbW8vLFxufTtcbiJdfQ==
|