@bitgo/abstract-eth 24.25.1 → 24.26.1

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.
@@ -7,6 +7,7 @@ exports.callFromParentMethodId = exports.aclMulticallMethodId = exports.delegate
7
7
  exports.buildDelegationCalldata = buildDelegationCalldata;
8
8
  exports.buildMulticallDelegationCalldata = buildMulticallDelegationCalldata;
9
9
  exports.wrapInCallFromParent = wrapInCallFromParent;
10
+ exports.decodeTokenAddressesFromDelegationCalldata = decodeTokenAddressesFromDelegationCalldata;
10
11
  const ethereumjs_util_1 = require("ethereumjs-util");
11
12
  const ethereumjs_abi_1 = __importDefault(require("ethereumjs-abi"));
12
13
  const ethers_1 = require("ethers");
@@ -106,4 +107,53 @@ function wrapInCallFromParent(targetAddress, calldata) {
106
107
  ]);
107
108
  return (0, ethereumjs_util_1.addHexPrefix)(Buffer.concat([method, args]).toString('hex'));
108
109
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemFtYVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi96YW1hVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBcURBLDBEQVdDO0FBZUQsNEVBNkJDO0FBZ0JELG9EQVdDO0FBdklELHFEQUF5RDtBQUN6RCxvRUFBeUM7QUFDekMsbUNBQWdDO0FBRWhDLDhFQUE4RTtBQUM5RSxZQUFZO0FBQ1osOEVBQThFO0FBRTlFLDRCQUE0QjtBQUNmLFFBQUEsOEJBQThCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBVSxDQUFDO0FBQzNFLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBQy9ELFFBQUEsaUJBQWlCLEdBQUcsQ0FBQyxTQUFTLENBQVUsQ0FBQztBQUV0RDs7O0dBR0c7QUFDVSxRQUFBLGlDQUFpQyxHQUFHLElBQUEsOEJBQVksRUFDM0Qsd0JBQVcsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxHQUFHLHNDQUE4QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ3ZHLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxJQUFBLDhCQUFZLEVBQzlDLHdCQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcseUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDMUUsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSw4QkFBWSxFQUNoRCx3QkFBVyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsMkJBQW1CLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDakYsQ0FBQztBQUVGLDhFQUE4RTtBQUM5RSxxQkFBcUI7QUFDckIsOEVBQThFO0FBRTlF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QUM7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZEhleFByZWZpeCwgdG9CdWZmZXIgfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCB7IGV0aGVycyB9IGZyb20gJ2V0aGVycyc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ29uc3RhbnRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gQUJJIHBhcmFtZXRlciB0eXBlIGFycmF5c1xuZXhwb3J0IGNvbnN0IGRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25UeXBlcyA9IFsnYWRkcmVzcycsICdhZGRyZXNzJywgJ3VpbnQ2NCddIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IGNhbGxGcm9tUGFyZW50VHlwZXMgPSBbJ2FkZHJlc3MnLCAndWludDI1NicsICdieXRlcyddIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IGFjbE11bHRpY2FsbFR5cGVzID0gWydieXRlc1tdJ10gYXMgY29uc3Q7XG5cbi8qKlxuICogRnVuY3Rpb24gc2VsZWN0b3IgZm9yIEFDTC5kZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uKGFkZHJlc3MsYWRkcmVzcyx1aW50NjQpXG4gKiA9IGtlY2NhazI1NignZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvbihhZGRyZXNzLGFkZHJlc3MsdWludDY0KScpWzA6NF1cbiAqL1xuZXhwb3J0IGNvbnN0IGRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25NZXRob2RJZCA9IGFkZEhleFByZWZpeChcbiAgRXRoZXJldW1BYmkubWV0aG9kSUQoJ2RlbGVnYXRlRm9yVXNlckRlY3J5cHRpb24nLCBbLi4uZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvblR5cGVzXSkudG9TdHJpbmcoJ2hleCcpXG4pO1xuXG4vKipcbiAqIEZ1bmN0aW9uIHNlbGVjdG9yIGZvciBBQ0wubXVsdGljYWxsKGJ5dGVzW10pXG4gKiA9IGtlY2NhazI1NignbXVsdGljYWxsKGJ5dGVzW10pJylbMDo0XVxuICogQUNMIGluaGVyaXRzIE9wZW5aZXBwZWxpbiBNdWx0aWNhbGxVcGdyYWRlYWJsZSDigJQgcHJlc2VydmVzIG1zZy5zZW5kZXIgdmlhIGRlbGVnYXRlY2FsbC5cbiAqL1xuZXhwb3J0IGNvbnN0IGFjbE11bHRpY2FsbE1ldGhvZElkID0gYWRkSGV4UHJlZml4KFxuICBFdGhlcmV1bUFiaS5tZXRob2RJRCgnbXVsdGljYWxsJywgWy4uLmFjbE11bHRpY2FsbFR5cGVzXSkudG9TdHJpbmcoJ2hleCcpXG4pO1xuXG4vKipcbiAqIEZ1bmN0aW9uIHNlbGVjdG9yIGZvciBGb3J3YXJkZXJWNC5jYWxsRnJvbVBhcmVudChhZGRyZXNzLHVpbnQyNTYsYnl0ZXMpXG4gKiA9IGtlY2NhazI1NignY2FsbEZyb21QYXJlbnQoYWRkcmVzcyx1aW50MjU2LGJ5dGVzKScpWzA6NF1cbiAqL1xuZXhwb3J0IGNvbnN0IGNhbGxGcm9tUGFyZW50TWV0aG9kSWQgPSBhZGRIZXhQcmVmaXgoXG4gIEV0aGVyZXVtQWJpLm1ldGhvZElEKCdjYWxsRnJvbVBhcmVudCcsIFsuLi5jYWxsRnJvbVBhcmVudFR5cGVzXSkudG9TdHJpbmcoJ2hleCcpXG4pO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVuY29kaW5nIGZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogRW5jb2RlcyBhIHNpbmdsZSBBQ0wuZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvbigpIGNhbGwuXG4gKlxuICogR3JhbnRzIGBkZWxlZ2F0ZUFkZHJlc3NgIHRoZSByaWdodCB0byBkZWNyeXB0IEVSQy03OTg0IHRva2VuIGJhbGFuY2VzIG9uXG4gKiBiZWhhbGYgb2YgdGhlIGNhbGxpbmcgYWRkcmVzcyAobXNnLnNlbmRlcikgZm9yIHRoZSBzcGVjaWZpZWQgdG9rZW4gY29udHJhY3QuXG4gKlxuICogQHBhcmFtIGRlbGVnYXRlQWRkcmVzcyAgICAgICBCaXRHbyBlbnRlcnByaXNlIHZpZXdpbmcga2V5IGFkZHJlc3NcbiAqIEBwYXJhbSB0b2tlbkNvbnRyYWN0QWRkcmVzcyAgRVJDLTc5ODQgdG9rZW4gY29udHJhY3QgYWRkcmVzc1xuICogQHBhcmFtIGV4cGlyeVRpbWVzdGFtcCAgICAgICBVbml4IHNlY29uZHM7IHJlY29tbWVuZGVkOiBNYXRoLmZsb29yKERhdGUubm93KCkvMTAwMCkgKyAzNjUqODY0MDBcbiAqIEByZXR1cm5zIEFCSS1lbmNvZGVkIGNhbGxkYXRhIGhleCBzdHJpbmcgKDB4LXByZWZpeGVkKVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGREZWxlZ2F0aW9uQ2FsbGRhdGEoXG4gIGRlbGVnYXRlQWRkcmVzczogc3RyaW5nLFxuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nLFxuICBleHBpcnlUaW1lc3RhbXA6IG51bWJlclxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ2RlbGVnYXRlRm9yVXNlckRlY3J5cHRpb24nLCBbLi4uZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvblR5cGVzXSk7XG4gIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUoXG4gICAgWy4uLmRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25UeXBlc10sXG4gICAgW2RlbGVnYXRlQWRkcmVzcywgdG9rZW5Db250cmFjdEFkZHJlc3MsIGV4cGlyeVRpbWVzdGFtcF1cbiAgKTtcbiAgcmV0dXJuIGFkZEhleFByZWZpeChCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xufVxuXG4vKipcbiAqIEVuY29kZXMgTiBkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uIGNhbGxzIGJhdGNoZWQgaW5zaWRlIEFDTC5tdWx0aWNhbGwoKS5cbiAqXG4gKiBQcm9kdWNlcyBhIHNpbmdsZSBUWCB0aGF0IGdyYW50cyBkZWxlZ2F0aW9uIGZvciBhbGwgc3BlY2lmaWVkIHRva2VuIGNvbnRyYWN0cy5cbiAqIFJlcXVpcmVzIHRva2VuQ29udHJhY3RBZGRyZXNzZXMubGVuZ3RoID49IDEuXG4gKiBOb3RlOiBEZWNyeXB0aW9uRGVsZWdhdGlvbkJ1aWxkZXIgYWx3YXlzIHVzZXMgdGhpcyBmdW5jdGlvbiAoZXZlbiBmb3IgYSBzaW5nbGUgdG9rZW4pXG4gKiB0byBrZWVwIHRoZSB0cmFuc2FjdGlvbiBzaGFwZSBjb25zaXN0ZW50IHJlZ2FyZGxlc3Mgb2YgdG9rZW4gY291bnQuXG4gKlxuICogQHBhcmFtIGRlbGVnYXRlQWRkcmVzcyAgICAgICAgICBCaXRHbyBlbnRlcnByaXNlIHZpZXdpbmcga2V5IGFkZHJlc3NcbiAqIEBwYXJhbSB0b2tlbkNvbnRyYWN0QWRkcmVzc2VzICAgQXJyYXkgb2YgRVJDLTc5ODQgdG9rZW4gY29udHJhY3QgYWRkcmVzc2VzXG4gKiBAcGFyYW0gZXhwaXJ5VGltZXN0YW1wICAgICAgICAgIFVuaXggc2Vjb25kc1xuICogQHJldHVybnMgQUJJLWVuY29kZWQgY2FsbGRhdGEgaGV4IHN0cmluZyAoMHgtcHJlZml4ZWQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE11bHRpY2FsbERlbGVnYXRpb25DYWxsZGF0YShcbiAgZGVsZWdhdGVBZGRyZXNzOiBzdHJpbmcsXG4gIHRva2VuQ29udHJhY3RBZGRyZXNzZXM6IHN0cmluZ1tdLFxuICBleHBpcnlUaW1lc3RhbXA6IG51bWJlclxuKTogc3RyaW5nIHtcbiAgaWYgKHRva2VuQ29udHJhY3RBZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdidWlsZE11bHRpY2FsbERlbGVnYXRpb25DYWxsZGF0YTogdG9rZW5Db250cmFjdEFkZHJlc3NlcyBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgLy8gQnVpbGQgZWFjaCBpbm5lciBkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uIGNhbGwgYXMgcmF3IGJ5dGVzXG4gIGNvbnN0IGlubmVyQ2FsbHM6IEJ1ZmZlcltdID0gdG9rZW5Db250cmFjdEFkZHJlc3Nlcy5tYXAoKHRva2VuQWRkcmVzcykgPT4ge1xuICAgIGNvbnN0IGlubmVyTWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ2RlbGVnYXRlRm9yVXNlckRlY3J5cHRpb24nLCBbLi4uZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvblR5cGVzXSk7XG4gICAgY29uc3QgaW5uZXJBcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKFxuICAgICAgWy4uLmRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25UeXBlc10sXG4gICAgICBbZGVsZWdhdGVBZGRyZXNzLCB0b2tlbkFkZHJlc3MsIGV4cGlyeVRpbWVzdGFtcF1cbiAgICApO1xuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtpbm5lck1ldGhvZCwgaW5uZXJBcmdzXSk7XG4gIH0pO1xuXG4gIC8vIEVuY29kZSBvdXRlciBtdWx0aWNhbGwoYnl0ZXNbXSlcbiAgLy8gZXRoZXJldW1qcy1hYmkgdjAuNi54IGhhcyBhIGJ1ZyB3aGVyZSBpdCBvbWl0cyB0aGUgcGVyLWVsZW1lbnQgb2Zmc2V0IHRhYmxlXG4gIC8vIGZvciBieXRlc1tdLCBwcm9kdWNpbmcgbWFsZm9ybWVkIGNhbGxkYXRhIHRoYXQgb24tY2hhaW4gQUJJIGRlY29kZXJzIHJlamVjdC5cbiAgLy8gVXNlIGV0aGVycyBBYmlDb2RlciB3aGljaCBjb3JyZWN0bHkgZW1pdHMgdGhlIGhlYWQgb2Zmc2V0IHdvcmRzLlxuICBjb25zdCBvdXRlck1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKCdtdWx0aWNhbGwnLCBbLi4uYWNsTXVsdGljYWxsVHlwZXNdKTtcbiAgY29uc3Qgb3V0ZXJBcmdzID0gQnVmZmVyLmZyb20oXG4gICAgbmV3IGV0aGVycy51dGlscy5BYmlDb2RlcigpLmVuY29kZShbLi4uYWNsTXVsdGljYWxsVHlwZXNdLCBbaW5uZXJDYWxsc10pLnNsaWNlKDIpLFxuICAgICdoZXgnXG4gICk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbb3V0ZXJNZXRob2QsIG91dGVyQXJnc10pLnRvU3RyaW5nKCdoZXgnKSk7XG59XG5cbi8qKlxuICogV3JhcHMgY2FsbGRhdGEgaW4gYSBGb3J3YXJkZXJWNC5jYWxsRnJvbVBhcmVudCh0YXJnZXQsIDAsIGRhdGEpIGNhbGwuXG4gKlxuICogVXNlZCB3aGVuIGEgZm9yd2FyZGVyIGNvbnRyYWN0IG11c3QgYmUgbXNnLnNlbmRlciBmb3IgYW4gZXh0ZXJuYWwgY29udHJhY3RcbiAqIGNhbGwg4oCUIGZvciBleGFtcGxlLCB3aGVuIHRoZSBmb3J3YXJkZXIgaXRzZWxmIG5lZWRzIHRvIGNhbGxcbiAqIEFDTC5kZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uKCkgc28gdGhhdCBpdHMgb3duIGJhbGFuY2UgY2FuIGJlIGRlY3J5cHRlZC5cbiAqXG4gKiBPbmx5IHRoZSBwYXJlbnRBZGRyZXNzIChyb290IHdhbGxldCkgaXMgYWxsb3dlZCB0byBjYWxsIGNhbGxGcm9tUGFyZW50XG4gKiAoZW5mb3JjZWQgYnkgdGhlIGZvcndhcmRlcidzIG9ubHlQYXJlbnQgbW9kaWZpZXIpLlxuICpcbiAqIEBwYXJhbSB0YXJnZXRBZGRyZXNzICBBZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0aGUgZm9yd2FyZGVyIHdpbGwgY2FsbCAoZS5nLiBBQ0wpXG4gKiBAcGFyYW0gY2FsbGRhdGEgICAgICAgQUJJLWVuY29kZWQgaW5uZXIgY2FsbGRhdGEgKGUuZy4gZnJvbSBidWlsZERlbGVnYXRpb25DYWxsZGF0YSlcbiAqIEByZXR1cm5zIEFCSS1lbmNvZGVkIGNhbGxGcm9tUGFyZW50IGNhbGxkYXRhIGhleCBzdHJpbmcgKDB4LXByZWZpeGVkKVxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcEluQ2FsbEZyb21QYXJlbnQodGFyZ2V0QWRkcmVzczogc3RyaW5nLCBjYWxsZGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWV0aG9kID0gRXRoZXJldW1BYmkubWV0aG9kSUQoJ2NhbGxGcm9tUGFyZW50JywgWy4uLmNhbGxGcm9tUGFyZW50VHlwZXNdKTtcbiAgY29uc3QgYXJncyA9IEV0aGVyZXVtQWJpLnJhd0VuY29kZShcbiAgICBbLi4uY2FsbEZyb21QYXJlbnRUeXBlc10sXG4gICAgW1xuICAgICAgdGFyZ2V0QWRkcmVzcyxcbiAgICAgIDAsIC8vIHZhbHVlOiBubyBFVEggdHJhbnNmZXJcbiAgICAgIHRvQnVmZmVyKGNhbGxkYXRhKSwgLy8gaW5uZXIgY2FsbGRhdGEgYXMgYnl0ZXNcbiAgICBdXG4gICk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbbWV0aG9kLCBhcmdzXSkudG9TdHJpbmcoJ2hleCcpKTtcbn1cbiJdfQ==
110
+ /**
111
+ * Decodes token contract addresses from delegation calldata.
112
+ *
113
+ * Handles two shapes of calldata:
114
+ * - Direct ACL.multicall(bytes[]) (root wallet path)
115
+ * - ForwarderV4.callFromParent(address, uint256, bytes) wrapping a multicall (forwarder path)
116
+ *
117
+ * @param calldata ABI-encoded delegation calldata (0x-prefixed or raw hex)
118
+ * @returns Array of token contract addresses (lowercase) found in the delegation calls
119
+ * @throws {Error} if the calldata does not start with a recognised method selector
120
+ */
121
+ function decodeTokenAddressesFromDelegationCalldata(calldata) {
122
+ const data = calldata.startsWith('0x') ? calldata : '0x' + calldata;
123
+ const methodId = data.slice(0, 10);
124
+ const abiCoder = new ethers_1.ethers.utils.AbiCoder();
125
+ let multicallHex;
126
+ if (methodId === exports.callFromParentMethodId) {
127
+ // Decode callFromParent(address, uint256, bytes) — inner bytes is the full multicall calldata.
128
+ // ethers v5 returns `bytes` as a hex string; use hexlify to normalise to a 0x-prefixed hex string
129
+ // regardless of whether the runtime returns a string or a Uint8Array.
130
+ const decoded = abiCoder.decode([...exports.callFromParentTypes], '0x' + data.slice(10));
131
+ multicallHex = ethers_1.ethers.utils.hexlify(decoded[2]);
132
+ }
133
+ else if (methodId === exports.aclMulticallMethodId) {
134
+ multicallHex = data;
135
+ }
136
+ else {
137
+ throw new Error('Not a valid delegation calldata');
138
+ }
139
+ if (multicallHex.slice(0, 10) !== exports.aclMulticallMethodId) {
140
+ throw new Error('Not a valid delegation calldata');
141
+ }
142
+ // Decode multicall(bytes[]) — each element is an inner delegateForUserDecryption call.
143
+ // ethers v5 returns bytes[] elements as hex strings; use hexlify to normalise each element.
144
+ const decoded = abiCoder.decode(['bytes[]'], '0x' + multicallHex.slice(10));
145
+ const innerCalls = decoded[0];
146
+ const tokenAddresses = [];
147
+ for (const innerCall of innerCalls) {
148
+ const innerHex = ethers_1.ethers.utils.hexlify(innerCall).slice(2); // strip 0x
149
+ const innerMethodId = '0x' + innerHex.slice(0, 8);
150
+ if (innerMethodId !== exports.delegateForUserDecryptionMethodId) {
151
+ continue;
152
+ }
153
+ // Decode delegateForUserDecryption(address delegate, address tokenAddress, uint64 expiry)
154
+ const innerDecoded = abiCoder.decode([...exports.delegateForUserDecryptionTypes], '0x' + innerHex.slice(8));
155
+ tokenAddresses.push(innerDecoded[1].toLowerCase());
156
+ }
157
+ return tokenAddresses;
158
+ }
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemFtYVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi96YW1hVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBcURBLDBEQVdDO0FBZUQsNEVBNkJDO0FBZ0JELG9EQVdDO0FBYUQsZ0dBeUNDO0FBN0xELHFEQUF5RDtBQUN6RCxvRUFBeUM7QUFDekMsbUNBQWdDO0FBRWhDLDhFQUE4RTtBQUM5RSxZQUFZO0FBQ1osOEVBQThFO0FBRTlFLDRCQUE0QjtBQUNmLFFBQUEsOEJBQThCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBVSxDQUFDO0FBQzNFLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBQy9ELFFBQUEsaUJBQWlCLEdBQUcsQ0FBQyxTQUFTLENBQVUsQ0FBQztBQUV0RDs7O0dBR0c7QUFDVSxRQUFBLGlDQUFpQyxHQUFHLElBQUEsOEJBQVksRUFDM0Qsd0JBQVcsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxHQUFHLHNDQUE4QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ3ZHLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxJQUFBLDhCQUFZLEVBQzlDLHdCQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcseUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDMUUsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSw4QkFBWSxFQUNoRCx3QkFBVyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsMkJBQW1CLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDakYsQ0FBQztBQUVGLDhFQUE4RTtBQUM5RSxxQkFBcUI7QUFDckIs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QUM1RixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RSxNQUFNLFVBQVUsR0FBYyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekMsTUFBTSxjQUFjLEdBQWEsRUFBRSxDQUFDO0lBQ3BDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBbUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFDaEcsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksYUFBYSxLQUFLLHlDQUFpQyxFQUFFLENBQUM7WUFDeEQsU0FBUztRQUNYLENBQUM7UUFDRCwwRkFBMEY7UUFDMUYsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsc0NBQThCLENBQUMsRUFBRSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLGNBQWMsQ0FBQyxJQUFJLENBQUUsWUFBWSxDQUFDLENBQUMsQ0FBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRIZXhQcmVmaXgsIHRvQnVmZmVyIH0gZnJvbSAnZXRoZXJldW1qcy11dGlsJztcbmltcG9ydCBFdGhlcmV1bUFiaSBmcm9tICdldGhlcmV1bWpzLWFiaSc7XG5pbXBvcnQgeyBldGhlcnMgfSBmcm9tICdldGhlcnMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENvbnN0YW50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEFCSSBwYXJhbWV0ZXIgdHlwZSBhcnJheXNcbmV4cG9ydCBjb25zdCBkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uVHlwZXMgPSBbJ2FkZHJlc3MnLCAnYWRkcmVzcycsICd1aW50NjQnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjYWxsRnJvbVBhcmVudFR5cGVzID0gWydhZGRyZXNzJywgJ3VpbnQyNTYnLCAnYnl0ZXMnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBhY2xNdWx0aWNhbGxUeXBlcyA9IFsnYnl0ZXNbXSddIGFzIGNvbnN0O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHNlbGVjdG9yIGZvciBBQ0wuZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvbihhZGRyZXNzLGFkZHJlc3MsdWludDY0KVxuICogPSBrZWNjYWsyNTYoJ2RlbGVnYXRlRm9yVXNlckRlY3J5cHRpb24oYWRkcmVzcyxhZGRyZXNzLHVpbnQ2NCknKVswOjRdXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uTWV0aG9kSWQgPSBhZGRIZXhQcmVmaXgoXG4gIEV0aGVyZXVtQWJpLm1ldGhvZElEKCdkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uJywgWy4uLmRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25UeXBlc10pLnRvU3RyaW5nKCdoZXgnKVxuKTtcblxuLyoqXG4gKiBGdW5jdGlvbiBzZWxlY3RvciBmb3IgQUNMLm11bHRpY2FsbChieXRlc1tdKVxuICogPSBrZWNjYWsyNTYoJ211bHRpY2FsbChieXRlc1tdKScpWzA6NF1cbiAqIEFDTCBpbmhlcml0cyBPcGVuWmVwcGVsaW4gTXVsdGljYWxsVXBncmFkZWFibGUg4oCUIHByZXNlcnZlcyBtc2cuc2VuZGVyIHZpYSBkZWxlZ2F0ZWNhbGwuXG4gKi9cbmV4cG9ydCBjb25zdCBhY2xNdWx0aWNhbGxNZXRob2RJZCA9IGFkZEhleFByZWZpeChcbiAgRXRoZXJldW1BYmkubWV0aG9kSUQoJ211bHRpY2FsbCcsIFsuLi5hY2xNdWx0aWNhbGxUeXBlc10pLnRvU3RyaW5nKCdoZXgnKVxuKTtcblxuLyoqXG4gKiBGdW5jdGlvbiBzZWxlY3RvciBmb3IgRm9yd2FyZGVyVjQuY2FsbEZyb21QYXJlbnQoYWRkcmVzcyx1aW50MjU2LGJ5dGVzKVxuICogPSBrZWNjYWsyNTYoJ2NhbGxGcm9tUGFyZW50KGFkZHJlc3MsdWludDI1NixieXRlcyknKVswOjRdXG4gKi9cbmV4cG9ydCBjb25zdCBjYWxsRnJvbVBhcmVudE1ldGhvZElkID0gYWRkSGV4UHJlZml4KFxuICBFdGhlcmV1bUFiaS5tZXRob2RJRCgnY2FsbEZyb21QYXJlbnQnLCBbLi4uY2FsbEZyb21QYXJlbnRUeXBlc10pLnRvU3RyaW5nKCdoZXgnKVxuKTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFbmNvZGluZyBmdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEVuY29kZXMgYSBzaW5nbGUgQUNMLmRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb24oKSBjYWxsLlxuICpcbiAqIEdyYW50cyBgZGVsZWdhdGVBZGRyZXNzYCB0aGUgcmlnaHQgdG8gZGVjcnlwdCBFUkMtNzk4NCB0b2tlbiBiYWxhbmNlcyBvblxuICogYmVoYWxmIG9mIHRoZSBjYWxsaW5nIGFkZHJlc3MgKG1zZy5zZW5kZXIpIGZvciB0aGUgc3BlY2lmaWVkIHRva2VuIGNvbnRyYWN0LlxuICpcbiAqIEBwYXJhbSBkZWxlZ2F0ZUFkZHJlc3MgICAgICAgQml0R28gZW50ZXJwcmlzZSB2aWV3aW5nIGtleSBhZGRyZXNzXG4gKiBAcGFyYW0gdG9rZW5Db250cmFjdEFkZHJlc3MgIEVSQy03OTg0IHRva2VuIGNvbnRyYWN0IGFkZHJlc3NcbiAqIEBwYXJhbSBleHBpcnlUaW1lc3RhbXAgICAgICAgVW5peCBzZWNvbmRzOyByZWNvbW1lbmRlZDogTWF0aC5mbG9vcihEYXRlLm5vdygpLzEwMDApICsgMzY1Kjg2NDAwXG4gKiBAcmV0dXJucyBBQkktZW5jb2RlZCBjYWxsZGF0YSBoZXggc3RyaW5nICgweC1wcmVmaXhlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRGVsZWdhdGlvbkNhbGxkYXRhKFxuICBkZWxlZ2F0ZUFkZHJlc3M6IHN0cmluZyxcbiAgdG9rZW5Db250cmFjdEFkZHJlc3M6IHN0cmluZyxcbiAgZXhwaXJ5VGltZXN0YW1wOiBudW1iZXJcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKCdkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uJywgWy4uLmRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25UeXBlc10pO1xuICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKFxuICAgIFsuLi5kZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uVHlwZXNdLFxuICAgIFtkZWxlZ2F0ZUFkZHJlc3MsIHRva2VuQ29udHJhY3RBZGRyZXNzLCBleHBpcnlUaW1lc3RhbXBdXG4gICk7XG4gIHJldHVybiBhZGRIZXhQcmVmaXgoQnVmZmVyLmNvbmNhdChbbWV0aG9kLCBhcmdzXSkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuLyoqXG4gKiBFbmNvZGVzIE4gZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvbiBjYWxscyBiYXRjaGVkIGluc2lkZSBBQ0wubXVsdGljYWxsKCkuXG4gKlxuICogUHJvZHVjZXMgYSBzaW5nbGUgVFggdGhhdCBncmFudHMgZGVsZWdhdGlvbiBmb3IgYWxsIHNwZWNpZmllZCB0b2tlbiBjb250cmFjdHMuXG4gKiBSZXF1aXJlcyB0b2tlbkNvbnRyYWN0QWRkcmVzc2VzLmxlbmd0aCA+PSAxLlxuICogTm90ZTogRGVjcnlwdGlvbkRlbGVnYXRpb25CdWlsZGVyIGFsd2F5cyB1c2VzIHRoaXMgZnVuY3Rpb24gKGV2ZW4gZm9yIGEgc2luZ2xlIHRva2VuKVxuICogdG8ga2VlcCB0aGUgdHJhbnNhY3Rpb24gc2hhcGUgY29uc2lzdGVudCByZWdhcmRsZXNzIG9mIHRva2VuIGNvdW50LlxuICpcbiAqIEBwYXJhbSBkZWxlZ2F0ZUFkZHJlc3MgICAgICAgICAgQml0R28gZW50ZXJwcmlzZSB2aWV3aW5nIGtleSBhZGRyZXNzXG4gKiBAcGFyYW0gdG9rZW5Db250cmFjdEFkZHJlc3NlcyAgIEFycmF5IG9mIEVSQy03OTg0IHRva2VuIGNvbnRyYWN0IGFkZHJlc3Nlc1xuICogQHBhcmFtIGV4cGlyeVRpbWVzdGFtcCAgICAgICAgICBVbml4IHNlY29uZHNcbiAqIEByZXR1cm5zIEFCSS1lbmNvZGVkIGNhbGxkYXRhIGhleCBzdHJpbmcgKDB4LXByZWZpeGVkKVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRNdWx0aWNhbGxEZWxlZ2F0aW9uQ2FsbGRhdGEoXG4gIGRlbGVnYXRlQWRkcmVzczogc3RyaW5nLFxuICB0b2tlbkNvbnRyYWN0QWRkcmVzc2VzOiBzdHJpbmdbXSxcbiAgZXhwaXJ5VGltZXN0YW1wOiBudW1iZXJcbik6IHN0cmluZyB7XG4gIGlmICh0b2tlbkNvbnRyYWN0QWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYnVpbGRNdWx0aWNhbGxEZWxlZ2F0aW9uQ2FsbGRhdGE6IHRva2VuQ29udHJhY3RBZGRyZXNzZXMgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgfVxuXG4gIC8vIEJ1aWxkIGVhY2ggaW5uZXIgZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvbiBjYWxsIGFzIHJhdyBieXRlc1xuICBjb25zdCBpbm5lckNhbGxzOiBCdWZmZXJbXSA9IHRva2VuQ29udHJhY3RBZGRyZXNzZXMubWFwKCh0b2tlbkFkZHJlc3MpID0+IHtcbiAgICBjb25zdCBpbm5lck1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKCdkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uJywgWy4uLmRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25UeXBlc10pO1xuICAgIGNvbnN0IGlubmVyQXJncyA9IEV0aGVyZXVtQWJpLnJhd0VuY29kZShcbiAgICAgIFsuLi5kZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uVHlwZXNdLFxuICAgICAgW2RlbGVnYXRlQWRkcmVzcywgdG9rZW5BZGRyZXNzLCBleHBpcnlUaW1lc3RhbXBdXG4gICAgKTtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbaW5uZXJNZXRob2QsIGlubmVyQXJnc10pO1xuICB9KTtcblxuICAvLyBFbmNvZGUgb3V0ZXIgbXVsdGljYWxsKGJ5dGVzW10pXG4gIC8vIGV0aGVyZXVtanMtYWJpIHYwLjYueCBoYXMgYSBidWcgd2hlcmUgaXQgb21pdHMgdGhlIHBlci1lbGVtZW50IG9mZnNldCB0YWJsZVxuICAvLyBmb3IgYnl0ZXNbXSwgcHJvZHVjaW5nIG1hbGZvcm1lZCBjYWxsZGF0YSB0aGF0IG9uLWNoYWluIEFCSSBkZWNvZGVycyByZWplY3QuXG4gIC8vIFVzZSBldGhlcnMgQWJpQ29kZXIgd2hpY2ggY29ycmVjdGx5IGVtaXRzIHRoZSBoZWFkIG9mZnNldCB3b3Jkcy5cbiAgY29uc3Qgb3V0ZXJNZXRob2QgPSBFdGhlcmV1bUFiaS5tZXRob2RJRCgnbXVsdGljYWxsJywgWy4uLmFjbE11bHRpY2FsbFR5cGVzXSk7XG4gIGNvbnN0IG91dGVyQXJncyA9IEJ1ZmZlci5mcm9tKFxuICAgIG5ldyBldGhlcnMudXRpbHMuQWJpQ29kZXIoKS5lbmNvZGUoWy4uLmFjbE11bHRpY2FsbFR5cGVzXSwgW2lubmVyQ2FsbHNdKS5zbGljZSgyKSxcbiAgICAnaGV4J1xuICApO1xuICByZXR1cm4gYWRkSGV4UHJlZml4KEJ1ZmZlci5jb25jYXQoW291dGVyTWV0aG9kLCBvdXRlckFyZ3NdKS50b1N0cmluZygnaGV4JykpO1xufVxuXG4vKipcbiAqIFdyYXBzIGNhbGxkYXRhIGluIGEgRm9yd2FyZGVyVjQuY2FsbEZyb21QYXJlbnQodGFyZ2V0LCAwLCBkYXRhKSBjYWxsLlxuICpcbiAqIFVzZWQgd2hlbiBhIGZvcndhcmRlciBjb250cmFjdCBtdXN0IGJlIG1zZy5zZW5kZXIgZm9yIGFuIGV4dGVybmFsIGNvbnRyYWN0XG4gKiBjYWxsIOKAlCBmb3IgZXhhbXBsZSwgd2hlbiB0aGUgZm9yd2FyZGVyIGl0c2VsZiBuZWVkcyB0byBjYWxsXG4gKiBBQ0wuZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvbigpIHNvIHRoYXQgaXRzIG93biBiYWxhbmNlIGNhbiBiZSBkZWNyeXB0ZWQuXG4gKlxuICogT25seSB0aGUgcGFyZW50QWRkcmVzcyAocm9vdCB3YWxsZXQpIGlzIGFsbG93ZWQgdG8gY2FsbCBjYWxsRnJvbVBhcmVudFxuICogKGVuZm9yY2VkIGJ5IHRoZSBmb3J3YXJkZXIncyBvbmx5UGFyZW50IG1vZGlmaWVyKS5cbiAqXG4gKiBAcGFyYW0gdGFyZ2V0QWRkcmVzcyAgQWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdGhlIGZvcndhcmRlciB3aWxsIGNhbGwgKGUuZy4gQUNMKVxuICogQHBhcmFtIGNhbGxkYXRhICAgICAgIEFCSS1lbmNvZGVkIGlubmVyIGNhbGxkYXRhIChlLmcuIGZyb20gYnVpbGREZWxlZ2F0aW9uQ2FsbGRhdGEpXG4gKiBAcmV0dXJucyBBQkktZW5jb2RlZCBjYWxsRnJvbVBhcmVudCBjYWxsZGF0YSBoZXggc3RyaW5nICgweC1wcmVmaXhlZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBJbkNhbGxGcm9tUGFyZW50KHRhcmdldEFkZHJlc3M6IHN0cmluZywgY2FsbGRhdGE6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKCdjYWxsRnJvbVBhcmVudCcsIFsuLi5jYWxsRnJvbVBhcmVudFR5cGVzXSk7XG4gIGNvbnN0IGFyZ3MgPSBFdGhlcmV1bUFiaS5yYXdFbmNvZGUoXG4gICAgWy4uLmNhbGxGcm9tUGFyZW50VHlwZXNdLFxuICAgIFtcbiAgICAgIHRhcmdldEFkZHJlc3MsXG4gICAgICAwLCAvLyB2YWx1ZTogbm8gRVRIIHRyYW5zZmVyXG4gICAgICB0b0J1ZmZlcihjYWxsZGF0YSksIC8vIGlubmVyIGNhbGxkYXRhIGFzIGJ5dGVzXG4gICAgXVxuICApO1xuICByZXR1cm4gYWRkSGV4UHJlZml4KEJ1ZmZlci5jb25jYXQoW21ldGhvZCwgYXJnc10pLnRvU3RyaW5nKCdoZXgnKSk7XG59XG5cbi8qKlxuICogRGVjb2RlcyB0b2tlbiBjb250cmFjdCBhZGRyZXNzZXMgZnJvbSBkZWxlZ2F0aW9uIGNhbGxkYXRhLlxuICpcbiAqIEhhbmRsZXMgdHdvIHNoYXBlcyBvZiBjYWxsZGF0YTpcbiAqICAgLSBEaXJlY3QgQUNMLm11bHRpY2FsbChieXRlc1tdKSAocm9vdCB3YWxsZXQgcGF0aClcbiAqICAgLSBGb3J3YXJkZXJWNC5jYWxsRnJvbVBhcmVudChhZGRyZXNzLCB1aW50MjU2LCBieXRlcykgd3JhcHBpbmcgYSBtdWx0aWNhbGwgKGZvcndhcmRlciBwYXRoKVxuICpcbiAqIEBwYXJhbSBjYWxsZGF0YSAgQUJJLWVuY29kZWQgZGVsZWdhdGlvbiBjYWxsZGF0YSAoMHgtcHJlZml4ZWQgb3IgcmF3IGhleClcbiAqIEByZXR1cm5zIEFycmF5IG9mIHRva2VuIGNvbnRyYWN0IGFkZHJlc3NlcyAobG93ZXJjYXNlKSBmb3VuZCBpbiB0aGUgZGVsZWdhdGlvbiBjYWxsc1xuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZSBjYWxsZGF0YSBkb2VzIG5vdCBzdGFydCB3aXRoIGEgcmVjb2duaXNlZCBtZXRob2Qgc2VsZWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRva2VuQWRkcmVzc2VzRnJvbURlbGVnYXRpb25DYWxsZGF0YShjYWxsZGF0YTogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBkYXRhID0gY2FsbGRhdGEuc3RhcnRzV2l0aCgnMHgnKSA/IGNhbGxkYXRhIDogJzB4JyArIGNhbGxkYXRhO1xuICBjb25zdCBtZXRob2RJZCA9IGRhdGEuc2xpY2UoMCwgMTApO1xuICBjb25zdCBhYmlDb2RlciA9IG5ldyBldGhlcnMudXRpbHMuQWJpQ29kZXIoKTtcblxuICBsZXQgbXVsdGljYWxsSGV4OiBzdHJpbmc7XG5cbiAgaWYgKG1ldGhvZElkID09PSBjYWxsRnJvbVBhcmVudE1ldGhvZElkKSB7XG4gICAgLy8gRGVjb2RlIGNhbGxGcm9tUGFyZW50KGFkZHJlc3MsIHVpbnQyNTYsIGJ5dGVzKSDigJQgaW5uZXIgYnl0ZXMgaXMgdGhlIGZ1bGwgbXVsdGljYWxsIGNhbGxkYXRhLlxuICAgIC8vIGV0aGVycyB2NSByZXR1cm5zIGBieXRlc2AgYXMgYSBoZXggc3RyaW5nOyB1c2UgaGV4bGlmeSB0byBub3JtYWxpc2UgdG8gYSAweC1wcmVmaXhlZCBoZXggc3RyaW5nXG4gICAgLy8gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBydW50aW1lIHJldHVybnMgYSBzdHJpbmcgb3IgYSBVaW50OEFycmF5LlxuICAgIGNvbnN0IGRlY29kZWQgPSBhYmlDb2Rlci5kZWNvZGUoWy4uLmNhbGxGcm9tUGFyZW50VHlwZXNdLCAnMHgnICsgZGF0YS5zbGljZSgxMCkpO1xuICAgIG11bHRpY2FsbEhleCA9IGV0aGVycy51dGlscy5oZXhsaWZ5KGRlY29kZWRbMl0pO1xuICB9IGVsc2UgaWYgKG1ldGhvZElkID09PSBhY2xNdWx0aWNhbGxNZXRob2RJZCkge1xuICAgIG11bHRpY2FsbEhleCA9IGRhdGE7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSB2YWxpZCBkZWxlZ2F0aW9uIGNhbGxkYXRhJyk7XG4gIH1cblxuICBpZiAobXVsdGljYWxsSGV4LnNsaWNlKDAsIDEwKSAhPT0gYWNsTXVsdGljYWxsTWV0aG9kSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIHZhbGlkIGRlbGVnYXRpb24gY2FsbGRhdGEnKTtcbiAgfVxuXG4gIC8vIERlY29kZSBtdWx0aWNhbGwoYnl0ZXNbXSkg4oCUIGVhY2ggZWxlbWVudCBpcyBhbiBpbm5lciBkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uIGNhbGwuXG4gIC8vIGV0aGVycyB2NSByZXR1cm5zIGJ5dGVzW10gZWxlbWVudHMgYXMgaGV4IHN0cmluZ3M7IHVzZSBoZXhsaWZ5IHRvIG5vcm1hbGlzZSBlYWNoIGVsZW1lbnQuXG4gIGNvbnN0IGRlY29kZWQgPSBhYmlDb2Rlci5kZWNvZGUoWydieXRlc1tdJ10sICcweCcgKyBtdWx0aWNhbGxIZXguc2xpY2UoMTApKTtcbiAgY29uc3QgaW5uZXJDYWxsczogdW5rbm93bltdID0gZGVjb2RlZFswXTtcblxuICBjb25zdCB0b2tlbkFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBpbm5lckNhbGwgb2YgaW5uZXJDYWxscykge1xuICAgIGNvbnN0IGlubmVySGV4ID0gZXRoZXJzLnV0aWxzLmhleGxpZnkoaW5uZXJDYWxsIGFzIGV0aGVycy51dGlscy5CeXRlc0xpa2UpLnNsaWNlKDIpOyAvLyBzdHJpcCAweFxuICAgIGNvbnN0IGlubmVyTWV0aG9kSWQgPSAnMHgnICsgaW5uZXJIZXguc2xpY2UoMCwgOCk7XG4gICAgaWYgKGlubmVyTWV0aG9kSWQgIT09IGRlbGVnYXRlRm9yVXNlckRlY3J5cHRpb25NZXRob2RJZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIC8vIERlY29kZSBkZWxlZ2F0ZUZvclVzZXJEZWNyeXB0aW9uKGFkZHJlc3MgZGVsZWdhdGUsIGFkZHJlc3MgdG9rZW5BZGRyZXNzLCB1aW50NjQgZXhwaXJ5KVxuICAgIGNvbnN0IGlubmVyRGVjb2RlZCA9IGFiaUNvZGVyLmRlY29kZShbLi4uZGVsZWdhdGVGb3JVc2VyRGVjcnlwdGlvblR5cGVzXSwgJzB4JyArIGlubmVySGV4LnNsaWNlKDgpKTtcbiAgICB0b2tlbkFkZHJlc3Nlcy5wdXNoKChpbm5lckRlY29kZWRbMV0gYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbkFkZHJlc3Nlcztcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../test/unit/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,QAuDlF"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../test/unit/transaction.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,QAsElF"}
@@ -55,6 +55,19 @@ function runTransactionTests(coinName, testData, common) {
55
55
  should_1.default.equal(tx.toBroadcastFormat(), testData.ENCODED_TRANSACTION);
56
56
  });
57
57
  });
58
+ describe('signablePayload', () => {
59
+ it('should throw on an empty transaction', () => {
60
+ const tx = getTransaction();
61
+ should_1.default.throws(() => tx.signablePayload);
62
+ });
63
+ it('should return a 32-byte keccak256 hash for an unsigned transaction', () => {
64
+ const tx = getTransaction();
65
+ tx.setTransactionData(testData.TXDATA);
66
+ const payload = tx.signablePayload;
67
+ payload.should.be.instanceof(Buffer);
68
+ payload.length.should.equal(32);
69
+ });
70
+ });
58
71
  });
59
72
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxrREF1REM7QUE1REQsb0RBQTRCO0FBQzVCLDRDQUF1QztBQUN2QyxtQ0FBd0M7QUFHeEMsU0FBZ0IsbUJBQW1CLENBQUMsUUFBZ0IsRUFBRSxRQUFhLEVBQUUsTUFBYztJQUNqRixRQUFRLENBQUMsR0FBRyxRQUFRLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ0gsU0FBUyxjQUFjO1lBQ3JCLE9BQU8sSUFBSSxpQkFBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDN0IsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtnQkFDOUIsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDakIsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUNILGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDakIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQzdCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQzNCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixNQUFNLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtZQUN4QyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUs7Z0JBQ3BCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgQ29tbW9uIGZyb20gJ0BldGhlcmV1bWpzL2NvbW1vbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5UcmFuc2FjdGlvblRlc3RzKGNvaW5OYW1lOiBzdHJpbmcsIHRlc3REYXRhOiBhbnksIGNvbW1vbjogQ29tbW9uKSB7XG4gIGRlc2NyaWJlKGAke2NvaW5OYW1lfSBUcmFuc2FjdGlvbmAsICgpID0+IHtcbiAgICBjb25zdCBjb2luID0gdGVzdERhdGEuQ09JTjtcbiAgICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KGNvaW4pO1xuXG4gICAgLyoqXG4gICAgICogcmV0dXJuIGEgbmV3IHRyYW5zYWN0aW9uIG9iamVjdFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb24oY29pbkNvbmZpZywgY29tbW9uKTtcbiAgICB9XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHRocm93ICcsICgpID0+IHtcbiAgICAgIGl0KCdhbiBlbXB0eSB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgICBzaG91bGQudGhyb3dzKCgpID0+IHtcbiAgICAgICAgICB0eC50b0pzb24oKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4ge1xuICAgICAgICAgIHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHJldHVybicsICgpID0+IHtcbiAgICAgIGl0KCdhIHZhbGlkIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIHR4LnNldFRyYW5zYWN0aW9uRGF0YSh0ZXN0RGF0YS5UWERBVEEpO1xuICAgICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LnRvSnNvbigpLCB0ZXN0RGF0YS5UWERBVEEpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuVU5TSUdORURfVFgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHNpZ24nLCAoKSA9PiB7XG4gICAgICBpdCgnaW52YWxpZCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgICByZXR1cm4gdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVikuc2hvdWxkLmJlLnJlamVjdGVkKCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3ZhbGlkJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIHR4LnNldFRyYW5zYWN0aW9uRGF0YSh0ZXN0RGF0YS5UWERBVEEpO1xuICAgICAgICByZXR1cm4gdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVikuc2hvdWxkLmJlLmZ1bGZpbGxlZCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2hvdWxkIHJldHVybiBlbmNvZGVkIHR4JywgKCkgPT4ge1xuICAgICAgaXQoJ3ZhbGlkIHNpZ24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICAgIGF3YWl0IHR4LnNpZ24odGVzdERhdGEuS0VZUEFJUl9QUlYpO1xuICAgICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuRU5DT0RFRF9UUkFOU0FDVElPTik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxrREFzRUM7QUEzRUQsb0RBQTRCO0FBQzVCLDRDQUF1QztBQUN2QyxtQ0FBd0M7QUFHeEMsU0FBZ0IsbUJBQW1CLENBQUMsUUFBZ0IsRUFBRSxRQUFhLEVBQUUsTUFBYztJQUNqRixRQUFRLENBQUMsR0FBRyxRQUFRLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ0gsU0FBUyxjQUFjO1lBQ3JCLE9BQU8sSUFBSSxpQkFBVyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDN0IsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtnQkFDOUIsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDakIsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUNILGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDakIsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQzdCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQzNCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixNQUFNLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtZQUN4QyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUs7Z0JBQ3BCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM1QixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtZQUMvQixFQUFFLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO2dCQUM5QyxNQUFNLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztnQkFDNUIsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLG9FQUFvRSxFQUFFLEdBQUcsRUFBRTtnQkFDNUUsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQ25DLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDckMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCBDb21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1blRyYW5zYWN0aW9uVGVzdHMoY29pbk5hbWU6IHN0cmluZywgdGVzdERhdGE6IGFueSwgY29tbW9uOiBDb21tb24pIHtcbiAgZGVzY3JpYmUoYCR7Y29pbk5hbWV9IFRyYW5zYWN0aW9uYCwgKCkgPT4ge1xuICAgIGNvbnN0IGNvaW4gPSB0ZXN0RGF0YS5DT0lOO1xuICAgIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoY29pbik7XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm4gYSBuZXcgdHJhbnNhY3Rpb24gb2JqZWN0XG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnLCBjb21tb24pO1xuICAgIH1cblxuICAgIGRlc2NyaWJlKCdzaG91bGQgdGhyb3cgJywgKCkgPT4ge1xuICAgICAgaXQoJ2FuIGVtcHR5IHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIHNob3VsZC50aHJvd3MoKCkgPT4ge1xuICAgICAgICAgIHR4LnRvSnNvbigpO1xuICAgICAgICB9KTtcbiAgICAgICAgc2hvdWxkLnRocm93cygoKSA9PiB7XG4gICAgICAgICAgdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzaG91bGQgcmV0dXJuJywgKCkgPT4ge1xuICAgICAgaXQoJ2EgdmFsaWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICAgIHNob3VsZC5kZWVwRXF1YWwodHgudG9Kc29uKCksIHRlc3REYXRhLlRYREFUQSk7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5VTlNJR05FRF9UWCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzaG91bGQgc2lnbicsICgpID0+IHtcbiAgICAgIGl0KCdpbnZhbGlkJywgKCkgPT4ge1xuICAgICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIHJldHVybiB0eC5zaWduKHRlc3REYXRhLktFWVBBSVJfUFJWKS5zaG91bGQuYmUucmVqZWN0ZWQoKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgndmFsaWQnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICAgIHJldHVybiB0eC5zaWduKHRlc3REYXRhLktFWVBBSVJfUFJWKS5zaG91bGQuYmUuZnVsZmlsbGVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzaG91bGQgcmV0dXJuIGVuY29kZWQgdHgnLCAoKSA9PiB7XG4gICAgICBpdCgndmFsaWQgc2lnbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgICB0eC5zZXRUcmFuc2FjdGlvbkRhdGEodGVzdERhdGEuVFhEQVRBKTtcbiAgICAgICAgYXdhaXQgdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVik7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5FTkNPREVEX1RSQU5TQUNUSU9OKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3NpZ25hYmxlUGF5bG9hZCcsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgdGhyb3cgb24gYW4gZW1wdHkgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgc2hvdWxkLnRocm93cygoKSA9PiB0eC5zaWduYWJsZVBheWxvYWQpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGEgMzItYnl0ZSBrZWNjYWsyNTYgaGFzaCBmb3IgYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSB0eC5zaWduYWJsZVBheWxvYWQ7XG4gICAgICAgIHBheWxvYWQuc2hvdWxkLmJlLmluc3RhbmNlb2YoQnVmZmVyKTtcbiAgICAgICAgcGF5bG9hZC5sZW5ndGguc2hvdWxkLmVxdWFsKDMyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==