@bitgo/sdk-core 27.5.0 → 27.7.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/CHANGELOG.md +25 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +10 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/enterprise/enterprise.d.ts +2 -2
- package/dist/src/bitgo/enterprise/enterprise.d.ts.map +1 -1
- package/dist/src/bitgo/enterprise/enterprise.js +9 -4
- package/dist/src/bitgo/environments.js +2 -2
- package/dist/src/bitgo/keychain/iKeychains.d.ts +7 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/iKeychains.js +1 -1
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +2 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts +6 -6
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/tss/ecdsa/ecdsaMPCv2.js +17 -17
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +5 -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/SMC/types.d.ts +164 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/types.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/types.js +22 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts +18 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/ecdsa/SMC/utils.js +133 -0
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +34 -9
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +68 -20
- package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts +2 -0
- package/dist/src/bitgo/utils/tss/ecdsa/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/index.js +3 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts +1 -0
- 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/iWallets.d.ts +16 -2
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +32 -2
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +9 -5
- package/dist/src/bitgo/wallet/wallets.d.ts +10 -3
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +67 -28
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -46,4 +46,4 @@ var EncryptedSignerShareType;
|
|
|
46
46
|
EncryptedSignerShareType["ENCRYPTED_SIGNER_SHARE"] = "encryptedSignerShare";
|
|
47
47
|
EncryptedSignerShareType["ENCRYPTED_R_SHARE"] = "encryptedRShare";
|
|
48
48
|
})(EncryptedSignerShareType = exports.EncryptedSignerShareType || (exports.EncryptedSignerShareType = {}));
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUNBLElBQVksU0FXWDtBQVhELFdBQVksU0FBUztJQUNuQixvQkFBTyxDQUFBO0lBQ1Asc0NBQXlCLENBQUE7SUFDekIsb0JBQU8sQ0FBQTtJQUNQLG9CQUFPLENBQUE7SUFDUCxvQkFBTyxDQUFBO0lBQ1AsZ0NBQW1CLENBQUE7SUFDbkIsZ0RBQW1DLENBQUE7SUFDbkMsd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVhXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBV3BCO0FBRUQsSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2pCLDBCQUFlLENBQUE7SUFDZiwwQkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFHbEI7QUE0RkQsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBSXBCO0FBOElELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQix5Q0FBRSxDQUFBO0lBQ0YsbURBQU8sQ0FBQTtBQUNULENBQUMsRUFIVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUd0QjtBQXVERCxJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsbUNBQWEsQ0FBQTtJQUNiLHVDQUFpQixDQUFBO0lBQ2pCLHFDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBSTdCO0FBY0QsSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLDJDQUF5QixDQUFBO0lBQ3pCLCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUd6QjtBQVNELElBQVksd0JBR1g7QUFIRCxXQUFZLHdCQUF3QjtJQUNsQywyRUFBK0MsQ0FBQTtJQUMvQyxpRUFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBSFcsd0JBQXdCLEdBQXhCLGdDQUF3QixLQUF4QixnQ0FBd0IsUUFHbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBLZXljaGFpbnNUcmlwbGV0LCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEFwaUtleVNoYXJlLCBLZXljaGFpbiB9IGZyb20gJy4uLy4uL2tleWNoYWluJztcbmltcG9ydCB7IEFwaVZlcnNpb24sIE1lbW8sIFdhbGxldFR5cGUgfSBmcm9tICcuLi8uLi93YWxsZXQnO1xuaW1wb3J0IHsgRUREU0EsIEdTaGFyZSwgU2lnblNoYXJlLCBTaWduYXR1cmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IEtleVNoYXJlIH0gZnJvbSAnLi9lY2RzYSc7XG5pbXBvcnQgeyBFY2RzYVR5cGVzIH0gZnJvbSAnQGJpdGdvL3Nkay1saWItbXBjJztcbmltcG9ydCB7IFRzc0VjZHNhU3RlcDFSZXR1cm5NZXNzYWdlLCBUc3NFY2RzYVN0ZXAyUmV0dXJuTWVzc2FnZSwgVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi90c3MvdHlwZXMnO1xuaW1wb3J0IHsgQVNoYXJlLCBEU2hhcmUsIFNTaGFyZSB9IGZyb20gJy4uLy4uL3Rzcy9lY2RzYS90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcgfCAnbGl0ZSc7XG5leHBvcnQgaW50ZXJmYWNlIEhvcFBhcmFtcyB7XG4gIHBheW1lbnRJZD86IHN0cmluZztcbiAgdXNlclJlcVNpZz86IHN0cmluZztcbiAgZ2FzUHJpY2VNYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRUlQMTU1OUZlZU9wdGlvbnMge1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgbWF4RmVlUGVyR2FzPzogbnVtYmVyO1xuICBtYXhQcmlvcml0eUZlZVBlckdhcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWVPcHRpb24ge1xuICB1bml0PzogJ2Jhc2VVbml0JyB8ICdjcHUnIHwgJ3JhbSc7XG4gIGZvcm11bGE/OiAnZml4ZWQnIHwgJ2ZlZVJhdGUnIHwgJ3BlcktCJyB8ICdjdXN0b20nIHwgJ3BlclZLQic7XG4gIGZlZVR5cGU/OiAnYmFzZScgfCAnbWF4JyB8ICd0aXAnO1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgZ2FzUHJpY2U/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5FbmFibGVtZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzPzogc3RyaW5nOyAvLyBTb21lIGNoYWlucyBsaWtlIFNvbGFuYSByZXF1aXJlIHRva2VucyB0byBiZSBlbmFibGVkIGZvciBzcGVjaWZpYyBhZGRyZXNzLiBJZiBhYnNlbnQsIHdlIHdpbGwgZW5hYmxlIGl0IGZvciB0aGUgd2FsbGV0J3Mgcm9vdCBhZGRyZXNzXG59XG5cbmV4cG9ydCBlbnVtIFNoYXJlVHlwZSB7XG4gIFIgPSAnUicsXG4gIENvbW1pdG1lbnQgPSAnY29tbWl0bWVudCcsXG4gIEcgPSAnRycsXG4gIFMgPSAnUycsXG4gIEsgPSAnSycsXG4gIE11RGVsdGEgPSAnTXVEZWx0YScsXG4gIFBhaWxsaWVyTW9kdWx1cyA9ICdQYWlsbGllck1vZHVsdXMnLFxuICBNUEN2MlJvdW5kMSA9ICdNUEN2MlJvdW5kMScsXG4gIE1QQ3YyUm91bmQyID0gJ01QQ3YyUm91bmQyJyxcbiAgTVBDdjJSb3VuZDMgPSAnTVBDdjJSb3VuZDMnLFxufVxuXG5leHBvcnQgZW51bSBNUENUeXBlIHtcbiAgRUREU0EgPSAnZWRkc2EnLFxuICBFQ0RTQSA9ICdlY2RzYScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUGFpbGxpZXJNb2R1bHVzR2V0dGVyRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICB1c2VyUGFpbGxpZXJNb2R1bHVzOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0c3NQYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2U7XG4gICAgY2hhbGxlbmdlczoge1xuICAgICAgZW50ZXJwcmlzZUNoYWxsZW5nZTogRWNkc2FUeXBlcy5TZXJpYWxpemVkRWNkc2FDaGFsbGVuZ2VzO1xuICAgICAgYml0Z29DaGFsbGVuZ2U6IFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlO1xuICAgIH07XG4gICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlO1xuICB9KTogUHJvbWlzZTxUc3NFY2RzYVN0ZXAxUmV0dXJuTWVzc2FnZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGFTaGFyZUZyb21CaXRnbzogT21pdDxBU2hhcmUsICdudGlsZGUnIHwgJ2gxJyB8ICdoMic+O1xuICAgIGJpdGdvQ2hhbGxlbmdlOiBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZTtcbiAgICBlbmNyeXB0ZWRXU2hhcmU6IHN0cmluZztcbiAgfSk6IFByb21pc2U8VHNzRWNkc2FTdGVwMlJldHVybk1lc3NhZ2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVNTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0c3NQYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2U7XG4gICAgZFNoYXJlRnJvbUJpdGdvOiBEU2hhcmU7XG4gICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlO1xuICAgIGVuY3J5cHRlZE9TaGFyZTogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxTU2hhcmU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUNvbW1pdG1lbnRHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0OyBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgfSk6IFByb21pc2U8e1xuICAgIHJTaGFyZTogU2lnblNoYXJlO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgdXNlclRvQml0Z29SU2hhcmU6IFNpZ25TaGFyZTtcbiAgICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdCB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDE6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMVNlc3Npb246IHN0cmluZztcbiAgICB1c2VyR3BnUHViS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYml0Z29QdWJsaWNHcGdLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDI6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHNpZ25hdHVyZVNoYXJlUm91bmQzOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgfT47XG59XG5cbmV4cG9ydCBlbnVtIFRva2VuVHlwZSB7XG4gIEVSQzcyMSA9ICdFUkM3MjEnLFxuICBFUkMxMTU1ID0gJ0VSQzExNTUnLFxuICBFUkMyMCA9ICdFUkMyMCcsXG59XG5leHBvcnQgaW50ZXJmYWNlIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMge1xuICB0b2tlblR5cGU6IFRva2VuVHlwZTtcbiAgdG9rZW5RdWFudGl0eTogc3RyaW5nO1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICB0b2tlbklkPzogc3RyaW5nO1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xufVxuaW50ZXJmYWNlIEludGVudE9wdGlvbnNCYXNlIHtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBpbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNlcXVlbmNlSWQ/OiBzdHJpbmc7XG4gIGlzVHNzPzogYm9vbGVhbjtcbiAgY29tbWVudD86IHN0cmluZztcbiAgbWVtbz86IE1lbW87XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRPcHRpb25zRm9yTWVzc2FnZSBleHRlbmRzIEludGVudE9wdGlvbnNCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRPcHRpb25zRm9yVHlwZWREYXRhIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICB0eXBlZERhdGFSYXc6IHN0cmluZztcbiAgdHlwZWREYXRhRW5jb2RlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMgZXh0ZW5kcyBJbnRlbnRPcHRpb25zQmFzZSB7XG4gIHJlY2lwaWVudHM/OiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICAgIHRva2VuRGF0YT86IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXM7XG4gIH1bXTtcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICBlbmFibGVUb2tlbnM/OiBUb2tlbkVuYWJsZW1lbnRbXTtcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHNlbGZTZW5kPzogYm9vbGVhbjtcbiAgZmVlT3B0aW9ucz86IEZlZU9wdGlvbiB8IEVJUDE1NTlGZWVPcHRpb25zO1xuICBob3BQYXJhbXM/OiBIb3BQYXJhbXM7XG4gIGxvd0ZlZVR4aWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIHJlY2VpdmVBZGRyZXNzPzogc3RyaW5nO1xuICB1bnNwZW50cz86IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRSZWNpcGllbnQge1xuICBhZGRyZXNzOiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICB9O1xuICBhbW91bnQ6IHtcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHN5bWJvbDogc3RyaW5nO1xuICB9O1xuICBkYXRhPzogc3RyaW5nO1xuICB0b2tlbkRhdGE/OiBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zO1xufVxuaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudEJhc2Uge1xuICBpbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNlcXVlbmNlSWQ/OiBzdHJpbmc7XG4gIGNvbW1lbnQ/OiBzdHJpbmc7XG4gIG1lbW8/OiBzdHJpbmc7XG4gIGlzVHNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyBleHRlbmRzIFBvcHVsYXRlZEludGVudEJhc2Uge1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkOiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nIGV4dGVuZHMgUG9wdWxhdGVkSW50ZW50QmFzZSB7XG4gIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgbWVzc2FnZUVuY29kZWQ6IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudCBleHRlbmRzIFBvcHVsYXRlZEludGVudEJhc2Uge1xuICByZWNpcGllbnRzPzogSW50ZW50UmVjaXBpZW50W107XG4gIG5vbmNlPzogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG4gIHVuc3BlbnRzPzogc3RyaW5nW107XG4gIC8vIEVUSCAmIEVUSC1saWtlIHBhcmFtc1xuICBzZWxmU2VuZD86IGJvb2xlYW47XG4gIGZlZU9wdGlvbnM/OiBGZWVPcHRpb24gfCBFSVAxNTU5RmVlT3B0aW9ucztcbiAgaG9wUGFyYW1zPzogSG9wUGFyYW1zO1xuICB0eGlkPzogc3RyaW5nO1xuICByZWNlaXZlQWRkcmVzcz86IHN0cmluZztcbiAgY3VzdG9kaWFuVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUeFJlcXVlc3RTdGF0ZSA9XG4gIHwgJ3BlbmRpbmdDb21taXRtZW50J1xuICB8ICdwZW5kaW5nQXBwcm92YWwnXG4gIHwgJ2NhbmNlbGVkJ1xuICB8ICdyZWplY3RlZCdcbiAgfCAnaW5pdGlhbGl6ZWQnXG4gIHwgJ3BlbmRpbmdEZWxpdmVyeSdcbiAgfCAnZGVsaXZlcmVkJ1xuICB8ICdwZW5kaW5nVXNlclNpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJztcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0ZSA9XG4gIHwgJ2luaXRpYWxpemVkJ1xuICB8ICdwZW5kaW5nQ29tbWl0bWVudCdcbiAgfCAncGVuZGluZ1NpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJ1xuICB8ICdoZWxkJ1xuICB8ICdkZWxpdmVyZWQnXG4gIHwgJ2ludmFsaWRTaWduYXR1cmUnXG4gIHwgJ3JlamVjdGVkJztcblxuLy8gVHlwZSB1c2VkIHRvIHNpZ24gYSBUU1MgdHJhbnNhY3Rpb25cbmV4cG9ydCB0eXBlIFNpZ25hYmxlVHJhbnNhY3Rpb24gPSB7XG4gIC8vIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXRcbiAgc2VyaWFsaXplZFR4SGV4OiBzdHJpbmc7XG4gIC8vIHBvcnRpb24gb2YgYSB0cmFuc2FjdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgc2lnbmF0dXJlXG4gIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBVbnNpZ25lZFRyYW5zYWN0aW9uVHNzID0gU2lnbmFibGVUcmFuc2FjdGlvbiAmIHtcbiAgLy8gZGVyaXZhdGlvbiBwYXRoIG9mIHRoZSBzaWduZXJcbiAgZGVyaXZhdGlvblBhdGg6IHN0cmluZztcbiAgLy8gdHJhbnNhY3Rpb24gZmVlc1xuICBmZWVJbmZvPzoge1xuICAgIGZlZTogbnVtYmVyO1xuICAgIGZlZVN0cmluZzogc3RyaW5nO1xuICB9O1xuICBjb2luU3BlY2lmaWM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcGFyc2VkVHg/OiB1bmtub3duO1xufTtcblxuZXhwb3J0IHR5cGUgVW5zaWduZWRNZXNzYWdlVHNzID0ge1xuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBSZXF1ZXN0VHlwZSB7XG4gIHR4LFxuICBtZXNzYWdlLFxufVxuZXhwb3J0IHR5cGUgU2lnbmVkVHggPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR4OiBzdHJpbmc7XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0ID0ge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICB3YWxsZXRUeXBlOiBXYWxsZXRUeXBlO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGVudGVycHJpc2VJZD86IHN0cmluZztcbiAgc3RhdGU6IFR4UmVxdWVzdFN0YXRlO1xuICBkYXRlOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBpbnRlbnQ6IHVua25vd247IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIHNpZyBzY2hlbWUgc3BlY2lmaWMgaW50ZW50XG4gIHBlbmRpbmdBcHByb3ZhbElkPzogc3RyaW5nO1xuICBwb2xpY2llc0NoZWNrZWQ6IGJvb2xlYW47XG4gIHNpZ25hdHVyZVNoYXJlcz86IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIGNvbW1pdG1lbnRTaGFyZXM/OiBDb21taXRtZW50U2hhcmVSZWNvcmRbXTtcbiAgcGVuZGluZ1R4SGFzaGVzPzogc3RyaW5nW107XG4gIHR4SGFzaGVzPzogc3RyaW5nW107XG4gIHVuc2lnbmVkTWVzc2FnZXM/OiBVbnNpZ25lZE1lc3NhZ2VUc3NbXTtcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2xpdGUnIHZlcnNpb25cbiAgdW5zaWduZWRUeHM6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3NbXTsgLy8gU2hvdWxkIG92ZXJyaWRlIHdpdGggYmxvY2tjaGFpbiAvIHNpZyBzY2hlbWUgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2Z1bGwnIHZlcnNpb25cbiAgdHJhbnNhY3Rpb25zPzoge1xuICAgIHN0YXRlOiBUcmFuc2FjdGlvblN0YXRlO1xuICAgIHVuc2lnbmVkVHg6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIGJsb2NrY2hhaW4gLyBzaWcgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gICAgc2lnbmVkVHg/OiBTaWduZWRUeDtcbiAgICBjb21taXRtZW50U2hhcmVzPzogQ29tbWl0bWVudFNoYXJlUmVjb3JkW107XG4gIH1bXTtcbiAgbWVzc2FnZXM/OiB7XG4gICAgc3RhdGU6IFRyYW5zYWN0aW9uU3RhdGU7XG4gICAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICAgIGNvbWJpbmVTaWdTaGFyZT86IHN0cmluZztcbiAgICB0eEhhc2g/OiBzdHJpbmc7XG4gIH1bXTtcbiAgYXBpVmVyc2lvbj86IFR4UmVxdWVzdFZlcnNpb247XG4gIGxhdGVzdDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSA9IHtcbiAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPjtcbiAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW47XG4gIHBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUJpdEdvS2V5Y2hhaW5QYXJhbXNCYXNlID0gT21pdDxDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UsICdiaXRnb0tleWNoYWluJz47XG5cbmV4cG9ydCBlbnVtIFNpZ25hdHVyZVNoYXJlVHlwZSB7XG4gIFVTRVIgPSAndXNlcicsXG4gIEJBQ0tVUCA9ICdiYWNrdXAnLFxuICBCSVRHTyA9ICdiaXRnbycsXG59XG5cbmludGVyZmFjZSBTaGFyZUJhc2VSZWNvcmQge1xuICBmcm9tOiBTaWduYXR1cmVTaGFyZVR5cGU7XG4gIHRvOiBTaWduYXR1cmVTaGFyZVR5cGU7XG4gIHNoYXJlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlU2hhcmVSZWNvcmQgZXh0ZW5kcyBTaGFyZUJhc2VSZWNvcmQge1xuICB2c3NQcm9vZj86IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlUHJvb2Y/OiBzdHJpbmc7XG4gIHB1YmxpY1NoYXJlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBDb21taXRtZW50VHlwZSB7XG4gIENPTU1JVE1FTlQgPSAnY29tbWl0bWVudCcsXG4gIERFQ09NTUlUTUVOVCA9ICdkZWNvbW1pdG1lbnQnLFxufVxuZXhwb3J0IGludGVyZmFjZSBDb21taXRtZW50U2hhcmVSZWNvcmQgZXh0ZW5kcyBTaGFyZUJhc2VSZWNvcmQge1xuICB0eXBlOiBDb21taXRtZW50VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeGNoYW5nZUNvbW1pdG1lbnRSZXNwb25zZSB7XG4gIGNvbW1pdG1lbnRTaGFyZTogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xufVxuXG5leHBvcnQgZW51bSBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGUge1xuICBFTkNSWVBURURfU0lHTkVSX1NIQVJFID0gJ2VuY3J5cHRlZFNpZ25lclNoYXJlJyxcbiAgRU5DUllQVEVEX1JfU0hBUkUgPSAnZW5jcnlwdGVkUlNoYXJlJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgZXh0ZW5kcyBTaGFyZUJhc2VSZWNvcmQge1xuICB0eXBlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGU7XG59XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc1dpdGhQcnYgPSBUU1NQYXJhbXMgJiB7XG4gIHBydjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVFNTUGFyYW1zRm9yTWVzc2FnZVdpdGhQcnYgPSBUU1NQYXJhbXNGb3JNZXNzYWdlICYge1xuICBwcnY6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtcyA9IHtcbiAgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3Q7IC8vIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgVHhSZXF1ZXN0XG4gIHJlcUlkOiBJUmVxdWVzdFRyYWNlcjtcbiAgYXBpVmVyc2lvbj86IEFwaVZlcnNpb247XG59O1xuXG5leHBvcnQgdHlwZSBUU1NQYXJhbXNGb3JNZXNzYWdlID0gVFNTUGFyYW1zICYge1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkPzogc3RyaW5nO1xuICBidWZmZXJUb1NpZ246IEJ1ZmZlcjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQml0Z29IZWxkQmFja3VwS2V5U2hhcmUge1xuICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAga2V5U2hhcmVzOiBBcGlLZXlTaGFyZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2t1cEtleVNoYXJlIHtcbiAgYml0R29IZWxkS2V5U2hhcmVzPzogQml0Z29IZWxkQmFja3VwS2V5U2hhcmU7XG4gIHVzZXJIZWxkS2V5U2hhcmU/OiBLZXlTaGFyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaXRnb0dQR1B1YmxpY0tleSB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHVibGljS2V5OiBzdHJpbmc7XG4gIG1wY3YyUHVibGljS2V5Pzogc3RyaW5nO1xuICBlbnRlcnByaXNlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENUeCB7XG4gIHNlcmlhbGl6ZWRUeDogc3RyaW5nO1xuICBzY2FuSW5kZXg6IG51bWJlcjtcbiAgY29pbj86IHN0cmluZztcbiAgc2lnbmFibGVIZXg/OiBzdHJpbmc7XG4gIGRlcml2YXRpb25QYXRoPzogc3RyaW5nO1xuICBwYXJzZWRUeD86IFBhcnNlZFRyYW5zYWN0aW9uO1xuICBmZWVJbmZvPzoge1xuICAgIGZlZTogbnVtYmVyO1xuICAgIGZlZVN0cmluZzogc3RyaW5nO1xuICB9O1xuICBjb2luU3BlY2lmaWM/OiB7XG4gICAgZmlyc3RWYWxpZD86IG51bWJlcjtcbiAgICBtYXhEdXJhdGlvbj86IG51bWJlcjtcbiAgICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAgICBsYXN0U2NhbkluZGV4PzogbnVtYmVyO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1JlY292ZXJ5T3B0aW9ucyB7XG4gIHVzZXJLZXk/OiBzdHJpbmc7IC8vIEJveCBBXG4gIGJhY2t1cEtleT86IHN0cmluZzsgLy8gQm94IEJcbiAgYml0Z29LZXk6IHN0cmluZzsgLy8gQm94IEMgLSB0aGlzIGlzIGJpdGdvJ3MgeHB1YiBhbmQgd2lsbCBiZSB1c2VkIHRvIGRlcml2ZSB0aGVpciByb290IGFkZHJlc3NcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICBzZWVkPzogc3RyaW5nO1xuICBpbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENDb25zb2xpZGF0aW9uUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleT86IHN0cmluZzsgLy8gQm94IEFcbiAgYmFja3VwS2V5Pzogc3RyaW5nOyAvLyBCb3ggQlxuICBiaXRnb0tleTogc3RyaW5nOyAvLyBCb3ggQ1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICBzdGFydGluZ1NjYW5JbmRleD86IG51bWJlcjsgLy8gZGVmYXVsdCB0byAxIChpbmNsdXNpdmUpXG4gIGVuZGluZ1NjYW5JbmRleD86IG51bWJlcjsgLy8gZGVmYXVsdCB0byBzdGFydGluZ1NjYW5JbmRleCArIDIwIChleGNsdXNpdmUpXG4gIHNlZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDU3dlZXBUeHMge1xuICB0eFJlcXVlc3RzOiBSZWNvdmVyeVR4UmVxdWVzdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY292ZXJ5VHhSZXF1ZXN0IHtcbiAgd2FsbGV0Q29pbjogc3RyaW5nO1xuICB0cmFuc2FjdGlvbnM6IE1QQ1Vuc2lnbmVkVHhbXSB8IE92Y1RyYW5zYWN0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDVW5zaWduZWRUeCB7XG4gIHVuc2lnbmVkVHg6IE1QQ1R4O1xuICBzaWduYXR1cmVTaGFyZXM6IFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1N3ZWVwUmVjb3ZlcnlPcHRpb25zIHtcbiAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZXNbXTtcbn1cblxuaW50ZXJmYWNlIFNpZ25hdHVyZVNoYXJlcyB7XG4gIHR4UmVxdWVzdDogUmVjb3ZlcnlUeFJlcXVlc3Q7XG4gIHRzc1ZlcnNpb246IHN0cmluZztcbiAgb3ZjOiBPdmNbXTtcbn1cblxuaW50ZXJmYWNlIE92Y1RyYW5zYWN0aW9uIHtcbiAgdW5zaWduZWRUeDogTVBDVHg7XG4gIHNpZ25hdHVyZVNoYXJlczogU2lnbmF0dXJlU2hhcmVSZWNvcmRbXTtcbiAgc2lnbmF0dXJlU2hhcmU6IFNpZ25hdHVyZVNoYXJlO1xufVxuXG5pbnRlcmZhY2UgU2lnbmF0dXJlU2hhcmUge1xuICBmcm9tOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmc7XG4gIHNoYXJlOiBzdHJpbmc7XG4gIHB1YmxpY1NoYXJlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBPdmMge1xuICBlZGRzYVNpZ25hdHVyZTogU2lnbmF0dXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1R4cyB7XG4gIHRyYW5zYWN0aW9uczogTVBDVHhbXTtcbiAgbGFzdFNjYW5JbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92Y0lucHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92Y091dHB1dCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWVTdHJpbmc6IHN0cmluZztcbiAgY29pbk5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEJhY2t1cEdwZ0tleSA9IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4gfCBLZXk7XG5cbi8qKlxuICogQ29tbW9uIEludGVyZmFjZSBmb3IgaW1wbGVtZW50aW5nIHNpZ25hdHVyZSBzY2hlbWUgc3BlY2lmaWNcbiAqIHV0aWwgZnVuY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRzc1V0aWxzPEtleVNoYXJlID0gRUREU0EuS2V5U2hhcmU+IHtcbiAgY3JlYXRlQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT47XG4gIGZpbmFsaXplQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICBjb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgZ3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGJpdGdvUHVibGljR3BnS2V5PzogS2V5XG4gICk6IFByb21pc2U8Qml0Z29IZWxkQmFja3VwS2V5U2hhcmU+O1xuICBjcmVhdGVVc2VyS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQmFja3VwS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQml0Z29LZXljaGFpbihwYXJhbXM6IENyZWF0ZUJpdEdvS2V5Y2hhaW5QYXJhbXNCYXNlKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gICAgaXNUaGlyZFBhcnR5QmFja3VwPzogYm9vbGVhbjtcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD47XG4gIHNpZ25UeFJlcXVlc3QocGFyYW1zOiB7IHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0OyBwcnY6IHN0cmluZzsgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyIH0pOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIHNpZ25UeFJlcXVlc3RGb3JNZXNzYWdlKHBhcmFtczogVFNTUGFyYW1zKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduRWRkc2FUc3NVc2luZ0V4dGVybmFsU2lnbmVyKFxuICAgIHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0LFxuICAgIGV4dGVybmFsU2lnbmVyQ29tbWl0bWVudEdlbmVyYXRvcjogQ3VzdG9tQ29tbWl0bWVudEdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lclJTaGFyZUdlbmVyYXRvcjogQ3VzdG9tUlNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyR1NoYXJlR2VuZXJhdG9yOiBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb25cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduRWNkc2FUc3NVc2luZ0V4dGVybmFsU2lnbmVyKFxuICAgIHBhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gICAgZXh0ZXJuYWxTaWduZXJQYWlsbGllck1vZHVsdXNHZXR0ZXI6IEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyS1NoYXJlR2VuZXJhdG9yOiBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJNdURlbHRhU2hhcmVHZW5lcmF0b3I6IEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lclNTaGFyZUdlbmVyYXRvcjogQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgY3JlYXRlQ29tbWl0bWVudFNoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7IHBydjogc3RyaW5nOyB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmcgfSk6IFByb21pc2U8e1xuICAgIHVzZXJUb0JpdGdvQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0+O1xuICBjcmVhdGVSU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPHsgclNoYXJlOiBTaWduU2hhcmUgfT47XG4gIGNyZWF0ZUdTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgYml0Z29Ub1VzZXJSU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIHVzZXJUb0JpdGdvUlNoYXJlOiBTaWduU2hhcmU7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT47XG4gIHByZWJ1aWxkVHhXaXRoSW50ZW50KFxuICAgIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICAgIGFwaVZlcnNpb24/OiBUeFJlcXVlc3RWZXJzaW9uLFxuICAgIHByZXZpZXc/OiBib29sZWFuXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkW10+O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzZW5kVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIHJlY3JlYXRlVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcsIGRlY3J5cHRlZFBydjogc3RyaW5nLCByZXFJZDogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIGdldFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzdXBwb3J0ZWRUeFJlcXVlc3RWZXJzaW9ucygpOiBUeFJlcXVlc3RWZXJzaW9uW107XG59XG4iXX0=
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUNBLElBQVksU0FXWDtBQVhELFdBQVksU0FBUztJQUNuQixvQkFBTyxDQUFBO0lBQ1Asc0NBQXlCLENBQUE7SUFDekIsb0JBQU8sQ0FBQTtJQUNQLG9CQUFPLENBQUE7SUFDUCxvQkFBTyxDQUFBO0lBQ1AsZ0NBQW1CLENBQUE7SUFDbkIsZ0RBQW1DLENBQUE7SUFDbkMsd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVhXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBV3BCO0FBRUQsSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2pCLDBCQUFlLENBQUE7SUFDZiwwQkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFHbEI7QUE0RkQsSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBSXBCO0FBOElELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQix5Q0FBRSxDQUFBO0lBQ0YsbURBQU8sQ0FBQTtBQUNULENBQUMsRUFIVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUd0QjtBQTBERCxJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsbUNBQWEsQ0FBQTtJQUNiLHVDQUFpQixDQUFBO0lBQ2pCLHFDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBSTdCO0FBY0QsSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLDJDQUF5QixDQUFBO0lBQ3pCLCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUd6QjtBQVNELElBQVksd0JBR1g7QUFIRCxXQUFZLHdCQUF3QjtJQUNsQywyRUFBK0MsQ0FBQTtJQUMvQyxpRUFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBSFcsd0JBQXdCLEdBQXhCLGdDQUF3QixLQUF4QixnQ0FBd0IsUUFHbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XG5pbXBvcnQgeyBLZXljaGFpbnNUcmlwbGV0LCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEFwaUtleVNoYXJlLCBLZXljaGFpbiB9IGZyb20gJy4uLy4uL2tleWNoYWluJztcbmltcG9ydCB7IEFwaVZlcnNpb24sIE1lbW8sIFdhbGxldFR5cGUgfSBmcm9tICcuLi8uLi93YWxsZXQnO1xuaW1wb3J0IHsgRUREU0EsIEdTaGFyZSwgU2lnblNoYXJlLCBTaWduYXR1cmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IEtleVNoYXJlIH0gZnJvbSAnLi9lY2RzYSc7XG5pbXBvcnQgeyBFY2RzYVR5cGVzIH0gZnJvbSAnQGJpdGdvL3Nkay1saWItbXBjJztcbmltcG9ydCB7IFRzc0VjZHNhU3RlcDFSZXR1cm5NZXNzYWdlLCBUc3NFY2RzYVN0ZXAyUmV0dXJuTWVzc2FnZSwgVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi90c3MvdHlwZXMnO1xuaW1wb3J0IHsgQVNoYXJlLCBEU2hhcmUsIFNTaGFyZSB9IGZyb20gJy4uLy4uL3Rzcy9lY2RzYS90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcgfCAnbGl0ZSc7XG5leHBvcnQgaW50ZXJmYWNlIEhvcFBhcmFtcyB7XG4gIHBheW1lbnRJZD86IHN0cmluZztcbiAgdXNlclJlcVNpZz86IHN0cmluZztcbiAgZ2FzUHJpY2VNYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRUlQMTU1OUZlZU9wdGlvbnMge1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgbWF4RmVlUGVyR2FzPzogbnVtYmVyO1xuICBtYXhQcmlvcml0eUZlZVBlckdhcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWVPcHRpb24ge1xuICB1bml0PzogJ2Jhc2VVbml0JyB8ICdjcHUnIHwgJ3JhbSc7XG4gIGZvcm11bGE/OiAnZml4ZWQnIHwgJ2ZlZVJhdGUnIHwgJ3BlcktCJyB8ICdjdXN0b20nIHwgJ3BlclZLQic7XG4gIGZlZVR5cGU/OiAnYmFzZScgfCAnbWF4JyB8ICd0aXAnO1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgZ2FzUHJpY2U/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5FbmFibGVtZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzPzogc3RyaW5nOyAvLyBTb21lIGNoYWlucyBsaWtlIFNvbGFuYSByZXF1aXJlIHRva2VucyB0byBiZSBlbmFibGVkIGZvciBzcGVjaWZpYyBhZGRyZXNzLiBJZiBhYnNlbnQsIHdlIHdpbGwgZW5hYmxlIGl0IGZvciB0aGUgd2FsbGV0J3Mgcm9vdCBhZGRyZXNzXG59XG5cbmV4cG9ydCBlbnVtIFNoYXJlVHlwZSB7XG4gIFIgPSAnUicsXG4gIENvbW1pdG1lbnQgPSAnY29tbWl0bWVudCcsXG4gIEcgPSAnRycsXG4gIFMgPSAnUycsXG4gIEsgPSAnSycsXG4gIE11RGVsdGEgPSAnTXVEZWx0YScsXG4gIFBhaWxsaWVyTW9kdWx1cyA9ICdQYWlsbGllck1vZHVsdXMnLFxuICBNUEN2MlJvdW5kMSA9ICdNUEN2MlJvdW5kMScsXG4gIE1QQ3YyUm91bmQyID0gJ01QQ3YyUm91bmQyJyxcbiAgTVBDdjJSb3VuZDMgPSAnTVBDdjJSb3VuZDMnLFxufVxuXG5leHBvcnQgZW51bSBNUENUeXBlIHtcbiAgRUREU0EgPSAnZWRkc2EnLFxuICBFQ0RTQSA9ICdlY2RzYScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUGFpbGxpZXJNb2R1bHVzR2V0dGVyRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICB1c2VyUGFpbGxpZXJNb2R1bHVzOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0c3NQYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2U7XG4gICAgY2hhbGxlbmdlczoge1xuICAgICAgZW50ZXJwcmlzZUNoYWxsZW5nZTogRWNkc2FUeXBlcy5TZXJpYWxpemVkRWNkc2FDaGFsbGVuZ2VzO1xuICAgICAgYml0Z29DaGFsbGVuZ2U6IFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlO1xuICAgIH07XG4gICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlO1xuICB9KTogUHJvbWlzZTxUc3NFY2RzYVN0ZXAxUmV0dXJuTWVzc2FnZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGFTaGFyZUZyb21CaXRnbzogT21pdDxBU2hhcmUsICdudGlsZGUnIHwgJ2gxJyB8ICdoMic+O1xuICAgIGJpdGdvQ2hhbGxlbmdlOiBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZTtcbiAgICBlbmNyeXB0ZWRXU2hhcmU6IHN0cmluZztcbiAgfSk6IFByb21pc2U8VHNzRWNkc2FTdGVwMlJldHVybk1lc3NhZ2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVNTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0c3NQYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2U7XG4gICAgZFNoYXJlRnJvbUJpdGdvOiBEU2hhcmU7XG4gICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlO1xuICAgIGVuY3J5cHRlZE9TaGFyZTogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxTU2hhcmU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUNvbW1pdG1lbnRHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0OyBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgfSk6IFByb21pc2U8e1xuICAgIHJTaGFyZTogU2lnblNoYXJlO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgdXNlclRvQml0Z29SU2hhcmU6IFNpZ25TaGFyZTtcbiAgICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdCB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDE6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMVNlc3Npb246IHN0cmluZztcbiAgICB1c2VyR3BnUHViS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYml0Z29QdWJsaWNHcGdLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDI6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHNpZ25hdHVyZVNoYXJlUm91bmQzOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgfT47XG59XG5cbmV4cG9ydCBlbnVtIFRva2VuVHlwZSB7XG4gIEVSQzcyMSA9ICdFUkM3MjEnLFxuICBFUkMxMTU1ID0gJ0VSQzExNTUnLFxuICBFUkMyMCA9ICdFUkMyMCcsXG59XG5leHBvcnQgaW50ZXJmYWNlIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMge1xuICB0b2tlblR5cGU6IFRva2VuVHlwZTtcbiAgdG9rZW5RdWFudGl0eTogc3RyaW5nO1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICB0b2tlbklkPzogc3RyaW5nO1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xufVxuaW50ZXJmYWNlIEludGVudE9wdGlvbnNCYXNlIHtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBpbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNlcXVlbmNlSWQ/OiBzdHJpbmc7XG4gIGlzVHNzPzogYm9vbGVhbjtcbiAgY29tbWVudD86IHN0cmluZztcbiAgbWVtbz86IE1lbW87XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRPcHRpb25zRm9yTWVzc2FnZSBleHRlbmRzIEludGVudE9wdGlvbnNCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRPcHRpb25zRm9yVHlwZWREYXRhIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICB0eXBlZERhdGFSYXc6IHN0cmluZztcbiAgdHlwZWREYXRhRW5jb2RlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMgZXh0ZW5kcyBJbnRlbnRPcHRpb25zQmFzZSB7XG4gIHJlY2lwaWVudHM/OiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICAgIHRva2VuRGF0YT86IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXM7XG4gIH1bXTtcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICBlbmFibGVUb2tlbnM/OiBUb2tlbkVuYWJsZW1lbnRbXTtcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHNlbGZTZW5kPzogYm9vbGVhbjtcbiAgZmVlT3B0aW9ucz86IEZlZU9wdGlvbiB8IEVJUDE1NTlGZWVPcHRpb25zO1xuICBob3BQYXJhbXM/OiBIb3BQYXJhbXM7XG4gIGxvd0ZlZVR4aWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIHJlY2VpdmVBZGRyZXNzPzogc3RyaW5nO1xuICB1bnNwZW50cz86IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRSZWNpcGllbnQge1xuICBhZGRyZXNzOiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICB9O1xuICBhbW91bnQ6IHtcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHN5bWJvbDogc3RyaW5nO1xuICB9O1xuICBkYXRhPzogc3RyaW5nO1xuICB0b2tlbkRhdGE/OiBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zO1xufVxuaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudEJhc2Uge1xuICBpbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNlcXVlbmNlSWQ/OiBzdHJpbmc7XG4gIGNvbW1lbnQ/OiBzdHJpbmc7XG4gIG1lbW8/OiBzdHJpbmc7XG4gIGlzVHNzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyBleHRlbmRzIFBvcHVsYXRlZEludGVudEJhc2Uge1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkOiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nIGV4dGVuZHMgUG9wdWxhdGVkSW50ZW50QmFzZSB7XG4gIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgbWVzc2FnZUVuY29kZWQ6IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudCBleHRlbmRzIFBvcHVsYXRlZEludGVudEJhc2Uge1xuICByZWNpcGllbnRzPzogSW50ZW50UmVjaXBpZW50W107XG4gIG5vbmNlPzogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG4gIHVuc3BlbnRzPzogc3RyaW5nW107XG4gIC8vIEVUSCAmIEVUSC1saWtlIHBhcmFtc1xuICBzZWxmU2VuZD86IGJvb2xlYW47XG4gIGZlZU9wdGlvbnM/OiBGZWVPcHRpb24gfCBFSVAxNTU5RmVlT3B0aW9ucztcbiAgaG9wUGFyYW1zPzogSG9wUGFyYW1zO1xuICB0eGlkPzogc3RyaW5nO1xuICByZWNlaXZlQWRkcmVzcz86IHN0cmluZztcbiAgY3VzdG9kaWFuVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUeFJlcXVlc3RTdGF0ZSA9XG4gIHwgJ3BlbmRpbmdDb21taXRtZW50J1xuICB8ICdwZW5kaW5nQXBwcm92YWwnXG4gIHwgJ2NhbmNlbGVkJ1xuICB8ICdyZWplY3RlZCdcbiAgfCAnaW5pdGlhbGl6ZWQnXG4gIHwgJ3BlbmRpbmdEZWxpdmVyeSdcbiAgfCAnZGVsaXZlcmVkJ1xuICB8ICdwZW5kaW5nVXNlclNpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJztcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0ZSA9XG4gIHwgJ2luaXRpYWxpemVkJ1xuICB8ICdwZW5kaW5nQ29tbWl0bWVudCdcbiAgfCAncGVuZGluZ1NpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJ1xuICB8ICdoZWxkJ1xuICB8ICdkZWxpdmVyZWQnXG4gIHwgJ2ludmFsaWRTaWduYXR1cmUnXG4gIHwgJ3JlamVjdGVkJztcblxuLy8gVHlwZSB1c2VkIHRvIHNpZ24gYSBUU1MgdHJhbnNhY3Rpb25cbmV4cG9ydCB0eXBlIFNpZ25hYmxlVHJhbnNhY3Rpb24gPSB7XG4gIC8vIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXRcbiAgc2VyaWFsaXplZFR4SGV4OiBzdHJpbmc7XG4gIC8vIHBvcnRpb24gb2YgYSB0cmFuc2FjdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgc2lnbmF0dXJlXG4gIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBVbnNpZ25lZFRyYW5zYWN0aW9uVHNzID0gU2lnbmFibGVUcmFuc2FjdGlvbiAmIHtcbiAgLy8gZGVyaXZhdGlvbiBwYXRoIG9mIHRoZSBzaWduZXJcbiAgZGVyaXZhdGlvblBhdGg6IHN0cmluZztcbiAgLy8gdHJhbnNhY3Rpb24gZmVlc1xuICBmZWVJbmZvPzoge1xuICAgIGZlZTogbnVtYmVyO1xuICAgIGZlZVN0cmluZzogc3RyaW5nO1xuICB9O1xuICBjb2luU3BlY2lmaWM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcGFyc2VkVHg/OiB1bmtub3duO1xufTtcblxuZXhwb3J0IHR5cGUgVW5zaWduZWRNZXNzYWdlVHNzID0ge1xuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBSZXF1ZXN0VHlwZSB7XG4gIHR4LFxuICBtZXNzYWdlLFxufVxuZXhwb3J0IHR5cGUgU2lnbmVkVHggPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR4OiBzdHJpbmc7XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0ID0ge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICB3YWxsZXRUeXBlOiBXYWxsZXRUeXBlO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGVudGVycHJpc2VJZD86IHN0cmluZztcbiAgc3RhdGU6IFR4UmVxdWVzdFN0YXRlO1xuICBkYXRlOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBpbnRlbnQ6IHVua25vd247IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIHNpZyBzY2hlbWUgc3BlY2lmaWMgaW50ZW50XG4gIHBlbmRpbmdBcHByb3ZhbElkPzogc3RyaW5nO1xuICBwb2xpY2llc0NoZWNrZWQ6IGJvb2xlYW47XG4gIHNpZ25hdHVyZVNoYXJlcz86IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIGNvbW1pdG1lbnRTaGFyZXM/OiBDb21taXRtZW50U2hhcmVSZWNvcmRbXTtcbiAgcGVuZGluZ1R4SGFzaGVzPzogc3RyaW5nW107XG4gIHR4SGFzaGVzPzogc3RyaW5nW107XG4gIHVuc2lnbmVkTWVzc2FnZXM/OiBVbnNpZ25lZE1lc3NhZ2VUc3NbXTtcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2xpdGUnIHZlcnNpb25cbiAgdW5zaWduZWRUeHM6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3NbXTsgLy8gU2hvdWxkIG92ZXJyaWRlIHdpdGggYmxvY2tjaGFpbiAvIHNpZyBzY2hlbWUgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2Z1bGwnIHZlcnNpb25cbiAgdHJhbnNhY3Rpb25zPzoge1xuICAgIHN0YXRlOiBUcmFuc2FjdGlvblN0YXRlO1xuICAgIHVuc2lnbmVkVHg6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIGJsb2NrY2hhaW4gLyBzaWcgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gICAgc2lnbmVkVHg/OiBTaWduZWRUeDtcbiAgICBjb21taXRtZW50U2hhcmVzPzogQ29tbWl0bWVudFNoYXJlUmVjb3JkW107XG4gIH1bXTtcbiAgbWVzc2FnZXM/OiB7XG4gICAgc3RhdGU6IFRyYW5zYWN0aW9uU3RhdGU7XG4gICAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICAgIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICAgIGNvbWJpbmVTaWdTaGFyZT86IHN0cmluZztcbiAgICB0eEhhc2g/OiBzdHJpbmc7XG4gIH1bXTtcbiAgYXBpVmVyc2lvbj86IFR4UmVxdWVzdFZlcnNpb247XG4gIGxhdGVzdDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSA9IHtcbiAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPjtcbiAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW47XG4gIHBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIGVudGVycHJpc2U/OiBzdHJpbmc7XG4gIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZUJpdEdvS2V5Y2hhaW5QYXJhbXNCYXNlID0gT21pdDxDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UsICdiaXRnb0tleWNoYWluJz47XG5cbmV4cG9ydCBlbnVtIFNpZ25hdHVyZVNoYXJlVHlwZSB7XG4gIFVTRVIgPSAndXNlcicsXG4gIEJBQ0tVUCA9ICdiYWNrdXAnLFxuICBCSVRHTyA9ICdiaXRnbycsXG59XG5cbmludGVyZmFjZSBTaGFyZUJhc2VSZWNvcmQge1xuICBmcm9tOiBTaWduYXR1cmVTaGFyZVR5cGU7XG4gIHRvOiBTaWduYXR1cmVTaGFyZVR5cGU7XG4gIHNoYXJlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlU2hhcmVSZWNvcmQgZXh0ZW5kcyBTaGFyZUJhc2VSZWNvcmQge1xuICB2c3NQcm9vZj86IHN0cmluZztcbiAgcHJpdmF0ZVNoYXJlUHJvb2Y/OiBzdHJpbmc7XG4gIHB1YmxpY1NoYXJlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBDb21taXRtZW50VHlwZSB7XG4gIENPTU1JVE1FTlQgPSAnY29tbWl0bWVudCcsXG4gIERFQ09NTUlUTUVOVCA9ICdkZWNvbW1pdG1lbnQnLFxufVxuZXhwb3J0IGludGVyZmFjZSBDb21taXRtZW50U2hhcmVSZWNvcmQgZXh0ZW5kcyBTaGFyZUJhc2VSZWNvcmQge1xuICB0eXBlOiBDb21taXRtZW50VHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeGNoYW5nZUNvbW1pdG1lbnRSZXNwb25zZSB7XG4gIGNvbW1pdG1lbnRTaGFyZTogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xufVxuXG5leHBvcnQgZW51bSBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGUge1xuICBFTkNSWVBURURfU0lHTkVSX1NIQVJFID0gJ2VuY3J5cHRlZFNpZ25lclNoYXJlJyxcbiAgRU5DUllQVEVEX1JfU0hBUkUgPSAnZW5jcnlwdGVkUlNoYXJlJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgZXh0ZW5kcyBTaGFyZUJhc2VSZWNvcmQge1xuICB0eXBlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGU7XG59XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc1dpdGhQcnYgPSBUU1NQYXJhbXMgJiB7XG4gIHBydjogc3RyaW5nO1xuICBtcGN2MlBhcnR5SWQ/OiAwIHwgMTtcbn07XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc0Zvck1lc3NhZ2VXaXRoUHJ2ID0gVFNTUGFyYW1zRm9yTWVzc2FnZSAmIHtcbiAgcHJ2OiBzdHJpbmc7XG4gIG1wY3YyUGFydHlJZD86IDAgfCAxO1xufTtcblxuZXhwb3J0IHR5cGUgVFNTUGFyYW1zID0ge1xuICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdDsgLy8gY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBUeFJlcXVlc3RcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBhcGlWZXJzaW9uPzogQXBpVmVyc2lvbjtcbn07XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc0Zvck1lc3NhZ2UgPSBUU1NQYXJhbXMgJiB7XG4gIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgbWVzc2FnZUVuY29kZWQ/OiBzdHJpbmc7XG4gIGJ1ZmZlclRvU2lnbjogQnVmZmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSB7XG4gIGNvbW1vbktleWNoYWluPzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBrZXlTaGFyZXM6IEFwaUtleVNoYXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwS2V5U2hhcmUge1xuICBiaXRHb0hlbGRLZXlTaGFyZXM/OiBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZTtcbiAgdXNlckhlbGRLZXlTaGFyZT86IEtleVNoYXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGdvR1BHUHVibGljS2V5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgbXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGVudGVycHJpc2VJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1R4IHtcbiAgc2VyaWFsaXplZFR4OiBzdHJpbmc7XG4gIHNjYW5JbmRleDogbnVtYmVyO1xuICBjb2luPzogc3RyaW5nO1xuICBzaWduYWJsZUhleD86IHN0cmluZztcbiAgZGVyaXZhdGlvblBhdGg/OiBzdHJpbmc7XG4gIHBhcnNlZFR4PzogUGFyc2VkVHJhbnNhY3Rpb247XG4gIGZlZUluZm8/OiB7XG4gICAgZmVlOiBudW1iZXI7XG4gICAgZmVlU3RyaW5nOiBzdHJpbmc7XG4gIH07XG4gIGNvaW5TcGVjaWZpYz86IHtcbiAgICBmaXJzdFZhbGlkPzogbnVtYmVyO1xuICAgIG1heER1cmF0aW9uPzogbnVtYmVyO1xuICAgIGNvbW1vbktleWNoYWluPzogc3RyaW5nO1xuICAgIGxhc3RTY2FuSW5kZXg/OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleT86IHN0cmluZzsgLy8gQm94IEFcbiAgYmFja3VwS2V5Pzogc3RyaW5nOyAvLyBCb3ggQlxuICBiaXRnb0tleTogc3RyaW5nOyAvLyBCb3ggQyAtIHRoaXMgaXMgYml0Z28ncyB4cHViIGFuZCB3aWxsIGJlIHVzZWQgdG8gZGVyaXZlIHRoZWlyIHJvb3QgYWRkcmVzc1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHNlZWQ/OiBzdHJpbmc7XG4gIGluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ0NvbnNvbGlkYXRpb25SZWNvdmVyeU9wdGlvbnMge1xuICB1c2VyS2V5Pzogc3RyaW5nOyAvLyBCb3ggQVxuICBiYWNrdXBLZXk/OiBzdHJpbmc7IC8vIEJveCBCXG4gIGJpdGdvS2V5OiBzdHJpbmc7IC8vIEJveCBDXG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHN0YXJ0aW5nU2NhbkluZGV4PzogbnVtYmVyOyAvLyBkZWZhdWx0IHRvIDEgKGluY2x1c2l2ZSlcbiAgZW5kaW5nU2NhbkluZGV4PzogbnVtYmVyOyAvLyBkZWZhdWx0IHRvIHN0YXJ0aW5nU2NhbkluZGV4ICsgMjAgKGV4Y2x1c2l2ZSlcbiAgc2VlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENTd2VlcFR4cyB7XG4gIHR4UmVxdWVzdHM6IFJlY292ZXJ5VHhSZXF1ZXN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlUeFJlcXVlc3Qge1xuICB3YWxsZXRDb2luOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uczogTVBDVW5zaWduZWRUeFtdIHwgT3ZjVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENVbnNpZ25lZFR4IHtcbiAgdW5zaWduZWRUeDogTVBDVHg7XG4gIHNpZ25hdHVyZVNoYXJlczogW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDU3dlZXBSZWNvdmVyeU9wdGlvbnMge1xuICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlc1tdO1xufVxuXG5pbnRlcmZhY2UgU2lnbmF0dXJlU2hhcmVzIHtcbiAgdHhSZXF1ZXN0OiBSZWNvdmVyeVR4UmVxdWVzdDtcbiAgdHNzVmVyc2lvbjogc3RyaW5nO1xuICBvdmM6IE92Y1tdO1xufVxuXG5pbnRlcmZhY2UgT3ZjVHJhbnNhY3Rpb24ge1xuICB1bnNpZ25lZFR4OiBNUENUeDtcbiAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmU7XG59XG5cbmludGVyZmFjZSBTaWduYXR1cmVTaGFyZSB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgc2hhcmU6IHN0cmluZztcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE92YyB7XG4gIGVkZHNhU2lnbmF0dXJlOiBTaWduYXR1cmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDVHhzIHtcbiAgdHJhbnNhY3Rpb25zOiBNUENUeFtdO1xuICBsYXN0U2NhbkluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZjSW5wdXQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIHZhbHVlU3RyaW5nOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZjT3V0cHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xuICBjb2luTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQmFja3VwR3BnS2V5ID0gU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPiB8IEtleTtcblxuLyoqXG4gKiBDb21tb24gSW50ZXJmYWNlIGZvciBpbXBsZW1lbnRpbmcgc2lnbmF0dXJlIHNjaGVtZSBzcGVjaWZpY1xuICogdXRpbCBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVHNzVXRpbHM8S2V5U2hhcmUgPSBFRERTQS5LZXlTaGFyZT4ge1xuICBjcmVhdGVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGVudGVycHJpc2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPEJpdGdvSGVsZEJhY2t1cEtleVNoYXJlPjtcbiAgZmluYWxpemVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIGNvbW1vbktleWNoYWluOiBzdHJpbmcsXG4gICAgdXNlcktleVNoYXJlOiBLZXlTaGFyZSxcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBncGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYml0Z29QdWJsaWNHcGdLZXk/OiBLZXlcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT47XG4gIGNyZWF0ZVVzZXJLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCYWNrdXBLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCaXRnb0tleWNoYWluKHBhcmFtczogQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgICBpc1RoaXJkUGFydHlCYWNrdXA/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PjtcbiAgc2lnblR4UmVxdWVzdChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3Q7IHBydjogc3RyaW5nOyByZXFJZDogSVJlcXVlc3RUcmFjZXIgfSk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgc2lnblR4UmVxdWVzdEZvck1lc3NhZ2UocGFyYW1zOiBUU1NQYXJhbXMpOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIHNpZ25FZGRzYVRzc1VzaW5nRXh0ZXJuYWxTaWduZXIoXG4gICAgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3QsXG4gICAgZXh0ZXJuYWxTaWduZXJDb21taXRtZW50R2VuZXJhdG9yOiBDdXN0b21Db21taXRtZW50R2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyUlNoYXJlR2VuZXJhdG9yOiBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJHU2hhcmVHZW5lcmF0b3I6IEN1c3RvbUdTaGFyZUdlbmVyYXRpbmdGdW5jdGlvblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIHNpZ25FY2RzYVRzc1VzaW5nRXh0ZXJuYWxTaWduZXIoXG4gICAgcGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlLFxuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgICBleHRlcm5hbFNpZ25lclBhaWxsaWVyTW9kdWx1c0dldHRlcjogQ3VzdG9tUGFpbGxpZXJNb2R1bHVzR2V0dGVyRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJLU2hhcmVHZW5lcmF0b3I6IEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lck11RGVsdGFTaGFyZUdlbmVyYXRvcjogQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyU1NoYXJlR2VuZXJhdG9yOiBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb25cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBjcmVhdGVDb21taXRtZW50U2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdDsgcHJ2OiBzdHJpbmc7IHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyB9KTogUHJvbWlzZTx7XG4gICAgdXNlclRvQml0Z29Db21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkU2lnbmVyU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFVzZXJUb0JpdGdvUlNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgfT47XG4gIGNyZWF0ZVJTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFVzZXJUb0JpdGdvUlNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgfSk6IFByb21pc2U8eyByU2hhcmU6IFNpZ25TaGFyZSB9PjtcbiAgY3JlYXRlR1NoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBwcnY6IHN0cmluZztcbiAgICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgdXNlclRvQml0Z29SU2hhcmU6IFNpZ25TaGFyZTtcbiAgICBiaXRnb1RvVXNlckNvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgfSk6IFByb21pc2U8R1NoYXJlPjtcbiAgcHJlYnVpbGRUeFdpdGhJbnRlbnQoXG4gICAgcGFyYW1zOiBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMsXG4gICAgYXBpVmVyc2lvbj86IFR4UmVxdWVzdFZlcnNpb24sXG4gICAgcHJldmlldz86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBkZWxldGVTaWduYXR1cmVTaGFyZXModHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmRbXT47XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHNlbmRUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgcmVjcmVhdGVUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZywgZGVjcnlwdGVkUHJ2OiBzdHJpbmcsIHJlcUlkOiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgZ2V0VHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIHN1cHBvcnRlZFR4UmVxdWVzdFZlcnNpb25zKCk6IFR4UmVxdWVzdFZlcnNpb25bXTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { DklsTypes } from '@bitgo/sdk-lib-mpc';
|
|
2
|
+
export declare enum KeyCreationMPCv2States {
|
|
3
|
+
WaitingForOVC1Round1Data = -1,
|
|
4
|
+
WaitingForOVC2Round1Data = 0,
|
|
5
|
+
WaitingForBitgoRound1Data = 1,
|
|
6
|
+
WaitingForOVC1Round2Data = 2,
|
|
7
|
+
WaitingForOVC2Round2Data = 3,
|
|
8
|
+
WaitingForBitgoRound2Data = 4,
|
|
9
|
+
WaitingForOVC1Round3aData = 5,
|
|
10
|
+
WaitingForOVC2Round3Data = 6,
|
|
11
|
+
WaitingForOVC1Round3bData = 7,
|
|
12
|
+
WaitingForBitgoRound3Data = 8,
|
|
13
|
+
WaitingForOVC1GenerateKey = 9,
|
|
14
|
+
WaitingForOVC2GenerateKey = 10,
|
|
15
|
+
KeyGenerationComplete = 11
|
|
16
|
+
}
|
|
17
|
+
interface baseRoundPayload {
|
|
18
|
+
tssVersion: string;
|
|
19
|
+
walletType: string;
|
|
20
|
+
coin: string;
|
|
21
|
+
state: KeyCreationMPCv2States;
|
|
22
|
+
}
|
|
23
|
+
export declare const OVC_ONE: 1;
|
|
24
|
+
export declare const OVC_TWO: 2;
|
|
25
|
+
export interface OVC1ToOVC2Round1Payload extends baseRoundPayload {
|
|
26
|
+
ovc: {
|
|
27
|
+
[OVC_ONE]: {
|
|
28
|
+
gpgPubKey: string;
|
|
29
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface OVC2ToBitgoRound1Payload extends baseRoundPayload {
|
|
34
|
+
ovc: {
|
|
35
|
+
[key in typeof OVC_ONE | typeof OVC_TWO]: {
|
|
36
|
+
gpgPubKey: string;
|
|
37
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface PlatformRound1Payload {
|
|
42
|
+
walletGpgPubKeySigs: string;
|
|
43
|
+
sessionId: string;
|
|
44
|
+
bitgoMsg1: DklsTypes.AuthBroadcastMessage;
|
|
45
|
+
ovc: {
|
|
46
|
+
[key in typeof OVC_ONE | typeof OVC_TWO]: {
|
|
47
|
+
bitgoToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export interface BitgoToOVC1Round1Response {
|
|
52
|
+
wallet: OVC2ToBitgoRound1Payload & {
|
|
53
|
+
platform: PlatformRound1Payload;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface OVC1ToOVC2Round2Payload extends baseRoundPayload {
|
|
57
|
+
ovc: {
|
|
58
|
+
[OVC_ONE]: {
|
|
59
|
+
gpgPubKey: string;
|
|
60
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
61
|
+
ovcToBitgoMsg2: DklsTypes.AuthEncP2PMessage;
|
|
62
|
+
ovcToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
63
|
+
};
|
|
64
|
+
[OVC_TWO]: {
|
|
65
|
+
gpgPubKey: string;
|
|
66
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
platform: PlatformRound1Payload;
|
|
70
|
+
}
|
|
71
|
+
export interface OVC2ToBitgoRound2Payload extends baseRoundPayload {
|
|
72
|
+
ovc: {
|
|
73
|
+
[key in typeof OVC_ONE | typeof OVC_TWO]: {
|
|
74
|
+
gpgPubKey: string;
|
|
75
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
76
|
+
ovcToBitgoMsg2: DklsTypes.AuthEncP2PMessage;
|
|
77
|
+
ovcToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
platform: PlatformRound1Payload;
|
|
81
|
+
}
|
|
82
|
+
export interface PlatformRound2Payload {
|
|
83
|
+
sessionId: string;
|
|
84
|
+
bitgoMsg1: DklsTypes.AuthBroadcastMessage;
|
|
85
|
+
bitgoCommitment2: string;
|
|
86
|
+
ovc: {
|
|
87
|
+
[key in typeof OVC_ONE | typeof OVC_TWO]: {
|
|
88
|
+
bitgoToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
89
|
+
bitgoToOvcMsg3: DklsTypes.AuthEncP2PMessage;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export interface BitgoToOVC1Round2Response {
|
|
94
|
+
wallet: OVC2ToBitgoRound2Payload & {
|
|
95
|
+
platform: PlatformRound2Payload;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export interface OVC1ToOVC2Round3Payload extends baseRoundPayload {
|
|
99
|
+
ovc: {
|
|
100
|
+
[OVC_ONE]: {
|
|
101
|
+
gpgPubKey: string;
|
|
102
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
103
|
+
ovcToBitgoMsg2: DklsTypes.AuthEncP2PMessage;
|
|
104
|
+
ovcToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
105
|
+
ovcToBitgoMsg3: DklsTypes.AuthEncP2PMessage;
|
|
106
|
+
ovcToOvcMsg3: DklsTypes.AuthEncP2PMessage;
|
|
107
|
+
};
|
|
108
|
+
[OVC_TWO]: {
|
|
109
|
+
gpgPubKey: string;
|
|
110
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
111
|
+
ovcToBitgoMsg2: DklsTypes.AuthEncP2PMessage;
|
|
112
|
+
ovcToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
platform: PlatformRound2Payload;
|
|
116
|
+
}
|
|
117
|
+
export interface OVC2ToOVC1Round3Payload extends baseRoundPayload {
|
|
118
|
+
ovc: {
|
|
119
|
+
[OVC_ONE]: {
|
|
120
|
+
gpgPubKey: string;
|
|
121
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
122
|
+
ovcToBitgoMsg2: DklsTypes.AuthEncP2PMessage;
|
|
123
|
+
ovcToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
124
|
+
ovcToBitgoMsg3: DklsTypes.AuthEncP2PMessage;
|
|
125
|
+
ovcToOvcMsg3: DklsTypes.AuthEncP2PMessage;
|
|
126
|
+
};
|
|
127
|
+
[OVC_TWO]: {
|
|
128
|
+
gpgPubKey: string;
|
|
129
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
130
|
+
ovcToBitgoMsg2: DklsTypes.AuthEncP2PMessage;
|
|
131
|
+
ovcToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
132
|
+
ovcToBitgoMsg3: DklsTypes.AuthEncP2PMessage;
|
|
133
|
+
ovcToOvcMsg3: DklsTypes.AuthEncP2PMessage;
|
|
134
|
+
ovcMsg4: DklsTypes.AuthBroadcastMessage;
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
platform: PlatformRound2Payload;
|
|
138
|
+
}
|
|
139
|
+
export interface OVC1ToBitgoRound3Payload extends baseRoundPayload {
|
|
140
|
+
ovc: {
|
|
141
|
+
[key in typeof OVC_ONE | typeof OVC_TWO]: {
|
|
142
|
+
gpgPubKey: string;
|
|
143
|
+
ovcMsg1: DklsTypes.AuthBroadcastMessage;
|
|
144
|
+
ovcToBitgoMsg2: DklsTypes.AuthEncP2PMessage;
|
|
145
|
+
ovcToOvcMsg2: DklsTypes.AuthEncP2PMessage;
|
|
146
|
+
ovcToBitgoMsg3: DklsTypes.AuthEncP2PMessage;
|
|
147
|
+
ovcToOvcMsg3: DklsTypes.AuthEncP2PMessage;
|
|
148
|
+
ovcMsg4: DklsTypes.AuthBroadcastMessage;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
platform: PlatformRound2Payload;
|
|
152
|
+
}
|
|
153
|
+
export interface PlatformRound3Payload extends PlatformRound2Payload {
|
|
154
|
+
commonKeychain: string;
|
|
155
|
+
bitgoMsg4: DklsTypes.AuthBroadcastMessage;
|
|
156
|
+
}
|
|
157
|
+
export interface BitgoToOVC1Round3Response {
|
|
158
|
+
bitGoKeyId: string;
|
|
159
|
+
wallet: OVC1ToBitgoRound3Payload & {
|
|
160
|
+
platform: PlatformRound3Payload;
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
export {};
|
|
164
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/bitgo/utils/tss/ecdsa/SMC/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OVC_TWO = exports.OVC_ONE = exports.KeyCreationMPCv2States = void 0;
|
|
4
|
+
var KeyCreationMPCv2States;
|
|
5
|
+
(function (KeyCreationMPCv2States) {
|
|
6
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC1Round1Data"] = -1] = "WaitingForOVC1Round1Data";
|
|
7
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC2Round1Data"] = 0] = "WaitingForOVC2Round1Data";
|
|
8
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForBitgoRound1Data"] = 1] = "WaitingForBitgoRound1Data";
|
|
9
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC1Round2Data"] = 2] = "WaitingForOVC1Round2Data";
|
|
10
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC2Round2Data"] = 3] = "WaitingForOVC2Round2Data";
|
|
11
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForBitgoRound2Data"] = 4] = "WaitingForBitgoRound2Data";
|
|
12
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC1Round3aData"] = 5] = "WaitingForOVC1Round3aData";
|
|
13
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC2Round3Data"] = 6] = "WaitingForOVC2Round3Data";
|
|
14
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC1Round3bData"] = 7] = "WaitingForOVC1Round3bData";
|
|
15
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForBitgoRound3Data"] = 8] = "WaitingForBitgoRound3Data";
|
|
16
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC1GenerateKey"] = 9] = "WaitingForOVC1GenerateKey";
|
|
17
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["WaitingForOVC2GenerateKey"] = 10] = "WaitingForOVC2GenerateKey";
|
|
18
|
+
KeyCreationMPCv2States[KeyCreationMPCv2States["KeyGenerationComplete"] = 11] = "KeyGenerationComplete";
|
|
19
|
+
})(KeyCreationMPCv2States = exports.KeyCreationMPCv2States || (exports.KeyCreationMPCv2States = {}));
|
|
20
|
+
exports.OVC_ONE = 1;
|
|
21
|
+
exports.OVC_TWO = 2;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VjZHNhL1NNQy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxJQUFZLHNCQWNYO0FBZEQsV0FBWSxzQkFBc0I7SUFDaEMsNEdBQTZCLENBQUE7SUFDN0IsMkdBQXdCLENBQUE7SUFDeEIsNkdBQXlCLENBQUE7SUFDekIsMkdBQXdCLENBQUE7SUFDeEIsMkdBQXdCLENBQUE7SUFDeEIsNkdBQXlCLENBQUE7SUFDekIsNkdBQXlCLENBQUE7SUFDekIsMkdBQXdCLENBQUE7SUFDeEIsNkdBQXlCLENBQUE7SUFDekIsNkdBQXlCLENBQUE7SUFDekIsNkdBQXlCLENBQUE7SUFDekIsOEdBQXlCLENBQUE7SUFDekIsc0dBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQWRXLHNCQUFzQixHQUF0Qiw4QkFBc0IsS0FBdEIsOEJBQXNCLFFBY2pDO0FBUVksUUFBQSxPQUFPLEdBQUcsQ0FBVSxDQUFDO0FBQ3JCLFFBQUEsT0FBTyxHQUFHLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERrbHNUeXBlcyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5cbmV4cG9ydCBlbnVtIEtleUNyZWF0aW9uTVBDdjJTdGF0ZXMge1xuICBXYWl0aW5nRm9yT1ZDMVJvdW5kMURhdGEgPSAtMSxcbiAgV2FpdGluZ0Zvck9WQzJSb3VuZDFEYXRhLFxuICBXYWl0aW5nRm9yQml0Z29Sb3VuZDFEYXRhLFxuICBXYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEsXG4gIFdhaXRpbmdGb3JPVkMyUm91bmQyRGF0YSxcbiAgV2FpdGluZ0ZvckJpdGdvUm91bmQyRGF0YSxcbiAgV2FpdGluZ0Zvck9WQzFSb3VuZDNhRGF0YSxcbiAgV2FpdGluZ0Zvck9WQzJSb3VuZDNEYXRhLFxuICBXYWl0aW5nRm9yT1ZDMVJvdW5kM2JEYXRhLFxuICBXYWl0aW5nRm9yQml0Z29Sb3VuZDNEYXRhLFxuICBXYWl0aW5nRm9yT1ZDMUdlbmVyYXRlS2V5LFxuICBXYWl0aW5nRm9yT1ZDMkdlbmVyYXRlS2V5LFxuICBLZXlHZW5lcmF0aW9uQ29tcGxldGUsXG59XG5pbnRlcmZhY2UgYmFzZVJvdW5kUGF5bG9hZCB7XG4gIHRzc1ZlcnNpb246IHN0cmluZztcbiAgd2FsbGV0VHlwZTogc3RyaW5nO1xuICBjb2luOiBzdHJpbmc7XG4gIHN0YXRlOiBLZXlDcmVhdGlvbk1QQ3YyU3RhdGVzO1xufVxuXG5leHBvcnQgY29uc3QgT1ZDX09ORSA9IDEgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgT1ZDX1RXTyA9IDIgYXMgY29uc3Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT1ZDMVRvT1ZDMlJvdW5kMVBheWxvYWQgZXh0ZW5kcyBiYXNlUm91bmRQYXlsb2FkIHtcbiAgb3ZjOiB7XG4gICAgW09WQ19PTkVdOiB7XG4gICAgICBncGdQdWJLZXk6IHN0cmluZztcbiAgICAgIG92Y01zZzE6IERrbHNUeXBlcy5BdXRoQnJvYWRjYXN0TWVzc2FnZTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9WQzJUb0JpdGdvUm91bmQxUGF5bG9hZCBleHRlbmRzIGJhc2VSb3VuZFBheWxvYWQge1xuICBvdmM6IHtcbiAgICBba2V5IGluIHR5cGVvZiBPVkNfT05FIHwgdHlwZW9mIE9WQ19UV09dOiB7IGdwZ1B1YktleTogc3RyaW5nOyBvdmNNc2cxOiBEa2xzVHlwZXMuQXV0aEJyb2FkY2FzdE1lc3NhZ2UgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGF0Zm9ybVJvdW5kMVBheWxvYWQge1xuICB3YWxsZXRHcGdQdWJLZXlTaWdzOiBzdHJpbmc7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBiaXRnb01zZzE6IERrbHNUeXBlcy5BdXRoQnJvYWRjYXN0TWVzc2FnZTtcbiAgb3ZjOiB7XG4gICAgW2tleSBpbiB0eXBlb2YgT1ZDX09ORSB8IHR5cGVvZiBPVkNfVFdPXToge1xuICAgICAgYml0Z29Ub092Y01zZzI6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGludGVyZmFjZSBCaXRnb1RvT1ZDMVJvdW5kMVJlc3BvbnNlIHtcbiAgd2FsbGV0OiBPVkMyVG9CaXRnb1JvdW5kMVBheWxvYWQgJiB7XG4gICAgcGxhdGZvcm06IFBsYXRmb3JtUm91bmQxUGF5bG9hZDtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPVkMxVG9PVkMyUm91bmQyUGF5bG9hZCBleHRlbmRzIGJhc2VSb3VuZFBheWxvYWQge1xuICBvdmM6IHtcbiAgICBbT1ZDX09ORV06IHtcbiAgICAgIGdwZ1B1YktleTogc3RyaW5nO1xuICAgICAgb3ZjTXNnMTogRGtsc1R5cGVzLkF1dGhCcm9hZGNhc3RNZXNzYWdlO1xuICAgICAgb3ZjVG9CaXRnb01zZzI6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICAgIG92Y1RvT3ZjTXNnMjogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgIH07XG4gICAgW09WQ19UV09dOiB7XG4gICAgICBncGdQdWJLZXk6IHN0cmluZztcbiAgICAgIG92Y01zZzE6IERrbHNUeXBlcy5BdXRoQnJvYWRjYXN0TWVzc2FnZTtcbiAgICB9O1xuICB9O1xuICBwbGF0Zm9ybTogUGxhdGZvcm1Sb3VuZDFQYXlsb2FkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9WQzJUb0JpdGdvUm91bmQyUGF5bG9hZCBleHRlbmRzIGJhc2VSb3VuZFBheWxvYWQge1xuICBvdmM6IHtcbiAgICBba2V5IGluIHR5cGVvZiBPVkNfT05FIHwgdHlwZW9mIE9WQ19UV09dOiB7XG4gICAgICBncGdQdWJLZXk6IHN0cmluZztcbiAgICAgIG92Y01zZzE6IERrbHNUeXBlcy5BdXRoQnJvYWRjYXN0TWVzc2FnZTtcbiAgICAgIG92Y1RvQml0Z29Nc2cyOiBEa2xzVHlwZXMuQXV0aEVuY1AyUE1lc3NhZ2U7XG4gICAgICBvdmNUb092Y01zZzI6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICB9O1xuICB9O1xuICBwbGF0Zm9ybTogUGxhdGZvcm1Sb3VuZDFQYXlsb2FkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYXRmb3JtUm91bmQyUGF5bG9hZCB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBiaXRnb01zZzE6IERrbHNUeXBlcy5BdXRoQnJvYWRjYXN0TWVzc2FnZTtcbiAgYml0Z29Db21taXRtZW50Mjogc3RyaW5nO1xuICBvdmM6IHtcbiAgICBba2V5IGluIHR5cGVvZiBPVkNfT05FIHwgdHlwZW9mIE9WQ19UV09dOiB7XG4gICAgICBiaXRnb1RvT3ZjTXNnMjogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgYml0Z29Ub092Y01zZzM6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGdvVG9PVkMxUm91bmQyUmVzcG9uc2Uge1xuICB3YWxsZXQ6IE9WQzJUb0JpdGdvUm91bmQyUGF5bG9hZCAmIHtcbiAgICBwbGF0Zm9ybTogUGxhdGZvcm1Sb3VuZDJQYXlsb2FkO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9WQzFUb09WQzJSb3VuZDNQYXlsb2FkIGV4dGVuZHMgYmFzZVJvdW5kUGF5bG9hZCB7XG4gIG92Yzoge1xuICAgIFtPVkNfT05FXToge1xuICAgICAgZ3BnUHViS2V5OiBzdHJpbmc7XG4gICAgICBvdmNNc2cxOiBEa2xzVHlwZXMuQXV0aEJyb2FkY2FzdE1lc3NhZ2U7XG4gICAgICBvdmNUb0JpdGdvTXNnMjogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjVG9PdmNNc2cyOiBEa2xzVHlwZXMuQXV0aEVuY1AyUE1lc3NhZ2U7XG4gICAgICBvdmNUb0JpdGdvTXNnMzogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjVG9PdmNNc2czOiBEa2xzVHlwZXMuQXV0aEVuY1AyUE1lc3NhZ2U7XG4gICAgfTtcbiAgICBbT1ZDX1RXT106IHtcbiAgICAgIGdwZ1B1YktleTogc3RyaW5nO1xuICAgICAgb3ZjTXNnMTogRGtsc1R5cGVzLkF1dGhCcm9hZGNhc3RNZXNzYWdlO1xuICAgICAgb3ZjVG9CaXRnb01zZzI6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICAgIG92Y1RvT3ZjTXNnMjogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgIH07XG4gIH07XG4gIHBsYXRmb3JtOiBQbGF0Zm9ybVJvdW5kMlBheWxvYWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIE9WQzJUb09WQzFSb3VuZDNQYXlsb2FkIGV4dGVuZHMgYmFzZVJvdW5kUGF5bG9hZCB7XG4gIG92Yzoge1xuICAgIFtPVkNfT05FXToge1xuICAgICAgZ3BnUHViS2V5OiBzdHJpbmc7XG4gICAgICBvdmNNc2cxOiBEa2xzVHlwZXMuQXV0aEJyb2FkY2FzdE1lc3NhZ2U7XG4gICAgICBvdmNUb0JpdGdvTXNnMjogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjVG9PdmNNc2cyOiBEa2xzVHlwZXMuQXV0aEVuY1AyUE1lc3NhZ2U7XG4gICAgICBvdmNUb0JpdGdvTXNnMzogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjVG9PdmNNc2czOiBEa2xzVHlwZXMuQXV0aEVuY1AyUE1lc3NhZ2U7XG4gICAgfTtcbiAgICBbT1ZDX1RXT106IHtcbiAgICAgIGdwZ1B1YktleTogc3RyaW5nO1xuICAgICAgb3ZjTXNnMTogRGtsc1R5cGVzLkF1dGhCcm9hZGNhc3RNZXNzYWdlO1xuICAgICAgb3ZjVG9CaXRnb01zZzI6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICAgIG92Y1RvT3ZjTXNnMjogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjVG9CaXRnb01zZzM6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICAgIG92Y1RvT3ZjTXNnMzogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjTXNnNDogRGtsc1R5cGVzLkF1dGhCcm9hZGNhc3RNZXNzYWdlO1xuICAgIH07XG4gIH07XG4gIHBsYXRmb3JtOiBQbGF0Zm9ybVJvdW5kMlBheWxvYWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT1ZDMVRvQml0Z29Sb3VuZDNQYXlsb2FkIGV4dGVuZHMgYmFzZVJvdW5kUGF5bG9hZCB7XG4gIG92Yzoge1xuICAgIFtrZXkgaW4gdHlwZW9mIE9WQ19PTkUgfCB0eXBlb2YgT1ZDX1RXT106IHtcbiAgICAgIGdwZ1B1YktleTogc3RyaW5nO1xuICAgICAgb3ZjTXNnMTogRGtsc1R5cGVzLkF1dGhCcm9hZGNhc3RNZXNzYWdlO1xuICAgICAgb3ZjVG9CaXRnb01zZzI6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICAgIG92Y1RvT3ZjTXNnMjogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjVG9CaXRnb01zZzM6IERrbHNUeXBlcy5BdXRoRW5jUDJQTWVzc2FnZTtcbiAgICAgIG92Y1RvT3ZjTXNnMzogRGtsc1R5cGVzLkF1dGhFbmNQMlBNZXNzYWdlO1xuICAgICAgb3ZjTXNnNDogRGtsc1R5cGVzLkF1dGhCcm9hZGNhc3RNZXNzYWdlO1xuICAgIH07XG4gIH07XG4gIHBsYXRmb3JtOiBQbGF0Zm9ybVJvdW5kMlBheWxvYWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1Sb3VuZDNQYXlsb2FkIGV4dGVuZHMgUGxhdGZvcm1Sb3VuZDJQYXlsb2FkIHtcbiAgY29tbW9uS2V5Y2hhaW46IHN0cmluZztcbiAgYml0Z29Nc2c0OiBEa2xzVHlwZXMuQXV0aEJyb2FkY2FzdE1lc3NhZ2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQml0Z29Ub09WQzFSb3VuZDNSZXNwb25zZSB7XG4gIGJpdEdvS2V5SWQ6IHN0cmluZztcbiAgd2FsbGV0OiBPVkMxVG9CaXRnb1JvdW5kM1BheWxvYWQgJiB7XG4gICAgcGxhdGZvcm06IFBsYXRmb3JtUm91bmQzUGF5bG9hZDtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { IBaseCoin } from '../../../../baseCoin';
|
|
2
|
+
import { BitGoBase } from '../../../../bitgoBase';
|
|
3
|
+
import { BitgoToOVC1Round1Response, BitgoToOVC1Round2Response, BitgoToOVC1Round3Response, OVC1ToBitgoRound3Payload, OVC2ToBitgoRound1Payload, OVC2ToBitgoRound2Payload } from './types';
|
|
4
|
+
import { Keychain } from '../../../..';
|
|
5
|
+
export declare class MPCv2SMCUtils {
|
|
6
|
+
private baseCoin;
|
|
7
|
+
private MPCv2Utils;
|
|
8
|
+
constructor(bitgo: BitGoBase, baseCoin: IBaseCoin);
|
|
9
|
+
keyGenRound1(enterprise: string, payload: OVC2ToBitgoRound1Payload): Promise<BitgoToOVC1Round1Response>;
|
|
10
|
+
keyGenRound2(enterprise: string, payload: OVC2ToBitgoRound2Payload): Promise<BitgoToOVC1Round2Response>;
|
|
11
|
+
keyGenRound3(enterprise: string, payload: OVC1ToBitgoRound3Payload): Promise<BitgoToOVC1Round3Response>;
|
|
12
|
+
uploadClientKeys(bitgoKeyId: string, userCommonKeychain: string, backupCommonKeychain: string): Promise<{
|
|
13
|
+
userKeychain: Keychain;
|
|
14
|
+
backupKeychain: Keychain;
|
|
15
|
+
bitgoKeychain: Keychain;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/bitgo/utils/tss/ecdsa/SMC/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EAEzB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,aAAa;IAGM,OAAO,CAAC,QAAQ;IAF9C,OAAO,CAAC,UAAU,CAAkB;gBAExB,KAAK,EAAE,SAAS,EAAU,QAAQ,EAAE,SAAS;IAI5C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAqCvG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAqCvG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAuCvG,gBAAgB,CAC3B,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC;QAAE,YAAY,EAAE,QAAQ,CAAC;QAAC,cAAc,EAAE,QAAQ,CAAC;QAAC,aAAa,EAAE,QAAQ,CAAA;KAAE,CAAC;CA8B1F"}
|
|
@@ -0,0 +1,133 @@
|
|
|
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
|
+
exports.MPCv2SMCUtils = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const ecdsaMPCv2_1 = require("../ecdsaMPCv2");
|
|
9
|
+
const types_1 = require("./types");
|
|
10
|
+
class MPCv2SMCUtils {
|
|
11
|
+
constructor(bitgo, baseCoin) {
|
|
12
|
+
this.baseCoin = baseCoin;
|
|
13
|
+
this.MPCv2Utils = new ecdsaMPCv2_1.EcdsaMPCv2Utils(bitgo, baseCoin);
|
|
14
|
+
}
|
|
15
|
+
async keyGenRound1(enterprise, payload) {
|
|
16
|
+
(0, assert_1.default)(payload.state === types_1.KeyCreationMPCv2States.WaitingForBitgoRound1Data, `Invalid state for round 1, got: ${payload.state}`);
|
|
17
|
+
const ovc1 = payload.ovc[types_1.OVC_ONE];
|
|
18
|
+
const ovc2 = payload.ovc[types_1.OVC_TWO];
|
|
19
|
+
const userGpgPublicKey = ovc1.gpgPubKey;
|
|
20
|
+
const backupGpgPublicKey = ovc2.gpgPubKey;
|
|
21
|
+
const messages = { p2pMessages: [], broadcastMessages: [ovc1.ovcMsg1, ovc2.ovcMsg1] };
|
|
22
|
+
const result = await this.MPCv2Utils.sendKeyGenerationRound1(enterprise, userGpgPublicKey, backupGpgPublicKey, messages);
|
|
23
|
+
return {
|
|
24
|
+
wallet: {
|
|
25
|
+
tssVersion: payload.tssVersion,
|
|
26
|
+
walletType: payload.walletType,
|
|
27
|
+
coin: payload.coin,
|
|
28
|
+
ovc: payload.ovc,
|
|
29
|
+
state: types_1.KeyCreationMPCv2States.WaitingForOVC1Round2Data,
|
|
30
|
+
platform: {
|
|
31
|
+
walletGpgPubKeySigs: result.walletGpgPubKeySigs,
|
|
32
|
+
sessionId: result.sessionId,
|
|
33
|
+
bitgoMsg1: this.MPCv2Utils.formatBitgoBroadcastMessage(result.bitgoMsg1),
|
|
34
|
+
ovc: {
|
|
35
|
+
[types_1.OVC_ONE]: { bitgoToOvcMsg2: this.MPCv2Utils.formatP2PMessage(result.bitgoToUserMsg2) },
|
|
36
|
+
[types_1.OVC_TWO]: { bitgoToOvcMsg2: this.MPCv2Utils.formatP2PMessage(result.bitgoToBackupMsg2) },
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async keyGenRound2(enterprise, payload) {
|
|
43
|
+
(0, assert_1.default)(payload.state === types_1.KeyCreationMPCv2States.WaitingForBitgoRound2Data, `Invalid state for round 2, got: ${payload.state}`);
|
|
44
|
+
const ovc1 = payload.ovc[types_1.OVC_ONE];
|
|
45
|
+
const ovc2 = payload.ovc[types_1.OVC_TWO];
|
|
46
|
+
const sessionId = payload.platform.sessionId;
|
|
47
|
+
const messages = { p2pMessages: [ovc1.ovcToBitgoMsg2, ovc2.ovcToBitgoMsg2], broadcastMessages: [] };
|
|
48
|
+
const result = await this.MPCv2Utils.sendKeyGenerationRound2(enterprise, sessionId, messages);
|
|
49
|
+
return {
|
|
50
|
+
wallet: {
|
|
51
|
+
tssVersion: payload.tssVersion,
|
|
52
|
+
walletType: payload.walletType,
|
|
53
|
+
coin: payload.coin,
|
|
54
|
+
ovc: payload.ovc,
|
|
55
|
+
state: types_1.KeyCreationMPCv2States.WaitingForOVC1Round3aData,
|
|
56
|
+
platform: {
|
|
57
|
+
...payload.platform,
|
|
58
|
+
sessionId: result.sessionId,
|
|
59
|
+
bitgoCommitment2: result.bitgoCommitment2,
|
|
60
|
+
ovc: {
|
|
61
|
+
[types_1.OVC_ONE]: {
|
|
62
|
+
...payload.platform.ovc[types_1.OVC_ONE],
|
|
63
|
+
bitgoToOvcMsg3: this.MPCv2Utils.formatP2PMessage(result.bitgoToUserMsg3),
|
|
64
|
+
},
|
|
65
|
+
[types_1.OVC_TWO]: {
|
|
66
|
+
...payload.platform.ovc[2],
|
|
67
|
+
bitgoToOvcMsg3: this.MPCv2Utils.formatP2PMessage(result.bitgoToBackupMsg3),
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
async keyGenRound3(enterprise, payload) {
|
|
75
|
+
(0, assert_1.default)(payload.state === types_1.KeyCreationMPCv2States.WaitingForBitgoRound3Data, `Invalid state for round 3, got: ${payload.state}`);
|
|
76
|
+
const ovc1 = payload.ovc[types_1.OVC_ONE];
|
|
77
|
+
const ovc2 = payload.ovc[types_1.OVC_TWO];
|
|
78
|
+
const sessionId = payload.platform.sessionId;
|
|
79
|
+
const messages = {
|
|
80
|
+
p2pMessages: [ovc1.ovcToBitgoMsg3, ovc2.ovcToBitgoMsg3],
|
|
81
|
+
broadcastMessages: [ovc1.ovcMsg4, ovc2.ovcMsg4],
|
|
82
|
+
};
|
|
83
|
+
const result = await this.MPCv2Utils.sendKeyGenerationRound3(enterprise, sessionId, messages);
|
|
84
|
+
const keychains = this.baseCoin.keychains();
|
|
85
|
+
const bitgoKeychain = await keychains.add({
|
|
86
|
+
source: 'bitgo',
|
|
87
|
+
keyType: 'tss',
|
|
88
|
+
commonKeychain: result.commonKeychain,
|
|
89
|
+
isMPCv2: true,
|
|
90
|
+
});
|
|
91
|
+
return {
|
|
92
|
+
bitGoKeyId: bitgoKeychain.id,
|
|
93
|
+
wallet: {
|
|
94
|
+
tssVersion: payload.tssVersion,
|
|
95
|
+
walletType: payload.walletType,
|
|
96
|
+
coin: payload.coin,
|
|
97
|
+
ovc: payload.ovc,
|
|
98
|
+
state: types_1.KeyCreationMPCv2States.WaitingForOVC1GenerateKey,
|
|
99
|
+
platform: {
|
|
100
|
+
...payload.platform,
|
|
101
|
+
commonKeychain: result.commonKeychain,
|
|
102
|
+
bitgoMsg4: this.MPCv2Utils.formatBitgoBroadcastMessage(result.bitgoMsg4),
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
async uploadClientKeys(bitgoKeyId, userCommonKeychain, backupCommonKeychain) {
|
|
108
|
+
(0, assert_1.default)(userCommonKeychain === backupCommonKeychain, 'Common keychain mismatch between the user and backup keychains');
|
|
109
|
+
const keychains = this.baseCoin.keychains();
|
|
110
|
+
const bitgoKeychain = await keychains.get({ id: bitgoKeyId });
|
|
111
|
+
(0, assert_1.default)(bitgoKeychain, 'Keychain not found');
|
|
112
|
+
(0, assert_1.default)(bitgoKeychain.source === 'bitgo', 'The keychain is not a BitGo keychain');
|
|
113
|
+
(0, assert_1.default)(bitgoKeychain.type === 'tss', 'BitGo keychain is not a TSS keychain');
|
|
114
|
+
(0, assert_1.default)(bitgoKeychain.commonKeychain, 'BitGo keychain does not have a common keychain');
|
|
115
|
+
(0, assert_1.default)(bitgoKeychain.commonKeychain === userCommonKeychain, 'Common keychain mismatch between the OVCs and BitGo');
|
|
116
|
+
const userKeychainPromise = keychains.add({
|
|
117
|
+
source: 'user',
|
|
118
|
+
keyType: 'tss',
|
|
119
|
+
commonKeychain: userCommonKeychain,
|
|
120
|
+
isMPCv2: true,
|
|
121
|
+
});
|
|
122
|
+
const backupKeychainPromise = keychains.add({
|
|
123
|
+
source: 'backup',
|
|
124
|
+
keyType: 'tss',
|
|
125
|
+
commonKeychain: backupCommonKeychain,
|
|
126
|
+
isMPCv2: true,
|
|
127
|
+
});
|
|
128
|
+
const [userKeychain, backupKeychain] = await Promise.all([userKeychainPromise, backupKeychainPromise]);
|
|
129
|
+
return { userKeychain, backupKeychain, bitgoKeychain };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.MPCv2SMCUtils = MPCv2SMCUtils;
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL2VjZHNhL1NNQy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFHNUIsOENBQWdEO0FBQ2hELG1DQVVpQjtBQUlqQixNQUFhLGFBQWE7SUFHeEIsWUFBWSxLQUFnQixFQUFVLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLDRCQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQWtCLEVBQUUsT0FBaUM7UUFDN0UsSUFBQSxnQkFBTSxFQUNKLE9BQU8sQ0FBQyxLQUFLLEtBQUssOEJBQXNCLENBQUMseUJBQXlCLEVBQ2xFLG1DQUFtQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQ25ELENBQUM7UUFDRixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3RGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FDMUQsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsUUFBUSxDQUNULENB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ZCxjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQzFDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQTFKRCxzQ0EwSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4gfSBmcm9tICcuLi8uLi8uLi8uLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgRWNkc2FNUEN2MlV0aWxzIH0gZnJvbSAnLi4vZWNkc2FNUEN2Mic7XG5pbXBvcnQge1xuICBCaXRnb1RvT1ZDMVJvdW5kMVJlc3BvbnNlLFxuICBCaXRnb1RvT1ZDMVJvdW5kMlJlc3BvbnNlLFxuICBCaXRnb1RvT1ZDMVJvdW5kM1Jlc3BvbnNlLFxuICBLZXlDcmVhdGlvbk1QQ3YyU3RhdGVzLFxuICBPVkMxVG9CaXRnb1JvdW5kM1BheWxvYWQsXG4gIE9WQzJUb0JpdGdvUm91bmQxUGF5bG9hZCxcbiAgT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkLFxuICBPVkNfT05FLFxuICBPVkNfVFdPLFxufSBmcm9tICcuL3R5cGVzJztcblxuaW1wb3J0IHsgS2V5Y2hhaW4gfSBmcm9tICcuLi8uLi8uLi8uLic7XG5cbmV4cG9ydCBjbGFzcyBNUEN2MlNNQ1V0aWxzIHtcbiAgcHJpdmF0ZSBNUEN2MlV0aWxzOiBFY2RzYU1QQ3YyVXRpbHM7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgcHJpdmF0ZSBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgdGhpcy5NUEN2MlV0aWxzID0gbmV3IEVjZHNhTVBDdjJVdGlscyhiaXRnbywgYmFzZUNvaW4pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGtleUdlblJvdW5kMShlbnRlcnByaXNlOiBzdHJpbmcsIHBheWxvYWQ6IE9WQzJUb0JpdGdvUm91bmQxUGF5bG9hZCk6IFByb21pc2U8Qml0Z29Ub09WQzFSb3VuZDFSZXNwb25zZT4ge1xuICAgIGFzc2VydChcbiAgICAgIHBheWxvYWQuc3RhdGUgPT09IEtleUNyZWF0aW9uTVBDdjJTdGF0ZXMuV2FpdGluZ0ZvckJpdGdvUm91bmQxRGF0YSxcbiAgICAgIGBJbnZhbGlkIHN0YXRlIGZvciByb3VuZCAxLCBnb3Q6ICR7cGF5bG9hZC5zdGF0ZX1gXG4gICAgKTtcbiAgICBjb25zdCBvdmMxID0gcGF5bG9hZC5vdmNbT1ZDX09ORV07XG4gICAgY29uc3Qgb3ZjMiA9IHBheWxvYWQub3ZjW09WQ19UV09dO1xuICAgIGNvbnN0IHVzZXJHcGdQdWJsaWNLZXkgPSBvdmMxLmdwZ1B1YktleTtcbiAgICBjb25zdCBiYWNrdXBHcGdQdWJsaWNLZXkgPSBvdmMyLmdwZ1B1YktleTtcbiAgICBjb25zdCBtZXNzYWdlcyA9IHsgcDJwTWVzc2FnZXM6IFtdLCBicm9hZGNhc3RNZXNzYWdlczogW292YzEub3ZjTXNnMSwgb3ZjMi5vdmNNc2cxXSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuTVBDdjJVdGlscy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMShcbiAgICAgIGVudGVycHJpc2UsXG4gICAgICB1c2VyR3BnUHVibGljS2V5LFxuICAgICAgYmFja3VwR3BnUHVibGljS2V5LFxuICAgICAgbWVzc2FnZXNcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHdhbGxldDoge1xuICAgICAgICB0c3NWZXJzaW9uOiBwYXlsb2FkLnRzc1ZlcnNpb24sXG4gICAgICAgIHdhbGxldFR5cGU6IHBheWxvYWQud2FsbGV0VHlwZSxcbiAgICAgICAgY29pbjogcGF5bG9hZC5jb2luLFxuICAgICAgICBvdmM6IHBheWxvYWQub3ZjLFxuICAgICAgICBzdGF0ZTogS2V5Q3JlYXRpb25NUEN2MlN0YXRlcy5XYWl0aW5nRm9yT1ZDMVJvdW5kMkRhdGEsXG4gICAgICAgIHBsYXRmb3JtOiB7XG4gICAgICAgICAgd2FsbGV0R3BnUHViS2V5U2lnczogcmVzdWx0LndhbGxldEdwZ1B1YktleVNpZ3MsXG4gICAgICAgICAgc2Vzc2lvbklkOiByZXN1bHQuc2Vzc2lvbklkLFxuICAgICAgICAgIGJpdGdvTXNnMTogdGhpcy5NUEN2MlV0aWxzLmZvcm1hdEJpdGdvQnJvYWRjYXN0TWVzc2FnZShyZXN1bHQuYml0Z29Nc2cxKSxcbiAgICAgICAgICBvdmM6IHtcbiAgICAgICAgICAgIFtPVkNfT05FXTogeyBiaXRnb1RvT3ZjTXNnMjogdGhpcy5NUEN2MlV0aWxzLmZvcm1hdFAyUE1lc3NhZ2UocmVzdWx0LmJpdGdvVG9Vc2VyTXNnMikgfSxcbiAgICAgICAgICAgIFtPVkNfVFdPXTogeyBiaXRnb1RvT3ZjTXNnMjogdGhpcy5NUEN2MlV0aWxzLmZvcm1hdFAyUE1lc3NhZ2UocmVzdWx0LmJpdGdvVG9CYWNrdXBNc2cyKSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMga2V5R2VuUm91bmQyKGVudGVycHJpc2U6IHN0cmluZywgcGF5bG9hZDogT1ZDMlRvQml0Z29Sb3VuZDJQYXlsb2FkKTogUHJvbWlzZTxCaXRnb1RvT1ZDMVJvdW5kMlJlc3BvbnNlPiB7XG4gICAgYXNzZXJ0KFxuICAgICAgcGF5bG9hZC5zdGF0ZSA9PT0gS2V5Q3JlYXRpb25NUEN2MlN0YXRlcy5XYWl0aW5nRm9yQml0Z29Sb3VuZDJEYXRhLFxuICAgICAgYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDIsIGdvdDogJHtwYXlsb2FkLnN0YXRlfWBcbiAgICApO1xuICAgIGNvbnN0IG92YzEgPSBwYXlsb2FkLm92Y1tPVkNfT05FXTtcbiAgICBjb25zdCBvdmMyID0gcGF5bG9hZC5vdmNbT1ZDX1RXT107XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gcGF5bG9hZC5wbGF0Zm9ybS5zZXNzaW9uSWQ7XG4gICAgY29uc3QgbWVzc2FnZXMgPSB7IHAycE1lc3NhZ2VzOiBbb3ZjMS5vdmNUb0JpdGdvTXNnMiwgb3ZjMi5vdmNUb0JpdGdvTXNnMl0sIGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuTVBDdjJVdGlscy5zZW5kS2V5R2VuZXJhdGlvblJvdW5kMihlbnRlcnByaXNlLCBzZXNzaW9uSWQsIG1lc3NhZ2VzKTtcblxuICAgIHJldHVybiB7XG4gICAgICB3YWxsZXQ6IHtcbiAgICAgICAgdHNzVmVyc2lvbjogcGF5bG9hZC50c3NWZXJzaW9uLFxuICAgICAgICB3YWxsZXRUeXBlOiBwYXlsb2FkLndhbGxldFR5cGUsXG4gICAgICAgIGNvaW46IHBheWxvYWQuY29pbixcbiAgICAgICAgb3ZjOiBwYXlsb2FkLm92YyxcbiAgICAgICAgc3RhdGU6IEtleUNyZWF0aW9uTVBDdjJTdGF0ZXMuV2FpdGluZ0Zvck9WQzFSb3VuZDNhRGF0YSxcbiAgICAgICAgcGxhdGZvcm06IHtcbiAgICAgICAgICAuLi5wYXlsb2FkLnBsYXRmb3JtLFxuICAgICAgICAgIHNlc3Npb25JZDogcmVzdWx0LnNlc3Npb25JZCxcbiAgICAgICAgICBiaXRnb0NvbW1pdG1lbnQyOiByZXN1bHQuYml0Z29Db21taXRtZW50MixcbiAgICAgICAgICBvdmM6IHtcbiAgICAgICAgICAgIFtPVkNfT05FXToge1xuICAgICAgICAgICAgICAuLi5wYXlsb2FkLnBsYXRmb3JtLm92Y1tPVkNfT05FXSxcbiAgICAgICAgICAgICAgYml0Z29Ub092Y01zZzM6IHRoaXMuTVBDdjJVdGlscy5mb3JtYXRQMlBNZXNzYWdlKHJlc3VsdC5iaXRnb1RvVXNlck1zZzMpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtPVkNfVFdPXToge1xuICAgICAgICAgICAgICAuLi5wYXlsb2FkLnBsYXRmb3JtLm92Y1syXSxcbiAgICAgICAgICAgICAgYml0Z29Ub092Y01zZzM6IHRoaXMuTVBDdjJVdGlscy5mb3JtYXRQMlBNZXNzYWdlKHJlc3VsdC5iaXRnb1RvQmFja3VwTXNnMyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMga2V5R2VuUm91bmQzKGVudGVycHJpc2U6IHN0cmluZywgcGF5bG9hZDogT1ZDMVRvQml0Z29Sb3VuZDNQYXlsb2FkKTogUHJvbWlzZTxCaXRnb1RvT1ZDMVJvdW5kM1Jlc3BvbnNlPiB7XG4gICAgYXNzZXJ0KFxuICAgICAgcGF5bG9hZC5zdGF0ZSA9PT0gS2V5Q3JlYXRpb25NUEN2MlN0YXRlcy5XYWl0aW5nRm9yQml0Z29Sb3VuZDNEYXRhLFxuICAgICAgYEludmFsaWQgc3RhdGUgZm9yIHJvdW5kIDMsIGdvdDogJHtwYXlsb2FkLnN0YXRlfWBcbiAgICApO1xuICAgIGNvbnN0IG92YzEgPSBwYXlsb2FkLm92Y1tPVkNfT05FXTtcbiAgICBjb25zdCBvdmMyID0gcGF5bG9hZC5vdmNbT1ZDX1RXT107XG4gICAgY29uc3Qgc2Vzc2lvbklkID0gcGF5bG9hZC5wbGF0Zm9ybS5zZXNzaW9uSWQ7XG4gICAgY29uc3QgbWVzc2FnZXMgPSB7XG4gICAgICBwMnBNZXNzYWdlczogW292YzEub3ZjVG9CaXRnb01zZzMsIG92YzIub3ZjVG9CaXRnb01zZzNdLFxuICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IFtvdmMxLm92Y01zZzQsIG92YzIub3ZjTXNnNF0sXG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLk1QQ3YyVXRpbHMuc2VuZEtleUdlbmVyYXRpb25Sb3VuZDMoZW50ZXJwcmlzZSwgc2Vzc2lvbklkLCBtZXNzYWdlcyk7XG5cbiAgICBjb25zdCBrZXljaGFpbnMgPSB0aGlzLmJhc2VDb2luLmtleWNoYWlucygpO1xuICAgIGNvbnN0IGJpdGdvS2V5Y2hhaW4gPSBhd2FpdCBrZXljaGFpbnMuYWRkKHtcbiAgICAgIHNvdXJjZTogJ2JpdGdvJyxcbiAgICAgIGtleVR5cGU6ICd0c3MnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IHJlc3VsdC5jb21tb25LZXljaGFpbixcbiAgICAgIGlzTVBDdjI6IHRydWUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYml0R29LZXlJZDogYml0Z29LZXljaGFpbi5pZCxcbiAgICAgIHdhbGxldDoge1xuICAgICAgICB0c3NWZXJzaW9uOiBwYXlsb2FkLnRzc1ZlcnNpb24sXG4gICAgICAgIHdhbGxldFR5cGU6IHBheWxvYWQud2FsbGV0VHlwZSxcbiAgICAgICAgY29pbjogcGF5bG9hZC5jb2luLFxuICAgICAgICBvdmM6IHBheWxvYWQub3ZjLFxuICAgICAgICBzdGF0ZTogS2V5Q3JlYXRpb25NUEN2MlN0YXRlcy5XYWl0aW5nRm9yT1ZDMUdlbmVyYXRlS2V5LFxuICAgICAgICBwbGF0Zm9ybToge1xuICAgICAgICAgIC4uLnBheWxvYWQucGxhdGZvcm0sXG4gICAgICAgICAgY29tbW9uS2V5Y2hhaW46IHJlc3VsdC5jb21tb25LZXljaGFpbixcbiAgICAgICAgICBiaXRnb01zZzQ6IHRoaXMuTVBDdjJVdGlscy5mb3JtYXRCaXRnb0Jyb2FkY2FzdE1lc3NhZ2UocmVzdWx0LmJpdGdvTXNnNCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBsb2FkQ2xpZW50S2V5cyhcbiAgICBiaXRnb0tleUlkOiBzdHJpbmcsXG4gICAgdXNlckNvbW1vbktleWNoYWluOiBzdHJpbmcsXG4gICAgYmFja3VwQ29tbW9uS2V5Y2hhaW46IHN0cmluZ1xuICApOiBQcm9taXNlPHsgdXNlcktleWNoYWluOiBLZXljaGFpbjsgYmFja3VwS2V5Y2hhaW46IEtleWNoYWluOyBiaXRnb0tleWNoYWluOiBLZXljaGFpbiB9PiB7XG4gICAgYXNzZXJ0KFxuICAgICAgdXNlckNvbW1vbktleWNoYWluID09PSBiYWNrdXBDb21tb25LZXljaGFpbixcbiAgICAgICdDb21tb24ga2V5Y2hhaW4gbWlzbWF0Y2ggYmV0d2VlbiB0aGUgdXNlciBhbmQgYmFja3VwIGtleWNoYWlucydcbiAgICApO1xuXG4gICAgY29uc3Qga2V5Y2hhaW5zID0gdGhpcy5iYXNlQ29pbi5rZXljaGFpbnMoKTtcbiAgICBjb25zdCBiaXRnb0tleWNoYWluID0gYXdhaXQga2V5Y2hhaW5zLmdldCh7IGlkOiBiaXRnb0tleUlkIH0pO1xuICAgIGFzc2VydChiaXRnb0tleWNoYWluLCAnS2V5Y2hhaW4gbm90IGZvdW5kJyk7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4uc291cmNlID09PSAnYml0Z28nLCAnVGhlIGtleWNoYWluIGlzIG5vdCBhIEJpdEdvIGtleWNoYWluJyk7XG4gICAgYXNzZXJ0KGJpdGdvS2V5Y2hhaW4udHlwZSA9PT0gJ3RzcycsICdCaXRHbyBrZXljaGFpbiBpcyBub3QgYSBUU1Mga2V5Y2hhaW4nKTtcbiAgICBhc3NlcnQoYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbiwgJ0JpdEdvIGtleWNoYWluIGRvZXMgbm90IGhhdmUgYSBjb21tb24ga2V5Y2hhaW4nKTtcbiAgICBhc3NlcnQoYml0Z29LZXljaGFpbi5jb21tb25LZXljaGFpbiA9PT0gdXNlckNvbW1vbktleWNoYWluLCAnQ29tbW9uIGtleWNoYWluIG1pc21hdGNoIGJldHdlZW4gdGhlIE9WQ3MgYW5kIEJpdEdvJyk7XG5cbiAgICBjb25zdCB1c2VyS2V5Y2hhaW5Qcm9taXNlID0ga2V5Y2hhaW5zLmFkZCh7XG4gICAgICBzb3VyY2U6ICd1c2VyJyxcbiAgICAgIGtleVR5cGU6ICd0c3MnLFxuICAgICAgY29tbW9uS2V5Y2hhaW46IHVzZXJDb21tb25LZXljaGFpbixcbiAgICAgIGlzTVBDdjI6IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgYmFja3VwS2V5Y2hhaW5Qcm9taXNlID0ga2V5Y2hhaW5zLmFkZCh7XG4gICAgICBzb3VyY2U6ICdiYWNrdXAnLFxuICAgICAga2V5VHlwZTogJ3RzcycsXG4gICAgICBjb21tb25LZXljaGFpbjogYmFja3VwQ29tbW9uS2V5Y2hhaW4sXG4gICAgICBpc01QQ3YyOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgW3VzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW5dID0gYXdhaXQgUHJvbWlzZS5hbGwoW3VzZXJLZXljaGFpblByb21pc2UsIGJhY2t1cEtleWNoYWluUHJvbWlzZV0pO1xuICAgIHJldHVybiB7IHVzZXJLZXljaGFpbiwgYmFja3VwS2V5Y2hhaW4sIGJpdGdvS2V5Y2hhaW4gfTtcbiAgfVxufVxuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DklsTypes } from '@bitgo/sdk-lib-mpc';
|
|
3
3
|
import { Buffer } from 'buffer';
|
|
4
|
-
import { MPCv2PartyFromStringOrNumber } from '@bitgo/public-types';
|
|
5
|
-
import { Ecdsa } from '../../../../account-lib';
|
|
6
4
|
import { KeychainsTriplet } from '../../../baseCoin';
|
|
5
|
+
import { MPCv2BroadcastMessage, MPCv2KeyGenRound1Response, MPCv2KeyGenRound2Response, MPCv2KeyGenRound3Response, MPCv2P2PMessage, MPCv2PartyFromStringOrNumber } from '@bitgo/public-types';
|
|
6
|
+
import { Ecdsa } from '../../../../account-lib';
|
|
7
7
|
import { Keychain } from '../../../keychain';
|
|
8
8
|
import { DecryptedRetrofitPayload } from '../../../keychain/iKeychains';
|
|
9
|
-
import { CustomMPCv2SigningRound1GeneratingFunction, CustomMPCv2SigningRound2GeneratingFunction, CustomMPCv2SigningRound3GeneratingFunction, RequestType, SignatureShareRecord, TSSParams, TSSParamsForMessage, TSSParamsWithPrv, TxRequest } from '../baseTypes';
|
|
9
|
+
import { CustomMPCv2SigningRound1GeneratingFunction, CustomMPCv2SigningRound2GeneratingFunction, CustomMPCv2SigningRound3GeneratingFunction, RequestType, SignatureShareRecord, TSSParams, TSSParamsForMessage, TSSParamsForMessageWithPrv, TSSParamsWithPrv, TxRequest } from '../baseTypes';
|
|
10
10
|
import { BaseEcdsaUtils } from './base';
|
|
11
11
|
export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
12
12
|
/** @inheritdoc */
|
|
@@ -28,7 +28,7 @@ export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
|
28
28
|
mpcv1BackupKeyShare: string;
|
|
29
29
|
}): {
|
|
30
30
|
mpcv2UserKeyShare: DklsTypes.RetrofitData;
|
|
31
|
-
|
|
31
|
+
mpcv2BackupKeyShare: DklsTypes.RetrofitData;
|
|
32
32
|
};
|
|
33
33
|
getMpcV2RetrofitDataFromMpcV1Key({ mpcv1PartyKeyShare, mpcv1PartyIndex, xiList, mpc, }: {
|
|
34
34
|
mpcv1PartyKeyShare: string;
|
|
@@ -41,20 +41,45 @@ export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
|
41
41
|
private getUserAndBackupSession;
|
|
42
42
|
private addBitgoKeychain;
|
|
43
43
|
private sendKeyGenerationRequest;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
sendKeyGenerationRound1(enterprise: string, userGpgPublicKey: string, backupGpgPublicKey: string, payload: DklsTypes.AuthEncMessages & {
|
|
45
|
+
walletId?: string;
|
|
46
|
+
}): Promise<MPCv2KeyGenRound1Response>;
|
|
47
|
+
sendKeyGenerationRound2(enterprise: string, sessionId: string, payload: DklsTypes.AuthEncMessages): Promise<MPCv2KeyGenRound2Response>;
|
|
48
|
+
sendKeyGenerationRound3(enterprise: string, sessionId: string, payload: DklsTypes.AuthEncMessages): Promise<MPCv2KeyGenRound3Response>;
|
|
47
49
|
/**
|
|
48
50
|
* Signs the transaction associated to the transaction request.
|
|
49
51
|
* @param {string | TxRequest} params.txRequest - transaction request object or id
|
|
50
52
|
* @param {string} params.prv - decrypted private key
|
|
51
53
|
* @param {string} params.reqId - request id
|
|
54
|
+
* @param {string} params.mpcv2PartyId - party id for the signer involved in this mpcv2 request (either 0 for user or 1 for backup)
|
|
52
55
|
* @returns {Promise<TxRequest>} fully signed TxRequest object
|
|
53
56
|
*/
|
|
54
57
|
signTxRequest(params: TSSParamsWithPrv): Promise<TxRequest>;
|
|
58
|
+
/**
|
|
59
|
+
* Signs the message associated to the transaction request.
|
|
60
|
+
* @param {string | TxRequest} params.txRequest - transaction request object or id
|
|
61
|
+
* @param {string} params.prv - decrypted private key
|
|
62
|
+
* @param {string} params.reqId - request id
|
|
63
|
+
* @returns {Promise<TxRequest>} fully signed TxRequest object
|
|
64
|
+
*/
|
|
65
|
+
signTxRequestForMessage(params: TSSParamsForMessageWithPrv): Promise<TxRequest>;
|
|
55
66
|
private signRequestBase;
|
|
56
|
-
|
|
57
|
-
|
|
67
|
+
formatBitgoBroadcastMessage(broadcastMessage: MPCv2BroadcastMessage): {
|
|
68
|
+
from: 0 | 1 | 2;
|
|
69
|
+
payload: {
|
|
70
|
+
message: string;
|
|
71
|
+
signature: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
formatP2PMessage(p2pMessage: MPCv2P2PMessage, commitment?: string): {
|
|
75
|
+
payload: {
|
|
76
|
+
encryptedMessage: string;
|
|
77
|
+
signature: string;
|
|
78
|
+
};
|
|
79
|
+
from: 0 | 1 | 2;
|
|
80
|
+
to: 0 | 1 | 2;
|
|
81
|
+
commitment: string | undefined;
|
|
82
|
+
};
|
|
58
83
|
/**
|
|
59
84
|
* Get the hash string and derivation path from the transaction request.
|
|
60
85
|
* @param {TxRequest} txRequest - the transaction request object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":";AAAA,OAAO,EAAiD,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,
|
|
1
|
+
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"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"}
|