{"_id":"@thirdweb-dev/crypto","_rev":"63-850c14bf3a69507633588b5f0b3bb5e0","name":"@thirdweb-dev/crypto","dist-tags":{"latest":"0.2.6","dev":"0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159","nightly":"0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603"},"versions":{"0.0.0-dev-72e36f1-20231115210231":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-72e36f1-20231115210231","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-72e36f1-20231115210231","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"0258cb607f06132445598c62b38c1826e7eb3eb8","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-72e36f1-20231115210231.tgz","fileCount":25,"integrity":"sha512-sYs+b+M9AObQxDp7TQKciH9jsBsxw70q1/YmdWR0LnGuXFmcRUk6aNvA9PMEC2eMXpnnoZIaSu/jLYx1JNQ5Qw==","signatures":[{"sig":"MEQCIFhm4pywMytqq3U0a6QeJ2wpdGy8VGMAKThtuTU1OYNUAiAErIRli5V26mSRtej6nY+wd3iiScz742hb8/DYBfCOWQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90854},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-72e36f1-20231115210231.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/776a666cc3255f5d95c80a2f505b289c/thirdweb-dev-crypto-0.0.0-dev-72e36f1-20231115210231.tgz","_integrity":"sha512-sYs+b+M9AObQxDp7TQKciH9jsBsxw70q1/YmdWR0LnGuXFmcRUk6aNvA9PMEC2eMXpnnoZIaSu/jLYx1JNQ5Qw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2","uint8array-extras":"^0.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.1.6","@types/crypto-js":"^4.1.3","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-72e36f1-20231115210231_1700082167702_0.59725205495801","host":"s3://npm-registry-packages"}},"0.0.0-dev-e1d23a7-20231116100754":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-e1d23a7-20231116100754","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-e1d23a7-20231116100754","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"8c7d8825bacb62792cd10a2a0b3f243201cf7143","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-e1d23a7-20231116100754.tgz","fileCount":25,"integrity":"sha512-F6DMH077joDGnOKyS1P6unH7yUpiigv/94jwKLZKe9oaenCH4jjmBydKa0HOYocSpn2aYfrNWrBSCQ40KgGh5g==","signatures":[{"sig":"MEQCIDiLs0nbxVHqEXQ7saF/hoqsvxUcyo0ToKfEk3htJ7A9AiAOujFsSM3qGsIVNmu48ZNRdvGm58QdhWJh8J/pe0UpzQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90854},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-e1d23a7-20231116100754.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/adf95cc33f3e1b70e99bc63ac691e081/thirdweb-dev-crypto-0.0.0-dev-e1d23a7-20231116100754.tgz","_integrity":"sha512-F6DMH077joDGnOKyS1P6unH7yUpiigv/94jwKLZKe9oaenCH4jjmBydKa0HOYocSpn2aYfrNWrBSCQ40KgGh5g==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2","uint8array-extras":"^0.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.1.6","@types/crypto-js":"^4.1.3","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-e1d23a7-20231116100754_1700129293189_0.32195877838538167","host":"s3://npm-registry-packages"}},"0.2.0-nightly-ab2dfd4f-20231116223920":{"name":"@thirdweb-dev/crypto","version":"0.2.0-nightly-ab2dfd4f-20231116223920","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.0-nightly-ab2dfd4f-20231116223920","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"4704c8d14033b9bb84c1e65ab860913eea8f3d13","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.0-nightly-ab2dfd4f-20231116223920.tgz","fileCount":28,"integrity":"sha512-GIqgai6aNmnO8LlWdPWa/WNGyHLJ+Oz+36JGBQ7TS9NfFcYOV+d60uaFuEWk8lZLgECNpulLmcq0hj81BoUAwQ==","signatures":[{"sig":"MEUCIET8QarWnqCFsKTByYkCHLM04oM6/8ZOPTpl12yXlNyRAiEAgmwgFgYKdw0Bm6bKLhzVxNgvTgRQdzcMZMjK4op+qfY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108372},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.0-nightly-ab2dfd4f-20231116223920.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/9de0638f894f14e25b05cbdfee5a97ed/thirdweb-dev-crypto-0.2.0-nightly-ab2dfd4f-20231116223920.tgz","_integrity":"sha512-GIqgai6aNmnO8LlWdPWa/WNGyHLJ+Oz+36JGBQ7TS9NfFcYOV+d60uaFuEWk8lZLgECNpulLmcq0hj81BoUAwQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.1.6","@types/crypto-js":"^4.1.3","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.0-nightly-ab2dfd4f-20231116223920_1700174370675_0.44282182158796934","host":"s3://npm-registry-packages"}},"0.0.0-dev-6295cf7-20231117075633":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-6295cf7-20231117075633","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-6295cf7-20231117075633","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"35303f83830c925026495df57015cf719cf9879f","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-6295cf7-20231117075633.tgz","fileCount":28,"integrity":"sha512-4qQCuPqlOrTTho10/+LdhfT9M3oPWFArtyIjJpalROnBK2BJWofhszpHrKY4XeTN2G16j/cAcXugpgZAbai6aA==","signatures":[{"sig":"MEUCIC5W5HqAITyFQZ9G+rOCNmfAyKNgUc1F03qqGkJz3kIPAiEA1XL015fOD/HTOdKL+Jw6RTerk68FaILMvbNHDpMhvKk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108367},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-6295cf7-20231117075633.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/cf1d5654933c060e32016cad803aff2e/thirdweb-dev-crypto-0.0.0-dev-6295cf7-20231117075633.tgz","_integrity":"sha512-4qQCuPqlOrTTho10/+LdhfT9M3oPWFArtyIjJpalROnBK2BJWofhszpHrKY4XeTN2G16j/cAcXugpgZAbai6aA==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.1.6","@types/crypto-js":"^4.1.3","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-6295cf7-20231117075633_1700207809716_0.2679401264023471","host":"s3://npm-registry-packages"}},"0.2.0-nightly-4c5e40ae-20231117092939":{"name":"@thirdweb-dev/crypto","version":"0.2.0-nightly-4c5e40ae-20231117092939","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.0-nightly-4c5e40ae-20231117092939","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"938ebde11f4deae06c35d24fdf074b9bad027354","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.0-nightly-4c5e40ae-20231117092939.tgz","fileCount":28,"integrity":"sha512-3QMLcHYSWUkfN7y1HBv7Pg7eo9LfgnEV1AJB8/cDJGNr+v87eMlkf/GQelAlUKWwfN4KOn4OcG/w5U20hmutaQ==","signatures":[{"sig":"MEYCIQC+IpGFqMGaUkX18BTI9OER1qFO7nuWqQ/17lxQlhhv8wIhAP+jHtU9zrsEQ7I/UFK8FWGblkB23ipd9CWecbnlOwtm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108372},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.0-nightly-4c5e40ae-20231117092939.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/4d9cb48cb289122e5eb5c93ef168f755/thirdweb-dev-crypto-0.2.0-nightly-4c5e40ae-20231117092939.tgz","_integrity":"sha512-3QMLcHYSWUkfN7y1HBv7Pg7eo9LfgnEV1AJB8/cDJGNr+v87eMlkf/GQelAlUKWwfN4KOn4OcG/w5U20hmutaQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.1.6","@types/crypto-js":"^4.1.3","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.0-nightly-4c5e40ae-20231117092939_1700213390521_0.0767879206981763","host":"s3://npm-registry-packages"}},"0.0.0-dev-dab0125-20231117093834":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-dab0125-20231117093834","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-dab0125-20231117093834","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"4c4660ef59abcea597e32f55908a731e4d697b83","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-dab0125-20231117093834.tgz","fileCount":28,"integrity":"sha512-+8Ueh2M5rAjUWi5E38we9L8XY9ilRZoPBq51rPfSuXKWOS9whCVOEXX9xG38Dlitb/cR++MFBQLL7QQwnVxL7g==","signatures":[{"sig":"MEUCIQCUnXsvo4QBgdtJJVBpj+eHJ9S9MDi1JTIZoYQSvnnm1QIgFeJq0qSsx7O03o+//Cnm2WxzcrQ0hdB5RGfAhSWLJGo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108394},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-dab0125-20231117093834.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/bb569de71913cf6d4585c7e8799d2a31/thirdweb-dev-crypto-0.0.0-dev-dab0125-20231117093834.tgz","_integrity":"sha512-+8Ueh2M5rAjUWi5E38we9L8XY9ilRZoPBq51rPfSuXKWOS9whCVOEXX9xG38Dlitb/cR++MFBQLL7QQwnVxL7g==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.3","ethers":"^5.7.2","js-awe":"^1.0.63","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.2.2","@types/crypto-js":"^4.2.1","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.0.0-dev-dab0125-20231117093834"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-dab0125-20231117093834_1700213929970_0.10545267901603528","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@thirdweb-dev/crypto","version":"0.2.0","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.0","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"ad629854107b58647101fc6f3d2bbe619ae34424","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.0.tgz","fileCount":28,"integrity":"sha512-hQwSCL/imqSCcnUXlGqJi6dfs4UOcJ91Eq/t1cPXyAb6nwvyaePZPVFqGDglZMQvkS/NWZhifXZINRiCfazn2w==","signatures":[{"sig":"MEYCIQCQKuIJtWX3tSSfjYNIno1PCID+rdQR03RASNEgzml20QIhAIyWqNeVrtaN4TbkKYSkthZ5fxiShT/DJCxP59FyTfl0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108340},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.0.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/947ed53233dfb61116ac05c5e2f46b56/thirdweb-dev-crypto-0.2.0.tgz","_integrity":"sha512-hQwSCL/imqSCcnUXlGqJi6dfs4UOcJ91Eq/t1cPXyAb6nwvyaePZPVFqGDglZMQvkS/NWZhifXZINRiCfazn2w==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.1.6","@types/crypto-js":"^4.1.3","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.0_1700214217655_0.5972037962420798","host":"s3://npm-registry-packages"}},"0.0.0-dev-9467fc3-20231117115135":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-9467fc3-20231117115135","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-9467fc3-20231117115135","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"199845bcd3fde0b85f14c2159fb0933894eba580","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-9467fc3-20231117115135.tgz","fileCount":28,"integrity":"sha512-x11UM7wG5iO92OSjcr3Au0x930MNG4A3OFeC8uVlU0Ef0wRMtZA60b+wCO73sPtS8lug0/AduLsHvJxI/W2YKw==","signatures":[{"sig":"MEQCIECOtJmA6xchsbtAx5UtZdD8nnJmZBhnAimZfQQGnScjAiAucpZw2xL8hdd+PwoORcwmL+jTiAKOxqFy9TEWCcEyUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108394},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-9467fc3-20231117115135.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/8ec84253a361c2b5914b579916d8564f/thirdweb-dev-crypto-0.0.0-dev-9467fc3-20231117115135.tgz","_integrity":"sha512-x11UM7wG5iO92OSjcr3Au0x930MNG4A3OFeC8uVlU0Ef0wRMtZA60b+wCO73sPtS8lug0/AduLsHvJxI/W2YKw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.3","ethers":"^5.7.2","js-awe":"^1.0.63","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.2.2","@types/crypto-js":"^4.2.1","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.0.0-dev-9467fc3-20231117115135"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-9467fc3-20231117115135_1700221911645_0.8754300781675515","host":"s3://npm-registry-packages"}},"0.0.0-dev-9f498f2-20231121184457":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-9f498f2-20231121184457","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-9f498f2-20231121184457","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"83aa7621c61d17ea448e80192bfe8f528f1a20f6","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-9f498f2-20231121184457.tgz","fileCount":28,"integrity":"sha512-CG/7wdTmLnMCIUHD83v6BoU9mYj+LjTq0JOO+R1iJCD5+PgO6+E2Lm2L/yCqEaHno8CZcdDLe8iLRKS2eN6muw==","signatures":[{"sig":"MEUCIQCPMb/aZBcXXADt/3P1pCaPAQMfuTK2yR2O4vb8hCiaSQIgHTgT+uq+tP7jyYf+buGdOPP/OykF6wXCd5MZka4fRCY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108394},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-9f498f2-20231121184457.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/6ab0a3538ac57a1837808919c33fcb29/thirdweb-dev-crypto-0.0.0-dev-9f498f2-20231121184457.tgz","_integrity":"sha512-CG/7wdTmLnMCIUHD83v6BoU9mYj+LjTq0JOO+R1iJCD5+PgO6+E2Lm2L/yCqEaHno8CZcdDLe8iLRKS2eN6muw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.6","ethers":"^5.7.2","js-awe":"^1.0.63","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.2","@types/crypto-js":"^4.2.1","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.0.0-dev-9f498f2-20231121184457"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-9f498f2-20231121184457_1700592316512_0.3201401023786907","host":"s3://npm-registry-packages"}},"0.0.0-dev-1891dc0-20231127201946":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-1891dc0-20231127201946","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-1891dc0-20231127201946","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"c7a8fca5025735f78f3853b022209ac3f7bb8646","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-1891dc0-20231127201946.tgz","fileCount":28,"integrity":"sha512-yWQIPNEl0EuUoy0JlAi89WmPy4p7Pg0yfQ1YGD9/AeHEaHSgoTPezU3RCgqP3JU0gBrp800omwTRYofS/QF0eg==","signatures":[{"sig":"MEUCIQC+une0u1Uo7XGfLR46nOpVq0Leku8EmbMNL2iao4gvLgIgGJB8tTpslEnA0ePDVeT4tTPwFNA+A6tuZCdpzhRzDhs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108394},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-1891dc0-20231127201946.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/5a6a5505fad7188010426e8f878dbb2e/thirdweb-dev-crypto-0.0.0-dev-1891dc0-20231127201946.tgz","_integrity":"sha512-yWQIPNEl0EuUoy0JlAi89WmPy4p7Pg0yfQ1YGD9/AeHEaHSgoTPezU3RCgqP3JU0gBrp800omwTRYofS/QF0eg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.9","ethers":"^5.7.2","js-awe":"^1.0.63","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.2","@types/crypto-js":"^4.2.1","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.0.0-dev-1891dc0-20231127201946"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-1891dc0-20231127201946_1701116404000_0.5587085365927136","host":"s3://npm-registry-packages"}},"0.0.0-dev-1891dc0-20231127201959":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-1891dc0-20231127201959","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-1891dc0-20231127201959","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"adam-maj","email":"mr.adam.maj@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@nftlabs.co"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"55be28c65e24e3db6f2dc2b9c634b3491fcec061","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-1891dc0-20231127201959.tgz","fileCount":28,"integrity":"sha512-XWD1DZRcmy/N/JDab6zXZVKnzBh2Ld/Dua8XPErpHFWhplXJQoyJaW/AtNS8aT22qqa+MNx+LpsA8y0stwFyFQ==","signatures":[{"sig":"MEUCIC1izBUKk/fny7dFwahypoZFQ9it2JYyVSyIV0DlsTHyAiEAnTmNHcc/kfHZ2z91uvNS4uB8B2VEPpT74TzAp1Fpoe0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108394},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-1891dc0-20231127201959.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/49c06de8e53affdda833f8a3d315b589/thirdweb-dev-crypto-0.0.0-dev-1891dc0-20231127201959.tgz","_integrity":"sha512-XWD1DZRcmy/N/JDab6zXZVKnzBh2Ld/Dua8XPErpHFWhplXJQoyJaW/AtNS8aT22qqa+MNx+LpsA8y0stwFyFQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.1.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.9","ethers":"^5.7.2","js-awe":"^1.0.63","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.2","@types/crypto-js":"^4.2.1","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.0.0-dev-1891dc0-20231127201959"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-1891dc0-20231127201959_1701116417598_0.1281639711236715","host":"s3://npm-registry-packages"}},"0.0.0-dev-d0fb336-20240229150415":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-d0fb336-20240229150415","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-d0fb336-20240229150415","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"fa5b5121490c41e79232a7489e0c4ed14d0c6d90","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-d0fb336-20240229150415.tgz","fileCount":28,"integrity":"sha512-3CLdiV2BOLBoMXKDHJ12WYruVQOyrw0G2n2LIdbFutTDGAoKEnm75iQz1Sqp2Q0p6qZRPh3k2g1CcmD3cHchIg==","signatures":[{"sig":"MEUCIA+72mYGOyz1phHxOyHyd+79kftBpgqnazSf/2HmuyVDAiEArIBMhi4JfIPwh3cKd0xxKH91IkSyl7tnUU0OuuO1EW0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108295},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-d0fb336-20240229150415.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/f2ae1c71c7bbcf2d3ad75c84be93970c/thirdweb-dev-crypto-0.0.0-dev-d0fb336-20240229150415.tgz","_integrity":"sha512-3CLdiV2BOLBoMXKDHJ12WYruVQOyrw0G2n2LIdbFutTDGAoKEnm75iQz1Sqp2Q0p6qZRPh3k2g1CcmD3cHchIg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-d0fb336-20240229150415_1709219090884_0.47757933721223655","host":"s3://npm-registry-packages"}},"0.2.1-nightly-bc198e215-20240229175756":{"name":"@thirdweb-dev/crypto","version":"0.2.1-nightly-bc198e215-20240229175756","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.1-nightly-bc198e215-20240229175756","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"a439779138fdc5c4fd18ff020a90cf2263628181","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.1-nightly-bc198e215-20240229175756.tgz","fileCount":28,"integrity":"sha512-ifWb5Bla5qBJSovTsfHj78FHsdTlg/7sCzJU+LvDerFKqEkhebREuhMGDEGKsej+qw4vhqNXFGNosVt/bfISnQ==","signatures":[{"sig":"MEQCIGZs+9Zc78IYQ5TNpT7uDoK1BTBGvqYSoYjQ5QSFfsPhAiByvgMCHTC7OkbNGmoq7AZZtQhu481JTgCgtWMBgXatWA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108301},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.1-nightly-bc198e215-20240229175756.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/39dfeae84b5907ac4bd0b666edee128f/thirdweb-dev-crypto-0.2.1-nightly-bc198e215-20240229175756.tgz","_integrity":"sha512-ifWb5Bla5qBJSovTsfHj78FHsdTlg/7sCzJU+LvDerFKqEkhebREuhMGDEGKsej+qw4vhqNXFGNosVt/bfISnQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.1-nightly-bc198e215-20240229175756_1709229487475_0.10000652972728119","host":"s3://npm-registry-packages"}},"0.0.0-dev-ed17781-20240229185724":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-ed17781-20240229185724","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-ed17781-20240229185724","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"40c90f3060bc8bc3d95fdd86ebb3a06304ea7431","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-ed17781-20240229185724.tgz","fileCount":28,"integrity":"sha512-wVee7NzGd+tZoKH1NZ+DgtMGhNYPEH0QQZldYRNZvEF4XBb8I/oqPGlY4FZ75ryXWu/7bdmlz9frIR4PkbIaDw==","signatures":[{"sig":"MEUCIQD1BOU7/3DLa8d5sSvgtIJspIbzZiqhpDZ1Q5oIHWttuwIgC5yckp0VKrOis/qExG7csNNuhjS9RNK1jDnXfz9JgCc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108295},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-ed17781-20240229185724.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/90570ff1d3c7bd412c64e0949b45110c/thirdweb-dev-crypto-0.0.0-dev-ed17781-20240229185724.tgz","_integrity":"sha512-wVee7NzGd+tZoKH1NZ+DgtMGhNYPEH0QQZldYRNZvEF4XBb8I/oqPGlY4FZ75ryXWu/7bdmlz9frIR4PkbIaDw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-ed17781-20240229185724_1709233078439_0.8849305028309906","host":"s3://npm-registry-packages"}},"0.2.1-nightly-553f7fda4-20240229191938":{"name":"@thirdweb-dev/crypto","version":"0.2.1-nightly-553f7fda4-20240229191938","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.1-nightly-553f7fda4-20240229191938","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"b06b87fb9534e1173b3a19c77c00c79a93ad2154","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.1-nightly-553f7fda4-20240229191938.tgz","fileCount":28,"integrity":"sha512-wUxF2UFW1PxvJEkdLhz5loC5XFgilkU13QqNQ4TmcfkTfb8O5Y2bfBpZqK1TOS/tt3Bm+Gjf7Di294sj60QtCA==","signatures":[{"sig":"MEUCIQCyhQXgd+ZqcRp6WZKZUAaIq/FLdvyHYCUhtAGYryq05AIgFpDuu30qCKQuRwEzrBJsbrjAYq8eD6maYYuMhwPVYmg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108301},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.1-nightly-553f7fda4-20240229191938.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/26409aed631db02cde296fc8d09b38f4/thirdweb-dev-crypto-0.2.1-nightly-553f7fda4-20240229191938.tgz","_integrity":"sha512-wUxF2UFW1PxvJEkdLhz5loC5XFgilkU13QqNQ4TmcfkTfb8O5Y2bfBpZqK1TOS/tt3Bm+Gjf7Di294sj60QtCA==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.1-nightly-553f7fda4-20240229191938_1709234392542_0.6560829166918625","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@thirdweb-dev/crypto","version":"0.2.1","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.1","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"7643c91c9d87e4d51a77163b87f6bff547e9506c","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.1.tgz","fileCount":28,"integrity":"sha512-SYEkdtdhTOAcgGklqPrKgyIftA2x0WBTtpAEyJBTLCL1z+2IKvExWZyZn3Mx2cZ8skO3iAfGzC4Si2ORWBcS2g==","signatures":[{"sig":"MEYCIQCoJEJAAEccEbDTZbzAXWoa1iQfmoMaRt3WcVcCLp5CTgIhALVgMFdZzUoESlt1qGz9bo1tRosvCoDi7ZDfnFdeAdbH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108268},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.1.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/517d29ec102f9df15d8bf1ff980cafa4/thirdweb-dev-crypto-0.2.1.tgz","_integrity":"sha512-SYEkdtdhTOAcgGklqPrKgyIftA2x0WBTtpAEyJBTLCL1z+2IKvExWZyZn3Mx2cZ8skO3iAfGzC4Si2ORWBcS2g==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.1_1709235233658_0.2411601865285702","host":"s3://npm-registry-packages"}},"0.0.0-dev-9aaf173-20240301192815":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-9aaf173-20240301192815","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-9aaf173-20240301192815","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"01d998c538657f29fbb70f030eb15d7f85c63d0c","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-9aaf173-20240301192815.tgz","fileCount":28,"integrity":"sha512-etZtkFolQAyHjia5nNWyL7k/yLYhBf9elDTG8hkDieJo7C8i6N33EcENXgTl2yd47DW6J1+GniWmpJ+j26Sg8g==","signatures":[{"sig":"MEUCIQDaduhvyzO+vvNCDwlINCuFoQmt+UDDgXAB7C6PtlNUWAIgN1L5jHe7u7UdyUg9m6vFOulc512gkT9yTm93BWBZMRs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108295},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-9aaf173-20240301192815.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/e04f9fc80203c1826c97ff0b31054779/thirdweb-dev-crypto-0.0.0-dev-9aaf173-20240301192815.tgz","_integrity":"sha512-etZtkFolQAyHjia5nNWyL7k/yLYhBf9elDTG8hkDieJo7C8i6N33EcENXgTl2yd47DW6J1+GniWmpJ+j26Sg8g==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-9aaf173-20240301192815_1709321328590_0.22522815001886576","host":"s3://npm-registry-packages"}},"0.2.2-nightly-35bddd69c-20240321012100":{"name":"@thirdweb-dev/crypto","version":"0.2.2-nightly-35bddd69c-20240321012100","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.2-nightly-35bddd69c-20240321012100","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"91586cb22ba1cc13b8e07eb02c51c0bc5c0489ee","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.2-nightly-35bddd69c-20240321012100.tgz","fileCount":28,"integrity":"sha512-sfu5FNCRxQIO4iI1+vQGDE7b2AmN8cOC2NCxjj/Ly6WLJnR3x8m2LclRnQnPqxcofBVI2uGS77laYKsUkgaaZQ==","signatures":[{"sig":"MEUCIGk/oCCtEw73yJdVVMAzHhImv6QYOanaRlQRT6D+7Yy3AiEAl6iLOnmCa6M/iCSizN02zF6SDj0aNrve7WydrAmHs6w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108490},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.2-nightly-35bddd69c-20240321012100.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/92bd2954f1aa50e8780017ee9fd69aaa/thirdweb-dev-crypto-0.2.2-nightly-35bddd69c-20240321012100.tgz","_integrity":"sha512-sfu5FNCRxQIO4iI1+vQGDE7b2AmN8cOC2NCxjj/Ly6WLJnR3x8m2LclRnQnPqxcofBVI2uGS77laYKsUkgaaZQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.2-nightly-35bddd69c-20240321012100_1710984071890_0.4522251914899966","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@thirdweb-dev/crypto","version":"0.2.2","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.2","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"nachoiacovino","email":"nacho.iacovino@gmail.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"455c7564610a1eb4597ae1d02c0ce3d722072709","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.2.tgz","fileCount":28,"integrity":"sha512-jOwHtdViJYZ5015F3xZvwmnFZLrgTx2RkE7bAiG/N83f5TduwQBM3PAPTbW3aBOECaoSrbmgj/lQEOv7543z3Q==","signatures":[{"sig":"MEQCIEtzwF1L65Mfos0JYjkK1Ke3R2NOudzIKZdKOTMNBZUfAiAz53AIsxlWCpA2EDc1mYslHsMUxsmogxmY5BLgAyyxdw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108457},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.2.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/83687b75ce0f00520388972009adbdab/thirdweb-dev-crypto-0.2.2.tgz","_integrity":"sha512-jOwHtdViJYZ5015F3xZvwmnFZLrgTx2RkE7bAiG/N83f5TduwQBM3PAPTbW3aBOECaoSrbmgj/lQEOv7543z3Q==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=\"https:","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.2","@noble/hashes":"^1.3.2"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"^1.19.1","ethers":"^5.7.2","js-awe":"^1.0.62","crypto-js":"^4.2.0","tinybench":"^2.5.1","typescript":"^5.3.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.2_1710985469741_0.9944194445620886","host":"s3://npm-registry-packages"}},"0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719":{"name":"@thirdweb-dev/crypto","version":"0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"90c33991a966581a20fcb443d54837894fa1af11","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719.tgz","fileCount":28,"integrity":"sha512-7qdqmOp8n33MFLRCleJ97sgKuAfgrgw4nB+6elz17L2WW1vgTVj4VUov/3St/Dz3cLe406OMHV7kPMZ9/mCxeQ==","signatures":[{"sig":"MEUCIAhblwbb9paBXuOee0hJYk9juW5n3JG/csabiDIErHgPAiEA7H7CEv/zCDBlm+9AifFi4M48JXNPAuUwQmoXZOEkSMs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108532},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/86f4bf88f80f407819ac91de5af57951/thirdweb-dev-crypto-0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719.tgz","_integrity":"sha512-7qdqmOp8n33MFLRCleJ97sgKuAfgrgw4nB+6elz17L2WW1vgTVj4VUov/3St/Dz3cLe406OMHV7kPMZ9/mCxeQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.5","ethers":"^5.7.2","js-awe":"^1.0.64","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719_1711708792213_0.2075594959649789","host":"s3://npm-registry-packages"}},"0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651":{"name":"@thirdweb-dev/crypto","version":"0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"05673197ee7a9013489ac5757e047e02c81a4fe0","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651.tgz","fileCount":28,"integrity":"sha512-JLBEzrnbOoaTBx48eLwSpSK//DXiI7JELs37x+uH/vuG/5xL7whRSbiEfFSnalwhbYbQxHwFcuM1R72yIcjudg==","signatures":[{"sig":"MEQCIEmKhUxRQ1RWX2QjsNnKXix8sPRa7hMAz7932rAeo0zrAiAXCNsE14x3b6Ydad5xzo5uAV64NsBVVhyssioWmUTqYg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108532},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/3a3a9b48f90ee552a79cd43b9d3c8da8/thirdweb-dev-crypto-0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651.tgz","_integrity":"sha512-JLBEzrnbOoaTBx48eLwSpSK//DXiI7JELs37x+uH/vuG/5xL7whRSbiEfFSnalwhbYbQxHwFcuM1R72yIcjudg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.5","ethers":"^5.7.2","js-awe":"^1.0.64","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651_1711709364245_0.4311325051988686","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@thirdweb-dev/crypto","version":"0.2.3","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.3","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"e22644aa405feb0e8e51a6bea1982170bb7ccc06","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.3.tgz","fileCount":28,"integrity":"sha512-Jea3YXglGW4GNqOX4EkQp22sSL04jvVLeBmMuaDdlIXDOPJk9odBU/oTh2LcNpBRBMiclK/J/V1Eq6KaxXo1xA==","signatures":[{"sig":"MEYCIQCRoNeMnODfNqCJXcKBrVMe/9O4Jnte37a2lYJdlqosgQIhAOhBG9gPSdy8LJ6qQzE+zNKor4dLFvgLpBNfhvC5wQh7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108468},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.3.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/1e69e2dfaac6d5fcc03687de60c0f473/thirdweb-dev-crypto-0.2.3.tgz","_integrity":"sha512-Jea3YXglGW4GNqOX4EkQp22sSL04jvVLeBmMuaDdlIXDOPJk9odBU/oTh2LcNpBRBMiclK/J/V1Eq6KaxXo1xA==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"2.9.5","ethers":"^5.7.2","js-awe":"^1.0.64","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.3_1711710168812_0.6820079640424239","host":"s3://npm-registry-packages"}},"0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"8e024cdae758a2528879edab8126512d58aeafe6","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640.tgz","fileCount":28,"integrity":"sha512-KA88t20xJIPF+146IqQbXk7ZVlV/mGjLTwKZgyZQWnvT+JmKN4xZ1qdHtspkyp9h9g2HG06ZhRVrb43wHjetdw==","signatures":[{"sig":"MEQCIExvBVFajU2EYK5yMUhVQp3i2AhHN1kbOaOIcdQumm0+AiB9xH6Y9r5SWDEuQy68tXA4gNwSYNLaR7ILjCDnt9OpVQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108532},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/79834784f2104f29338db5b4adc46822/thirdweb-dev-crypto-0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640.tgz","_integrity":"sha512-KA88t20xJIPF+146IqQbXk7ZVlV/mGjLTwKZgyZQWnvT+JmKN4xZ1qdHtspkyp9h9g2HG06ZhRVrb43wHjetdw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.64","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640_1712003334425_0.09581152363997747","host":"s3://npm-registry-packages"}},"0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"70d47f98b36ad7c76fc06514192070df2fe433bd","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550.tgz","fileCount":28,"integrity":"sha512-Omqtr/FuFIBmUHvt6lTvv6sJ+9T/JsRRbcoY0QHOmbUuyMnDZtH3C8A65xG0VmXULxFnSzyZejPrnO9pFCEbww==","signatures":[{"sig":"MEYCIQCu8xy/R+y1lFtrdmRYBsBSNWMaT4YufHOf0lxzqIuOKgIhAPKO0jHFu29/ffQhrmUBnFFZgjjwuHYQQnGKoWN1lGVr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108532},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/54d75e2f7e08805528ee5c347ff1c42e/thirdweb-dev-crypto-0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550.tgz","_integrity":"sha512-Omqtr/FuFIBmUHvt6lTvv6sJ+9T/JsRRbcoY0QHOmbUuyMnDZtH3C8A65xG0VmXULxFnSzyZejPrnO9pFCEbww==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.64","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550_1712010482371_0.02857521375207095","host":"s3://npm-registry-packages"}},"0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"44d1827162b4b39a8bc1143400bb062ef521c537","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513.tgz","fileCount":28,"integrity":"sha512-eLn/YhRzoEgNWY0fW3eOBhYkKhGUEXIsPqlI19IepLzVQcsjA0AvXKwcI/4aXVwFPzTvrgTbMA2+pNWCDppw6g==","signatures":[{"sig":"MEUCIQCZYM/Yl1s2HcDESNybSaXUB4h52DEhWjwTjJDl+OtSxQIgC3YJEw4wzcJmTgogYsemVX3QXU8Kin6DK1JYs+kEmLo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/abe9934be0cb9088080b42c54630a37f/thirdweb-dev-crypto-0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513.tgz","_integrity":"sha512-eLn/YhRzoEgNWY0fW3eOBhYkKhGUEXIsPqlI19IepLzVQcsjA0AvXKwcI/4aXVwFPzTvrgTbMA2+pNWCDppw6g==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513_1712011666695_0.07343765932020618","host":"s3://npm-registry-packages"}},"0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"43bc576a1b2d3218e6ec3a0d07a232e96b45d2b7","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102.tgz","fileCount":28,"integrity":"sha512-NSp47nCie3Toq89Znw9HQxHB8aahN+r9y5Pj1n2wWo8knF/Kgk1DPfJJxciHS5mpWJX/fhzRqi2ClKNSps7nkg==","signatures":[{"sig":"MEQCIAWBb+JaTkAd/zBLFWQHIktosluhGMl+Kkz78I4Sm1M9AiAab23jKMJw0XzzuEcdr6oeKU0aslReyeFKDkeZViG/Lg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/3ad43a3c48e8a5b441ccfdbfb608608d/thirdweb-dev-crypto-0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102.tgz","_integrity":"sha512-NSp47nCie3Toq89Znw9HQxHB8aahN+r9y5Pj1n2wWo8knF/Kgk1DPfJJxciHS5mpWJX/fhzRqi2ClKNSps7nkg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102_1712021613849_0.5354680601564774","host":"s3://npm-registry-packages"}},"0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"ed3f21c55fd96f58c252408e4d0ec7aa5a5268b6","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530.tgz","fileCount":28,"integrity":"sha512-Iq0ko7VozQG6gGtIp0kTZn0GvBkV8fvvASGR/XTBr9QmopGKNGWpKavD/3abRwXhiYY05VlMMOQCWLwSYonntg==","signatures":[{"sig":"MEUCIA/0hMDKCYhH5S/x4yryQjsuKoBKz97+Afy1s4ko4I18AiEAn8DR9EDePCNMqI2Z6YgToB9u0gK+y/OAOz8mrDLKPqk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/427c7861667a2297a0643b9694c9a338/thirdweb-dev-crypto-0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530.tgz","_integrity":"sha512-Iq0ko7VozQG6gGtIp0kTZn0GvBkV8fvvASGR/XTBr9QmopGKNGWpKavD/3abRwXhiYY05VlMMOQCWLwSYonntg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530_1712022484879_0.8163691734913252","host":"s3://npm-registry-packages"}},"0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"381e0c7f642f0edae4bed43125dc906e7eedb697","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203.tgz","fileCount":28,"integrity":"sha512-P13zaa8a5mzBdFsYYBstlGhA0JeTgUNfSKD8AlBLJllhazg0bF4csxFwqhSm0w/juI0ZebZ9EtV7OLggxc9E6A==","signatures":[{"sig":"MEQCIFcHPFGgiganIdcxsT7hCJfkmI6ekpTEhXwXJoZA/4e5AiAwSRb1AKV5FPzRjuy87+0US8P+2ePK8FjI8qWAenGPbQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/4480a5144b980aadb4513eaafed0a831/thirdweb-dev-crypto-0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203.tgz","_integrity":"sha512-P13zaa8a5mzBdFsYYBstlGhA0JeTgUNfSKD8AlBLJllhazg0bF4csxFwqhSm0w/juI0ZebZ9EtV7OLggxc9E6A==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203_1712036678053_0.8131082304451551","host":"s3://npm-registry-packages"}},"0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"defcda1c4a08d6315e634a652277deff40cf3bc6","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132.tgz","fileCount":28,"integrity":"sha512-M+Mjegpz6XrZqviBAIYdAPZ6h3SnFDRXHZg9KkoKsD9mhLHcYfvjePiMI21HqgF8RHd64+Ay+U/vqOLv4jp9eg==","signatures":[{"sig":"MEUCIDLdBs50hHxenlYniaHl3RzH89Wamd4VPHTB7cymY8fsAiEAqmFffUJ5pLbq8ly8StkxxlPv+CBUzx0lfbD01SCGa5c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/340f3c7346ae216193d171847822aa0a/thirdweb-dev-crypto-0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132.tgz","_integrity":"sha512-M+Mjegpz6XrZqviBAIYdAPZ6h3SnFDRXHZg9KkoKsD9mhLHcYfvjePiMI21HqgF8RHd64+Ay+U/vqOLv4jp9eg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132_1712045044316_0.0636463683917019","host":"s3://npm-registry-packages"}},"0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"73bd32ef03823ffd6c6294e660b3bdfd5c4daf73","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508.tgz","fileCount":28,"integrity":"sha512-w25GfBZoU0Nf06QU07dwu/5zl57V7M2vEcFsCHhgqjhsK0cqc9VJZ+x5SewCUqUdr6EH/zWGuQkDJ3xu0hxZJA==","signatures":[{"sig":"MEYCIQD8uWnujqUzpZZ2os9WbUAjaWDD3Len9RQkvDMAuJgACgIhAPgTNgak9G92BSWMtMsJEsL6NbXxyTqZXX4AlywXgpIC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/f1e689817ea384374ee71c14d369190a/thirdweb-dev-crypto-0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508.tgz","_integrity":"sha512-w25GfBZoU0Nf06QU07dwu/5zl57V7M2vEcFsCHhgqjhsK0cqc9VJZ+x5SewCUqUdr6EH/zWGuQkDJ3xu0hxZJA==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508_1712048860784_0.9670686670011679","host":"s3://npm-registry-packages"}},"0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"42e08578455215ff43e55bad1baaefeb1edcf7df","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044.tgz","fileCount":28,"integrity":"sha512-JC9sRYebBUBxxaqOLBQDoiL+h1Hxe82i5XMmj7zw18y00LOpeiSGT0uyvKjyU8gGDE3Q4kaJsdyBiBvH6/MeKg==","signatures":[{"sig":"MEYCIQCanaQp/8hA4WAKEBIa66zV/0gdYi9+oCfMbZwVCKkGFQIhAOZ6LKogFO/3QrJLGjtJikgX8QPstLuAuSfKRldQjsLB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108588},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/620a5ab99911604fc3d6369ee0a5dead/thirdweb-dev-crypto-0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044.tgz","_integrity":"sha512-JC9sRYebBUBxxaqOLBQDoiL+h1Hxe82i5XMmj7zw18y00LOpeiSGT0uyvKjyU8gGDE3Q4kaJsdyBiBvH6/MeKg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044_1712067075810_0.8342710671107838","host":"s3://npm-registry-packages"}},"0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"00b20b269de8ad1b9799352479e00d94ff94d77b","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145.tgz","fileCount":28,"integrity":"sha512-ejeSCtFVmYwd7blNnjAdwExr9rLMLLx6JYi72s5K+lnRg8fepfkUEZmNiMePj68PI8s1IqdMnO2OBd/14xYhSg==","signatures":[{"sig":"MEQCIBile84kx7amRDhMPxezedVMNrL+FBTYgnEcFOTM7iyJAiBQAmLgnUS20IZklj/Jwn1qzkc2WaxpDWIupRljvlZC9g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/213fb455186304425c6cc903e28045a8/thirdweb-dev-crypto-0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145.tgz","_integrity":"sha512-ejeSCtFVmYwd7blNnjAdwExr9rLMLLx6JYi72s5K+lnRg8fepfkUEZmNiMePj68PI8s1IqdMnO2OBd/14xYhSg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145_1712071460951_0.6328468956798248","host":"s3://npm-registry-packages"}},"0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"a2b1e9af69a299572b9240b4532f8cb37d3b2943","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005.tgz","fileCount":28,"integrity":"sha512-DfpjWyWGvvenq3Gu7SYm2mjMzSUgNLl14o0PAEnAeeVtr2bvunext+NdWkWbCaPdwI2H4D+xZc6sdG5JW/6HHg==","signatures":[{"sig":"MEQCIAvikz3nU0ImKr5jwwRW9lj1eaLPYaY7DpLyzRuPC/K4AiBBBAqBw7OJbQnzKrGpVEfpQiKJuhtxInM3WKvwE20FPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108588},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/0885db75da5da5e2e7ac2a2b91a4c3eb/thirdweb-dev-crypto-0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005.tgz","_integrity":"sha512-DfpjWyWGvvenq3Gu7SYm2mjMzSUgNLl14o0PAEnAeeVtr2bvunext+NdWkWbCaPdwI2H4D+xZc6sdG5JW/6HHg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005_1712074234753_0.3147054419985553","host":"s3://npm-registry-packages"}},"0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122":{"name":"@thirdweb-dev/crypto","version":"0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"15985364442c6ff52a5f0163aaa6f91258f1e6da","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122.tgz","fileCount":28,"integrity":"sha512-vWkg6YMdyN7pOnErmzLShmM4w8gCxM42ETRs8kDAGTiDDw6JRJgYEJjs55AvT3bSGxbP10MtulGW0FYFnbiMRg==","signatures":[{"sig":"MEYCIQC/yBDNyh4K7CFzOLCrvBVbh835zN+Nqn9aJyq7VaqUSQIhALV3sLtwDL7mb8GQVBdcDHgCHwjiRUOehNPZ3LWMN6yH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108596},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/f1fe714b5bdd9ccfddba9e3ccdec49c5/thirdweb-dev-crypto-0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122.tgz","_integrity":"sha512-vWkg6YMdyN7pOnErmzLShmM4w8gCxM42ETRs8kDAGTiDDw6JRJgYEJjs55AvT3bSGxbP10MtulGW0FYFnbiMRg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122_1712074434291_0.6486275524484391","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@thirdweb-dev/crypto","version":"0.2.4","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.4","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"e70cb83fef0446a8c9139c263e07fddfb97b8922","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.4.tgz","fileCount":28,"integrity":"sha512-26kvfv9TciNPXWzNYzOqXA4NQyv2LnF7iiZybkuZUf/QquB00p6ZvcA4/ymN5PZlTXxgLYyGUnzQF5MOs067eA==","signatures":[{"sig":"MEYCIQDNyENuVXsx0OzUl89VC+Kti4l4oZu1LMNYGf0CNtKFfQIhAKpaqqRHbaMNdRQyC6WDL9Xyer+qv6hYevCLqML3NYqj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108468},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.4.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/ && bunx publint --strict --level warning","push":"yalc push","test":"bun test","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/5268f44f7c8175ddd87ee7cee74c7eea/thirdweb-dev-crypto-0.2.4.tgz","_integrity":"sha512-26kvfv9TciNPXWzNYzOqXA4NQyv2LnF7iiZybkuZUf/QquB00p6ZvcA4/ymN5PZlTXxgLYyGUnzQF5MOs067eA==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.2.4","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"2.9.6","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.3","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.4_1712075026132_0.9617266132718487","host":"s3://npm-registry-packages"}},"0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328":{"name":"@thirdweb-dev/crypto","version":"0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"4c95097294dcce420398847604a8ce2dbdcd5058","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328.tgz","fileCount":28,"integrity":"sha512-JJxKhrvpSVgJb2C++kf3vwTATnR3oixgeKXrDpAWNq+HGvHX9xsOtY1aYACoCJT9cgF8t7XjlnlbP4IsZ/kx3Q==","signatures":[{"sig":"MEYCIQDNNhbkh0QHSlMfhhm0r56ELHsIZKckkX+3Zt4yqTj0igIhAP8b2M3B0XZE2lolC3JpZVIOSwLUxTNGP77lLqeg7WlU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108577},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/27331bc42e1d21c7733772794fa243a4/thirdweb-dev-crypto-0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328.tgz","_integrity":"sha512-JJxKhrvpSVgJb2C++kf3vwTATnR3oixgeKXrDpAWNq+HGvHX9xsOtY1aYACoCJT9cgF8t7XjlnlbP4IsZ/kx3Q==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.12.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328_1712510160942_0.8167649627408207","host":"s3://npm-registry-packages"}},"0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335":{"name":"@thirdweb-dev/crypto","version":"0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"70df5ad7e6033a08d577bfd47458773c04540da7","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335.tgz","fileCount":28,"integrity":"sha512-mn72VTCk2I2ivf9wZtWnfpWmNapdxOobFQTcxnIRTrJkpzoqIe7mWNclDUi17dvV2qshJDM9tUUXVyVHH5RcLg==","signatures":[{"sig":"MEUCIQDnTyUR82wDmikrwxgc2jAMyq5jq+8wD2c/HyMeqGT+HAIgAtmh/INjs35TnA1Hre2u6RiRFD7H/v9WMgsRHFpQ5Kw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108581},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/b91281705991e651cb81f492250358d0/thirdweb-dev-crypto-0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335.tgz","_integrity":"sha512-mn72VTCk2I2ivf9wZtWnfpWmNapdxOobFQTcxnIRTrJkpzoqIe7mWNclDUi17dvV2qshJDM9tUUXVyVHH5RcLg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.12.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335_1712517369452_0.7174918659814713","host":"s3://npm-registry-packages"}},"0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227":{"name":"@thirdweb-dev/crypto","version":"0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"dff42b1854df7364f6d630b2f75f96762fd994fe","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227.tgz","fileCount":28,"integrity":"sha512-b5WKF76lJOYPwhUuHq8nSIsTVt06s1PUG6LFTnjTLHEAFCkCuVL175KIgGM/J8uT6LWVkQarKr/tz5kGrThlDg==","signatures":[{"sig":"MEUCIG4g+JqfRounhoc/2ALDc7VbltWNQjzxeq+Ymdp+GrTdAiEAiH9tswa4yXtbn/wQgtcO11nanw6BI3h4Uq955bCBWxI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108581},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/89eae18deb2055990675280372fe0330/thirdweb-dev-crypto-0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227.tgz","_integrity":"sha512-b5WKF76lJOYPwhUuHq8nSIsTVt06s1PUG6LFTnjTLHEAFCkCuVL175KIgGM/J8uT6LWVkQarKr/tz5kGrThlDg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.12.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227_1712518505515_0.45391406474083795","host":"s3://npm-registry-packages"}},"0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240":{"name":"@thirdweb-dev/crypto","version":"0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"c2959e29bb3a97fe2b1d9ab99081c09b4ef2d231","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240.tgz","fileCount":28,"integrity":"sha512-/hUUc1+BvYmKmRv/sA2iDT9blu5AqWvG/tyvDJg0uAMp4UI7rd/DaM+uewkcAONdPxySUKbpHkSK2ssEDGTKRw==","signatures":[{"sig":"MEUCIQCmEJnNNC3u2qLaDCiA7YUEP5q8xLrAtSGnG/8FFhEvJwIgNHwtZrKuGMpzjOWrzjPVcEaAxK2zumIAlZkdsB3ULiE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108581},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/230fb5dd25cc50e6b406351d975bc504/thirdweb-dev-crypto-0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240.tgz","_integrity":"sha512-/hUUc1+BvYmKmRv/sA2iDT9blu5AqWvG/tyvDJg0uAMp4UI7rd/DaM+uewkcAONdPxySUKbpHkSK2ssEDGTKRw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.12.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240_1712523912778_0.44371796162665245","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"@thirdweb-dev/crypto","version":"0.2.5","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.5","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"a2f06d35570f4158f366191bfff1372efe4e7fe3","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.5.tgz","fileCount":28,"integrity":"sha512-qcGNeZAJ4a4w/XqYNqstUZpgWv7LynRlhiGIh5IBvEW1phsaAKt3AgehR4QsRfF4DAbcw+/0OsB7+alk9SciJQ==","signatures":[{"sig":"MEQCIB4YboW8euNLuHsIXCCb0+Hblkp/7Rc5JbrOzi212AzzAiA0GRX8jpCbAILu3BWnEc0uy66oVLdmQ+tjitOXkkn1QQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108453},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.5.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/99aab8b45df3dc404a9404047de5f8a1/thirdweb-dev-crypto-0.2.5.tgz","_integrity":"sha512-qcGNeZAJ4a4w/XqYNqstUZpgWv7LynRlhiGIh5IBvEW1phsaAKt3AgehR4QsRfF4DAbcw+/0OsB7+alk9SciJQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.12.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.5_1712533046629_0.4867475008824511","host":"s3://npm-registry-packages"}},"0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518":{"name":"@thirdweb-dev/crypto","version":"0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"e32bc9dfea3f9a59ed5c3c07d791cedd27d043cf","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518.tgz","fileCount":28,"integrity":"sha512-nZZi+93ZlSNnr+Txq1SosabKVdx72mx0tUN5Vnq09/W7zS9Dqpahd0vgQg+RDM9cTqJgRX250oxJaDe11QgHTQ==","signatures":[{"sig":"MEYCIQD9IObcZ+08jAAV0HZoObrLoxqi5ucumAdUj7THC6crfwIhAISAkqfzRXglPQy+txOi97rsoeofLoPH0IWTvG/gpAmq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108646},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/0aaf6487de13e69bc0b58e13ee00050a/thirdweb-dev-crypto-0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518.tgz","_integrity":"sha512-nZZi+93ZlSNnr+Txq1SosabKVdx72mx0tUN5Vnq09/W7zS9Dqpahd0vgQg+RDM9cTqJgRX250oxJaDe11QgHTQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.2","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.8-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518","eslint-config-thirdweb":"^0.1.10-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518_1715376499390_0.7802703871938828","host":"s3://npm-registry-packages"}},"0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648":{"name":"@thirdweb-dev/crypto","version":"0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"3921092de8d8796e01a53a33c457f134615d40bb","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648.tgz","fileCount":28,"integrity":"sha512-Pl6l3ulcL28J6U+dii578xeqs6PvYz0TbhvFcGOTQuVbwVzTpIyNI3jsj6bTpxnRAOTgdP7LifN+uwIeZADRyg==","signatures":[{"sig":"MEYCIQDrBBUSlcubQWel6OtmCgl9w7ViDh0olU7C+YiS+IS+WAIhAMaImfjiXaenG7kTdarzfty4Zrlyqn6c0zH4KrzPYVVG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108646},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/87cf66aae23450ccc16967d00cbe8da2/thirdweb-dev-crypto-0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648.tgz","_integrity":"sha512-Pl6l3ulcL28J6U+dii578xeqs6PvYz0TbhvFcGOTQuVbwVzTpIyNI3jsj6bTpxnRAOTgdP7LifN+uwIeZADRyg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.2","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.8-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648","eslint-config-thirdweb":"^0.1.10-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648_1715377189610_0.3869519101563563","host":"s3://npm-registry-packages"}},"0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849":{"name":"@thirdweb-dev/crypto","version":"0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"d3b07cd1ea22a93818a8a6f19cf64ad2365d484b","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849.tgz","fileCount":28,"integrity":"sha512-j4WvJEB7ZOzUY27FVDF1ppGfYYdTb14F1XPY035gSM0II6XAeIiAn5Wx4ehoep1DYLK+s178Mizsg4HpMzMP2A==","signatures":[{"sig":"MEUCIBZhpAdzRaNFONsWh+n9S6nwVWur3xkQn2h/amfQMHf0AiEAlPMzvwnVzqugRKQxCcig8pL0LfbNQKI1ALZdz8D3mfY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108517},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/59a529bdbf34a3ff32aedf6d607eb4dc/thirdweb-dev-crypto-0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849.tgz","_integrity":"sha512-j4WvJEB7ZOzUY27FVDF1ppGfYYdTb14F1XPY035gSM0II6XAeIiAn5Wx4ehoep1DYLK+s178Mizsg4HpMzMP2A==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.2","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849_1715378510664_0.3818246302484103","host":"s3://npm-registry-packages"}},"0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"f1a63842b4f61c6a14694e722c9dcf13fa4302bb","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023.tgz","fileCount":28,"integrity":"sha512-8stsAqKO6iv5bJsS5VJqjlUtiHdrDUzSglJ+Aqse9MQgj1G8d4p4mmY9hDDnhA/mk4M1aoFmyRXNWyiUoGG8Lw==","signatures":[{"sig":"MEUCIDiuDM1cI0yLp7EXO7Lq9j5Jx9F7oNJpYNe9FI7Egn1sAiEA68rdhqnyOF73e5d6wuAJhw82lmX/yeUHPNRJvmJ7hrI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108513},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/95d842c619a0844e5026516573535f49/thirdweb-dev-crypto-0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023.tgz","_integrity":"sha512-8stsAqKO6iv5bJsS5VJqjlUtiHdrDUzSglJ+Aqse9MQgj1G8d4p4mmY9hDDnhA/mk4M1aoFmyRXNWyiUoGG8Lw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.2","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023_1715379051714_0.9377749569904505","host":"s3://npm-registry-packages"}},"0.2.6":{"name":"@thirdweb-dev/crypto","version":"0.2.6","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.6","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"f1cd053164c338aaf5c64e8b014b6a870e3c4fed","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.6.tgz","fileCount":28,"integrity":"sha512-l9kuYAw0+S+ItvQR2c5k6y+qn+L6YT1I5+KN+cQNN848nPFGECVajED2fVLadkZW7xaGEyc+U6nj8Y1KB5bgNg==","signatures":[{"sig":"MEUCIEFxe0F9QVppOX3psewpwcde1MS3JO7fF0BIcC7yrCZZAiEAtqYmuwSrp9yUl0YujIqep1+dcZfe91JeTPiIEe50y+E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108453},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.6.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/a479e54e04d041d7a6ddb1a944f820ad/thirdweb-dev-crypto-0.2.6.tgz","_integrity":"sha512-l9kuYAw0+S+ItvQR2c5k6y+qn+L6YT1I5+KN+cQNN848nPFGECVajED2fVLadkZW7xaGEyc+U6nj8Y1KB5bgNg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.2","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.6_1715380957034_0.6070482359126856","host":"s3://npm-registry-packages"}},"0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159":{"name":"@thirdweb-dev/crypto","version":"0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159","maintainers":[{"name":"furqantw","email":"furqan@thirdweb.com"},{"name":"yash90","email":"yash@thirdweb.com"},{"name":"krishang","email":"krishang@thirdweb.com"},{"name":"jakeloo","email":"jake@thirdweb.com"},{"name":"joaquim-verges","email":"joaquim@thirdweb.com"},{"name":"jnsdls","email":"jonas@thirdweb.com"}],"homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"168215826917a5b2463fbf9fdeb7d561c752a814","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159.tgz","fileCount":28,"integrity":"sha512-MOO0djlR3avCmB0jj99wHMjadwhIgEpTGexZsfzIlLvnbDG7197JpNYp2t8lKF0hGzhj8pdXfIrsUCetGmylDg==","signatures":[{"sig":"MEQCIBpRRHEy1T/10QXvpCvR62Xl4dCggDm3l4siiV8SYmtaAiBqV5LzTqTlXF/5QopDZEQ9m0pfOjI4N+A5c+4/7BoEUA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108513},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"jnsdls","email":"jonas@thirdweb.com"},"_resolved":"/tmp/1d076ac5fdaf603027398bd378392520/thirdweb-dev-crypto-0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159.tgz","_integrity":"sha512-MOO0djlR3avCmB0jj99wHMjadwhIgEpTGexZsfzIlLvnbDG7197JpNYp2t8lKF0hGzhj8pdXfIrsUCetGmylDg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.5.2","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.9.9","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159_1715387549905_0.6819405771492182","host":"s3://npm-registry-packages"}},"0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731":{"name":"@thirdweb-dev/crypto","version":"0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"74116e82df34e5871db0541367a8c98c107ad553","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731.tgz","fileCount":28,"integrity":"sha512-ZATm2NvYtS/t2/CjQ+LPZI0rQTO26uZ+QwrSmLOoHLP2d2JsLjV0hS7z3IE80DInGPlQCivcCNqIpP6QcIAW7A==","signatures":[{"sig":"MEUCIQD04Vz+7QZzxZ+stewhVxMbhKuK6g/KjzRKdYT/EVDsKQIgAhw5RVUJ05STpayn4BXF9vZc+gBT8fEsqJXFgy9ynT4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108583},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"prettier --write 'src/**/*'","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"thirdweb-bot","email":"bot@thirdweb.com"},"_resolved":"/tmp/d2c5f54141d7951cb2fa8db2af370a82/thirdweb-dev-crypto-0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731.tgz","_integrity":"sha512-ZATm2NvYtS/t2/CjQ+LPZI0rQTO26uZ+QwrSmLOoHLP2d2JsLjV0hS7z3IE80DInGPlQCivcCNqIpP6QcIAW7A==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.7.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.14.0","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.15.1","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.10-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731_1718911833731_0.7222642538589621","host":"s3://npm-registry-packages"}},"0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551":{"name":"@thirdweb-dev/crypto","version":"0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"3c71d7090c57c224b5482bb72efb967d40a047b3","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551.tgz","fileCount":28,"integrity":"sha512-dh/Cg2wYbH7RyCj2P007dinyudQoFwKLvxLavigXAGqBvkKE5zZd+c/R2nHgHRe1+pvUy+B9+KQODEt9zyBWyg==","signatures":[{"sig":"MEUCIBTnAAv9S4gAdLHTgaJfhNmt9OQtkrbiGiDuj9c6pAnDAiEA+fIaufCmyh43lajqN0RczHHiVOELD8Ut+rg5chmhh6c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108624},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"biome format ./src --write","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"thirdweb-bot","email":"bot@thirdweb.com"},"_resolved":"/tmp/b9264f532dbc2ff43e40399c90802770/thirdweb-dev-crypto-0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551.tgz","_integrity":"sha512-dh/Cg2wYbH7RyCj2P007dinyudQoFwKLvxLavigXAGqBvkKE5zZd+c/R2nHgHRe1+pvUy+B9+KQODEt9zyBWyg==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.7.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.14.0","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.15.1","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.4.4","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.10-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551_1718928534278_0.2545578425269688","host":"s3://npm-registry-packages"}},"0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610":{"name":"@thirdweb-dev/crypto","version":"0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"7ab7ab16a61ed3ad23738623640c68203e0e4f9f","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610.tgz","fileCount":28,"integrity":"sha512-OhQKCBawmf+EGKNNcGOZuKoiKeQXOe1ZCaR0qB+cTlfTiJGCqFqXuvPbf3QW9rrEpgek/AS2T6GRd5NHp8Q54g==","signatures":[{"sig":"MEUCIE2d/T8DSwPa3MiIQX5B8gDDngBztaOpy6+pS4cgVmrnAiEA9c52BUg8+61ZF+hYxOC7pHVfPUFWOSfULJV/SH3sMp0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108624},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"biome format ./src --write","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"thirdweb-bot","email":"bot@thirdweb.com"},"_resolved":"/tmp/643f53eb74d00331559ae86849ed3940/thirdweb-dev-crypto-0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610.tgz","_integrity":"sha512-OhQKCBawmf+EGKNNcGOZuKoiKeQXOe1ZCaR0qB+cTlfTiJGCqFqXuvPbf3QW9rrEpgek/AS2T6GRd5NHp8Q54g==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.7.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.14.0","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.16.0","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.5.2","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.10-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610_1719014949029_0.3573550379303292","host":"s3://npm-registry-packages"}},"0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619":{"name":"@thirdweb-dev/crypto","version":"0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"59d18a951ca46d88a352c6fe0dcf024c6c483638","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619.tgz","fileCount":28,"integrity":"sha512-vD0qtu3iAy1v75ClUqubJt3QbfebmmHNhqtszCN3h3BdvdUwg2BT5D1ABSb4raCyNTgtJ0DB530tW4VpTL8KYQ==","signatures":[{"sig":"MEUCIQChSpfZJAdeC7JS8ZDJBXpz9urEiQCEPHtS4OuwXdiwZAIgQjgSFWkhhoupdxO5IjSZ50JIAGM0sWtbiy6G7WjW2aQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108624},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"biome format ./src --write","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"thirdweb-bot","email":"bot@thirdweb.com"},"_resolved":"/tmp/dfad26d5e2c85a88c54015f3068042ae/thirdweb-dev-crypto-0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619.tgz","_integrity":"sha512-vD0qtu3iAy1v75ClUqubJt3QbfebmmHNhqtszCN3h3BdvdUwg2BT5D1ABSb4raCyNTgtJ0DB530tW4VpTL8KYQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.7.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.14.0","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.16.0","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.5.2","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.10-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619_1719101354904_0.6446248212513874","host":"s3://npm-registry-packages"}},"0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813":{"name":"@thirdweb-dev/crypto","version":"0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"c9e3f2bc40db81e952c762011b8ee74577171c2b","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813.tgz","fileCount":28,"integrity":"sha512-5Wt9vF6YDTzBNk9mgH2bofeKeA9xu0l0OEQbGiPEKqYoeyL1M9BBpNPPbuleP2IgpG5fYK0Aa3o6jSzntEuFNA==","signatures":[{"sig":"MEUCIHFR+rezbFKQgcNluJ7J4iQ+J2AeZ0TQCsd8nW0/m4IGAiEAip3S+vhwSFcyyN9C4zU7x+ftKEznQycSJ37xsh30+HI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108983},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"biome format ./src --write","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"thirdweb-bot","email":"bot@thirdweb.com"},"_resolved":"/tmp/88d35502a4e5370032d1798d0ac456b8/thirdweb-dev-crypto-0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813.tgz","_integrity":"sha512-5Wt9vF6YDTzBNk9mgH2bofeKeA9xu0l0OEQbGiPEKqYoeyL1M9BBpNPPbuleP2IgpG5fYK0Aa3o6jSzntEuFNA==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.7.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.15.0","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.16.0","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.5.2","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813_1719392607587_0.4283573925137494","host":"s3://npm-registry-packages"}},"0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701":{"name":"@thirdweb-dev/crypto","version":"0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"efdb15597d0e5d9f0d874318ddca048d96fb9957","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701.tgz","fileCount":28,"integrity":"sha512-gdtX47e1qNcNMiymtPEGDxDr8Z/eC8sgPshgl5MwIECcgoHfiSJMHfH9zquN2mUYuJRYhJ2ANi0Z6tQlunQmHw==","signatures":[{"sig":"MEQCIBnsULsChYyDe2YGRh/r2UKFZvs8JH/LRPVTGBlNReyDAiBKtCr+OZUQptqBuME4MA6I8RPZE3JikmpAGb88CZAx7A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108983},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"biome format ./src --write","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"thirdweb-bot","email":"bot@thirdweb.com"},"_resolved":"/tmp/a927accce94649021d672f5f45699d1f/thirdweb-dev-crypto-0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701.tgz","_integrity":"sha512-gdtX47e1qNcNMiymtPEGDxDr8Z/eC8sgPshgl5MwIECcgoHfiSJMHfH9zquN2mUYuJRYhJ2ANi0Z6tQlunQmHw==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.7.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.15.0","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.16.0","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.5.2","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701_1719440490431_0.33237095863553434","host":"s3://npm-registry-packages"}},"0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603":{"name":"@thirdweb-dev/crypto","version":"0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603","author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","_id":"@thirdweb-dev/crypto@0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"dist":{"shasum":"3aa2d27d76bec9d6d15daccae3c4fa58f941182a","tarball":"https://registry.npmjs.org/@thirdweb-dev/crypto/-/crypto-0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603.tgz","fileCount":28,"integrity":"sha512-DfyJIlfuWuHyJN0zD+IkCJLy/iVzFQk7lNsI8E54sOSWCR54UDP6eNbXfdzkRghTSjfLgLliZKUl8bAFSqAtxQ==","signatures":[{"sig":"MEYCIQCHsWRt2dUEswfgVgcYWem0y2cIGz5+r0SYo98MRCKihgIhAM9MNv34U95GxseP0eo9W5jxJTODF9QJfTK2lTOVlBan","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":108983},"main":"dist/thirdweb-dev-crypto.cjs.js","_from":"file:thirdweb-dev-crypto-0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603.tgz","types":"./dist/thirdweb-dev-crypto.cjs.d.ts","module":"dist/thirdweb-dev-crypto.esm.js","readme":"<p align=\"center\">\n<br />\n<a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a>\n<br />\n</p>\n<h1 align=\"center\">thirdweb crypto</h1>\n<p align=\"center\">\n<a href=\"https://www.npmjs.com/package/@thirdweb-dev/crypto\"><img src=\"https://img.shields.io/npm/v/@thirdweb-dev/crypto?color=red&label=npm&logo=npm\" alt=\"npm version\"/></a>\n<a href=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml\"><img alt=\"Build Status\" src=\"https://github.com/thirdweb-dev/js/actions/workflows/build-test-lint.yml/badge.svg\"/></a>\n<a href=\"https://discord.gg/thirdweb\"><img alt=\"Join our Discord!\" src=\"https://img.shields.io/discord/834227967404146718.svg?color=7289da&label=discord&logo=discord&style=flat\"/></a>\n\n</p>\n<p align=\"center\"><strong>Secure, performant and cross-platform cryptography methods commonly used across other thirdweb packages.</strong></p>\n<br />\n\n## Installation\n\n```bash\nnpm install @thirdweb-dev/crypto\n```\n\n## Available methods\n\n### Encryption\n\n| method                                       | use case                                                                                              | return type       | underlying technology |\n| -------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------- | --------------------- |\n| `aesEncrypt(<plaintext>, <password>)`        | Encrypts a string/Uint8Array with AES-GCM                                                             | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecrypt(<ciphertext>, <password>)`       | Decrypts a value encrypted via `aesEncrypt`                                                           | `Promise<string>` | `WebCrypto` (AES-GCM) |\n| `aesDecryptCompat(<ciphertext>, <password>)` | Same as `aesDecrypt` but also supports values encrypted via `crypto-js` (for backwards compatibility) | `Promise<string>` | `WebCrypto` (AES-GCM) |\n\n### Hashing\n\n| method                              | use case                                                        | return type           | underlying technology |\n| ----------------------------------- | --------------------------------------------------------------- | --------------------- | --------------------- |\n| `sha256(<value>)`                   | Hashes a string/Uint8Array with SHA256                          | `Promise<Uint8Array>` | `WebCrypto`           |\n| `sha256Hex(<value>)`                | Same as `sha256` but reruns as hex string                       | `Promise<string>`     | `WebCrypto`           |\n| `sha256Sync(<value>)`               | Same as `sha256` but synchronous                                | `Uint8Array`          | `@noble/hashes`       |\n| `sha256SyncHex(<value>)`            | Same as `sha256Sync` but reruns as hex string                   | `string`              | `@noble/hashes`       |\n| `keccak256Sync(<value>)`            | Hashes a string/Uint8Array with Keccak256                       | `Uint8Array`          | `js-sha3`             |\n| `keccak256SyncHex(<value>)`         | Same as `keccak256Sync` but returns as hex string               | `string`              | `js-sha3`             |\n| `keccak256SyncHexPrefixed(<value>)` | Same as `keccak256Sync` but returns as `0x` prefixed hex string | `0x${string}`         | `js-sha3`             |\n\n## Initial Benchmarks\n\n#### sha256 -> Uint8Array\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 112,929 │ 8855.08539999982   │ ±1.37% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 55,004  │ 18180.482820000594 │ ±1.02% │ 100000  │\n│ crypto-js (sync)             │ 19,213  │ 52047.35353999857  │ ±0.25% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### sha256 -> hex\n\n```bash\n┌──────────────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│          Task Name           │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto (async) │ 100,845 │ 9916.125730001713  │ ±1.24% │ 100000  │\n│ @thirdweb-dev/crypto (sync)  │ 53,751  │ 18604.047449997142 │ ±0.92% │ 100000  │\n│ crypto-js (sync)             │ 19,077  │ 52419.03465000334  │ ±0.24% │ 100000  │\n└──────────────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> Uint8Array\n\n```bash\n┌──────────────────────┬─────────┬────────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns)  │ Margin │ Samples │\n├──────────────────────┼─────────┼────────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 72,533  │ 13786.719900000808 │ ±0.31% │ 100000  │\n│ ethers@v5            │ 71,891  │ 13909.94663000107  │ ±0.33% │ 100000  │\n│ @noble/hashes        │ 27,244  │ 36704.73226000136  │ ±0.19% │ 100000  │\n│ viem                 │ 27,115  │ 36879.07953999698  │ ±0.26% │ 100000  │\n└──────────────────────┴─────────┴────────────────────┴────────┴─────────┘\n```\n\n#### keccack256 -> hex\n\n```bash\n┌──────────────────────┬─────────┬───────────────────┬────────┬─────────┐\n│      Task Name       │ ops/sec │ Average Time (ns) │ Margin │ Samples │\n├──────────────────────┼─────────┼───────────────────┼────────┼─────────┤\n│ @thirdweb-dev/crypto │ 42,947  │ 23284.22780000266 │ ±0.23% │ 100000  │\n│ ethers@5             │ 35,568  │ 28114.98005000045 │ ±0.42% │ 100000  │\n│ @noble/hashes        │ 15,149  │ 66009.80448000187 │ ±0.26% │ 100000  │\n│ viem                 │ 15,217  │ 65714.15843999518 │ ±0.25% │ 100000  │\n└──────────────────────┴─────────┴───────────────────┴────────┴─────────┘\n```\n","engines":{"node":">=18"},"exports":{".":{"module":"./dist/thirdweb-dev-crypto.esm.js","default":"./dist/thirdweb-dev-crypto.cjs.js"},"./package.json":"./package.json"},"scripts":{"fix":"eslint src/ --fix","lint":"eslint src/","push":"yalc push","test":"vitest run","build":"tsc && preconstruct build","clean":"rm -rf dist/","format":"biome format ./src --write","benchmark":"bun run benchmark:aes-encrypt && bun run benchmark:aes-decrypt && bun run benchmark:sha256 && bun run benchmark:keccak256","benchmark:sha256":"bun benchmark/sha256.ts","benchmark:keccak256":"bun benchmark/keccak256.ts","benchmark:aes-decrypt":"bun benchmark/aes-decrypt.ts","benchmark:aes-encrypt":"bun benchmark/aes-encrypt.ts"},"_npmUser":{"name":"thirdweb-bot","email":"bot@thirdweb.com"},"_resolved":"/tmp/25e7e512168bf07dde5e3c242f558f51/thirdweb-dev-crypto-0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603.tgz","_integrity":"sha512-DfyJIlfuWuHyJN0zD+IkCJLy/iVzFQk7lNsI8E54sOSWCR54UDP6eNbXfdzkRghTSjfLgLliZKUl8bAFSqAtxQ==","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"_npmVersion":"10.7.0","description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","directories":{},"sideEffects":false,"_nodeVersion":"20.15.0","dependencies":{"js-sha3":"^0.9.3","@noble/hashes":"^1.4.0"},"preconstruct":{"exports":true,"entrypoints":["index.ts"]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"viem":"2.16.0","eslint":"8.57.0","ethers":"^5.7.2","js-awe":"^1.0.65","crypto-js":"^4.2.0","tinybench":"^2.6.0","typescript":"5.5.2","@types/crypto-js":"^4.2.2","@preconstruct/cli":"2.7.0","@thirdweb-dev/tsconfig":"^0.1.7","eslint-config-thirdweb":"^0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/crypto_0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603_1719447034160_0.4891064903258253","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-11-15T21:02:47.597Z","modified":"2026-03-26T09:13:38.841Z","0.0.0-dev-72e36f1-20231115210231":"2023-11-15T21:02:47.856Z","0.0.0-dev-e1d23a7-20231116100754":"2023-11-16T10:08:13.396Z","0.2.0-nightly-ab2dfd4f-20231116223920":"2023-11-16T22:39:30.858Z","0.0.0-dev-6295cf7-20231117075633":"2023-11-17T07:56:49.900Z","0.2.0-nightly-4c5e40ae-20231117092939":"2023-11-17T09:29:50.739Z","0.0.0-dev-dab0125-20231117093834":"2023-11-17T09:38:50.283Z","0.2.0":"2023-11-17T09:43:37.818Z","0.0.0-dev-9467fc3-20231117115135":"2023-11-17T11:51:51.870Z","0.0.0-dev-9f498f2-20231121184457":"2023-11-21T18:45:16.692Z","0.0.0-dev-1891dc0-20231127201946":"2023-11-27T20:20:04.223Z","0.0.0-dev-1891dc0-20231127201959":"2023-11-27T20:20:17.854Z","0.0.0-dev-d0fb336-20240229150415":"2024-02-29T15:04:51.082Z","0.2.1-nightly-bc198e215-20240229175756":"2024-02-29T17:58:07.634Z","0.0.0-dev-ed17781-20240229185724":"2024-02-29T18:57:58.658Z","0.2.1-nightly-553f7fda4-20240229191938":"2024-02-29T19:19:52.761Z","0.2.1":"2024-02-29T19:33:53.826Z","0.0.0-dev-9aaf173-20240301192815":"2024-03-01T19:28:48.745Z","0.2.2-nightly-35bddd69c-20240321012100":"2024-03-21T01:21:12.296Z","0.2.2":"2024-03-21T01:44:29.896Z","0.2.3-nightly-d93286bc1f8224d055b50ce3ffa4f302869cb2b1-20240329103719":"2024-03-29T10:39:52.375Z","0.2.3-nightly-9545005908060defa061cc18cccdc14d01771924-20240329104651":"2024-03-29T10:49:24.400Z","0.2.3":"2024-03-29T11:02:48.972Z","0.2.4-nightly-213f31303409698d93e5da6eea22df6833512107-20240401202640":"2024-04-01T20:28:54.622Z","0.2.4-nightly-00be583b8902a1a0e5382ffdaafa6b9e31316075-20240401222550":"2024-04-01T22:28:02.587Z","0.2.4-nightly-26a50b1e0591529748fb3f0d3fb7cd2ffcc47f19-20240401224513":"2024-04-01T22:47:46.904Z","0.2.4-nightly-7234e6bc10e9d410b991f76d126e978a77fa203f-20240402013102":"2024-04-02T01:33:34.077Z","0.2.4-nightly-0394eb22bf5256e8e66c664834c0e7e8fe638bb4-20240402014530":"2024-04-02T01:48:05.053Z","0.2.4-nightly-e8063936c91724e540bd7a20c90e480a1f86dabe-20240402054203":"2024-04-02T05:44:38.206Z","0.2.4-nightly-d2ffb8207131ec67f80a5ee5e58ef2aa7f7938db-20240402080132":"2024-04-02T08:04:04.528Z","0.2.4-nightly-15697ae74184e6c5ceb753da5a02a0cf79b3322e-20240402090508":"2024-04-02T09:07:40.938Z","0.0.0-dev-9a806f5397c9e5803c9def6653939e5e4df56a3c-20240402141044":"2024-04-02T14:11:15.985Z","0.2.4-nightly-1c29556f146b7c8ea28ed193b4d04e7099a9363e-20240402152145":"2024-04-02T15:24:21.112Z","0.0.0-dev-ae85a7ad0f937a26e740cf9f9970835c68ac3841-20240402161005":"2024-04-02T16:10:34.906Z","0.2.4-nightly-d89f009f14fc3500a05dcc21f6b7f688dfe81db4-20240402161122":"2024-04-02T16:13:54.440Z","0.2.4":"2024-04-02T16:23:46.353Z","0.2.5-nightly-703cb6ae3cc51fa4b0ba7c87f09f8e84dab8ed3f-20240407171328":"2024-04-07T17:16:01.094Z","0.2.5-nightly-584d68e6f6a5ff870d55fb22cfbdfd6ca0e1ff14-20240407191335":"2024-04-07T19:16:09.598Z","0.2.5-nightly-48c1d6038272284f8942e1fb3635283b48945a68-20240407193227":"2024-04-07T19:35:05.734Z","0.2.5-nightly-ebdfb571c957386fd0fb97647f364bba3c82769c-20240407210240":"2024-04-07T21:05:12.926Z","0.2.5":"2024-04-07T23:37:26.811Z","0.2.6-nightly-02c03196ad38de888ff86311c68fa010018bda60-20240510212518":"2024-05-10T21:28:19.625Z","0.2.6-nightly-9d410c6a5409848fa6c7cc4f1c0fc6ec3a6fa6e8-20240510213648":"2024-05-10T21:39:49.784Z","0.2.6-nightly-ad24d83b5123f76b30268a755ff739a79f29f4af-20240510215849":"2024-05-10T22:01:50.850Z","0.0.0-dev-bd03ffef9e57f12d9ceb57fa26c4c56781f381db-20240510221023":"2024-05-10T22:10:51.912Z","0.2.6":"2024-05-10T22:42:37.226Z","0.0.0-dev-f95024147f012f9b752b6cd2215199dca870c39d-20240511003159":"2024-05-11T00:32:30.062Z","0.2.7-nightly-fab5cd43bed972b0a3f70f0f39a790349672ba72-20240620192731":"2024-06-20T19:30:33.890Z","0.2.7-nightly-d320777eea5404f596aa39b2b49b5165d3e1959a-20240621000551":"2024-06-21T00:08:54.494Z","0.2.7-nightly-fe775166d40fdd50faaa8d6da3fcd624f9a450ed-20240622000610":"2024-06-22T00:09:09.147Z","0.2.7-nightly-e7434891354f351d2a399daebdddae9cf1fc817b-20240623000619":"2024-06-23T00:09:15.110Z","0.2.7-nightly-3979ff0238ae9b3a0a216e6c2d562eb7206a9fe8-20240626085813":"2024-06-26T09:03:27.803Z","0.2.7-nightly-7be7b6ff84b83ee587d369f4e8da5a2d9f80b8c2-20240626221701":"2024-06-26T22:21:30.582Z","0.2.7-nightly-d974db533a5a2e241df7743b201d730c90cda0d7-20240627000603":"2024-06-27T00:10:34.342Z"},"bugs":{"url":"https://github.com/thirdweb-dev/js/issues"},"author":{"name":"thirdweb eng","email":"eng@thirdweb.com"},"license":"Apache-2.0","homepage":"https://github.com/thirdweb-dev/js/tree/main#readme","repository":{"url":"git+https://github.com/thirdweb-dev/js.git#main","type":"git"},"description":"<p align=\"center\"> <br /> <a href=\"https://thirdweb.com\"><img src=\"https://github.com/thirdweb-dev/js/blob/main/legacy_packages/sdk/logo.svg?raw=true\" width=\"200\" alt=\"\"/></a> <br /> </p> <h1 align=\"center\">thirdweb crypto</h1> <p align=\"center\"> <a href=","maintainers":[{"email":"furqan@thirdweb.com","name":"furqantw"},{"email":"jonas@thirdweb.com","name":"jnsdls"},{"email":"joaquim@thirdweb.com","name":"joaquim-verges"},{"email":"bot@thirdweb.com","name":"thirdweb-bot"},{"email":"0xfirekeeper@gmail.com","name":"0xfirekeeper"}],"readme":"","readmeFilename":""}