@bitgo/sdk-core 38.11.0 → 38.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +2 -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/bitgoBase.d.ts +2 -2
- package/dist/src/bitgo/bitgoBase.d.ts.map +1 -1
- package/dist/src/bitgo/bitgoBase.js +1 -1
- package/dist/src/bitgo/keychain/iKeychains.d.ts +2 -2
- 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 +2 -2
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +15 -8
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +67 -0
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
- package/dist/src/bitgo/safe/derivableEd25519Pub.js +156 -0
- package/dist/src/bitgo/safe/index.d.ts +1 -0
- package/dist/src/bitgo/safe/index.d.ts.map +1 -1
- package/dist/src/bitgo/safe/index.js +2 -1
- package/dist/src/bitgo/staking/iStakingWallet.d.ts +1 -1
- package/dist/src/bitgo/staking/iStakingWallet.js +1 -1
- package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/mpcUtils.js +16 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +2 -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 +1 -5
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +11 -0
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +33 -6
- package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +1 -1
- package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/recipientUtils.js +4 -3
- package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/redpallas/SMC/utils.js +1 -3
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts +2 -5
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2.js +3 -6
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts +0 -1
- package/dist/src/bitgo/utils/tss/redpallas/redpallasMPCv2KeyGenSender.d.ts.map +1 -1
- 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 +3 -1
- package/dist/src/bitgo/wallet/iWallet.d.ts +22 -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 +1 -1
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +4 -3
- package/dist/src/bitgo/wallet/wallet.d.ts +1 -1
- package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallet.js +25 -7
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +150 -87
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -2
- package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts +2 -0
- package/dist/test/unit/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -0
- package/dist/test/unit/bitgo/safe/derivableEd25519Pub.js +122 -0
- package/dist/test/unit/bitgo/safe/fixtures/derivableEd25519Pub.json +145 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/mpcUtils.wrapApprove.js +106 -0
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +38 -1
- package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +14 -1
- package/dist/test/unit/bitgo/utils/tss/redpallas/redpallasMPCv2.js +1 -2
- package/dist/test/unit/bitgo/utils/tss/redpallas/smcUtil.js +1 -3
- package/dist/test/unit/bitgo/wallet/BuildParams.js +13 -1
- package/dist/test/unit/bitgo/wallet/walletOptionsCodecs.js +4 -1
- package/dist/test/unit/bitgo/wallet/walletsEncryptionVersion.js +33 -13
- package/dist/test/unit/bitgo/wallet/walletsExternalSigner.js +8 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
package/dist/src/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export { EcdsaMPCv2Utils };
|
|
|
14
14
|
import { EddsaMPCv2Utils } from './bitgo/utils/tss/eddsa/eddsaMPCv2';
|
|
15
15
|
export { EddsaMPCv2Utils };
|
|
16
16
|
export type { EddsaSigningMaterial } from './bitgo/utils/tss/eddsa/eddsaMPCv2';
|
|
17
|
-
export { getEddsaSigningMaterial, signEddsaMpcV2RecoveryTx, isEddsaMpcV1SigningMaterial, getEddsaMpcV2RecoveryKeySharesFromReducedKey, signRecoveryEddsaMPCv2, EddsaMPCv2RecoveryFunctions, } from './bitgo/utils/tss/eddsa/eddsaMPCv2';
|
|
17
|
+
export { getEddsaSigningMaterial, isEddsaSigningMaterial, signEddsaMpcV2RecoveryTx, isEddsaMpcV1SigningMaterial, getEddsaMpcV2RecoveryKeySharesFromReducedKey, signRecoveryEddsaMPCv2, EddsaMPCv2RecoveryFunctions, } from './bitgo/utils/tss/eddsa/eddsaMPCv2';
|
|
18
18
|
export { verifyEddsaTssWalletAddress, verifyMPCWalletAddress } from './bitgo/utils/tss/addressVerification';
|
|
19
19
|
export { GShare, SignShare, YShare } from './account-lib/mpc/tss/eddsa/types';
|
|
20
20
|
export { TssEcdsaStep1ReturnMessage, TssEcdsaStep2ReturnMessage } from './bitgo/tss/types';
|
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,YAAY,EACV,yBAAyB,EACzB,kCAAkC,EAClC,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,kCAAkC,EAClC,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,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,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,4CAA4C,EAC5C,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,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"}
|
|
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,YAAY,EACV,yBAAyB,EACzB,kCAAkC,EAClC,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,kCAAkC,EAClC,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,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,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,4CAA4C,EAC5C,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAC5C,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
|
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
};
|
|
37
37
|
})();
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.common = exports.verifyMPCWalletAddress = exports.verifyEddsaTssWalletAddress = exports.EddsaMPCv2RecoveryFunctions = exports.signRecoveryEddsaMPCv2 = exports.getEddsaMpcV2RecoveryKeySharesFromReducedKey = exports.isEddsaMpcV1SigningMaterial = exports.signEddsaMpcV2RecoveryTx = exports.getEddsaSigningMaterial = exports.EddsaMPCv2Utils = exports.EcdsaMPCv2Utils = exports.EcdsaUtils = exports.EddsaUtils = exports.coins = exports.accountLib = void 0;
|
|
39
|
+
exports.common = exports.verifyMPCWalletAddress = exports.verifyEddsaTssWalletAddress = exports.EddsaMPCv2RecoveryFunctions = exports.signRecoveryEddsaMPCv2 = exports.getEddsaMpcV2RecoveryKeySharesFromReducedKey = exports.isEddsaMpcV1SigningMaterial = exports.signEddsaMpcV2RecoveryTx = exports.isEddsaSigningMaterial = exports.getEddsaSigningMaterial = exports.EddsaMPCv2Utils = exports.EcdsaMPCv2Utils = exports.EcdsaUtils = exports.EddsaUtils = exports.coins = exports.accountLib = void 0;
|
|
40
40
|
__exportStar(require("./account-lib"), exports);
|
|
41
41
|
exports.accountLib = __importStar(require("./account-lib"));
|
|
42
42
|
__exportStar(require("./api"), exports);
|
|
@@ -53,6 +53,7 @@ const eddsaMPCv2_1 = require("./bitgo/utils/tss/eddsa/eddsaMPCv2");
|
|
|
53
53
|
Object.defineProperty(exports, "EddsaMPCv2Utils", { enumerable: true, get: function () { return eddsaMPCv2_1.EddsaMPCv2Utils; } });
|
|
54
54
|
var eddsaMPCv2_2 = require("./bitgo/utils/tss/eddsa/eddsaMPCv2");
|
|
55
55
|
Object.defineProperty(exports, "getEddsaSigningMaterial", { enumerable: true, get: function () { return eddsaMPCv2_2.getEddsaSigningMaterial; } });
|
|
56
|
+
Object.defineProperty(exports, "isEddsaSigningMaterial", { enumerable: true, get: function () { return eddsaMPCv2_2.isEddsaSigningMaterial; } });
|
|
56
57
|
Object.defineProperty(exports, "signEddsaMpcV2RecoveryTx", { enumerable: true, get: function () { return eddsaMPCv2_2.signEddsaMpcV2RecoveryTx; } });
|
|
57
58
|
Object.defineProperty(exports, "isEddsaMpcV1SigningMaterial", { enumerable: true, get: function () { return eddsaMPCv2_2.isEddsaMpcV1SigningMaterial; } });
|
|
58
59
|
Object.defineProperty(exports, "getEddsaMpcV2RecoveryKeySharesFromReducedKey", { enumerable: true, get: function () { return eddsaMPCv2_2.getEddsaMpcV2RecoveryKeySharesFromReducedKey; } });
|
|
@@ -65,4 +66,4 @@ const common = __importStar(require("./common"));
|
|
|
65
66
|
exports.common = common;
|
|
66
67
|
__exportStar(require("./units"), exports);
|
|
67
68
|
__exportStar(require("./lightning"), exports);
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLDREQUE0QztBQUM1Qyx3Q0FBc0I7QUFDdEIsMENBQXdCO0FBQ3hCLGlEQUErQjtBQUMvQixpREFBaUM7QUFDakMseURBQTJEO0FBQ2xELDJGQURBLGtCQUFVLE9BQ0E7QUFvQm5CLHlEQUEyRDtBQUNsRCwyRkFEQSxrQkFBVSxPQUNBO0FBQ25CLG1FQUFxRTtBQUM1RCxnR0FEQSw0QkFBZSxPQUNBO0FBQ3hCLG1FQUFxRTtBQUM1RCxnR0FEQSw0QkFBZSxPQUNBO0FBRXhCLGlFQVE0QztBQVAxQyxxSEFBQSx1QkFBdUIsT0FBQTtBQUN2QixvSEFBQSxzQkFBc0IsT0FBQTtBQUN0QixzSEFBQSx3QkFBd0IsT0FBQTtBQUN4Qix5SEFBQSwyQkFBMkIsT0FBQTtBQUMzQiwwSUFBQSw0Q0FBNEMsT0FBQTtBQUM1QyxvSEFBQSxzQkFBc0IsT0FBQTtBQUN0Qix5SEFBQSwyQkFBMkIsT0FBQTtBQUU3Qiw2RUFBNEc7QUFBbkcsa0lBQUEsMkJBQTJCLE9BQUE7QUFBRSw2SEFBQSxzQkFBc0IsT0FBQTtBQUk1RCxpREFBbUM7QUFHMUIsd0JBQU07QUFGZiwwQ0FBd0I7QUFDeEIsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2NvdW50LWxpYic7XG5leHBvcnQgKiBhcyBhY2NvdW50TGliIGZyb20gJy4vYWNjb3VudC1saWInO1xuZXhwb3J0ICogZnJvbSAnLi9hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9iaXRnbyc7XG5leHBvcnQgKiBmcm9tICcuL2JpdGdvanNFcnJvcic7XG5leHBvcnQgKiBhcyBjb2lucyBmcm9tICcuL2NvaW5zJztcbmltcG9ydCB7IEVkZHNhVXRpbHMgfSBmcm9tICcuL2JpdGdvL3V0aWxzL3Rzcy9lZGRzYS9lZGRzYSc7XG5leHBvcnQgeyBFZGRzYVV0aWxzIH07XG5leHBvcnQgdHlwZSB7XG4gIEVjZHNhTVBDdjJLZXlHZW5DYWxsYmFja3MsXG4gIEVjZHNhTVBDdjJLZXlHZW5Jbml0aWFsaXplQ2FsbGJhY2ssXG4gIEVjZHNhTVBDdjJLZXlHZW5Sb3VuZDJDYWxsYmFjayxcbiAgRWNkc2FNUEN2MktleUdlblJvdW5kM0NhbGxiYWNrLFxuICBFY2RzYU1QQ3YyS2V5R2VuRmluYWxpemVDYWxsYmFjayxcbiAgRWRkc2FLZXlHZW5DYWxsYmFja3MsXG4gIEVkZHNhS2V5R2VuSW5pdGlhbGl6ZUNhbGxiYWNrLFxuICBFZGRzYUtleUdlbkluaXRpYWxpemVSZXN1bHQsXG4gIEVkZHNhS2V5R2VuRmluYWxpemVDYWxsYmFjayxcbiAgRWRkc2FLZXlHZW5GaW5hbGl6ZVJlc3VsdCxcbiAgRXh0ZXJuYWxTaWduZXJLZXlTaGFyZSxcbiAgRXh0ZXJuYWxTaWduZXJNcGNTdGF0ZSxcbiAgRWRkc2FNUEN2MktleUdlbkNhbGxiYWNrcyxcbiAgRWRkc2FNUEN2MktleUdlbkluaXRpYWxpemVDYWxsYmFjayxcbiAgRWRkc2FNUEN2MktleUdlblJvdW5kMUNhbGxiYWNrLFxuICBFZGRzYU1QQ3YyS2V5R2VuUm91bmQyQ2FsbGJhY2ssXG4gIEVkZHNhTVBDdjJLZXlHZW5GaW5hbGl6ZUNhbGxiYWNrLFxufSBmcm9tICcuL2JpdGdvL3dhbGxldC9pV2FsbGV0cyc7XG5pbXBvcnQgeyBFY2RzYVV0aWxzIH0gZnJvbSAnLi9iaXRnby91dGlscy90c3MvZWNkc2EvZWNkc2EnO1xuZXhwb3J0IHsgRWNkc2FVdGlscyB9O1xuaW1wb3J0IHsgRWNkc2FNUEN2MlV0aWxzIH0gZnJvbSAnLi9iaXRnby91dGlscy90c3MvZWNkc2EvZWNkc2FNUEN2Mic7XG5leHBvcnQgeyBFY2RzYU1QQ3YyVXRpbHMgfTtcbmltcG9ydCB7IEVkZHNhTVBDdjJVdGlscyB9IGZyb20gJy4vYml0Z28vdXRpbHMvdHNzL2VkZHNhL2VkZHNhTVBDdjInO1xuZXhwb3J0IHsgRWRkc2FNUEN2MlV0aWxzIH07XG5leHBvcnQgdHlwZSB7IEVkZHNhU2lnbmluZ01hdGVyaWFsIH0gZnJvbSAnLi9iaXRnby91dGlscy90c3MvZWRkc2EvZWRkc2FNUEN2Mic7XG5leHBvcnQge1xuICBnZXRFZGRzYVNpZ25pbmdNYXRlcmlhbCxcbiAgaXNFZGRzYVNpZ25pbmdNYXRlcmlhbCxcbiAgc2lnbkVkZHNhTXBjVjJSZWNvdmVyeVR4LFxuICBpc0VkZHNhTXBjVjFTaWduaW5nTWF0ZXJpYWwsXG4gIGdldEVkZHNhTXBjVjJSZWNvdmVyeUtleVNoYXJlc0Zyb21SZWR1Y2VkS2V5LFxuICBzaWduUmVjb3ZlcnlFZGRzYU1QQ3YyLFxuICBFZGRzYU1QQ3YyUmVjb3ZlcnlGdW5jdGlvbnMsXG59IGZyb20gJy4vYml0Z28vdXRpbHMvdHNzL2VkZHNhL2VkZHNhTVBDdjInO1xuZXhwb3J0IHsgdmVyaWZ5RWRkc2FUc3NXYWxsZXRBZGRyZXNzLCB2ZXJpZnlNUENXYWxsZXRBZGRyZXNzIH0gZnJvbSAnLi9iaXRnby91dGlscy90c3MvYWRkcmVzc1ZlcmlmaWNhdGlvbic7XG5leHBvcnQgeyBHU2hhcmUsIFNpZ25TaGFyZSwgWVNoYXJlIH0gZnJvbSAnLi9hY2NvdW50LWxpYi9tcGMvdHNzL2VkZHNhL3R5cGVzJztcbmV4cG9ydCB7IFRzc0VjZHNhU3RlcDFSZXR1cm5NZXNzYWdlLCBUc3NFY2RzYVN0ZXAyUmV0dXJuTWVzc2FnZSB9IGZyb20gJy4vYml0Z28vdHNzL3R5cGVzJztcbmV4cG9ydCB7IFNTaGFyZSB9IGZyb20gJy4vYml0Z28vdHNzL2VjZHNhL3R5cGVzJztcbmltcG9ydCAqIGFzIGNvbW1vbiBmcm9tICcuL2NvbW1vbic7XG5leHBvcnQgKiBmcm9tICcuL3VuaXRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGlnaHRuaW5nJztcbmV4cG9ydCB7IGNvbW1vbiB9O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivableEd25519Pub.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/safe/derivableEd25519Pub.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
require("should");
|
|
37
|
+
const src_1 = require("../../../../src");
|
|
38
|
+
// Cross-repo fixture: byte-identical to
|
|
39
|
+
// packages/wallet-platform/test/unit/base/safes/fixtures/derivableEd25519Pub.json.
|
|
40
|
+
// Four independent implementations of this split will otherwise drift, and the failure mode is an
|
|
41
|
+
// unrecoverable wallet.
|
|
42
|
+
const fixture = __importStar(require("./fixtures/derivableEd25519Pub.json"));
|
|
43
|
+
describe('derivableEd25519Pub', function () {
|
|
44
|
+
describe('format constants', function () {
|
|
45
|
+
it('matches the constants pinned in the shared fixture', function () {
|
|
46
|
+
src_1.DERIVABLE_ED25519_PUB_SPLIT_OFFSET.should.equal(fixture.splitOffset);
|
|
47
|
+
src_1.DERIVABLE_ED25519_CHAIN_CODE_LENGTH.should.equal(fixture.chainCodeLength);
|
|
48
|
+
src_1.DERIVABLE_ED25519_PUB_LENGTH.should.equal(fixture.compositeLength);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe('encodeDerivableEd25519Pub', function () {
|
|
52
|
+
for (const v of fixture.valid) {
|
|
53
|
+
it(`composes ${v.name}`, function () {
|
|
54
|
+
(0, src_1.encodeDerivableEd25519Pub)(v.pub, v.chainCode).should.equal(v.composite);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
for (const v of fixture.invalidEncodeInputs) {
|
|
58
|
+
it(`rejects ${v.name}`, function () {
|
|
59
|
+
(() => (0, src_1.encodeDerivableEd25519Pub)(v.pub, v.chainCode)).should.throw(/Invalid derivable ed25519 pub/);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
describe('decodeDerivableEd25519Pub', function () {
|
|
64
|
+
for (const v of fixture.valid) {
|
|
65
|
+
it(`splits ${v.name}`, function () {
|
|
66
|
+
(0, src_1.decodeDerivableEd25519Pub)(v.composite).should.eql({ pub: v.pub, chainCode: v.chainCode });
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
for (const v of fixture.invalidComposite) {
|
|
70
|
+
it(`rejects ${v.name}`, function () {
|
|
71
|
+
(() => (0, src_1.decodeDerivableEd25519Pub)(v.composite)).should.throw(/Invalid derivable ed25519 pub/);
|
|
72
|
+
(0, src_1.isDerivableEd25519Pub)(v.composite).should.equal(false);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
describe('round trip', function () {
|
|
77
|
+
for (const v of fixture.valid) {
|
|
78
|
+
it(`round-trips ${v.name}`, function () {
|
|
79
|
+
const composite = (0, src_1.encodeDerivableEd25519Pub)(v.pub, v.chainCode);
|
|
80
|
+
const decoded = (0, src_1.decodeDerivableEd25519Pub)(composite);
|
|
81
|
+
decoded.should.eql({ pub: v.pub, chainCode: v.chainCode });
|
|
82
|
+
(0, src_1.encodeDerivableEd25519Pub)(decoded.pub, decoded.chainCode).should.equal(composite);
|
|
83
|
+
(0, src_1.isDerivableEd25519Pub)(composite).should.equal(true);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
describe('isValidEd25519ChainCode', function () {
|
|
88
|
+
const { chainCode } = fixture.valid[3];
|
|
89
|
+
it('accepts 64 lowercase hex characters', function () {
|
|
90
|
+
(0, src_1.isValidEd25519ChainCode)(chainCode).should.equal(true);
|
|
91
|
+
});
|
|
92
|
+
it('rejects uppercase hex', function () {
|
|
93
|
+
(0, src_1.isValidEd25519ChainCode)(chainCode.toUpperCase()).should.equal(false);
|
|
94
|
+
});
|
|
95
|
+
it('rejects a chain code of the wrong length', function () {
|
|
96
|
+
(0, src_1.isValidEd25519ChainCode)(chainCode.slice(0, 63)).should.equal(false);
|
|
97
|
+
(0, src_1.isValidEd25519ChainCode)(chainCode + '0').should.equal(false);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
describe('isValidEd25519StrKeyPublicKey', function () {
|
|
101
|
+
for (const v of fixture.valid) {
|
|
102
|
+
it(`accepts the pub half of ${v.name}`, function () {
|
|
103
|
+
(0, src_1.isValidEd25519StrKeyPublicKey)(v.pub).should.equal(true);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
it('rejects a bad checksum', function () {
|
|
107
|
+
// last character of a known-good pub flipped
|
|
108
|
+
(0, src_1.isValidEd25519StrKeyPublicKey)('GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYA').should.equal(false);
|
|
109
|
+
});
|
|
110
|
+
it('rejects a secret seed', function () {
|
|
111
|
+
(0, src_1.isValidEd25519StrKeyPublicKey)('SA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH').should.equal(false);
|
|
112
|
+
});
|
|
113
|
+
it('rejects a non-base32 character', function () {
|
|
114
|
+
(0, src_1.isValidEd25519StrKeyPublicKey)('GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKY1').should.equal(false);
|
|
115
|
+
});
|
|
116
|
+
it('rejects the empty string and a composite pub', function () {
|
|
117
|
+
(0, src_1.isValidEd25519StrKeyPublicKey)('').should.equal(false);
|
|
118
|
+
(0, src_1.isValidEd25519StrKeyPublicKey)(fixture.valid[3].composite).should.equal(false);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhYmxlRWQyNTUxOVB1Yi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9iaXRnby9zYWZlL2Rlcml2YWJsZUVkMjU1MTlQdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQkFBZ0I7QUFDaEIseUNBU3lCO0FBRXpCLHdDQUF3QztBQUN4QyxtRkFBbUY7QUFDbkYsa0dBQWtHO0FBQ2xHLHdCQUF3QjtBQUN4Qiw2RUFBK0Q7QUFFL0QsUUFBUSxDQUFDLHFCQUFxQixFQUFFO0lBQzlCLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtRQUMzQixFQUFFLENBQUMsb0RBQW9ELEVBQUU7WUFDdkQsd0NBQWtDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckUseUNBQW1DLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDMUUsa0NBQTRCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQywyQkFBMkIsRUFBRTtRQUNwQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUEsK0JBQXlCLEVBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMs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O1FBQ2hILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFO1lBQ2pELElBQUEsbUNBQTZCLEVBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxJQUFBLG1DQUE2QixFQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQge1xuICBERVJJVkFCTEVfRUQyNTUxOV9DSEFJTl9DT0RFX0xFTkdUSCxcbiAgREVSSVZBQkxFX0VEMjU1MTlfUFVCX0xFTkdUSCxcbiAgREVSSVZBQkxFX0VEMjU1MTlfUFVCX1NQTElUX09GRlNFVCxcbiAgZGVjb2RlRGVyaXZhYmxlRWQyNTUxOVB1YixcbiAgZW5jb2RlRGVyaXZhYmxlRWQyNTUxOVB1YixcbiAgaXNEZXJpdmFibGVFZDI1NTE5UHViLFxuICBpc1ZhbGlkRWQyNTUxOUNoYWluQ29kZSxcbiAgaXNWYWxpZEVkMjU1MTlTdHJLZXlQdWJsaWNLZXksXG59IGZyb20gJy4uLy4uLy4uLy4uL3NyYyc7XG5cbi8vIENyb3NzLXJlcG8gZml4dHVyZTogYnl0ZS1pZGVudGljYWwgdG9cbi8vIHBhY2thZ2VzL3dhbGxldC1wbGF0Zm9ybS90ZXN0L3VuaXQvYmFzZS9zYWZlcy9maXh0dXJlcy9kZXJpdmFibGVFZDI1NTE5UHViLmpzb24uXG4vLyBGb3VyIGluZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIHNwbGl0IHdpbGwgb3RoZXJ3aXNlIGRyaWZ0LCBhbmQgdGhlIGZhaWx1cmUgbW9kZSBpcyBhblxuLy8gdW5yZWNvdmVyYWJsZSB3YWxsZXQuXG5pbXBvcnQgKiBhcyBmaXh0dXJlIGZyb20gJy4vZml4dHVyZXMvZGVyaXZhYmxlRWQyNTUxOVB1Yi5qc29uJztcblxuZGVzY3JpYmUoJ2Rlcml2YWJsZUVkMjU1MTlQdWInLCBmdW5jdGlvbiAoKSB7XG4gIGRlc2NyaWJlKCdmb3JtYXQgY29uc3RhbnRzJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdtYXRjaGVzIHRoZSBjb25zdGFudHMgcGlubmVkIGluIHRoZSBzaGFyZWQgZml4dHVyZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIERFUklWQUJMRV9FRDI1NTE5X1BVQl9TUExJVF9PRkZTRVQuc2hvdWxkLmVxdWFsKGZpeHR1cmUuc3BsaXRPZmZzZXQpO1xuICAgICAgREVSSVZBQkxFX0VEMjU1MTlfQ0hBSU5fQ09ERV9MRU5HVEguc2hvdWxkLmVxdWFsKGZpeHR1cmUuY2hhaW5Db2RlTGVuZ3RoKTtcbiAgICAgIERFUklWQUJMRV9FRDI1NTE5X1BVQl9MRU5HVEguc2hvdWxkLmVxdWFsKGZpeHR1cmUuY29tcG9zaXRlTGVuZ3RoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2VuY29kZURlcml2YWJsZUVkMjU1MTlQdWInLCBmdW5jdGlvbiAoKSB7XG4gICAgZm9yIChjb25zdCB2IG9mIGZpeHR1cmUudmFsaWQpIHtcbiAgICAgIGl0KGBjb21wb3NlcyAke3YubmFtZX1gLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGVuY29kZURlcml2YWJsZUVkMjU1MTlQdWIodi5wdWIsIHYuY2hhaW5Db2RlKS5zaG91bGQuZXF1YWwodi5jb21wb3NpdGUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB2IG9mIGZpeHR1cmUuaW52YWxpZEVuY29kZUlucHV0cykge1xuICAgICAgaXQoYHJlamVjdHMgJHt2Lm5hbWV9YCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAoKCkgPT4gZW5jb2RlRGVyaXZhYmxlRWQyNTUxOVB1Yih2LnB1Yiwgdi5jaGFpbkNvZGUpKS5zaG91bGQudGhyb3coL0ludmFsaWQgZGVyaXZhYmxlIGVkMjU1MTkgcHViLyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdkZWNvZGVEZXJpdmFibGVFZDI1NTE5UHViJywgZnVuY3Rpb24gKCkge1xuICAgIGZvciAoY29uc3QgdiBvZiBmaXh0dXJlLnZhbGlkKSB7XG4gICAgICBpdChgc3BsaXRzICR7di5uYW1lfWAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZGVjb2RlRGVyaXZhYmxlRWQyNTUxOVB1Yih2LmNvbXBvc2l0ZSkuc2hvdWxkLmVxbCh7IHB1Yjogdi5wdWIsIGNoYWluQ29kZTogdi5jaGFpbkNvZGUgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHYgb2YgZml4dHVyZS5pbnZhbGlkQ29tcG9zaXRlKSB7XG4gICAgICBpdChgcmVqZWN0cyAke3YubmFtZX1gLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICgoKSA9PiBkZWNvZGVEZXJpdmFibGVFZDI1NTE5UHViKHYuY29tcG9zaXRlKSkuc2hvdWxkLnRocm93KC9JbnZhbGlkIGRlcml2YWJsZSBlZDI1NTE5IHB1Yi8pO1xuICAgICAgICBpc0Rlcml2YWJsZUVkMjU1MTlQdWIodi5jb21wb3NpdGUpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyb3VuZCB0cmlwJywgZnVuY3Rpb24gKCkge1xuICAgIGZvciAoY29uc3QgdiBvZiBmaXh0dXJlLnZhbGlkKSB7XG4gICAgICBpdChgcm91bmQtdHJpcHMgJHt2Lm5hbWV9YCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBjb21wb3NpdGUgPSBlbmNvZGVEZXJpdmFibGVFZDI1NTE5UHViKHYucHViLCB2LmNoYWluQ29kZSk7XG4gICAgICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVEZXJpdmFibGVFZDI1NTE5UHViKGNvbXBvc2l0ZSk7XG4gICAgICAgIGRlY29kZWQuc2hvdWxkLmVxbCh7IHB1Yjogdi5wdWIsIGNoYWluQ29kZTogdi5jaGFpbkNvZGUgfSk7XG4gICAgICAgIGVuY29kZURlcml2YWJsZUVkMjU1MTlQdWIoZGVjb2RlZC5wdWIsIGRlY29kZWQuY2hhaW5Db2RlKS5zaG91bGQuZXF1YWwoY29tcG9zaXRlKTtcbiAgICAgICAgaXNEZXJpdmFibGVFZDI1NTE5UHViKGNvbXBvc2l0ZSkuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuICBkZXNjcmliZSgnaXNWYWxpZEVkMjU1MTlDaGFpbkNvZGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgeyBjaGFpbkNvZGUgfSA9IGZpeHR1cmUudmFsaWRbM107XG5cbiAgICBpdCgnYWNjZXB0cyA2NCBsb3dlcmNhc2UgaGV4IGNoYXJhY3RlcnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpc1ZhbGlkRWQyNTUxOUNoYWluQ29kZShjaGFpbkNvZGUpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIHVwcGVyY2FzZSBoZXgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpc1ZhbGlkRWQyNTUxOUNoYWluQ29kZShjaGFpbkNvZGUudG9VcHBlckNhc2UoKSkuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIGEgY2hhaW4gY29kZSBvZiB0aGUgd3JvbmcgbGVuZ3RoJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXNWYWxpZEVkMjU1MTlDaGFpbkNvZGUoY2hhaW5Db2RlLnNsaWNlKDAsIDYzKSkuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICAgIGlzVmFsaWRFZDI1NTE5Q2hhaW5Db2RlKGNoYWluQ29kZSArICcwJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2lzVmFsaWRFZDI1NTE5U3RyS2V5UHVibGljS2V5JywgZnVuY3Rpb24gKCkge1xuICAgIGZvciAoY29uc3QgdiBvZiBmaXh0dXJlLnZhbGlkKSB7XG4gICAgICBpdChgYWNjZXB0cyB0aGUgcHViIGhhbGYgb2YgJHt2Lm5hbWV9YCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpc1ZhbGlkRWQyNTUxOVN0cktleVB1YmxpY0tleSh2LnB1Yikuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXQoJ3JlamVjdHMgYSBiYWQgY2hlY2tzdW0nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBsYXN0IGNoYXJhY3RlciBvZiBhIGtub3duLWdvb2QgcHViIGZsaXBwZWRcbiAgICAgIGlzVmFsaWRFZDI1NTE5U3RyS2V5UHVibGljS2V5KCdHQTVXVUo1NFoyM0tJTExDVU9VTkFLVFBCVlpXS01RVk80TzZFUTVHSExBRVJJTUxMSE5DU0tZQScpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVqZWN0cyBhIHNlY3JldCBzZWVkJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXNWYWxpZEVkMjU1MTlTdHJLZXlQdWJsaWNLZXkoJ1NBNVdVSjU0WjIzS0lMTENVT1VOQUtUUEJWWldLTVFWTzRPNkVRNUdITEFFUklNTExITkNTS1lIJykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWplY3RzIGEgbm9uLWJhc2UzMiBjaGFyYWN0ZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpc1ZhbGlkRWQyNTUxOVN0cktleVB1YmxpY0tleSgnR0E1V1VKNTRaMjNLSUxMQ1VPVU5BS1RQQlZaV0tNUVZPNE82RVE1R0hMQUVSSU1MTEhOQ1NLWTEnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlamVjdHMgdGhlIGVtcHR5IHN0cmluZyBhbmQgYSBjb21wb3NpdGUgcHViJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXNWYWxpZEVkMjU1MTlTdHJLZXlQdWJsaWNLZXkoJycpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgICBpc1ZhbGlkRWQyNTUxOVN0cktleVB1YmxpY0tleShmaXh0dXJlLnZhbGlkWzNdLmNvbXBvc2l0ZSkuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Shared cross-repo fixture for the derivable slot-4 (ed25519Multisig) root pub format: composite = <56-char Stellar StrKey ed25519 public key> || <64 lowercase hex chain code>. Plain JSON with no repo-specific imports so wallet-platform, BitGoJS sdk-core, BitGoJS modules/key-card and WRW can all consume this identical file. Append new vectors rather than editing existing ones in place.",
|
|
3
|
+
"splitOffset": 56,
|
|
4
|
+
"chainCodeLength": 64,
|
|
5
|
+
"compositeLength": 120,
|
|
6
|
+
"valid": [
|
|
7
|
+
{
|
|
8
|
+
"name": "all-zero pub with all-zero chain code",
|
|
9
|
+
"pub": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF",
|
|
10
|
+
"chainCode": "0000000000000000000000000000000000000000000000000000000000000000",
|
|
11
|
+
"composite": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHF0000000000000000000000000000000000000000000000000000000000000000"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "all-ones pub with all-f chain code",
|
|
15
|
+
"pub": "GD7777777777777777777777777777777777777777777777777773DB",
|
|
16
|
+
"chainCode": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
17
|
+
"composite": "GD7777777777777777777777777777777777777777777777777773DBffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "low-order pub with a leading-zero chain code",
|
|
21
|
+
"pub": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6PV",
|
|
22
|
+
"chainCode": "0000000000000000000000000000000000000000000000000000000000000001",
|
|
23
|
+
"composite": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6PV0000000000000000000000000000000000000000000000000000000000000001"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "typical pub with a mixed alphanumeric chain code",
|
|
27
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH",
|
|
28
|
+
"chainCode": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
29
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "typical pub with an all-digit chain code",
|
|
33
|
+
"pub": "GDD7GGYPJUX3BNVA6OPIXUFXYOY2FVHF6YDRQKJ2JNOG27UPSAJDJCMV",
|
|
34
|
+
"chainCode": "1234567890123456789012345678901234567890123456789012345678901234",
|
|
35
|
+
"composite": "GDD7GGYPJUX3BNVA6OPIXUFXYOY2FVHF6YDRQKJ2JNOG27UPSAJDJCMV1234567890123456789012345678901234567890123456789012345678901234"
|
|
36
|
+
}
|
|
37
|
+
],
|
|
38
|
+
"invalidComposite": [
|
|
39
|
+
{
|
|
40
|
+
"name": "empty string",
|
|
41
|
+
"composite": "",
|
|
42
|
+
"reason": "length"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "bare 56-char pub with no chain code",
|
|
46
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH",
|
|
47
|
+
"reason": "length"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"name": "bare chain code with no pub",
|
|
51
|
+
"composite": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
52
|
+
"reason": "length"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "uppercase hex chain code",
|
|
56
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH9A0F3C7D1E5B28460AF3D92C6E81B7053FA4C2E98D17B60543A2FC8E19D7B046",
|
|
57
|
+
"reason": "chainCode"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "mixed-case hex chain code",
|
|
61
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH9A0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
62
|
+
"reason": "chainCode"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "non-hex character in chain code",
|
|
66
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYHga0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
67
|
+
"reason": "chainCode"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "chain code one character short",
|
|
71
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b04",
|
|
72
|
+
"reason": "length"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "chain code one character long",
|
|
76
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b0460",
|
|
77
|
+
"reason": "length"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "pub half is not a valid StrKey (bad checksum)",
|
|
81
|
+
"composite": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYA9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
82
|
+
"reason": "pub"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "pub half is a secret seed (S...) not a public key",
|
|
86
|
+
"composite": "SA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
87
|
+
"reason": "pub"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "halves swapped",
|
|
91
|
+
"composite": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8eGA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH19d7b046",
|
|
92
|
+
"reason": "pub"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"invalidEncodeInputs": [
|
|
96
|
+
{
|
|
97
|
+
"name": "empty pub",
|
|
98
|
+
"pub": "",
|
|
99
|
+
"chainCode": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
100
|
+
"reason": "pub"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "pub with bad StrKey checksum",
|
|
104
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYA",
|
|
105
|
+
"chainCode": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
106
|
+
"reason": "pub"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "composite passed as the pub half",
|
|
110
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
111
|
+
"chainCode": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
112
|
+
"reason": "pub"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "empty chain code",
|
|
116
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH",
|
|
117
|
+
"chainCode": "",
|
|
118
|
+
"reason": "chainCode"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "uppercase hex chain code",
|
|
122
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH",
|
|
123
|
+
"chainCode": "9A0F3C7D1E5B28460AF3D92C6E81B7053FA4C2E98D17B60543A2FC8E19D7B046",
|
|
124
|
+
"reason": "chainCode"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "chain code with 0x prefix",
|
|
128
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH",
|
|
129
|
+
"chainCode": "0x0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b046",
|
|
130
|
+
"reason": "chainCode"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"name": "chain code too short",
|
|
134
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH",
|
|
135
|
+
"chainCode": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b04",
|
|
136
|
+
"reason": "chainCode"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "chain code too long",
|
|
140
|
+
"pub": "GA5WUJ54Z23KILLCUOUNAKTPBVZWKMQVO4O6EQ5GHLAERIMLLHNCSKYH",
|
|
141
|
+
"chainCode": "9a0f3c7d1e5b28460af3d92c6e81b7053fa4c2e98d17b60543a2fc8e19d7b0460",
|
|
142
|
+
"reason": "chainCode"
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mpcUtils.wrapApprove.d.ts","sourceRoot":"","sources":["../../../../../test/unit/bitgo/utils/mpcUtils.wrapApprove.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const assert_1 = __importDefault(require("assert"));
|
|
40
|
+
const sinon = __importStar(require("sinon"));
|
|
41
|
+
const mpcUtils_1 = require("../../../../src/bitgo/utils/mpcUtils");
|
|
42
|
+
const src_1 = require("../../../../src");
|
|
43
|
+
class TestMpcUtils extends mpcUtils_1.MpcUtils {
|
|
44
|
+
createKeychains() {
|
|
45
|
+
return Promise.reject(new Error('unused'));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
describe('populateIntent wrapApprove / wrap', function () {
|
|
49
|
+
const reqId = new src_1.RequestTracer();
|
|
50
|
+
let mpcUtils;
|
|
51
|
+
let coin;
|
|
52
|
+
beforeEach(function () {
|
|
53
|
+
const mockBitgo = { getEnv: sinon.stub().returns('test') };
|
|
54
|
+
coin = {
|
|
55
|
+
getChain: () => 'hteth',
|
|
56
|
+
getFamily: () => 'eth',
|
|
57
|
+
isEVM: () => true,
|
|
58
|
+
supportsTss: () => true,
|
|
59
|
+
};
|
|
60
|
+
mpcUtils = new TestMpcUtils(mockBitgo, coin);
|
|
61
|
+
});
|
|
62
|
+
afterEach(function () {
|
|
63
|
+
sinon.restore();
|
|
64
|
+
});
|
|
65
|
+
it('flattens wrapParams onto wrapApprove intent', function () {
|
|
66
|
+
const wrapParams = { tokenName: 'hteth:cusdt', amount: '1000000' };
|
|
67
|
+
const feeOptions = { maxFeePerGas: 3000000000, maxPriorityFeePerGas: 2000000000 };
|
|
68
|
+
const intent = mpcUtils.populateIntent(coin, {
|
|
69
|
+
reqId,
|
|
70
|
+
intentType: 'wrapApprove',
|
|
71
|
+
wrapParams,
|
|
72
|
+
feeOptions,
|
|
73
|
+
});
|
|
74
|
+
assert_1.default.strictEqual(intent.intentType, 'wrapApprove');
|
|
75
|
+
assert_1.default.strictEqual(intent.tokenName, wrapParams.tokenName);
|
|
76
|
+
assert_1.default.strictEqual(intent.amount, wrapParams.amount);
|
|
77
|
+
assert_1.default.deepStrictEqual(intent.feeOptions, feeOptions);
|
|
78
|
+
assert_1.default.strictEqual(intent.recipients, undefined);
|
|
79
|
+
});
|
|
80
|
+
it('flattens wrapParams onto wrap intent', function () {
|
|
81
|
+
const wrapParams = { tokenName: 'hteth:cusdt', amount: '1000000' };
|
|
82
|
+
const intent = mpcUtils.populateIntent(coin, {
|
|
83
|
+
reqId,
|
|
84
|
+
intentType: 'wrap',
|
|
85
|
+
wrapParams,
|
|
86
|
+
});
|
|
87
|
+
assert_1.default.strictEqual(intent.intentType, 'wrap');
|
|
88
|
+
assert_1.default.strictEqual(intent.tokenName, wrapParams.tokenName);
|
|
89
|
+
assert_1.default.strictEqual(intent.amount, wrapParams.amount);
|
|
90
|
+
assert_1.default.strictEqual(intent.recipients, undefined);
|
|
91
|
+
});
|
|
92
|
+
it('requires wrapParams for wrapApprove', function () {
|
|
93
|
+
assert_1.default.throws(() => mpcUtils.populateIntent(coin, {
|
|
94
|
+
reqId,
|
|
95
|
+
intentType: 'wrapApprove',
|
|
96
|
+
}), /wrapParams/);
|
|
97
|
+
});
|
|
98
|
+
it('rejects non-positive wrapParams.amount', function () {
|
|
99
|
+
assert_1.default.throws(() => mpcUtils.populateIntent(coin, {
|
|
100
|
+
reqId,
|
|
101
|
+
intentType: 'wrapApprove',
|
|
102
|
+
wrapParams: { tokenName: 'hteth:cusdt', amount: '0' },
|
|
103
|
+
}), /wrapParams.amount/);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXBjVXRpbHMud3JhcEFwcHJvdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvYml0Z28vdXRpbHMvbXBjVXRpbHMud3JhcEFwcHJvdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNkNBQStCO0FBRy9CLG1FQUFnRTtBQUNoRSx5Q0FBZ0Q7QUFFaEQsTUFBTSxZQUFhLFNBQVEsbUJBQVE7SUFDakMsZUFBZTtRQUNiLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQUVELFFBQVEsQ0FBQyxtQ0FBbUMsRUFBRTtJQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFhLEVBQUUsQ0FBQztJQUNsQyxJQUFJLFFBQXNCLENBQUM7SUFDM0IsSUFBSSxJQUFlLENBQUM7SUFFcEIsVUFBVSxDQUFDO1FBQ1QsTUFBTSxTQUFTLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBMEIsQ0FBQztRQUNuRixJQUFJLEdBQUc7WUFDTCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTztZQUN2QixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztZQUN0QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtZQUNqQixXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtTQUNBLENBQUM7UUFDMUIsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQztRQUNSLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRTtRQUNoRCxNQUFNLFVBQVUsR0FBRyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ25FLE1BQU0sVUFBVSxHQUFHLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUVsRixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtZQUMzQyxLQUFLO1lBQ0wsVUFBVSxFQUFFLGFBQWE7WUFDekIsVUFBVTtZQUNWLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELGdCQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELGdCQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELGdCQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRTtRQUN6QyxNQUFNLFVBQVUsR0FBRyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBRW5FLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO1lBQzNDLEtBQUs7WUFDTCxVQUFVLEVBQUUsTUFBTTtZQUNsQixVQUFVO1NBQ1gsQ0FBQyxDQUFDO1FBRUgsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5QyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHFDQUFxQyxFQUFFO1FBQ3hDLGdCQUFNLENBQUMsTUFBTSxDQUNYLEdBQUcsRUFBRSxDQUNILFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO1lBQzVCLEtBQUs7WUFDTCxVQUFVLEVBQUUsYUFBYTtTQUMxQixDQUFDLEVBQ0osWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRTtRQUMzQyxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUUsQ0FDSCxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRTtZQUM1QixLQUFLO1lBQ0wsVUFBVSxFQUFFLGFBQWE7WUFDekIsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFO1NBQ3RELENBQUMsRUFDSixtQkFBbUIsQ0FDcEIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvYml0Z28vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBNcGNVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9iaXRnby91dGlscy9tcGNVdGlscyc7XG5pbXBvcnQgeyBSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjJztcblxuY2xhc3MgVGVzdE1wY1V0aWxzIGV4dGVuZHMgTXBjVXRpbHMge1xuICBjcmVhdGVLZXljaGFpbnMoKTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcigndW51c2VkJykpO1xuICB9XG59XG5cbmRlc2NyaWJlKCdwb3B1bGF0ZUludGVudCB3cmFwQXBwcm92ZSAvIHdyYXAnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHJlcUlkID0gbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgbGV0IG1wY1V0aWxzOiBUZXN0TXBjVXRpbHM7XG4gIGxldCBjb2luOiBJQmFzZUNvaW47XG5cbiAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgbW9ja0JpdGdvID0geyBnZXRFbnY6IHNpbm9uLnN0dWIoKS5yZXR1cm5zKCd0ZXN0JykgfSBhcyB1bmtub3duIGFzIEJpdEdvQmFzZTtcbiAgICBjb2luID0ge1xuICAgICAgZ2V0Q2hhaW46ICgpID0+ICdodGV0aCcsXG4gICAgICBnZXRGYW1pbHk6ICgpID0+ICdldGgnLFxuICAgICAgaXNFVk06ICgpID0+IHRydWUsXG4gICAgICBzdXBwb3J0c1RzczogKCkgPT4gdHJ1ZSxcbiAgICB9IGFzIHVua25vd24gYXMgSUJhc2VDb2luO1xuICAgIG1wY1V0aWxzID0gbmV3IFRlc3RNcGNVdGlscyhtb2NrQml0Z28sIGNvaW4pO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoJ2ZsYXR0ZW5zIHdyYXBQYXJhbXMgb250byB3cmFwQXBwcm92ZSBpbnRlbnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3Qgd3JhcFBhcmFtcyA9IHsgdG9rZW5OYW1lOiAnaHRldGg6Y3VzZHQnLCBhbW91bnQ6ICcxMDAwMDAwJyB9O1xuICAgIGNvbnN0IGZlZU9wdGlvbnMgPSB7IG1heEZlZVBlckdhczogMzAwMDAwMDAwMCwgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IDIwMDAwMDAwMDAgfTtcblxuICAgIGNvbnN0IGludGVudCA9IG1wY1V0aWxzLnBvcHVsYXRlSW50ZW50KGNvaW4sIHtcbiAgICAgIHJlcUlkLFxuICAgICAgaW50ZW50VHlwZTogJ3dyYXBBcHByb3ZlJyxcbiAgICAgIHdyYXBQYXJhbXMsXG4gICAgICBmZWVPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludGVudC5pbnRlbnRUeXBlLCAnd3JhcEFwcHJvdmUnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW50ZW50LnRva2VuTmFtZSwgd3JhcFBhcmFtcy50b2tlbk5hbWUpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnRlbnQuYW1vdW50LCB3cmFwUGFyYW1zLmFtb3VudCk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnRlbnQuZmVlT3B0aW9ucywgZmVlT3B0aW9ucyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludGVudC5yZWNpcGllbnRzLCB1bmRlZmluZWQpO1xuICB9KTtcblxuICBpdCgnZmxhdHRlbnMgd3JhcFBhcmFtcyBvbnRvIHdyYXAgaW50ZW50JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdyYXBQYXJhbXMgPSB7IHRva2VuTmFtZTogJ2h0ZXRoOmN1c2R0JywgYW1vdW50OiAnMTAwMDAwMCcgfTtcblxuICAgIGNvbnN0IGludGVudCA9IG1wY1V0aWxzLnBvcHVsYXRlSW50ZW50KGNvaW4sIHtcbiAgICAgIHJlcUlkLFxuICAgICAgaW50ZW50VHlwZTogJ3dyYXAnLFxuICAgICAgd3JhcFBhcmFtcyxcbiAgICB9KTtcblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnRlbnQuaW50ZW50VHlwZSwgJ3dyYXAnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW50ZW50LnRva2VuTmFtZSwgd3JhcFBhcmFtcy50b2tlbk5hbWUpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbnRlbnQuYW1vdW50LCB3cmFwUGFyYW1zLmFtb3VudCk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGludGVudC5yZWNpcGllbnRzLCB1bmRlZmluZWQpO1xuICB9KTtcblxuICBpdCgncmVxdWlyZXMgd3JhcFBhcmFtcyBmb3Igd3JhcEFwcHJvdmUnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+XG4gICAgICAgIG1wY1V0aWxzLnBvcHVsYXRlSW50ZW50KGNvaW4sIHtcbiAgICAgICAgICByZXFJZCxcbiAgICAgICAgICBpbnRlbnRUeXBlOiAnd3JhcEFwcHJvdmUnLFxuICAgICAgICB9KSxcbiAgICAgIC93cmFwUGFyYW1zL1xuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdyZWplY3RzIG5vbi1wb3NpdGl2ZSB3cmFwUGFyYW1zLmFtb3VudCcsIGZ1bmN0aW9uICgpIHtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT5cbiAgICAgICAgbXBjVXRpbHMucG9wdWxhdGVJbnRlbnQoY29pbiwge1xuICAgICAgICAgIHJlcUlkLFxuICAgICAgICAgIGludGVudFR5cGU6ICd3cmFwQXBwcm92ZScsXG4gICAgICAgICAgd3JhcFBhcmFtczogeyB0b2tlbk5hbWU6ICdodGV0aDpjdXNkdCcsIGFtb3VudDogJzAnIH0sXG4gICAgICAgIH0pLFxuICAgICAgL3dyYXBQYXJhbXMuYW1vdW50L1xuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=
|