{"_id":"@circle-fin/adapter-ethers-v6","_rev":"56-3f742e60ea704c411f090e7092f583be","name":"@circle-fin/adapter-ethers-v6","dist-tags":{"alpha":"0.0.2-alpha.6","latest":"1.12.0"},"versions":{"0.0.2-alpha.6":{"name":"@circle-fin/adapter-ethers-v6","version":"0.0.2-alpha.6","_id":"@circle-fin/adapter-ethers-v6@0.0.2-alpha.6","maintainers":[{"name":"circle-smartin","email":"sarah.martin@circle.com"},{"name":"elvin-circle","email":"elvin.du@circle.com"},{"name":"ashuk-circle","email":"ashutosh.ukey@circle.com"},{"name":"prakashb-circle","email":"prakashb@circle.com"},{"name":"deepakgummi-circle","email":"deepakreddy.gummi@circle.com"},{"name":"tomleicircle","email":"mengda.lei@circle.com"}],"dist":{"shasum":"ecf4a9deb43065de681f32dc2af34821c5ea58b6","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-0.0.2-alpha.6.tgz","fileCount":8,"integrity":"sha512-9k3oMWhjBas93cEGcpAF3uIGgO+EuxzmT2I9m2931+BFiKsvDZSCCu/+HsHKLD2OD56LFrdSTRUqOebHkeplvA==","signatures":[{"sig":"MEUCIGULqxBXfwZWW+ABtjC5IDmmxTzheFhckVVhets/bGJ+AiEAqNjY7jY1wu7PsQZ1ivrQsKBkXdmm3G6YRndMAVT8SYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":651283},"main":"./index.cjs.js","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs.js"},"./package.json":"./package.json"},"gitHead":"ce5def7bf3577664cf8243d1d7f8fc3d5a3ac079","_npmUser":{"name":"ashuk-circle","email":"ashutosh.ukey@circle.com"},"_npmVersion":"10.9.3","description":"<div align=\"center\">","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"3.25.67","bs58":"^6.0.0","abitype":"1.0.8","@solana/web3.js":"^1.90.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_0.0.2-alpha.6_1756213530624_0.5475434010142919","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-alpha.7":{"name":"@circle-fin/adapter-ethers-v6","version":"0.0.2-alpha.7","_id":"@circle-fin/adapter-ethers-v6@0.0.2-alpha.7","maintainers":[{"name":"circle-smartin","email":"sarah.martin@circle.com"},{"name":"elvin-circle","email":"elvin.du@circle.com"},{"name":"ashuk-circle","email":"ashutosh.ukey@circle.com"},{"name":"prakashb-circle","email":"prakashb@circle.com"},{"name":"deepakgummi-circle","email":"deepakreddy.gummi@circle.com"},{"name":"tomleicircle","email":"mengda.lei@circle.com"}],"dist":{"shasum":"3aeae6d0b7cc0f60521232eaf317f9beb52b5132","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-0.0.2-alpha.7.tgz","fileCount":8,"integrity":"sha512-MBNrzwRgun2lh+imaHFeYH2mqZHFGmsr+aTbVrP54UNdBv8XwKpt3dFSTDRZJMNrHTU+Aifr79RLy1EEB2NfLA==","signatures":[{"sig":"MEUCIEBTBmq3pL57xqmrzcb4nJXsGoXxRuQspwQbWg8xJ14PAiEAjI2qglUZ73FPiZkikuHtCOGr8VQToqXWUhs2RjEGtiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":867019},"main":"./index.cjs.js","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs.js"},"./package.json":"./package.json"},"gitHead":"4e52f40576dc83effaca889b35e7c7a4c0f323a4","_npmUser":{"name":"ashuk-circle","email":"ashutosh.ukey@circle.com"},"_npmVersion":"10.9.3","description":"<div align=\"center\">","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"1.0.8","@solana/web3.js":"^1.90.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"6.15.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_0.0.2-alpha.7_1759934316626_0.7848634109449337","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.0.0","_id":"@circle-fin/adapter-ethers-v6@1.0.0","maintainers":[{"name":"circle-smartin","email":"sarah.martin@circle.com"},{"name":"elvin-circle","email":"elvin.du@circle.com"},{"name":"ashuk-circle","email":"ashutosh.ukey@circle.com"},{"name":"prakashb-circle","email":"prakashb@circle.com"},{"name":"deepakgummi-circle","email":"deepakreddy.gummi@circle.com"},{"name":"tomleicircle","email":"mengda.lei@circle.com"}],"dist":{"shasum":"03b98ec40b1ef8c1dc51d6b8b936dd3cd4bf398a","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.0.0.tgz","fileCount":8,"integrity":"sha512-beU9W8fSFrp1Hv+RVEwQJSQjCunvYdVGdwL7SyUXlJPhmVUTEFpn7c2xjr05Q/7rSDnFvzwtyR3ggtq0cquYcQ==","signatures":[{"sig":"MEYCIQDlUWpwdVTeh5P5nNXvmIUQbpa4G/16XN0xvm3WCrmucQIhAI4czUX1ya1jqVmhswCgcSKDaaQcAlzoYqP1NZQAG+Dn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858302},"main":"./index.cjs.js","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs.js"},"./package.json":"./package.json"},"gitHead":"6f1d57b6d1b6fa99dbf56299e27facd487b6a360","_npmUser":{"name":"ashuk-circle","email":"ashutosh.ukey@circle.com"},"_npmVersion":"10.9.3","description":"<div align=\"center\">","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.0.0_1760456230435_0.3479619519612329","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@circle-fin/adapter-ethers-v6","version":"1.0.1","_id":"@circle-fin/adapter-ethers-v6@1.0.1","maintainers":[{"name":"circle-smartin","email":"sarah.martin@circle.com"},{"name":"elvin-circle","email":"elvin.du@circle.com"},{"name":"ashuk-circle","email":"ashutosh.ukey@circle.com"},{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"91a891170bdd94d5133826610eb1f2854a0b06b2","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.0.1.tgz","fileCount":8,"integrity":"sha512-4lAl+/T869lkaaS/TppoC2rGqL+D3LMTvpqErrRm/GfRTE7QG4PiMg7AXJ8QZpiDu1n47ReyXTXAyyZa2SwyOA==","signatures":[{"sig":"MEUCIQC+8my3etDMUOy/0qtahEVYWn8XXjQeCkmHYWdjNNq4MwIgRjKunfntqa8NHj09PjOol/g3otkPQlNBrz0wlJ1358c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":889444},"main":"./index.cjs.js","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs.js"},"./package.json":"./package.json"},"gitHead":"9fdbf13761db407c8877b8d83f891fb2503fffbe","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.21.0","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.0.1_1761680388527_0.8651604642408273","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.1.0","_id":"@circle-fin/adapter-ethers-v6@1.1.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"b2ad331009295219012f17f79f0ede163c57d5c5","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.1.0.tgz","fileCount":9,"integrity":"sha512-Q+djAVOq2I5jKiVDHdvt1bS93936shrFBdggMD4nInMdVRquv2Lji/bmr2bKAw4kYIwgkW7dYOVMfHcijHDO5g==","signatures":[{"sig":"MEQCIG7UrBO0LJSgiBr13HlqzBd8wTwBR7ytjJpnsK5GOUL0AiAU1Pn9Tw6IAFujXO0D3ALukZg/pWlOiFTeuR3jDUp0Ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":896064},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"99d2830afba4c6ec75ec21006b1ab89218aa42c5","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.1.0_1762363839733_0.9262555345887427","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@circle-fin/adapter-ethers-v6","version":"1.1.1","_id":"@circle-fin/adapter-ethers-v6@1.1.1","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"dda13cabe36f41429dc0ac576662b2e764932369","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.1.1.tgz","fileCount":9,"integrity":"sha512-BIpEtbl+qn93xSuWYV/sdyRmovmpXDvYNMw2xCtkFhbfp+IFCX1bnxVkApkIfKHqVIsOiiQnngg4ugowg0H2UA==","signatures":[{"sig":"MEYCIQDGJ260P6shd+f5pO5cHkwmvVPs0SPTfbD10+fQF7ixWwIhAO7MgUH3icHCAHk9HJ2TXkF9PEiYegiEFbe/brH+i0rc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":943138},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"d766004cb303d4a31ccaa3eea88fecc215e9da1a","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.1.1_1763409542398_0.14052748933108705","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.2.0","_id":"@circle-fin/adapter-ethers-v6@1.2.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"2b8c95d282cd1c514166150c2e41f9f432680c4b","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.2.0.tgz","fileCount":9,"integrity":"sha512-dL8slrf+A3PbSjER2QICcxs8FDH/gFdcXOwhdiNA/xVUviDjaUGQgz0p8hQ2GXcx2NaSc+x665e5x8CH+uwamA==","signatures":[{"sig":"MEUCIHp9mDUvAE/z0ZollP4SGgOIeq1D8UubNeh8I/rQmkCyAiEAwKCmnqXmKtBjnrTgXUqjotU3aowWz2FvQdRtZG2nPYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":992239},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"ec3282c7613fc5ecea14d1e0d3b13f8d2f7c6a19","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.2.0_1766143368891_0.3746409051116848","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.3.0","keywords":["circle","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.3.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"971e4c5181b92c43f3c912078e34917fb1828d40","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.3.0.tgz","fileCount":9,"integrity":"sha512-W3g/HwJ+L2H3H8tG4dXqFy3Z8umLSr8iCcfnD6IW1e7o2VQMVE9Q+1QWcck/a4cZ1rylQYNHPw51scZkQPO3jw==","signatures":[{"sig":"MEUCIEO5aMc7GQX0sf103+UjmykZfwLEWREFXHLh03YE9NwmAiEAvDwplOlqBeWBBGgsYSI25olfPmFwYvaOV3L+9jt+aXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1008699},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"a229cc3bfea215b88ab5a7ab486080251395fd6a","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.3.0_1769100200616_0.6380064412259479","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.4.0","keywords":["circle","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.4.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"8048f8fc89d14b73917891b100bb8a122d69fc48","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.4.0.tgz","fileCount":9,"integrity":"sha512-boFu6G8I3RdRt+Kawc+nBrJwDmI+t9OUkGP8kIb6u8g6lwXzWeD9IDk8chZF3wD28T9Wzh13pha/KdHfV4E8UQ==","signatures":[{"sig":"MEUCIHaKDvKMt/5LszPhhDdkCzJLrZ6/cvMR/+GoHgWpPl9fAiEA20T5PA9OwFFY6lDzBiNNk8I7Mozmzap9ZpRe7ymnUPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1014901},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"a6f0bb0535d2a39376c6e68fbc518f2f0d100ca1","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.4.0_1769627597232_0.8953646272080285","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.5.0","keywords":["circle","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.5.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"d70539017fbad6402bb0e044169122ab2d6e3d14","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.5.0.tgz","fileCount":9,"integrity":"sha512-R/TIV9QsX01cBmM8fu5+ZZiU8/gJxFrXUZskwzWJw6jgVlt/quRvWNoY7j1LOOpvJikjy04T9i31x9454uzUiQ==","signatures":[{"sig":"MEUCIQDHBwbZdc6dsY+f0ZqpwuF42doTGjU/cUdWWrEvK3Uc/AIgKuX6xFmlouW8HMPLrvE6s7wkb+2oct8CN9HhxLQN/6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1069005},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"808cdc946335166603f6b3f8686a4516f6eabc23","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.5.0_1771612241821_0.16244478385617533","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.6.0","keywords":["circle","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.6.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"22db8a89bbe9d5178b5b77b24fdf26278b87bb33","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.6.0.tgz","fileCount":9,"integrity":"sha512-qUZXaAPrzKEQnsxkO0UxkHW/MHAu0cK5N8DuS1Sr1ukTAEr6XfxIsiX1alEffnHEhY8/pOBUeSJRIhsmwKxtbw==","signatures":[{"sig":"MEUCIQClPclI4HWCFye2LzGldaUliFk6pilPs5+P8nW+fMOUMAIgWqiQKYH4axbx+iPRQA6/qmTQJ0zEP3McwGmL2hQl3+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1263160},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"e92a6d718de13a37fb56100cd3cf875e18aba81c","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.6.0_1773791989633_0.00573490951958644","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@circle-fin/adapter-ethers-v6","version":"1.6.1","keywords":["circle","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.6.1","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"2df1e8f2616372abafab8ff88707ee00560a5667","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.6.1.tgz","fileCount":9,"integrity":"sha512-JXfreyVC/pUHc65iAt95zKX/vDfvqGLrPQP6D0u/uKLg0xCvp+lTIZR8+TD59eHBx+sxT3F8Xlnb+OstcSfJOQ==","signatures":[{"sig":"MEUCICF/PlRNPhxnt32Eg5kHjcWW+zvGbwv9TBwhk/rch92TAiEA/bm7vrjWcretVUFTRJz+YYXzq+TDdpN2hlJOmWwYrKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1274927},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"da2a241ccb420f4c40b52f5f2c4ccaa3a61efad6","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.4","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.6.1_1774042705930_0.1290831338734848","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@circle-fin/adapter-ethers-v6","version":"1.6.2","keywords":["circle","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.6.2","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"d0d327fec3b600103cb69fd5447230c2bb599f53","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.6.2.tgz","fileCount":9,"integrity":"sha512-iUrcmOUVnvCjcK09V+/o199jVl/bht0Kp8vxbxdixcdK5ROHT0r7Kx6erq1izq5zUEn6rPvB1qmTjuAY05cLVQ==","signatures":[{"sig":"MEUCIQDlR6upuyjLZlMqjaHjcwlRvCdve0vWHuoguUA2BlYD9QIgfmzbNEhWbi6+5a4N0JOUUrUXuT4zaK0E4ExXT/rqreM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1276704},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"71eb251b09def4446f2e98842e551cfec2a3558f","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.7","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.6.2_1774883562036_0.9539741331826666","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"@circle-fin/adapter-ethers-v6","version":"1.6.3","keywords":["circle","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.6.3","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"955a71c6824de3609ef0b9383f6b0bf89a4ee884","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.6.3.tgz","fileCount":9,"integrity":"sha512-DzuDAqEhFSAAwo+0yQ6Xy7+pbdGPlI78K4SP0N1OCs/9tAlnRDapmo1SDsowdaCe/KKzKIxQldJDo6eZNrCp7A==","signatures":[{"sig":"MEQCIEsVmnz8RVvjss7Jw0o2Nm0zZ7wxXf+twTDynypWuT5eAiAuvunYFmYJ8YTUCmdfk9mIT+kh8XuDpOvT73rUG5CQOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1276782},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"1360ab07a58d9150c35683182060dc417bcae6df","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.7","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.6.3_1775246741724_0.9975355662514045","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"@circle-fin/adapter-ethers-v6","version":"1.6.4","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.6.4","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"573f67f40a6fd0984b7cf1ade752fe2ca502d977","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.6.4.tgz","fileCount":9,"integrity":"sha512-vm8tskH8lVXZiu4y930/DsgigtAXKNmUPWPwARGLy9ACbE24GqxZwmBGE/8MwCY2RjXzYTCKndTwFbm7Ns9BBA==","signatures":[{"sig":"MEQCIFaj7YK/Jd4xXGBOupxsdkTVPawYEHQaHlMgXYsGYEj+AiAfKy5tlleyoArNXXC0aLtog0zb9WimQSo3d4UlSMi4Yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1285069},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"fb7023b2d68e64780339930381ed2330be282f71","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.7","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.6.4_1775771526578_0.5764252131694061","host":"s3://npm-registry-packages-npm-production"}},"1.6.5":{"name":"@circle-fin/adapter-ethers-v6","version":"1.6.5","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.6.5","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"214ed1a762b4051ae25a4966d5865abcdd962206","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.6.5.tgz","fileCount":9,"integrity":"sha512-KzTkVbZa2AQ3AMIYYzL/jqvNXhuFyCfCcqaAXMXBX0wykM8Cytku/QJjO6I8mZlBRei4NjgiwxYUt3HIL1CdEA==","signatures":[{"sig":"MEQCIGRHtaNFuOo7hx3bKyTEmJ1l6xeqifROXeEdUVLwR9+UAiBtknxeI6G0NcHx8yiE0p4gP1puWOCB3fgjRqYXeoPZMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1533643},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"84160dc4b00881c26e72b98d60d5112d8b8d1f5f","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.7","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.6.5_1776877850731_0.8628175249623271","host":"s3://npm-registry-packages-npm-production"}},"1.6.6":{"name":"@circle-fin/adapter-ethers-v6","version":"1.6.6","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.6.6","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"ca5516ee515e0cbd353cbd94ab44b37f76d8552f","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.6.6.tgz","fileCount":9,"integrity":"sha512-5aYQIJ8RgZoCZXkrgcChUmanRlffWOZpF8lmvNKS6jPVCpdGwaMWzGuejKke4whY6DG4YFV8uCQkS25nFNbJGg==","signatures":[{"sig":"MEUCIGefRf2aDarJ2gFDJnUl1HGw+1UaGrgAXF4c3BoKxidgAiEAncXqvX8vKcjFm2mNXTjGBzVk9FLMYsVD20M5+viGyGo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1541487},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"1618ab7a978fadeb57af7a87a42d535b4b6fd82f","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.7","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.6.6_1777964468105_0.9500919480014016","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.7.0","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.7.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"jasperkim_crcl","email":"jasper.kim@circle.com"},{"name":"haommmmmm","email":"hao.min@circle.com"},{"name":"han.chen.circle","email":"han.chen@circle.com"},{"name":"bagarwal_crcl","email":"bhushit.agarwal@circle.com"},{"name":"charleszzz_circle","email":"charles.zhang@circle.com"},{"name":"yingyingzhengcrcl","email":"yingying.zheng+1@circle.com"},{"name":"ariayhu","email":"yue.hu@circle.com"},{"name":"elvin-circle","email":"elvin.du@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"dc764b76d291e5f1ddd7bb6aeb35e258c8d4cca3","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.7.0.tgz","fileCount":9,"integrity":"sha512-62DoNuYOlhJbSfikF9jXSqfwQW9Y5HROi3cWJ71ESUtzjU4pRdvL9o31tP2mqGxysyEgwWnChVkzOr1p4WvWaQ==","signatures":[{"sig":"MEYCIQCtkynBCwhfFE34PXIAOpwwJHJjZonnEaLtAvuBVjgwhAIhAOhjNeX/UfO36vKPpdMIRkyfGyPm+C4VTQiHo/75Hw5J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1548255},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"4c80435b3db3e481c813002f5da48736e8763842","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.7","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.7.0_1778289322198_0.34844481242780856","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.8.0","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.8.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"jasperkim_crcl","email":"jasper.kim@circle.com"},{"name":"haommmmmm","email":"hao.min@circle.com"},{"name":"han.chen.circle","email":"han.chen@circle.com"},{"name":"bagarwal_crcl","email":"bhushit.agarwal@circle.com"},{"name":"litao110102","email":"li.tao+2@circle.com"},{"name":"charleszzz_circle","email":"charles.zhang@circle.com"},{"name":"yingyingzhengcrcl","email":"yingying.zheng+1@circle.com"},{"name":"ariayhu","email":"yue.hu@circle.com"},{"name":"elvin-circle","email":"elvin.du@circle.com"},{"name":"mayuroza","email":"mayur.oza@circle.com"},{"name":"harshalbhangale-crcl","email":"harshal.bhangale@circle.com"},{"name":"bipul-sinha_crcl","email":"bipul.sinha@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"0309f0ddd9180449b4e43c13ee2c77ae5b23a35a","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.8.0.tgz","fileCount":9,"integrity":"sha512-v8KOJN+cjLsUaTmWzb1Vx3wu9wAcftbLruZiP6Mp3uWx/gqqz8FlAX4VrJV7HgbTQam1dr2nf7iX5mpS2kwh1w==","signatures":[{"sig":"MEUCIHjRmP415EAlUAbF6bzrmdC4M1U7sdS96uYa8Nix6x0RAiEA80AObRuYwZpH4AWOUGJ4bWaNG8IU5ZhAssao6JfpcWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1552404},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"d745ff14913dffb58d4349485768042779986043","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.7","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.8.0_1778722689578_0.9172725100729926","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@circle-fin/adapter-ethers-v6","version":"1.8.1","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.8.1","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"30a5966163d12b5db294651b08fe45e59a4c4e0e","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.8.1.tgz","fileCount":9,"integrity":"sha512-hXFOHbQAEbsLKMEAU7TGimhtN/v1VBtnPvzkHyjUVhZOaieV1P5qLt8w20Ifg40lPDHB6yCwDL5516fQ3nyQMw==","signatures":[{"sig":"MEUCIDvPuZLoEqBcVWw9fXle6HW2WUu3uoqEcUmc62k1G2cEAiEAv9Czyv8L/9z7t4cxFQDTo41jJDZRbGWXl3HbH54kBPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1569851},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"77d189653ad962bf6825e459fa9f2a2a9fddfa78","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.8.1_1779147290610_0.1826786242052454","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"@circle-fin/adapter-ethers-v6","version":"1.8.2","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.8.2","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"82123cb4a6b8b7a712981b835ad657e5d6373498","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.8.2.tgz","fileCount":9,"integrity":"sha512-1YgmWlBGxFSdpZjVaiFegh/sOWoUYyA2VomlZdegadmFZjVazScXibNQCVN/d962l5acjkNz7Z8DO8kQQLkTqg==","signatures":[{"sig":"MEQCIDzzoYxI8Cl0owEaR5I65Gd33FQ2L3Mg1YFgmcevI5EzAiA/YOdnAdYKDSDXT8a9P0HgYoc1nyMDm3JF8YQRk7R6iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1569936},"main":"./index.cjs","types":"./index.d.ts","module":"./index.mjs","exports":{".":{"types":"./index.d.ts","import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./package.json":"./package.json"},"gitHead":"bf5ce2b0de083a0f78b4474b8fd466e80c9f9149","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"3.25.67","bs58":"6.0.0","abitype":"^1.1.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public","directory":"../../dist/adapters/ethers.v6"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.8.2_1780010114170_0.5263641512323651","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.9.0","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.9.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"31cb1aba6071b45d9982a6e10e966b7c8454c264","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.9.0.tgz","fileCount":18,"integrity":"sha512-j/p/4K17+z/iIayJgQBBAnmmwKT6oYeFnMvI8YsMHYT/t7mTf9QrDAtNrodUJWqdB1T1JT9Wn/0eYJxuwGdOeA==","signatures":[{"sig":"MEUCIGYKaUoPdey6HfPsWy3BteIb0sm4fJ0mn4U5TNTUHFDcAiEA61HXXumxygUuUTm41TzAHC0rOhAdBIaG6eJczclZX/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4668736},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"1240b913d570266a456f694a4c404f898e3971ac","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.9.0_1782258217711_0.7602858326049542","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@circle-fin/adapter-ethers-v6","version":"1.9.1","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.9.1","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"284d0e442c4f8d3460943cc77b5ddb44f38d8185","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.9.1.tgz","fileCount":18,"integrity":"sha512-oZojZjVihKLwN2B+mzaaQwbEkiRYMsyh63CTddsE4eiRjx/5t7ljGQexw5Qm1snllfawkjKnHIg/oQLolzToiw==","signatures":[{"sig":"MEYCIQDnxvzdVvBzqv3JkjOuSgneNsDrVcug8Kr0voHGV7v13wIhAIBhJLMzAWnxji6j3zxaop+AlzZrkEB2VdxHeXa69zvD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4670881},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"1b8bfa2935cce6a2d20990f42432d3887f77139d","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.9.1_1782328555259_0.18575398056336834","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"@circle-fin/adapter-ethers-v6","version":"1.9.2","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.9.2","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"6ec5234ce2ee7bef6b6844a7981675d0fbc00904","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.9.2.tgz","fileCount":18,"integrity":"sha512-62EwdERRLOnSBL8ReYkUCRNmBM+al3V2QNImHH89x24CCYBQ5ww39+fWZBhwqp8puU5Un1C9DMrJcHaXxaS0Qg==","signatures":[{"sig":"MEYCIQCzhULrqtwWAf2YoBMJsFLtUSKVC31ystsJVGtn32rinQIhAJ1/LEmORtltqOLvypiMA0aGxUojbRVPKZASsk1Tn7kG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4682977},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"be9a2da6f763f149630c6c13c5c1f55ff41e088a","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.9.2_1783370813169_0.8052574871785299","host":"s3://npm-registry-packages-npm-production"}},"1.9.3":{"name":"@circle-fin/adapter-ethers-v6","version":"1.9.3","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.9.3","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"0d125d6b01af03541236a18242834b4e25c59237","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.9.3.tgz","fileCount":18,"integrity":"sha512-VWnFyrxQdL+KovLSjkVfN636KbgqEZ/ESnePlFWJv2DInPuS0PgsUxkGMNuACnD7Lz33EGw03ATs9pDeeDLVAA==","signatures":[{"sig":"MEUCIETSXnUnW1XrijE4HJa+Ly9MfDZJ0pGsg4WoxmPzsBiEAiEAkBs6Y8SL8N2YCS1dwJnMZPt277bQtMKDDMQvVxhsLtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4751588},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"903f729eda4c4daaa041a973d74e885cd5f28d30","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.9.3_1784139163347_0.8200589869028672","host":"s3://npm-registry-packages-npm-production"}},"1.9.4":{"name":"@circle-fin/adapter-ethers-v6","version":"1.9.4","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.9.4","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"e8156014c769e1af640e3412a21c43a4b6e125b6","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.9.4.tgz","fileCount":18,"integrity":"sha512-Wqj+6UsmToGCCLjwywv5Qqyg6OhZTNWN0rms/pYe1QvPJlUEo+OH1JAtGvXfNN+4NZonQWOKEohaQxSRwcgfvw==","signatures":[{"sig":"MEQCIFeS9L499UYUgw1RKFVPoZ0IONn/ghq2jTtVMhfuc3bdAiA0oYZkdBF+Bqj0K/g+YK3RszB8rWJSznyyVrIi/y0ZEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4751673},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"191745f9068376056e144e612e74cdd68747fb32","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.9.4_1785274087546_0.9667914362640504","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.10.0","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.10.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"9af2faa964e97c8188b16e678726c1abbc299f63","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.10.0.tgz","fileCount":18,"integrity":"sha512-2TV3OeRBwgNxyMWnxK8TkeS2xBs3lwXyJcmMcAH78SJMz8Kl65DRmv6+YXosBT8FhvpgTyX0vy6dz5gmUwzCNA==","signatures":[{"sig":"MEYCIQDcsAoz+RFBczOoqNszVM7nOObmPbCISqk4CazQhIQQFwIhAIBW+ag3TtjcCUvuaHCwbZpuU4q2amcVrtOEwhKgbP5k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4861949},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"789a49161025a99df1950726437b252becea64bc","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.10.0_1786132759474_0.23606467589625213","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@circle-fin/adapter-ethers-v6","version":"1.10.1","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.10.1","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"e5a3908214104e26c48ea2a00fff97e1ffdd60ef","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.10.1.tgz","fileCount":18,"integrity":"sha512-GZKIhj1EN/SqjGvFxOKFE8v08WCdNBzAgfxBg/btrKJ2qB/5/RMMXa3+Ytc/GVjvLgM/D2fflLb2n+Xj+KXQHg==","signatures":[{"sig":"MEQCIBo2FFBQufBxJxuqjd8WL2ggAFfMwphCo6g6LPAZY2fdAiALcqLAwNTE74dVhu9BWkI7z/mSOur+F8LJ0JOY6XRAlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5281896},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"5a907d6171ecb2b54a4790b06a35eb9df94adbb6","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.10.1_1786655112479_0.4845689527719983","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@circle-fin/adapter-ethers-v6","version":"1.11.0","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.11.0","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"02b4bc8b08faae5882c781bddedac23503cb24bf","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.11.0.tgz","fileCount":18,"integrity":"sha512-I3j7Ez329nKGjfJfQlECocKqdtP6K89g8keD28SuJ5fipWOUmJTHynCdiNjKty4PmCWn8qdVynbO8CqJ5rAE+A==","signatures":[{"sig":"MEYCIQDOK1BW9SMffCyZpkkqOpeqXBCkYNfiU6G4kCFnCtB2igIhAOeLx2DbH2lgS541asey9ycnUxbESm8D2Bkg7T/inM/w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5374091},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"bd2baaedcf8710331a7641968a8382ecd33ef242","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.11.0_1787268341963_0.6211902440333996","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@circle-fin/adapter-ethers-v6","version":"1.11.1","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.11.1","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"8612350674f4e04b1a11f2b34390fe64b2152b80","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.11.1.tgz","fileCount":18,"integrity":"sha512-5p+7QyW7QIaiXymrWAlu09fQzeho4Hu0+M0xA/ydn+PyfKo21sNR0EePkjgrKpcdB3FAFx/iQb/XjTt0oXVi7w==","signatures":[{"sig":"MEUCIQCKM+gsvEt3kRBX7cwUi8it2Rm1y6n0P1X1bpPvqTK5uAIgS9N8tn7GWvcv/3IQbLn7uPNuxS0+vcRefTe854oADOk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5399887},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"d9855bd5f7195ee1b91920206108a9995ff6fa80","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.11.1_1787932906956_0.5994396362505334","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"@circle-fin/adapter-ethers-v6","version":"1.11.2","keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_id":"@circle-fin/adapter-ethers-v6@1.11.2","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"dist":{"shasum":"af2104fdfcd4072f97c587b95d56cfd2d71c7b4c","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.11.2.tgz","fileCount":18,"integrity":"sha512-9GFnpXmEkpN8xqQQEIFxJLrwDCatdpNJ05GTR54rpvgddyX4Ksgq0krjTUukqX/9ERG5L7s64+oxlWmVzGNi3A==","signatures":[{"sig":"MEUCIGTBWz4GQ+Dw/j0GUdvp6xF093kc8swe5yH01niqG6q7AiEA4tGb11aHNJCZhNvmmtNtUl76RyQ7ZaRDyJwg1tvW1q0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5428321},"main":"./index.cjs","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"c2a7a00c58dbca7a65867370c7626c5394e59e5b","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"tmp":"tmp/adapter-ethers-v6_1.11.2_1788393439069_0.48341269997749725","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"_id":"@circle-fin/adapter-ethers-v6@1.12.0","dist":{"shasum":"d1b28087a965d91aebd0ce10723ed81e0dfd9382","tarball":"https://registry.npmjs.org/@circle-fin/adapter-ethers-v6/-/adapter-ethers-v6-1.12.0.tgz","fileCount":18,"integrity":"sha512-nbajczzO6C9JO/Mm1pHmCkf72BlU0S5JsAr3vH0GDgmd203CtH5l323qno2TuUq0kKXqcRpO+Z2nFiYTyJtWFQ==","signatures":[{"sig":"MEQCIAtXkMabG3cVd7oyHiarl0mBxSCDARiIcmFlnrU8XWdNAiAHAzNyTcHBI3Yr/aiQWsXdvayEaVH0jOmvrWpe+L0QxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEB6512HcJyIrsS6c+rAu355jy/cjDxqsRg1NRLs9nGOAiAeFlR3Ttj1osewfyit0CJBfkOdaZa3jhsm7BuiiJA27w=="}],"unpackedSize":5539064},"main":"./index.cjs","name":"@circle-fin/adapter-ethers-v6","type":"module","types":"./index.d.cts","module":"./index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":{"import":"./index.d.mts","require":"./index.d.cts"},"import":"./index.mjs","default":"./index.cjs","require":"./index.cjs"},"./next":{"types":{"import":"./next.d.mts","require":"./next.d.cts"},"import":"./next.mjs","default":"./next.cjs","require":"./next.cjs"},"./package.json":"./package.json"},"gitHead":"5aa7ba5ea62678adf92458d83ef5afe1c61f4a41","version":"1.12.0","_npmUser":{"name":"circle-npm-ci","email":"devops@circle.com"},"keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"_npmVersion":"10.9.8","description":"EVM blockchain adapter powered by Ethers v6","directories":{},"maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"3.25.67","bs58":"6.0.0","pino":"10.1.0","abitype":"^1.1.0","@noble/hashes":"^1.8.0","@solana/web3.js":"^1.98.4","@ethersproject/abi":"^5.8.0","@ethersproject/bytes":"^5.8.0","@ethersproject/units":"^5.8.0","@ethersproject/address":"^5.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"ethers":"^6.11.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapter-ethers-v6_1.12.0_1789519138070_0.8004281090463476"}}},"time":{"created":"2025-08-26T13:05:30.534Z","modified":"2026-09-16T00:38:58.459Z","0.0.2-alpha.6":"2025-08-26T13:05:30.816Z","0.0.2-alpha.7":"2025-10-08T14:38:36.830Z","1.0.0":"2025-10-14T15:37:10.683Z","1.0.1":"2025-10-28T19:39:48.759Z","1.1.0":"2025-11-05T17:30:39.966Z","1.1.1":"2025-11-17T19:59:02.634Z","1.2.0":"2025-12-19T11:22:49.086Z","1.3.0":"2026-01-22T16:43:20.854Z","1.4.0":"2026-01-28T19:13:17.411Z","1.5.0":"2026-02-20T18:30:42.083Z","1.6.0":"2026-03-17T23:59:49.862Z","1.6.1":"2026-03-20T21:38:26.212Z","1.6.2":"2026-03-30T15:12:42.178Z","1.6.3":"2026-04-03T20:05:41.980Z","1.6.4":"2026-04-09T21:52:06.737Z","1.6.5":"2026-04-22T17:10:50.993Z","1.6.6":"2026-05-05T07:01:08.318Z","1.7.0":"2026-05-09T01:15:22.430Z","1.8.0":"2026-05-14T01:38:09.795Z","1.8.1":"2026-05-18T23:34:50.808Z","1.8.2":"2026-05-28T23:15:14.337Z","1.9.0":"2026-06-23T23:43:37.877Z","1.9.1":"2026-06-24T19:15:55.511Z","1.9.2":"2026-07-06T20:46:53.362Z","1.9.3":"2026-07-15T18:12:43.609Z","1.9.4":"2026-07-28T21:28:07.736Z","1.10.0":"2026-08-07T19:59:19.657Z","1.10.1":"2026-08-13T21:05:12.684Z","1.11.0":"2026-08-20T23:25:42.211Z","1.11.1":"2026-08-28T16:01:47.166Z","1.11.2":"2026-09-02T23:57:19.319Z","1.12.0":"2026-09-16T00:38:58.260Z"},"keywords":["circle","circle-fin","cctp","usdc","stablecoin","adapter","sdk","typescript","evm","ethereum","ethers","cross-chain","bridge","bridge-kit","app-kit","swap-kit"],"description":"EVM blockchain adapter powered by Ethers v6","maintainers":[{"name":"tomleicircle","email":"mengda.lei@circle.com"},{"name":"igaskin-circle","email":"isaac.gaskin@circle.com"},{"name":"circle-npm-ci","email":"devops@circle.com"}],"readme":"# Ethers v6 Adapter\n\n<div align=\"center\">\n\n[![npm version](https://badge.fury.io/js/@circle-fin%2Fadapter-ethers-v6.svg)](https://badge.fury.io/js/@circle-fin%2Fadapter-ethers-v6)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)](https://www.typescriptlang.org/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n**Type-safe EVM blockchain adapter powered by Ethers v6**\n\n_Seamlessly interact with 16+ EVM networks using a single, strongly-typed interface_\n\n</div>\n\n## Table of Contents\n\n- [Ethers v6 Adapter](#ethers-v6-adapter)\n  - [Table of Contents](#table-of-contents)\n  - [Overview](#overview)\n    - [Why Ethers v6 Adapter?](#why-ethers-v6-adapter)\n    - [When to Use This Adapter](#when-to-use-this-adapter)\n      - [For Kit Users](#for-kit-users)\n      - [For Kit Provider Developers](#for-kit-provider-developers)\n  - [Installation](#installation)\n  - [Peer Dependencies](#peer-dependencies)\n    - [Troubleshooting Version Conflicts](#troubleshooting-version-conflicts)\n  - [Quick Start](#quick-start)\n    - [Zero-Config Setup (Recommended)](#zero-config-setup-recommended)\n    - [Production Setup](#production-setup)\n    - [Browser Wallet Setup](#browser-wallet-setup)\n  - [Next-Generation API (`/next`)](#next-generation-api-next)\n    - [Getting Started with `/next`](#getting-started-with-next)\n    - [Why `/next`?](#why-next)\n    - [Current limitations of `/next`](#current-limitations-of-next)\n    - [Prepared Transactions: Estimate, Simulate, Execute](#prepared-transactions-estimate-simulate-execute)\n    - [Logging](#logging)\n    - [Metrics](#metrics)\n    - [Token Registry](#token-registry)\n    - [Transaction Tuning](#transaction-tuning)\n    - [Migration Path](#migration-path)\n  - [OperationContext Pattern](#operationcontext-pattern)\n    - [Why OperationContext?](#why-operationcontext)\n    - [Basic Usage](#basic-usage)\n    - [Multi-Chain Operations](#multi-chain-operations)\n  - [Address Context Guide](#address-context-guide)\n    - [User-Controlled (Recommended)](#user-controlled-recommended)\n    - [Developer-Controlled (Advanced)](#developer-controlled-advanced)\n  - [Usage Examples](#usage-examples)\n    - [Contract Interactions](#contract-interactions)\n    - [EIP-712 Signatures](#eip-712-signatures)\n    - [Cross-Chain Bridging](#cross-chain-bridging)\n  - [API Reference](#api-reference)\n    - [Factory Functions](#factory-functions)\n      - [`createEthersAdapterFromPrivateKey(params)`](#createethersadapterfromprivatekeyparams)\n      - [`createEthersAdapterFromProvider(params)`](#createethersadapterfromproviderparams)\n    - [Core Methods](#core-methods)\n      - [`prepare(params, ctx)`](#prepareparams-ctx)\n      - [`signTypedData(typedData, ctx)`](#signtypeddatatypeddata-ctx)\n      - [`waitForTransaction(txHash, config?)`](#waitfortransactiontxhash-config)\n      - [`getAddress(chain)`](#getaddresschain)\n    - [Token Operations](#token-operations)\n  - [Supported Chains \\& Routes](#supported-chains--routes)\n  - [Development](#development)\n  - [License](#license)\n\n## Overview\n\nThe Ethers v6 Adapter is a strongly-typed implementation of the `Adapter` interface for **EVM-compatible blockchains**. Built on top of the popular [Ethers v6](https://docs.ethers.org/v6/) library, it provides type-safe blockchain interactions through a unified interface that's designed to work seamlessly with the [Bridge Kit](https://www.npmjs.com/package/@circle-fin/bridge-kit) for cross-chain USDC transfers between Solana and EVM networks, as well as any future kits for additional stablecoin operations. It can be used by any Kit built using the App Kits architecture and/or any providers plugged into those kits.\n\n### Why Ethers v6 Adapter?\n\n- **🔧 Bring your own setup**: Use your existing Ethers `JsonRpcProvider` and `Wallet` instances\n- **⚡ EVM-compatible**: Works with Ethereum, Base, Arbitrum, and all EVM chains\n- **🔒 Type-safe**: Built with TypeScript strict mode for complete type safety\n- **🎯 Simple API**: Clean abstraction over complex blockchain operations\n- **🔄 Transaction lifecycle** - Complete prepare/estimate/execute workflow\n- **🌉 Cross-chain ready** - Seamlessly bridge USDC between EVM chains and Solana\n\n### When to Use This Adapter\n\n#### For Kit Users\n\nIf you're using the Bridge Kit or other App Kits for cross-chain operations, you only need to instantiate one adapter and pass it to the kit. The same adapter works across all supported chains.\n\n```typescript\n// Single adapter instance for multi-chain operations\n// Note: Private keys can be provided with or without '0x' prefix\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`, // Both '0x...' and '...' work\n})\n\n// Both formats are automatically normalized:\nconst adapter1 = createEthersAdapterFromPrivateKey({\n  privateKey: '0x1234...', // With prefix ✅\n})\n\nconst adapter2 = createEthersAdapterFromPrivateKey({\n  privateKey: '1234...', // Without prefix ✅ (automatically normalized)\n})\n```\n\n#### For Kit Provider Developers\n\nIf you're building a provider (e.g., a custom `BridgingProvider` implementation), you'll use the adapter's abstracted methods to interact with different chains. The OperationContext pattern makes multi-chain operations seamless.\n\n## Installation\n\n```bash\nnpm install @circle-fin/adapter-ethers-v6 ethers\n# or\nyarn add @circle-fin/adapter-ethers-v6 ethers\n```\n\n## Peer Dependencies\n\nThis adapter requires `ethers` (v6) as a peer dependency. Install it alongside the adapter:\n\n```bash\nnpm install @circle-fin/adapter-ethers-v6 ethers\n# or\nyarn add @circle-fin/adapter-ethers-v6 ethers\n```\n\n**Supported Versions:** `^6.11.0` (6.11.x through 6.x.x, excluding 7.x.x)\n\n### Troubleshooting Version Conflicts\n\nIf you encounter peer dependency warnings:\n\n- Check your `ethers` version: `npm ls ethers`\n- Ensure ethers v6 is between 6.11.0 and 7.0.0 (exclusive)\n- Use `npm install ethers@^6.11.0` to install a compatible version\n- Note: This adapter is **not** compatible with ethers v5 or v7\n\n## Quick Start\n\n### Zero-Config Setup (Recommended)\n\nThe simplest way to get started with lazy initialization. Default configuration handles adapter setup automatically.\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6'\n\n// Minimal configuration with lazy initialization\n// Note: Private keys work with or without '0x' prefix\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`, // Both '0x...' and '...' work\n  // Defaults applied:\n  // - addressContext: 'user-controlled'\n  // - supportedChains: all EVM chains (~34 networks)\n  // - Lazy initialization: wallet connects to chain on first operation\n})\n\n// Chain specified per operation via OperationContext\nconst prepared = await adapter.prepare(\n  {\n    address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC on Ethereum\n    abi: usdcAbi,\n    functionName: 'transfer',\n    args: ['0xrecipient', '1000000'],\n  },\n  { chain: 'Ethereum' }, // Chain specified in context\n)\n\nconst txHash = await prepared.execute()\n```\n\n### Production Setup\n\nFor production use, provide custom RPC endpoints for better reliability and performance:\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6'\nimport { JsonRpcProvider } from 'ethers'\nimport { Ethereum, Base, Polygon } from '@circle-fin/bridge-kit/chains'\n\n// Production-ready with custom RPC endpoints and lazy initialization\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`,\n  // Custom RPC provider with explicit chain mapping\n  getProvider: ({ chain }) => {\n    // Map chain names to RPC endpoints\n    // Customize this mapping based on your RPC provider\n    const rpcEndpoints: Record<string, string> = {\n      Ethereum: `https://eth-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,\n      Base: `https://base-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,\n      Polygon: `https://polygon-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_KEY}`,\n    }\n\n    const endpoint = rpcEndpoints[chain.name]\n    if (!endpoint) {\n      throw new Error(`RPC endpoint not configured for chain: ${chain.name}`)\n    }\n\n    return new JsonRpcProvider(endpoint, chain.chainId)\n  },\n  // Optionally restrict to specific chains\n  capabilities: {\n    supportedChains: [Ethereum, Base, Polygon],\n  },\n})\n```\n\n> **⚠️ Production Note**: Default factory methods use public RPC endpoints which may have rate limits. For production, use dedicated providers like Alchemy, Infura, or QuickNode.\n\n### Browser Wallet Setup\n\nFor browser environments with MetaMask or WalletConnect:\n\n```typescript\nimport { createEthersAdapterFromProvider } from '@circle-fin/adapter-ethers-v6'\n\n// Minimal browser wallet configuration\nconst adapter = await createEthersAdapterFromProvider({\n  provider: window.ethereum,\n  // Default capabilities applied automatically\n})\n\n// User will be prompted to connect wallet\n// Address is automatically resolved from connected wallet\nconst prepared = await adapter.prepare(\n  {\n    address: '0xcontract',\n    abi: contractAbi,\n    functionName: 'approve',\n    args: ['0xspender', '1000000'],\n  },\n  { chain: 'Polygon' },\n)\n```\n\n## Next-Generation API (`/next`)\n\n> **Preview** — The `/next` entrypoint is the upcoming default adapter architecture. It is at parity with the current entrypoint for the supported bridge flows and fully compatible with all existing kits (Bridge Kit, etc.). In the next major release, `/next` will become the default import and the current entrypoint will be retired. See [Current limitations of `/next`](#current-limitations-of-next) before adopting it.\n\n### Getting Started with `/next`\n\nSwitch to the new architecture by changing a single import path. Everything else stays the same:\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6/next'\n\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as string,\n})\n\n// Pass it to the Bridge Kit exactly as before — no changes needed downstream\n```\n\n> **Tip:** The `/next` factories accept `privateKey` as a plain `string` — the `0x` prefix is optional and normalized automatically. No template literal type assertions needed.\n\nBrowser wallets work identically:\n\n```typescript\nimport { createEthersAdapterFromProvider } from '@circle-fin/adapter-ethers-v6/next'\nimport { Ethereum, Base, Polygon } from '@circle-fin/bridge-kit/chains'\n\nconst adapter = createEthersAdapterFromProvider({\n  provider: window.ethereum,\n  capabilities: {\n    addressContext: 'user-controlled',\n    supportedChains: [Ethereum, Base, Polygon],\n  },\n})\n```\n\n`createEthersAdapterFromProvider` also accepts an ethers `Provider`\ndirectly — useful for server-side workflows where you already\nmaintain a `JsonRpcProvider` and want the adapter to reuse it instead\nof wrapping the input in a per-chain `BrowserProvider`:\n\n```typescript\nimport { createEthersAdapterFromProvider } from '@circle-fin/adapter-ethers-v6/next'\nimport { JsonRpcProvider } from 'ethers'\n\nconst provider = new JsonRpcProvider(process.env.RPC_URL)\n\nconst adapter = createEthersAdapterFromProvider({ provider })\n```\n\nThe factory detects the input shape at runtime: an EIP-1193 provider\n(`{ request }`) is wrapped per chain, while an ethers `Provider`\n(`{ getNetwork }`) is used directly and returns its own `getSigner()`\nresult.\n\n### Why `/next`?\n\n|                        | Current entrypoint           | `/next` entrypoint                                                                                                                     |\n| ---------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| **Bundle size**        | Entire adapter is included   | Per-primitive imports unlock tree-shaking; the default factory still pulls the compat shim — see [bundle-size note](#bundle-size-note) |\n| **Prepare result**     | `estimate()` and `execute()` | `estimate()`, `simulate()`, and `execute(overrides?)`                                                                                  |\n| **Fee model**          | `{ gas, gasPrice, fee }`     | `{ fee, units, unitPrice }` — consistent across all ecosystems                                                                         |\n| **Observability**      | Not available                | Built-in logging, metrics, and event instrumentation                                                                                   |\n| **Retry & resilience** | Not available                | Configurable retry with exponential backoff for transient failures                                                                     |\n| **Token resolution**   | Hard-coded addresses         | Pluggable token registry — resolve any token by symbol across chains                                                                   |\n| **Transaction tuning** | Fixed gas defaults           | Configurable fee buffer, priority-fee floor, and confirmation timeout                                                                  |\n\n### Bundle-size note\n\nThe `/next` entrypoint's clean architecture is designed to be\ntree-shakable on a per-primitive basis: importing `createPrepare`\nwithout `createBatchExecute` should only ship the prepare path. In\nthe current preview release the default `createAdapter` factory still\npulls in the legacy compat shim (`withLegacyCompat` →\n`@core/adapter-compat`'s action registry) so that consumers can pass\nthe resulting adapter to existing kits and providers without changes.\nThat shim is what makes the default `/next` bundle measure ~11%\nlarger than the legacy entrypoint in our internal benchmarks.\n\nIf bundle size is critical to you, compose primitives directly via\n`assembleAdapter` from `@core/adapter-base` and skip\n`withLegacyCompat`. A future minor release will split the compat\nshim behind a separate entrypoint so the default factory ships the\nnew API only.\n\n### Current limitations of `/next`\n\nThe `/next` Ethers adapter is at parity with the current entrypoint for\nthe supported bridge flows, but a few capabilities are still in\nprogress. They are tracked in the project issue tracker for follow-up\nreleases:\n\n- **No atomic batched approve+burn.** EIP-5792 `wallet_sendCalls`\n  batching is only available on the Viem `/next` adapter; the Ethers\n  adapter (and the CCTP `/next` bridge flow when driven by it) submits\n  approve and burn as two separate transactions.\n- **The Circle Wallets adapter has not been migrated to `/next`.** Only\n  the EVM (viem/ethers) and Solana adapters expose a `/next` entrypoint;\n  Circle Wallets remains on the current entrypoint.\n- **Abort semantics stop the local wait only.** Passing an aborted (or\n  abortable) `signal` cancels `waitForTransaction` and prevents an\n  unsent `execute` from broadcasting, but **once a transaction has been\n  broadcast, aborting does not cancel it on-chain** — the transaction\n  continues and should be reconciled via its hash.\n\n### Prepared Transactions: Estimate, Simulate, Execute\n\nWhen you prepare a transaction through the `/next` adapter, you get back a richer object with three lifecycle methods:\n\n```typescript\nconst prepared = await adapter.prepare(\n  {\n    address: '0xContractAddress',\n    abi: contractAbi,\n    functionName: 'transfer',\n    args: ['0xRecipient', 1_000_000n],\n  },\n  { chain: 'Base' },\n)\n\n// 1. Estimate gas and fees before committing\nconst { fee, units, unitPrice } = await prepared.estimate()\n\n// 2. Simulate the transaction to catch reverts without spending gas\nconst simulation = await prepared.simulate()\n\n// 3. Execute when ready (with optional gas overrides)\nconst result = await prepared.execute()\n\n// `result` is a `{ txId, wait }` envelope:\n// - `txId` is the transaction hash on EVM (the field is named `txId`\n//   rather than `hash` so the same shape works across ecosystems).\n// - `wait()` resolves once the transaction is confirmed on-chain.\nconsole.log('submitted tx:', result.txId)\nconst confirmation = await result.wait()\nconsole.log('confirmed in block:', confirmation.blockNumber)\n```\n\nThe `simulate()` step is new in `/next` — it dry-runs the transaction against the current chain state and surfaces revert reasons before you spend gas.\n\n### Logging\n\nPass a `runtime` option to get structured logs for every adapter operation, including RPC calls, retries, and errors. The quickest way to see what's happening is to use the built-in `createRuntime` helper:\n\n```typescript\nimport {\n  createEthersAdapterFromPrivateKey,\n  createRuntime,\n} from '@circle-fin/adapter-ethers-v6/next'\n\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as string,\n  runtime: createRuntime(), // Logs to stdout via pino at 'info' level\n})\n```\n\nTo integrate with your own logger, pass any object that implements `debug`, `info`, `warn`, `error`, and `child` to `createRuntime`. The logger interface uses `(message, fields)` argument order — libraries like pino use `(fields, message)`, so a thin wrapper is needed:\n\n```typescript\nimport {\n  createEthersAdapterFromPrivateKey,\n  createRuntime,\n} from '@circle-fin/adapter-ethers-v6/next'\nimport pino from 'pino'\n\nfunction wrapPino(p: pino.Logger) {\n  return {\n    debug: (msg: string, fields?: Record<string, unknown>) =>\n      p.debug(fields, msg),\n    info: (msg: string, fields?: Record<string, unknown>) =>\n      p.info(fields, msg),\n    warn: (msg: string, fields?: Record<string, unknown>) =>\n      p.warn(fields, msg),\n    error: (msg: string, fields?: Record<string, unknown>) =>\n      p.error(fields, msg),\n    child: (tags: Record<string, unknown>) => wrapPino(p.child(tags)),\n  }\n}\n\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as string,\n  runtime: createRuntime({ logger: wrapPino(pino({ level: 'debug' })) }),\n})\n```\n\n### Metrics\n\nThe `runtime` option also accepts a `metrics` implementation for counters, histograms, and timers. Plug into Prometheus, StatsD, Datadog, OpenTelemetry, or any other backend:\n\n```typescript\nimport {\n  createEthersAdapterFromPrivateKey,\n  createRuntime,\n} from '@circle-fin/adapter-ethers-v6/next'\n\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as string,\n  runtime: createRuntime({\n    metrics: {\n      counter: (name) => ({\n        inc: (labels, value) => {\n          /* emit counter */\n        },\n      }),\n      histogram: (name) => ({\n        observe: (labels, value) => {\n          /* emit histogram */\n        },\n      }),\n      timer: (name) => ({\n        start: (labels) => {\n          const t0 = Date.now()\n          return () => {\n            /* observe Date.now() - t0 */\n          }\n        },\n      }),\n      child: (labels) => {\n        /* return scoped Metrics with base labels merged */\n      },\n    },\n  }),\n})\n```\n\nWhen no `metrics` is provided, metric calls are silently no-op'd — zero overhead.\n\n### Token Registry\n\nBy default the adapter knows about USDC (and other built-in tokens) on every supported chain. The `tokens` option lets you register additional tokens so they can be referenced by symbol instead of raw addresses.\n\n```typescript\nimport {\n  createEthersAdapterFromPrivateKey,\n  createTokenRegistry,\n} from '@circle-fin/adapter-ethers-v6/next'\n\nconst tokens = createTokenRegistry({\n  tokens: [\n    {\n      symbol: 'WETH',\n      decimals: 18,\n      locators: {\n        Ethereum: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n        Base: '0x4200000000000000000000000000000000000006',\n      },\n    },\n  ],\n})\n\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as string,\n  tokens,\n})\n```\n\nThe registry resolves the correct contract address and decimals for each chain automatically, so downstream code can refer to `'WETH'` rather than hard-coding addresses per network.\n\n### Transaction Tuning\n\nThe `config` option lets you tune gas pricing, retry behavior, and confirmation timeouts:\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6/next'\n\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as string,\n  config: {\n    transaction: {\n      feePriceBufferBps: 2000n, // 20% buffer on gas pricing (default)\n      minPriorityFeeWei: 1_500_000_000n, // 1.5 gwei priority-fee floor\n      confirmationTimeoutMs: 120_000, // 2 minute confirmation timeout\n    },\n    retry: {\n      maxAttempts: 3,\n      baseDelayMs: 1000,\n    },\n  },\n})\n```\n\n| Setting                 | What it controls                                                                                                           | Default                     |\n| ----------------------- | -------------------------------------------------------------------------------------------------------------------------- | --------------------------- |\n| `feePriceBufferBps`     | Buffer on gas pricing to protect against price fluctuations between estimation and inclusion (basis points; 10 000 = 100%) | `2000n` (20%)               |\n| `minPriorityFeeWei`     | Floor for `maxPriorityFeePerGas` — prevents near-zero tips from being silently dropped by validators                       | `1_500_000_000n` (1.5 gwei) |\n| `confirmationTimeoutMs` | How long `waitForTransaction` waits before timing out                                                                      | Client default              |\n| `retry.maxAttempts`     | Maximum number of retry attempts (not including the initial attempt)                                                       | `3`                         |\n| `retry.baseDelayMs`     | Base delay between retries in milliseconds (doubles on each retry via exponential backoff)                                 | `200`                       |\n\nSet `retry: false` to disable automatic retries entirely.\n\n### Error Telemetry & Secret Redaction\n\n`KitError.cause.trace` is the SDK's diagnostic surface for telemetry pipelines. It carries useful post-mortem context — the redacted `rawError` shape, the provider `code`, and a `shortMessage` field. The strings on these fields **can** include the configured RPC URL and any embedded API key, because ethers v6's `makeError()` formats `info` keys directly into the message string itself, e.g.:\n\n```\nmissing response (requestUrl=\"https://mainnet.infura.io/v3/MY_KEY\", code=SERVER_ERROR, ...)\n```\n\nThe same pattern surfaces in viem's `HttpRequestError.shortMessage`. The SDK addresses this in two layers:\n\n1. **Object-graph stripping (always on)** — the `request`, `info`, originating `XMLHttpRequest`, and `transport.url` properties are never embedded on `cause.trace`. This has been the contract since the first round of the redactor work.\n2. **Message-content scrubbing (default-on for ~12 known RPC providers; operator-extensible)** — the SDK ships with `defaultMessageRedactor` active at module load, scrubbing API-key fragments out of the message strings ethers/viem format internally for the most common public RPC providers without any operator configuration. URL classification happens via the platform `URL` parser plus a host-suffix list (`DEFAULT_RPC_HOST_SUFFIXES`), so adding a new provider is a one-line change with no regex audit needed.\n\n#### What the defaults catch out of the box\n\n| Provider              | Host suffix(es)                                              |\n| --------------------- | ------------------------------------------------------------ |\n| Alchemy               | `.g.alchemy.com`                                             |\n| Infura                | `.infura.io`                                                 |\n| QuickNode             | `.quiknode.pro`                                              |\n| Ankr                  | `.ankr.com`                                                  |\n| Chainstack            | `.p2pify.com`                                                |\n| Tenderly              | `.gateway.tenderly.co`                                       |\n| BlockPI               | `.blockpi.network`                                           |\n| GetBlock              | `.getblock.io`                                               |\n| Moralis               | `.moralis-nodes.com`                                         |\n| Helius (Solana)       | `.helius-rpc.com`, `.helius.xyz`                             |\n| Triton (Solana)       | `.rpcpool.com`                                               |\n| Generic query strings | `?api-key=…`, `?apikey=…`, `?token=…`, `?secret=…`, `?key=…` |\n| Generic auth headers  | `Bearer <token>`                                             |\n\nAny URL whose `host.endsWith(suffix)` matches the table is replaced wholesale with `[REDACTED]`. The classification is done by the same `URL` parser the platform uses for `fetch()`, so it cannot accidentally match calldata, contract addresses, transaction hashes, or revert reasons (none of which parse as URLs).\n\n#### Defense in depth, not a guarantee\n\nThree things still need attention from you, even with defaults on:\n\n1. **Custom or self-hosted RPC URLs aren't covered by defaults.** Extend the host-suffix list with `composeRedactor`:\n\n   ```typescript\n   import {\n     composeRedactor,\n     setMessageRedactor,\n     DEFAULT_RPC_HOST_SUFFIXES,\n   } from '@core/errors'\n\n   setMessageRedactor(\n     composeRedactor({\n       hostSuffixes: [...DEFAULT_RPC_HOST_SUFFIXES, '.rpc.my-corp.example'],\n     }),\n   )\n   ```\n\n2. **Error messages are still untrusted output.** Don't write them to durable storage (S3, log files, ticket systems, support transcripts) without your own log-shipping-layer scrub. The SDK protects telemetry pipelines that JSON.stringify `cause.trace`; it does not protect ad-hoc `console.error(err)` calls in your application code.\n\n3. **Defaults can false-negative.** New providers, URL format changes, or odd error shapes from a custom transport may slip through. Treat every error message as potentially containing a secret you don't recognize, and pin scrubbing at your log-shipping layer too (Sentry's `denyUrls` / `beforeSend`, Datadog's `redact-paths`, your own forwarder).\n\n#### Other escape hatches\n\n| Goal                                                        | Call                                                                                           |\n| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |\n| Restore defaults after a custom policy                      | `resetMessageRedactor()`                                                                       |\n| Read the active policy (e.g. `/healthz`)                    | `getMessageRedactor()`                                                                         |\n| Disable redaction entirely (local dev / raw-provider tests) | `setMessageRedactor(undefined)`                                                                |\n| Length-preserving redaction (function form)                 | `setMessageRedactor((msg) => msg.replace(/[A-Fa-f0-9]{32,64}/g, (m) => '*'.repeat(m.length)))` |\n\nThe setter **replaces** the active policy — use `composeRedactor({ hostSuffixes, patterns })` (or call `defaultMessageRedactor(msg)` from inside a function-form redactor) if you want to extend rather than replace. See `setMessageRedactor`'s JSDoc for the contract.\n\n#### Why on by default\n\nThe dominant pattern across modern SDKs (AWS SDK v3 middleware, Stripe's request logger, Sentry's `Default Integrations`, OpenTelemetry's URL/query-param scrubbers) is to ship secret scrubbing on by default for high-confidence patterns and let operators extend or disable. The opposite posture — \"errors may contain secrets, scrub them yourself\" — has historically been a frequent cause of credentials leaking into log aggregators across the JS ecosystem (notably with axios, which dumps the full request URL into `error.config` by default). The SDK adopts the conservative-defaults posture deliberately.\n\n### Migration Path\n\nThe `/next` entrypoint is designed for a zero-friction migration:\n\n1. **Today** — Import from `@circle-fin/adapter-ethers-v6/next`. The adapter returned is fully compatible with all existing kits and providers — no changes needed on their side.\n2. **Next major release** — The `/next` architecture becomes the default entrypoint (`@circle-fin/adapter-ethers-v6`). The current class-based adapter will be removed.\n\n**What do I need to change?** If you only use factory functions (`createEthersAdapterFromPrivateKey`, `createEthersAdapterFromProvider`) and pass the adapter to a kit, nothing beyond the import path. The adapter satisfies the same interface that kits expect.\n\n## OperationContext Pattern\n\n### Why OperationContext?\n\nThe OperationContext pattern is the modern approach for multi-chain operations. Instead of locking an adapter to a single chain, you specify the chain per operation. This enables powerful patterns like using a single adapter for cross-chain bridging.\n\n**Benefits:**\n\n- ✅ **One adapter, many chains** - No need to create separate adapters for each network\n- ✅ **Explicit is better** - Chain is always clear in your code\n- ✅ **Type-safe** - Full TypeScript support with compile-time checks\n- ✅ **Eliminates ambiguity** - No confusion about which chain is being used\n\n### Basic Usage\n\nEvery operation accepts an `OperationContext` parameter that specifies the chain:\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6'\n\n// Create adapter without specifying a chain - true lazy initialization\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`,\n})\n\n// Chain specified explicitly in every operation\nconst prepared = await adapter.prepare(\n  {\n    address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n    abi: usdcAbi,\n    functionName: 'transfer',\n    args: ['0xrecipient', '1000000'],\n  },\n  { chain: 'Ethereum' },\n)\n\nconst gas = await prepared.estimate()\nconst txHash = await prepared.execute()\n```\n\n### Multi-Chain Operations\n\nUse a single adapter instance for operations across multiple chains:\n\n```typescript\n// Create adapter once for use across multiple chains\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`,\n})\n\n// Transfer USDC on Ethereum\nconst ethPrepared = await adapter.prepare(\n  {\n    address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC on Ethereum\n    abi: usdcAbi,\n    functionName: 'transfer',\n    args: ['0xrecipient', '1000000'],\n  },\n  { chain: 'Ethereum' },\n)\n\n// Transfer USDC on Base using the same adapter\nconst basePrepared = await adapter.prepare(\n  {\n    address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base\n    abi: usdcAbi,\n    functionName: 'transfer',\n    args: ['0xrecipient', '1000000'],\n  },\n  { chain: 'Base' },\n)\n\n// Execute both transfers\nawait ethPrepared.execute()\nawait basePrepared.execute()\n```\n\n## Address Context Guide\n\nThe adapter supports two address control patterns. Choose the one that fits your use case.\n\n### User-Controlled (Recommended)\n\n**Best for:** Private key wallets, browser wallets (MetaMask), hardware wallets\n\n**How it works:** Address is automatically resolved from the connected signer/wallet. You don't need to specify it in the OperationContext.\n\n**When to use:**\n\n- ✅ Building a dApp where users connect their wallets\n- ✅ Using a private key for backend automation\n- ✅ Single wallet signing all transactions\n- ✅ Server-side scripts with one identity\n\n```typescript\n// User-controlled adapter (default for factory functions)\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`,\n  // addressContext: 'user-controlled' is the default\n})\n\n// Address automatically resolved from private key/wallet\nconst prepared = await adapter.prepare(\n  {\n    address: '0xcontract',\n    abi: contractAbi,\n    functionName: 'approve',\n    args: ['0xspender', '1000000'],\n  },\n  { chain: 'Polygon' }, // No address needed in context for user-controlled\n)\n```\n\n### Developer-Controlled (Advanced)\n\n**Best for:** Custody solutions, multi-entity systems, enterprise applications\n\n**How it works:** Address must be explicitly provided in the OperationContext for each operation.\n\n**When to use:**\n\n- ✅ Building a custody solution managing multiple client wallets\n- ✅ Enterprise system where different users have different signing keys\n- ✅ Multi-sig or delegated signing infrastructure\n- ✅ Systems where address varies per transaction\n\n```typescript\nimport { EthersAdapter } from '@circle-fin/adapter-ethers-v6'\nimport { Ethereum, Base } from '@circle-fin/bridge-kit/chains'\n\n// Developer-controlled adapter (manual constructor)\nconst adapter = new EthersAdapter(\n  {\n    getProvider: ({ chain }) => new JsonRpcProvider('https://...'),\n    signer: wallet,\n  },\n  {\n    addressContext: 'developer-controlled', // ← Explicit address required\n    supportedChains: [Ethereum, Base],\n  },\n)\n\n// Address must be provided in context for developer-controlled adapters\nconst prepared = await adapter.prepare(\n  {\n    address: '0xcontract',\n    abi: contractAbi,\n    functionName: 'approve',\n    args: ['0xspender', '1000000'],\n  },\n  {\n    chain: 'Ethereum',\n    address: '0x1234...', // Required for developer-controlled\n  },\n)\n```\n\n## Usage Examples\n\n### Contract Interactions\n\n**Transfer USDC** across different chains with the same adapter:\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6'\n\n// Create adapter with lazy initialization\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`,\n})\n\nconst usdcAbi = ['function transfer(address to, uint256 amount) returns (bool)']\n\n// Transfer on Ethereum - chain specified in operation\nconst ethPrepared = await adapter.prepare(\n  {\n    address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC on Ethereum\n    abi: usdcAbi,\n    functionName: 'transfer',\n    args: ['0xrecipient', '1000000'], // 1 USDC (6 decimals)\n  },\n  { chain: 'Ethereum' },\n)\n\n// Estimate and execute\nconst gas = await ethPrepared.estimate()\nconsole.log('Estimated gas:', gas.gas)\n\nconst txHash = await ethPrepared.execute()\nconsole.log('Transaction hash:', txHash)\n```\n\n### EIP-712 Signatures\n\n**Sign permit approvals** for gasless token approvals:\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6'\n\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`,\n})\n\n// Sign ERC-2612 permit (gasless USDC approval)\nconst signature = await adapter.signTypedData(\n  {\n    domain: {\n      name: 'USD Coin',\n      version: '2',\n      chainId: 1,\n      verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n    },\n    types: {\n      Permit: [\n        { name: 'owner', type: 'address' },\n        { name: 'spender', type: 'address' },\n        { name: 'value', type: 'uint256' },\n        { name: 'nonce', type: 'uint256' },\n        { name: 'deadline', type: 'uint256' },\n      ],\n    },\n    primaryType: 'Permit',\n    message: {\n      owner: '0xowner',\n      spender: '0xspender',\n      value: '1000000',\n      nonce: '0',\n      deadline: '1735689600',\n    },\n  },\n  { chain: 'Ethereum' }, // Chain must be specified\n)\n\nconsole.log('Permit signature:', signature)\n// Use signature for gasless approval\n```\n\n### Cross-Chain Bridging\n\n**Bridge USDC** using the Bridge Kit with OperationContext:\n\n```typescript\nimport { createEthersAdapterFromPrivateKey } from '@circle-fin/adapter-ethers-v6'\nimport { BridgeKit } from '@circle-fin/bridge-kit'\n\n// Create adapter for multi-chain operations\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: process.env.PRIVATE_KEY as `0x${string}`,\n})\n\nconst kit = new BridgeKit()\n\n// Bridge from Ethereum to Base using the same adapter\nconst result = await kit.bridge({\n  from: { adapter, chain: 'Ethereum' },\n  to: { adapter, chain: 'Base' },\n  amount: '100.50',\n  token: 'USDC',\n})\n\nconsole.log('Bridge transaction:', result.transactionHash)\n```\n\n## API Reference\n\n### Factory Functions\n\n#### `createEthersAdapterFromPrivateKey(params)`\n\nCreates an adapter from a private key for server-side use.\n\n**Parameters:**\n\n- `privateKey` - 32-byte hex string (with or without `0x` prefix — normalized automatically)\n- `getProvider?` - Optional custom provider function\n- `capabilities?` - Optional partial capabilities (defaults: user-controlled + all EVM chains)\n\n**Returns:** `EthersAdapter` instance with lazy initialization\n\n**Note:** No chain required at creation time. The adapter connects to chains lazily on first operation.\n\n```typescript\nconst adapter = createEthersAdapterFromPrivateKey({\n  privateKey: '0x...',\n})\n```\n\n#### `createEthersAdapterFromProvider(params)`\n\nCreates an adapter from a browser wallet provider (MetaMask, WalletConnect, etc.).\n\n**Parameters:**\n\n- `provider` - EIP-1193 compatible provider\n- `getProvider?` - Optional custom provider function\n- `capabilities?` - Optional partial capabilities (defaults: user-controlled + all EVM chains)\n\n**Returns:** `Promise<EthersAdapter>` instance\n\n```typescript\nconst adapter = await createEthersAdapterFromProvider({\n  provider: window.ethereum,\n})\n```\n\n### Core Methods\n\n#### `prepare(params, ctx)`\n\nPrepares a contract function call for estimation and execution.\n\n**Parameters:**\n\n- `params` - Contract call parameters (address, abi, functionName, args)\n- `ctx` - **Required** OperationContext with chain specification\n\n**Returns:** `Promise<PreparedChainRequest>` with `estimate()` and `execute()` methods\n\n```typescript\nconst prepared = await adapter.prepare(\n  {\n    address: '0xcontract',\n    abi: contractAbi,\n    functionName: 'transfer',\n    args: ['0xto', '1000000'],\n  },\n  { chain: 'Ethereum' }, // Required\n)\n```\n\n#### `signTypedData(typedData, ctx)`\n\nSigns EIP-712 typed data for permits, meta-transactions, etc.\n\n**Parameters:**\n\n- `typedData` - EIP-712 structured data\n- `ctx` - **Required** OperationContext with chain specification\n\n**Returns:** `Promise<string>` - Signature as hex string\n\n```typescript\nconst signature = await adapter.signTypedData(permitData, {\n  chain: 'Ethereum',\n})\n```\n\n#### `waitForTransaction(txHash, config?)`\n\nWaits for transaction confirmation.\n\n**Parameters:**\n\n- `txHash` - Transaction hash to wait for\n- `config?` - Optional wait configuration (confirmations, timeout)\n\n**Returns:** `Promise<TransactionReceipt>`\n\n```typescript\nconst receipt = await adapter.waitForTransaction('0x...')\n```\n\n#### `getAddress(chain)`\n\nGets the connected wallet address. Chain parameter is provided automatically by OperationContext resolution.\n\n**Returns:** `Promise<string>` - Wallet address\n\n### Token Operations\n\nBuilt-in token operations using the action system:\n\n```typescript\n// Get USDC balance\nconst balance = await adapter.actions.usdc.balanceOf({\n  address: '0xwallet',\n  chain: 'Ethereum',\n})\n\n// Get token allowance\nconst allowance = await adapter.actions.token.allowance({\n  tokenAddress: '0xtoken',\n  owner: '0xowner',\n  spender: '0xspender',\n  chain: 'Base',\n})\n```\n\n## Supported Chains & Routes\n\nThe Ethers v6 adapter resolves any EVM-compatible chain supported by Circle's CCTP v2 protocol — it validates chain type at runtime rather than hardcoding a chain list, so it stays in sync automatically as chains are added. See the [main README](../../README.md#supported-chains--routes) for the full, up-to-date list of supported mainnet and testnet chains.\n\n## Development\n\nThis package is part of the App Kits monorepo.\n\n```bash\n# Build\nnx build @circle-fin/adapter-ethers-v6\n\n# Test\nnx test @circle-fin/adapter-ethers-v6\n```\n\n## License\n\nThis project is licensed under the Apache 2.0 License. Contact [support](https://help.circle.com/s/submit-ticket) for details.\n\n---\n\n<div align=\"center\">\n\n**Ready to integrate?**\n\n[Join Discord](https://discord.com/invite/buildoncircle) •\n[Visit our Help-Desk](https://help.circle.com/s/submit-ticket)\n\n_Built with ❤️ by Circle_\n\n</div>\n","readmeFilename":"README.md"}