@solana/assertions 2.0.0-rc.0 → 2.0.0-rc.2

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/README.md CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  [code-style-prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square
8
8
  [code-style-prettier-url]: https://github.com/prettier/prettier
9
- [npm-downloads-image]: https://img.shields.io/npm/dm/@solana/assertions/experimental.svg?style=flat
10
- [npm-image]: https://img.shields.io/npm/v/@solana/assertions/experimental.svg?style=flat
11
- [npm-url]: https://www.npmjs.com/package/@solana/assertions/v/experimental
9
+ [npm-downloads-image]: https://img.shields.io/npm/dm/@solana/assertions/rc.svg?style=flat
10
+ [npm-image]: https://img.shields.io/npm/v/@solana/assertions/rc.svg?style=flat
11
+ [npm-url]: https://www.npmjs.com/package/@solana/assertions/v/rc
12
12
  [semantic-release-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg
13
13
  [semantic-release-url]: https://github.com/semantic-release/semantic-release
14
14
 
@@ -17,10 +17,10 @@ async function isEd25519CurveSupported(subtle) {
17
17
  /* extractable */
18
18
  false,
19
19
  ["sign", "verify"]
20
- ).catch(() => {
21
- resolve(cachedEd25519Decision = false);
22
- }).then(() => {
20
+ ).then(() => {
23
21
  resolve(cachedEd25519Decision = true);
22
+ }).catch(() => {
23
+ resolve(cachedEd25519Decision = false);
24
24
  });
25
25
  });
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError","SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT","SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n })\n .then(() => {\n resolve((cachedEd25519Decision = true));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError","SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT","SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED"],"mappings":"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","file":"index.browser.cjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .then(() => {\n resolve((cachedEd25519Decision = true));\n })\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
@@ -15,10 +15,10 @@ async function isEd25519CurveSupported(subtle) {
15
15
  /* extractable */
16
16
  false,
17
17
  ["sign", "verify"]
18
- ).catch(() => {
19
- resolve(cachedEd25519Decision = false);
20
- }).then(() => {
18
+ ).then(() => {
21
19
  resolve(cachedEd25519Decision = true);
20
+ }).catch(() => {
21
+ resolve(cachedEd25519Decision = false);
22
22
  });
23
23
  });
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError"],"mappings":"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","file":"index.browser.mjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n })\n .then(() => {\n resolve((cachedEd25519Decision = true));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError"],"mappings":";;;AAWA,SAAS,qBAAwB,GAAA;AAC7B,EAAmB,IAAA,CAAC,WAAW,eAAiB,EAAA;AAC5C,IAAM,MAAA,IAAI,YAAY,2DAA2D,CAAA,CAAA;AAAA,GACrF;AACJ,CAAA;AAEA,IAAI,qBAAA,CAAA;AACJ,eAAe,wBAAwB,MAAwC,EAAA;AAC3E,EAAA,IAAI,0BAA0B,KAAW,CAAA,EAAA;AACrC,IAAwB,qBAAA,GAAA,IAAI,QAAQ,CAAW,OAAA,KAAA;AAC3C,MACK,MAAA,CAAA,WAAA;AAAA,QAAY,SAAA;AAAA;AAAA,QAA6B,KAAA;AAAA,QAAO,CAAC,QAAQ,QAAQ,CAAA;AAAA,OAAC,CAClE,KAAK,MAAM;AACR,QAAA,OAAA,CAAS,wBAAwB,IAAK,CAAA,CAAA;AAAA,OACzC,CACA,CAAA,KAAA,CAAM,MAAM;AACT,QAAA,OAAA,CAAS,wBAAwB,KAAM,CAAA,CAAA;AAAA,OAC1C,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACL;AACA,EAAI,IAAA,OAAO,0BAA0B,SAAW,EAAA;AAC5C,IAAO,OAAA,qBAAA,CAAA;AAAA,GACJ,MAAA;AACH,IAAA,OAAO,MAAM,qBAAA,CAAA;AAAA,GACjB;AACJ,CAAA;AAEO,SAAS,iCAAoC,GAAA;AAChD,EAAsB,qBAAA,EAAA,CAAA;AACtB,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,iDAAiD,CAAA,CAAA;AAAA,GAC3E;AACJ,CAAA;AAEA,eAAsB,8BAAiC,GAAA;AACnD,EAAsB,qBAAA,EAAA,CAAA;AACtB,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,KAAgB,UAAY,EAAA;AACzG,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACA,EAAA,IAAI,CAAE,MAAM,uBAAA,CAAwB,UAAW,CAAA,MAAA,CAAO,MAAM,CAAI,EAAA;AAC5D,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACJ,CAAA;AAEO,SAAS,4BAA+B,GAAA;AAC3C,EAAsB,qBAAA,EAAA,CAAA;AACtB,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,SAAA,KAAc,UAAY,EAAA;AACvG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;AAEO,SAAS,kCAAqC,GAAA;AACjD,EAAsB,qBAAA,EAAA,CAAA;AACtB,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,UAAY,EAAA;AAClG,IAAM,MAAA,IAAI,YAAY,wDAAwD,CAAA,CAAA;AAAA,GAClF;AACJ,CAAA;AAEO,SAAS,uCAA0C,GAAA;AACtD,EAAsB,qBAAA,EAAA,CAAA;AACtB,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;ACxEO,SAAS,qBAAwB,GAAA;AACpC,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,oBAAoB,UAAY,EAAA;AACrG,IAAM,MAAA,IAAIA,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ","file":"index.browser.mjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .then(() => {\n resolve((cachedEd25519Decision = true));\n })\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
@@ -10,10 +10,10 @@ async function isEd25519CurveSupported(subtle) {
10
10
  /* extractable */
11
11
  false,
12
12
  ["sign", "verify"]
13
- ).catch(() => {
14
- resolve(cachedEd25519Decision = false);
15
- }).then(() => {
13
+ ).then(() => {
16
14
  resolve(cachedEd25519Decision = true);
15
+ }).catch(() => {
16
+ resolve(cachedEd25519Decision = false);
17
17
  });
18
18
  });
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError"],"mappings":";;;AAiBA,IAAI,qBAAA,CAAA;AACJ,eAAe,wBAAwB,MAAwC,EAAA;AAC3E,EAAA,IAAI,0BAA0B,KAAW,CAAA,EAAA;AACrC,IAAwB,qBAAA,GAAA,IAAI,QAAQ,CAAW,OAAA,KAAA;AAC3C,MACK,MAAA,CAAA,WAAA;AAAA,QAAY,SAAA;AAAA;AAAA,QAA6B,KAAA;AAAA,QAAO,CAAC,QAAQ,QAAQ,CAAA;AAAA,OAAC,CAClE,MAAM,MAAM;AACT,QAAA,OAAA,CAAS,wBAAwB,KAAM,CAAA,CAAA;AAAA,OAC1C,CACA,CAAA,IAAA,CAAK,MAAM;AACR,QAAA,OAAA,CAAS,wBAAwB,IAAK,CAAA,CAAA;AAAA,OACzC,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACL;AACA,EAAI,IAAA,OAAO,0BAA0B,SAAW,EAAA;AAC5C,IAAO,OAAA,qBAAA,CAAA;AAAA,GACJ,MAAA;AACH,IAAA,OAAO,MAAM,qBAAA,CAAA;AAAA,GACjB;AACJ,CAAA;AAEO,SAAS,iCAAoC,GAAA;AAEhD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,iDAAiD,CAAA,CAAA;AAAA,GAC3E;AACJ,CAAA;AAEA,eAAsB,8BAAiC,GAAA;AAEnD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,KAAgB,UAAY,EAAA;AACzG,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACA,EAAA,IAAI,CAAE,MAAM,uBAAA,CAAwB,UAAW,CAAA,MAAA,CAAO,MAAM,CAAI,EAAA;AAC5D,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACJ,CAAA;AAEO,SAAS,4BAA+B,GAAA;AAE3C,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,SAAA,KAAc,UAAY,EAAA;AACvG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;AAEO,SAAS,kCAAqC,GAAA;AAEjD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,UAAY,EAAA;AAClG,IAAM,MAAA,IAAI,YAAY,wDAAwD,CAAA,CAAA;AAAA,GAClF;AACJ,CAAA;AAEO,SAAS,uCAA0C,GAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;ACxEO,SAAS,qBAAwB,GAAA;AACpC,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,oBAAoB,UAAY,EAAA;AACrG,IAAM,MAAA,IAAIA,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ","file":"index.native.mjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n })\n .then(() => {\n resolve((cachedEd25519Decision = true));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError"],"mappings":";;;AAiBA,IAAI,qBAAA,CAAA;AACJ,eAAe,wBAAwB,MAAwC,EAAA;AAC3E,EAAA,IAAI,0BAA0B,KAAW,CAAA,EAAA;AACrC,IAAwB,qBAAA,GAAA,IAAI,QAAQ,CAAW,OAAA,KAAA;AAC3C,MACK,MAAA,CAAA,WAAA;AAAA,QAAY,SAAA;AAAA;AAAA,QAA6B,KAAA;AAAA,QAAO,CAAC,QAAQ,QAAQ,CAAA;AAAA,OAAC,CAClE,KAAK,MAAM;AACR,QAAA,OAAA,CAAS,wBAAwB,IAAK,CAAA,CAAA;AAAA,OACzC,CACA,CAAA,KAAA,CAAM,MAAM;AACT,QAAA,OAAA,CAAS,wBAAwB,KAAM,CAAA,CAAA;AAAA,OAC1C,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACL;AACA,EAAI,IAAA,OAAO,0BAA0B,SAAW,EAAA;AAC5C,IAAO,OAAA,qBAAA,CAAA;AAAA,GACJ,MAAA;AACH,IAAA,OAAO,MAAM,qBAAA,CAAA;AAAA,GACjB;AACJ,CAAA;AAEO,SAAS,iCAAoC,GAAA;AAEhD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,iDAAiD,CAAA,CAAA;AAAA,GAC3E;AACJ,CAAA;AAEA,eAAsB,8BAAiC,GAAA;AAEnD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,KAAgB,UAAY,EAAA;AACzG,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACA,EAAA,IAAI,CAAE,MAAM,uBAAA,CAAwB,UAAW,CAAA,MAAA,CAAO,MAAM,CAAI,EAAA;AAC5D,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACJ,CAAA;AAEO,SAAS,4BAA+B,GAAA;AAE3C,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,SAAA,KAAc,UAAY,EAAA;AACvG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;AAEO,SAAS,kCAAqC,GAAA;AAEjD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,UAAY,EAAA;AAClG,IAAM,MAAA,IAAI,YAAY,wDAAwD,CAAA,CAAA;AAAA,GAClF;AACJ,CAAA;AAEO,SAAS,uCAA0C,GAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;ACxEO,SAAS,qBAAwB,GAAA;AACpC,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,oBAAoB,UAAY,EAAA;AACrG,IAAM,MAAA,IAAIA,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ","file":"index.native.mjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .then(() => {\n resolve((cachedEd25519Decision = true));\n })\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
@@ -12,10 +12,10 @@ async function isEd25519CurveSupported(subtle) {
12
12
  /* extractable */
13
13
  false,
14
14
  ["sign", "verify"]
15
- ).catch(() => {
16
- resolve(cachedEd25519Decision = false);
17
- }).then(() => {
15
+ ).then(() => {
18
16
  resolve(cachedEd25519Decision = true);
17
+ }).catch(() => {
18
+ resolve(cachedEd25519Decision = false);
19
19
  });
20
20
  });
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError","SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED"],"mappings":";;;;;AAiBA,IAAI,qBAAA,CAAA;AACJ,eAAe,wBAAwB,MAAwC,EAAA;AAC3E,EAAA,IAAI,0BAA0B,KAAW,CAAA,EAAA;AACrC,IAAwB,qBAAA,GAAA,IAAI,QAAQ,CAAW,OAAA,KAAA;AAC3C,MACK,MAAA,CAAA,WAAA;AAAA,QAAY,SAAA;AAAA;AAAA,QAA6B,KAAA;AAAA,QAAO,CAAC,QAAQ,QAAQ,CAAA;AAAA,OAAC,CAClE,MAAM,MAAM;AACT,QAAA,OAAA,CAAS,wBAAwB,KAAM,CAAA,CAAA;AAAA,OAC1C,CACA,CAAA,IAAA,CAAK,MAAM;AACR,QAAA,OAAA,CAAS,wBAAwB,IAAK,CAAA,CAAA;AAAA,OACzC,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACL;AACA,EAAI,IAAA,OAAO,0BAA0B,SAAW,EAAA;AAC5C,IAAO,OAAA,qBAAA,CAAA;AAAA,GACJ,MAAA;AACH,IAAA,OAAO,MAAM,qBAAA,CAAA;AAAA,GACjB;AACJ,CAAA;AAEO,SAAS,iCAAoC,GAAA;AAEhD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAIA,mBAAYC,wDAAiD,CAAA,CAAA;AAAA,GAC3E;AACJ,CAAA;AAEA,eAAsB,8BAAiC,GAAA;AAEnD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,KAAgB,UAAY,EAAA;AACzG,IAAM,MAAA,IAAID,mBAAYE,mEAA4D,CAAA,CAAA;AAAA,GACtF;AACA,EAAA,IAAI,CAAE,MAAM,uBAAA,CAAwB,UAAW,CAAA,MAAA,CAAO,MAAM,CAAI,EAAA;AAC5D,IAAM,MAAA,IAAIF,mBAAYG,mEAA4D,CAAA,CAAA;AAAA,GACtF;AACJ,CAAA;AAEO,SAAS,4BAA+B,GAAA;AAE3C,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,SAAA,KAAc,UAAY,EAAA;AACvG,IAAM,MAAA,IAAIH,mBAAYI,iEAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;AAEO,SAAS,kCAAqC,GAAA;AAEjD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,UAAY,EAAA;AAClG,IAAM,MAAA,IAAIJ,mBAAYK,+DAAwD,CAAA,CAAA;AAAA,GAClF;AACJ,CAAA;AAEO,SAAS,uCAA0C,GAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAIL,mBAAYM,iEAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;ACxEO,SAAS,qBAAwB,GAAA;AACpC,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,oBAAoB,UAAY,EAAA;AACrG,IAAM,MAAA,IAAIN,mBAAYO,iEAA0D,CAAA,CAAA;AAAA,GACpF;AACJ","file":"index.node.cjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n })\n .then(() => {\n resolve((cachedEd25519Decision = true));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError","SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED","SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED"],"mappings":";;;;;AAiBA,IAAI,qBAAA,CAAA;AACJ,eAAe,wBAAwB,MAAwC,EAAA;AAC3E,EAAA,IAAI,0BAA0B,KAAW,CAAA,EAAA;AACrC,IAAwB,qBAAA,GAAA,IAAI,QAAQ,CAAW,OAAA,KAAA;AAC3C,MACK,MAAA,CAAA,WAAA;AAAA,QAAY,SAAA;AAAA;AAAA,QAA6B,KAAA;AAAA,QAAO,CAAC,QAAQ,QAAQ,CAAA;AAAA,OAAC,CAClE,KAAK,MAAM;AACR,QAAA,OAAA,CAAS,wBAAwB,IAAK,CAAA,CAAA;AAAA,OACzC,CACA,CAAA,KAAA,CAAM,MAAM;AACT,QAAA,OAAA,CAAS,wBAAwB,KAAM,CAAA,CAAA;AAAA,OAC1C,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACL;AACA,EAAI,IAAA,OAAO,0BAA0B,SAAW,EAAA;AAC5C,IAAO,OAAA,qBAAA,CAAA;AAAA,GACJ,MAAA;AACH,IAAA,OAAO,MAAM,qBAAA,CAAA;AAAA,GACjB;AACJ,CAAA;AAEO,SAAS,iCAAoC,GAAA;AAEhD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAIA,mBAAYC,wDAAiD,CAAA,CAAA;AAAA,GAC3E;AACJ,CAAA;AAEA,eAAsB,8BAAiC,GAAA;AAEnD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,KAAgB,UAAY,EAAA;AACzG,IAAM,MAAA,IAAID,mBAAYE,mEAA4D,CAAA,CAAA;AAAA,GACtF;AACA,EAAA,IAAI,CAAE,MAAM,uBAAA,CAAwB,UAAW,CAAA,MAAA,CAAO,MAAM,CAAI,EAAA;AAC5D,IAAM,MAAA,IAAIF,mBAAYG,mEAA4D,CAAA,CAAA;AAAA,GACtF;AACJ,CAAA;AAEO,SAAS,4BAA+B,GAAA;AAE3C,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,SAAA,KAAc,UAAY,EAAA;AACvG,IAAM,MAAA,IAAIH,mBAAYI,iEAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;AAEO,SAAS,kCAAqC,GAAA;AAEjD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,UAAY,EAAA;AAClG,IAAM,MAAA,IAAIJ,mBAAYK,+DAAwD,CAAA,CAAA;AAAA,GAClF;AACJ,CAAA;AAEO,SAAS,uCAA0C,GAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAIL,mBAAYM,iEAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;ACxEO,SAAS,qBAAwB,GAAA;AACpC,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,oBAAoB,UAAY,EAAA;AACrG,IAAM,MAAA,IAAIN,mBAAYO,iEAA0D,CAAA,CAAA;AAAA,GACpF;AACJ","file":"index.node.cjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .then(() => {\n resolve((cachedEd25519Decision = true));\n })\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
@@ -10,10 +10,10 @@ async function isEd25519CurveSupported(subtle) {
10
10
  /* extractable */
11
11
  false,
12
12
  ["sign", "verify"]
13
- ).catch(() => {
14
- resolve(cachedEd25519Decision = false);
15
- }).then(() => {
13
+ ).then(() => {
16
14
  resolve(cachedEd25519Decision = true);
15
+ }).catch(() => {
16
+ resolve(cachedEd25519Decision = false);
17
17
  });
18
18
  });
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError"],"mappings":";;;AAiBA,IAAI,qBAAA,CAAA;AACJ,eAAe,wBAAwB,MAAwC,EAAA;AAC3E,EAAA,IAAI,0BAA0B,KAAW,CAAA,EAAA;AACrC,IAAwB,qBAAA,GAAA,IAAI,QAAQ,CAAW,OAAA,KAAA;AAC3C,MACK,MAAA,CAAA,WAAA;AAAA,QAAY,SAAA;AAAA;AAAA,QAA6B,KAAA;AAAA,QAAO,CAAC,QAAQ,QAAQ,CAAA;AAAA,OAAC,CAClE,MAAM,MAAM;AACT,QAAA,OAAA,CAAS,wBAAwB,KAAM,CAAA,CAAA;AAAA,OAC1C,CACA,CAAA,IAAA,CAAK,MAAM;AACR,QAAA,OAAA,CAAS,wBAAwB,IAAK,CAAA,CAAA;AAAA,OACzC,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACL;AACA,EAAI,IAAA,OAAO,0BAA0B,SAAW,EAAA;AAC5C,IAAO,OAAA,qBAAA,CAAA;AAAA,GACJ,MAAA;AACH,IAAA,OAAO,MAAM,qBAAA,CAAA;AAAA,GACjB;AACJ,CAAA;AAEO,SAAS,iCAAoC,GAAA;AAEhD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,iDAAiD,CAAA,CAAA;AAAA,GAC3E;AACJ,CAAA;AAEA,eAAsB,8BAAiC,GAAA;AAEnD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,KAAgB,UAAY,EAAA;AACzG,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACA,EAAA,IAAI,CAAE,MAAM,uBAAA,CAAwB,UAAW,CAAA,MAAA,CAAO,MAAM,CAAI,EAAA;AAC5D,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACJ,CAAA;AAEO,SAAS,4BAA+B,GAAA;AAE3C,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,SAAA,KAAc,UAAY,EAAA;AACvG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;AAEO,SAAS,kCAAqC,GAAA;AAEjD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,UAAY,EAAA;AAClG,IAAM,MAAA,IAAI,YAAY,wDAAwD,CAAA,CAAA;AAAA,GAClF;AACJ,CAAA;AAEO,SAAS,uCAA0C,GAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;ACxEO,SAAS,qBAAwB,GAAA;AACpC,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,oBAAoB,UAAY,EAAA;AACrG,IAAM,MAAA,IAAIA,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ","file":"index.node.mjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n })\n .then(() => {\n resolve((cachedEd25519Decision = true));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/subtle-crypto.ts","../src/crypto.ts"],"names":["SolanaError"],"mappings":";;;AAiBA,IAAI,qBAAA,CAAA;AACJ,eAAe,wBAAwB,MAAwC,EAAA;AAC3E,EAAA,IAAI,0BAA0B,KAAW,CAAA,EAAA;AACrC,IAAwB,qBAAA,GAAA,IAAI,QAAQ,CAAW,OAAA,KAAA;AAC3C,MACK,MAAA,CAAA,WAAA;AAAA,QAAY,SAAA;AAAA;AAAA,QAA6B,KAAA;AAAA,QAAO,CAAC,QAAQ,QAAQ,CAAA;AAAA,OAAC,CAClE,KAAK,MAAM;AACR,QAAA,OAAA,CAAS,wBAAwB,IAAK,CAAA,CAAA;AAAA,OACzC,CACA,CAAA,KAAA,CAAM,MAAM;AACT,QAAA,OAAA,CAAS,wBAAwB,KAAM,CAAA,CAAA;AAAA,OAC1C,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACL;AACA,EAAI,IAAA,OAAO,0BAA0B,SAAW,EAAA;AAC5C,IAAO,OAAA,qBAAA,CAAA;AAAA,GACJ,MAAA;AACH,IAAA,OAAO,MAAM,qBAAA,CAAA;AAAA,GACjB;AACJ,CAAA;AAEO,SAAS,iCAAoC,GAAA;AAEhD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,iDAAiD,CAAA,CAAA;AAAA,GAC3E;AACJ,CAAA;AAEA,eAAsB,8BAAiC,GAAA;AAEnD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,WAAA,KAAgB,UAAY,EAAA;AACzG,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACA,EAAA,IAAI,CAAE,MAAM,uBAAA,CAAwB,UAAW,CAAA,MAAA,CAAO,MAAM,CAAI,EAAA;AAC5D,IAAM,MAAA,IAAI,YAAY,4DAA4D,CAAA,CAAA;AAAA,GACtF;AACJ,CAAA;AAEO,SAAS,4BAA+B,GAAA;AAE3C,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,SAAA,KAAc,UAAY,EAAA;AACvG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;AAEO,SAAS,kCAAqC,GAAA;AAEjD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,IAAA,KAAS,UAAY,EAAA;AAClG,IAAM,MAAA,IAAI,YAAY,wDAAwD,CAAA,CAAA;AAAA,GAClF;AACJ,CAAA;AAEO,SAAS,uCAA0C,GAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,MAAQ,EAAA,MAAA,KAAW,UAAY,EAAA;AACpG,IAAM,MAAA,IAAI,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ,CAAA;ACxEO,SAAS,qBAAwB,GAAA;AACpC,EAAI,IAAA,OAAO,WAAW,MAAW,KAAA,WAAA,IAAe,OAAO,UAAW,CAAA,MAAA,CAAO,oBAAoB,UAAY,EAAA;AACrG,IAAM,MAAA,IAAIA,YAAY,0DAA0D,CAAA,CAAA;AAAA,GACpF;AACJ","file":"index.node.mjs","sourcesContent":["import {\n SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT,\n SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED,\n SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED,\n SolanaError,\n} from '@solana/errors';\n\nfunction assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DISALLOWED_IN_INSECURE_CONTEXT);\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .then(() => {\n resolve((cachedEd25519Decision = true));\n })\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport function assertDigestCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.digest !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__DIGEST_UNIMPLEMENTED);\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__GENERATE_FUNCTION_UNIMPLEMENTED);\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__ED25519_ALGORITHM_UNIMPLEMENTED);\n }\n}\n\nexport function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__EXPORT_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__SIGN_FUNCTION_UNIMPLEMENTED);\n }\n}\n\nexport function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n throw new SolanaError(SOLANA_ERROR__SUBTLE_CRYPTO__VERIFY_FUNCTION_UNIMPLEMENTED);\n }\n}\n","import { SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED, SolanaError } from '@solana/errors';\n\nexport function assertPRNGIsAvailable() {\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.getRandomValues !== 'function') {\n throw new SolanaError(SOLANA_ERROR__CRYPTO__RANDOM_VALUES_FUNCTION_UNIMPLEMENTED);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,8 +1,16 @@
1
1
  {
2
2
  "name": "@solana/assertions",
3
- "version": "2.0.0-rc.0",
3
+ "version": "2.0.0-rc.2",
4
4
  "description": "Helpers for asserting that a JavaScript environment supports certain features necessary for the operation of the Solana JavaScript SDK",
5
5
  "exports": {
6
+ "edge-light": {
7
+ "import": "./dist/index.node.mjs",
8
+ "require": "./dist/index.node.cjs"
9
+ },
10
+ "workerd": {
11
+ "import": "./dist/index.node.mjs",
12
+ "require": "./dist/index.node.cjs"
13
+ },
6
14
  "browser": {
7
15
  "import": "./dist/index.browser.mjs",
8
16
  "require": "./dist/index.browser.cjs"
@@ -49,7 +57,7 @@
49
57
  "node": ">=17.4"
50
58
  },
51
59
  "dependencies": {
52
- "@solana/errors": "2.0.0-rc.0"
60
+ "@solana/errors": "2.0.0-rc.2"
53
61
  },
54
62
  "peerDependencies": {
55
63
  "typescript": ">=5"
@@ -62,13 +70,16 @@
62
70
  }
63
71
  ]
64
72
  },
73
+ "engines": {
74
+ "node": ">=20.18.0"
75
+ },
65
76
  "scripts": {
66
77
  "compile:js": "tsup --config build-scripts/tsup.config.package.ts",
67
78
  "compile:typedefs": "tsc -p ./tsconfig.declarations.json",
68
79
  "dev": "jest -c ../../node_modules/@solana/test-config/jest-dev.config.ts --rootDir . --watch",
69
80
  "publish-impl": "npm view $npm_package_name@$npm_package_version > /dev/null 2>&1 || pnpm publish --tag ${PUBLISH_TAG:-canary} --access public --no-git-checks",
70
81
  "publish-packages": "pnpm prepublishOnly && pnpm publish-impl",
71
- "style:fix": "pnpm eslint --fix src/* && pnpm prettier --log-level warn --ignore-unknown --write ./*",
82
+ "style:fix": "pnpm eslint --fix src && pnpm prettier --log-level warn --ignore-unknown --write ./*",
72
83
  "test:lint": "TERM_OVERRIDE=\"${TURBO_HASH:+dumb}\" TERM=${TERM_OVERRIDE:-$TERM} jest -c ../../node_modules/@solana/test-config/jest-lint.config.ts --rootDir . --silent",
73
84
  "test:prettier": "TERM_OVERRIDE=\"${TURBO_HASH:+dumb}\" TERM=${TERM_OVERRIDE:-$TERM} jest -c ../../node_modules/@solana/test-config/jest-prettier.config.ts --rootDir . --silent",
74
85
  "test:treeshakability:browser": "agadoo dist/index.browser.mjs",