@bitgo-beta/sdk-coin-sol 7.6.4-beta.556 → 7.6.4-beta.558
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 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -1
- package/dist/cjs/src/lib/index.js +8 -2
- package/dist/cjs/src/lib/tokenExtensions.d.ts +31 -0
- package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenExtensions.js +112 -0
- package/dist/cjs/test/unit/tokenExtensions.d.ts +2 -0
- package/dist/cjs/test/unit/tokenExtensions.d.ts.map +1 -0
- package/dist/cjs/test/unit/tokenExtensions.js +32 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/lib/index.d.ts +1 -0
- package/dist/esm/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +2 -1
- package/dist/esm/lib/tokenExtensions.d.ts +31 -0
- package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/esm/lib/tokenExtensions.js +105 -0
- package/package.json +7 -7
package/dist/esm/lib/index.d.ts
CHANGED
|
@@ -20,4 +20,5 @@ export { WalletInitializationBuilder } from './walletInitializationBuilder';
|
|
|
20
20
|
export { Interface, Utils };
|
|
21
21
|
export { MessageBuilderFactory } from './messages';
|
|
22
22
|
export { explainSolTransaction, ExplainTransactionWasmOptions } from './explainTransactionWasm';
|
|
23
|
+
export { MintExtensionReadResult, assertExtensionCompatibility, extensionTypeNames, mapModeledExtensions, parseMintExtensions, readMintExtensions, } from './tokenExtensions';
|
|
23
24
|
//# 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,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"}
|
|
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,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,4BAA4B,EAC5B,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
|
package/dist/esm/lib/index.js
CHANGED
|
@@ -20,4 +20,5 @@ export { WalletInitializationBuilder } from './walletInitializationBuilder';
|
|
|
20
20
|
export { Interface, Utils };
|
|
21
21
|
export { MessageBuilderFactory } from './messages';
|
|
22
22
|
export { explainSolTransaction } from './explainTransactionWasm';
|
|
23
|
-
|
|
23
|
+
export { assertExtensionCompatibility, extensionTypeNames, mapModeledExtensions, parseMintExtensions, readMintExtensions, } from './tokenExtensions';
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxTQUFTLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBRWpDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBaUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBRUwsNEJBQTRCLEVBQzVCLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLGtCQUFrQixHQUNuQixNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgSW50ZXJmYWNlIGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IEF0YUluaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vYXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmV4cG9ydCB7IENsb3NlQXRhQnVpbGRlciB9IGZyb20gJy4vY2xvc2VBdGFCdWlsZGVyJztcbmV4cG9ydCB7IEN1c3RvbUluc3RydWN0aW9uQnVpbGRlciB9IGZyb20gJy4vY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgU3Rha2luZ0FjdGl2YXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0FjdGl2YXRlQnVpbGRlcic7XG5leHBvcnQgeyBTdGFraW5nQXV0aG9yaXplQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ0RlbGVnYXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0RlbGVnYXRlQnVpbGRlcic7XG5leHBvcnQgeyBTdGFraW5nUmF3TXNnQXV0aG9yaXplQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ1Jhd01zZ0F1dGhvcml6ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ1dpdGhkcmF3QnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ1dpdGhkcmF3QnVpbGRlcic7XG5leHBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyVjIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlclYyJztcbmV4cG9ydCB7IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmV4cG9ydCB7IEludGVyZmFjZSwgVXRpbHMgfTtcbmV4cG9ydCB7IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vbWVzc2FnZXMnO1xuZXhwb3J0IHsgZXhwbGFpblNvbFRyYW5zYWN0aW9uLCBFeHBsYWluVHJhbnNhY3Rpb25XYXNtT3B0aW9ucyB9IGZyb20gJy4vZXhwbGFpblRyYW5zYWN0aW9uV2FzbSc7XG5leHBvcnQge1xuICBNaW50RXh0ZW5zaW9uUmVhZFJlc3VsdCxcbiAgYXNzZXJ0RXh0ZW5zaW9uQ29tcGF0aWJpbGl0eSxcbiAgZXh0ZW5zaW9uVHlwZU5hbWVzLFxuICBtYXBNb2RlbGVkRXh0ZW5zaW9ucyxcbiAgcGFyc2VNaW50RXh0ZW5zaW9ucyxcbiAgcmVhZE1pbnRFeHRlbnNpb25zLFxufSBmcm9tICcuL3Rva2VuRXh0ZW5zaW9ucyc7XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SolTokenExtensions, SolTokenExtensionType } from '@bitgo-beta/statics';
|
|
2
|
+
import { type Mint } from '@solana/spl-token';
|
|
3
|
+
import { Commitment, Connection, PublicKey } from '@solana/web3.js';
|
|
4
|
+
/**
|
|
5
|
+
* Result of reading a Token-2022 mint's extension data.
|
|
6
|
+
*
|
|
7
|
+
* `detectedTypeNames` lists EVERY extension present on the mint — including ones BitGo does
|
|
8
|
+
* not model — so callers can run the onboarding safety gate (`getUnsupportedSolTokenExtensions`).
|
|
9
|
+
* `extensions` is the typed, storable config for the extensions BitGo does model.
|
|
10
|
+
*/
|
|
11
|
+
export interface MintExtensionReadResult {
|
|
12
|
+
detectedTypeNames: string[];
|
|
13
|
+
extensions: SolTokenExtensions;
|
|
14
|
+
}
|
|
15
|
+
/** Human-readable names of every extension type present on the mint. */
|
|
16
|
+
export declare function extensionTypeNames(mintInfo: Mint): string[];
|
|
17
|
+
/** The subset of detected extensions that BitGo models. Pure — unit-testable without chain data. */
|
|
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
|
+
/**
|
|
25
|
+
* Parse a decoded Token-2022 `Mint` into BitGo's extension model. Separated from the RPC call
|
|
26
|
+
* so it can be unit-tested against recorded mint fixtures.
|
|
27
|
+
*/
|
|
28
|
+
export declare function parseMintExtensions(mintInfo: Mint): MintExtensionReadResult;
|
|
29
|
+
/** Fetch a Token-2022 mint and parse its extensions. Uses `finalized` commitment rules. */
|
|
30
|
+
export declare function readMintExtensions(connection: Connection, mint: string | PublicKey, commitment?: Commitment): Promise<MintExtensionReadResult>;
|
|
31
|
+
//# sourceMappingURL=tokenExtensions.d.ts.map
|
|
@@ -0,0 +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;AAcD,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;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAMvF;AAMD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,IAAI,GAAG,uBAAuB,CAyD3E;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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { SolTokenExtensionType } from '@bitgo-beta/statics';
|
|
2
|
+
import { AccountState, ExtensionType, getExtensionData, getExtensionTypes, getInterestBearingMintConfigState, getMint, getPermanentDelegate, getTransferFeeConfig, getTransferHook, TOKEN_2022_PROGRAM_ID, } from '@solana/spl-token';
|
|
3
|
+
import { PublicKey } from '@solana/web3.js';
|
|
4
|
+
/** Map from `@solana/spl-token` ExtensionType names to BitGo's modeled extension types. */
|
|
5
|
+
const EXTENSION_NAME_MAP = {
|
|
6
|
+
TransferFeeConfig: SolTokenExtensionType.TransferFee,
|
|
7
|
+
TransferHook: SolTokenExtensionType.TransferHook,
|
|
8
|
+
PermanentDelegate: SolTokenExtensionType.PermanentDelegate,
|
|
9
|
+
InterestBearingConfig: SolTokenExtensionType.InterestBearing,
|
|
10
|
+
DefaultAccountState: SolTokenExtensionType.DefaultAccountState,
|
|
11
|
+
ScaledUiAmountConfig: SolTokenExtensionType.ScaledUiAmount,
|
|
12
|
+
};
|
|
13
|
+
const CONFIDENTIAL_TRANSFER_NAMES = ['ConfidentialTransferMint', 'ConfidentialTransferFeeConfig'];
|
|
14
|
+
/** Human-readable names of every extension type present on the mint. */
|
|
15
|
+
export function extensionTypeNames(mintInfo) {
|
|
16
|
+
if (mintInfo.tlvData.length === 0) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
return getExtensionTypes(mintInfo.tlvData).map((t) => ExtensionType[t] ?? `unknown(${t})`);
|
|
20
|
+
}
|
|
21
|
+
/** The subset of detected extensions that BitGo models. Pure — unit-testable without chain data. */
|
|
22
|
+
export function mapModeledExtensions(detectedTypeNames) {
|
|
23
|
+
const modeled = [];
|
|
24
|
+
for (const name of detectedTypeNames) {
|
|
25
|
+
const mapped = EXTENSION_NAME_MAP[name];
|
|
26
|
+
if (mapped !== undefined && !modeled.includes(mapped)) {
|
|
27
|
+
modeled.push(mapped);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return modeled;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Enforce the protocol-level incompatibility: Transfer Hook and Confidential
|
|
34
|
+
* Transfer cannot coexist on the same mint. Pure — unit-testable without chain data.
|
|
35
|
+
*/
|
|
36
|
+
export function assertExtensionCompatibility(detectedTypeNames) {
|
|
37
|
+
const hasHook = detectedTypeNames.includes('TransferHook');
|
|
38
|
+
const hasConfidential = detectedTypeNames.some((n) => CONFIDENTIAL_TRANSFER_NAMES.includes(n));
|
|
39
|
+
if (hasHook && hasConfidential) {
|
|
40
|
+
throw new Error('Mint declares both Transfer Hook and Confidential Transfer, which cannot coexist');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function toBase58(key) {
|
|
44
|
+
return key ? key.toBase58() : undefined;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Parse a decoded Token-2022 `Mint` into BitGo's extension model. Separated from the RPC call
|
|
48
|
+
* so it can be unit-tested against recorded mint fixtures.
|
|
49
|
+
*/
|
|
50
|
+
export function parseMintExtensions(mintInfo) {
|
|
51
|
+
const detectedTypeNames = extensionTypeNames(mintInfo);
|
|
52
|
+
assertExtensionCompatibility(detectedTypeNames);
|
|
53
|
+
const extensions = { detected: mapModeledExtensions(detectedTypeNames) };
|
|
54
|
+
const authorities = {
|
|
55
|
+
mintAuthority: toBase58(mintInfo.mintAuthority),
|
|
56
|
+
freezeAuthority: toBase58(mintInfo.freezeAuthority),
|
|
57
|
+
};
|
|
58
|
+
const feeConfig = getTransferFeeConfig(mintInfo);
|
|
59
|
+
if (feeConfig) {
|
|
60
|
+
extensions.transferFee = {
|
|
61
|
+
transferFeeBasisPoints: feeConfig.newerTransferFee.transferFeeBasisPoints,
|
|
62
|
+
maximumFee: feeConfig.newerTransferFee.maximumFee.toString(),
|
|
63
|
+
};
|
|
64
|
+
authorities.transferFeeConfigAuthority = toBase58(feeConfig.transferFeeConfigAuthority);
|
|
65
|
+
authorities.withdrawWithheldAuthority = toBase58(feeConfig.withdrawWithheldAuthority);
|
|
66
|
+
}
|
|
67
|
+
const hook = getTransferHook(mintInfo);
|
|
68
|
+
if (hook) {
|
|
69
|
+
extensions.transferHookProgramId = hook.programId.toBase58();
|
|
70
|
+
}
|
|
71
|
+
const delegate = getPermanentDelegate(mintInfo);
|
|
72
|
+
if (delegate?.delegate) {
|
|
73
|
+
authorities.permanentDelegate = delegate.delegate.toBase58();
|
|
74
|
+
}
|
|
75
|
+
const interest = getInterestBearingMintConfigState(mintInfo);
|
|
76
|
+
if (interest) {
|
|
77
|
+
extensions.interestBearing = { rateBasisPoints: interest.currentRate };
|
|
78
|
+
authorities.rateAuthority = toBase58(interest.rateAuthority);
|
|
79
|
+
}
|
|
80
|
+
// DefaultAccountState is a single byte (AccountState). Decoded generically to avoid depending
|
|
81
|
+
// on a version-specific typed getter. permissionlessThaw is NOT on-chain — resolved separately
|
|
82
|
+
// at onboarding; defaults false until confirmed.
|
|
83
|
+
const defaultStateData = getExtensionData(ExtensionType.DefaultAccountState, mintInfo.tlvData);
|
|
84
|
+
if (defaultStateData) {
|
|
85
|
+
extensions.defaultAccountState = {
|
|
86
|
+
frozen: defaultStateData[0] === AccountState.Frozen,
|
|
87
|
+
permissionlessThaw: false,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// NOTE: ScaledUiAmount config parsing (initialMultiplier) is intentionally deferred — the typed
|
|
91
|
+
// getter is not available in @solana/spl-token@0.4.9. The extension is still *detected* above
|
|
92
|
+
// (so the safety gate sees it); populating scaledUiAmount.initialMultiplier is a follow-up that
|
|
93
|
+
// bumps @solana/spl-token to a version exposing getScaledUiAmountConfig. See PR for 3.4.
|
|
94
|
+
if (Object.values(authorities).some((v) => v !== undefined)) {
|
|
95
|
+
extensions.authorities = authorities;
|
|
96
|
+
}
|
|
97
|
+
return { detectedTypeNames, extensions };
|
|
98
|
+
}
|
|
99
|
+
/** Fetch a Token-2022 mint and parse its extensions. Uses `finalized` commitment rules. */
|
|
100
|
+
export async function readMintExtensions(connection, mint, commitment = 'finalized') {
|
|
101
|
+
const mintPubkey = typeof mint === 'string' ? new PublicKey(mint) : mint;
|
|
102
|
+
const mintInfo = await getMint(connection, mintPubkey, commitment, TOKEN_2022_PROGRAM_ID);
|
|
103
|
+
return parseMintExtensions(mintInfo);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5FeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90b2tlbkV4dGVuc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUNiLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsaUNBQWlDLEVBQ2pDLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGVBQWUsRUFFZixxQkFBcUIsR0FDdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQTBCLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBY3BFLDJGQUEyRjtBQUMzRixNQUFNLGtCQUFrQixHQUFvRDtJQUMxRSxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQyxXQUFXO0lBQ3BELFlBQVksRUFBRSxxQkFBcUIsQ0FBQyxZQUFZO0lBQ2hELGlCQUFpQixFQUFFLHFCQUFxQixDQUFDLGlCQUFpQjtJQUMxRCxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxlQUFlO0lBQzVELG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLG1CQUFtQjtJQUM5RCxvQkFBb0IsRUFBRSxxQkFBcUIsQ0FBQyxjQUFjO0NBQzNELENBQUM7QUFFRixNQUFNLDJCQUEyQixHQUFHLENBQUMsMEJBQTBCLEVBQUUsK0JBQStCLENBQUMsQ0FBQztBQUVsRyx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFFBQWM7SUFDL0MsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFD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SUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzFGLE9BQU8sbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvbFRva2VuRXh0ZW5zaW9ucywgU29sVG9rZW5FeHRlbnNpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBBY2NvdW50U3RhdGUsXG4gIEV4dGVuc2lvblR5cGUsXG4gIGdldEV4dGVuc2lvbkRhdGEsXG4gIGdldEV4dGVuc2lvblR5cGVzLFxuICBnZXRJbnRlcmVzdEJlYXJpbmdNaW50Q29uZmlnU3RhdGUsXG4gIGdldE1pbnQsXG4gIGdldFBlcm1hbmVudERlbGVnYXRlLFxuICBnZXRUcmFuc2ZlckZlZUNvbmZpZyxcbiAgZ2V0VHJhbnNmZXJIb29rLFxuICB0eXBlIE1pbnQsXG4gIFRPS0VOXzIwMjJfUFJPR1JBTV9JRCxcbn0gZnJvbSAnQHNvbGFuYS9zcGwtdG9rZW4nO1xuaW1wb3J0IHsgQ29tbWl0bWVudCwgQ29ubmVjdGlvbiwgUHVibGljS2V5IH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcblxuLyoqXG4gKiBSZXN1bHQgb2YgcmVhZGluZyBhIFRva2VuLTIwMjIgbWludCdzIGV4dGVuc2lvbiBkYXRhLlxuICpcbiAqIGBkZXRlY3RlZFR5cGVOYW1lc2AgbGlzdHMgRVZFUlkgZXh0ZW5zaW9uIHByZXNlbnQgb24gdGhlIG1pbnQg4oCUIGluY2x1ZGluZyBvbmVzIEJpdEdvIGRvZXNcbiAqIG5vdCBtb2RlbCDigJQgc28gY2FsbGVycyBjYW4gcnVuIHRoZSBvbmJvYXJkaW5nIHNhZmV0eSBnYXRlIChgZ2V0VW5zdXBwb3J0ZWRTb2xUb2tlbkV4dGVuc2lvbnNgKS5cbiAqIGBleHRlbnNpb25zYCBpcyB0aGUgdHlwZWQsIHN0b3JhYmxlIGNvbmZpZyBmb3IgdGhlIGV4dGVuc2lvbnMgQml0R28gZG9lcyBtb2RlbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaW50RXh0ZW5zaW9uUmVhZFJlc3VsdCB7XG4gIGRldGVjdGVkVHlwZU5hbWVzOiBzdHJpbmdbXTtcbiAgZXh0ZW5zaW9uczogU29sVG9rZW5FeHRlbnNpb25zO1xufVxuXG4vKiogTWFwIGZyb20gYEBzb2xhbmEvc3BsLXRva2VuYCBFeHRlbnNpb25UeXBlIG5hbWVzIHRvIEJpdEdvJ3MgbW9kZWxlZCBleHRlbnNpb24gdHlwZXMuICovXG5jb25zdCBFWFRFTlNJT05fTkFNRV9NQVA6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIFNvbFRva2VuRXh0ZW5zaW9uVHlwZT4+ID0ge1xuICBUcmFuc2ZlckZlZUNvbmZpZzogU29sVG9rZW5FeHRlbnNpb25UeXBlLlRyYW5zZmVyRmVlLFxuICBUcmFuc2Zlckhvb2s6IFNvbFRva2VuRXh0ZW5zaW9uVHlwZS5UcmFuc2Zlckhvb2ssXG4gIFBlcm1hbmVudERlbGVnYXRlOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuUGVybWFuZW50RGVsZWdhdGUsXG4gIEludGVyZXN0QmVhcmluZ0NvbmZpZzogU29sVG9rZW5FeHRlbnNpb25UeXBlLkludGVyZXN0QmVhcmluZyxcbiAgRGVmYXVsdEFjY291bnRTdGF0ZTogU29sVG9rZW5FeHRlbnNpb25UeXBlLkRlZmF1bHRBY2NvdW50U3RhdGUsXG4gIFNjYWxlZFVpQW1vdW50Q29uZmlnOiBTb2xUb2tlbkV4dGVuc2lvblR5cGUuU2NhbGVkVWlBbW91bnQsXG59O1xuXG5jb25zdCBDT05GSURFTlRJQUxfVFJBTlNGRVJfTkFNRVMgPSBbJ0NvbmZpZGVudGlhbFRyYW5zZmVyTWludCcsICdDb25maWRlbnRpYWxUcmFuc2ZlckZlZUNvbmZpZyddO1xuXG4vKiogSHVtYW4tcmVhZGFibGUgbmFtZXMgb2YgZXZlcnkgZXh0ZW5zaW9uIHR5cGUgcHJlc2VudCBvbiB0aGUgbWludC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRlbnNpb25UeXBlTmFtZXMobWludEluZm86IE1pbnQpOiBzdHJpbmdbXSB7XG4gIGlmIChtaW50SW5mby50bHZEYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gZ2V0RXh0ZW5zaW9uVHlwZXMobWludEluZm8udGx2RGF0YSkubWFwKCh0KSA9PiBFeHRlbnNpb25UeXBlW3RdID8/IGB1bmtub3duKCR7dH0pYCk7XG59XG5cbi8qKiBUaGUgc3Vic2V0IG9mIGRldGVjdGVkIGV4dGVuc2lvbnMgdGhhdCBCaXRHbyBtb2RlbHMuIFB1cmUg4oCUIHVuaXQtdGVzdGFibGUgd2l0aG91dCBjaGFpbiBkYXRhLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcE1vZGVsZWRFeHRlbnNpb25zKGRldGVjdGVkVHlwZU5hbWVzOiByZWFkb25seSBzdHJpbmdbXSk6IFNvbFRva2VuRXh0ZW5zaW9uVHlwZVtdIHtcbiAgY29uc3QgbW9kZWxlZDogU29sVG9rZW5FeHRlbnNpb25UeXBlW10gPSBbXTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIGRldGVjdGVkVHlwZU5hbWVzKSB7XG4gICAgY29uc3QgbWFwcGVkID0gRVhURU5TSU9OX05BTUVfTUFQW25hbWVdO1xuICAgIGlmIChtYXBwZWQgIT09IHVuZGVmaW5lZCAmJiAhbW9kZWxlZC5pbmNsdWRlcyhtYXBwZWQpKSB7XG4gICAgICBtb2RlbGVkLnB1c2gobWFwcGVkKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1vZGVsZWQ7XG59XG5cbi8qKlxuICogRW5mb3JjZSB0aGUgcHJvdG9jb2wtbGV2ZWwgaW5jb21wYXRpYmlsaXR5OiBUcmFuc2ZlciBIb29rIGFuZCBDb25maWRlbnRpYWxcbiAqIFRyYW5zZmVyIGNhbm5vdCBjb2V4aXN0IG9uIHRoZSBzYW1lIG1pbnQuIFB1cmUg4oCUIHVuaXQtdGVzdGFibGUgd2l0aG91dCBjaGFpbiBkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RXh0ZW5zaW9uQ29tcGF0aWJpbGl0eShkZXRlY3RlZFR5cGVOYW1lczogcmVhZG9ubHkgc3RyaW5nW10pOiB2b2lkIHtcbiAgY29uc3QgaGFzSG9vayA9IGRldGVjdGVkVHlwZU5hbWVzLmluY2x1ZGVzKCdUcmFuc2Zlckhvb2snKTtcbiAgY29uc3QgaGFzQ29uZmlkZW50aWFsID0gZGV0ZWN0ZWRUeXBlTmFtZXMuc29tZSgobikgPT4gQ09ORklERU5USUFMX1RSQU5TRkVSX05BTUVTLmluY2x1ZGVzKG4pKTtcbiAgaWYgKGhhc0hvb2sgJiYgaGFzQ29uZmlkZW50aWFsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaW50IGRlY2xhcmVzIGJvdGggVHJhbnNmZXIgSG9vayBhbmQgQ29uZmlkZW50aWFsIFRyYW5zZmVyLCB3aGljaCBjYW5ub3QgY29leGlzdCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvQmFzZTU4KGtleTogUHVibGljS2V5IHwgbnVsbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBrZXkgPyBrZXkudG9CYXNlNTgoKSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIGRlY29kZWQgVG9rZW4tMjAyMiBgTWludGAgaW50byBCaXRHbydzIGV4dGVuc2lvbiBtb2RlbC4gU2VwYXJhdGVkIGZyb20gdGhlIFJQQyBjYWxsXG4gKiBzbyBpdCBjYW4gYmUgdW5pdC10ZXN0ZWQgYWdhaW5zdCByZWNvcmRlZCBtaW50IGZpeHR1cmVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VNaW50RXh0ZW5zaW9ucyhtaW50SW5mbzogTWludCk6IE1pbnRFeHRlbnNpb25SZWFkUmVzdWx0IHtcbiAgY29uc3QgZGV0ZWN0ZWRUeXBlTmFtZXMgPSBleHRlbnNpb25UeXBlTmFtZXMobWludEluZm8pO1xuICBhc3NlcnRFeHRlbnNpb25Db21wYXRpYmlsaXR5KGRldGVjdGVkVHlwZU5hbWVzKTtcblxuICBjb25zdCBleHRlbnNpb25zOiBTb2xUb2tlbkV4dGVuc2lvbnMgPSB7IGRldGVjdGVkOiBtYXBNb2RlbGVkRXh0ZW5zaW9ucyhkZXRlY3RlZFR5cGVOYW1lcykgfTtcbiAgY29uc3QgYXV0aG9yaXRpZXM6IE5vbk51bGxhYmxlPFNvbFRva2VuRXh0ZW5zaW9uc1snYXV0aG9yaXRpZXMnXT4gPSB7XG4gICAgbWludEF1dGhvcml0eTogdG9CYXNlNTgobWludEluZm8ubWludEF1dGhvcml0eSksXG4gICAgZnJlZXplQXV0aG9yaXR5OiB0b0Jhc2U1OChtaW50SW5mby5mcmVlemVBdXRob3JpdHkpLFxuICB9O1xuXG4gIGNvbnN0IGZlZUNvbmZpZyA9IGdldFRyYW5zZmVyRmVlQ29uZmlnKG1pbnRJbmZvKTtcbiAgaWYgKGZlZUNvbmZpZykge1xuICAgIGV4dGVuc2lvbnMudHJhbnNmZXJGZWUgPSB7XG4gICAgICB0cmFuc2ZlckZlZUJhc2lzUG9pbnRzOiBmZWVDb25maWcubmV3ZXJUcmFuc2ZlckZlZS50cmFuc2ZlckZlZUJhc2lzUG9pbnRzLFxuICAgICAgbWF4aW11bUZlZTogZmVlQ29uZmlnLm5ld2VyVHJhbnNmZXJGZWUubWF4aW11bUZlZS50b1N0cmluZygpLFxuICAgIH07XG4gICAgYXV0aG9yaXRpZXMudHJhbnNmZXJGZWVDb25maWdBdXRob3JpdHkgPSB0b0Jhc2U1OChmZWVDb25maWcudHJhbnNmZXJGZWVDb25maWdBdXRob3JpdHkpO1xuICAgIGF1dGhvcml0aWVzLndpdGhkcmF3V2l0aGhlbGRBdXRob3JpdHkgPSB0b0Jhc2U1OChmZWVDb25maWcud2l0aGRyYXdXaXRoaGVsZEF1dGhvcml0eSk7XG4gIH1cblxuICBjb25zdCBob29rID0gZ2V0VHJhbnNmZXJIb29rKG1pbnRJbmZvKTtcbiAgaWYgKGhvb2spIHtcbiAgICBleHRlbnNpb25zLnRyYW5zZmVySG9va1Byb2dyYW1JZCA9IGhvb2sucHJvZ3JhbUlkLnRvQmFzZTU4KCk7XG4gIH1cblxuICBjb25zdCBkZWxlZ2F0ZSA9IGdldFBlcm1hbmVudERlbGVnYXRlKG1pbnRJbmZvKTtcbiAgaWYgKGRlbGVnYXRlPy5kZWxlZ2F0ZSkge1xuICAgIGF1dGhvcml0aWVzLnBlcm1hbmVudERlbGVnYXRlID0gZGVsZWdhdGUuZGVsZWdhdGUudG9CYXNlNTgoKTtcbiAgfVxuXG4gIGNvbnN0IGludGVyZXN0ID0gZ2V0SW50ZXJlc3RCZWFyaW5nTWludENvbmZpZ1N0YXRlKG1pbnRJbmZvKTtcbiAgaWYgKGludGVyZXN0KSB7XG4gICAgZXh0ZW5zaW9ucy5pbnRlcmVzdEJlYXJpbmcgPSB7IHJhdGVCYXNpc1BvaW50czogaW50ZXJlc3QuY3VycmVudFJhdGUgfTtcbiAgICBhdXRob3JpdGllcy5yYXRlQXV0aG9yaXR5ID0gdG9CYXNlNTgoaW50ZXJlc3QucmF0ZUF1dGhvcml0eSk7XG4gIH1cblxuICAvLyBEZWZhdWx0QWNjb3VudFN0YXRlIGlzIGEgc2luZ2xlIGJ5dGUgKEFjY291bnRTdGF0ZSkuIERlY29kZWQgZ2VuZXJpY2FsbHkgdG8gYXZvaWQgZGVwZW5kaW5nXG4gIC8vIG9uIGEgdmVyc2lvbi1zcGVjaWZpYyB0eXBlZCBnZXR0ZXIuIHBlcm1pc3Npb25sZXNzVGhhdyBpcyBOT1Qgb24tY2hhaW4g4oCUIHJlc29sdmVkIHNlcGFyYXRlbHlcbiAgLy8gYXQgb25ib2FyZGluZzsgZGVmYXVsdHMgZmFsc2UgdW50aWwgY29uZmlybWVkLlxuICBjb25zdCBkZWZhdWx0U3RhdGVEYXRhID0gZ2V0RXh0ZW5zaW9uRGF0YShFeHRlbnNpb25UeXBlLkRlZmF1bHRBY2NvdW50U3RhdGUsIG1pbnRJbmZvLnRsdkRhdGEpO1xuICBpZiAoZGVmYXVsdFN0YXRlRGF0YSkge1xuICAgIGV4dGVuc2lvbnMuZGVmYXVsdEFjY291bnRTdGF0ZSA9IHtcbiAgICAgIGZyb3plbjogZGVmYXVsdFN0YXRlRGF0YVswXSA9PT0gQWNjb3VudFN0YXRlLkZyb3plbixcbiAgICAgIHBlcm1pc3Npb25sZXNzVGhhdzogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIC8vIE5PVEU6IFNjYWxlZFVpQW1vdW50IGNvbmZpZyBwYXJzaW5nIChpbml0aWFsTXVsdGlwbGllcikgaXMgaW50ZW50aW9uYWxseSBkZWZlcnJlZCDigJQgdGhlIHR5cGVkXG4gIC8vIGdldHRlciBpcyBub3QgYXZhaWxhYmxlIGluIEBzb2xhbmEvc3BsLXRva2VuQDAuNC45LiBUaGUgZXh0ZW5zaW9uIGlzIHN0aWxsICpkZXRlY3RlZCogYWJvdmVcbiAgLy8gKHNvIHRoZSBzYWZldHkgZ2F0ZSBzZWVzIGl0KTsgcG9wdWxhdGluZyBzY2FsZWRVaUFtb3VudC5pbml0aWFsTXVsdGlwbGllciBpcyBhIGZvbGxvdy11cCB0aGF0XG4gIC8vIGJ1bXBzIEBzb2xhbmEvc3BsLXRva2VuIHRvIGEgdmVyc2lvbiBleHBvc2luZyBnZXRTY2FsZWRVaUFtb3VudENvbmZpZy4gU2VlIFBSIGZvciAzLjQuXG5cbiAgaWYgKE9iamVjdC52YWx1ZXMoYXV0aG9yaXRpZXMpLnNvbWUoKHYpID0+IHYgIT09IHVuZGVmaW5lZCkpIHtcbiAgICBleHRlbnNpb25zLmF1dGhvcml0aWVzID0gYXV0aG9yaXRpZXM7XG4gIH1cblxuICByZXR1cm4geyBkZXRlY3RlZFR5cGVOYW1lcywgZXh0ZW5zaW9ucyB9O1xufVxuXG4vKiogRmV0Y2ggYSBUb2tlbi0yMDIyIG1pbnQgYW5kIHBhcnNlIGl0cyBleHRlbnNpb25zLiBVc2VzIGBmaW5hbGl6ZWRgIGNvbW1pdG1lbnQgcnVsZXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE1pbnRFeHRlbnNpb25zKFxuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uLFxuICBtaW50OiBzdHJpbmcgfCBQdWJsaWNLZXksXG4gIGNvbW1pdG1lbnQ6IENvbW1pdG1lbnQgPSAnZmluYWxpemVkJ1xuKTogUHJvbWlzZTxNaW50RXh0ZW5zaW9uUmVhZFJlc3VsdD4ge1xuICBjb25zdCBtaW50UHVia2V5ID0gdHlwZW9mIG1pbnQgPT09ICdzdHJpbmcnID8gbmV3IFB1YmxpY0tleShtaW50KSA6IG1pbnQ7XG4gIGNvbnN0IG1pbnRJbmZvID0gYXdhaXQgZ2V0TWludChjb25uZWN0aW9uLCBtaW50UHVia2V5LCBjb21taXRtZW50LCBUT0tFTl8yMDIyX1BST0dSQU1fSUQpO1xuICByZXR1cm4gcGFyc2VNaW50RXh0ZW5zaW9ucyhtaW50SW5mbyk7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo-beta/sdk-coin-sol",
|
|
3
|
-
"version": "7.6.4-beta.
|
|
3
|
+
"version": "7.6.4-beta.558",
|
|
4
4
|
"description": "BitGo SDK coin library for Sol",
|
|
5
5
|
"main": "./dist/cjs/src/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -56,10 +56,10 @@
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@bitgo-beta/logger": "1.0.1-beta.
|
|
60
|
-
"@bitgo-beta/sdk-core": "8.2.1-beta.
|
|
61
|
-
"@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.
|
|
62
|
-
"@bitgo-beta/statics": "15.1.1-beta.
|
|
59
|
+
"@bitgo-beta/logger": "1.0.1-beta.334",
|
|
60
|
+
"@bitgo-beta/sdk-core": "8.2.1-beta.1919",
|
|
61
|
+
"@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.1918",
|
|
62
|
+
"@bitgo-beta/statics": "15.1.1-beta.1933",
|
|
63
63
|
"@bitgo/public-types": "6.43.0",
|
|
64
64
|
"@bitgo/wasm-solana": "^2.6.0",
|
|
65
65
|
"@solana/spl-stake-pool": "1.1.8",
|
|
@@ -72,11 +72,11 @@
|
|
|
72
72
|
"tweetnacl": "^1.0.3"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"@bitgo-beta/sdk-api": "1.10.1-beta.
|
|
75
|
+
"@bitgo-beta/sdk-api": "1.10.1-beta.1914",
|
|
76
76
|
"@bitgo-beta/sdk-test": "^9.1.60",
|
|
77
77
|
"@types/lodash": "^4.14.121"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "55649cc12e9a9ac1c95e464b962ad5aec715a792",
|
|
80
80
|
"files": [
|
|
81
81
|
"dist/cjs",
|
|
82
82
|
"dist/esm"
|