@bitgo-beta/sdk-coin-sol 7.6.4-beta.660 → 7.6.4-beta.662
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/cjs/src/lib/index.d.ts +1 -1
- package/dist/cjs/src/lib/index.d.ts.map +1 -1
- package/dist/cjs/src/lib/index.js +2 -3
- package/dist/cjs/src/lib/tokenExtensions.d.ts +0 -5
- package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -1
- package/dist/cjs/src/lib/tokenExtensions.js +8 -15
- package/dist/cjs/test/unit/tokenExtensions.js +33 -7
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/lib/index.d.ts +1 -1
- package/dist/esm/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +2 -2
- package/dist/esm/lib/tokenExtensions.d.ts +0 -5
- package/dist/esm/lib/tokenExtensions.d.ts.map +1 -1
- package/dist/esm/lib/tokenExtensions.js +8 -14
- package/package.json +7 -7
|
@@ -21,6 +21,6 @@ export { WalletInitializationBuilder } from './walletInitializationBuilder';
|
|
|
21
21
|
export { Interface, Utils };
|
|
22
22
|
export { MessageBuilderFactory } from './messages';
|
|
23
23
|
export { explainSolTransaction, ExplainTransactionWasmOptions } from './explainTransactionWasm';
|
|
24
|
-
export { MintExtensionReadResult,
|
|
24
|
+
export { MintExtensionReadResult, extensionTypeNames, mapModeledExtensions, parseMintExtensions, readMintExtensions, } from './tokenExtensions';
|
|
25
25
|
export { ResolvePermissionlessThawResult, SolAccountFetcher, buildSolAccountConnection, resolvePermissionlessThaw, resolveTransferHookAccounts, } from './token2022Resolve';
|
|
26
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EACL,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC"}
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.resolveTransferHookAccounts = exports.resolvePermissionlessThaw = exports.buildSolAccountConnection = exports.readMintExtensions = exports.parseMintExtensions = exports.mapModeledExtensions = exports.extensionTypeNames = exports.
|
|
36
|
+
exports.resolveTransferHookAccounts = exports.resolvePermissionlessThaw = exports.buildSolAccountConnection = exports.readMintExtensions = exports.parseMintExtensions = exports.mapModeledExtensions = exports.extensionTypeNames = exports.explainSolTransaction = exports.MessageBuilderFactory = exports.Utils = exports.Interface = exports.WalletInitializationBuilder = exports.TransferBuilderV2 = exports.TransferBuilder = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.TokenTransferBuilder = exports.StakingWithdrawBuilder = exports.StakingRawMsgAuthorizeBuilder = exports.StakingDelegateBuilder = exports.StakingDeactivateBuilder = exports.StakingAuthorizeBuilder = exports.StakingActivateBuilder = exports.KeyPair = exports.CustomInstructionBuilder = exports.ConfidentialTransferBuilder = exports.CloseAtaBuilder = exports.AtaInitializationBuilder = void 0;
|
|
37
37
|
const Interface = __importStar(require("./iface"));
|
|
38
38
|
exports.Interface = Interface;
|
|
39
39
|
const Utils = __importStar(require("./utils"));
|
|
@@ -79,7 +79,6 @@ Object.defineProperty(exports, "MessageBuilderFactory", { enumerable: true, get:
|
|
|
79
79
|
var explainTransactionWasm_1 = require("./explainTransactionWasm");
|
|
80
80
|
Object.defineProperty(exports, "explainSolTransaction", { enumerable: true, get: function () { return explainTransactionWasm_1.explainSolTransaction; } });
|
|
81
81
|
var tokenExtensions_1 = require("./tokenExtensions");
|
|
82
|
-
Object.defineProperty(exports, "assertExtensionCompatibility", { enumerable: true, get: function () { return tokenExtensions_1.assertExtensionCompatibility; } });
|
|
83
82
|
Object.defineProperty(exports, "extensionTypeNames", { enumerable: true, get: function () { return tokenExtensions_1.extensionTypeNames; } });
|
|
84
83
|
Object.defineProperty(exports, "mapModeledExtensions", { enumerable: true, get: function () { return tokenExtensions_1.mapModeledExtensions; } });
|
|
85
84
|
Object.defineProperty(exports, "parseMintExtensions", { enumerable: true, get: function () { return tokenExtensions_1.parseMintExtensions; } });
|
|
@@ -88,4 +87,4 @@ var token2022Resolve_1 = require("./token2022Resolve");
|
|
|
88
87
|
Object.defineProperty(exports, "buildSolAccountConnection", { enumerable: true, get: function () { return token2022Resolve_1.buildSolAccountConnection; } });
|
|
89
88
|
Object.defineProperty(exports, "resolvePermissionlessThaw", { enumerable: true, get: function () { return token2022Resolve_1.resolvePermissionlessThaw; } });
|
|
90
89
|
Object.defineProperty(exports, "resolveTransferHookAccounts", { enumerable: true, get: function () { return token2022Resolve_1.resolveTransferHookAccounts; } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFxQztBQXFCNUIsOEJBQVM7QUFwQmxCLCtDQUFpQztBQW9CYixzQkFBSztBQWxCekIsdUVBQXNFO0FBQTdELG9JQUFBLHdCQUF3QixPQUFBO0FBQ2pDLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIsNkVBQTRFO0FBQW5FLDBJQUFBLDJCQUEyQixPQUFBO0FBQ3BDLHVFQUFzRTtBQUE3RCxvSUFBQSx3QkFBd0IsT0FBQTtBQUNqQyxxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLG1FQUFrRTtBQUF6RCxnSUFBQSxzQkFBc0IsT0FBQTtBQUMvQixxRUFBb0U7QUFBM0Qsa0lBQUEsdUJBQXVCLE9BQUE7QUFDaEMsdUVBQXNFO0FBQTdELG9JQUFBLHdCQUF3QixPQUFBO0FBQ2pDLG1FQUFrRTtBQUF6RCxnSUFBQSxzQkFBc0IsT0FBQTtBQUMvQixpRkFBZ0Y7QUFBdkUsOElBQUEsNkJBQTZCLE9BQUE7QUFDdEMsbUVBQWtFO0FBQXpELGdJQUFBLHNCQUFzQixPQUFBO0FBQy9CLCtEQUE4RDtBQUFyRCw0SEFBQSxvQkFBb0IsT0FBQTtBQUM3Qiw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQix5RUFBd0U7QUFBL0Qsc0lBQUEseUJBQXlCLE9BQUE7QUFDbEMscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4Qix5REFBd0Q7QUFBL0Msc0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIsNkVBQTRFO0FBQW5FLDBJQUFBLDJCQUEyQixPQUFBO0FBRXBDLHVDQUFtRDtBQUExQyxpSEFBQSxxQkFBcUIsT0FBQTtBQUM5QixtRUFBZ0c7QUFBdkYsK0hBQUEscUJBQXFCLE9BQUE7QUFDOUIscURBTTJCO0FBSnpCLHFIQUFBLGtCQUFrQixPQUFBO0FBQ2xCLHVIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLHNIQUFBLG1CQUFtQixPQUFBO0FBQ25CLHFIQUFBLGtCQUFrQixPQUFBO0FBRXBCLHVEQU00QjtBQUgxQiw2SEFBQSx5QkFBeUIsT0FBQTtBQUN6Qiw2SEFBQSx5QkFBeUIsT0FBQTtBQUN6QiwrSEFBQSwyQkFBMkIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEludGVyZmFjZSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgeyBBdGFJbml0aWFsaXphdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2F0YUluaXRpYWxpemF0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBDbG9zZUF0YUJ1aWxkZXIgfSBmcm9tICcuL2Nsb3NlQXRhQnVpbGRlcic7XG5leHBvcnQgeyBDb25maWRlbnRpYWxUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2NvbmZpZGVudGlhbFRyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2N1c3RvbUluc3RydWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmV4cG9ydCB7IFN0YWtpbmdBY3RpdmF0ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdBY3RpdmF0ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdBdXRob3JpemVCdWlsZGVyJztcbmV4cG9ydCB7IFN0YWtpbmdEZWFjdGl2YXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyJztcbmV4cG9ydCB7IFN0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdEZWxlZ2F0ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ1Jhd01zZ0F1dGhvcml6ZUJ1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdSYXdNc2dBdXRob3JpemVCdWlsZGVyJztcbmV4cG9ydCB7IFN0YWtpbmdXaXRoZHJhd0J1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdXaXRoZHJhd0J1aWxkZXInO1xuZXhwb3J0IHsgVG9rZW5UcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3Rva2VuVHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmV4cG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zZmVyQnVpbGRlclYyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXJWMic7XG5leHBvcnQgeyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBJbnRlcmZhY2UsIFV0aWxzIH07XG5leHBvcnQgeyBNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL21lc3NhZ2VzJztcbmV4cG9ydCB7IGV4cGxhaW5Tb2xUcmFuc2FjdGlvbiwgRXhwbGFpblRyYW5zYWN0aW9uV2FzbU9wdGlvbnMgfSBmcm9tICcuL2V4cGxhaW5UcmFuc2FjdGlvbldhc20nO1xuZXhwb3J0IHtcbiAgTWludEV4dGVuc2lvblJlYWRSZXN1bHQsXG4gIGV4dGVuc2lvblR5cGVOYW1lcyxcbiAgbWFwTW9kZWxlZEV4dGVuc2lvbnMsXG4gIHBhcnNlTWludEV4dGVuc2lvbnMsXG4gIHJlYWRNaW50RXh0ZW5zaW9ucyxcbn0gZnJvbSAnLi90b2tlbkV4dGVuc2lvbnMnO1xuZXhwb3J0IHtcbiAgUmVzb2x2ZVBlcm1pc3Npb25sZXNzVGhhd1Jlc3VsdCxcbiAgU29sQWNjb3VudEZldGNoZXIsXG4gIGJ1aWxkU29sQWNjb3VudENvbm5lY3Rpb24sXG4gIHJlc29sdmVQZXJtaXNzaW9ubGVzc1RoYXcsXG4gIHJlc29sdmVUcmFuc2Zlckhvb2tBY2NvdW50cyxcbn0gZnJvbSAnLi90b2tlbjIwMjJSZXNvbHZlJztcbiJdfQ==
|
|
@@ -16,11 +16,6 @@ export interface MintExtensionReadResult {
|
|
|
16
16
|
export declare function extensionTypeNames(mintInfo: Mint): string[];
|
|
17
17
|
/** The subset of detected extensions that BitGo models. Pure — unit-testable without chain data. */
|
|
18
18
|
export declare function mapModeledExtensions(detectedTypeNames: readonly string[]): SolTokenExtensionType[];
|
|
19
|
-
/**
|
|
20
|
-
* Enforce the protocol-level incompatibility: Transfer Hook and Confidential
|
|
21
|
-
* Transfer cannot coexist on the same mint. Pure — unit-testable without chain data.
|
|
22
|
-
*/
|
|
23
|
-
export declare function assertExtensionCompatibility(detectedTypeNames: readonly string[]): void;
|
|
24
19
|
/**
|
|
25
20
|
* Parse a decoded Token-2022 `Mint` into BitGo's extension model. Separated from the RPC call
|
|
26
21
|
* so it can be unit-tested against recorded mint fixtures.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenExtensions.d.ts","sourceRoot":"","sources":["../../../../src/lib/tokenExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAUL,KAAK,IAAI,EAEV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,kBAAkB,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"tokenExtensions.d.ts","sourceRoot":"","sources":["../../../../src/lib/tokenExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAUL,KAAK,IAAI,EAEV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAYD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,CAK3D;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,GAAG,qBAAqB,EAAE,CASlG;AAcD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,IAAI,GAAG,uBAAuB,CAwD3E;AAED,2FAA2F;AAC3F,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,UAAU,GAAE,UAAwB,GACnC,OAAO,CAAC,uBAAuB,CAAC,CAIlC"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.extensionTypeNames = extensionTypeNames;
|
|
4
4
|
exports.mapModeledExtensions = mapModeledExtensions;
|
|
5
|
-
exports.assertExtensionCompatibility = assertExtensionCompatibility;
|
|
6
5
|
exports.parseMintExtensions = parseMintExtensions;
|
|
7
6
|
exports.readMintExtensions = readMintExtensions;
|
|
8
7
|
const statics_1 = require("@bitgo-beta/statics");
|
|
@@ -17,7 +16,6 @@ const EXTENSION_NAME_MAP = {
|
|
|
17
16
|
DefaultAccountState: statics_1.SolTokenExtensionType.DefaultAccountState,
|
|
18
17
|
ScaledUiAmountConfig: statics_1.SolTokenExtensionType.ScaledUiAmount,
|
|
19
18
|
};
|
|
20
|
-
const CONFIDENTIAL_TRANSFER_NAMES = ['ConfidentialTransferMint', 'ConfidentialTransferFeeConfig'];
|
|
21
19
|
/** Human-readable names of every extension type present on the mint. */
|
|
22
20
|
function extensionTypeNames(mintInfo) {
|
|
23
21
|
if (mintInfo.tlvData.length === 0) {
|
|
@@ -36,17 +34,13 @@ function mapModeledExtensions(detectedTypeNames) {
|
|
|
36
34
|
}
|
|
37
35
|
return modeled;
|
|
38
36
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (hasHook && hasConfidential) {
|
|
47
|
-
throw new Error('Mint declares both Transfer Hook and Confidential Transfer, which cannot coexist');
|
|
48
|
-
}
|
|
49
|
-
}
|
|
37
|
+
// No SDK-level extension-combination assert: the on-chain program already
|
|
38
|
+
// enforces its own invalid-combination rules at extension init
|
|
39
|
+
// (`check_for_invalid_mint_extension_combinations` in token-2022), and it does
|
|
40
|
+
// NOT forbid TransferHook + ConfidentialTransferMint. A previous assert here
|
|
41
|
+
// rejected that legal pair and blocked onboarding of real mints. Custody
|
|
42
|
+
// policy on which combinations BitGo will serve belongs to consumers
|
|
43
|
+
// (statics `getUnsupportedSolTokenExtensions`, the AMS onboarding gate).
|
|
50
44
|
function toBase58(key) {
|
|
51
45
|
return key ? key.toBase58() : undefined;
|
|
52
46
|
}
|
|
@@ -56,7 +50,6 @@ function toBase58(key) {
|
|
|
56
50
|
*/
|
|
57
51
|
function parseMintExtensions(mintInfo) {
|
|
58
52
|
const detectedTypeNames = extensionTypeNames(mintInfo);
|
|
59
|
-
assertExtensionCompatibility(detectedTypeNames);
|
|
60
53
|
const extensions = { detected: mapModeledExtensions(detectedTypeNames) };
|
|
61
54
|
const authorities = {
|
|
62
55
|
mintAuthority: toBase58(mintInfo.mintAuthority),
|
|
@@ -109,4 +102,4 @@ async function readMintExtensions(connection, mint, commitment = 'finalized') {
|
|
|
109
102
|
const mintInfo = await (0, spl_token_1.getMint)(connection, mintPubkey, commitment, spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
110
103
|
return parseMintExtensions(mintInfo);
|
|
111
104
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5FeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90b2tlbkV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5Q0EsZ0RBS0M7QUFHRCxvREFTQztBQU1ELG9FQU1DO0FBVUQsa0RBeURDO0FBR0QsZ0RBUUM7QUFwSkQsaURBQWdGO0FBQ2hGLGlEQVkyQjtBQUMzQiw2Q0FBb0U7QUFjcEUsMkZBQTJGO0FBQzNGLE1BQU0sa0JBQWtCLEdBQW9EO0lBQzFFLGlCQUFpQixFQUFFLCtCQUFxQixDQUFDLFdBQVc7SUFDcEQsWUFBWSxFQUFFLCtCQUFxQixDQUFDLFlBQVk7SUFDaEQsaUJBQWlCLEVBQUUsK0JBQXFCLENBQUMsaUJBQWlCO0lBQzFELHFCQUFxQixFQUFFLCtCQUFxQixDQUFDLGVBQWU7SUFDNUQsbUJBQW1CLEVBQUUsK0JBQXFCLENBQUMsbUJBQW1CO0lBQzlELG9CQUFvQixFQUFFLCtCQUFxQixDQUFDLGNBQWM7Q0FDM0QsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0FBRWxHLHdFQUF3RTtBQUN4RSxTQUFnQixrQkFBa0IsQ0FBQyxRQUFjO0lBQy9DLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxJQUFBLDZCQUFpQixFQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHlCQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzdGLENBQUM7QUFFRCxvR0FBb0c7QUFDcEcsU0FBZ0Isb0JBQW9CLENBQUMsaUJBQW9DO0lBQ3ZFLE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7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QUFDLENBQUM7SUFDMUYsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU29sVG9rZW5FeHRlbnNpb25zLCBTb2xUb2tlbkV4dGVuc2lvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEFjY291bnRTdGF0ZSxcbiAgRXh0ZW5zaW9uVHlwZSxcbiAgZ2V0RXh0ZW5zaW9uRGF0YSxcbiAgZ2V0RXh0ZW5zaW9uVHlwZXMsXG4gIGdldEludGVyZXN0QmVhcmluZ01pbnRDb25maWdTdGF0ZSxcbiAgZ2V0TWludCxcbiAgZ2V0UGVybWFuZW50RGVsZWdhdGUsXG4gIGdldFRyYW5zZmVyRmVlQ29uZmlnLFxuICBnZXRUcmFuc2Zlckhvb2ssXG4gIHR5cGUgTWludCxcbiAgVE9LRU5fMjAyMl9QUk9HUkFNX0lELFxufSBmcm9tICdAc29sYW5hL3NwbC10b2tlbic7XG5pbXBvcnQgeyBDb21taXRtZW50LCBDb25uZWN0aW9uLCBQdWJsaWNLZXkgfSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuXG4vKipcbiAqIFJlc3VsdCBvZiByZWFkaW5nIGEgVG9rZW4tMjAyMiBtaW50J3MgZXh0ZW5zaW9uIGRhdGEuXG4gKlxuICogYGRldGVjdGVkVHlwZU5hbWVzYCBsaXN0cyBFVkVSWSBleHRlbnNpb24gcHJlc2VudCBvbiB0aGUgbWludCDigJQgaW5jbHVkaW5nIG9uZXMgQml0R28gZG9lc1xuICogbm90IG1vZGVsIOKAlCBzbyBjYWxsZXJzIGNhbiBydW4gdGhlIG9uYm9hcmRpbmcgc2FmZXR5IGdhdGUgKGBnZXRVbnN1cHBvcnRlZFNvbFRva2VuRXh0ZW5zaW9uc2ApLlxuICogYGV4dGVuc2lvbnNgIGlzIHRoZSB0eXBlZCwgc3RvcmFibGUgY29uZmlnIGZvciB0aGUgZXh0ZW5zaW9ucyBCaXRHbyBkb2VzIG1vZGVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pbnRFeHRlbnNpb25SZWFkUmVzdWx0IHtcbiAgZGV0ZWN0ZWRUeXBlTmFtZXM6IHN0cmluZ1tdO1xuICBleHRlbnNpb25zOiBTb2xUb2tlbkV4dGVuc2lvbnM7XG59XG5cbi8qKiBNYXAgZnJvbSBgQHNvbGFuYS9zcGwtdG9rZW5gIEV4dGVuc2lvblR5cGUgbmFtZXMgdG8gQml0R28ncyBtb2RlbGVkIGV4dGVuc2lvbiB0eXBlcy4gKi9cbmNvbnN0IEVYVEVOU0lPTl9OQU1FX01BUDogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgU29sVG9rZW5FeHRlbnNpb25UeXBlPj4gPSB7XG4gIFRyYW5zZmVyRmVlQ29uZmlnOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuVHJhbnNmZXJGZWUsXG4gIFRyYW5zZmVySG9vazogU29sVG9rZW5FeHRlbnNpb25UeXBlLlRyYW5zZmVySG9vayxcbiAgUGVybWFuZW50RGVsZWdhdGU6IFNvbFRva2VuRXh0ZW5zaW9uVHlwZS5QZXJtYW5lbnREZWxlZ2F0ZSxcbiAgSW50ZXJlc3RCZWFyaW5nQ29uZmlnOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuSW50ZXJlc3RCZWFyaW5nLFxuICBEZWZhdWx0QWNjb3VudFN0YXRlOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuRGVmYXVsdEFjY291bnRTdGF0ZSxcbiAgU2NhbGVkVWlBbW91bnRDb25maWc6IFNvbFRva2VuRXh0ZW5zaW9uVHlwZS5TY2FsZWRVaUFtb3VudCxcbn07XG5cbmNvbnN0IENPTkZJREVOVElBTF9UUkFOU0ZFUl9OQU1FUyA9IFsnQ29uZmlkZW50aWFsVHJhbnNmZXJNaW50JywgJ0NvbmZpZGVudGlhbFRyYW5zZmVyRmVlQ29uZmlnJ107XG5cbi8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lcyBvZiBldmVyeSBleHRlbnNpb24gdHlwZSBwcmVzZW50IG9uIHRoZSBtaW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuc2lvblR5cGVOYW1lcyhtaW50SW5mbzogTWludCk6IHN0cmluZ1tdIHtcbiAgaWYgKG1pbnRJbmZvLnRsdkRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBnZXRFeHRlbnNpb25UeXBlcyhtaW50SW5mby50bHZEYXRhKS5tYXAoKHQpID0+IEV4dGVuc2lvblR5cGVbdF0gPz8gYHVua25vd24oJHt0fSlgKTtcbn1cblxuLyoqIFRoZSBzdWJzZXQgb2YgZGV0ZWN0ZWQgZXh0ZW5zaW9ucyB0aGF0IEJpdEdvIG1vZGVscy4gUHVyZSDigJQgdW5pdC10ZXN0YWJsZSB3aXRob3V0IGNoYWluIGRhdGEuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwTW9kZWxlZEV4dGVuc2lvbnMoZGV0ZWN0ZWRUeXBlTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogU29sVG9rZW5FeHRlbnNpb25UeXBlW10ge1xuICBjb25zdCBtb2RlbGVkOiBTb2xUb2tlbkV4dGVuc2lvblR5cGVbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgZGV0ZWN0ZWRUeXBlTmFtZXMpIHtcbiAgICBjb25zdCBtYXBwZWQgPSBFWFRFTlNJT05fTkFNRV9NQVBbbmFtZV07XG4gICAgaWYgKG1hcHBlZCAhPT0gdW5kZWZpbmVkICYmICFtb2RlbGVkLmluY2x1ZGVzKG1hcHBlZCkpIHtcbiAgICAgIG1vZGVsZWQucHVzaChtYXBwZWQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbW9kZWxlZDtcbn1cblxuLyoqXG4gKiBFbmZvcmNlIHRoZSBwcm90b2NvbC1sZXZlbCBpbmNvbXBhdGliaWxpdHk6IFRyYW5zZmVyIEhvb2sgYW5kIENvbmZpZGVudGlhbFxuICogVHJhbnNmZXIgY2Fubm90IGNvZXhpc3Qgb24gdGhlIHNhbWUgbWludC4gUHVyZSDigJQgdW5pdC10ZXN0YWJsZSB3aXRob3V0IGNoYWluIGRhdGEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFeHRlbnNpb25Db21wYXRpYmlsaXR5KGRldGVjdGVkVHlwZU5hbWVzOiByZWFkb25seSBzdHJpbmdbXSk6IHZvaWQge1xuICBjb25zdCBoYXNIb29rID0gZGV0ZWN0ZWRUeXBlTmFtZXMuaW5jbHVkZXMoJ1RyYW5zZmVySG9vaycpO1xuICBjb25zdCBoYXNDb25maWRlbnRpYWwgPSBkZXRlY3RlZFR5cGVOYW1lcy5zb21lKChuKSA9PiBDT05GSURFTlRJQUxfVFJBTlNGRVJfTkFNRVMuaW5jbHVkZXMobikpO1xuICBpZiAoaGFzSG9vayAmJiBoYXNDb25maWRlbnRpYWwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pbnQgZGVjbGFyZXMgYm90aCBUcmFuc2ZlciBIb29rIGFuZCBDb25maWRlbnRpYWwgVHJhbnNmZXIsIHdoaWNoIGNhbm5vdCBjb2V4aXN0Jyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9CYXNlNTgoa2V5OiBQdWJsaWNLZXkgfCBudWxsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGtleSA/IGtleS50b0Jhc2U1OCgpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgZGVjb2RlZCBUb2tlbi0yMDIyIGBNaW50YCBpbnRvIEJpdEdvJ3MgZXh0ZW5zaW9uIG1vZGVsLiBTZXBhcmF0ZWQgZnJvbSB0aGUgUlBDIGNhbGxcbiAqIHNvIGl0IGNhbiBiZSB1bml0LXRlc3RlZCBhZ2FpbnN0IHJlY29yZGVkIG1pbnQgZml4dHVyZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU1pbnRFeHRlbnNpb25zKG1pbnRJbmZvOiBNaW50KTogTWludEV4dGVuc2lvblJlYWRSZXN1bHQge1xuICBjb25zdCBkZXRlY3RlZFR5cGVOYW1lcyA9IGV4dGVuc2lvblR5cGVOYW1lcyhtaW50SW5mbyk7XG4gIGFzc2VydEV4dGVuc2lvbkNvbXBhdGliaWxpdHkoZGV0ZWN0ZWRUeXBlTmFtZXMpO1xuXG4gIGNvbnN0IGV4dGVuc2lvbnM6IFNvbFRva2VuRXh0ZW5zaW9ucyA9IHsgZGV0ZWN0ZWQ6IG1hcE1vZGVsZWRFeHRlbnNpb25zKGRldGVjdGVkVHlwZU5hbWVzKSB9O1xuICBjb25zdCBhdXRob3JpdGllczogTm9uTnVsbGFibGU8U29sVG9rZW5FeHRlbnNpb25zWydhdXRob3JpdGllcyddPiA9IHtcbiAgICBtaW50QXV0aG9yaXR5OiB0b0Jhc2U1OChtaW50SW5mby5taW50QXV0aG9yaXR5KSxcbiAgICBmcmVlemVBdXRob3JpdHk6IHRvQmFzZTU4KG1pbnRJbmZvLmZyZWV6ZUF1dGhvcml0eSksXG4gIH07XG5cbiAgY29uc3QgZmVlQ29uZmlnID0gZ2V0VHJhbnNmZXJGZWVDb25maWcobWludEluZm8pO1xuICBpZiAoZmVlQ29uZmlnKSB7XG4gICAgZXh0ZW5zaW9ucy50cmFuc2ZlckZlZSA9IHtcbiAgICAgIHRyYW5zZmVyRmVlQmFzaXNQb2ludHM6IGZlZUNvbmZpZy5uZXdlclRyYW5zZmVyRmVlLnRyYW5zZmVyRmVlQmFzaXNQb2ludHMsXG4gICAgICBtYXhpbXVtRmVlOiBmZWVDb25maWcubmV3ZXJUcmFuc2ZlckZlZS5tYXhpbXVtRmVlLnRvU3RyaW5nKCksXG4gICAgfTtcbiAgICBhdXRob3JpdGllcy50cmFuc2ZlckZlZUNvbmZpZ0F1dGhvcml0eSA9IHRvQmFzZTU4KGZlZUNvbmZpZy50cmFuc2ZlckZlZUNvbmZpZ0F1dGhvcml0eSk7XG4gICAgYXV0aG9yaXRpZXMud2l0aGRyYXdXaXRoaGVsZEF1dGhvcml0eSA9IHRvQmFzZTU4KGZlZUNvbmZpZy53aXRoZHJhd1dpdGhoZWxkQXV0aG9yaXR5KTtcbiAgfVxuXG4gIGNvbnN0IGhvb2sgPSBnZXRUcmFuc2Zlckhvb2sobWludEluZm8pO1xuICBpZiAoaG9vaykge1xuICAgIGV4dGVuc2lvbnMudHJhbnNmZXJIb29rUHJvZ3JhbUlkID0gaG9vay5wcm9ncmFtSWQudG9CYXNlNTgoKTtcbiAgfVxuXG4gIGNvbnN0IGRlbGVnYXRlID0gZ2V0UGVybWFuZW50RGVsZWdhdGUobWludEluZm8pO1xuICBpZiAoZGVsZWdhdGU/LmRlbGVnYXRlKSB7XG4gICAgYXV0aG9yaXRpZXMucGVybWFuZW50RGVsZWdhdGUgPSBkZWxlZ2F0ZS5kZWxlZ2F0ZS50b0Jhc2U1OCgpO1xuICB9XG5cbiAgY29uc3QgaW50ZXJlc3QgPSBnZXRJbnRlcmVzdEJlYXJpbmdNaW50Q29uZmlnU3RhdGUobWludEluZm8pO1xuICBpZiAoaW50ZXJlc3QpIHtcbiAgICBleHRlbnNpb25zLmludGVyZXN0QmVhcmluZyA9IHsgcmF0ZUJhc2lzUG9pbnRzOiBpbnRlcmVzdC5jdXJyZW50UmF0ZSB9O1xuICAgIGF1dGhvcml0aWVzLnJhdGVBdXRob3JpdHkgPSB0b0Jhc2U1OChpbnRlcmVzdC5yYXRlQXV0aG9yaXR5KTtcbiAgfVxuXG4gIC8vIERlZmF1bHRBY2NvdW50U3RhdGUgaXMgYSBzaW5nbGUgYnl0ZSAoQWNjb3VudFN0YXRlKS4gRGVjb2RlZCBnZW5lcmljYWxseSB0byBhdm9pZCBkZXBlbmRpbmdcbiAgLy8gb24gYSB2ZXJzaW9uLXNwZWNpZmljIHR5cGVkIGdldHRlci4gcGVybWlzc2lvbmxlc3NUaGF3IGlzIE5PVCBvbi1jaGFpbiDigJQgcmVzb2x2ZWQgc2VwYXJhdGVseVxuICAvLyBhdCBvbmJvYXJkaW5nOyBkZWZhdWx0cyBmYWxzZSB1bnRpbCBjb25maXJtZWQuXG4gIGNvbnN0IGRlZmF1bHRTdGF0ZURhdGEgPSBnZXRFeHRlbnNpb25EYXRhKEV4dGVuc2lvblR5cGUuRGVmYXVsdEFjY291bnRTdGF0ZSwgbWludEluZm8udGx2RGF0YSk7XG4gIGlmIChkZWZhdWx0U3RhdGVEYXRhKSB7XG4gICAgZXh0ZW5zaW9ucy5kZWZhdWx0QWNjb3VudFN0YXRlID0ge1xuICAgICAgZnJvemVuOiBkZWZhdWx0U3RhdGVEYXRhWzBdID09PSBBY2NvdW50U3RhdGUuRnJvemVuLFxuICAgICAgcGVybWlzc2lvbmxlc3NUaGF3OiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLy8gTk9URTogU2NhbGVkVWlBbW91bnQgY29uZmlnIHBhcnNpbmcgKGluaXRpYWxNdWx0aXBsaWVyKSBpcyBpbnRlbnRpb25hbGx5IGRlZmVycmVkIOKAlCB0aGUgdHlwZWRcbiAgLy8gZ2V0dGVyIGlzIG5vdCBhdmFpbGFibGUgaW4gQHNvbGFuYS9zcGwtdG9rZW5AMC40LjkuIFRoZSBleHRlbnNpb24gaXMgc3RpbGwgKmRldGVjdGVkKiBhYm92ZVxuICAvLyAoc28gdGhlIHNhZmV0eSBnYXRlIHNlZXMgaXQpOyBwb3B1bGF0aW5nIHNjYWxlZFVpQW1vdW50LmluaXRpYWxNdWx0aXBsaWVyIGlzIGEgZm9sbG93LXVwIHRoYXRcbiAgLy8gYnVtcHMgQHNvbGFuYS9zcGwtdG9rZW4gdG8gYSB2ZXJzaW9uIGV4cG9zaW5nIGdldFNjYWxlZFVpQW1vdW50Q29uZmlnLiBTZWUgUFIgZm9yIDMuNC5cblxuICBpZiAoT2JqZWN0LnZhbHVlcyhhdXRob3JpdGllcykuc29tZSgodikgPT4gdiAhPT0gdW5kZWZpbmVkKSkge1xuICAgIGV4dGVuc2lvbnMuYXV0aG9yaXRpZXMgPSBhdXRob3JpdGllcztcbiAgfVxuXG4gIHJldHVybiB7IGRldGVjdGVkVHlwZU5hbWVzLCBleHRlbnNpb25zIH07XG59XG5cbi8qKiBGZXRjaCBhIFRva2VuLTIwMjIgbWludCBhbmQgcGFyc2UgaXRzIGV4dGVuc2lvbnMuIFVzZXMgYGZpbmFsaXplZGAgY29tbWl0bWVudCBydWxlcy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkTWludEV4dGVuc2lvbnMoXG4gIGNvbm5lY3Rpb246IENvbm5lY3Rpb24sXG4gIG1pbnQ6IHN0cmluZyB8IFB1YmxpY0tleSxcbiAgY29tbWl0bWVudDogQ29tbWl0bWVudCA9ICdmaW5hbGl6ZWQnXG4pOiBQcm9taXNlPE1pbnRFeHRlbnNpb25SZWFkUmVzdWx0PiB7XG4gIGNvbnN0IG1pbnRQdWJrZXkgPSB0eXBlb2YgbWludCA9PT0gJ3N0cmluZycgPyBuZXcgUHVibGljS2V5KG1pbnQpIDogbWludDtcbiAgY29uc3QgbWludEluZm8gPSBhd2FpdCBnZXRNaW50KGNvbm5lY3Rpb24sIG1pbnRQdWJrZXksIGNvbW1pdG1lbnQsIFRPS0VOXzIwMjJfUFJPR1JBTV9JRCk7XG4gIHJldHVybiBwYXJzZU1pbnRFeHRlbnNpb25zKG1pbnRJbmZvKTtcbn1cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5FeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90b2tlbkV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1Q0EsZ0RBS0M7QUFHRCxvREFTQztBQWtCRCxrREF3REM7QUFHRCxnREFRQztBQTdJRCxpREFBZ0Y7QUFDaEYsaURBWTJCO0FBQzNCLDZDQUFvRTtBQWNwRSwyRkFBMkY7QUFDM0YsTUFBTSxrQkFBa0IsR0FBb0Q7SUFDMUUsaUJBQWlCLEVBQUUsK0JBQXFCLENBQUMsV0FBVztJQUNwRCxZQUFZLEVBQUUsK0JBQXFCLENBQUMsWUFBWTtJQUNoRCxpQkFBaUIsRUFBRSwrQkFBcUIsQ0FBQyxpQkFBaUI7SUFDMUQscUJBQXFCLEVBQUUsK0JBQXFCLENBQUMsZUFBZTtJQUM1RCxtQkFBbUIsRUFBRSwrQkFBcUIsQ0FBQyxtQkFBbUI7SUFDOUQsb0JBQW9CLEVBQUUsK0JBQXFCLENBQUMsY0FBYztDQUMzRCxDQUFDO0FBRUYsd0VBQXdFO0FBQ3hFLFNBQWdCLGtCQUFrQixDQUFDLFFBQWM7SUFDL0MsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLElBQUEsNkJBQWlCLEVBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMseUJBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0YsQ0FBQztBQUVELG9HQUFvRztBQUNwRyxTQUFnQixvQkFBb0IsQ0FBQyxpQkFBb0M7SUFDdkUsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQztJQUM1QyxLQUFLLE1BQU0sSUFBSSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsa0JB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Q0FBQyxNQUFNO1lBQ25ELGtCQUFrQixFQUFFLEtBQUs7U0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFRCxnR0FBZ0c7SUFDaEcsOEZBQThGO0lBQzlGLGdHQUFnRztJQUNoRyx5RkFBeUY7SUFFekYsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDNUQsVUFBVSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRUQsMkZBQTJGO0FBQ3BGLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsVUFBc0IsRUFDdEIsSUFBd0IsRUFDeEIsYUFBeUIsV0FBVztJQUVwQyxNQUFNLFVBQVUsR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksbUJBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxtQkFBTyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGlDQUFxQixDQUFDLENBQUM7SUFDMUYsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU29sVG9rZW5FeHRlbnNpb25zLCBTb2xUb2tlbkV4dGVuc2lvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEFjY291bnRTdGF0ZSxcbiAgRXh0ZW5zaW9uVHlwZSxcbiAgZ2V0RXh0ZW5zaW9uRGF0YSxcbiAgZ2V0RXh0ZW5zaW9uVHlwZXMsXG4gIGdldEludGVyZXN0QmVhcmluZ01pbnRDb25maWdTdGF0ZSxcbiAgZ2V0TWludCxcbiAgZ2V0UGVybWFuZW50RGVsZWdhdGUsXG4gIGdldFRyYW5zZmVyRmVlQ29uZmlnLFxuICBnZXRUcmFuc2Zlckhvb2ssXG4gIHR5cGUgTWludCxcbiAgVE9LRU5fMjAyMl9QUk9HUkFNX0lELFxufSBmcm9tICdAc29sYW5hL3NwbC10b2tlbic7XG5pbXBvcnQgeyBDb21taXRtZW50LCBDb25uZWN0aW9uLCBQdWJsaWNLZXkgfSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuXG4vKipcbiAqIFJlc3VsdCBvZiByZWFkaW5nIGEgVG9rZW4tMjAyMiBtaW50J3MgZXh0ZW5zaW9uIGRhdGEuXG4gKlxuICogYGRldGVjdGVkVHlwZU5hbWVzYCBsaXN0cyBFVkVSWSBleHRlbnNpb24gcHJlc2VudCBvbiB0aGUgbWludCDigJQgaW5jbHVkaW5nIG9uZXMgQml0R28gZG9lc1xuICogbm90IG1vZGVsIOKAlCBzbyBjYWxsZXJzIGNhbiBydW4gdGhlIG9uYm9hcmRpbmcgc2FmZXR5IGdhdGUgKGBnZXRVbnN1cHBvcnRlZFNvbFRva2VuRXh0ZW5zaW9uc2ApLlxuICogYGV4dGVuc2lvbnNgIGlzIHRoZSB0eXBlZCwgc3RvcmFibGUgY29uZmlnIGZvciB0aGUgZXh0ZW5zaW9ucyBCaXRHbyBkb2VzIG1vZGVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pbnRFeHRlbnNpb25SZWFkUmVzdWx0IHtcbiAgZGV0ZWN0ZWRUeXBlTmFtZXM6IHN0cmluZ1tdO1xuICBleHRlbnNpb25zOiBTb2xUb2tlbkV4dGVuc2lvbnM7XG59XG5cbi8qKiBNYXAgZnJvbSBgQHNvbGFuYS9zcGwtdG9rZW5gIEV4dGVuc2lvblR5cGUgbmFtZXMgdG8gQml0R28ncyBtb2RlbGVkIGV4dGVuc2lvbiB0eXBlcy4gKi9cbmNvbnN0IEVYVEVOU0lPTl9OQU1FX01BUDogUmVhZG9ubHk8UmVjb3JkPHN0cmluZywgU29sVG9rZW5FeHRlbnNpb25UeXBlPj4gPSB7XG4gIFRyYW5zZmVyRmVlQ29uZmlnOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuVHJhbnNmZXJGZWUsXG4gIFRyYW5zZmVySG9vazogU29sVG9rZW5FeHRlbnNpb25UeXBlLlRyYW5zZmVySG9vayxcbiAgUGVybWFuZW50RGVsZWdhdGU6IFNvbFRva2VuRXh0ZW5zaW9uVHlwZS5QZXJtYW5lbnREZWxlZ2F0ZSxcbiAgSW50ZXJlc3RCZWFyaW5nQ29uZmlnOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuSW50ZXJlc3RCZWFyaW5nLFxuICBEZWZhdWx0QWNjb3VudFN0YXRlOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuRGVmYXVsdEFjY291bnRTdGF0ZSxcbiAgU2NhbGVkVWlBbW91bnRDb25maWc6IFNvbFRva2VuRXh0ZW5zaW9uVHlwZS5TY2FsZWRVaUFtb3VudCxcbn07XG5cbi8qKiBIdW1hbi1yZWFkYWJsZSBuYW1lcyBvZiBldmVyeSBleHRlbnNpb24gdHlwZSBwcmVzZW50IG9uIHRoZSBtaW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuc2lvblR5cGVOYW1lcyhtaW50SW5mbzogTWludCk6IHN0cmluZ1tdIHtcbiAgaWYgKG1pbnRJbmZvLnRsdkRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBnZXRFeHRlbnNpb25UeXBlcyhtaW50SW5mby50bHZEYXRhKS5tYXAoKHQpID0+IEV4dGVuc2lvblR5cGVbdF0gPz8gYHVua25vd24oJHt0fSlgKTtcbn1cblxuLyoqIFRoZSBzdWJzZXQgb2YgZGV0ZWN0ZWQgZXh0ZW5zaW9ucyB0aGF0IEJpdEdvIG1vZGVscy4gUHVyZSDigJQgdW5pdC10ZXN0YWJsZSB3aXRob3V0IGNoYWluIGRhdGEuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwTW9kZWxlZEV4dGVuc2lvbnMoZGV0ZWN0ZWRUeXBlTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogU29sVG9rZW5FeHRlbnNpb25UeXBlW10ge1xuICBjb25zdCBtb2RlbGVkOiBTb2xUb2tlbkV4dGVuc2lvblR5cGVbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgZGV0ZWN0ZWRUeXBlTmFtZXMpIHtcbiAgICBjb25zdCBtYXBwZWQgPSBFWFRFTlNJT05fTkFNRV9NQVBbbmFtZV07XG4gICAgaWYgKG1hcHBlZCAhPT0gdW5kZWZpbmVkICYmICFtb2RlbGVkLmluY2x1ZGVzKG1hcHBlZCkpIHtcbiAgICAgIG1vZGVsZWQucHVzaChtYXBwZWQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbW9kZWxlZDtcbn1cblxuLy8gTm8gU0RLLWxldmVsIGV4dGVuc2lvbi1jb21iaW5hdGlvbiBhc3NlcnQ6IHRoZSBvbi1jaGFpbiBwcm9ncmFtIGFscmVhZHlcbi8vIGVuZm9yY2VzIGl0cyBvd24gaW52YWxpZC1jb21iaW5hdGlvbiBydWxlcyBhdCBleHRlbnNpb24gaW5pdFxuLy8gKGBjaGVja19mb3JfaW52YWxpZF9taW50X2V4dGVuc2lvbl9jb21iaW5hdGlvbnNgIGluIHRva2VuLTIwMjIpLCBhbmQgaXQgZG9lc1xuLy8gTk9UIGZvcmJpZCBUcmFuc2Zlckhvb2sgKyBDb25maWRlbnRpYWxUcmFuc2Zlck1pbnQuIEEgcHJldmlvdXMgYXNzZXJ0IGhlcmVcbi8vIHJlamVjdGVkIHRoYXQgbGVnYWwgcGFpciBhbmQgYmxvY2tlZCBvbmJvYXJkaW5nIG9mIHJlYWwgbWludHMuIEN1c3RvZHlcbi8vIHBvbGljeSBvbiB3aGljaCBjb21iaW5hdGlvbnMgQml0R28gd2lsbCBzZXJ2ZSBiZWxvbmdzIHRvIGNvbnN1bWVyc1xuLy8gKHN0YXRpY3MgYGdldFVuc3VwcG9ydGVkU29sVG9rZW5FeHRlbnNpb25zYCwgdGhlIEFNUyBvbmJvYXJkaW5nIGdhdGUpLlxuXG5mdW5jdGlvbiB0b0Jhc2U1OChrZXk6IFB1YmxpY0tleSB8IG51bGwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4ga2V5ID8ga2V5LnRvQmFzZTU4KCkgOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyc2UgYSBkZWNvZGVkIFRva2VuLTIwMjIgYE1pbnRgIGludG8gQml0R28ncyBleHRlbnNpb24gbW9kZWwuIFNlcGFyYXRlZCBmcm9tIHRoZSBSUEMgY2FsbFxuICogc28gaXQgY2FuIGJlIHVuaXQtdGVzdGVkIGFnYWluc3QgcmVjb3JkZWQgbWludCBmaXh0dXJlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlTWludEV4dGVuc2lvbnMobWludEluZm86IE1pbnQpOiBNaW50RXh0ZW5zaW9uUmVhZFJlc3VsdCB7XG4gIGNvbnN0IGRldGVjdGVkVHlwZU5hbWVzID0gZXh0ZW5zaW9uVHlwZU5hbWVzKG1pbnRJbmZvKTtcblxuICBjb25zdCBleHRlbnNpb25zOiBTb2xUb2tlbkV4dGVuc2lvbnMgPSB7IGRldGVjdGVkOiBtYXBNb2RlbGVkRXh0ZW5zaW9ucyhkZXRlY3RlZFR5cGVOYW1lcykgfTtcbiAgY29uc3QgYXV0aG9yaXRpZXM6IE5vbk51bGxhYmxlPFNvbFRva2VuRXh0ZW5zaW9uc1snYXV0aG9yaXRpZXMnXT4gPSB7XG4gICAgbWludEF1dGhvcml0eTogdG9CYXNlNTgobWludEluZm8ubWludEF1dGhvcml0eSksXG4gICAgZnJlZXplQXV0aG9yaXR5OiB0b0Jhc2U1OChtaW50SW5mby5mcmVlemVBdXRob3JpdHkpLFxuICB9O1xuXG4gIGNvbnN0IGZlZUNvbmZpZyA9IGdldFRyYW5zZmVyRmVlQ29uZmlnKG1pbnRJbmZvKTtcbiAgaWYgKGZlZUNvbmZpZykge1xuICAgIGV4dGVuc2lvbnMudHJhbnNmZXJGZWUgPSB7XG4gICAgICB0cmFuc2ZlckZlZUJhc2lzUG9pbnRzOiBmZWVDb25maWcubmV3ZXJUcmFuc2ZlckZlZS50cmFuc2ZlckZlZUJhc2lzUG9pbnRzLFxuICAgICAgbWF4aW11bUZlZTogZmVlQ29uZmlnLm5ld2VyVHJhbnNmZXJGZWUubWF4aW11bUZlZS50b1N0cmluZygpLFxuICAgIH07XG4gICAgYXV0aG9yaXRpZXMudHJhbnNmZXJGZWVDb25maWdBdXRob3JpdHkgPSB0b0Jhc2U1OChmZWVDb25maWcudHJhbnNmZXJGZWVDb25maWdBdXRob3JpdHkpO1xuICAgIGF1dGhvcml0aWVzLndpdGhkcmF3V2l0aGhlbGRBdXRob3JpdHkgPSB0b0Jhc2U1OChmZWVDb25maWcud2l0aGRyYXdXaXRoaGVsZEF1dGhvcml0eSk7XG4gIH1cblxuICBjb25zdCBob29rID0gZ2V0VHJhbnNmZXJIb29rKG1pbnRJbmZvKTtcbiAgaWYgKGhvb2spIHtcbiAgICBleHRlbnNpb25zLnRyYW5zZmVySG9va1Byb2dyYW1JZCA9IGhvb2sucHJvZ3JhbUlkLnRvQmFzZTU4KCk7XG4gIH1cblxuICBjb25zdCBkZWxlZ2F0ZSA9IGdldFBlcm1hbmVudERlbGVnYXRlKG1pbnRJbmZvKTtcbiAgaWYgKGRlbGVnYXRlPy5kZWxlZ2F0ZSkge1xuICAgIGF1dGhvcml0aWVzLnBlcm1hbmVudERlbGVnYXRlID0gZGVsZWdhdGUuZGVsZWdhdGUudG9CYXNlNTgoKTtcbiAgfVxuXG4gIGNvbnN0IGludGVyZXN0ID0gZ2V0SW50ZXJlc3RCZWFyaW5nTWludENvbmZpZ1N0YXRlKG1pbnRJbmZvKTtcbiAgaWYgKGludGVyZXN0KSB7XG4gICAgZXh0ZW5zaW9ucy5pbnRlcmVzdEJlYXJpbmcgPSB7IHJhdGVCYXNpc1BvaW50czogaW50ZXJlc3QuY3VycmVudFJhdGUgfTtcbiAgICBhdXRob3JpdGllcy5yYXRlQXV0aG9yaXR5ID0gdG9CYXNlNTgoaW50ZXJlc3QucmF0ZUF1dGhvcml0eSk7XG4gIH1cblxuICAvLyBEZWZhdWx0QWNjb3VudFN0YXRlIGlzIGEgc2luZ2xlIGJ5dGUgKEFjY291bnRTdGF0ZSkuIERlY29kZWQgZ2VuZXJpY2FsbHkgdG8gYXZvaWQgZGVwZW5kaW5nXG4gIC8vIG9uIGEgdmVyc2lvbi1zcGVjaWZpYyB0eXBlZCBnZXR0ZXIuIHBlcm1pc3Npb25sZXNzVGhhdyBpcyBOT1Qgb24tY2hhaW4g4oCUIHJlc29sdmVkIHNlcGFyYXRlbHlcbiAgLy8gYXQgb25ib2FyZGluZzsgZGVmYXVsdHMgZmFsc2UgdW50aWwgY29uZmlybWVkLlxuICBjb25zdCBkZWZhdWx0U3RhdGVEYXRhID0gZ2V0RXh0ZW5zaW9uRGF0YShFeHRlbnNpb25UeXBlLkRlZmF1bHRBY2NvdW50U3RhdGUsIG1pbnRJbmZvLnRsdkRhdGEpO1xuICBpZiAoZGVmYXVsdFN0YXRlRGF0YSkge1xuICAgIGV4dGVuc2lvbnMuZGVmYXVsdEFjY291bnRTdGF0ZSA9IHtcbiAgICAgIGZyb3plbjogZGVmYXVsdFN0YXRlRGF0YVswXSA9PT0gQWNjb3VudFN0YXRlLkZyb3plbixcbiAgICAgIHBlcm1pc3Npb25sZXNzVGhhdzogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIC8vIE5PVEU6IFNjYWxlZFVpQW1vdW50IGNvbmZpZyBwYXJzaW5nIChpbml0aWFsTXVsdGlwbGllcikgaXMgaW50ZW50aW9uYWxseSBkZWZlcnJlZCDigJQgdGhlIHR5cGVkXG4gIC8vIGdldHRlciBpcyBub3QgYXZhaWxhYmxlIGluIEBzb2xhbmEvc3BsLXRva2VuQDAuNC45LiBUaGUgZXh0ZW5zaW9uIGlzIHN0aWxsICpkZXRlY3RlZCogYWJvdmVcbiAgLy8gKHNvIHRoZSBzYWZldHkgZ2F0ZSBzZWVzIGl0KTsgcG9wdWxhdGluZyBzY2FsZWRVaUFtb3VudC5pbml0aWFsTXVsdGlwbGllciBpcyBhIGZvbGxvdy11cCB0aGF0XG4gIC8vIGJ1bXBzIEBzb2xhbmEvc3BsLXRva2VuIHRvIGEgdmVyc2lvbiBleHBvc2luZyBnZXRTY2FsZWRVaUFtb3VudENvbmZpZy4gU2VlIFBSIGZvciAzLjQuXG5cbiAgaWYgKE9iamVjdC52YWx1ZXMoYXV0aG9yaXRpZXMpLnNvbWUoKHYpID0+IHYgIT09IHVuZGVmaW5lZCkpIHtcbiAgICBleHRlbnNpb25zLmF1dGhvcml0aWVzID0gYXV0aG9yaXRpZXM7XG4gIH1cblxuICByZXR1cm4geyBkZXRlY3RlZFR5cGVOYW1lcywgZXh0ZW5zaW9ucyB9O1xufVxuXG4vKiogRmV0Y2ggYSBUb2tlbi0yMDIyIG1pbnQgYW5kIHBhcnNlIGl0cyBleHRlbnNpb25zLiBVc2VzIGBmaW5hbGl6ZWRgIGNvbW1pdG1lbnQgcnVsZXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE1pbnRFeHRlbnNpb25zKFxuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uLFxuICBtaW50OiBzdHJpbmcgfCBQdWJsaWNLZXksXG4gIGNvbW1pdG1lbnQ6IENvbW1pdG1lbnQgPSAnZmluYWxpemVkJ1xuKTogUHJvbWlzZTxNaW50RXh0ZW5zaW9uUmVhZFJlc3VsdD4ge1xuICBjb25zdCBtaW50UHVia2V5ID0gdHlwZW9mIG1pbnQgPT09ICdzdHJpbmcnID8gbmV3IFB1YmxpY0tleShtaW50KSA6IG1pbnQ7XG4gIGNvbnN0IG1pbnRJbmZvID0gYXdhaXQgZ2V0TWludChjb25uZWN0aW9uLCBtaW50UHVia2V5LCBjb21taXRtZW50LCBUT0tFTl8yMDIyX1BST0dSQU1fSUQpO1xuICByZXR1cm4gcGFyc2VNaW50RXh0ZW5zaW9ucyhtaW50SW5mbyk7XG59XG4iXX0=
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
require("should");
|
|
4
4
|
const statics_1 = require("@bitgo-beta/statics");
|
|
5
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
6
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
5
7
|
const tokenExtensions_1 = require("../../src/lib/tokenExtensions");
|
|
6
8
|
describe('Sol Token-2022 mint extension parsing', function () {
|
|
7
9
|
describe('mapModeledExtensions', function () {
|
|
@@ -20,13 +22,37 @@ describe('Sol Token-2022 mint extension parsing', function () {
|
|
|
20
22
|
(0, tokenExtensions_1.mapModeledExtensions)(['TransferFeeConfig', 'TransferFeeConfig']).should.eql([statics_1.SolTokenExtensionType.TransferFee]);
|
|
21
23
|
});
|
|
22
24
|
});
|
|
23
|
-
describe('
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
describe('parseMintExtensions', function () {
|
|
26
|
+
function tlvEntry(type, value) {
|
|
27
|
+
const head = Buffer.alloc(4);
|
|
28
|
+
head.writeUInt16LE(type, 0);
|
|
29
|
+
head.writeUInt16LE(value.length, 2);
|
|
30
|
+
return Buffer.concat([head, value]);
|
|
31
|
+
}
|
|
32
|
+
function fakeMint(tlvData) {
|
|
33
|
+
return {
|
|
34
|
+
address: web3_js_1.PublicKey.default,
|
|
35
|
+
mintAuthority: null,
|
|
36
|
+
supply: BigInt(0),
|
|
37
|
+
decimals: 6,
|
|
38
|
+
isInitialized: true,
|
|
39
|
+
freezeAuthority: null,
|
|
40
|
+
tlvData,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
it('parses a mint declaring both Transfer Hook and Confidential Transfer', function () {
|
|
44
|
+
// Legal on-chain: token-2022's check_for_invalid_mint_extension_combinations
|
|
45
|
+
// does not forbid this pair. Regression test — an SDK-level assert used to
|
|
46
|
+
// reject it and block onboarding of real mints.
|
|
47
|
+
const tlvData = Buffer.concat([
|
|
48
|
+
tlvEntry(spl_token_1.ExtensionType.ConfidentialTransferMint, Buffer.alloc(0)),
|
|
49
|
+
tlvEntry(spl_token_1.ExtensionType.TransferHook, Buffer.alloc(64)), // authority (32) + programId (32)
|
|
50
|
+
]);
|
|
51
|
+
const result = (0, tokenExtensions_1.parseMintExtensions)(fakeMint(tlvData));
|
|
52
|
+
result.detectedTypeNames.should.eql(['ConfidentialTransferMint', 'TransferHook']);
|
|
53
|
+
result.extensions.detected.should.eql([statics_1.SolTokenExtensionType.TransferHook]);
|
|
54
|
+
result.extensions.transferHookProgramId?.should.equal('11111111111111111111111111111111');
|
|
29
55
|
});
|
|
30
56
|
});
|
|
31
57
|
});
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5FeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3Rva2VuRXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQixpREFBNEQ7QUFDNUQsaURBQTZEO0FBQzdELDZDQUE0QztBQUM1QyxtRUFBMEY7QUFFMUYsUUFBUSxDQUFDLHVDQUF1QyxFQUFFO0lBQ2hELFFBQVEsQ0FBQyxzQkFBc0IsRUFBRTtRQUMvQixFQUFFLENBQUMsdURBQXVELEVBQUU7WUFDMUQsSUFBQSxzQ0FBb0IsRUFBQyxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2dCQUMxRSwrQkFBcUIsQ0FBQyxXQUFXO2dCQUNqQywrQkFBcUIsQ0FBQyxpQkFBaUI7YUFDeEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMseUNBQXlDLEVBQUU7WUFDNUMsSUFBQSxzQ0FBb0IsRUFBQyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztnQkFDckYsK0JBQXFCLENBQUMsWUFBWTthQUNuQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxjQUFjLEVBQUU7WUFDakIsSUFBQSxzQ0FBb0IsRUFBQyxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsK0JBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLHFCQUFxQixFQUFFO1FBQzlCLFNBQVMsUUFBUSxDQUFDLElBQW1CLEVBQUUsS0FBYTtZQUNsRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsU0FBUyxRQUFRLENBQUMsT0FBZTtZQUMvQixPQUFPO2dCQUNMLE9BQU8sRUFBRSxtQkFBUyxDQUFDLE9BQU87Z0JBQzFCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDakIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixPQUFPO2FBQ1IsQ0FBQztRQUNKLENBQUM7UUFFRCxFQUFFLENBQUMsc0VBQXNFLEVBQUU7WUFDekUsNkVBQTZFO1lBQzdFLDJFQUEyRTtZQUMzRSxnREFBZ0Q7WUFDaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDNUIsUUFBUSxDQUFDLHlCQUFhLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakUsUUFBUSxDQUFDLHlCQUFhLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxrQ0FBa0M7YUFDM0YsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQ0FBbUIsRUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN0RCxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLDBCQUEwQixFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDbEYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLCtCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDNUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgU29sVG9rZW5FeHRlbnNpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBFeHRlbnNpb25UeXBlLCB0eXBlIE1pbnQgfSBmcm9tICdAc29sYW5hL3NwbC10b2tlbic7XG5pbXBvcnQgeyBQdWJsaWNLZXkgfSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuaW1wb3J0IHsgbWFwTW9kZWxlZEV4dGVuc2lvbnMsIHBhcnNlTWludEV4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi9zcmMvbGliL3Rva2VuRXh0ZW5zaW9ucyc7XG5cbmRlc2NyaWJlKCdTb2wgVG9rZW4tMjAyMiBtaW50IGV4dGVuc2lvbiBwYXJzaW5nJywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnbWFwTW9kZWxlZEV4dGVuc2lvbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ21hcHMgc3BsLXRva2VuIGV4dGVuc2lvbiBuYW1lcyB0byBtb2RlbGVkIEJpdEdvIHR5cGVzJywgZnVuY3Rpb24gKCkge1xuICAgICAgbWFwTW9kZWxlZEV4dGVuc2lvbnMoWydUcmFuc2ZlckZlZUNvbmZpZycsICdQZXJtYW5lbnREZWxlZ2F0ZSddKS5zaG91bGQuZXFsKFtcbiAgICAgICAgU29sVG9rZW5FeHRlbnNpb25UeXBlLlRyYW5zZmVyRmVlLFxuICAgICAgICBTb2xUb2tlbkV4dGVuc2lvblR5cGUuUGVybWFuZW50RGVsZWdhdGUsXG4gICAgICBdKTtcbiAgICB9KTtcblxuICAgIGl0KCdpZ25vcmVzIGV4dGVuc2lvbnMgQml0R28gZG9lcyBub3QgbW9kZWwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBtYXBNb2RlbGVkRXh0ZW5zaW9ucyhbJ0ltbXV0YWJsZU93bmVyJywgJ01ldGFkYXRhUG9pbnRlcicsICdUcmFuc2Zlckhvb2snXSkuc2hvdWxkLmVxbChbXG4gICAgICAgIFNvbFRva2VuRXh0ZW5zaW9uVHlwZS5UcmFuc2Zlckhvb2ssXG4gICAgICBdKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZWR1cGxpY2F0ZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBtYXBNb2RlbGVkRXh0ZW5zaW9ucyhbJ1RyYW5zZmVyRmVlQ29uZmlnJywgJ1RyYW5zZmVyRmVlQ29uZmlnJ10pLnNob3VsZC5lcWwoW1NvbFRva2VuRXh0ZW5zaW9uVHlwZS5UcmFuc2ZlckZlZV0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncGFyc2VNaW50RXh0ZW5zaW9ucycsIGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiB0bHZFbnRyeSh0eXBlOiBFeHRlbnNpb25UeXBlLCB2YWx1ZTogQnVmZmVyKTogQnVmZmVyIHtcbiAgICAgIGNvbnN0IGhlYWQgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgICBoZWFkLndyaXRlVUludDE2TEUodHlwZSwgMCk7XG4gICAgICBoZWFkLndyaXRlVUludDE2TEUodmFsdWUubGVuZ3RoLCAyKTtcbiAgICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtoZWFkLCB2YWx1ZV0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZha2VNaW50KHRsdkRhdGE6IEJ1ZmZlcik6IE1pbnQge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWRkcmVzczogUHVibGljS2V5LmRlZmF1bHQsXG4gICAgICAgIG1pbnRBdXRob3JpdHk6IG51bGwsXG4gICAgICAgIHN1cHBseTogQmlnSW50KDApLFxuICAgICAgICBkZWNpbWFsczogNixcbiAgICAgICAgaXNJbml0aWFsaXplZDogdHJ1ZSxcbiAgICAgICAgZnJlZXplQXV0aG9yaXR5OiBudWxsLFxuICAgICAgICB0bHZEYXRhLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpdCgncGFyc2VzIGEgbWludCBkZWNsYXJpbmcgYm90aCBUcmFuc2ZlciBIb29rIGFuZCBDb25maWRlbnRpYWwgVHJhbnNmZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBMZWdhbCBvbi1jaGFpbjogdG9rZW4tMjAyMidzIGNoZWNrX2Zvcl9pbnZhbGlkX21pbnRfZXh0ZW5zaW9uX2NvbWJpbmF0aW9uc1xuICAgICAgLy8gZG9lcyBub3QgZm9yYmlkIHRoaXMgcGFpci4gUmVncmVzc2lvbiB0ZXN0IOKAlCBhbiBTREstbGV2ZWwgYXNzZXJ0IHVzZWQgdG9cbiAgICAgIC8vIHJlamVjdCBpdCBhbmQgYmxvY2sgb25ib2FyZGluZyBvZiByZWFsIG1pbnRzLlxuICAgICAgY29uc3QgdGx2RGF0YSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgICB0bHZFbnRyeShFeHRlbnNpb25UeXBlLkNvbmZpZGVudGlhbFRyYW5zZmVyTWludCwgQnVmZmVyLmFsbG9jKDApKSxcbiAgICAgICAgdGx2RW50cnkoRXh0ZW5zaW9uVHlwZS5UcmFuc2Zlckhvb2ssIEJ1ZmZlci5hbGxvYyg2NCkpLCAvLyBhdXRob3JpdHkgKDMyKSArIHByb2dyYW1JZCAoMzIpXG4gICAgICBdKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBhcnNlTWludEV4dGVuc2lvbnMoZmFrZU1pbnQodGx2RGF0YSkpO1xuICAgICAgcmVzdWx0LmRldGVjdGVkVHlwZU5hbWVzLnNob3VsZC5lcWwoWydDb25maWRlbnRpYWxUcmFuc2Zlck1pbnQnLCAnVHJhbnNmZXJIb29rJ10pO1xuICAgICAgcmVzdWx0LmV4dGVuc2lvbnMuZGV0ZWN0ZWQuc2hvdWxkLmVxbChbU29sVG9rZW5FeHRlbnNpb25UeXBlLlRyYW5zZmVySG9va10pO1xuICAgICAgcmVzdWx0LmV4dGVuc2lvbnMudHJhbnNmZXJIb29rUHJvZ3JhbUlkPy5zaG91bGQuZXF1YWwoJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|