@bitgo/sdk-core 36.38.0 → 36.39.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/account-lib/mpc/util.d.ts.map +1 -1
- package/dist/src/account-lib/mpc/util.js +8 -3
- package/dist/src/bitgo/environments.d.ts.map +1 -1
- package/dist/src/bitgo/environments.js +19 -1
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/iKeychains.js +1 -1
- package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/mpcUtils.js +7 -1
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +11 -0
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +6 -2
- package/dist/src/bitgo/wallet/BuildParams.d.ts +1 -0
- package/dist/src/bitgo/wallet/BuildParams.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/BuildParams.js +2 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts +11 -6
- package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallet.js +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +17 -3
- package/dist/src/coins/ofcToken.d.ts.map +1 -1
- package/dist/src/coins/ofcToken.js +4 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/test/unit/account-lib/mpc/util.d.ts +2 -0
- package/dist/test/unit/account-lib/mpc/util.d.ts.map +1 -0
- package/dist/test/unit/account-lib/mpc/util.js +53 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ofcToken.d.ts","sourceRoot":"","sources":["../../../src/coins/ofcToken.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,SAAS,EACT,eAAe,EACf,sBAAsB,IAAI,0BAA0B,EACpD,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,KAAK,CAAC;AAGb,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAI1B,qBAAa,QAAS,SAAQ,GAAG;IAC/B,SAAgB,WAAW,EAAE,cAAc,CAAC;gBAEhC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc;IAKzD,IAAI,IAAI,WAEP;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,IAAI,WAEP;IAED,IAAI,WAAW,WAEd;IAED,IAAI,MAAM,YAET;IAED,QAAQ;IAIR,WAAW;IAIX,aAAa;IAIb,IAAW,IAAI,WAEd;IAED,cAAc,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAyBtD;;;OAGG;IACH,wBAAwB;IAIxB,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe;IAItE;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQjF;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"ofcToken.d.ts","sourceRoot":"","sources":["../../../src/coins/ofcToken.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,SAAS,EACT,eAAe,EACf,sBAAsB,IAAI,0BAA0B,EACpD,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,KAAK,CAAC;AAGb,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAI1B,qBAAa,QAAS,SAAQ,GAAG;IAC/B,SAAgB,WAAW,EAAE,cAAc,CAAC;gBAEhC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc;IAKzD,IAAI,IAAI,WAEP;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,IAAI,WAEP;IAED,IAAI,WAAW,WAEd;IAED,IAAI,MAAM,YAET;IAED,QAAQ;IAIR,WAAW;IAIX,aAAa;IAIb,IAAW,IAAI,WAEd;IAED,cAAc,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAyBtD;;;OAGG;IACH,wBAAwB;IAIxB,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe;IAItE;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQjF;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO;CAkB1C"}
|
|
@@ -98,9 +98,12 @@ class OfcToken extends ofc_1.Ofc {
|
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
100
100
|
const backingCoin = this.bitgo.coin(this.backingCoin);
|
|
101
|
+
if (this.backingCoin === 'btc' || this.backingCoin === 'tbtc') {
|
|
102
|
+
return backingCoin.isValidAddress(address, { allowLightning: true });
|
|
103
|
+
}
|
|
101
104
|
return backingCoin.isValidAddress(address);
|
|
102
105
|
}
|
|
103
106
|
}
|
|
104
107
|
}
|
|
105
108
|
exports.OfcToken = OfcToken;
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZjVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvb2ZjVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsbUNBQWtDO0FBUWxDLDRDQUErQztBQUUvQywrQkFBNEI7QUFXNUIsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFFdkMsTUFBYSxRQUFTLFNBQVEsU0FBRztJQUcvQixZQUFZLEtBQWdCLEVBQUUsV0FBMkI7UUFDdkQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFD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O0NBQ0Y7QUF2SEQsNEJBdUhDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgT2ZjVG9rZW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBCaXRHb0Jhc2UsXG4gIENvaW5Db25zdHJ1Y3RvcixcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyBhcyBCYXNlU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIElUcmFuc2FjdGlvblJlY2lwaWVudCxcbn0gZnJvbSAnLi4vJztcbmltcG9ydCB7IGlzQm9sdDExSW52b2ljZSB9IGZyb20gJy4uL2xpZ2h0bmluZyc7XG5cbmltcG9ydCB7IE9mYyB9IGZyb20gJy4vb2ZjJztcblxuZXhwb3J0IGludGVyZmFjZSBTaWduVHJhbnNhY3Rpb25PcHRpb25zIGV4dGVuZHMgQmFzZVNpZ25UcmFuc2FjdGlvbk9wdGlvbnMge1xuICB0eFByZWJ1aWxkOiB7XG4gICAgcGF5bG9hZDogc3RyaW5nO1xuICB9O1xuICBwcnY6IHN0cmluZztcbn1cblxuZXhwb3J0IHsgT2ZjVG9rZW5Db25maWcgfTtcblxuY29uc3QgcHVibGljSWRSZWdleCA9IC9eW2EtZlxcZF17MzJ9JC9pO1xuXG5leHBvcnQgY2xhc3MgT2ZjVG9rZW4gZXh0ZW5kcyBPZmMge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IE9mY1Rva2VuQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHRva2VuQ29uZmlnOiBPZmNUb2tlbkNvbmZpZykge1xuICAgIHN1cGVyKGJpdGdvKTtcbiAgICB0aGlzLnRva2VuQ29uZmlnID0gdG9rZW5Db25maWc7XG4gIH1cblxuICBnZXQgY29pbigpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgZ2V0IGRlY2ltYWxQbGFjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcztcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICBnZXQgYmFja2luZ0NvaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuYmFja2luZ0NvaW47XG4gIH1cblxuICBnZXQgaXNGaWF0KCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmlzRmlhdDtcbiAgfVxuXG4gIGdldENoYWluKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0QmFzZUZhY3RvcigpIHtcbiAgICByZXR1cm4gU3RyaW5nKE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxQbGFjZXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgY2hlY2tSZWNpcGllbnQocmVjaXBpZW50OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQpOiB2b2lkIHtcbiAgICBpZiAoaXNCb2x0MTFJbnZvaWNlKHJlY2lwaWVudC5hZGRyZXNzKSkge1xuICAgICAgLy8gc2hvdWxkIHRocm93IGVycm9yIGlmIHRoaXMgaXNudCBiaXRjb2luIChtYWlubmV0IG9yIHRlc3RuZXQpXG4gICAgICBpZiAodGhpcy5iYWNraW5nQ29pbiAhPT0gJ2J0YycgJiYgdGhpcy5iYWNraW5nQ29pbiAhPT0gJ3RidGMnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhcmd1bWVudCAtIGxpZ2h0bmluZyBpbnZvaWNlIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBiaXRjb2luYCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGFtb3VudCBmb3IgYm9sdDExIGludm9pY2VzIG11c3QgYmUgYSBub24temVybyBiaWdpbnRcbiAgICAgIGxldCBhbW91bnQ6IGJpZ2ludDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGFtb3VudCA9IEJpZ0ludChyZWNpcGllbnQuYW1vdW50KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBpbnZhbGlkIGFyZ3VtZW50ICR7cmVjaXBpZW50LmFtb3VudH0gZm9yIGFtb3VudCAtIGxpZ2h0bmluZyBpbnZvaWNlIGFtb3VudCBtdXN0IGJlIGEgbm9uLXplcm8gYmlnaW50YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKGFtb3VudCA+IDBuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhcmd1bWVudCBmb3IgYW1vdW50IC0gbGlnaHRuaW5nIGludm9pY2UgYW1vdW50IG11c3QgYmUgYSBub24temVybyBiaWdpbnRgKTtcbiAgICB9XG5cbiAgICBzdXBlci5jaGVja1JlY2lwaWVudChyZWNpcGllbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgZm9yIHNlbmRpbmcgdmFsdWUgb2YgMFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBva2F5IHRvIHNlbmQgMCB2YWx1ZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3IoY29uZmlnOiBPZmNUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgT2ZjVG9rZW4oYml0Z28sIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQXNzZW1ibGUga2V5Y2hhaW4gYW5kIGhhbGYtc2lnbiBwcmVidWlsdCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPn1cbiAgICovXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihwYXJhbXM6IFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFNpZ25lZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3QgdHhQcmVidWlsZCA9IHBhcmFtcy50eFByZWJ1aWxkO1xuICAgIGNvbnN0IHBheWxvYWQgPSB0eFByZWJ1aWxkLnBheWxvYWQ7XG4gICAgY29uc3Qgc2lnbmF0dXJlQnVmZmVyID0gKGF3YWl0IHRoaXMuc2lnbk1lc3NhZ2UocGFyYW1zLCBwYXlsb2FkKSkgYXMgYW55O1xuICAgIGNvbnN0IHNpZ25hdHVyZTogc3RyaW5nID0gc2lnbmF0dXJlQnVmZmVyLnRvU3RyaW5nKCdoZXgnKTtcbiAgICByZXR1cm4geyBoYWxmU2lnbmVkOiB7IHBheWxvYWQsIHNpZ25hdHVyZSB9IH0gYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGFkZHJlc3MgaXMgdmFsaWQgZm9yIHRoaXMgb2ZjIHRva2VuLlxuICAgKlxuICAgKiBUaGVzZSBhZGRyZXNzZXMgYXJlIGVpdGhlciBiZy08cHVibGljaWQ+LCB3aGVyZSBwdWJsaWMgaWQgaXMgdGhlIGludGVybmFsIGFkZHJlc3MgdG8gc2VuZCB0byxcbiAgICogb3IgYXJlIGFuIGFkZHJlc3Mgd2hpY2ggaXMgdmFsaWQgb24gdGhlIGJhY2tpbmcgY29pbiBvZiB0aGlzIG9mYyB0b2tlbi5cbiAgICogQHBhcmFtIGFkZHJlc3MgYWRkcmVzcyB0byBjaGVjayBmb3IgdmFsaWRpdHlcbiAgICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIWlzU3RyaW5nKGFkZHJlc3MpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChhZGRyZXNzLnN0YXJ0c1dpdGgoJ2JnLScpKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGFkZHJlc3Muc3BsaXQoJy0nKTtcbiAgICAgIGNvbnN0IGFjY291bnRJZCA9IHBhcnRzWzFdO1xuICAgICAgcmV0dXJuIHBhcnRzLmxlbmd0aCA9PT0gMiAmJiBwdWJsaWNJZFJlZ2V4LnRlc3QoYWNjb3VudElkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYmFja2luZ0NvaW4gPSB0aGlzLmJpdGdvLmNvaW4odGhpcy5iYWNraW5nQ29pbik7XG4gICAgICBpZiAodGhpcy5iYWNraW5nQ29pbiA9PT0gJ2J0YycgfHwgdGhpcy5iYWNraW5nQ29pbiA9PT0gJ3RidGMnKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgYmFja2luZ0NvaW4gYXMgdW5rbm93biBhcyB7IGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgcGFyYW1zOiB7IGFsbG93TGlnaHRuaW5nOiBib29sZWFuIH0pOiBib29sZWFuIH1cbiAgICAgICAgKS5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLCB7IGFsbG93TGlnaHRuaW5nOiB0cnVlIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhY2tpbmdDb2luLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/dist/src/index.d.ts
CHANGED
|
@@ -16,5 +16,6 @@ export { TssEcdsaStep1ReturnMessage, TssEcdsaStep2ReturnMessage } from './bitgo/
|
|
|
16
16
|
export { SShare } from './bitgo/tss/ecdsa/types';
|
|
17
17
|
import * as common from './common';
|
|
18
18
|
export * from './units';
|
|
19
|
+
export * from './lightning';
|
|
19
20
|
export { common };
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC5G,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAC5C,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC5G,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -55,4 +55,5 @@ Object.defineProperty(exports, "verifyMPCWalletAddress", { enumerable: true, get
|
|
|
55
55
|
const common = __importStar(require("./common"));
|
|
56
56
|
exports.common = common;
|
|
57
57
|
__exportStar(require("./units"), exports);
|
|
58
|
-
|
|
58
|
+
__exportStar(require("./lightning"), exports);
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLDREQUE0QztBQUM1Qyx3Q0FBc0I7QUFDdEIsMENBQXdCO0FBQ3hCLGlEQUErQjtBQUMvQixpREFBaUM7QUFDakMseURBQTJEO0FBQ2xELDJGQURBLGtCQUFVLE9BQ0E7QUFDbkIseURBQTJEO0FBQ2xELDJGQURBLGtCQUFVLE9BQ0E7QUFDbkIsbUVBQXFFO0FBQzVELGdHQURBLDRCQUFlLE9BQ0E7QUFDeEIsNkVBQTRHO0FBQW5HLGtJQUFBLDJCQUEyQixPQUFBO0FBQUUsNkhBQUEsc0JBQXNCLE9BQUE7QUFJNUQsaURBQW1DO0FBRzFCLHdCQUFNO0FBRmYsMENBQXdCO0FBQ3hCLDhDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWNjb3VudC1saWInO1xuZXhwb3J0ICogYXMgYWNjb3VudExpYiBmcm9tICcuL2FjY291bnQtbGliJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vYml0Z28nO1xuZXhwb3J0ICogZnJvbSAnLi9iaXRnb2pzRXJyb3InO1xuZXhwb3J0ICogYXMgY29pbnMgZnJvbSAnLi9jb2lucyc7XG5pbXBvcnQgeyBFZGRzYVV0aWxzIH0gZnJvbSAnLi9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2EnO1xuZXhwb3J0IHsgRWRkc2FVdGlscyB9O1xuaW1wb3J0IHsgRWNkc2FVdGlscyB9IGZyb20gJy4vYml0Z28vdXRpbHMvdHNzL2VjZHNhL2VjZHNhJztcbmV4cG9ydCB7IEVjZHNhVXRpbHMgfTtcbmltcG9ydCB7IEVjZHNhTVBDdjJVdGlscyB9IGZyb20gJy4vYml0Z28vdXRpbHMvdHNzL2VjZHNhL2VjZHNhTVBDdjInO1xuZXhwb3J0IHsgRWNkc2FNUEN2MlV0aWxzIH07XG5leHBvcnQgeyB2ZXJpZnlFZGRzYVRzc1dhbGxldEFkZHJlc3MsIHZlcmlmeU1QQ1dhbGxldEFkZHJlc3MgfSBmcm9tICcuL2JpdGdvL3V0aWxzL3Rzcy9hZGRyZXNzVmVyaWZpY2F0aW9uJztcbmV4cG9ydCB7IEdTaGFyZSwgU2lnblNoYXJlLCBZU2hhcmUgfSBmcm9tICcuL2FjY291bnQtbGliL21wYy90c3MvZWRkc2EvdHlwZXMnO1xuZXhwb3J0IHsgVHNzRWNkc2FTdGVwMVJldHVybk1lc3NhZ2UsIFRzc0VjZHNhU3RlcDJSZXR1cm5NZXNzYWdlIH0gZnJvbSAnLi9iaXRnby90c3MvdHlwZXMnO1xuZXhwb3J0IHsgU1NoYXJlIH0gZnJvbSAnLi9iaXRnby90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0ICogYXMgY29tbW9uIGZyb20gJy4vY29tbW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdW5pdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWdodG5pbmcnO1xuZXhwb3J0IHsgY29tbW9uIH07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../../test/unit/account-lib/mpc/util.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
require("should");
|
|
7
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
8
|
+
const sdk_lib_mpc_1 = require("@bitgo/sdk-lib-mpc");
|
|
9
|
+
const util_1 = require("../../../../src/account-lib/mpc/util");
|
|
10
|
+
function makeMsg(from, rHex) {
|
|
11
|
+
return {
|
|
12
|
+
payload: Buffer.from(`payload-${from}`).toString('base64'),
|
|
13
|
+
from,
|
|
14
|
+
signatureR: rHex ? Buffer.from(rHex, 'hex').toString('base64') : undefined,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
describe('combineRound4DklsDsgMessages', function () {
|
|
18
|
+
let stub;
|
|
19
|
+
beforeEach(function () {
|
|
20
|
+
stub = sinon_1.default.stub(sdk_lib_mpc_1.DklsUtils, 'combinePartialSignatures').returns({
|
|
21
|
+
R: new Uint8Array([1, 2, 3]),
|
|
22
|
+
S: new Uint8Array([4, 5, 6]),
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
afterEach(function () {
|
|
26
|
+
stub.restore();
|
|
27
|
+
});
|
|
28
|
+
it('throws when no message contains signatureR', function () {
|
|
29
|
+
const msgs = [makeMsg(0), makeMsg(1), makeMsg(2)];
|
|
30
|
+
(() => (0, util_1.combineRound4DklsDsgMessages)(msgs)).should.throw('None of the round 4 Dkls messages contain a Signature.R value.');
|
|
31
|
+
});
|
|
32
|
+
it('throws when parties provide different signatureR values', function () {
|
|
33
|
+
const msgs = [makeMsg(0, 'aabbcc'), makeMsg(1, 'ddeeff'), makeMsg(2, 'aabbcc')];
|
|
34
|
+
(() => (0, util_1.combineRound4DklsDsgMessages)(msgs)).should.throw('signatureR mismatch across parties — possible protocol attack');
|
|
35
|
+
});
|
|
36
|
+
it('succeeds when all parties agree on signatureR', function () {
|
|
37
|
+
const rHex = 'aabbccddeeff0011';
|
|
38
|
+
const msgs = [makeMsg(0, rHex), makeMsg(1, rHex), makeMsg(2, rHex)];
|
|
39
|
+
const result = (0, util_1.combineRound4DklsDsgMessages)(msgs);
|
|
40
|
+
result.should.have.property('R');
|
|
41
|
+
result.should.have.property('S');
|
|
42
|
+
stub.calledOnce.should.be.true();
|
|
43
|
+
stub.firstCall.args[1].should.equal(rHex);
|
|
44
|
+
});
|
|
45
|
+
it('succeeds when only one party provides signatureR', function () {
|
|
46
|
+
const rHex = 'cafebabe';
|
|
47
|
+
const msgs = [makeMsg(0, rHex), makeMsg(1), makeMsg(2)];
|
|
48
|
+
const result = (0, util_1.combineRound4DklsDsgMessages)(msgs);
|
|
49
|
+
result.should.have.property('R');
|
|
50
|
+
stub.calledOnce.should.be.true();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9hY2NvdW50LWxpYi9tcGMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtCQUFnQjtBQUNoQixrREFBMEI7QUFDMUIsb0RBQTBEO0FBQzFELCtEQUFvRjtBQUVwRixTQUFTLE9BQU8sQ0FBQyxJQUFZLEVBQUUsSUFBYTtJQUMxQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDMUQsSUFBSTtRQUNKLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUMzRSxDQUFDO0FBQ0osQ0FBQztBQUVELFFBQVEsQ0FBQyw4QkFBOEIsRUFBRTtJQUN2QyxJQUFJLElBQXFCLENBQUM7SUFFMUIsVUFBVSxDQUFDO1FBQ1QsSUFBSSxHQUFHLGVBQUssQ0FBQyxJQUFJLENBQUMsdUJBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMvRCxDQUFDLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNENBQTRDLEVBQUU7UUFDL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSxtQ0FBNEIsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3JELGdFQUFnRSxDQUNqRSxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMseURBQXlELEVBQUU7UUFDNUQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSxtQ0FBNEIsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ3JELCtEQUErRCxDQUNoRSxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsK0NBQStDLEVBQUU7UUFDbEQsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDaEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUEsbUNBQTRCLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrREFBa0QsRUFBRTtRQUNyRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFBLG1DQUE0QixFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgeyBEa2xzVXRpbHMsIERrbHNUeXBlcyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBjb21iaW5lUm91bmQ0RGtsc0RzZ01lc3NhZ2VzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL21wYy91dGlsJztcblxuZnVuY3Rpb24gbWFrZU1zZyhmcm9tOiBudW1iZXIsIHJIZXg/OiBzdHJpbmcpOiBEa2xzVHlwZXMuU2VyaWFsaXplZEJyb2FkY2FzdE1lc3NhZ2Uge1xuICByZXR1cm4ge1xuICAgIHBheWxvYWQ6IEJ1ZmZlci5mcm9tKGBwYXlsb2FkLSR7ZnJvbX1gKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgZnJvbSxcbiAgICBzaWduYXR1cmVSOiBySGV4ID8gQnVmZmVyLmZyb20ockhleCwgJ2hleCcpLnRvU3RyaW5nKCdiYXNlNjQnKSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZGVzY3JpYmUoJ2NvbWJpbmVSb3VuZDREa2xzRHNnTWVzc2FnZXMnLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBzdHViOiBzaW5vbi5TaW5vblN0dWI7XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc3R1YiA9IHNpbm9uLnN0dWIoRGtsc1V0aWxzLCAnY29tYmluZVBhcnRpYWxTaWduYXR1cmVzJykucmV0dXJucyh7XG4gICAgICBSOiBuZXcgVWludDhBcnJheShbMSwgMiwgM10pLFxuICAgICAgUzogbmV3IFVpbnQ4QXJyYXkoWzQsIDUsIDZdKSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzdHViLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoJ3Rocm93cyB3aGVuIG5vIG1lc3NhZ2UgY29udGFpbnMgc2lnbmF0dXJlUicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBtc2dzID0gW21ha2VNc2coMCksIG1ha2VNc2coMSksIG1ha2VNc2coMildO1xuICAgICgoKSA9PiBjb21iaW5lUm91bmQ0RGtsc0RzZ01lc3NhZ2VzKG1zZ3MpKS5zaG91bGQudGhyb3coXG4gICAgICAnTm9uZSBvZiB0aGUgcm91bmQgNCBEa2xzIG1lc3NhZ2VzIGNvbnRhaW4gYSBTaWduYXR1cmUuUiB2YWx1ZS4nXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3Rocm93cyB3aGVuIHBhcnRpZXMgcHJvdmlkZSBkaWZmZXJlbnQgc2lnbmF0dXJlUiB2YWx1ZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgbXNncyA9IFttYWtlTXNnKDAsICdhYWJiY2MnKSwgbWFrZU1zZygxLCAnZGRlZWZmJyksIG1ha2VNc2coMiwgJ2FhYmJjYycpXTtcbiAgICAoKCkgPT4gY29tYmluZVJvdW5kNERrbHNEc2dNZXNzYWdlcyhtc2dzKSkuc2hvdWxkLnRocm93KFxuICAgICAgJ3NpZ25hdHVyZVIgbWlzbWF0Y2ggYWNyb3NzIHBhcnRpZXMg4oCUIHBvc3NpYmxlIHByb3RvY29sIGF0dGFjaydcbiAgICApO1xuICB9KTtcblxuICBpdCgnc3VjY2VlZHMgd2hlbiBhbGwgcGFydGllcyBhZ3JlZSBvbiBzaWduYXR1cmVSJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJIZXggPSAnYWFiYmNjZGRlZWZmMDAxMSc7XG4gICAgY29uc3QgbXNncyA9IFttYWtlTXNnKDAsIHJIZXgpLCBtYWtlTXNnKDEsIHJIZXgpLCBtYWtlTXNnKDIsIHJIZXgpXTtcbiAgICBjb25zdCByZXN1bHQgPSBjb21iaW5lUm91bmQ0RGtsc0RzZ01lc3NhZ2VzKG1zZ3MpO1xuICAgIHJlc3VsdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnUicpO1xuICAgIHJlc3VsdC5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnUycpO1xuICAgIHN0dWIuY2FsbGVkT25jZS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHN0dWIuZmlyc3RDYWxsLmFyZ3NbMV0uc2hvdWxkLmVxdWFsKHJIZXgpO1xuICB9KTtcblxuICBpdCgnc3VjY2VlZHMgd2hlbiBvbmx5IG9uZSBwYXJ0eSBwcm92aWRlcyBzaWduYXR1cmVSJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHJIZXggPSAnY2FmZWJhYmUnO1xuICAgIGNvbnN0IG1zZ3MgPSBbbWFrZU1zZygwLCBySGV4KSwgbWFrZU1zZygxKSwgbWFrZU1zZygyKV07XG4gICAgY29uc3QgcmVzdWx0ID0gY29tYmluZVJvdW5kNERrbHNEc2dNZXNzYWdlcyhtc2dzKTtcbiAgICByZXN1bHQuc2hvdWxkLmhhdmUucHJvcGVydHkoJ1InKTtcbiAgICBzdHViLmNhbGxlZE9uY2Uuc2hvdWxkLmJlLnRydWUoKTtcbiAgfSk7XG59KTtcbiJdfQ==
|