@bitgo-beta/sdk-coin-sol 7.6.4-beta.677 → 7.6.4-beta.679
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 +5 -2
- package/dist/cjs/src/lib/scaledUiAmount.d.ts +30 -0
- package/dist/cjs/src/lib/scaledUiAmount.d.ts.map +1 -0
- package/dist/cjs/src/lib/scaledUiAmount.js +112 -0
- package/dist/cjs/test/unit/scaledUiAmount.d.ts +2 -0
- package/dist/cjs/test/unit/scaledUiAmount.d.ts.map +1 -0
- package/dist/cjs/test/unit/scaledUiAmount.js +101 -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/scaledUiAmount.d.ts +30 -0
- package/dist/esm/lib/scaledUiAmount.d.ts.map +1 -0
- package/dist/esm/lib/scaledUiAmount.js +108 -0
- package/package.json +7 -7
package/dist/esm/lib/index.d.ts
CHANGED
|
@@ -23,4 +23,5 @@ export { MessageBuilderFactory } from './messages';
|
|
|
23
23
|
export { explainSolTransaction, ExplainTransactionWasmOptions } from './explainTransactionWasm';
|
|
24
24
|
export { MintExtensionReadResult, extensionTypeNames, mapModeledExtensions, parseMintExtensions, readMintExtensions, } from './tokenExtensions';
|
|
25
25
|
export { ResolvePermissionlessThawResult, SolAccountFetcher, buildSolAccountConnection, resolvePermissionlessThaw, resolveTransferHookAccounts, } from './token2022Resolve';
|
|
26
|
+
export { rawToUiAmountString, uiAmountToRaw } from './scaledUiAmount';
|
|
26
27
|
//# 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,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"}
|
|
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;AAC5B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/esm/lib/index.js
CHANGED
|
@@ -23,4 +23,5 @@ export { MessageBuilderFactory } from './messages';
|
|
|
23
23
|
export { explainSolTransaction } from './explainTransactionWasm';
|
|
24
24
|
export { extensionTypeNames, mapModeledExtensions, parseMintExtensions, readMintExtensions, } from './tokenExtensions';
|
|
25
25
|
export { buildSolAccountConnection, resolvePermissionlessThaw, resolveTransferHookAccounts, } from './token2022Resolve';
|
|
26
|
-
|
|
26
|
+
export { rawToUiAmountString, uiAmountToRaw } from './scaledUiAmount';
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxTQUFTLE1BQU0sU0FBUyxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBRWpDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDNUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBaUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsa0JBQWtCLEdBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUdMLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsMkJBQTJCLEdBQzVCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgSW50ZXJmYWNlIGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB7IEF0YUluaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vYXRhSW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmV4cG9ydCB7IENsb3NlQXRhQnVpbGRlciB9IGZyb20gJy4vY2xvc2VBdGFCdWlsZGVyJztcbmV4cG9ydCB7IENvbmZpZGVudGlhbFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vY29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IEN1c3RvbUluc3RydWN0aW9uQnVpbGRlciB9IGZyb20gJy4vY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgU3Rha2luZ0FjdGl2YXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0FjdGl2YXRlQnVpbGRlcic7XG5leHBvcnQgeyBTdGFraW5nQXV0aG9yaXplQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyIH0gZnJvbSAnLi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ0RlbGVnYXRlQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ0RlbGVnYXRlQnVpbGRlcic7XG5leHBvcnQgeyBTdGFraW5nUmF3TXNnQXV0aG9yaXplQnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ1Jhd01zZ0F1dGhvcml6ZUJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ1dpdGhkcmF3QnVpbGRlciB9IGZyb20gJy4vc3Rha2luZ1dpdGhkcmF3QnVpbGRlcic7XG5leHBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyVjIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlclYyJztcbmV4cG9ydCB7IFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlciB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyJztcbmV4cG9ydCB7IEludGVyZmFjZSwgVXRpbHMgfTtcbmV4cG9ydCB7IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vbWVzc2FnZXMnO1xuZXhwb3J0IHsgZXhwbGFpblNvbFRyYW5zYWN0aW9uLCBFeHBsYWluVHJhbnNhY3Rpb25XYXNtT3B0aW9ucyB9IGZyb20gJy4vZXhwbGFpblRyYW5zYWN0aW9uV2FzbSc7XG5leHBvcnQge1xuICBNaW50RXh0ZW5zaW9uUmVhZFJlc3VsdCxcbiAgZXh0ZW5zaW9uVHlwZU5hbWVzLFxuICBtYXBNb2RlbGVkRXh0ZW5zaW9ucyxcbiAgcGFyc2VNaW50RXh0ZW5zaW9ucyxcbiAgcmVhZE1pbnRFeHRlbnNpb25zLFxufSBmcm9tICcuL3Rva2VuRXh0ZW5zaW9ucyc7XG5leHBvcnQge1xuICBSZXNvbHZlUGVybWlzc2lvbmxlc3NUaGF3UmVzdWx0LFxuICBTb2xBY2NvdW50RmV0Y2hlcixcbiAgYnVpbGRTb2xBY2NvdW50Q29ubmVjdGlvbixcbiAgcmVzb2x2ZVBlcm1pc3Npb25sZXNzVGhhdyxcbiAgcmVzb2x2ZVRyYW5zZmVySG9va0FjY291bnRzLFxufSBmcm9tICcuL3Rva2VuMjAyMlJlc29sdmUnO1xuZXhwb3J0IHsgcmF3VG9VaUFtb3VudFN0cmluZywgdWlBbW91bnRUb1JhdyB9IGZyb20gJy4vc2NhbGVkVWlBbW91bnQnO1xuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 BitGo, Inc. All Rights Reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Convert a raw base-unit amount to its scaled UI denomination.
|
|
6
|
+
*
|
|
7
|
+
* Exact by construction: the result is `raw * multiplier / 10^decimals`, whose
|
|
8
|
+
* exact decimal expansion never exceeds `multiplier scale + decimals` fraction
|
|
9
|
+
* digits, so no rounding ever occurs.
|
|
10
|
+
*
|
|
11
|
+
* @param raw Amount in raw base units (integer, >= 0)
|
|
12
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
13
|
+
* @param decimals The mint's decimals (>= 0)
|
|
14
|
+
* @returns The exact UI amount as a decimal string
|
|
15
|
+
* @throws if any argument is malformed, the multiplier is not positive, or raw/decimals are negative
|
|
16
|
+
*/
|
|
17
|
+
export declare function rawToUiAmountString(raw: bigint, multiplier: string, decimals: number): string;
|
|
18
|
+
/**
|
|
19
|
+
* Convert a scaled UI denomination to raw base units. Inverse of
|
|
20
|
+
* {@link rawToUiAmountString}: flooring an exact ui string reproduces the
|
|
21
|
+
* original raw amount.
|
|
22
|
+
*
|
|
23
|
+
* @param uiAmount The UI amount as a decimal string (>= 0)
|
|
24
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
25
|
+
* @param decimals The mint's decimals (>= 0)
|
|
26
|
+
* @returns The raw amount in base units, floored to the integer unit
|
|
27
|
+
* @throws if any argument is malformed, the ui amount is negative, or the multiplier is not positive
|
|
28
|
+
*/
|
|
29
|
+
export declare function uiAmountToRaw(uiAmount: string, multiplier: string, decimals: number): bigint;
|
|
30
|
+
//# sourceMappingURL=scaledUiAmount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaledUiAmount.d.ts","sourceRoot":"","sources":["../../../src/lib/scaledUiAmount.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2DH;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiC7F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmB5F"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026 BitGo, Inc. All Rights Reserved.
|
|
3
|
+
*/
|
|
4
|
+
const DECIMAL_LITERAL_PATTERN = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)$/;
|
|
5
|
+
/**
|
|
6
|
+
* Parse an exact decimal string into scaled-integer parts. Rejects scientific
|
|
7
|
+
* notation, empty strings, NaN/Infinity, and non-numeric input.
|
|
8
|
+
*
|
|
9
|
+
* @param value The decimal literal, e.g. "0.001"; "1e-9" must be written as "0.000000001"
|
|
10
|
+
*/
|
|
11
|
+
function parseDecimal(value, what) {
|
|
12
|
+
if (typeof value !== 'string' || !DECIMAL_LITERAL_PATTERN.test(value)) {
|
|
13
|
+
throw new Error(`Invalid ${what} '${value}': expected a finite decimal string`);
|
|
14
|
+
}
|
|
15
|
+
const negative = value.startsWith('-');
|
|
16
|
+
const unsigned = negative || value.startsWith('+') ? value.slice(1) : value;
|
|
17
|
+
const [intPart = '0', fracPart = ''] = unsigned.split('.');
|
|
18
|
+
const digits = BigInt(intPart + fracPart || '0');
|
|
19
|
+
return { negative, digits, scale: fracPart.length };
|
|
20
|
+
}
|
|
21
|
+
/** Render ±digits/10^scale as a normalized decimal string (no trailing zeros, no "-0"). */
|
|
22
|
+
function toDecimalString({ negative, digits, scale }) {
|
|
23
|
+
if (digits === 0n) {
|
|
24
|
+
return '0';
|
|
25
|
+
}
|
|
26
|
+
let s = digits.toString().padStart(scale + 1, '0');
|
|
27
|
+
if (scale > 0) {
|
|
28
|
+
s = `${s.slice(0, -scale)}.${s.slice(-scale)}`;
|
|
29
|
+
s = s.replace(/0+$/, '').replace(/\.$/, '');
|
|
30
|
+
}
|
|
31
|
+
return negative ? `-${s}` : s;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Convert a raw base-unit amount to its scaled UI denomination.
|
|
35
|
+
*
|
|
36
|
+
* Exact by construction: the result is `raw * multiplier / 10^decimals`, whose
|
|
37
|
+
* exact decimal expansion never exceeds `multiplier scale + decimals` fraction
|
|
38
|
+
* digits, so no rounding ever occurs.
|
|
39
|
+
*
|
|
40
|
+
* @param raw Amount in raw base units (integer, >= 0)
|
|
41
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
42
|
+
* @param decimals The mint's decimals (>= 0)
|
|
43
|
+
* @returns The exact UI amount as a decimal string
|
|
44
|
+
* @throws if any argument is malformed, the multiplier is not positive, or raw/decimals are negative
|
|
45
|
+
*/
|
|
46
|
+
export function rawToUiAmountString(raw, multiplier, decimals) {
|
|
47
|
+
if (typeof raw !== 'bigint') {
|
|
48
|
+
throw new Error(`Invalid raw amount '${String(raw)}': expected a BigInt of base units`);
|
|
49
|
+
}
|
|
50
|
+
if (raw < 0n) {
|
|
51
|
+
throw new Error(`Invalid raw amount '${raw}': must be non-negative`);
|
|
52
|
+
}
|
|
53
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
54
|
+
throw new Error(`Invalid decimals '${decimals}': must be a non-negative integer`);
|
|
55
|
+
}
|
|
56
|
+
const mult = parseDecimal(multiplier, 'multiplier');
|
|
57
|
+
if (mult.negative || mult.digits === 0n) {
|
|
58
|
+
throw new Error(`Invalid multiplier '${multiplier}': must be positive`);
|
|
59
|
+
}
|
|
60
|
+
// ui = raw * (multDigits / 10^multScale) / 10^decimals
|
|
61
|
+
// = (raw * multDigits) / 10^(multScale + decimals) — exact, terminating expansion
|
|
62
|
+
const numerator = raw * mult.digits;
|
|
63
|
+
const fractionDigits = mult.scale + decimals;
|
|
64
|
+
const denominator = 10n ** BigInt(fractionDigits);
|
|
65
|
+
const quotient = numerator / denominator;
|
|
66
|
+
const remainder = numerator % denominator;
|
|
67
|
+
if (remainder === 0n) {
|
|
68
|
+
return toDecimalString({ negative: false, digits: quotient, scale: 0 });
|
|
69
|
+
}
|
|
70
|
+
// The denominator IS 10^fractionDigits, so the exact fraction digits are `remainder`
|
|
71
|
+
// zero-padded to fractionDigits — no long division needed.
|
|
72
|
+
return toDecimalString({
|
|
73
|
+
negative: false,
|
|
74
|
+
digits: quotient * 10n ** BigInt(fractionDigits) + remainder,
|
|
75
|
+
scale: fractionDigits,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Convert a scaled UI denomination to raw base units. Inverse of
|
|
80
|
+
* {@link rawToUiAmountString}: flooring an exact ui string reproduces the
|
|
81
|
+
* original raw amount.
|
|
82
|
+
*
|
|
83
|
+
* @param uiAmount The UI amount as a decimal string (>= 0)
|
|
84
|
+
* @param multiplier The mint's UiAmountMultiplier as a decimal string (> 0)
|
|
85
|
+
* @param decimals The mint's decimals (>= 0)
|
|
86
|
+
* @returns The raw amount in base units, floored to the integer unit
|
|
87
|
+
* @throws if any argument is malformed, the ui amount is negative, or the multiplier is not positive
|
|
88
|
+
*/
|
|
89
|
+
export function uiAmountToRaw(uiAmount, multiplier, decimals) {
|
|
90
|
+
if (!Number.isInteger(decimals) || decimals < 0) {
|
|
91
|
+
throw new Error(`Invalid decimals '${decimals}': must be a non-negative integer`);
|
|
92
|
+
}
|
|
93
|
+
const ui = parseDecimal(uiAmount, 'uiAmount');
|
|
94
|
+
if (ui.negative) {
|
|
95
|
+
throw new Error(`Invalid uiAmount '${uiAmount}': must be non-negative`);
|
|
96
|
+
}
|
|
97
|
+
const mult = parseDecimal(multiplier, 'multiplier');
|
|
98
|
+
if (mult.negative || mult.digits === 0n) {
|
|
99
|
+
throw new Error(`Invalid multiplier '${multiplier}': must be positive`);
|
|
100
|
+
}
|
|
101
|
+
// ui = uiDigits / 10^uiScale; multiplier = multDigits / 10^multScale
|
|
102
|
+
// raw = (uiDigits / 10^uiScale) * 10^decimals * (10^multScale / multDigits)
|
|
103
|
+
// = (uiDigits * 10^(decimals + multScale)) / (multDigits * 10^uiScale)
|
|
104
|
+
const numerator = ui.digits * 10n ** BigInt(decimals + mult.scale);
|
|
105
|
+
const denominator = mult.digits * 10n ** BigInt(ui.scale);
|
|
106
|
+
return numerator / denominator; // floor — raw base units are integers
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGVkVWlBbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NjYWxlZFVpQW1vdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBMkJILE1BQU0sdUJBQXVCLEdBQUcsZ0NBQWdDLENBQUM7QUFFakU7Ozs7O0dBS0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxLQUFhLEVBQUUsSUFBWTtJQUMvQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssS0FBSyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsUUFBUSxHQUFHLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxRQUFRLElBQUksR0FBRyxDQUFDLENBQUM7SUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN0RCxDQUFDO0FBRUQsMkZBQTJGO0FBQzNGLFNBQVMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWlCO0lBQ2pFLElBQUksTUFBTSxLQUFL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LENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsUUFBUSxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEseUJBQXlCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixVQUFVLHFCQUFxQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHNFQUFzRTtJQUN0RSw0RUFBNEU7SUFDNUUsMkVBQTJFO0lBQzNFLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25FLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsT0FBTyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsc0NBQXNDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDI2IEJpdEdvLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cblxuLyoqXG4gKiBTb2xhbmEgVG9rZW4tMjAyMiBTY2FsZWRVaUFtb3VudCBjb252ZXJzaW9uIHV0aWxpdGllcyAoQ1NITEQtMTY4OCkuXG4gKlxuICogQSBzY2FsZWQtVUkgbWludCBjYXJyaWVzIGEgYFVpQW1vdW50TXVsdGlwbGllcmAuIE9uLWNoYWluIChhbmQgdGhlcmVmb3JlIGluXG4gKiBldmVyeSBzZW5kL2J1aWxkIHBhdGggb2YgdGhpcyBTREspIGFtb3VudHMgYXJlIHJhdyBiYXNlIHVuaXRzOyB0aGUgVUlcbiAqIGRlbm9taW5hdGlvbiBpcyBgcmF3ICogbXVsdGlwbGllciAvIDEwXmRlY2ltYWxzYCwgbWF0Y2hpbmcgdGhlIFNQTFxuICogdG9rZW4tMjAyMiBTY2FsZWRVaUFtb3VudCBleHRlbnNpb24gc2VtYW50aWNzLiBUaGVzZSB1dGlsaXRpZXMgZXhpc3QgZm9yXG4gKiBkaXNwbGF5LCByZWNvbmNpbGlhdGlvbiwgYW5kIGJhbGFuY2UgY29udmVyc2lvbnMgb25seSDigJQgdGhleSBuZXZlciBmZWVkXG4gKiB0cmFuc2FjdGlvbiBidWlsZGluZywgd2hpY2ggc3RheXMgcmF3LWRlbm9taW5hdGVkLlxuICpcbiAqIEFsbCBhcml0aG1ldGljIGlzIGV4YWN0IHNjYWxlZC1pbnRlZ2VyIChCaWdJbnQpIG1hdGgg4oCUIGZsb2F0cyBhcmUgbmV2ZXIgdXNlZCxcbiAqIHNvIGNvbnZlcnNpb25zIGFyZSBkZXRlcm1pbmlzdGljIGFjcm9zcyBydW50aW1lcyBhbmQgbG9zZSBubyBwcmVjaXNpb246XG4gKiBgcmF3VG9VaUFtb3VudFN0cmluZ2AgaXMgYWx3YXlzIGV4YWN0ICh0aGUgZGl2aXNvciBpcyBhIHBvd2VyIG9mIHRlbiwgc28gdGhlXG4gKiBleGFjdCBleHBhbnNpb24gZml0cyB3aXRoaW4gYG11bHRpcGxpZXJTY2FsZSArIGRlY2ltYWxzYCBmcmFjdGlvbiBkaWdpdHMpLlxuICogYHVpQW1vdW50VG9SYXdgIGZsb29ycyB0byBhbiBpbnRlZ2VyIG51bWJlciBvZiBiYXNlIHVuaXRzIGFuZCBpcyB0aGUgZXhhY3RcbiAqIGludmVyc2Ugb2YgYHJhd1RvVWlBbW91bnRTdHJpbmdgIHdoZW5ldmVyIHRoZSB1aSBzdHJpbmcgaXMgZXhhY3QuXG4gKi9cblxuLyoqIFNpZ25pZmljYW5kIGFuZCBzY2FsZSBvZiBhIGRlY2ltYWwgbGl0ZXJhbDogdmFsdWUgPSDCsWRpZ2l0cyAvIDEwXnNjYWxlLiAqL1xuaW50ZXJmYWNlIFBhcnNlZERlY2ltYWwge1xuICBuZWdhdGl2ZTogYm9vbGVhbjtcbiAgZGlnaXRzOiBiaWdpbnQ7XG4gIHNjYWxlOiBudW1iZXI7XG59XG5cbmNvbnN0IERFQ0lNQUxfTElURVJBTF9QQVRURVJOID0gL15bKy1dPyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykkLztcblxuLyoqXG4gKiBQYXJzZSBhbiBleGFjdCBkZWNpbWFsIHN0cmluZyBpbnRvIHNjYWxlZC1pbnRlZ2VyIHBhcnRzLiBSZWplY3RzIHNjaWVudGlmaWNcbiAqIG5vdGF0aW9uLCBlbXB0eSBzdHJpbmdzLCBOYU4vSW5maW5pdHksIGFuZCBub24tbnVtZXJpYyBpbnB1dC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGRlY2ltYWwgbGl0ZXJhbCwgZS5nLiBcIjAuMDAxXCI7IFwiMWUtOVwiIG11c3QgYmUgd3JpdHRlbiBhcyBcIjAuMDAwMDAwMDAxXCJcbiAqL1xuZnVuY3Rpb24gcGFyc2VEZWNpbWFsKHZhbHVlOiBzdHJpbmcsIHdoYXQ6IHN0cmluZyk6IFBhcnNlZERlY2ltYWwge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCAhREVDSU1BTF9MSVRFUkFMX1BBVFRFUk4udGVzdCh2YWx1ZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHt3aGF0fSAnJHt2YWx1ZX0nOiBleHBlY3RlZCBhIGZpbml0ZSBkZWNpbWFsIHN0cmluZ2ApO1xuICB9XG4gIGNvbnN0IG5lZ2F0aXZlID0gdmFsdWUuc3RhcnRzV2l0aCgnLScpO1xuICBjb25zdCB1bnNpZ25lZCA9IG5lZ2F0aXZlIHx8IHZhbHVlLnN0YXJ0c1dpdGgoJysnKSA/IHZhbHVlLnNsaWNlKDEpIDogdmFsdWU7XG4gIGNvbnN0IFtpbnRQYXJ0ID0gJzAnLCBmcmFjUGFydCA9ICcnXSA9IHVuc2lnbmVkLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGRpZ2l0cyA9IEJpZ0ludChpbnRQYXJ0ICsgZnJhY1BhcnQgfHwgJzAnKTtcbiAgcmV0dXJuIHsgbmVnYXRpdmUsIGRpZ2l0cywgc2NhbGU6IGZyYWNQYXJ0Lmxlbmd0aCB9O1xufVxuXG4vKiogUmVuZGVyIMKxZGlnaXRzLzEwXnNjYWxlIGFzIGEgbm9ybWFsaXplZCBkZWNpbWFsIHN0cmluZyAobm8gdHJhaWxpbmcgemVyb3MsIG5vIFwiLTBcIikuICovXG5mdW5jdGlvbiB0b0RlY2ltYWxTdHJpbmcoeyBuZWdhdGl2ZSwgZGlnaXRzLCBzY2FsZSB9OiBQYXJzZWREZWNpbWFsKTogc3RyaW5nIHtcbiAgaWYgKGRpZ2l0cyA9PT0gMG4pIHtcbiAgICByZXR1cm4gJzAnO1xuICB9XG4gIGxldCBzID0gZGlnaXRzLnRvU3RyaW5nKCkucGFkU3RhcnQoc2NhbGUgKyAxLCAnMCcpO1xuICBpZiAoc2NhbGUgPiAwKSB7XG4gICAgcyA9IGAke3Muc2xpY2UoMCwgLXNjYWxlKX0uJHtzLnNsaWNlKC1zY2FsZSl9YDtcbiAgICBzID0gcy5yZXBsYWNlKC8wKyQvLCAnJykucmVwbGFjZSgvXFwuJC8sICcnKTtcbiAgfVxuICByZXR1cm4gbmVnYXRpdmUgPyBgLSR7c31gIDogcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgcmF3IGJhc2UtdW5pdCBhbW91bnQgdG8gaXRzIHNjYWxlZCBVSSBkZW5vbWluYXRpb24uXG4gKlxuICogRXhhY3QgYnkgY29uc3RydWN0aW9uOiB0aGUgcmVzdWx0IGlzIGByYXcgKiBtdWx0aXBsaWVyIC8gMTBeZGVjaW1hbHNgLCB3aG9zZVxuICogZXhhY3QgZGVjaW1hbCBleHBhbnNpb24gbmV2ZXIgZXhjZWVkcyBgbXVsdGlwbGllciBzY2FsZSArIGRlY2ltYWxzYCBmcmFjdGlvblxuICogZGlnaXRzLCBzbyBubyByb3VuZGluZyBldmVyIG9jY3Vycy5cbiAqXG4gKiBAcGFyYW0gcmF3IEFtb3VudCBpbiByYXcgYmFzZSB1bml0cyAoaW50ZWdlciwgPj0gMClcbiAqIEBwYXJhbSBtdWx0aXBsaWVyIFRoZSBtaW50J3MgVWlBbW91bnRNdWx0aXBsaWVyIGFzIGEgZGVjaW1hbCBzdHJpbmcgKD4gMClcbiAqIEBwYXJhbSBkZWNpbWFscyBUaGUgbWludCdzIGRlY2ltYWxzICg+PSAwKVxuICogQHJldHVybnMgVGhlIGV4YWN0IFVJIGFtb3VudCBhcyBhIGRlY2ltYWwgc3RyaW5nXG4gKiBAdGhyb3dzIGlmIGFueSBhcmd1bWVudCBpcyBtYWxmb3JtZWQsIHRoZSBtdWx0aXBsaWVyIGlzIG5vdCBwb3NpdGl2ZSwgb3IgcmF3L2RlY2ltYWxzIGFyZSBuZWdhdGl2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmF3VG9VaUFtb3VudFN0cmluZyhyYXc6IGJpZ2ludCwgbXVsdGlwbGllcjogc3RyaW5nLCBkZWNpbWFsczogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiByYXcgIT09ICdiaWdpbnQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHJhdyBhbW91bnQgJyR7U3RyaW5nKHJhdyl9JzogZXhwZWN0ZWQgYSBCaWdJbnQgb2YgYmFzZSB1bml0c2ApO1xuICB9XG4gIGlmIChyYXcgPCAwbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByYXcgYW1vdW50ICcke3Jhd30nOiBtdXN0IGJlIG5vbi1uZWdhdGl2ZWApO1xuICB9XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihkZWNpbWFscykgfHwgZGVjaW1hbHMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlY2ltYWxzICcke2RlY2ltYWxzfSc6IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcmApO1xuICB9XG4gIGNvbnN0IG11bHQgPSBwYXJzZURlY2ltYWwobXVsdGlwbGllciwgJ211bHRpcGxpZXInKTtcbiAgaWYgKG11bHQubmVnYXRpdmUgfHwgbXVsdC5kaWdpdHMgPT09IDBuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIG11bHRpcGxpZXIgJyR7bXVsdGlwbGllcn0nOiBtdXN0IGJlIHBvc2l0aXZlYCk7XG4gIH1cblxuICAvLyB1aSA9IHJhdyAqIChtdWx0RGlnaXRzIC8gMTBebXVsdFNjYWxlKSAvIDEwXmRlY2ltYWxzXG4gIC8vICAgID0gKHJhdyAqIG11bHREaWdpdHMpIC8gMTBeKG11bHRTY2FsZSArIGRlY2ltYWxzKSAgIOKAlCBleGFjdCwgdGVybWluYXRpbmcgZXhwYW5zaW9uXG4gIGNvbnN0IG51bWVyYXRvciA9IHJhdyAqIG11bHQuZGlnaXRzO1xuICBjb25zdCBmcmFjdGlvbkRpZ2l0cyA9IG11bHQuc2NhbGUgKyBkZWNpbWFscztcbiAgY29uc3QgZGVub21pbmF0b3IgPSAxMG4gKiogQmlnSW50KGZyYWN0aW9uRGlnaXRzKTtcblxuICBjb25zdCBxdW90aWVudCA9IG51bWVyYXRvciAvIGRlbm9taW5hdG9yO1xuICBjb25zdCByZW1haW5kZXIgPSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcjtcbiAgaWYgKHJlbWFpbmRlciA9PT0gMG4pIHtcbiAgICByZXR1cm4gdG9EZWNpbWFsU3RyaW5nKHsgbmVnYXRpdmU6IGZhbHNlLCBkaWdpdHM6IHF1b3RpZW50LCBzY2FsZTogMCB9KTtcbiAgfVxuICAvLyBUaGUgZGVub21pbmF0b3IgSVMgMTBeZnJhY3Rpb25EaWdpdHMsIHNvIHRoZSBleGFjdCBmcmFjdGlvbiBkaWdpdHMgYXJlIGByZW1haW5kZXJgXG4gIC8vIHplcm8tcGFkZGVkIHRvIGZyYWN0aW9uRGlnaXRzIOKAlCBubyBsb25nIGRpdmlzaW9uIG5lZWRlZC5cbiAgcmV0dXJuIHRvRGVjaW1hbFN0cmluZyh7XG4gICAgbmVnYXRpdmU6IGZhbHNlLFxuICAgIGRpZ2l0czogcXVvdGllbnQgKiAxMG4gKiogQmlnSW50KGZyYWN0aW9uRGlnaXRzKSArIHJlbWFpbmRlcixcbiAgICBzY2FsZTogZnJhY3Rpb25EaWdpdHMsXG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzY2FsZWQgVUkgZGVub21pbmF0aW9uIHRvIHJhdyBiYXNlIHVuaXRzLiBJbnZlcnNlIG9mXG4gKiB7QGxpbmsgcmF3VG9VaUFtb3VudFN0cmluZ306IGZsb29yaW5nIGFuIGV4YWN0IHVpIHN0cmluZyByZXByb2R1Y2VzIHRoZVxuICogb3JpZ2luYWwgcmF3IGFtb3VudC5cbiAqXG4gKiBAcGFyYW0gdWlBbW91bnQgVGhlIFVJIGFtb3VudCBhcyBhIGRlY2ltYWwgc3RyaW5nICg+PSAwKVxuICogQHBhcmFtIG11bHRpcGxpZXIgVGhlIG1pbnQncyBVaUFtb3VudE11bHRpcGxpZXIgYXMgYSBkZWNpbWFsIHN0cmluZyAoPiAwKVxuICogQHBhcmFtIGRlY2ltYWxzIFRoZSBtaW50J3MgZGVjaW1hbHMgKD49IDApXG4gKiBAcmV0dXJucyBUaGUgcmF3IGFtb3VudCBpbiBiYXNlIHVuaXRzLCBmbG9vcmVkIHRvIHRoZSBpbnRlZ2VyIHVuaXRcbiAqIEB0aHJvd3MgaWYgYW55IGFyZ3VtZW50IGlzIG1hbGZvcm1lZCwgdGhlIHVpIGFtb3VudCBpcyBuZWdhdGl2ZSwgb3IgdGhlIG11bHRpcGxpZXIgaXMgbm90IHBvc2l0aXZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aUFtb3VudFRvUmF3KHVpQW1vdW50OiBzdHJpbmcsIG11bHRpcGxpZXI6IHN0cmluZywgZGVjaW1hbHM6IG51bWJlcik6IGJpZ2ludCB7XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihkZWNpbWFscykgfHwgZGVjaW1hbHMgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRlY2ltYWxzICcke2RlY2ltYWxzfSc6IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcmApO1xuICB9XG4gIGNvbnN0IHVpID0gcGFyc2VEZWNpbWFsKHVpQW1vdW50LCAndWlBbW91bnQnKTtcbiAgaWYgKHVpLm5lZ2F0aXZlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHVpQW1vdW50ICcke3VpQW1vdW50fSc6IG11c3QgYmUgbm9uLW5lZ2F0aXZlYCk7XG4gIH1cbiAgY29uc3QgbXVsdCA9IHBhcnNlRGVjaW1hbChtdWx0aXBsaWVyLCAnbXVsdGlwbGllcicpO1xuICBpZiAobXVsdC5uZWdhdGl2ZSB8fCBtdWx0LmRpZ2l0cyA9PT0gMG4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbXVsdGlwbGllciAnJHttdWx0aXBsaWVyfSc6IG11c3QgYmUgcG9zaXRpdmVgKTtcbiAgfVxuXG4gIC8vIHVpID0gdWlEaWdpdHMgLyAxMF51aVNjYWxlOyAgbXVsdGlwbGllciA9IG11bHREaWdpdHMgLyAxMF5tdWx0U2NhbGVcbiAgLy8gcmF3ID0gKHVpRGlnaXRzIC8gMTBedWlTY2FsZSkgKiAxMF5kZWNpbWFscyAqICgxMF5tdWx0U2NhbGUgLyBtdWx0RGlnaXRzKVxuICAvLyAgICAgPSAodWlEaWdpdHMgKiAxMF4oZGVjaW1hbHMgKyBtdWx0U2NhbGUpKSAvIChtdWx0RGlnaXRzICogMTBedWlTY2FsZSlcbiAgY29uc3QgbnVtZXJhdG9yID0gdWkuZGlnaXRzICogMTBuICoqIEJpZ0ludChkZWNpbWFscyArIG11bHQuc2NhbGUpO1xuICBjb25zdCBkZW5vbWluYXRvciA9IG11bHQuZGlnaXRzICogMTBuICoqIEJpZ0ludCh1aS5zY2FsZSk7XG4gIHJldHVybiBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjsgLy8gZmxvb3Ig4oCUIHJhdyBiYXNlIHVuaXRzIGFyZSBpbnRlZ2Vyc1xufVxuIl19
|
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.679",
|
|
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.466",
|
|
60
|
+
"@bitgo-beta/sdk-core": "8.2.1-beta.2044",
|
|
61
|
+
"@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.2049",
|
|
62
|
+
"@bitgo-beta/statics": "15.1.1-beta.2067",
|
|
63
63
|
"@bitgo/public-types": "6.70.1",
|
|
64
64
|
"@bitgo/wasm-solana": "^2.6.0",
|
|
65
65
|
"@solana/buffer-layout": "^4.0.1",
|
|
@@ -73,11 +73,11 @@
|
|
|
73
73
|
"tweetnacl": "^1.0.3"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@bitgo-beta/sdk-api": "1.10.1-beta.
|
|
76
|
+
"@bitgo-beta/sdk-api": "1.10.1-beta.2036",
|
|
77
77
|
"@bitgo-beta/sdk-test": "^9.1.77",
|
|
78
78
|
"@types/lodash": "^4.14.121"
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "e93f517b18d465be888f7030a0d9ae398cad3c5a",
|
|
81
81
|
"files": [
|
|
82
82
|
"dist/cjs",
|
|
83
83
|
"dist/esm"
|