refactor: move brother_node development artifact to dev/test-nodes subdirectory
Development Artifact Cleanup: ✅ BROTHER_NODE REORGANIZATION: Moved development test node to appropriate location - dev/test-nodes/brother_node/: Moved from root directory for better organization - Contains development configuration, test logs, and test chain data - No impact on production systems - purely development/testing artifact ✅ DEVELOPMENT ARTIFACTS IDENTIFIED: - Chain ID: aitbc-brother-chain (test/development chain) - Ports: 8010 (P2P) and 8011 (RPC) - different from production - Environment: .env file with test configuration - Logs: rpc.log and node.log from development testing session (March 15, 2026) ✅ ROOT DIRECTORY CLEANUP: Removed development clutter from production directory - brother_node/ moved to dev/test-nodes/brother_node/ - Root directory now contains only production-ready components - Development artifacts properly organized in dev/ subdirectory DIRECTORY STRUCTURE IMPROVEMENT: 📁 dev/test-nodes/: Development and testing node configurations 🏗️ Root Directory: Clean production structure with only essential components 🧪 Development Isolation: Test environments separated from production BENEFITS: ✅ Clean Production Directory: No development artifacts in root ✅ Better Organization: Development nodes grouped in dev/ subdirectory ✅ Clear Separation: Production vs development environments clearly distinguished ✅ Maintainability: Easier to identify and manage development components RESULT: Successfully moved brother_node development artifact to dev/test-nodes/ subdirectory, cleaning up the root directory while preserving development testing environment for future use.
This commit is contained in:
478
dev/env/node_modules/ethers/CHANGELOG.md
generated
vendored
Executable file
478
dev/env/node_modules/ethers/CHANGELOG.md
generated
vendored
Executable file
@@ -0,0 +1,478 @@
|
||||
Change Log
|
||||
==========
|
||||
|
||||
This change log is maintained by `src.ts/_admin/update-changelog.ts` but may also be manually updated.
|
||||
|
||||
ethers/v6.16.0 (2025-12-02 19:47)
|
||||
---------------------------------
|
||||
|
||||
- Added utility method to split EIP-7594 BLOb proofs into its cells ([88dfe96](https://github.com/ethers-io/ethers.js/commit/88dfe96cf56ad41d0a18b1ef8cac4209aa80905e)).
|
||||
- Update Alchemy URL endpoint for mainnet ([#5052](https://github.com/ethers-io/ethers.js/issues/5052); [719b01d](https://github.com/ethers-io/ethers.js/commit/719b01d72dad7525d3837a561fa1c803a773b44e)).
|
||||
- Fail on unsupported Etherscan networks immediately to better support the default provider ([94b333b](https://github.com/ethers-io/ethers.js/commit/94b333b982a5c4ecb74d10c2bdf0ff23584c37fa)).
|
||||
- Added Filecoin network and Ankr endpoints ([#5038](https://github.com/ethers-io/ethers.js/issues/5038); [986e827](https://github.com/ethers-io/ethers.js/commit/986e8272270fa7394a0acd0c15b3bf407dbc1fc4)).
|
||||
- Moved to better API for EIP-7594 PeerDAS ([#5062](https://github.com/ethers-io/ethers.js/issues/5062); [452b422](https://github.com/ethers-io/ethers.js/commit/452b4227a4587a514ff83dc8a591eb02a0ba2d56)).
|
||||
- Added initial EIP-7594 PeerDAS support ([#5054](https://github.com/ethers-io/ethers.js/issues/5054), [#5062](https://github.com/ethers-io/ethers.js/issues/5062); [6d64889](https://github.com/ethers-io/ethers.js/commit/6d64889388824823369cd95193fbc857bc0ee15c)).
|
||||
- Support RegExp engines with string length limitations ([#4967](https://github.com/ethers-io/ethers.js/issues/4967); [f0dfbe1](https://github.com/ethers-io/ethers.js/commit/f0dfbe1c35128d581d95cbf81637c438d7bee00a)).
|
||||
- Added Transaction and Signature support for non-canonical S values ([#4223](https://github.com/ethers-io/ethers.js/issues/4223), [#5013](https://github.com/ethers-io/ethers.js/issues/5013); [855d727](https://github.com/ethers-io/ethers.js/commit/855d72728aaa1cc0ec427f56ab7929daead0b253)).
|
||||
- Allow zero-width big-endian data for toBeHex and allow widths fo toBeArray ([#5025](https://github.com/ethers-io/ethers.js/issues/5025); [540f30c](https://github.com/ethers-io/ethers.js/commit/540f30cbec0e745df1a38d51286f2c6326829581)).
|
||||
|
||||
ethers/v6.15.0 (2025-07-01 11:24)
|
||||
---------------------------------
|
||||
|
||||
- Allow non-canonical S values in Signatures moving errors to access-time ([#5013](https://github.com/ethers-io/ethers.js/issues/5013); [9944ec9](https://github.com/ethers-io/ethers.js/commit/9944ec94b154b4f8fdfeefb81a1e47b28fd907bc)).
|
||||
|
||||
ethers/v6.14.4 (2025-06-12 23:16)
|
||||
---------------------------------
|
||||
|
||||
- Fixed serialization of EIP-7702 transactions with leading 0-bytes ([#4916](https://github.com/ethers-io/ethers.js/issues/4916); [389dc03](https://github.com/ethers-io/ethers.js/commit/389dc0381222206011037792fd575c36da25abbf)).
|
||||
|
||||
ethers/v6.14.3 (2025-05-26 18:55)
|
||||
---------------------------------
|
||||
|
||||
- Fixed non-normalized yParity on EIP-7702 JSON-RPC responses ([#4985](https://github.com/ethers-io/ethers.js/issues/4985); [a8803ca](https://github.com/ethers-io/ethers.js/commit/a8803ca4dce20d2dededed8da65e80f2a8770fb1)).
|
||||
|
||||
ethers/v6.14.2 (2025-05-26 18:03)
|
||||
---------------------------------
|
||||
|
||||
- Fixed call stack overflow in makeError stringify for recursive structures ([#4977](https://github.com/ethers-io/ethers.js/issues/4977), [#4978](https://github.com/ethers-io/ethers.js/issues/4978); [52a0522](https://github.com/ethers-io/ethers.js/commit/52a052210919a35b0b0b38e357b3003ac8259fce)).
|
||||
- Explicitly throw error on gunzip failure to prevent uncaught exception ([#4873](https://github.com/ethers-io/ethers.js/issues/4873), [#4874](https://github.com/ethers-io/ethers.js/issues/4874); [fe98f98](https://github.com/ethers-io/ethers.js/commit/fe98f985e38e7540108b20d7966cca3f85d620f3)).
|
||||
- Skip additional receipt fetch for single confirmation requests ([#4972](https://github.com/ethers-io/ethers.js/issues/4972); [243cb02](https://github.com/ethers-io/ethers.js/commit/243cb02c52e33c8e09b637ae775e520c1cd672d3)).
|
||||
- Update EtherscanProvider to use their v2 API ([#4975](https://github.com/ethers-io/ethers.js/issues/4975); [5e09aa1](https://github.com/ethers-io/ethers.js/commit/5e09aa1fe4e216a89875bab768bec484aeaf553d)).
|
||||
|
||||
ethers/v6.14.1 (2025-05-15 14:17)
|
||||
---------------------------------
|
||||
|
||||
- Fix JSON-RPC authorizationList signature entries encoded as DATA instead of QUANTITY values ([#4916](https://github.com/ethers-io/ethers.js/issues/4916); [135db72](https://github.com/ethers-io/ethers.js/commit/135db722756b81f44f55441e1e2d24ef4f85f216)).
|
||||
|
||||
ethers/v6.14.0 (2025-05-06 22:02)
|
||||
---------------------------------
|
||||
|
||||
- Remove BlockscoutProvider temporarily until custom error issues are fixed ([805a8b3](https://github.com/ethers-io/ethers.js/commit/805a8b3aba26998a1e25055e9d3dd41c01ebbba0)).
|
||||
- EIP-7702 support ([#4916](https://github.com/ethers-io/ethers.js/issues/4916); [db490e1](https://github.com/ethers-io/ethers.js/commit/db490e1afaaa139be9cb38e6b50a1bc4ef28e075), [e7c1bdf](https://github.com/ethers-io/ethers.js/commit/e7c1bdf6f0a5d6f976dddd6375e76445ac6851fc)).
|
||||
- Added support for to override fetch init options in the Browser ([#3895](https://github.com/ethers-io/ethers.js/issues/3895); [844ae68](https://github.com/ethers-io/ethers.js/commit/844ae68a96deabc4d5f053dad5f1112b06f08d9a)).
|
||||
- Added EIP-6963 discovery to BrowserProvider ([f5469dd](https://github.com/ethers-io/ethers.js/commit/f5469dd0e0719389d51e0106ee36d07a7ebef875)).
|
||||
- Accept modern KZG library API while exposing legacy API ([#4841](https://github.com/ethers-io/ethers.js/issues/4841); [e5036e7](https://github.com/ethers-io/ethers.js/commit/e5036e778624fea957dd847f7be1a9f148b8997e)).
|
||||
- Added CommunityResourcable to exports ([#4776](https://github.com/ethers-io/ethers.js/issues/4776); [bca8d1b](https://github.com/ethers-io/ethers.js/commit/bca8d1b549569e6f7793f07fcc46dfd731e37d2b)).
|
||||
|
||||
ethers/v6.13.7 (2025-04-25 21:50)
|
||||
---------------------------------
|
||||
|
||||
- Fix FallbackProvider coalescing call exceptions when backends return slightly different error message ([268a0ac](https://github.com/ethers-io/ethers.js/commit/268a0ac5af6a2a59c240195d75ed19047731c6c0)).
|
||||
- Fixed Infura BSC network URLs ([#4951](https://github.com/ethers-io/ethers.js/issues/4951); [d01b4cb](https://github.com/ethers-io/ethers.js/commit/d01b4cb84b2f00dd04dc5317600a52f1fcf9b316)).
|
||||
|
||||
ethers/v6.13.6 (2025-03-21 18:21)
|
||||
---------------------------------
|
||||
|
||||
- Implicitly use EIP-7702 if authorizationList is given and non-empty ([#4961](https://github.com/ethers-io/ethers.js/issues/4961); [e7c1bdf](https://github.com/ethers-io/ethers.js/commit/e7c1bdf6f0a5d6f976dddd6375e76445ac6851fc)).
|
||||
- Initial EIP-7702 support ([#4916](https://github.com/ethers-io/ethers.js/issues/4916); [db490e1](https://github.com/ethers-io/ethers.js/commit/db490e1afaaa139be9cb38e6b50a1bc4ef28e075)).
|
||||
- Added support for to override fetch init options in the Browser ([#3895](https://github.com/ethers-io/ethers.js/issues/3895); [844ae68](https://github.com/ethers-io/ethers.js/commit/844ae68a96deabc4d5f053dad5f1112b06f08d9a)).
|
||||
- Added EIP-6963 discovery to BrowserProvider ([f5469dd](https://github.com/ethers-io/ethers.js/commit/f5469dd0e0719389d51e0106ee36d07a7ebef875)).
|
||||
- Merge: e5036e77 158f5d02 Merge branch 'main' into wip-v6.14 ([e7165a6](https://github.com/ethers-io/ethers.js/commit/e7165a6151e1fddcc9b8f4f30dfc13ee0a7d6f87)).
|
||||
- tests: squelch the noisy runtime console API event in browser tests ([79428fd](https://github.com/ethers-io/ethers.js/commit/79428fd44950ca21e9cc1b6f850122461217b0b3)).
|
||||
- tests: added faucet key environment for browser CI tests ([27d42af](https://github.com/ethers-io/ethers.js/commit/27d42af134bec099164e7afd03420c3dad53e3a9)).
|
||||
- tests: better runtime exception output for browser tests ([0beed25](https://github.com/ethers-io/ethers.js/commit/0beed258242cff7029ef1806ad0ff4955cb135c1)).
|
||||
- tests: added more debug endpoints to browser tests ([33bbf66](https://github.com/ethers-io/ethers.js/commit/33bbf662213b5d4a00901e490fd432dbeeb1a26b)).
|
||||
- tests: added JSON-RPC tests to web browser CI ([1c0c23c](https://github.com/ethers-io/ethers.js/commit/1c0c23c084e389390ce00e5a421267a4f8bdef0d)).
|
||||
- tests: added browser tests for sending ([afd613a](https://github.com/ethers-io/ethers.js/commit/afd613a2a0c9fb548805ed36e23ad9a5d4bcc239)).
|
||||
- tests: debugging browser tests failing to launch ([d1baa74](https://github.com/ethers-io/ethers.js/commit/d1baa741f6b272ba692e0e78787cacb1bd42a8b4)).
|
||||
- tests: fix assert call for browser assert ([1806bbd](https://github.com/ethers-io/ethers.js/commit/1806bbde27523933fb140ad985426f94e0286faf)).
|
||||
- tests: include more node tests in the browser tests ([92fd5d1](https://github.com/ethers-io/ethers.js/commit/92fd5d1f47c640caa7100bcccf0b133e866989e6)).
|
||||
- tests: move more tests to dev network ([996f30c](https://github.com/ethers-io/ethers.js/commit/996f30c674002cea316fa7aa3929f43409f934bc)).
|
||||
- tests: debugging CI browser failure ([ce7212d](https://github.com/ethers-io/ethers.js/commit/ce7212d03d6867081603794f0480f31d053823c4)).
|
||||
- tests: debugging CI browser failure ([f1821a6](https://github.com/ethers-io/ethers.js/commit/f1821a696763938ca9d44815bdcd5cc043eb3900)).
|
||||
- tests: debugging CI browser failure ([cc9119c](https://github.com/ethers-io/ethers.js/commit/cc9119cecb6b970544861642861807c520eb763b)).
|
||||
- tests: debugging CI browser failure ([3ac33f9](https://github.com/ethers-io/ethers.js/commit/3ac33f9a40e40dabf9c19b8cc7114ce9897a3646)).
|
||||
- tests: debugging CI browser failure ([25b11ee](https://github.com/ethers-io/ethers.js/commit/25b11ee0eaa57293fe981b9b6b19bdae7d4db169)).
|
||||
- tests: debug CI failing ([3bcbcae](https://github.com/ethers-io/ethers.js/commit/3bcbcaeb025c530717b15c5ba099d320fdd9f934)).
|
||||
- tests: added circular support to browser-safe inspect ([3854b39](https://github.com/ethers-io/ethers.js/commit/3854b39763a2a57f363bf9bf925adcc27002bde1)).
|
||||
- tests: added browser-safe inspect for tests ([e299a31](https://github.com/ethers-io/ethers.js/commit/e299a31ecb9017baf07c58bb927c2e718ebeb447)).
|
||||
- tests: fix for browser CI tests ([74a68bc](https://github.com/ethers-io/ethers.js/commit/74a68bcc4976e48a00f57f5279664551b47b6840)).
|
||||
- tests: adding debug info to local JsonPrcProvider ([c508538](https://github.com/ethers-io/ethers.js/commit/c5085385563c57c7958be1ab413079dc8409c8c4)).
|
||||
- tests: temporarily remove QuickNode ([499ed8c](https://github.com/ethers-io/ethers.js/commit/499ed8c4bb91b918148c348b805ce753584065b6)).
|
||||
- Accept modern KZG library API while exposing legacy API ([#4841](https://github.com/ethers-io/ethers.js/issues/4841); [e5036e7](https://github.com/ethers-io/ethers.js/commit/e5036e778624fea957dd847f7be1a9f148b8997e)).
|
||||
- Added CommunityResourcable to exports ([#4776](https://github.com/ethers-io/ethers.js/issues/4776); [bca8d1b](https://github.com/ethers-io/ethers.js/commit/bca8d1b549569e6f7793f07fcc46dfd731e37d2b)).
|
||||
|
||||
ethers/v6.13.5 (2025-01-04 15:26)
|
||||
---------------------------------
|
||||
|
||||
- Use local dev net for testing Typed API to prevent tests getting throttled ([7654ee3](https://github.com/ethers-io/ethers.js/commit/7654ee3c6487171a4e13207accfc90f93a22b0fc)).
|
||||
- Fixed bad logic for searching prefetched transactions by hash ([#4868](https://github.com/ethers-io/ethers.js/issues/4868); [ef3c9bc](https://github.com/ethers-io/ethers.js/commit/ef3c9bc3afb9e36a073bbd3572e9021a852bd2c4)).
|
||||
- Add newline delimiter to IPC providers for broader support ([#4847](https://github.com/ethers-io/ethers.js/issues/4847); [474a8de](https://github.com/ethers-io/ethers.js/commit/474a8ded2b94a563067d3b4dd5f60ec0725b9a27)).
|
||||
|
||||
ethers/v6.13.4 (2024-10-10 18:01)
|
||||
---------------------------------
|
||||
|
||||
- Updated dependencies ([1d717ef](https://github.com/ethers-io/ethers.js/commit/1d717ef940b77d4ca9b350aa3aa159a40a547ac0)).
|
||||
- Fixed bug in JSON-RPC error checking ([#4827](https://github.com/ethers-io/ethers.js/issues/4827), [#4837](https://github.com/ethers-io/ethers.js/issues/4837), [#4851](https://github.com/ethers-io/ethers.js/issues/4851); [be3e6b1](https://github.com/ethers-io/ethers.js/commit/be3e6b14433bc88ad8c0c98a4f3a2a627cea6b99)).
|
||||
|
||||
ethers/v6.13.3 (2024-09-30 22:08)
|
||||
---------------------------------
|
||||
|
||||
- Allow CCIP-read to continue during low-level fetch failures ([#4842](https://github.com/ethers-io/ethers.js/issues/4842); [1c31f95](https://github.com/ethers-io/ethers.js/commit/1c31f95f7a1e4993ca0f1706002a975a0060dd88)).
|
||||
|
||||
ethers/v6.13.2 (2024-07-25 17:54)
|
||||
---------------------------------
|
||||
|
||||
- Prevent mutating transactions when signing ([#4789](https://github.com/ethers-io/ethers.js/issues/4789); [1a51af8](https://github.com/ethers-io/ethers.js/commit/1a51af85397283601db77ca61d5596b145e7f2cb)).
|
||||
|
||||
ethers/v6.13.1 (2024-06-18 02:09)
|
||||
---------------------------------
|
||||
|
||||
- Update ws package to address possible DoS vulnerability ([a4b1d1f](https://github.com/ethers-io/ethers.js/commit/a4b1d1f43fca14f2e826e3c60e0d45f5b6ef3ec4)).
|
||||
|
||||
ethers/v6.13.0 (2024-06-04 01:01)
|
||||
---------------------------------
|
||||
|
||||
- Added Options for BrowserProvider ([#4707](https://github.com/ethers-io/ethers.js/issues/4707); [33bb0bf](https://github.com/ethers-io/ethers.js/commit/33bb0bf30e1e6a699c24415a1edf0fa4ed28b6aa)).
|
||||
- Fix Result deep toObject when a parent is an Array ([#4681](https://github.com/ethers-io/ethers.js/issues/4681); [d8cb849](https://github.com/ethers-io/ethers.js/commit/d8cb84957078985f5449fa26c6fd8087dbd17aec)).
|
||||
- Added consistent timeout and cancel behaviour to FetchRequest ([#4122](https://github.com/ethers-io/ethers.js/issues/4122); [a12a739](https://github.com/ethers-io/ethers.js/commit/a12a7391fba39b5c114fa658590fae305dcedd17)).
|
||||
|
||||
ethers/v6.12.2 (2024-05-30 17:24)
|
||||
---------------------------------
|
||||
|
||||
- Copy EIP-4844 properties during estimateGas and call ([#4728](https://github.com/ethers-io/ethers.js/issues/4728); [cebe5ee](https://github.com/ethers-io/ethers.js/commit/cebe5eed91de0db5931b7847e76ee27cb2ce9219)).
|
||||
- Use non-capturing regex for data to prevent memory exhaustion for long strings ([#4741](https://github.com/ethers-io/ethers.js/issues/4741); [5463aa0](https://github.com/ethers-io/ethers.js/commit/5463aa03eacde45322a1e05693ce90e4d7abcaa7)).
|
||||
- Added Base endpointsto EtherscanProvider ([#4729](https://github.com/ethers-io/ethers.js/issues/4729); [7e1dc95](https://github.com/ethers-io/ethers.js/commit/7e1dc95ea2564c1eb0a9452b9a16002f3696765c)).
|
||||
|
||||
ethers/v6.12.1 (2024-04-30 22:46)
|
||||
---------------------------------
|
||||
|
||||
- Prevent bad Interface clone when using two different versions of v6 ([#4689](https://github.com/ethers-io/ethers.js/issues/4689); [4d2d90f](https://github.com/ethers-io/ethers.js/commit/4d2d90f5cea2eb2f9559e490a34aa1567c8c4c14)).
|
||||
- Fixed typo in error message for invalid quorum weight ([#4149](https://github.com/ethers-io/ethers.js/issues/4149); [45b9b9c](https://github.com/ethers-io/ethers.js/commit/45b9b9c9322bf20feaf892d948bcfb8db8932877)).
|
||||
- Added matic-amoy to EtherescanProvider ([#4711](https://github.com/ethers-io/ethers.js/issues/4711); [5c8d17a](https://github.com/ethers-io/ethers.js/commit/5c8d17a61825fe002bd45ee5b2239bfd8c8ae189)).
|
||||
- Fix JsonRpcProvider ignoring pollingInterval in options ([#4644](https://github.com/ethers-io/ethers.js/issues/4644); [7b7be0d](https://github.com/ethers-io/ethers.js/commit/7b7be0d1ef637f073b28bce54f4ecdfb8c88d09c)).
|
||||
|
||||
ethers/v6.12.0 (2024-04-17 01:09)
|
||||
---------------------------------
|
||||
|
||||
- Added Linea Sepolia network and Infura endpoint ([#4655](https://github.com/ethers-io/ethers.js/issues/4655); [b4aaab8](https://github.com/ethers-io/ethers.js/commit/b4aaab8d39fe47f8a1a296fa442f0856f84faf03)).
|
||||
- Do not send unsubscribe messages to destroyed Providers ([#4678](https://github.com/ethers-io/ethers.js/issues/4678); [c45935e](https://github.com/ethers-io/ethers.js/commit/c45935e29ca0dd1ecdf1277fa1107246041be580)).
|
||||
- Get definitive network from InfuraProvider when using InfuraWebSocketProvider ([38e32d8](https://github.com/ethers-io/ethers.js/commit/38e32d82145eb289e5179f9b6b11f4a9225a7022)).
|
||||
- Better error messages for transaction field mismatch ([#4659](https://github.com/ethers-io/ethers.js/issues/4659); [9230aa0](https://github.com/ethers-io/ethers.js/commit/9230aa0b9a88b5241915a8d6afa8a522d35abd5d)).
|
||||
- Added prevRandao to block ([#3372](https://github.com/ethers-io/ethers.js/issues/3372); [ec6a754](https://github.com/ethers-io/ethers.js/commit/ec6a754f0c8647dae59c73b2589225cb200d83dd)).
|
||||
- Added Polygon Amoy testnet ([#4645](https://github.com/ethers-io/ethers.js/issues/4645); [1717abb](https://github.com/ethers-io/ethers.js/commit/1717abbf29a14a6f6b106e479fe9a5b1f8768dc4)).
|
||||
- Added Chainstack provider ([#2741](https://github.com/ethers-io/ethers.js/issues/2741); [014004d](https://github.com/ethers-io/ethers.js/commit/014004d9402d7fd8c15553792cfb7a8a84ed327a)).
|
||||
- Added deep conversion to Result for toObject and toArray ([#4681](https://github.com/ethers-io/ethers.js/issues/4681); [03bfe2a](https://github.com/ethers-io/ethers.js/commit/03bfe2a4f7b29b15cd90127974b7fc1d8b03edf9)).
|
||||
- Added EIP-4844 broadcast support ([92bad88](https://github.com/ethers-io/ethers.js/commit/92bad88261a5d8a538535a7d5528162fe5010527)).
|
||||
- Fix ignored throttle parameters ([#4663](https://github.com/ethers-io/ethers.js/issues/4663); [12772e9](https://github.com/ethers-io/ethers.js/commit/12772e9498b70f8538838f30e16f3792ea90e173)).
|
||||
|
||||
ethers/v6.11.1 (2024-02-14 13:13)
|
||||
---------------------------------
|
||||
|
||||
- Throw an error when attempting to derive from a master path from a non-master node ([#4551](https://github.com/ethers-io/ethers.js/issues/4551); [556fdd9](https://github.com/ethers-io/ethers.js/commit/556fdd91d9b6bf7db4041bb099e66b2080e1a985)).
|
||||
- Allow ENS wildcards with labels up to 255 bytes wide; discussed with ENS and deemed safe ([#4543](https://github.com/ethers-io/ethers.js/issues/4543); [7f14bde](https://github.com/ethers-io/ethers.js/commit/7f14bdebf1aef6760462a1c2437c31f002b984fe)).
|
||||
- Enforce string is passed to toUtf8Bytes ([#4583](https://github.com/ethers-io/ethers.js/issues/4583); [f45bb87](https://github.com/ethers-io/ethers.js/commit/f45bb87aefaf2c6c3a4991f6e30a81c227ae83c0)).
|
||||
- Fix transaction.index not being populated on some backends ([#4591](https://github.com/ethers-io/ethers.js/issues/4591); [7f0e140](https://github.com/ethers-io/ethers.js/commit/7f0e140d5e3925a42e8bb2ac9eb1ba3fbd939864)).
|
||||
|
||||
ethers/v6.11.0 (2024-02-08 20:26)
|
||||
---------------------------------
|
||||
|
||||
- Allow transaction encoding for inferred type transactions ([f02211d](https://github.com/ethers-io/ethers.js/commit/f02211d055567b51373b5faa2c3dc6efe0523618)).
|
||||
- Added EIP-4788, receipts root and state root fields to Block ([#4570](https://github.com/ethers-io/ethers.js/issues/4570); [c5f126f](https://github.com/ethers-io/ethers.js/commit/c5f126faf7d826b6a99df0ee578ff3d0ef409381)).
|
||||
- Added EIP-4844 fields to Provider classes and formatter ([#4570](https://github.com/ethers-io/ethers.js/issues/4570); [7b4f2c1](https://github.com/ethers-io/ethers.js/commit/7b4f2c1a74db411829b5e8ef758bfa2ee21e5890)).
|
||||
- Assert BrowserProvider receives an EIP-1193 provider to fail early when passing undefined ethereum object ([b69f43b](https://github.com/ethers-io/ethers.js/commit/b69f43bc6f35da881ca7a0c8ccc5fda92edd076d)).
|
||||
- Add timeout to ContractTransactionResponse wait ([#4497](https://github.com/ethers-io/ethers.js/issues/4497); [095de51](https://github.com/ethers-io/ethers.js/commit/095de51e605a9b88576e5e34fd55a6e32befa4eb)).
|
||||
- Allow override keyword in human-readable ABI and improve error messages ([#4514](https://github.com/ethers-io/ethers.js/issues/4514), [#4548](https://github.com/ethers-io/ethers.js/issues/4548); [be5ec2d](https://github.com/ethers-io/ethers.js/commit/be5ec2d327a503b2e5fc0f37c47eee9e828f8e23)).
|
||||
- Expand Contract sub-class to accept BaseContract super-class constructor arguments ([#4538](https://github.com/ethers-io/ethers.js/issues/4538); [98496bc](https://github.com/ethers-io/ethers.js/commit/98496bc48ec23ce0d9c21d3c6c87e5b1b796a610)).
|
||||
- Allow network for default provider to be null to select mainnet ([#4501](https://github.com/ethers-io/ethers.js/issues/4501); [b6bf7ab](https://github.com/ethers-io/ethers.js/commit/b6bf7aba62fb38839cd01858432b801cc5c28a11)).
|
||||
- Allow long dnsEncode names with optional length parameter ([#4543](https://github.com/ethers-io/ethers.js/issues/4543); [a136348](https://github.com/ethers-io/ethers.js/commit/a1363483a56b0dee342595c8f44ed8fcce7ecca9)).
|
||||
- Fix parseLog signature when receiving read-only array for topics ([#4029](https://github.com/ethers-io/ethers.js/issues/4029), [#4459](https://github.com/ethers-io/ethers.js/issues/4459); [20cd8a2](https://github.com/ethers-io/ethers.js/commit/20cd8a23eaf8e8a14e2b51f7f64da4cb3e32fccb)).
|
||||
- Use Secure endpoints for BNB on Etherscan ([#4525](https://github.com/ethers-io/ethers.js/issues/4525); [1f6e188](https://github.com/ethers-io/ethers.js/commit/1f6e1882515195bd67f0bce9fe347ec05107324b)).
|
||||
- Added holesky network and related end-points for supporting providers ([c6e6c43](https://github.com/ethers-io/ethers.js/commit/c6e6c432574a0b7e55c300ab3e470aafdace28b3)).
|
||||
- Added EIP-4844 BLOb transactions ([#4554](https://github.com/ethers-io/ethers.js/issues/4554); [9c1e82e](https://github.com/ethers-io/ethers.js/commit/9c1e82e1230526ebcd62902890c4f24b1f7f7d79)).
|
||||
- Normalize EIP-712 types before computing the payload ([#4541](https://github.com/ethers-io/ethers.js/issues/4541); [56c1361](https://github.com/ethers-io/ethers.js/commit/56c1361ee83db8b68859caf0850c95ff70e7e306)).
|
||||
- Updated thrid-part provider URLs for QuickNode ([2b4891d](https://github.com/ethers-io/ethers.js/commit/2b4891d86e72e849079cb1dc98b18e158b0c0620)).
|
||||
- Fixed normalization and abstracted EIP-712 Array parsing ([#4541](https://github.com/ethers-io/ethers.js/issues/4541); [8f99601](https://github.com/ethers-io/ethers.js/commit/8f99601df1f26a8ba4d6d9dea5e033e7f688107e)).
|
||||
- Updated third-party provider network URLs ([#4542](https://github.com/ethers-io/ethers.js/issues/4542); [84ca14f](https://github.com/ethers-io/ethers.js/commit/84ca14f1ffc5afbdd7f4c26a9b734ec5951eee3c)).
|
||||
- Added additional sepolia testnets ([4efef76](https://github.com/ethers-io/ethers.js/commit/4efef76e8cab0acaf1b2ba231a0148f9381bb1ee)).
|
||||
- Fix EIP-712 type aliases for uint and int ([#4541](https://github.com/ethers-io/ethers.js/issues/4541); [43fb9c2](https://github.com/ethers-io/ethers.js/commit/43fb9c233696aeaa80b1c2b0e5fafce90e0ad508)).
|
||||
- Fixed typo in Error string ([#4539](https://github.com/ethers-io/ethers.js/issues/4539); [7882905](https://github.com/ethers-io/ethers.js/commit/78829050853093bc5291ae78fc5a904044759aa0)).
|
||||
- Better debugging output on fetch errors ([bee07a0](https://github.com/ethers-io/ethers.js/commit/bee07a0750b448a9d13c2d57014bcf27f43e2ed7)).
|
||||
|
||||
ethers/v6.10.0 (2024-01-12 19:46)
|
||||
---------------------------------
|
||||
|
||||
- Limit decoded result imflation ratio from ABI-encoded data ([#4537](https://github.com/ethers-io/ethers.js/issues/4537); [1b4debd](https://github.com/ethers-io/ethers.js/commit/1b4debd4a9e61d171bfc60590116facb8bdbd2da)).
|
||||
|
||||
ethers/v6.9.2 (2024-01-02 19:12)
|
||||
--------------------------------
|
||||
|
||||
- Fix Base58 padding for string representation of binary data ([#4527](https://github.com/ethers-io/ethers.js/issues/4527); [ccac24a](https://github.com/ethers-io/ethers.js/commit/ccac24a5b0a4d07a4b639c1c4d0a44703e32d418)).
|
||||
|
||||
ethers/v6.9.1 (2023-12-19 04:53)
|
||||
--------------------------------
|
||||
|
||||
- Fix uncatchable issue when sending transactions over JSON-RPC and provide some retry-recovery for missing v ([#4513](https://github.com/ethers-io/ethers.js/issues/4513); [1802215](https://github.com/ethers-io/ethers.js/commit/180221574c5d2af9ad85404af4fab8752d3d5029)).
|
||||
|
||||
ethers/v6.9.0 (2023-11-27 06:15)
|
||||
--------------------------------
|
||||
|
||||
- Use provider-specified suggested priority fee when available, otherwise fallback onto existing logic of 1 gwei ([#4463](https://github.com/ethers-io/ethers.js/issues/4463); [f8f11c7](https://github.com/ethers-io/ethers.js/commit/f8f11c754aa2c9b541db73d3bde66a8ffa5146f0)).
|
||||
- Add auto-detected static network support to providers and allow customizing socket provider options ([#4199](https://github.com/ethers-io/ethers.js/issues/4199), [#4418](https://github.com/ethers-io/ethers.js/issues/4418), [#4441](https://github.com/ethers-io/ethers.js/issues/4441); [4681b83](https://github.com/ethers-io/ethers.js/commit/4681b83d516ab2eb41ddb68b5021c97e14c6f2cf)).
|
||||
- Added Base network to AlchemyProvider ([#4384](https://github.com/ethers-io/ethers.js/issues/4384); [9e74d14](https://github.com/ethers-io/ethers.js/commit/9e74d14432e6efebdff21b9a7d2e6143af55e143)).
|
||||
- Fixed ParamType formatting causing bad tuple full and minimal ABI output ([#4329](https://github.com/ethers-io/ethers.js/issues/4329), [#4479](https://github.com/ethers-io/ethers.js/issues/4479); [2b67488](https://github.com/ethers-io/ethers.js/commit/2b6748815169abf2c99a647131875c13b8b6a787)).
|
||||
- Adjust for provider config weight when kicking off a request in FallbackProvider ([#4298](https://github.com/ethers-io/ethers.js/issues/4298); [da34e35](https://github.com/ethers-io/ethers.js/commit/da34e3569e95357d9469209d926cb645f0750bfa)).
|
||||
- More robust FallbackProvider broadcast ([#4186](https://github.com/ethers-io/ethers.js/issues/4186), [#4297](https://github.com/ethers-io/ethers.js/issues/4297), [#4442](https://github.com/ethers-io/ethers.js/issues/4442); [e2485b8](https://github.com/ethers-io/ethers.js/commit/e2485b8ef927d18c7a15d2d29b3b0feffec9991a)).
|
||||
- Added safe and finalized provider events ([#3921](https://github.com/ethers-io/ethers.js/issues/3921); [a92766e](https://github.com/ethers-io/ethers.js/commit/a92766e56ad04185625037d84fc28adaac7fae8c)).
|
||||
|
||||
ethers/v6.8.1 (2023-11-01 16:08)
|
||||
--------------------------------
|
||||
|
||||
- Fixed typo in error description when converting values to arrays ([#4427](https://github.com/ethers-io/ethers.js/issues/4427), [#4446](https://github.com/ethers-io/ethers.js/issues/4446); [8fed2f8](https://github.com/ethers-io/ethers.js/commit/8fed2f84768ace4bf3e5742c931a74841da7c637)).
|
||||
- Fix invalid token nonpayable being included in formatted constructor ([#4412](https://github.com/ethers-io/ethers.js/issues/4412); [2e0bd90](https://github.com/ethers-io/ethers.js/commit/2e0bd90744b8e76fcf03f75a66cb0061d50f7bd9)).
|
||||
- Add ENS support for Sepolia ([#4422](https://github.com/ethers-io/ethers.js/issues/4422); [1da50ae](https://github.com/ethers-io/ethers.js/commit/1da50ae286da01e58a70bb8df8aa5cc5d260e33e)).
|
||||
|
||||
ethers/v6.8.0 (2023-10-10 22:42)
|
||||
--------------------------------
|
||||
|
||||
- Replicated former ENS normalize behaviour for empty strings and update namehash testcases ([125ff11](https://github.com/ethers-io/ethers.js/commit/125ff1189b9cefb8abfd7da9c104c75e382a50cc)).
|
||||
- Initial shortMessage support for errors ([#4241](https://github.com/ethers-io/ethers.js/issues/4241); [d6a8c14](https://github.com/ethers-io/ethers.js/commit/d6a8c14d907cf8b90347444c0186b83a5db2e293)).
|
||||
- Fixed resolving ENS addresses used as from parameters ([#3961](https://github.com/ethers-io/ethers.js/issues/3961); [2616f4c](https://github.com/ethers-io/ethers.js/commit/2616f4c30c82bd45449b73fa37ef269d60a07d80)).
|
||||
- Merge: 9a4b7534 0c9c23b0 Merge branch 'v5.8-progress' ([cd5f0fe](https://github.com/ethers-io/ethers.js/commit/cd5f0fe03f2137fbc47e295f8db38a5151111e72)).
|
||||
- Allow more loose input format for RLP encoder ([#4402](https://github.com/ethers-io/ethers.js/issues/4402); [9a4b753](https://github.com/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f)).
|
||||
- Update to latest noble crypto libraries ([#3975](https://github.com/ethers-io/ethers.js/issues/3975); [b27faa0](https://github.com/ethers-io/ethers.js/commit/b27faa02ac8f90e2e54b188e8139c59d98c469e3)).
|
||||
- More robust configuration options for FetchRequest getUrl functions ([#4353](https://github.com/ethers-io/ethers.js/issues/4353); [9541f2f](https://github.com/ethers-io/ethers.js/commit/9541f2f70cd7f5c6f3caf93f5a3d5e34eae5281a)).
|
||||
- Ignore blockTag when calling Etherscan if it is the default block tag ([dcea9b3](https://github.com/ethers-io/ethers.js/commit/dcea9b353619d85878ad2ba340ae17e5c285d558)).
|
||||
|
||||
ethers/v6.7.1 (2023-08-15 03:08)
|
||||
--------------------------------
|
||||
|
||||
- Prevent destroyed providers from emitting network detection errors ([7d41730](https://github.com/ethers-io/ethers.js/commit/7d4173049edc3b4ff2de1971c3ecca3b08588651)).
|
||||
- Fix VSCode reported lint issues ([#4153](https://github.com/ethers-io/ethers.js/issues/4153), [#4156](https://github.com/ethers-io/ethers.js/issues/4156), [#4158](https://github.com/ethers-io/ethers.js/issues/4158), [#4159](https://github.com/ethers-io/ethers.js/issues/4159); [4eb84da](https://github.com/ethers-io/ethers.js/commit/4eb84da865a82a27c5113c38102b6b710096958e), [203dfc3](https://github.com/ethers-io/ethers.js/commit/203dfc33b9c8e72c9cdfe0a349ac763ef17a4484)).
|
||||
- Add gasPrice to Polygon feeData for type 0 and type 1 legacy transactions ([#4315](https://github.com/ethers-io/ethers.js/issues/4315); [0df3ab9](https://github.com/ethers-io/ethers.js/commit/0df3ab93137039de1e1986bbfe9a5b32ceffa8a4)).
|
||||
|
||||
ethers/v6.7.0 (2023-08-02 23:52)
|
||||
--------------------------------
|
||||
|
||||
- Fixed receipt wait not throwing on reverted transactions ([25fef4f](https://github.com/ethers-io/ethers.js/commit/25fef4f8d756f5bbf5a2a05e38233248a8eb43ac)).
|
||||
- Added custom priority fee to Optimism chain (via telegram) ([ff80b04](https://github.com/ethers-io/ethers.js/commit/ff80b04f31da21496e72d3687cecd1c01efaecc5)).
|
||||
- Add context to Logs that fail decoding due to ABI issues to help debugging ([f3c46f2](https://github.com/ethers-io/ethers.js/commit/f3c46f22994d194ff78b3b176407b2ecb7af1c77)).
|
||||
- Added new exports for FallbackProviderOptions and FetchUrlFeeDataNetworkPlugin ([#2828](https://github.com/ethers-io/ethers.js/issues/2828), [#4160](https://github.com/ethers-io/ethers.js/issues/4160); [b1dbbb0](https://github.com/ethers-io/ethers.js/commit/b1dbbb0de3f10a3d9e12d6a84ad5c52bea25c7f6)).
|
||||
- Allow overriding pollingInterval in JsonRpcProvider constructor (via discord) ([f42f258](https://github.com/ethers-io/ethers.js/commit/f42f258beb305a06e563ad16522f095a72da32eb)).
|
||||
- Fixed FallbackProvider priority sorting ([#4150](https://github.com/ethers-io/ethers.js/issues/4150); [78538eb](https://github.com/ethers-io/ethers.js/commit/78538eb100addd135d29e60c9fa4fed3946278fa)).
|
||||
- Added linea network to InfuraProvider and Network ([#4184](https://github.com/ethers-io/ethers.js/issues/4184), [#4190](https://github.com/ethers-io/ethers.js/issues/4190); [d3e5e2c](https://github.com/ethers-io/ethers.js/commit/d3e5e2c45b28c377f306091acfc024e30c49ef20)).
|
||||
- Added whitelist support to getDefaultProvider ([82bb936](https://github.com/ethers-io/ethers.js/commit/82bb936542e29c6441ac8dc2d3ebbdd4edb708ee)).
|
||||
- Add Polygon RPC endpoints to the default provider ([#3689](https://github.com/ethers-io/ethers.js/issues/3689); [23704a9](https://github.com/ethers-io/ethers.js/commit/23704a9c44d5857817e138fb19d44ce2103ca005)).
|
||||
- Added customizable quorum to FallbackProvider ([#4160](https://github.com/ethers-io/ethers.js/issues/4160); [8f0a509](https://github.com/ethers-io/ethers.js/commit/8f0a50921a12a866addcf5b0fabc576bfc287689)).
|
||||
- Added basic Gas Station support via a NetworkPlugin ([#2828](https://github.com/ethers-io/ethers.js/issues/2828); [229145d](https://github.com/ethers-io/ethers.js/commit/229145ddf566a962517588eaeed155734c7d4598)).
|
||||
- Add BNB URLs to EtherscanProvider networks ([ec39abe](https://github.com/ethers-io/ethers.js/commit/ec39abe067259fad4ea8607a6c5aece61890eb41)).
|
||||
- Added tests for JSON format ([#4248](https://github.com/ethers-io/ethers.js/issues/4248); [ba36079](https://github.com/ethers-io/ethers.js/commit/ba36079a285706694532ce726568c4c447acad47)).
|
||||
- Use empty string for unnamed parameters in JSON output instead of undefined ([#4248](https://github.com/ethers-io/ethers.js/issues/4248); [8c2652c](https://github.com/ethers-io/ethers.js/commit/8c2652c8cb4d054207d89688d30930869d9d3f8b)).
|
||||
- Return undefined for Contract properties that do not exist instead of throwing an error ([#4266](https://github.com/ethers-io/ethers.js/issues/4266); [5bf7b34](https://github.com/ethers-io/ethers.js/commit/5bf7b3494ed62952fc387b4368a0bdc86dfe163e)).
|
||||
|
||||
ethers/v6.6.7 (2023-07-28 14:50)
|
||||
--------------------------------
|
||||
|
||||
- Prevent malformed logs from preventing other logs being decoded ([#4275](https://github.com/ethers-io/ethers.js/issues/4275); [0dca645](https://github.com/ethers-io/ethers.js/commit/0dca645632d73488bf6ad460e0d779361a537bbe)).
|
||||
- Allow visibility on human-readable constructors ([#4278](https://github.com/ethers-io/ethers.js/issues/4278); [3a52201](https://github.com/ethers-io/ethers.js/commit/3a52201fe2ba68a00105cca2c0901da5ffa18d6b)).
|
||||
|
||||
ethers/v6.6.6 (2023-07-28 01:14)
|
||||
--------------------------------
|
||||
|
||||
- Better error message when passing invalid overrides object into a contract deployment ([#4182](https://github.com/ethers-io/ethers.js/issues/4182); [aa2ea3d](https://github.com/ethers-io/ethers.js/commit/aa2ea3d5296956fd0d40b83888e1ca053bb250ee)).
|
||||
|
||||
ethers/v6.6.5 (2023-07-24 00:04)
|
||||
--------------------------------
|
||||
|
||||
- Reflect symbols in the Contract Proxy to target ([#4084](https://github.com/ethers-io/ethers.js/issues/4048); [ac2f5e5](https://github.com/ethers-io/ethers.js/commit/ac2f5e563b8ec0e91a931470eb6ea58b0c01fb3d)).
|
||||
- Allow arrays of address for indexed filter topics ([#4259](https://github.com/ethers-io/ethers.js/issues/4259); [93af87c](https://github.com/ethers-io/ethers.js/commit/93af87c447eeb77090e29bd940612603b3f74026)).
|
||||
- Fixed filter encoding for bytesX ([#4244](https://github.com/ethers-io/ethers.js/issues/4244); [fa3a883](https://github.com/ethers-io/ethers.js/commit/fa3a883ff7c88611ce766f58bdd4b8ac90814470)).
|
||||
- Fix JSON formatting for tuple arrays ([#4237](https://github.com/ethers-io/ethers.js/issues/4237); [a8bc49b](https://github.com/ethers-io/ethers.js/commit/a8bc49bdcf07a51b35f38cf209db27e116cc1a59)).
|
||||
- Better error messages when parsing fragment strings ([#4246](https://github.com/ethers-io/ethers.js/issues/4246); [e36b6c3](https://github.com/ethers-io/ethers.js/commit/e36b6c35b7bc777c9adbe0055b32b31a13185240)).
|
||||
- Include the missing fragment key and args when no matching Contract method or event is present ([#3809](https://github.com/ethers-io/ethers.js/issues/3809); [450a176](https://github.com/ethers-io/ethers.js/commit/450a176ee25f88a2ddb9ff23b153ef70bf1dc546)).
|
||||
- Prevent a single malformed event from preventing other Contract logs; reported on Discord ([b1375f4](https://github.com/ethers-io/ethers.js/commit/b1375f4e4463b856855ebc684b45945455ac082e)).
|
||||
|
||||
ethers/v6.6.4 (2023-07-16 00:35)
|
||||
--------------------------------
|
||||
|
||||
- More robust support for Signatures with less standard parameter values ([#3835](https://github.com/ethers-io/ethers.js/issues/3835), [#4228](https://github.com/ethers-io/ethers.js/issues/4228); [a7e4048](https://github.com/ethers-io/ethers.js/commit/a7e4048fe3b75a743cec8c8ef2a5fad4bdc8b14c)).
|
||||
- Fixed CCIP-read in the EnsResolver ([#4221](https://github.com/ethers-io/ethers.js/issues/4221); [57f1e1c](https://github.com/ethers-io/ethers.js/commit/57f1e1c47148921148e35c10c83539531942923e)).
|
||||
- Skip checking confirmation count if confirms is 0 ([#4229](https://github.com/ethers-io/ethers.js/issues/4229), [#4242](https://github.com/ethers-io/ethers.js/issues/4242); [492919d](https://github.com/ethers-io/ethers.js/commit/492919d14f646c630f29e1596e5564df1e51f309)).
|
||||
- Fixed waiting for confirmations in deployment transactions ([#4212](https://github.com/ethers-io/ethers.js/issues/4212), [#4230](https://github.com/ethers-io/ethers.js/issues/4230); [43c253a](https://github.com/ethers-io/ethers.js/commit/43c253a402f52a08353c424f6c4e236836cfaf36)).
|
||||
|
||||
ethers/v6.6.3 (2023-07-11 20:55)
|
||||
--------------------------------
|
||||
|
||||
- Throw more descriptive error for unconfigured ENS name contract targets ([#4213](https://github.com/ethers-io/ethers.js/issues/4213); [80f62ef](https://github.com/ethers-io/ethers.js/commit/80f62efc41c3a29e690af40a1976928b7f886a0e)).
|
||||
- Fixed contract once not running stop callback ([7d061b7](https://github.com/ethers-io/ethers.js/commit/7d061b786f72cbfc461bf80d139d10aeff533a6e)).
|
||||
|
||||
ethers/v6.6.2 (2023-06-27 23:30)
|
||||
--------------------------------
|
||||
|
||||
- Wider error detection for call exceptions on certain backends ([#4154](https://github.com/ethers-io/ethers.js/issues/4154), [#4155](https://github.com/ethers-io/ethers.js/issues/4155); [9197f9f](https://github.com/ethers-io/ethers.js/commit/9197f9f938b5f3b5f97c043f2dab06854656c932)).
|
||||
- Added wider error deetection for JSON-RPC unsupported operation ([#4162](https://github.com/ethers-io/ethers.js/issues/4162); [1dc8986](https://github.com/ethers-io/ethers.js/commit/1dc8986a33be9dce536b24189326cbfaabf1342e)).
|
||||
- Fixed formatUnits and parseUnits for values over 128 bits ([#4037](https://github.com/ethers-io/ethers.js/issues/4037), [#4133](https://github.com/ethers-io/ethers.js/issues/4133); [3d141b4](https://github.com/ethers-io/ethers.js/commit/3d141b44b528f52b3c9205125b64ce342f91643c)).
|
||||
|
||||
ethers/v6.6.1 (2023-06-23 00:35)
|
||||
--------------------------------
|
||||
|
||||
- Fixed CCIP read in contract calls ([#4043](https://github.com/ethers-io/ethers.js/issues/4043); [d51e3fb](https://github.com/ethers-io/ethers.js/commit/d51e3fbff43c31d88353ac71151626312d22c0b9), [857aa8c](https://github.com/ethers-io/ethers.js/commit/857aa8ccc30f25eda8e83dcac3e0ad2c1a5ce2b3)).
|
||||
|
||||
ethers/v6.6.0 (2023-06-13 21:42)
|
||||
--------------------------------
|
||||
|
||||
- Add exports for AbstractProviderOptions and for MulticoinProviderPlugin ([203a759](https://github.com/ethers-io/ethers.js/commit/203a759efc65bf6901d3e574a601525ea3936238)).
|
||||
- Add option to adjust perform cache timeout in AbstractProvider ([de0f518](https://github.com/ethers-io/ethers.js/commit/de0f5189f695c181a5fa09100af96a691a338e2b)).
|
||||
- Add full support for MultiCoin plugins and automatic detection for EVM-compatible coin types ([#3888](https://github.com/ethers-io/ethers.js/issues/3888), [#4081](https://github.com/ethers-io/ethers.js/issues/4081); [84375be](https://github.com/ethers-io/ethers.js/commit/84375be92d32a2939cf4a2f713e4c554b5b54a32)).
|
||||
- Allow Interface instances where InterfaceAbi are allowed ([#4142](https://github.com/ethers-io/ethers.js/issues/4142); [2318005](https://github.com/ethers-io/ethers.js/commit/2318005dfd996c8a7c51603d0264ceabe9bb6141)).
|
||||
- Allow Numeric type for decimals in FixedNumber ([#4141](https://github.com/ethers-io/ethers.js/issues/4141); [9055ef6](https://github.com/ethers-io/ethers.js/commit/9055ef6c69291f1a44ea23a2e7b5aaf3140a5577)).
|
||||
|
||||
ethers/v6.5.1 (2023-06-07 20:19)
|
||||
--------------------------------
|
||||
|
||||
- Fix lost promise fulfillment when a batch has an error response ([#4126](https://github.com/ethers-io/ethers.js/issues/4126); [8dd21f0](https://github.com/ethers-io/ethers.js/commit/8dd21f03334ffd3cdb7ac532376d51fd4130c7ab)).
|
||||
|
||||
ethers/v6.5.0 (2023-06-06 22:41)
|
||||
--------------------------------
|
||||
|
||||
- Fix CJS browser bundling ([#4033](https://github.com/ethers-io/ethers.js/issues/4033); [38ee319](https://github.com/ethers-io/ethers.js/commit/38ee3195b0192d8180899fd61308e03fa3a0eb32)).
|
||||
- Fixed type guard for non-Typed instances ([#4087](https://github.com/ethers-io/ethers.js/issues/4087); [20c3d1b](https://github.com/ethers-io/ethers.js/commit/20c3d1b109743e33ab60a75d69bf7ede73b15ce2)).
|
||||
- Add confirmations to TransactionResponse ([#4094](https://github.com/ethers-io/ethers.js/issues/4094); [bb8685b](https://github.com/ethers-io/ethers.js/commit/bb8685b112ce1c689c740d4dbcb358c16fb9b22d)).
|
||||
- Fix stray promises when a node returns invalid results ([#4118](https://github.com/ethers-io/ethers.js/issues/4118); [3c1bad2](https://github.com/ethers-io/ethers.js/commit/3c1bad2fb7ad4a6ff90ff11f3e382fd18e41c800)).
|
||||
- Added support to detect and stop providers spinning on initial network detection ([#4015](https://github.com/ethers-io/ethers.js/issues/4015); [f37a52d](https://github.com/ethers-io/ethers.js/commit/f37a52da28ac130b7f4de52901618320994ea87a)).
|
||||
|
||||
ethers/v6.4.2 (2023-06-05 22:41)
|
||||
--------------------------------
|
||||
|
||||
- Bump ens-normalize version ([#4071](https://github.com/ethers-io/ethers.js/issues/4071), [#4077](https://github.com/ethers-io/ethers.js/issues/4077), [#4080](https://github.com/ethers-io/ethers.js/issues/4080), [#4102](https://github.com/ethers-io/ethers.js/issues/4102); [c135784](https://github.com/ethers-io/ethers.js/commit/c1357847dcdec93d72f28d890f9271d0289ccefd)).
|
||||
- Fix for networks with polling with non-consistent block and filter events ([#4119](https://github.com/ethers-io/ethers.js/issues/4119); [9b0e992](https://github.com/ethers-io/ethers.js/commit/9b0e9920c09577296ec0e2abb3acc3f3299d96c7)).
|
||||
|
||||
ethers/v6.4.1 (2023-06-01 17:52)
|
||||
--------------------------------
|
||||
|
||||
- Fixed AbstractProvider lookupAddress bug ([#4086](https://github.com/ethers-io/ethers.js/issues/4086); [15ed2f5](https://github.com/ethers-io/ethers.js/commit/15ed2f5b32084527961332481c9442a313036a01)).
|
||||
- Fix FixedNumber comparison bug ([#4112](https://github.com/ethers-io/ethers.js/issues/4112); [d8e9586](https://github.com/ethers-io/ethers.js/commit/d8e9586044e888e424b5ead0f6e01f88140dba8a)).
|
||||
|
||||
ethers/v6.4.0 (2023-05-18 17:28)
|
||||
--------------------------------
|
||||
|
||||
- Coerce value into BigInt when checking for value ([83d7f43](https://github.com/ethers-io/ethers.js/commit/83d7f43b9ca4b9868a3952510e56b41ea8610baa)).
|
||||
- Better errors when junk passed as Contract target ([#3947](https://github.com/ethers-io/ethers.js/issues/3947), [#4053](https://github.com/ethers-io/ethers.js/issues/4053); [219b16d](https://github.com/ethers-io/ethers.js/commit/219b16dc284b0c6a532c8c49e824d8234f94222b)).
|
||||
- More robust message checking in socket providers ([#4051](https://github.com/ethers-io/ethers.js/issues/4051); [f58990b](https://github.com/ethers-io/ethers.js/commit/f58990b80cfd83579014339315e58663c0aa6ae3)).
|
||||
- More robust defaultProvider start-up when a backend fails on bootstrap ([#3979](https://github.com/ethers-io/ethers.js/issues/3979); [984f6fa](https://github.com/ethers-io/ethers.js/commit/984f6fa155fca08ebec2353c75ee0a0b974e8568)).
|
||||
- Fix Result.map when Array contains zero elements ([#4036](https://github.com/ethers-io/ethers.js/issues/4036), [#4048](https://github.com/ethers-io/ethers.js/issues/4048); [2e5935b](https://github.com/ethers-io/ethers.js/commit/2e5935b91cff462165a054b33c8b8413f51e3f39)).
|
||||
- Fixed error handling for contracts with receive and non-payable fallback ([6db7458](https://github.com/ethers-io/ethers.js/commit/6db7458cf0a09e8e8a2abb712239972ab81dc9df)).
|
||||
- Remove superfluous logging in defaultProvider ([f87f6ef](https://github.com/ethers-io/ethers.js/commit/f87f6ef9a01ca399664f9fe106b0a677dba0c8e8)).
|
||||
- Removed superfluous logging ([1bc8b55](https://github.com/ethers-io/ethers.js/commit/1bc8b55d502a95c4ae58352bdcfce9e5f9ea72d3)).
|
||||
- Fix receipt gas price when effectiveGasPrice is 0 on testnets ([#4014](https://github.com/ethers-io/ethers.js/issues/4014); [2b0fe61](https://github.com/ethers-io/ethers.js/commit/2b0fe611335432aee334d777a64d8c7827881618)).
|
||||
- Added error event to provider ([#3970](https://github.com/ethers-io/ethers.js/issues/3970), [#3982](https://github.com/ethers-io/ethers.js/issues/3982); [af0291c](https://github.com/ethers-io/ethers.js/commit/af0291c01639674658f5049343da88a84da763a1)).
|
||||
- Removed superfluous parameters for internal transaction functions ([e848978](https://github.com/ethers-io/ethers.js/commit/e8489787585c2e69a23f6cdec6901f22b096aebe)).
|
||||
- More aggressive tree-shaking ([076edad](https://github.com/ethers-io/ethers.js/commit/076edad81ef62474f48f2b4c8af0edc6e4fd64f2)).
|
||||
- More flexible static network checking ([#3834](https://github.com/ethers-io/ethers.js/issues/3834); [7c0465c](https://github.com/ethers-io/ethers.js/commit/7c0465c5fb834eba18d4e5535072685bdc1029f0)).
|
||||
- Support transitive dependants that use non-node16 moduleResolution ([#3920](https://github.com/ethers-io/ethers.js/issues/3920); [df685b1](https://github.com/ethers-io/ethers.js/commit/df685b1bd9ad346ee7863beb6c3ca3f4e94932a2)).
|
||||
- Populate any missing log.removed with false ([#3959](https://github.com/ethers-io/ethers.js/issues/3959); [4e478e6](https://github.com/ethers-io/ethers.js/commit/4e478e625d5648f2172631eef5fda5776ee776b0)).
|
||||
|
||||
ethers/v6.3.0 (2023-04-06 04:35)
|
||||
--------------------------------
|
||||
|
||||
- Added support for legacy ABI JSON fragments ([#3932](https://github.com/ethers-io/ethers.js/issues/3932); [8c5973e](https://github.com/ethers-io/ethers.js/commit/8c5973e3a9b8d4d4ed80bdf209d8a0b6cc6b8d6d)).
|
||||
- Add _in_ operator support for contract and contract.filters ([#3901](https://github.com/ethers-io/ethers.js/issues/3901); [c58ab3a](https://github.com/ethers-io/ethers.js/commit/c58ab3a97687e15a3ffe30b038089c5f4b570bb9)).
|
||||
- Fixed TypedData unsigned value range ([#3873](https://github.com/ethers-io/ethers.js/issues/3873); [a851b24](https://github.com/ethers-io/ethers.js/commit/a851b24d0af009ecf277766d2a5f81f9b3e7f9f8)).
|
||||
- Added missing export for getIndexedAccountPath ([#3875](https://github.com/ethers-io/ethers.js/issues/3875); [356ff2b](https://github.com/ethers-io/ethers.js/commit/356ff2becb4f4d3622b281d3825770af5caf71ca)).
|
||||
- Fixed TypedData payloads for JSON-restricted chainId field ([#3836](https://github.com/ethers-io/ethers.js/issues/3836); [50b74b8](https://github.com/ethers-io/ethers.js/commit/50b74b8806ef2064f2764b09f89c7ac75fda3a3c)).
|
||||
|
||||
ethers/v6.2.3 (2023-03-27 21:22)
|
||||
--------------------------------
|
||||
|
||||
- Fixed events when emitted in WebSocketProvider ([#3767](https://github.com/ethers-io/ethers.js/issues/3767), [#3922](https://github.com/ethers-io/ethers.js/issues/3922); [ffaafc0](https://github.com/ethers-io/ethers.js/commit/ffaafc0ce1cf40d1d76d8d814c9c445057bf6989)).
|
||||
|
||||
ethers/v6.2.2 (2023-03-24 00:49)
|
||||
--------------------------------
|
||||
|
||||
- Fixed FetchRequest when using credentials ([#3897](https://github.com/ethers-io/ethers.js/issues/3897); [88e8124](https://github.com/ethers-io/ethers.js/commit/88e8124c37d377628f9b8abdf140fc07ad06259f)).
|
||||
|
||||
ethers/v6.2.1 (2023-03-23 17:33)
|
||||
--------------------------------
|
||||
|
||||
- Stall block polling bootstrap when the network is down ([#3924](https://github.com/ethers-io/ethers.js/issues/3924); [603d474](https://github.com/ethers-io/ethers.js/commit/603d47496e2b667c15b72f315261d6e299381848)).
|
||||
|
||||
ethers/v6.2.0 (2023-03-20 15:53)
|
||||
--------------------------------
|
||||
|
||||
- Added extra details in the error info field for RPC errors ([30ffa78](https://github.com/ethers-io/ethers.js/commit/30ffa78d1441fa033677fa09237fc135a314f373)).
|
||||
- Remove Ankr as a default for now as the provided API key is failing ([6e01e54](https://github.com/ethers-io/ethers.js/commit/6e01e5448f4a3e2d30288d4c8447db295c3a2e7a)).
|
||||
- Fixed deferred filters after unsafe-eval changes ([#3749](https://github.com/ethers-io/ethers.js/issues/3749), [#3763](https://github.com/ethers-io/ethers.js/issues/3763); [2e3802a](https://github.com/ethers-io/ethers.js/commit/2e3802a83b8ad2f5a6269d79fbd1c83c9f2d1047)).
|
||||
- Remove use of Function sub-class to address unsafe-eval issues ([#3749](https://github.com/ethers-io/ethers.js/issues/3749), [#3763](https://github.com/ethers-io/ethers.js/issues/3763); [7d3af51](https://github.com/ethers-io/ethers.js/commit/7d3af512c75b4c24027ec2daef1e9f4c1064194a)).
|
||||
- Added verifyTypedData utility (reported on Farcaster) ([f06a445](https://github.com/ethers-io/ethers.js/commit/f06a445247f3b294f9fc805cc8fe0752accb8edc)).
|
||||
- Removed stray logging in IpcProvider ([#3908](https://github.com/ethers-io/ethers.js/issues/3908), [#3909](https://github.com/ethers-io/ethers.js/issues/3909); [e11d4c1](https://github.com/ethers-io/ethers.js/commit/e11d4c1c20cc5b6fd5803cf9636c4f5bc082dab7)).
|
||||
- Fixed legacy serialization for implicit chainId transactions ([#3898](https://github.com/ethers-io/ethers.js/issues/3898), [#3899](https://github.com/ethers-io/ethers.js/issues/3899); [fcf6c8f](https://github.com/ethers-io/ethers.js/commit/fcf6c8fcee95ec412aaafba8ec84d5049b077a4e)).
|
||||
- Fix Webpack issue (reported on discord) ([3ad4273](https://github.com/ethers-io/ethers.js/commit/3ad4273b8b714bff344ccbfb1eb71ed8a8b7cfa4)).
|
||||
- Fix some bundlers which cannot handle recursive pkg.exports ([#3848](https://github.com/ethers-io/ethers.js/issues/3848); [6315e78](https://github.com/ethers-io/ethers.js/commit/6315e78ea32147653b72ca06f6800f3e2df6ffbf)).
|
||||
- Fixed typo in signature.s error ([#3891](https://github.com/ethers-io/ethers.js/issues/3891); [47ef3eb](https://github.com/ethers-io/ethers.js/commit/47ef3ebde37bfa0c015c258c3d8a6800d751e147)).
|
||||
- Fixed stray unreachable code ([#3890](https://github.com/ethers-io/ethers.js/issues/3890); [c220fe2](https://github.com/ethers-io/ethers.js/commit/c220fe2ea747ccc80cd3c4020e0278e3daf3c4fc)).
|
||||
- Move all wrapping to proper _wrap functions ([#3818](https://github.com/ethers-io/ethers.js/issues/3818); [02a0aad](https://github.com/ethers-io/ethers.js/commit/02a0aad61212c35e8d2723a8ae589989b97dae3e)).
|
||||
|
||||
ethers/v6.1.0 (2023-03-07 02:10)
|
||||
--------------------------------
|
||||
|
||||
- Fixed ethers imported in web workers ([#3856](https://github.com/ethers-io/ethers.js/issues/3856); [5f2678f](https://github.com/ethers-io/ethers.js/commit/5f2678fb059d643638b9cc1dc59cbfc61ce7a7b8)).
|
||||
- Added Sepolia support ([#3863](https://github.com/ethers-io/ethers.js/issues/3863); [abeaa74](https://github.com/ethers-io/ethers.js/commit/abeaa74da04fbe25e837a2ffa7d1e9c1257a5da5)).
|
||||
- Added missing exports ([#3734](https://github.com/ethers-io/ethers.js/issues/3734); [06aa303](https://github.com/ethers-io/ethers.js/commit/06aa30363f88144db672376d39012d7fe3f86c33)).
|
||||
- Allow null values for TypedData domain ([#3623](https://github.com/ethers-io/ethers.js/issues/3623); [a32af3a](https://github.com/ethers-io/ethers.js/commit/a32af3adc104c4b07a45097a4a3725a4ce9e0be6)).
|
||||
- Added listAccounts to JsonRpcProvider ([#3778](https://github.com/ethers-io/ethers.js/issues/3778); [287d94f](https://github.com/ethers-io/ethers.js/commit/287d94fc454d03f1b3086ea98745131cdf40129a)).
|
||||
- Allow BigInt for blockTag ([#3780](https://github.com/ethers-io/ethers.js/issues/3780); [fe1f04c](https://github.com/ethers-io/ethers.js/commit/fe1f04c6e5fb4254a100f492d7dcbdc3cf19a446)).
|
||||
- Fixed typo in error messages ([#3822](https://github.com/ethers-io/ethers.js/issues/3822), [#3824](https://github.com/ethers-io/ethers.js/issues/3824); [f1a810d](https://github.com/ethers-io/ethers.js/commit/f1a810dcb56df54b1e1567f2a59c73500619472f)).
|
||||
- Re-adding definition files to require exports ([#3703](https://github.com/ethers-io/ethers.js/issues/3703); [76fab92](https://github.com/ethers-io/ethers.js/commit/76fab923da33e71e6bb751bb0b5e3ba3faa27ab2)).
|
||||
|
||||
ethers/v6.0.8 (2023-02-23 06:30)
|
||||
--------------------------------
|
||||
|
||||
- Fix matic-mumbai network and include aliases to legacy names ([#3811](https://github.com/ethers-io/ethers.js/issues/3811); [20bbd12](https://github.com/ethers-io/ethers.js/commit/20bbd1281911d31b360f6f5032251c9257943541)).
|
||||
- Fixed getSigner bug ([#3821](https://github.com/ethers-io/ethers.js/issues/3821); [388edf6](https://github.com/ethers-io/ethers.js/commit/388edf6abc168f89f1ca609e9e5b025dc9205add)).
|
||||
|
||||
ethers/v6.0.7 (2023-02-23 01:41)
|
||||
--------------------------------
|
||||
|
||||
- Fixed getContentHash ([#3819](https://github.com/ethers-io/ethers.js/issues/3819); [b993f7c](https://github.com/ethers-io/ethers.js/commit/b993f7c3b6c0e135c460c8b8dc5943215628231a)).
|
||||
|
||||
ethers/v6.0.6 (2023-02-22 21:53)
|
||||
--------------------------------
|
||||
|
||||
- Added chain parameters for Arbitrum and Optimism ([#3811](https://github.com/ethers-io/ethers.js/issues/3811); [77a7323](https://github.com/ethers-io/ethers.js/commit/77a7323119923e596f4def4f1bc90beae5447320)).
|
||||
- Fix NonceManager race condition ([#3812](https://github.com/ethers-io/ethers.js/issues/3812), [#3813](https://github.com/ethers-io/ethers.js/issues/3813); [5a3c10a](https://github.com/ethers-io/ethers.js/commit/5a3c10a29c047609a50828adb620d88aa8cf0014)).
|
||||
- Add UMD output to dist builds ([#3814](https://github.com/ethers-io/ethers.js/issues/3814); [f9eed4c](https://github.com/ethers-io/ethers.js/commit/f9eed4cdb190b06dd4ddaa2382c1de42e8e98de6)).
|
||||
|
||||
ethers/v6.0.5 (2023-02-18 22:36)
|
||||
--------------------------------
|
||||
|
||||
- Fixed Result to behave correctly like an array using slice and toArray ([#3787](https://github.com/ethers-io/ethers.js/issues/3787); [399356b](https://github.com/ethers-io/ethers.js/commit/399356b91227db04e496628af60c4b8e38207760)).
|
||||
- Replaced substring from 0 index with startsWith ([#3691](https://github.com/ethers-io/ethers.js/issues/3691); [4512e97](https://github.com/ethers-io/ethers.js/commit/4512e97f9b55607ce388aa6eb63a37fc196a5d9d)).
|
||||
- Fixed inverted assert in duplicate name detection for ABI encoding ([#3792](https://github.com/ethers-io/ethers.js/issues/3792); [762c2f3](https://github.com/ethers-io/ethers.js/commit/762c2f34eac848c5464389f11d1697dcd8ebcbb5)).
|
||||
- Fixed missing property during transaction copy ([#3793](https://github.com/ethers-io/ethers.js/issues/3793); [48bbef7](https://github.com/ethers-io/ethers.js/commit/48bbef7ade69bcfe86542f752f15049cc62f4141)).
|
||||
- Add support for Wallet private keys without 0x prefix ([#3768](https://github.com/ethers-io/ethers.js/issues/3768); [4665fb4](https://github.com/ethers-io/ethers.js/commit/4665fb4c6886c8b344dee316ba9f4fde57ce7557)).
|
||||
- Fixed quicknode property for defaultProvider ([#3741](https://github.com/ethers-io/ethers.js/issues/3741); [a8afb72](https://github.com/ethers-io/ethers.js/commit/a8afb72fbbceb6a5024c1edb85badb72099787ea)).
|
||||
- Fixed exports field order ([#3703](https://github.com/ethers-io/ethers.js/issues/3703), [#3755](https://github.com/ethers-io/ethers.js/issues/3755); [085a905](https://github.com/ethers-io/ethers.js/commit/085a9054f349afb816ca1a123737293ec9bd2532)).
|
||||
|
||||
ethers/v6.0.4 (2023-02-16 08:55)
|
||||
--------------------------------
|
||||
|
||||
- Fixed custom error decoding ([#3785](https://github.com/ethers-io/ethers.js/issues/3785); [4d9b29d](https://github.com/ethers-io/ethers.js/commit/4d9b29de751e2387c143e474bb96d271da892ea6)).
|
||||
- Removed stray debug logging ([e1e0929](https://github.com/ethers-io/ethers.js/commit/e1e09293483a9d07fd8e8f96552aa958b5ec45ed)).
|
||||
- Fixed lookupAddress when bad resolver is present ([#3782](https://github.com/ethers-io/ethers.js/issues/3782); [92def9c](https://github.com/ethers-io/ethers.js/commit/92def9c1489bb35ad13fe58a1cd107ee3a05a112)).
|
||||
- Fixed FallbackProvider median calculation ([#3746](https://github.com/ethers-io/ethers.js/issues/3746); [83957dc](https://github.com/ethers-io/ethers.js/commit/83957dc283043b9af8f6e89920faac3e09ca69fc)).
|
||||
- Move the xnf normalize variant to pkg.browser instead of import ([#3724](https://github.com/ethers-io/ethers.js/issues/3724); [179e6ca](https://github.com/ethers-io/ethers.js/commit/179e6ca520392177c7dea5e477b29930952ed637)).
|
||||
|
||||
ethers/v6.0.3 (2023-02-12 22:45)
|
||||
--------------------------------
|
||||
|
||||
- Allow null type in transaction receipt for legacy type 0 networks ([#3459](https://github.com/ethers-io/ethers.js/issues/3459); [6372a46](https://github.com/ethers-io/ethers.js/commit/6372a46b1b273db3e4c1189daebb4b888bd588bc)).
|
||||
- Fixed events when slicing immutable Result ([#3765](https://github.com/ethers-io/ethers.js/issues/3765); [2ba4a17](https://github.com/ethers-io/ethers.js/commit/2ba4a172555b7e17ac01fedfc944549defab61bc)).
|
||||
- More robust support on networks which throw when filters are not supported ([#3767](https://github.com/ethers-io/ethers.js/issues/3767); [37bf4fb](https://github.com/ethers-io/ethers.js/commit/37bf4fb55563d7ff66edee15c7515c8a0d6a2266)).
|
||||
- Fixed ignored polling override for JsonRpcApiProvider ([400d576](https://github.com/ethers-io/ethers.js/commit/400d57621b3e9a33679a528b5072449699f0a068)).
|
||||
|
||||
ethers/v6.0.2 (2023-02-04 08:50)
|
||||
--------------------------------
|
||||
|
||||
- Fixed crossed assert in Fetch ([#3733](https://github.com/ethers-io/ethers.js/issues/3733); [6c338c1](https://github.com/ethers-io/ethers.js/commit/6c338c1c5b4013db9754c9d1a33dcbf54330e5c7)).
|
||||
|
||||
ethers/v6.0.1 (2023-02-04 04:06)
|
||||
--------------------------------
|
||||
|
||||
- Fix Subscriber model when removed within emit callback ([d0ed918](https://github.com/ethers-io/ethers.js/commit/d0ed91840c9f51c7ce9061ebb1d36727dbdd51a4)).
|
||||
- Fixed human-readable parser when identifier begins with valid type prefix ([#3728](https://github.com/ethers-io/ethers.js/issues/3728); [522fd16](https://github.com/ethers-io/ethers.js/commit/522fd16f68aabc53e4dc8745d4128e0d61260ed5)).
|
||||
- Update to latest secp256k1 library ([#3719](https://github.com/ethers-io/ethers.js/issues/3719); [803e8f9](https://github.com/ethers-io/ethers.js/commit/803e8f9821950b83efa876d64b1cfb35f6bccc38)).
|
||||
|
||||
ethers/v6.0.0 (2023-02-02 22:48)
|
||||
--------------------------------
|
||||
|
||||
- Initial release ([90afd9b](https://github.com/ethers-io/ethers.js/commit/90afd9bd81ed1408421a0247fa0845a74c9eb319)).
|
||||
10
dev/env/node_modules/ethers/FUNDING.json
generated
vendored
Executable file
10
dev/env/node_modules/ethers/FUNDING.json
generated
vendored
Executable file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"drips": {
|
||||
"ethereum": {
|
||||
"ownedBy": "0x89EdE5cBE53473A64d6C8DF14176a0d658dAAeDC"
|
||||
}
|
||||
},
|
||||
"opRetro": {
|
||||
"projectId": "0xa3d07f453f70d844196d89d79848aa2e70a0bd8b38bf0f493cba1547bb3bca5e"
|
||||
}
|
||||
}
|
||||
21
dev/env/node_modules/ethers/LICENSE.md
generated
vendored
Executable file
21
dev/env/node_modules/ethers/LICENSE.md
generated
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016-2025 Richard Moore
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
140
dev/env/node_modules/ethers/README.md
generated
vendored
Executable file
140
dev/env/node_modules/ethers/README.md
generated
vendored
Executable file
@@ -0,0 +1,140 @@
|
||||
The Ethers Project
|
||||
==================
|
||||
|
||||
[](https://www.npmjs.com/package/ethers)
|
||||
[](https://github.com/ethers-io/ethers.js/actions/workflows/test-ci.yml)
|
||||

|
||||

|
||||
[](https://www.gitpoap.io/gh/ethers-io/ethers.js)
|
||||
[](https://twitter.com/ricmoo)
|
||||
|
||||
-----
|
||||
|
||||
A complete, compact and simple library for Ethereum and ilk, written
|
||||
in [TypeScript](https://www.typescriptlang.org).
|
||||
|
||||
**Features**
|
||||
|
||||
- Keep your private keys in your client, **safe** and sound
|
||||
- Import and export **JSON wallets** (Geth, Parity and crowdsale)
|
||||
- Import and export BIP 39 **mnemonic phrases** (12 word backup phrases) and **HD Wallets** (English as well as Czech, French, Italian, Japanese, Korean, Simplified Chinese, Spanish, Traditional Chinese)
|
||||
- Meta-classes create JavaScript objects from any contract ABI, including **ABIv2** and **Human-Readable ABI**
|
||||
- Connect to Ethereum nodes over [JSON-RPC](https://ethereum.org/en/developers/docs/apis/json-rpc/), [INFURA](https://infura.io), [Etherscan](https://etherscan.io), [Alchemy](https://alchemyapi.io), [Ankr](https://ankr.com) or [MetaMask](https://metamask.io)
|
||||
- **ENS names** are first-class citizens; they can be used anywhere an Ethereum addresses can be used
|
||||
- **Small** (~144kb compressed; 460kb uncompressed)
|
||||
- **Tree-shaking** focused; include only what you need during bundling
|
||||
- **Complete** functionality for all your Ethereum desires
|
||||
- Extensive [documentation](https://docs.ethers.org/v6/)
|
||||
- Large collection of **test cases** which are maintained and added to
|
||||
- Fully written in **TypeScript**, with strict types for security and safety
|
||||
- **MIT License** (including ALL dependencies); completely open source to do with as you please
|
||||
|
||||
|
||||
Keep Updated
|
||||
------------
|
||||
|
||||
For advisories and important notices, follow [@ethersproject](https://twitter.com/ethersproject)
|
||||
on Twitter (low-traffic, non-marketing, important information only) as well as watch this GitHub project.
|
||||
|
||||
For more general news, discussions, and feedback, follow or DM me,
|
||||
[@ricmoo](https://twitter.com/ricmoo) on Twitter or on the
|
||||
[Ethers Discord](https://discord.gg/qYtSscGYYc).
|
||||
|
||||
|
||||
For the latest changes, see the
|
||||
[CHANGELOG](https://github.com/ethers-io/ethers.js/blob/main/CHANGELOG.md).
|
||||
|
||||
|
||||
**Summaries**
|
||||
|
||||
- [August 2023](https://blog.ricmoo.com/highlights-ethers-js-august-2023-fb68354c576c)
|
||||
- [September 2022](https://blog.ricmoo.com/highlights-ethers-js-september-2022-d7bda0fc37ed)
|
||||
- [June 2022](https://blog.ricmoo.com/highlights-ethers-js-june-2022-f5328932e35d)
|
||||
- [March 2022](https://blog.ricmoo.com/highlights-ethers-js-march-2022-f511fe1e88a1)
|
||||
- [December 2021](https://blog.ricmoo.com/highlights-ethers-js-december-2021-dc1adb779d1a)
|
||||
- [September 2021](https://blog.ricmoo.com/highlights-ethers-js-september-2021-1bf7cb47d348)
|
||||
- [May 2021](https://blog.ricmoo.com/highlights-ethers-js-may-2021-2826e858277d)
|
||||
- [March 2021](https://blog.ricmoo.com/highlights-ethers-js-march-2021-173d3a545b8d)
|
||||
- [December 2020](https://blog.ricmoo.com/highlights-ethers-js-december-2020-2e2db8bc800a)
|
||||
|
||||
|
||||
|
||||
Installing
|
||||
----------
|
||||
|
||||
**NodeJS**
|
||||
|
||||
```
|
||||
/home/ricmoo/some_project> npm install ethers
|
||||
```
|
||||
|
||||
**Browser (ESM)**
|
||||
|
||||
The bundled library is available in the `./dist/` folder in this repo.
|
||||
|
||||
```
|
||||
<script type="module">
|
||||
import { ethers } from "./dist/ethers.min.js";
|
||||
</script>
|
||||
```
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Browse the [documentation](https://docs.ethers.org) online:
|
||||
|
||||
- [Getting Started](https://docs.ethers.org/v6/getting-started/)
|
||||
- [Full API Documentation](https://docs.ethers.org/v6/api/)
|
||||
- [Various Ethereum Articles](https://blog.ricmoo.com/)
|
||||
|
||||
|
||||
|
||||
Providers
|
||||
---------
|
||||
|
||||
Ethers works closely with an ever-growing list of third-party providers
|
||||
to ensure getting started is quick and easy, by providing default keys
|
||||
to each service.
|
||||
|
||||
These built-in keys mean you can use `ethers.getDefaultProvider()` and
|
||||
start developing right away.
|
||||
|
||||
However, the API keys provided to ethers are also shared and are
|
||||
intentionally throttled to encourage developers to eventually get
|
||||
their own keys, which unlock many other features, such as faster
|
||||
responses, more capacity, analytics and other features like archival
|
||||
data.
|
||||
|
||||
When you are ready to sign up and start using for your own keys, please
|
||||
check out the [Provider API Keys](https://docs.ethers.org/v5/api-keys/) in
|
||||
the documentation.
|
||||
|
||||
A special thanks to these services for providing community resources:
|
||||
|
||||
- [Ankr](https://www.ankr.com/)
|
||||
- [QuickNode](https://www.quicknode.com/)
|
||||
- [Etherscan](https://etherscan.io/)
|
||||
- [INFURA](https://infura.io/)
|
||||
- [Alchemy](https://dashboard.alchemyapi.io/signup?referral=55a35117-028e-4b7c-9e47-e275ad0acc6d)
|
||||
|
||||
|
||||
Extension Packages
|
||||
------------------
|
||||
|
||||
The `ethers` package only includes the most common and most core
|
||||
functionality to interact with Ethereum. There are many other
|
||||
packages designed to further enhance the functionality and experience.
|
||||
|
||||
- [MulticallProvider](https://github.com/ethers-io/ext-provider-multicall) - A Provider which bundles multiple call requests into a single `call` to reduce latency and backend request capacity
|
||||
- [MulticoinPlugin](https://github.com/ethers-io/ext-provider-plugin-multicoin) - A Provider plugin to expand the support of ENS coin types
|
||||
- [GanaceProvider](https://github.com/ethers-io/ext-provider-ganache) - A Provider for in-memory node instances, for fast debugging, testing and simulating blockchain operations
|
||||
- [Optimism Utilities](https://github.com/ethers-io/ext-utils-optimism) - A collection of Optimism utilities
|
||||
- [LedgerSigner](https://github.com/ethers-io/ext-signer-ledger) - A Signer to interact directly with Ledger Hardware Wallets
|
||||
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
MIT License (including **all** dependencies).
|
||||
|
||||
34
dev/env/node_modules/ethers/SECURITY.md
generated
vendored
Executable file
34
dev/env/node_modules/ethers/SECURITY.md
generated
vendored
Executable file
@@ -0,0 +1,34 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
Maintaining multiple versions of the library is quite time consuming, so
|
||||
the majority of the effort is focused on the latest major release.
|
||||
|
||||
If you do require a version outside of this chart updated with patch fix,
|
||||
please [contact me](mailto:github@ricmoo.com).
|
||||
|
||||
| Version | Supported | Initial Release |
|
||||
| ------- | ------------------------------------------ | ----------------- |
|
||||
| 6.0.x | :white_check_mark: | 2023-02-02 |
|
||||
| 5.0.x | :white_check_mark: (security updates) | 2020-06-12 |
|
||||
| 4.0.x | :x: | 2018-10-01 |
|
||||
| 3.0.x | :x: | 2018-03-05 |
|
||||
| 2.2.x | :x: | 2018-01-11 |
|
||||
| 2.1.x | :x: | 2017-05-22 |
|
||||
| 2.0.x | :x: | 2017-04-05 |
|
||||
| 1.0.x | :x: | 2016-08-23 |
|
||||
| 0.0.x | :x: | 2016-07-14 |
|
||||
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
If you identify a security vulnerability with this library (or any dependency),
|
||||
please do not hesitate to contact [github@ricmoo.com](mailto:github@ricmoo.com)
|
||||
immediately.
|
||||
|
||||
I try to respond within the same day and will address any concern as quickly
|
||||
as possible (including code fixes and publishing to NPM).
|
||||
|
||||
Any vulnerability will also be published to this file, along with credits,
|
||||
pertinent information and links to fixes.
|
||||
22
dev/env/node_modules/ethers/dist/README.md
generated
vendored
Executable file
22
dev/env/node_modules/ethers/dist/README.md
generated
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
Distribution Folder
|
||||
===================
|
||||
|
||||
The contents of this folder are for using `import` in ESM
|
||||
browser-base projects.
|
||||
|
||||
The `ethers.js` (and `ethers.min.js`) files only include the
|
||||
English wordlist to conserve space.
|
||||
|
||||
For additional Wordlist support, the `wordlist-extra.js` (and
|
||||
`wordlist-extra.min.js`) should be imported too.
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
The contents are generated via the `npm build dist` target using
|
||||
`rollup` and the `/rollup.config.js` configuration.
|
||||
|
||||
Do not modify the files in this folder. They are deleted on `build-clean`.
|
||||
|
||||
To modify this `README.md`, see the `/output/post-build/dist`.
|
||||
26488
dev/env/node_modules/ethers/dist/ethers.js
generated
vendored
Executable file
26488
dev/env/node_modules/ethers/dist/ethers.js
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
dev/env/node_modules/ethers/dist/ethers.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/dist/ethers.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
dev/env/node_modules/ethers/dist/ethers.min.js
generated
vendored
Executable file
1
dev/env/node_modules/ethers/dist/ethers.min.js
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
26689
dev/env/node_modules/ethers/dist/ethers.umd.js
generated
vendored
Executable file
26689
dev/env/node_modules/ethers/dist/ethers.umd.js
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
dev/env/node_modules/ethers/dist/ethers.umd.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/dist/ethers.umd.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
dev/env/node_modules/ethers/dist/ethers.umd.min.js
generated
vendored
Executable file
1
dev/env/node_modules/ethers/dist/ethers.umd.min.js
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1509
dev/env/node_modules/ethers/dist/wordlists-extra.js
generated
vendored
Executable file
1509
dev/env/node_modules/ethers/dist/wordlists-extra.js
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
dev/env/node_modules/ethers/dist/wordlists-extra.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/dist/wordlists-extra.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
dev/env/node_modules/ethers/dist/wordlists-extra.min.js
generated
vendored
Executable file
1
dev/env/node_modules/ethers/dist/wordlists-extra.min.js
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
16
dev/env/node_modules/ethers/lib.commonjs/README.md
generated
vendored
Executable file
16
dev/env/node_modules/ethers/lib.commonjs/README.md
generated
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
CommonJS Files
|
||||
==============
|
||||
|
||||
The contents of this folder are for using `require` in CommonJS
|
||||
projects.
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
The contents are generated via the `npm run build-commonjs` target
|
||||
using `tsc` and the `/tsconfig.commonjs.json` configuration.
|
||||
|
||||
Do not modify the files in this folder. They are deleted on `build-clean`.
|
||||
|
||||
To modify this `README.md`, see the `/output/post-build/lib.commonjs`.
|
||||
5
dev/env/node_modules/ethers/lib.commonjs/_version.d.ts
generated
vendored
Executable file
5
dev/env/node_modules/ethers/lib.commonjs/_version.d.ts
generated
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* The current version of Ethers.
|
||||
*/
|
||||
export declare const version: string;
|
||||
//# sourceMappingURL=_version.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/_version.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/_version.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"_version.d.ts","sourceRoot":"","sources":["../src.ts/_version.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,MAAiB,CAAC"}
|
||||
9
dev/env/node_modules/ethers/lib.commonjs/_version.js
generated
vendored
Executable file
9
dev/env/node_modules/ethers/lib.commonjs/_version.js
generated
vendored
Executable file
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
/* Do NOT modify this file; see /src.ts/_admin/update-version.ts */
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = void 0;
|
||||
/**
|
||||
* The current version of Ethers.
|
||||
*/
|
||||
exports.version = "6.16.0";
|
||||
//# sourceMappingURL=_version.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/_version.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/_version.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"_version.js","sourceRoot":"","sources":["../src.ts/_version.ts"],"names":[],"mappings":";AAAA,mEAAmE;;;AAEnE;;GAEG;AACU,QAAA,OAAO,GAAW,QAAQ,CAAC"}
|
||||
61
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.d.ts
generated
vendored
Executable file
61
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.d.ts
generated
vendored
Executable file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* When sending values to or receiving values from a [[Contract]], the
|
||||
* data is generally encoded using the [ABI standard](link-solc-abi).
|
||||
*
|
||||
* The AbiCoder provides a utility to encode values to ABI data and
|
||||
* decode values from ABI data.
|
||||
*
|
||||
* Most of the time, developers should favour the [[Contract]] class,
|
||||
* which further abstracts a lot of the finer details of ABI data.
|
||||
*
|
||||
* @_section api/abi/abi-coder:ABI Encoding
|
||||
*/
|
||||
import { Result } from "./coders/abstract-coder.js";
|
||||
import { ParamType } from "./fragments.js";
|
||||
import type { BytesLike, CallExceptionAction, CallExceptionError } from "../utils/index.js";
|
||||
/**
|
||||
* The **AbiCoder** is a low-level class responsible for encoding JavaScript
|
||||
* values into binary data and decoding binary data into JavaScript values.
|
||||
*/
|
||||
export declare class AbiCoder {
|
||||
#private;
|
||||
/**
|
||||
* Get the default values for the given %%types%%.
|
||||
*
|
||||
* For example, a ``uint`` is by default ``0`` and ``bool``
|
||||
* is by default ``false``.
|
||||
*/
|
||||
getDefaultValue(types: ReadonlyArray<string | ParamType>): Result;
|
||||
/**
|
||||
* Encode the %%values%% as the %%types%% into ABI data.
|
||||
*
|
||||
* @returns DataHexstring
|
||||
*/
|
||||
encode(types: ReadonlyArray<string | ParamType>, values: ReadonlyArray<any>): string;
|
||||
/**
|
||||
* Decode the ABI %%data%% as the %%types%% into values.
|
||||
*
|
||||
* If %%loose%% decoding is enabled, then strict padding is
|
||||
* not enforced. Some older versions of Solidity incorrectly
|
||||
* padded event data emitted from ``external`` functions.
|
||||
*/
|
||||
decode(types: ReadonlyArray<string | ParamType>, data: BytesLike, loose?: boolean): Result;
|
||||
static _setDefaultMaxInflation(value: number): void;
|
||||
/**
|
||||
* Returns the shared singleton instance of a default [[AbiCoder]].
|
||||
*
|
||||
* On the first call, the instance is created internally.
|
||||
*/
|
||||
static defaultAbiCoder(): AbiCoder;
|
||||
/**
|
||||
* Returns an ethers-compatible [[CallExceptionError]] Error for the given
|
||||
* result %%data%% for the [[CallExceptionAction]] %%action%% against
|
||||
* the Transaction %%tx%%.
|
||||
*/
|
||||
static getBuiltinCallException(action: CallExceptionAction, tx: {
|
||||
to?: null | string;
|
||||
from?: null | string;
|
||||
data?: string;
|
||||
}, data: null | BytesLike): CallExceptionError;
|
||||
}
|
||||
//# sourceMappingURL=abi-coder.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"abi-coder.d.ts","sourceRoot":"","sources":["../../src.ts/abi/abi-coder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAAiB,MAAM,EAAU,MAAM,4BAA4B,CAAC;AAU3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,OAAO,KAAK,EACR,SAAS,EACT,mBAAmB,EAAE,kBAAkB,EAC1C,MAAM,mBAAmB,CAAC;AAuF3B;;;GAGG;AACH,qBAAa,QAAQ;;IA4CjB;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM;IAMjE;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM;IAWpF;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM;IAM1F,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnD;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAI,QAAQ;IAOlC;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAAE,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,kBAAkB;CAG3K"}
|
||||
210
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.js
generated
vendored
Executable file
210
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.js
generated
vendored
Executable file
@@ -0,0 +1,210 @@
|
||||
"use strict";
|
||||
/**
|
||||
* When sending values to or receiving values from a [[Contract]], the
|
||||
* data is generally encoded using the [ABI standard](link-solc-abi).
|
||||
*
|
||||
* The AbiCoder provides a utility to encode values to ABI data and
|
||||
* decode values from ABI data.
|
||||
*
|
||||
* Most of the time, developers should favour the [[Contract]] class,
|
||||
* which further abstracts a lot of the finer details of ABI data.
|
||||
*
|
||||
* @_section api/abi/abi-coder:ABI Encoding
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AbiCoder = void 0;
|
||||
// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI
|
||||
const index_js_1 = require("../utils/index.js");
|
||||
const abstract_coder_js_1 = require("./coders/abstract-coder.js");
|
||||
const address_js_1 = require("./coders/address.js");
|
||||
const array_js_1 = require("./coders/array.js");
|
||||
const boolean_js_1 = require("./coders/boolean.js");
|
||||
const bytes_js_1 = require("./coders/bytes.js");
|
||||
const fixed_bytes_js_1 = require("./coders/fixed-bytes.js");
|
||||
const null_js_1 = require("./coders/null.js");
|
||||
const number_js_1 = require("./coders/number.js");
|
||||
const string_js_1 = require("./coders/string.js");
|
||||
const tuple_js_1 = require("./coders/tuple.js");
|
||||
const fragments_js_1 = require("./fragments.js");
|
||||
const index_js_2 = require("../address/index.js");
|
||||
const index_js_3 = require("../utils/index.js");
|
||||
// https://docs.soliditylang.org/en/v0.8.17/control-structures.html
|
||||
const PanicReasons = new Map();
|
||||
PanicReasons.set(0x00, "GENERIC_PANIC");
|
||||
PanicReasons.set(0x01, "ASSERT_FALSE");
|
||||
PanicReasons.set(0x11, "OVERFLOW");
|
||||
PanicReasons.set(0x12, "DIVIDE_BY_ZERO");
|
||||
PanicReasons.set(0x21, "ENUM_RANGE_ERROR");
|
||||
PanicReasons.set(0x22, "BAD_STORAGE_DATA");
|
||||
PanicReasons.set(0x31, "STACK_UNDERFLOW");
|
||||
PanicReasons.set(0x32, "ARRAY_RANGE_ERROR");
|
||||
PanicReasons.set(0x41, "OUT_OF_MEMORY");
|
||||
PanicReasons.set(0x51, "UNINITIALIZED_FUNCTION_CALL");
|
||||
const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
|
||||
const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
|
||||
let defaultCoder = null;
|
||||
let defaultMaxInflation = 1024;
|
||||
function getBuiltinCallException(action, tx, data, abiCoder) {
|
||||
let message = "missing revert data";
|
||||
let reason = null;
|
||||
const invocation = null;
|
||||
let revert = null;
|
||||
if (data) {
|
||||
message = "execution reverted";
|
||||
const bytes = (0, index_js_3.getBytes)(data);
|
||||
data = (0, index_js_3.hexlify)(data);
|
||||
if (bytes.length === 0) {
|
||||
message += " (no data present; likely require(false) occurred";
|
||||
reason = "require(false)";
|
||||
}
|
||||
else if (bytes.length % 32 !== 4) {
|
||||
message += " (could not decode reason; invalid data length)";
|
||||
}
|
||||
else if ((0, index_js_3.hexlify)(bytes.slice(0, 4)) === "0x08c379a0") {
|
||||
// Error(string)
|
||||
try {
|
||||
reason = abiCoder.decode(["string"], bytes.slice(4))[0];
|
||||
revert = {
|
||||
signature: "Error(string)",
|
||||
name: "Error",
|
||||
args: [reason]
|
||||
};
|
||||
message += `: ${JSON.stringify(reason)}`;
|
||||
}
|
||||
catch (error) {
|
||||
message += " (could not decode reason; invalid string data)";
|
||||
}
|
||||
}
|
||||
else if ((0, index_js_3.hexlify)(bytes.slice(0, 4)) === "0x4e487b71") {
|
||||
// Panic(uint256)
|
||||
try {
|
||||
const code = Number(abiCoder.decode(["uint256"], bytes.slice(4))[0]);
|
||||
revert = {
|
||||
signature: "Panic(uint256)",
|
||||
name: "Panic",
|
||||
args: [code]
|
||||
};
|
||||
reason = `Panic due to ${PanicReasons.get(code) || "UNKNOWN"}(${code})`;
|
||||
message += `: ${reason}`;
|
||||
}
|
||||
catch (error) {
|
||||
message += " (could not decode panic code)";
|
||||
}
|
||||
}
|
||||
else {
|
||||
message += " (unknown custom error)";
|
||||
}
|
||||
}
|
||||
const transaction = {
|
||||
to: (tx.to ? (0, index_js_2.getAddress)(tx.to) : null),
|
||||
data: (tx.data || "0x")
|
||||
};
|
||||
if (tx.from) {
|
||||
transaction.from = (0, index_js_2.getAddress)(tx.from);
|
||||
}
|
||||
return (0, index_js_3.makeError)(message, "CALL_EXCEPTION", {
|
||||
action, data, reason, transaction, invocation, revert
|
||||
});
|
||||
}
|
||||
/**
|
||||
* The **AbiCoder** is a low-level class responsible for encoding JavaScript
|
||||
* values into binary data and decoding binary data into JavaScript values.
|
||||
*/
|
||||
class AbiCoder {
|
||||
#getCoder(param) {
|
||||
if (param.isArray()) {
|
||||
return new array_js_1.ArrayCoder(this.#getCoder(param.arrayChildren), param.arrayLength, param.name);
|
||||
}
|
||||
if (param.isTuple()) {
|
||||
return new tuple_js_1.TupleCoder(param.components.map((c) => this.#getCoder(c)), param.name);
|
||||
}
|
||||
switch (param.baseType) {
|
||||
case "address":
|
||||
return new address_js_1.AddressCoder(param.name);
|
||||
case "bool":
|
||||
return new boolean_js_1.BooleanCoder(param.name);
|
||||
case "string":
|
||||
return new string_js_1.StringCoder(param.name);
|
||||
case "bytes":
|
||||
return new bytes_js_1.BytesCoder(param.name);
|
||||
case "":
|
||||
return new null_js_1.NullCoder(param.name);
|
||||
}
|
||||
// u?int[0-9]*
|
||||
let match = param.type.match(paramTypeNumber);
|
||||
if (match) {
|
||||
let size = parseInt(match[2] || "256");
|
||||
(0, index_js_1.assertArgument)(size !== 0 && size <= 256 && (size % 8) === 0, "invalid " + match[1] + " bit length", "param", param);
|
||||
return new number_js_1.NumberCoder(size / 8, (match[1] === "int"), param.name);
|
||||
}
|
||||
// bytes[0-9]+
|
||||
match = param.type.match(paramTypeBytes);
|
||||
if (match) {
|
||||
let size = parseInt(match[1]);
|
||||
(0, index_js_1.assertArgument)(size !== 0 && size <= 32, "invalid bytes length", "param", param);
|
||||
return new fixed_bytes_js_1.FixedBytesCoder(size, param.name);
|
||||
}
|
||||
(0, index_js_1.assertArgument)(false, "invalid type", "type", param.type);
|
||||
}
|
||||
/**
|
||||
* Get the default values for the given %%types%%.
|
||||
*
|
||||
* For example, a ``uint`` is by default ``0`` and ``bool``
|
||||
* is by default ``false``.
|
||||
*/
|
||||
getDefaultValue(types) {
|
||||
const coders = types.map((type) => this.#getCoder(fragments_js_1.ParamType.from(type)));
|
||||
const coder = new tuple_js_1.TupleCoder(coders, "_");
|
||||
return coder.defaultValue();
|
||||
}
|
||||
/**
|
||||
* Encode the %%values%% as the %%types%% into ABI data.
|
||||
*
|
||||
* @returns DataHexstring
|
||||
*/
|
||||
encode(types, values) {
|
||||
(0, index_js_1.assertArgumentCount)(values.length, types.length, "types/values length mismatch");
|
||||
const coders = types.map((type) => this.#getCoder(fragments_js_1.ParamType.from(type)));
|
||||
const coder = (new tuple_js_1.TupleCoder(coders, "_"));
|
||||
const writer = new abstract_coder_js_1.Writer();
|
||||
coder.encode(writer, values);
|
||||
return writer.data;
|
||||
}
|
||||
/**
|
||||
* Decode the ABI %%data%% as the %%types%% into values.
|
||||
*
|
||||
* If %%loose%% decoding is enabled, then strict padding is
|
||||
* not enforced. Some older versions of Solidity incorrectly
|
||||
* padded event data emitted from ``external`` functions.
|
||||
*/
|
||||
decode(types, data, loose) {
|
||||
const coders = types.map((type) => this.#getCoder(fragments_js_1.ParamType.from(type)));
|
||||
const coder = new tuple_js_1.TupleCoder(coders, "_");
|
||||
return coder.decode(new abstract_coder_js_1.Reader(data, loose, defaultMaxInflation));
|
||||
}
|
||||
static _setDefaultMaxInflation(value) {
|
||||
(0, index_js_1.assertArgument)(typeof (value) === "number" && Number.isInteger(value), "invalid defaultMaxInflation factor", "value", value);
|
||||
defaultMaxInflation = value;
|
||||
}
|
||||
/**
|
||||
* Returns the shared singleton instance of a default [[AbiCoder]].
|
||||
*
|
||||
* On the first call, the instance is created internally.
|
||||
*/
|
||||
static defaultAbiCoder() {
|
||||
if (defaultCoder == null) {
|
||||
defaultCoder = new AbiCoder();
|
||||
}
|
||||
return defaultCoder;
|
||||
}
|
||||
/**
|
||||
* Returns an ethers-compatible [[CallExceptionError]] Error for the given
|
||||
* result %%data%% for the [[CallExceptionAction]] %%action%% against
|
||||
* the Transaction %%tx%%.
|
||||
*/
|
||||
static getBuiltinCallException(action, tx, data) {
|
||||
return getBuiltinCallException(action, tx, data, AbiCoder.defaultAbiCoder());
|
||||
}
|
||||
}
|
||||
exports.AbiCoder = AbiCoder;
|
||||
//# sourceMappingURL=abi-coder.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/abi-coder.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
15
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.d.ts
generated
vendored
Executable file
15
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.d.ts
generated
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
/**
|
||||
* About bytes32 strings...
|
||||
*
|
||||
* @_docloc: api/utils:Bytes32 Strings
|
||||
*/
|
||||
import type { BytesLike } from "../utils/index.js";
|
||||
/**
|
||||
* Encodes %%text%% as a Bytes32 string.
|
||||
*/
|
||||
export declare function encodeBytes32String(text: string): string;
|
||||
/**
|
||||
* Encodes the Bytes32-encoded %%bytes%% into a string.
|
||||
*/
|
||||
export declare function decodeBytes32String(_bytes: BytesLike): string;
|
||||
//# sourceMappingURL=bytes32.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"bytes32.d.ts","sourceRoot":"","sources":["../../src.ts/abi/bytes32.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAa7D"}
|
||||
45
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.js
generated
vendored
Executable file
45
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.js
generated
vendored
Executable file
@@ -0,0 +1,45 @@
|
||||
"use strict";
|
||||
/**
|
||||
* About bytes32 strings...
|
||||
*
|
||||
* @_docloc: api/utils:Bytes32 Strings
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.decodeBytes32String = exports.encodeBytes32String = void 0;
|
||||
const index_js_1 = require("../utils/index.js");
|
||||
/**
|
||||
* Encodes %%text%% as a Bytes32 string.
|
||||
*/
|
||||
function encodeBytes32String(text) {
|
||||
// Get the bytes
|
||||
const bytes = (0, index_js_1.toUtf8Bytes)(text);
|
||||
// Check we have room for null-termination
|
||||
if (bytes.length > 31) {
|
||||
throw new Error("bytes32 string must be less than 32 bytes");
|
||||
}
|
||||
// Zero-pad (implicitly null-terminates)
|
||||
return (0, index_js_1.zeroPadBytes)(bytes, 32);
|
||||
}
|
||||
exports.encodeBytes32String = encodeBytes32String;
|
||||
/**
|
||||
* Encodes the Bytes32-encoded %%bytes%% into a string.
|
||||
*/
|
||||
function decodeBytes32String(_bytes) {
|
||||
const data = (0, index_js_1.getBytes)(_bytes, "bytes");
|
||||
// Must be 32 bytes with a null-termination
|
||||
if (data.length !== 32) {
|
||||
throw new Error("invalid bytes32 - not 32 bytes long");
|
||||
}
|
||||
if (data[31] !== 0) {
|
||||
throw new Error("invalid bytes32 string - no null terminator");
|
||||
}
|
||||
// Find the null termination
|
||||
let length = 31;
|
||||
while (data[length - 1] === 0) {
|
||||
length--;
|
||||
}
|
||||
// Determine the string value
|
||||
return (0, index_js_1.toUtf8String)(data.slice(0, length));
|
||||
}
|
||||
exports.decodeBytes32String = decodeBytes32String;
|
||||
//# sourceMappingURL=bytes32.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/bytes32.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"bytes32.js","sourceRoot":"","sources":["../../src.ts/abi/bytes32.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,gDAE2B;AAI3B;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAE5C,gBAAgB;IAChB,MAAM,KAAK,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,CAAC;IAEhC,0CAA0C;IAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAAE;IAExF,wCAAwC;IACxC,OAAO,IAAA,uBAAY,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAVD,kDAUC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,MAAiB;IACjD,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEvC,2CAA2C;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;KAAE;IACnF,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAAE;IAEvF,4BAA4B;IAC5B,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC;KAAE;IAE5C,6BAA6B;IAC7B,OAAO,IAAA,uBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAbD,kDAaC"}
|
||||
124
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.d.ts
generated
vendored
Executable file
124
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.d.ts
generated
vendored
Executable file
@@ -0,0 +1,124 @@
|
||||
import type { BigNumberish, BytesLike } from "../../utils/index.js";
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
export declare const WordSize: number;
|
||||
/**
|
||||
* A [[Result]] is a sub-class of Array, which allows accessing any
|
||||
* of its values either positionally by its index or, if keys are
|
||||
* provided by its name.
|
||||
*
|
||||
* @_docloc: api/abi
|
||||
*/
|
||||
export declare class Result extends Array<any> {
|
||||
#private;
|
||||
[K: string | number]: any;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(...args: Array<any>);
|
||||
/**
|
||||
* Returns the Result as a normal Array. If %%deep%%, any children
|
||||
* which are Result objects are also converted to a normal Array.
|
||||
*
|
||||
* This will throw if there are any outstanding deferred
|
||||
* errors.
|
||||
*/
|
||||
toArray(deep?: boolean): Array<any>;
|
||||
/**
|
||||
* Returns the Result as an Object with each name-value pair. If
|
||||
* %%deep%%, any children which are Result objects are also
|
||||
* converted to an Object.
|
||||
*
|
||||
* This will throw if any value is unnamed, or if there are
|
||||
* any outstanding deferred errors.
|
||||
*/
|
||||
toObject(deep?: boolean): Record<string, any>;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
slice(start?: number | undefined, end?: number | undefined): Result;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
filter(callback: (el: any, index: number, array: Result) => boolean, thisArg?: any): Result;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
map<T extends any = any>(callback: (el: any, index: number, array: Result) => T, thisArg?: any): Array<T>;
|
||||
/**
|
||||
* Returns the value for %%name%%.
|
||||
*
|
||||
* Since it is possible to have a key whose name conflicts with
|
||||
* a method on a [[Result]] or its superclass Array, or any
|
||||
* JavaScript keyword, this ensures all named values are still
|
||||
* accessible by name.
|
||||
*/
|
||||
getValue(name: string): any;
|
||||
/**
|
||||
* Creates a new [[Result]] for %%items%% with each entry
|
||||
* also accessible by its corresponding name in %%keys%%.
|
||||
*/
|
||||
static fromItems(items: Array<any>, keys?: Array<null | string>): Result;
|
||||
}
|
||||
/**
|
||||
* Returns all errors found in a [[Result]].
|
||||
*
|
||||
* Since certain errors encountered when creating a [[Result]] do
|
||||
* not impact the ability to continue parsing data, they are
|
||||
* deferred until they are actually accessed. Hence a faulty string
|
||||
* in an Event that is never used does not impact the program flow.
|
||||
*
|
||||
* However, sometimes it may be useful to access, identify or
|
||||
* validate correctness of a [[Result]].
|
||||
*
|
||||
* @_docloc api/abi
|
||||
*/
|
||||
export declare function checkResultErrors(result: Result): Array<{
|
||||
path: Array<string | number>;
|
||||
error: Error;
|
||||
}>;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare abstract class Coder {
|
||||
readonly name: string;
|
||||
readonly type: string;
|
||||
readonly localName: string;
|
||||
readonly dynamic: boolean;
|
||||
constructor(name: string, type: string, localName: string, dynamic: boolean);
|
||||
_throwError(message: string, value: any): never;
|
||||
abstract encode(writer: Writer, value: any): number;
|
||||
abstract decode(reader: Reader): any;
|
||||
abstract defaultValue(): any;
|
||||
}
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class Writer {
|
||||
#private;
|
||||
constructor();
|
||||
get data(): string;
|
||||
get length(): number;
|
||||
appendWriter(writer: Writer): number;
|
||||
writeBytes(value: BytesLike): number;
|
||||
writeValue(value: BigNumberish): number;
|
||||
writeUpdatableValue(): (value: BigNumberish) => void;
|
||||
}
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class Reader {
|
||||
#private;
|
||||
readonly allowLoose: boolean;
|
||||
constructor(data: BytesLike, allowLoose?: boolean, maxInflation?: number);
|
||||
get data(): string;
|
||||
get dataLength(): number;
|
||||
get consumed(): number;
|
||||
get bytes(): Uint8Array;
|
||||
subReader(offset: number): Reader;
|
||||
readBytes(length: number, loose?: boolean): Uint8Array;
|
||||
readValue(): bigint;
|
||||
readIndex(): number;
|
||||
}
|
||||
//# sourceMappingURL=abstract-coder.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"abstract-coder.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/abstract-coder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAW,CAAC;AA+CnC;;;;;;GAMG;AACH,qBAAa,MAAO,SAAQ,KAAK,CAAC,GAAG,CAAC;;IAMlC,CAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAI,GAAG,CAAA;IAE3B;;OAEG;gBACS,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;IA+F/B;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;IAYnC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAY7C;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAyBnE;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM;IAmB3F;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IAezG;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAa3B;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,MAAM;CAG3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAqBvG;AAeD;;GAEG;AACH,8BAAsB,KAAK;IAIvB,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAC;IAIvB,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAC;IAIvB,QAAQ,CAAC,SAAS,EAAG,MAAM,CAAC;IAK5B,QAAQ,CAAC,OAAO,EAAG,OAAO,CAAC;gBAEf,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAM3E,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK;IAI/C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM;IACnD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAEpC,QAAQ,CAAC,YAAY,IAAI,GAAG;CAC/B;AAED;;GAEG;AACH,qBAAa,MAAM;;;IAUf,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,MAAM,IAAI,MAAM,CAA6B;IAQjD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKpC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;IAUpC,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAMvC,mBAAmB,IAAI,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI;CAQvD;AAED;;GAEG;AACH,qBAAa,MAAM;;IAKf,QAAQ,CAAC,UAAU,EAAG,OAAO,CAAC;gBASlB,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM;IAWxE,IAAI,IAAI,IAAI,MAAM,CAAgC;IAClD,IAAI,UAAU,IAAI,MAAM,CAA8B;IACtD,IAAI,QAAQ,IAAI,MAAM,CAAyB;IAC/C,IAAI,KAAK,IAAI,UAAU,CAAuC;IAkC9D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOjC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU;IAStD,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,MAAM;CAGtB"}
|
||||
472
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.js
generated
vendored
Executable file
472
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.js
generated
vendored
Executable file
@@ -0,0 +1,472 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Reader = exports.Writer = exports.Coder = exports.checkResultErrors = exports.Result = exports.WordSize = void 0;
|
||||
const index_js_1 = require("../../utils/index.js");
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
exports.WordSize = 32;
|
||||
const Padding = new Uint8Array(exports.WordSize);
|
||||
// Properties used to immediate pass through to the underlying object
|
||||
// - `then` is used to detect if an object is a Promise for await
|
||||
const passProperties = ["then"];
|
||||
const _guard = {};
|
||||
const resultNames = new WeakMap();
|
||||
function getNames(result) {
|
||||
return resultNames.get(result);
|
||||
}
|
||||
function setNames(result, names) {
|
||||
resultNames.set(result, names);
|
||||
}
|
||||
function throwError(name, error) {
|
||||
const wrapped = new Error(`deferred error during ABI decoding triggered accessing ${name}`);
|
||||
wrapped.error = error;
|
||||
throw wrapped;
|
||||
}
|
||||
function toObject(names, items, deep) {
|
||||
if (names.indexOf(null) >= 0) {
|
||||
return items.map((item, index) => {
|
||||
if (item instanceof Result) {
|
||||
return toObject(getNames(item), item, deep);
|
||||
}
|
||||
return item;
|
||||
});
|
||||
}
|
||||
return names.reduce((accum, name, index) => {
|
||||
let item = items.getValue(name);
|
||||
if (!(name in accum)) {
|
||||
if (deep && item instanceof Result) {
|
||||
item = toObject(getNames(item), item, deep);
|
||||
}
|
||||
accum[name] = item;
|
||||
}
|
||||
return accum;
|
||||
}, {});
|
||||
}
|
||||
/**
|
||||
* A [[Result]] is a sub-class of Array, which allows accessing any
|
||||
* of its values either positionally by its index or, if keys are
|
||||
* provided by its name.
|
||||
*
|
||||
* @_docloc: api/abi
|
||||
*/
|
||||
class Result extends Array {
|
||||
// No longer used; but cannot be removed as it will remove the
|
||||
// #private field from the .d.ts which may break backwards
|
||||
// compatibility
|
||||
#names;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(...args) {
|
||||
// To properly sub-class Array so the other built-in
|
||||
// functions work, the constructor has to behave fairly
|
||||
// well. So, in the event we are created via fromItems()
|
||||
// we build the read-only Result object we want, but on
|
||||
// any other input, we use the default constructor
|
||||
// constructor(guard: any, items: Array<any>, keys?: Array<null | string>);
|
||||
const guard = args[0];
|
||||
let items = args[1];
|
||||
let names = (args[2] || []).slice();
|
||||
let wrap = true;
|
||||
if (guard !== _guard) {
|
||||
items = args;
|
||||
names = [];
|
||||
wrap = false;
|
||||
}
|
||||
// Can't just pass in ...items since an array of length 1
|
||||
// is a special case in the super.
|
||||
super(items.length);
|
||||
items.forEach((item, index) => { this[index] = item; });
|
||||
// Find all unique keys
|
||||
const nameCounts = names.reduce((accum, name) => {
|
||||
if (typeof (name) === "string") {
|
||||
accum.set(name, (accum.get(name) || 0) + 1);
|
||||
}
|
||||
return accum;
|
||||
}, (new Map()));
|
||||
// Remove any key thats not unique
|
||||
setNames(this, Object.freeze(items.map((item, index) => {
|
||||
const name = names[index];
|
||||
if (name != null && nameCounts.get(name) === 1) {
|
||||
return name;
|
||||
}
|
||||
return null;
|
||||
})));
|
||||
// Dummy operations to prevent TypeScript from complaining
|
||||
this.#names = [];
|
||||
if (this.#names == null) {
|
||||
void (this.#names);
|
||||
}
|
||||
if (!wrap) {
|
||||
return;
|
||||
}
|
||||
// A wrapped Result is immutable
|
||||
Object.freeze(this);
|
||||
// Proxy indices and names so we can trap deferred errors
|
||||
const proxy = new Proxy(this, {
|
||||
get: (target, prop, receiver) => {
|
||||
if (typeof (prop) === "string") {
|
||||
// Index accessor
|
||||
if (prop.match(/^[0-9]+$/)) {
|
||||
const index = (0, index_js_1.getNumber)(prop, "%index");
|
||||
if (index < 0 || index >= this.length) {
|
||||
throw new RangeError("out of result range");
|
||||
}
|
||||
const item = target[index];
|
||||
if (item instanceof Error) {
|
||||
throwError(`index ${index}`, item);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
// Pass important checks (like `then` for Promise) through
|
||||
if (passProperties.indexOf(prop) >= 0) {
|
||||
return Reflect.get(target, prop, receiver);
|
||||
}
|
||||
const value = target[prop];
|
||||
if (value instanceof Function) {
|
||||
// Make sure functions work with private variables
|
||||
// See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#no_private_property_forwarding
|
||||
return function (...args) {
|
||||
return value.apply((this === receiver) ? target : this, args);
|
||||
};
|
||||
}
|
||||
else if (!(prop in target)) {
|
||||
// Possible name accessor
|
||||
return target.getValue.apply((this === receiver) ? target : this, [prop]);
|
||||
}
|
||||
}
|
||||
return Reflect.get(target, prop, receiver);
|
||||
}
|
||||
});
|
||||
setNames(proxy, getNames(this));
|
||||
return proxy;
|
||||
}
|
||||
/**
|
||||
* Returns the Result as a normal Array. If %%deep%%, any children
|
||||
* which are Result objects are also converted to a normal Array.
|
||||
*
|
||||
* This will throw if there are any outstanding deferred
|
||||
* errors.
|
||||
*/
|
||||
toArray(deep) {
|
||||
const result = [];
|
||||
this.forEach((item, index) => {
|
||||
if (item instanceof Error) {
|
||||
throwError(`index ${index}`, item);
|
||||
}
|
||||
if (deep && item instanceof Result) {
|
||||
item = item.toArray(deep);
|
||||
}
|
||||
result.push(item);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* Returns the Result as an Object with each name-value pair. If
|
||||
* %%deep%%, any children which are Result objects are also
|
||||
* converted to an Object.
|
||||
*
|
||||
* This will throw if any value is unnamed, or if there are
|
||||
* any outstanding deferred errors.
|
||||
*/
|
||||
toObject(deep) {
|
||||
const names = getNames(this);
|
||||
return names.reduce((accum, name, index) => {
|
||||
(0, index_js_1.assert)(name != null, `value at index ${index} unnamed`, "UNSUPPORTED_OPERATION", {
|
||||
operation: "toObject()"
|
||||
});
|
||||
return toObject(names, this, deep);
|
||||
}, {});
|
||||
}
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
slice(start, end) {
|
||||
if (start == null) {
|
||||
start = 0;
|
||||
}
|
||||
if (start < 0) {
|
||||
start += this.length;
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
}
|
||||
}
|
||||
if (end == null) {
|
||||
end = this.length;
|
||||
}
|
||||
if (end < 0) {
|
||||
end += this.length;
|
||||
if (end < 0) {
|
||||
end = 0;
|
||||
}
|
||||
}
|
||||
if (end > this.length) {
|
||||
end = this.length;
|
||||
}
|
||||
const _names = getNames(this);
|
||||
const result = [], names = [];
|
||||
for (let i = start; i < end; i++) {
|
||||
result.push(this[i]);
|
||||
names.push(_names[i]);
|
||||
}
|
||||
return new Result(_guard, result, names);
|
||||
}
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
filter(callback, thisArg) {
|
||||
const _names = getNames(this);
|
||||
const result = [], names = [];
|
||||
for (let i = 0; i < this.length; i++) {
|
||||
const item = this[i];
|
||||
if (item instanceof Error) {
|
||||
throwError(`index ${i}`, item);
|
||||
}
|
||||
if (callback.call(thisArg, item, i, this)) {
|
||||
result.push(item);
|
||||
names.push(_names[i]);
|
||||
}
|
||||
}
|
||||
return new Result(_guard, result, names);
|
||||
}
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
map(callback, thisArg) {
|
||||
const result = [];
|
||||
for (let i = 0; i < this.length; i++) {
|
||||
const item = this[i];
|
||||
if (item instanceof Error) {
|
||||
throwError(`index ${i}`, item);
|
||||
}
|
||||
result.push(callback.call(thisArg, item, i, this));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* Returns the value for %%name%%.
|
||||
*
|
||||
* Since it is possible to have a key whose name conflicts with
|
||||
* a method on a [[Result]] or its superclass Array, or any
|
||||
* JavaScript keyword, this ensures all named values are still
|
||||
* accessible by name.
|
||||
*/
|
||||
getValue(name) {
|
||||
const index = getNames(this).indexOf(name);
|
||||
if (index === -1) {
|
||||
return undefined;
|
||||
}
|
||||
const value = this[index];
|
||||
if (value instanceof Error) {
|
||||
throwError(`property ${JSON.stringify(name)}`, value.error);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
/**
|
||||
* Creates a new [[Result]] for %%items%% with each entry
|
||||
* also accessible by its corresponding name in %%keys%%.
|
||||
*/
|
||||
static fromItems(items, keys) {
|
||||
return new Result(_guard, items, keys);
|
||||
}
|
||||
}
|
||||
exports.Result = Result;
|
||||
/**
|
||||
* Returns all errors found in a [[Result]].
|
||||
*
|
||||
* Since certain errors encountered when creating a [[Result]] do
|
||||
* not impact the ability to continue parsing data, they are
|
||||
* deferred until they are actually accessed. Hence a faulty string
|
||||
* in an Event that is never used does not impact the program flow.
|
||||
*
|
||||
* However, sometimes it may be useful to access, identify or
|
||||
* validate correctness of a [[Result]].
|
||||
*
|
||||
* @_docloc api/abi
|
||||
*/
|
||||
function checkResultErrors(result) {
|
||||
// Find the first error (if any)
|
||||
const errors = [];
|
||||
const checkErrors = function (path, object) {
|
||||
if (!Array.isArray(object)) {
|
||||
return;
|
||||
}
|
||||
for (let key in object) {
|
||||
const childPath = path.slice();
|
||||
childPath.push(key);
|
||||
try {
|
||||
checkErrors(childPath, object[key]);
|
||||
}
|
||||
catch (error) {
|
||||
errors.push({ path: childPath, error: error });
|
||||
}
|
||||
}
|
||||
};
|
||||
checkErrors([], result);
|
||||
return errors;
|
||||
}
|
||||
exports.checkResultErrors = checkResultErrors;
|
||||
function getValue(value) {
|
||||
let bytes = (0, index_js_1.toBeArray)(value);
|
||||
(0, index_js_1.assert)(bytes.length <= exports.WordSize, "value out-of-bounds", "BUFFER_OVERRUN", { buffer: bytes, length: exports.WordSize, offset: bytes.length });
|
||||
if (bytes.length !== exports.WordSize) {
|
||||
bytes = (0, index_js_1.getBytesCopy)((0, index_js_1.concat)([Padding.slice(bytes.length % exports.WordSize), bytes]));
|
||||
}
|
||||
return bytes;
|
||||
}
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class Coder {
|
||||
// The coder name:
|
||||
// - address, uint256, tuple, array, etc.
|
||||
name;
|
||||
// The fully expanded type, including composite types:
|
||||
// - address, uint256, tuple(address,bytes), uint256[3][4][], etc.
|
||||
type;
|
||||
// The localName bound in the signature, in this example it is "baz":
|
||||
// - tuple(address foo, uint bar) baz
|
||||
localName;
|
||||
// Whether this type is dynamic:
|
||||
// - Dynamic: bytes, string, address[], tuple(boolean[]), etc.
|
||||
// - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)
|
||||
dynamic;
|
||||
constructor(name, type, localName, dynamic) {
|
||||
(0, index_js_1.defineProperties)(this, { name, type, localName, dynamic }, {
|
||||
name: "string", type: "string", localName: "string", dynamic: "boolean"
|
||||
});
|
||||
}
|
||||
_throwError(message, value) {
|
||||
(0, index_js_1.assertArgument)(false, message, this.localName, value);
|
||||
}
|
||||
}
|
||||
exports.Coder = Coder;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class Writer {
|
||||
// An array of WordSize lengthed objects to concatenation
|
||||
#data;
|
||||
#dataLength;
|
||||
constructor() {
|
||||
this.#data = [];
|
||||
this.#dataLength = 0;
|
||||
}
|
||||
get data() {
|
||||
return (0, index_js_1.concat)(this.#data);
|
||||
}
|
||||
get length() { return this.#dataLength; }
|
||||
#writeData(data) {
|
||||
this.#data.push(data);
|
||||
this.#dataLength += data.length;
|
||||
return data.length;
|
||||
}
|
||||
appendWriter(writer) {
|
||||
return this.#writeData((0, index_js_1.getBytesCopy)(writer.data));
|
||||
}
|
||||
// Arrayish item; pad on the right to *nearest* WordSize
|
||||
writeBytes(value) {
|
||||
let bytes = (0, index_js_1.getBytesCopy)(value);
|
||||
const paddingOffset = bytes.length % exports.WordSize;
|
||||
if (paddingOffset) {
|
||||
bytes = (0, index_js_1.getBytesCopy)((0, index_js_1.concat)([bytes, Padding.slice(paddingOffset)]));
|
||||
}
|
||||
return this.#writeData(bytes);
|
||||
}
|
||||
// Numeric item; pad on the left *to* WordSize
|
||||
writeValue(value) {
|
||||
return this.#writeData(getValue(value));
|
||||
}
|
||||
// Inserts a numeric place-holder, returning a callback that can
|
||||
// be used to asjust the value later
|
||||
writeUpdatableValue() {
|
||||
const offset = this.#data.length;
|
||||
this.#data.push(Padding);
|
||||
this.#dataLength += exports.WordSize;
|
||||
return (value) => {
|
||||
this.#data[offset] = getValue(value);
|
||||
};
|
||||
}
|
||||
}
|
||||
exports.Writer = Writer;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class Reader {
|
||||
// Allows incomplete unpadded data to be read; otherwise an error
|
||||
// is raised if attempting to overrun the buffer. This is required
|
||||
// to deal with an old Solidity bug, in which event data for
|
||||
// external (not public thoguh) was tightly packed.
|
||||
allowLoose;
|
||||
#data;
|
||||
#offset;
|
||||
#bytesRead;
|
||||
#parent;
|
||||
#maxInflation;
|
||||
constructor(data, allowLoose, maxInflation) {
|
||||
(0, index_js_1.defineProperties)(this, { allowLoose: !!allowLoose });
|
||||
this.#data = (0, index_js_1.getBytesCopy)(data);
|
||||
this.#bytesRead = 0;
|
||||
this.#parent = null;
|
||||
this.#maxInflation = (maxInflation != null) ? maxInflation : 1024;
|
||||
this.#offset = 0;
|
||||
}
|
||||
get data() { return (0, index_js_1.hexlify)(this.#data); }
|
||||
get dataLength() { return this.#data.length; }
|
||||
get consumed() { return this.#offset; }
|
||||
get bytes() { return new Uint8Array(this.#data); }
|
||||
#incrementBytesRead(count) {
|
||||
if (this.#parent) {
|
||||
return this.#parent.#incrementBytesRead(count);
|
||||
}
|
||||
this.#bytesRead += count;
|
||||
// Check for excessive inflation (see: #4537)
|
||||
(0, index_js_1.assert)(this.#maxInflation < 1 || this.#bytesRead <= this.#maxInflation * this.dataLength, `compressed ABI data exceeds inflation ratio of ${this.#maxInflation} ( see: https:/\/github.com/ethers-io/ethers.js/issues/4537 )`, "BUFFER_OVERRUN", {
|
||||
buffer: (0, index_js_1.getBytesCopy)(this.#data), offset: this.#offset,
|
||||
length: count, info: {
|
||||
bytesRead: this.#bytesRead,
|
||||
dataLength: this.dataLength
|
||||
}
|
||||
});
|
||||
}
|
||||
#peekBytes(offset, length, loose) {
|
||||
let alignedLength = Math.ceil(length / exports.WordSize) * exports.WordSize;
|
||||
if (this.#offset + alignedLength > this.#data.length) {
|
||||
if (this.allowLoose && loose && this.#offset + length <= this.#data.length) {
|
||||
alignedLength = length;
|
||||
}
|
||||
else {
|
||||
(0, index_js_1.assert)(false, "data out-of-bounds", "BUFFER_OVERRUN", {
|
||||
buffer: (0, index_js_1.getBytesCopy)(this.#data),
|
||||
length: this.#data.length,
|
||||
offset: this.#offset + alignedLength
|
||||
});
|
||||
}
|
||||
}
|
||||
return this.#data.slice(this.#offset, this.#offset + alignedLength);
|
||||
}
|
||||
// Create a sub-reader with the same underlying data, but offset
|
||||
subReader(offset) {
|
||||
const reader = new Reader(this.#data.slice(this.#offset + offset), this.allowLoose, this.#maxInflation);
|
||||
reader.#parent = this;
|
||||
return reader;
|
||||
}
|
||||
// Read bytes
|
||||
readBytes(length, loose) {
|
||||
let bytes = this.#peekBytes(0, length, !!loose);
|
||||
this.#incrementBytesRead(length);
|
||||
this.#offset += bytes.length;
|
||||
// @TODO: Make sure the length..end bytes are all 0?
|
||||
return bytes.slice(0, length);
|
||||
}
|
||||
// Read a numeric values
|
||||
readValue() {
|
||||
return (0, index_js_1.toBigInt)(this.readBytes(exports.WordSize));
|
||||
}
|
||||
readIndex() {
|
||||
return (0, index_js_1.toNumber)(this.readBytes(exports.WordSize));
|
||||
}
|
||||
}
|
||||
exports.Reader = Reader;
|
||||
//# sourceMappingURL=abstract-coder.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/abstract-coder.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
13
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.d.ts
generated
vendored
Executable file
13
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.d.ts
generated
vendored
Executable file
@@ -0,0 +1,13 @@
|
||||
import { Typed } from "../typed.js";
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class AddressCoder extends Coder {
|
||||
constructor(localName: string);
|
||||
defaultValue(): string;
|
||||
encode(writer: Writer, _value: string | Typed): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=address.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/address.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBAEvB,SAAS,EAAE,MAAM;IAI7B,YAAY,IAAI,MAAM;IAItB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM;IAUtD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B"}
|
||||
33
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.js
generated
vendored
Executable file
33
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.js
generated
vendored
Executable file
@@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AddressCoder = void 0;
|
||||
const index_js_1 = require("../../address/index.js");
|
||||
const maths_js_1 = require("../../utils/maths.js");
|
||||
const typed_js_1 = require("../typed.js");
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class AddressCoder extends abstract_coder_js_1.Coder {
|
||||
constructor(localName) {
|
||||
super("address", "address", localName, false);
|
||||
}
|
||||
defaultValue() {
|
||||
return "0x0000000000000000000000000000000000000000";
|
||||
}
|
||||
encode(writer, _value) {
|
||||
let value = typed_js_1.Typed.dereference(_value, "string");
|
||||
try {
|
||||
value = (0, index_js_1.getAddress)(value);
|
||||
}
|
||||
catch (error) {
|
||||
return this._throwError(error.message, _value);
|
||||
}
|
||||
return writer.writeValue(value);
|
||||
}
|
||||
decode(reader) {
|
||||
return (0, index_js_1.getAddress)((0, maths_js_1.toBeHex)(reader.readValue(), 20));
|
||||
}
|
||||
}
|
||||
exports.AddressCoder = AddressCoder;
|
||||
//# sourceMappingURL=address.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/address.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/address.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AACpD,mDAA+C;AAE/C,0CAAoC;AACpC,2DAA4C;AAK5C;;GAEG;AACH,MAAa,YAAa,SAAQ,yBAAK;IAEnC,YAAY,SAAiB;QACzB,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,YAAY;QACR,OAAO,4CAA4C,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAsB;QACzC,IAAI,KAAK,GAAG,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI;YACA,KAAK,GAAG,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAC;SAC7B;QAAC,OAAO,KAAU,EAAE;YACjB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAClD;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,qBAAU,EAAC,IAAA,kBAAO,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;CACJ;AAvBD,oCAuBC"}
|
||||
15
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.d.ts
generated
vendored
Executable file
15
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.d.ts
generated
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* Clones the functionality of an existing Coder, but without a localName
|
||||
*
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class AnonymousCoder extends Coder {
|
||||
private coder;
|
||||
constructor(coder: Coder);
|
||||
defaultValue(): any;
|
||||
encode(writer: Writer, value: any): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=anonymous.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"anonymous.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/anonymous.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACrC,OAAO,CAAC,KAAK,CAAQ;gBAET,KAAK,EAAE,KAAK;IAKxB,YAAY,IAAI,GAAG;IAInB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM;IAI1C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B"}
|
||||
27
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.js
generated
vendored
Executable file
27
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.js
generated
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.AnonymousCoder = void 0;
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
/**
|
||||
* Clones the functionality of an existing Coder, but without a localName
|
||||
*
|
||||
* @_ignore
|
||||
*/
|
||||
class AnonymousCoder extends abstract_coder_js_1.Coder {
|
||||
coder;
|
||||
constructor(coder) {
|
||||
super(coder.name, coder.type, "_", coder.dynamic);
|
||||
this.coder = coder;
|
||||
}
|
||||
defaultValue() {
|
||||
return this.coder.defaultValue();
|
||||
}
|
||||
encode(writer, value) {
|
||||
return this.coder.encode(writer, value);
|
||||
}
|
||||
decode(reader) {
|
||||
return this.coder.decode(reader);
|
||||
}
|
||||
}
|
||||
exports.AnonymousCoder = AnonymousCoder;
|
||||
//# sourceMappingURL=anonymous.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/anonymous.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"anonymous.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/anonymous.ts"],"names":[],"mappings":";;;AAAA,2DAA4C;AAI5C;;;;GAIG;AACH,MAAa,cAAe,SAAQ,yBAAK;IAC7B,KAAK,CAAQ;IAErB,YAAY,KAAY;QACpB,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAU;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;CACJ;AAnBD,wCAmBC"}
|
||||
25
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.d.ts
generated
vendored
Executable file
25
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.d.ts
generated
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
import { Typed } from "../typed.js";
|
||||
import { Coder, Result, Writer } from "./abstract-coder.js";
|
||||
import type { Reader } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare function pack(writer: Writer, coders: ReadonlyArray<Coder>, values: Array<any> | {
|
||||
[name: string]: any;
|
||||
}): number;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare function unpack(reader: Reader, coders: ReadonlyArray<Coder>): Result;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class ArrayCoder extends Coder {
|
||||
readonly coder: Coder;
|
||||
readonly length: number;
|
||||
constructor(coder: Coder, length: number, localName: string);
|
||||
defaultValue(): Array<any>;
|
||||
encode(writer: Writer, _value: Array<any> | Typed): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=array.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/array.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAY,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG;IAAE,CAAE,IAAI,EAAE,MAAM,GAAI,GAAG,CAAA;CAAE,GAAG,MAAM,CA2DzH;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAoD3E;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACjC,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAC;gBAEb,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO3D,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC;IAW1B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,MAAM;IAsB1D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAkB9B"}
|
||||
165
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.js
generated
vendored
Executable file
165
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.js
generated
vendored
Executable file
@@ -0,0 +1,165 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ArrayCoder = exports.unpack = exports.pack = void 0;
|
||||
const index_js_1 = require("../../utils/index.js");
|
||||
const typed_js_1 = require("../typed.js");
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
const anonymous_js_1 = require("./anonymous.js");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
function pack(writer, coders, values) {
|
||||
let arrayValues = [];
|
||||
if (Array.isArray(values)) {
|
||||
arrayValues = values;
|
||||
}
|
||||
else if (values && typeof (values) === "object") {
|
||||
let unique = {};
|
||||
arrayValues = coders.map((coder) => {
|
||||
const name = coder.localName;
|
||||
(0, index_js_1.assert)(name, "cannot encode object for signature with missing names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values });
|
||||
(0, index_js_1.assert)(!unique[name], "cannot encode object for signature with duplicate names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values });
|
||||
unique[name] = true;
|
||||
return values[name];
|
||||
});
|
||||
}
|
||||
else {
|
||||
(0, index_js_1.assertArgument)(false, "invalid tuple value", "tuple", values);
|
||||
}
|
||||
(0, index_js_1.assertArgument)(coders.length === arrayValues.length, "types/value length mismatch", "tuple", values);
|
||||
let staticWriter = new abstract_coder_js_1.Writer();
|
||||
let dynamicWriter = new abstract_coder_js_1.Writer();
|
||||
let updateFuncs = [];
|
||||
coders.forEach((coder, index) => {
|
||||
let value = arrayValues[index];
|
||||
if (coder.dynamic) {
|
||||
// Get current dynamic offset (for the future pointer)
|
||||
let dynamicOffset = dynamicWriter.length;
|
||||
// Encode the dynamic value into the dynamicWriter
|
||||
coder.encode(dynamicWriter, value);
|
||||
// Prepare to populate the correct offset once we are done
|
||||
let updateFunc = staticWriter.writeUpdatableValue();
|
||||
updateFuncs.push((baseOffset) => {
|
||||
updateFunc(baseOffset + dynamicOffset);
|
||||
});
|
||||
}
|
||||
else {
|
||||
coder.encode(staticWriter, value);
|
||||
}
|
||||
});
|
||||
// Backfill all the dynamic offsets, now that we know the static length
|
||||
updateFuncs.forEach((func) => { func(staticWriter.length); });
|
||||
let length = writer.appendWriter(staticWriter);
|
||||
length += writer.appendWriter(dynamicWriter);
|
||||
return length;
|
||||
}
|
||||
exports.pack = pack;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
function unpack(reader, coders) {
|
||||
let values = [];
|
||||
let keys = [];
|
||||
// A reader anchored to this base
|
||||
let baseReader = reader.subReader(0);
|
||||
coders.forEach((coder) => {
|
||||
let value = null;
|
||||
if (coder.dynamic) {
|
||||
let offset = reader.readIndex();
|
||||
let offsetReader = baseReader.subReader(offset);
|
||||
try {
|
||||
value = coder.decode(offsetReader);
|
||||
}
|
||||
catch (error) {
|
||||
// Cannot recover from this
|
||||
if ((0, index_js_1.isError)(error, "BUFFER_OVERRUN")) {
|
||||
throw error;
|
||||
}
|
||||
value = error;
|
||||
value.baseType = coder.name;
|
||||
value.name = coder.localName;
|
||||
value.type = coder.type;
|
||||
}
|
||||
}
|
||||
else {
|
||||
try {
|
||||
value = coder.decode(reader);
|
||||
}
|
||||
catch (error) {
|
||||
// Cannot recover from this
|
||||
if ((0, index_js_1.isError)(error, "BUFFER_OVERRUN")) {
|
||||
throw error;
|
||||
}
|
||||
value = error;
|
||||
value.baseType = coder.name;
|
||||
value.name = coder.localName;
|
||||
value.type = coder.type;
|
||||
}
|
||||
}
|
||||
if (value == undefined) {
|
||||
throw new Error("investigate");
|
||||
}
|
||||
values.push(value);
|
||||
keys.push(coder.localName || null);
|
||||
});
|
||||
return abstract_coder_js_1.Result.fromItems(values, keys);
|
||||
}
|
||||
exports.unpack = unpack;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class ArrayCoder extends abstract_coder_js_1.Coder {
|
||||
coder;
|
||||
length;
|
||||
constructor(coder, length, localName) {
|
||||
const type = (coder.type + "[" + (length >= 0 ? length : "") + "]");
|
||||
const dynamic = (length === -1 || coder.dynamic);
|
||||
super("array", type, localName, dynamic);
|
||||
(0, index_js_1.defineProperties)(this, { coder, length });
|
||||
}
|
||||
defaultValue() {
|
||||
// Verifies the child coder is valid (even if the array is dynamic or 0-length)
|
||||
const defaultChild = this.coder.defaultValue();
|
||||
const result = [];
|
||||
for (let i = 0; i < this.length; i++) {
|
||||
result.push(defaultChild);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
encode(writer, _value) {
|
||||
const value = typed_js_1.Typed.dereference(_value, "array");
|
||||
if (!Array.isArray(value)) {
|
||||
this._throwError("expected array value", value);
|
||||
}
|
||||
let count = this.length;
|
||||
if (count === -1) {
|
||||
count = value.length;
|
||||
writer.writeValue(value.length);
|
||||
}
|
||||
(0, index_js_1.assertArgumentCount)(value.length, count, "coder array" + (this.localName ? (" " + this.localName) : ""));
|
||||
let coders = [];
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
coders.push(this.coder);
|
||||
}
|
||||
return pack(writer, coders, value);
|
||||
}
|
||||
decode(reader) {
|
||||
let count = this.length;
|
||||
if (count === -1) {
|
||||
count = reader.readIndex();
|
||||
// Check that there is *roughly* enough data to ensure
|
||||
// stray random data is not being read as a length. Each
|
||||
// slot requires at least 32 bytes for their value (or 32
|
||||
// bytes as a link to the data). This could use a much
|
||||
// tighter bound, but we are erroring on the side of safety.
|
||||
(0, index_js_1.assert)(count * abstract_coder_js_1.WordSize <= reader.dataLength, "insufficient data length", "BUFFER_OVERRUN", { buffer: reader.bytes, offset: count * abstract_coder_js_1.WordSize, length: reader.dataLength });
|
||||
}
|
||||
let coders = [];
|
||||
for (let i = 0; i < count; i++) {
|
||||
coders.push(new anonymous_js_1.AnonymousCoder(this.coder));
|
||||
}
|
||||
return unpack(reader, coders);
|
||||
}
|
||||
}
|
||||
exports.ArrayCoder = ArrayCoder;
|
||||
//# sourceMappingURL=array.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/array.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
13
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.d.ts
generated
vendored
Executable file
13
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.d.ts
generated
vendored
Executable file
@@ -0,0 +1,13 @@
|
||||
import { Typed } from "../typed.js";
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class BooleanCoder extends Coder {
|
||||
constructor(localName: string);
|
||||
defaultValue(): boolean;
|
||||
encode(writer: Writer, _value: boolean | Typed): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=boolean.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBAEvB,SAAS,EAAE,MAAM;IAI7B,YAAY,IAAI,OAAO;IAIvB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM;IAKvD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B"}
|
||||
25
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.js
generated
vendored
Executable file
25
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.js
generated
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BooleanCoder = void 0;
|
||||
const typed_js_1 = require("../typed.js");
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class BooleanCoder extends abstract_coder_js_1.Coder {
|
||||
constructor(localName) {
|
||||
super("bool", "bool", localName, false);
|
||||
}
|
||||
defaultValue() {
|
||||
return false;
|
||||
}
|
||||
encode(writer, _value) {
|
||||
const value = typed_js_1.Typed.dereference(_value, "bool");
|
||||
return writer.writeValue(value ? 1 : 0);
|
||||
}
|
||||
decode(reader) {
|
||||
return !!reader.readValue();
|
||||
}
|
||||
}
|
||||
exports.BooleanCoder = BooleanCoder;
|
||||
//# sourceMappingURL=boolean.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/boolean.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/boolean.ts"],"names":[],"mappings":";;;AAAA,0CAAoC;AACpC,2DAA4C;AAI5C;;GAEG;AACH,MAAa,YAAa,SAAQ,yBAAK;IAEnC,YAAY,SAAiB;QACzB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY;QACR,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAuB;QAC1C,MAAM,KAAK,GAAG,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACJ;AAlBD,oCAkBC"}
|
||||
19
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.d.ts
generated
vendored
Executable file
19
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.d.ts
generated
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class DynamicBytesCoder extends Coder {
|
||||
constructor(type: string, localName: string);
|
||||
defaultValue(): string;
|
||||
encode(writer: Writer, value: any): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class BytesCoder extends DynamicBytesCoder {
|
||||
constructor(localName: string);
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=bytes.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/bytes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC5B,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI3C,YAAY,IAAI,MAAM;IAItB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM;IAO1C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,iBAAiB;gBACjC,SAAS,EAAE,MAAM;IAI7B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B"}
|
||||
39
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.js
generated
vendored
Executable file
39
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.js
generated
vendored
Executable file
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BytesCoder = exports.DynamicBytesCoder = void 0;
|
||||
const index_js_1 = require("../../utils/index.js");
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class DynamicBytesCoder extends abstract_coder_js_1.Coder {
|
||||
constructor(type, localName) {
|
||||
super(type, type, localName, true);
|
||||
}
|
||||
defaultValue() {
|
||||
return "0x";
|
||||
}
|
||||
encode(writer, value) {
|
||||
value = (0, index_js_1.getBytesCopy)(value);
|
||||
let length = writer.writeValue(value.length);
|
||||
length += writer.writeBytes(value);
|
||||
return length;
|
||||
}
|
||||
decode(reader) {
|
||||
return reader.readBytes(reader.readIndex(), true);
|
||||
}
|
||||
}
|
||||
exports.DynamicBytesCoder = DynamicBytesCoder;
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class BytesCoder extends DynamicBytesCoder {
|
||||
constructor(localName) {
|
||||
super("bytes", localName);
|
||||
}
|
||||
decode(reader) {
|
||||
return (0, index_js_1.hexlify)(super.decode(reader));
|
||||
}
|
||||
}
|
||||
exports.BytesCoder = BytesCoder;
|
||||
//# sourceMappingURL=bytes.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/bytes.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/bytes.ts"],"names":[],"mappings":";;;AAAA,mDAA6D;AAE7D,2DAA4C;AAK5C;;GAEG;AACH,MAAa,iBAAkB,SAAQ,yBAAK;IACxC,YAAY,IAAY,EAAE,SAAiB;QACxC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAU;QAC7B,KAAK,GAAG,IAAA,uBAAY,EAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACJ;AAnBD,8CAmBC;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,iBAAiB;IAC7C,YAAY,SAAiB;QACzB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,kBAAO,EAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;CACJ;AARD,gCAQC"}
|
||||
15
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.d.ts
generated
vendored
Executable file
15
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.d.ts
generated
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
import { Typed } from "../typed.js";
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { BytesLike } from "../../utils/index.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class FixedBytesCoder extends Coder {
|
||||
readonly size: number;
|
||||
constructor(size: number, localName: string);
|
||||
defaultValue(): string;
|
||||
encode(writer: Writer, _value: BytesLike | Typed): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=fixed-bytes.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"fixed-bytes.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/fixed-bytes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAC;gBAEX,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAM3C,YAAY,IAAI,MAAM;IAItB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM;IAMzD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B"}
|
||||
32
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.js
generated
vendored
Executable file
32
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.js
generated
vendored
Executable file
@@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.FixedBytesCoder = void 0;
|
||||
const index_js_1 = require("../../utils/index.js");
|
||||
const typed_js_1 = require("../typed.js");
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class FixedBytesCoder extends abstract_coder_js_1.Coder {
|
||||
size;
|
||||
constructor(size, localName) {
|
||||
let name = "bytes" + String(size);
|
||||
super(name, name, localName, false);
|
||||
(0, index_js_1.defineProperties)(this, { size }, { size: "number" });
|
||||
}
|
||||
defaultValue() {
|
||||
return ("0x0000000000000000000000000000000000000000000000000000000000000000").substring(0, 2 + this.size * 2);
|
||||
}
|
||||
encode(writer, _value) {
|
||||
let data = (0, index_js_1.getBytesCopy)(typed_js_1.Typed.dereference(_value, this.type));
|
||||
if (data.length !== this.size) {
|
||||
this._throwError("incorrect data length", _value);
|
||||
}
|
||||
return writer.writeBytes(data);
|
||||
}
|
||||
decode(reader) {
|
||||
return (0, index_js_1.hexlify)(reader.readBytes(this.size));
|
||||
}
|
||||
}
|
||||
exports.FixedBytesCoder = FixedBytesCoder;
|
||||
//# sourceMappingURL=fixed-bytes.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/fixed-bytes.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"fixed-bytes.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/fixed-bytes.ts"],"names":[],"mappings":";;;AACA,mDAA+E;AAE/E,0CAAoC;AACpC,2DAA4C;AAO5C;;GAEG;AACH,MAAa,eAAgB,SAAQ,yBAAK;IAC7B,IAAI,CAAU;IAEvB,YAAY,IAAY,EAAE,SAAiB;QACvC,IAAI,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,IAAA,2BAAgB,EAAkB,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,YAAY;QACR,OAAO,CAAC,oEAAoE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAyB;QAC5C,IAAI,IAAI,GAAG,IAAA,uBAAY,EAAC,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;SAAE;QACrF,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,kBAAO,EAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;CACJ;AAtBD,0CAsBC"}
|
||||
12
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.d.ts
generated
vendored
Executable file
12
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.d.ts
generated
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class NullCoder extends Coder {
|
||||
constructor(localName: string);
|
||||
defaultValue(): null;
|
||||
encode(writer: Writer, value: any): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=null.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"null.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/null.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;gBAEpB,SAAS,EAAE,MAAM;IAI7B,YAAY,IAAI,IAAI;IAIpB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM;IAK1C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAI9B"}
|
||||
28
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.js
generated
vendored
Executable file
28
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.js
generated
vendored
Executable file
@@ -0,0 +1,28 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NullCoder = void 0;
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
const Empty = new Uint8Array([]);
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class NullCoder extends abstract_coder_js_1.Coder {
|
||||
constructor(localName) {
|
||||
super("null", "", localName, false);
|
||||
}
|
||||
defaultValue() {
|
||||
return null;
|
||||
}
|
||||
encode(writer, value) {
|
||||
if (value != null) {
|
||||
this._throwError("not null", value);
|
||||
}
|
||||
return writer.writeBytes(Empty);
|
||||
}
|
||||
decode(reader) {
|
||||
reader.readBytes(0);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
exports.NullCoder = NullCoder;
|
||||
//# sourceMappingURL=null.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/null.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"null.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/null.ts"],"names":[],"mappings":";;;AAAA,2DAA4C;AAG5C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAG,CAAC,CAAC;AAElC;;GAEG;AACH,MAAa,SAAU,SAAQ,yBAAK;IAEhC,YAAY,SAAiB;QACzB,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAU;QAC7B,IAAI,KAAK,IAAI,IAAI,EAAE;YAAE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;SAAE;QAC3D,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAnBD,8BAmBC"}
|
||||
16
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.d.ts
generated
vendored
Executable file
16
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.d.ts
generated
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
import { Typed } from "../typed.js";
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { BigNumberish } from "../../utils/index.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class NumberCoder extends Coder {
|
||||
readonly size: number;
|
||||
readonly signed: boolean;
|
||||
constructor(size: number, signed: boolean, localName: string);
|
||||
defaultValue(): number;
|
||||
encode(writer: Writer, _value: BigNumberish | Typed): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=number.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/number.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAY,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAO1D;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAG,OAAO,CAAC;gBAEd,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;IAO5D,YAAY,IAAI,MAAM;IAItB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,KAAK,GAAG,MAAM;IAkB5D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAS9B"}
|
||||
49
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.js
generated
vendored
Executable file
49
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.js
generated
vendored
Executable file
@@ -0,0 +1,49 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NumberCoder = void 0;
|
||||
const index_js_1 = require("../../utils/index.js");
|
||||
const typed_js_1 = require("../typed.js");
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
const BN_0 = BigInt(0);
|
||||
const BN_1 = BigInt(1);
|
||||
const BN_MAX_UINT256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class NumberCoder extends abstract_coder_js_1.Coder {
|
||||
size;
|
||||
signed;
|
||||
constructor(size, signed, localName) {
|
||||
const name = ((signed ? "int" : "uint") + (size * 8));
|
||||
super(name, name, localName, false);
|
||||
(0, index_js_1.defineProperties)(this, { size, signed }, { size: "number", signed: "boolean" });
|
||||
}
|
||||
defaultValue() {
|
||||
return 0;
|
||||
}
|
||||
encode(writer, _value) {
|
||||
let value = (0, index_js_1.getBigInt)(typed_js_1.Typed.dereference(_value, this.type));
|
||||
// Check bounds are safe for encoding
|
||||
let maxUintValue = (0, index_js_1.mask)(BN_MAX_UINT256, abstract_coder_js_1.WordSize * 8);
|
||||
if (this.signed) {
|
||||
let bounds = (0, index_js_1.mask)(maxUintValue, (this.size * 8) - 1);
|
||||
if (value > bounds || value < -(bounds + BN_1)) {
|
||||
this._throwError("value out-of-bounds", _value);
|
||||
}
|
||||
value = (0, index_js_1.toTwos)(value, 8 * abstract_coder_js_1.WordSize);
|
||||
}
|
||||
else if (value < BN_0 || value > (0, index_js_1.mask)(maxUintValue, this.size * 8)) {
|
||||
this._throwError("value out-of-bounds", _value);
|
||||
}
|
||||
return writer.writeValue(value);
|
||||
}
|
||||
decode(reader) {
|
||||
let value = (0, index_js_1.mask)(reader.readValue(), this.size * 8);
|
||||
if (this.signed) {
|
||||
value = (0, index_js_1.fromTwos)(value, this.size * 8);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
exports.NumberCoder = NumberCoder;
|
||||
//# sourceMappingURL=number.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/number.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/number.ts"],"names":[],"mappings":";;;AAAA,mDAE8B;AAE9B,0CAAoC;AACpC,2DAAsD;AAOtD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,cAAc,GAAG,MAAM,CAAC,oEAAoE,CAAC,CAAC;AAEpG;;GAEG;AACH,MAAa,WAAY,SAAQ,yBAAK;IACzB,IAAI,CAAU;IACd,MAAM,CAAW;IAE1B,YAAY,IAAY,EAAE,MAAe,EAAE,SAAiB;QACxD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAEpC,IAAA,2BAAgB,EAAc,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,YAAY;QACR,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAA4B;QAC/C,IAAI,KAAK,GAAG,IAAA,oBAAS,EAAC,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,qCAAqC;QACrC,IAAI,YAAY,GAAG,IAAA,eAAI,EAAC,cAAc,EAAE,4BAAQ,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,MAAM,GAAG,IAAA,eAAI,EAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;gBAC5C,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;aACnD;YACD,KAAK,GAAG,IAAA,iBAAM,EAAC,KAAK,EAAE,CAAC,GAAG,4BAAQ,CAAC,CAAC;SACvC;aAAM,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAA,eAAI,EAAC,YAAY,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;SACnD;QAED,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,IAAI,KAAK,GAAG,IAAA,eAAI,EAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,KAAK,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;SAC1C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA1CD,kCA0CC"}
|
||||
13
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.d.ts
generated
vendored
Executable file
13
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.d.ts
generated
vendored
Executable file
@@ -0,0 +1,13 @@
|
||||
import { Typed } from "../typed.js";
|
||||
import { DynamicBytesCoder } from "./bytes.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class StringCoder extends DynamicBytesCoder {
|
||||
constructor(localName: string);
|
||||
defaultValue(): string;
|
||||
encode(writer: Writer, _value: string | Typed): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=string.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/string.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;gBAElC,SAAS,EAAE,MAAM;IAI7B,YAAY,IAAI,MAAM;IAItB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM;IAItD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B"}
|
||||
25
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.js
generated
vendored
Executable file
25
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.js
generated
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.StringCoder = void 0;
|
||||
const utf8_js_1 = require("../../utils/utf8.js");
|
||||
const typed_js_1 = require("../typed.js");
|
||||
const bytes_js_1 = require("./bytes.js");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class StringCoder extends bytes_js_1.DynamicBytesCoder {
|
||||
constructor(localName) {
|
||||
super("string", localName);
|
||||
}
|
||||
defaultValue() {
|
||||
return "";
|
||||
}
|
||||
encode(writer, _value) {
|
||||
return super.encode(writer, (0, utf8_js_1.toUtf8Bytes)(typed_js_1.Typed.dereference(_value, "string")));
|
||||
}
|
||||
decode(reader) {
|
||||
return (0, utf8_js_1.toUtf8String)(super.decode(reader));
|
||||
}
|
||||
}
|
||||
exports.StringCoder = StringCoder;
|
||||
//# sourceMappingURL=string.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/string.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/string.ts"],"names":[],"mappings":";;;AAAA,iDAAgE;AAEhE,0CAAoC;AACpC,yCAA+C;AAK/C;;GAEG;AACH,MAAa,WAAY,SAAQ,4BAAiB;IAE9C,YAAY,SAAiB;QACzB,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY;QACR,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAsB;QACzC,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAA,qBAAW,EAAC,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,sBAAY,EAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;CACJ;AAjBD,kCAiBC"}
|
||||
16
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.d.ts
generated
vendored
Executable file
16
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.d.ts
generated
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
import { Typed } from "../typed.js";
|
||||
import { Coder } from "./abstract-coder.js";
|
||||
import type { Reader, Writer } from "./abstract-coder.js";
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
export declare class TupleCoder extends Coder {
|
||||
readonly coders: ReadonlyArray<Coder>;
|
||||
constructor(coders: Array<Coder>, localName: string);
|
||||
defaultValue(): any;
|
||||
encode(writer: Writer, _value: Array<any> | {
|
||||
[name: string]: any;
|
||||
} | Typed): number;
|
||||
decode(reader: Reader): any;
|
||||
}
|
||||
//# sourceMappingURL=tuple.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../../../src.ts/abi/coders/tuple.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAI5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACjC,QAAQ,CAAC,MAAM,EAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBAE3B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM;IAanD,YAAY,IAAI,GAAG;IA+BnB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG;QAAE,CAAE,IAAI,EAAE,MAAM,GAAI,GAAG,CAAA;KAAE,GAAG,KAAK,GAAG,MAAM;IAKtF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;CAG9B"}
|
||||
67
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.js
generated
vendored
Executable file
67
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.js
generated
vendored
Executable file
@@ -0,0 +1,67 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TupleCoder = void 0;
|
||||
const properties_js_1 = require("../../utils/properties.js");
|
||||
const typed_js_1 = require("../typed.js");
|
||||
const abstract_coder_js_1 = require("./abstract-coder.js");
|
||||
const array_js_1 = require("./array.js");
|
||||
/**
|
||||
* @_ignore
|
||||
*/
|
||||
class TupleCoder extends abstract_coder_js_1.Coder {
|
||||
coders;
|
||||
constructor(coders, localName) {
|
||||
let dynamic = false;
|
||||
const types = [];
|
||||
coders.forEach((coder) => {
|
||||
if (coder.dynamic) {
|
||||
dynamic = true;
|
||||
}
|
||||
types.push(coder.type);
|
||||
});
|
||||
const type = ("tuple(" + types.join(",") + ")");
|
||||
super("tuple", type, localName, dynamic);
|
||||
(0, properties_js_1.defineProperties)(this, { coders: Object.freeze(coders.slice()) });
|
||||
}
|
||||
defaultValue() {
|
||||
const values = [];
|
||||
this.coders.forEach((coder) => {
|
||||
values.push(coder.defaultValue());
|
||||
});
|
||||
// We only output named properties for uniquely named coders
|
||||
const uniqueNames = this.coders.reduce((accum, coder) => {
|
||||
const name = coder.localName;
|
||||
if (name) {
|
||||
if (!accum[name]) {
|
||||
accum[name] = 0;
|
||||
}
|
||||
accum[name]++;
|
||||
}
|
||||
return accum;
|
||||
}, {});
|
||||
// Add named values
|
||||
this.coders.forEach((coder, index) => {
|
||||
let name = coder.localName;
|
||||
if (!name || uniqueNames[name] !== 1) {
|
||||
return;
|
||||
}
|
||||
if (name === "length") {
|
||||
name = "_length";
|
||||
}
|
||||
if (values[name] != null) {
|
||||
return;
|
||||
}
|
||||
values[name] = values[index];
|
||||
});
|
||||
return Object.freeze(values);
|
||||
}
|
||||
encode(writer, _value) {
|
||||
const value = typed_js_1.Typed.dereference(_value, "tuple");
|
||||
return (0, array_js_1.pack)(writer, this.coders, value);
|
||||
}
|
||||
decode(reader) {
|
||||
return (0, array_js_1.unpack)(reader, this.coders);
|
||||
}
|
||||
}
|
||||
exports.TupleCoder = TupleCoder;
|
||||
//# sourceMappingURL=tuple.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/coders/tuple.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../../src.ts/abi/coders/tuple.ts"],"names":[],"mappings":";;;AAAA,6DAA6D;AAE7D,0CAAoC;AACpC,2DAA4C;AAE5C,yCAA0C;AAI1C;;GAEG;AACH,MAAa,UAAW,SAAQ,yBAAK;IACxB,MAAM,CAAwB;IAEvC,YAAY,MAAoB,EAAE,SAAiB;QAC/C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,KAAK,CAAC,OAAO,EAAE;gBAAE,OAAO,GAAG,IAAI,CAAC;aAAE;YACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QAEhD,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACzC,IAAA,gCAAgB,EAAa,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,YAAY;QACR,MAAM,MAAM,GAAQ,EAAG,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;YAC7B,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAAE;gBACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;aACjB;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,EAAgC,EAAG,CAAC,CAAC;QAEtC,mBAAmB;QACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;YAChD,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAAE,OAAO;aAAE;YAEjD,IAAI,IAAI,KAAK,QAAQ,EAAE;gBAAE,IAAI,GAAG,SAAS,CAAC;aAAE;YAE5C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;gBAAE,OAAO;aAAE;YAErC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAsD;QACzE,MAAM,KAAK,GAAG,gBAAK,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,IAAA,eAAI,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,IAAA,iBAAM,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACJ;AAvDD,gCAuDC"}
|
||||
466
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.d.ts
generated
vendored
Executable file
466
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.d.ts
generated
vendored
Executable file
@@ -0,0 +1,466 @@
|
||||
/**
|
||||
* A fragment is a single item from an ABI, which may represent any of:
|
||||
*
|
||||
* - [Functions](FunctionFragment)
|
||||
* - [Events](EventFragment)
|
||||
* - [Constructors](ConstructorFragment)
|
||||
* - Custom [Errors](ErrorFragment)
|
||||
* - [Fallback or Receive](FallbackFragment) functions
|
||||
*
|
||||
* @_subsection api/abi/abi-coder:Fragments [about-fragments]
|
||||
*/
|
||||
/**
|
||||
* A Type description in a [JSON ABI format](link-solc-jsonabi).
|
||||
*/
|
||||
export interface JsonFragmentType {
|
||||
/**
|
||||
* The parameter name.
|
||||
*/
|
||||
readonly name?: string;
|
||||
/**
|
||||
* If the parameter is indexed.
|
||||
*/
|
||||
readonly indexed?: boolean;
|
||||
/**
|
||||
* The type of the parameter.
|
||||
*/
|
||||
readonly type?: string;
|
||||
/**
|
||||
* The internal Solidity type.
|
||||
*/
|
||||
readonly internalType?: string;
|
||||
/**
|
||||
* The components for a tuple.
|
||||
*/
|
||||
readonly components?: ReadonlyArray<JsonFragmentType>;
|
||||
}
|
||||
/**
|
||||
* A fragment for a method, event or error in a [JSON ABI format](link-solc-jsonabi).
|
||||
*/
|
||||
export interface JsonFragment {
|
||||
/**
|
||||
* The name of the error, event, function, etc.
|
||||
*/
|
||||
readonly name?: string;
|
||||
/**
|
||||
* The type of the fragment (e.g. ``event``, ``"function"``, etc.)
|
||||
*/
|
||||
readonly type?: string;
|
||||
/**
|
||||
* If the event is anonymous.
|
||||
*/
|
||||
readonly anonymous?: boolean;
|
||||
/**
|
||||
* If the function is payable.
|
||||
*/
|
||||
readonly payable?: boolean;
|
||||
/**
|
||||
* If the function is constant.
|
||||
*/
|
||||
readonly constant?: boolean;
|
||||
/**
|
||||
* The mutability state of the function.
|
||||
*/
|
||||
readonly stateMutability?: string;
|
||||
/**
|
||||
* The input parameters.
|
||||
*/
|
||||
readonly inputs?: ReadonlyArray<JsonFragmentType>;
|
||||
/**
|
||||
* The output parameters.
|
||||
*/
|
||||
readonly outputs?: ReadonlyArray<JsonFragmentType>;
|
||||
/**
|
||||
* The gas limit to use when sending a transaction for this function.
|
||||
*/
|
||||
readonly gas?: string;
|
||||
}
|
||||
/**
|
||||
* The format to serialize the output as.
|
||||
*
|
||||
* **``"sighash"``** - the bare formatting, used to compute the selector
|
||||
* or topic hash; this format cannot be reversed (as it discards ``indexed``)
|
||||
* so cannot by used to export an [[Interface]].
|
||||
*
|
||||
* **``"minimal"``** - Human-Readable ABI with minimal spacing and without
|
||||
* names, so it is compact, but will result in Result objects that cannot
|
||||
* be accessed by name.
|
||||
*
|
||||
* **``"full"``** - Full Human-Readable ABI, with readable spacing and names
|
||||
* intact; this is generally the recommended format.
|
||||
*
|
||||
* **``"json"``** - The [JSON ABI format](link-solc-jsonabi).
|
||||
*/
|
||||
export type FormatType = "sighash" | "minimal" | "full" | "json";
|
||||
/**
|
||||
* When [walking](ParamType-walk) a [[ParamType]], this is called
|
||||
* on each component.
|
||||
*/
|
||||
export type ParamTypeWalkFunc = (type: string, value: any) => any;
|
||||
/**
|
||||
* When [walking asynchronously](ParamType-walkAsync) a [[ParamType]],
|
||||
* this is called on each component.
|
||||
*/
|
||||
export type ParamTypeWalkAsyncFunc = (type: string, value: any) => any | Promise<any>;
|
||||
/**
|
||||
* Each input and output of a [[Fragment]] is an Array of **ParamType**.
|
||||
*/
|
||||
export declare class ParamType {
|
||||
#private;
|
||||
/**
|
||||
* The local name of the parameter (or ``""`` if unbound)
|
||||
*/
|
||||
readonly name: string;
|
||||
/**
|
||||
* The fully qualified type (e.g. ``"address"``, ``"tuple(address)"``,
|
||||
* ``"uint256[3][]"``)
|
||||
*/
|
||||
readonly type: string;
|
||||
/**
|
||||
* The base type (e.g. ``"address"``, ``"tuple"``, ``"array"``)
|
||||
*/
|
||||
readonly baseType: string;
|
||||
/**
|
||||
* True if the parameters is indexed.
|
||||
*
|
||||
* For non-indexable types this is ``null``.
|
||||
*/
|
||||
readonly indexed: null | boolean;
|
||||
/**
|
||||
* The components for the tuple.
|
||||
*
|
||||
* For non-tuple types this is ``null``.
|
||||
*/
|
||||
readonly components: null | ReadonlyArray<ParamType>;
|
||||
/**
|
||||
* The array length, or ``-1`` for dynamic-lengthed arrays.
|
||||
*
|
||||
* For non-array types this is ``null``.
|
||||
*/
|
||||
readonly arrayLength: null | number;
|
||||
/**
|
||||
* The type of each child in the array.
|
||||
*
|
||||
* For non-array types this is ``null``.
|
||||
*/
|
||||
readonly arrayChildren: null | ParamType;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, name: string, type: string, baseType: string, indexed: null | boolean, components: null | ReadonlyArray<ParamType>, arrayLength: null | number, arrayChildren: null | ParamType);
|
||||
/**
|
||||
* Return a string representation of this type.
|
||||
*
|
||||
* For example,
|
||||
*
|
||||
* ``sighash" => "(uint256,address)"``
|
||||
*
|
||||
* ``"minimal" => "tuple(uint256,address) indexed"``
|
||||
*
|
||||
* ``"full" => "tuple(uint256 foo, address bar) indexed baz"``
|
||||
*/
|
||||
format(format?: FormatType): string;
|
||||
/**
|
||||
* Returns true if %%this%% is an Array type.
|
||||
*
|
||||
* This provides a type gaurd ensuring that [[arrayChildren]]
|
||||
* and [[arrayLength]] are non-null.
|
||||
*/
|
||||
isArray(): this is (ParamType & {
|
||||
arrayChildren: ParamType;
|
||||
arrayLength: number;
|
||||
});
|
||||
/**
|
||||
* Returns true if %%this%% is a Tuple type.
|
||||
*
|
||||
* This provides a type gaurd ensuring that [[components]]
|
||||
* is non-null.
|
||||
*/
|
||||
isTuple(): this is (ParamType & {
|
||||
components: ReadonlyArray<ParamType>;
|
||||
});
|
||||
/**
|
||||
* Returns true if %%this%% is an Indexable type.
|
||||
*
|
||||
* This provides a type gaurd ensuring that [[indexed]]
|
||||
* is non-null.
|
||||
*/
|
||||
isIndexable(): this is (ParamType & {
|
||||
indexed: boolean;
|
||||
});
|
||||
/**
|
||||
* Walks the **ParamType** with %%value%%, calling %%process%%
|
||||
* on each type, destructing the %%value%% recursively.
|
||||
*/
|
||||
walk(value: any, process: ParamTypeWalkFunc): any;
|
||||
/**
|
||||
* Walks the **ParamType** with %%value%%, asynchronously calling
|
||||
* %%process%% on each type, destructing the %%value%% recursively.
|
||||
*
|
||||
* This can be used to resolve ENS names by walking and resolving each
|
||||
* ``"address"`` type.
|
||||
*/
|
||||
walkAsync(value: any, process: ParamTypeWalkAsyncFunc): Promise<any>;
|
||||
/**
|
||||
* Creates a new **ParamType** for %%obj%%.
|
||||
*
|
||||
* If %%allowIndexed%% then the ``indexed`` keyword is permitted,
|
||||
* otherwise the ``indexed`` keyword will throw an error.
|
||||
*/
|
||||
static from(obj: any, allowIndexed?: boolean): ParamType;
|
||||
/**
|
||||
* Returns true if %%value%% is a **ParamType**.
|
||||
*/
|
||||
static isParamType(value: any): value is ParamType;
|
||||
}
|
||||
/**
|
||||
* The type of a [[Fragment]].
|
||||
*/
|
||||
export type FragmentType = "constructor" | "error" | "event" | "fallback" | "function" | "struct";
|
||||
/**
|
||||
* An abstract class to represent An individual fragment from a parse ABI.
|
||||
*/
|
||||
export declare abstract class Fragment {
|
||||
/**
|
||||
* The type of the fragment.
|
||||
*/
|
||||
readonly type: FragmentType;
|
||||
/**
|
||||
* The inputs for the fragment.
|
||||
*/
|
||||
readonly inputs: ReadonlyArray<ParamType>;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, type: FragmentType, inputs: ReadonlyArray<ParamType>);
|
||||
/**
|
||||
* Returns a string representation of this fragment as %%format%%.
|
||||
*/
|
||||
abstract format(format?: FormatType): string;
|
||||
/**
|
||||
* Creates a new **Fragment** for %%obj%%, wich can be any supported
|
||||
* ABI frgament type.
|
||||
*/
|
||||
static from(obj: any): Fragment;
|
||||
/**
|
||||
* Returns true if %%value%% is a [[ConstructorFragment]].
|
||||
*/
|
||||
static isConstructor(value: any): value is ConstructorFragment;
|
||||
/**
|
||||
* Returns true if %%value%% is an [[ErrorFragment]].
|
||||
*/
|
||||
static isError(value: any): value is ErrorFragment;
|
||||
/**
|
||||
* Returns true if %%value%% is an [[EventFragment]].
|
||||
*/
|
||||
static isEvent(value: any): value is EventFragment;
|
||||
/**
|
||||
* Returns true if %%value%% is a [[FunctionFragment]].
|
||||
*/
|
||||
static isFunction(value: any): value is FunctionFragment;
|
||||
/**
|
||||
* Returns true if %%value%% is a [[StructFragment]].
|
||||
*/
|
||||
static isStruct(value: any): value is StructFragment;
|
||||
}
|
||||
/**
|
||||
* An abstract class to represent An individual fragment
|
||||
* which has a name from a parse ABI.
|
||||
*/
|
||||
export declare abstract class NamedFragment extends Fragment {
|
||||
/**
|
||||
* The name of the fragment.
|
||||
*/
|
||||
readonly name: string;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, type: FragmentType, name: string, inputs: ReadonlyArray<ParamType>);
|
||||
}
|
||||
/**
|
||||
* A Fragment which represents a //Custom Error//.
|
||||
*/
|
||||
export declare class ErrorFragment extends NamedFragment {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, name: string, inputs: ReadonlyArray<ParamType>);
|
||||
/**
|
||||
* The Custom Error selector.
|
||||
*/
|
||||
get selector(): string;
|
||||
/**
|
||||
* Returns a string representation of this fragment as %%format%%.
|
||||
*/
|
||||
format(format?: FormatType): string;
|
||||
/**
|
||||
* Returns a new **ErrorFragment** for %%obj%%.
|
||||
*/
|
||||
static from(obj: any): ErrorFragment;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard if %%value%% is an
|
||||
* **ErrorFragment**.
|
||||
*/
|
||||
static isFragment(value: any): value is ErrorFragment;
|
||||
}
|
||||
/**
|
||||
* A Fragment which represents an Event.
|
||||
*/
|
||||
export declare class EventFragment extends NamedFragment {
|
||||
/**
|
||||
* Whether this event is anonymous.
|
||||
*/
|
||||
readonly anonymous: boolean;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, name: string, inputs: ReadonlyArray<ParamType>, anonymous: boolean);
|
||||
/**
|
||||
* The Event topic hash.
|
||||
*/
|
||||
get topicHash(): string;
|
||||
/**
|
||||
* Returns a string representation of this event as %%format%%.
|
||||
*/
|
||||
format(format?: FormatType): string;
|
||||
/**
|
||||
* Return the topic hash for an event with %%name%% and %%params%%.
|
||||
*/
|
||||
static getTopicHash(name: string, params?: Array<any>): string;
|
||||
/**
|
||||
* Returns a new **EventFragment** for %%obj%%.
|
||||
*/
|
||||
static from(obj: any): EventFragment;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard if %%value%% is an
|
||||
* **EventFragment**.
|
||||
*/
|
||||
static isFragment(value: any): value is EventFragment;
|
||||
}
|
||||
/**
|
||||
* A Fragment which represents a constructor.
|
||||
*/
|
||||
export declare class ConstructorFragment extends Fragment {
|
||||
/**
|
||||
* Whether the constructor can receive an endowment.
|
||||
*/
|
||||
readonly payable: boolean;
|
||||
/**
|
||||
* The recommended gas limit for deployment or ``null``.
|
||||
*/
|
||||
readonly gas: null | bigint;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, type: FragmentType, inputs: ReadonlyArray<ParamType>, payable: boolean, gas: null | bigint);
|
||||
/**
|
||||
* Returns a string representation of this constructor as %%format%%.
|
||||
*/
|
||||
format(format?: FormatType): string;
|
||||
/**
|
||||
* Returns a new **ConstructorFragment** for %%obj%%.
|
||||
*/
|
||||
static from(obj: any): ConstructorFragment;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard if %%value%% is a
|
||||
* **ConstructorFragment**.
|
||||
*/
|
||||
static isFragment(value: any): value is ConstructorFragment;
|
||||
}
|
||||
/**
|
||||
* A Fragment which represents a method.
|
||||
*/
|
||||
export declare class FallbackFragment extends Fragment {
|
||||
/**
|
||||
* If the function can be sent value during invocation.
|
||||
*/
|
||||
readonly payable: boolean;
|
||||
constructor(guard: any, inputs: ReadonlyArray<ParamType>, payable: boolean);
|
||||
/**
|
||||
* Returns a string representation of this fallback as %%format%%.
|
||||
*/
|
||||
format(format?: FormatType): string;
|
||||
/**
|
||||
* Returns a new **FallbackFragment** for %%obj%%.
|
||||
*/
|
||||
static from(obj: any): FallbackFragment;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard if %%value%% is a
|
||||
* **FallbackFragment**.
|
||||
*/
|
||||
static isFragment(value: any): value is FallbackFragment;
|
||||
}
|
||||
/**
|
||||
* A Fragment which represents a method.
|
||||
*/
|
||||
export declare class FunctionFragment extends NamedFragment {
|
||||
/**
|
||||
* If the function is constant (e.g. ``pure`` or ``view`` functions).
|
||||
*/
|
||||
readonly constant: boolean;
|
||||
/**
|
||||
* The returned types for the result of calling this function.
|
||||
*/
|
||||
readonly outputs: ReadonlyArray<ParamType>;
|
||||
/**
|
||||
* The state mutability (e.g. ``payable``, ``nonpayable``, ``view``
|
||||
* or ``pure``)
|
||||
*/
|
||||
readonly stateMutability: "payable" | "nonpayable" | "view" | "pure";
|
||||
/**
|
||||
* If the function can be sent value during invocation.
|
||||
*/
|
||||
readonly payable: boolean;
|
||||
/**
|
||||
* The recommended gas limit to send when calling this function.
|
||||
*/
|
||||
readonly gas: null | bigint;
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, name: string, stateMutability: "payable" | "nonpayable" | "view" | "pure", inputs: ReadonlyArray<ParamType>, outputs: ReadonlyArray<ParamType>, gas: null | bigint);
|
||||
/**
|
||||
* The Function selector.
|
||||
*/
|
||||
get selector(): string;
|
||||
/**
|
||||
* Returns a string representation of this function as %%format%%.
|
||||
*/
|
||||
format(format?: FormatType): string;
|
||||
/**
|
||||
* Return the selector for a function with %%name%% and %%params%%.
|
||||
*/
|
||||
static getSelector(name: string, params?: Array<any>): string;
|
||||
/**
|
||||
* Returns a new **FunctionFragment** for %%obj%%.
|
||||
*/
|
||||
static from(obj: any): FunctionFragment;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard if %%value%% is a
|
||||
* **FunctionFragment**.
|
||||
*/
|
||||
static isFragment(value: any): value is FunctionFragment;
|
||||
}
|
||||
/**
|
||||
* A Fragment which represents a structure.
|
||||
*/
|
||||
export declare class StructFragment extends NamedFragment {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
constructor(guard: any, name: string, inputs: ReadonlyArray<ParamType>);
|
||||
/**
|
||||
* Returns a string representation of this struct as %%format%%.
|
||||
*/
|
||||
format(): string;
|
||||
/**
|
||||
* Returns a new **StructFragment** for %%obj%%.
|
||||
*/
|
||||
static from(obj: any): StructFragment;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard if %%value%% is a
|
||||
* **StructFragment**.
|
||||
*/
|
||||
static isFragment(value: any): value is FunctionFragment;
|
||||
}
|
||||
//# sourceMappingURL=fragments.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.d.ts.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1331
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.js
generated
vendored
Executable file
1331
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.js
generated
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/fragments.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
18
dev/env/node_modules/ethers/lib.commonjs/abi/index.d.ts
generated
vendored
Executable file
18
dev/env/node_modules/ethers/lib.commonjs/abi/index.d.ts
generated
vendored
Executable file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* The Application Binary Interface (ABI) describes how method input
|
||||
* parameters should be encoded, their results decoded, and how to
|
||||
* decode events and errors.
|
||||
*
|
||||
* See [About ABIs](docs-abi) for more details how they are used.
|
||||
*
|
||||
* @_section api/abi:Application Binary Interface [about-abi]
|
||||
* @_navTitle: ABI
|
||||
*/
|
||||
export { AbiCoder } from "./abi-coder.js";
|
||||
export { decodeBytes32String, encodeBytes32String } from "./bytes32.js";
|
||||
export { ConstructorFragment, ErrorFragment, EventFragment, FallbackFragment, Fragment, FunctionFragment, NamedFragment, ParamType, StructFragment, } from "./fragments.js";
|
||||
export { checkResultErrors, Indexed, Interface, ErrorDescription, LogDescription, TransactionDescription, Result } from "./interface.js";
|
||||
export { Typed } from "./typed.js";
|
||||
export type { JsonFragment, JsonFragmentType, FormatType, FragmentType, ParamTypeWalkAsyncFunc, ParamTypeWalkFunc } from "./fragments.js";
|
||||
export type { InterfaceAbi, } from "./interface.js";
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/index.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/index.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src.ts/abi/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EACH,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EACnE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,GACvE,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,gBAAgB,EAAE,cAAc,EAAE,sBAAsB,EACxD,MAAM,EACT,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,YAAY,EACR,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EACtE,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACR,YAAY,GACf,MAAM,gBAAgB,CAAC"}
|
||||
40
dev/env/node_modules/ethers/lib.commonjs/abi/index.js
generated
vendored
Executable file
40
dev/env/node_modules/ethers/lib.commonjs/abi/index.js
generated
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
/**
|
||||
* The Application Binary Interface (ABI) describes how method input
|
||||
* parameters should be encoded, their results decoded, and how to
|
||||
* decode events and errors.
|
||||
*
|
||||
* See [About ABIs](docs-abi) for more details how they are used.
|
||||
*
|
||||
* @_section api/abi:Application Binary Interface [about-abi]
|
||||
* @_navTitle: ABI
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Typed = exports.Result = exports.TransactionDescription = exports.LogDescription = exports.ErrorDescription = exports.Interface = exports.Indexed = exports.checkResultErrors = exports.StructFragment = exports.ParamType = exports.NamedFragment = exports.FunctionFragment = exports.Fragment = exports.FallbackFragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.encodeBytes32String = exports.decodeBytes32String = exports.AbiCoder = void 0;
|
||||
//////
|
||||
var abi_coder_js_1 = require("./abi-coder.js");
|
||||
Object.defineProperty(exports, "AbiCoder", { enumerable: true, get: function () { return abi_coder_js_1.AbiCoder; } });
|
||||
var bytes32_js_1 = require("./bytes32.js");
|
||||
Object.defineProperty(exports, "decodeBytes32String", { enumerable: true, get: function () { return bytes32_js_1.decodeBytes32String; } });
|
||||
Object.defineProperty(exports, "encodeBytes32String", { enumerable: true, get: function () { return bytes32_js_1.encodeBytes32String; } });
|
||||
var fragments_js_1 = require("./fragments.js");
|
||||
Object.defineProperty(exports, "ConstructorFragment", { enumerable: true, get: function () { return fragments_js_1.ConstructorFragment; } });
|
||||
Object.defineProperty(exports, "ErrorFragment", { enumerable: true, get: function () { return fragments_js_1.ErrorFragment; } });
|
||||
Object.defineProperty(exports, "EventFragment", { enumerable: true, get: function () { return fragments_js_1.EventFragment; } });
|
||||
Object.defineProperty(exports, "FallbackFragment", { enumerable: true, get: function () { return fragments_js_1.FallbackFragment; } });
|
||||
Object.defineProperty(exports, "Fragment", { enumerable: true, get: function () { return fragments_js_1.Fragment; } });
|
||||
Object.defineProperty(exports, "FunctionFragment", { enumerable: true, get: function () { return fragments_js_1.FunctionFragment; } });
|
||||
Object.defineProperty(exports, "NamedFragment", { enumerable: true, get: function () { return fragments_js_1.NamedFragment; } });
|
||||
Object.defineProperty(exports, "ParamType", { enumerable: true, get: function () { return fragments_js_1.ParamType; } });
|
||||
Object.defineProperty(exports, "StructFragment", { enumerable: true, get: function () { return fragments_js_1.StructFragment; } });
|
||||
var interface_js_1 = require("./interface.js");
|
||||
Object.defineProperty(exports, "checkResultErrors", { enumerable: true, get: function () { return interface_js_1.checkResultErrors; } });
|
||||
Object.defineProperty(exports, "Indexed", { enumerable: true, get: function () { return interface_js_1.Indexed; } });
|
||||
Object.defineProperty(exports, "Interface", { enumerable: true, get: function () { return interface_js_1.Interface; } });
|
||||
Object.defineProperty(exports, "ErrorDescription", { enumerable: true, get: function () { return interface_js_1.ErrorDescription; } });
|
||||
Object.defineProperty(exports, "LogDescription", { enumerable: true, get: function () { return interface_js_1.LogDescription; } });
|
||||
Object.defineProperty(exports, "TransactionDescription", { enumerable: true, get: function () { return interface_js_1.TransactionDescription; } });
|
||||
Object.defineProperty(exports, "Result", { enumerable: true, get: function () { return interface_js_1.Result; } });
|
||||
var typed_js_1 = require("./typed.js");
|
||||
Object.defineProperty(exports, "Typed", { enumerable: true, get: function () { return typed_js_1.Typed; } });
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/index.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/index.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src.ts/abi/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAGH,MAAM;AACN,+CAA0C;AAAjC,wGAAA,QAAQ,OAAA;AAEjB,2CAAwE;AAA/D,iHAAA,mBAAmB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAEjD,+CAGwB;AAFpB,mHAAA,mBAAmB,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AACnE,wGAAA,QAAQ,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,yGAAA,SAAS,OAAA;AAAE,8GAAA,cAAc,OAAA;AAGxE,+CAMwB;AALpB,iHAAA,iBAAiB,OAAA;AACjB,uGAAA,OAAO,OAAA;AACP,yGAAA,SAAS,OAAA;AACT,gHAAA,gBAAgB,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,sHAAA,sBAAsB,OAAA;AACxD,sGAAA,MAAM,OAAA;AAGV,uCAAmC;AAA1B,iGAAA,KAAK,OAAA"}
|
||||
382
dev/env/node_modules/ethers/lib.commonjs/abi/interface.d.ts
generated
vendored
Executable file
382
dev/env/node_modules/ethers/lib.commonjs/abi/interface.d.ts
generated
vendored
Executable file
@@ -0,0 +1,382 @@
|
||||
/**
|
||||
* The Interface class is a low-level class that accepts an
|
||||
* ABI and provides all the necessary functionality to encode
|
||||
* and decode paramaters to and results from methods, events
|
||||
* and errors.
|
||||
*
|
||||
* It also provides several convenience methods to automatically
|
||||
* search and find matching transactions and events to parse them.
|
||||
*
|
||||
* @_subsection api/abi:Interfaces [interfaces]
|
||||
*/
|
||||
import { AbiCoder } from "./abi-coder.js";
|
||||
import { checkResultErrors, Result } from "./coders/abstract-coder.js";
|
||||
import { ConstructorFragment, ErrorFragment, EventFragment, FallbackFragment, Fragment, FunctionFragment, ParamType } from "./fragments.js";
|
||||
import { Typed } from "./typed.js";
|
||||
import type { BigNumberish, BytesLike, CallExceptionError, CallExceptionTransaction } from "../utils/index.js";
|
||||
import type { JsonFragment } from "./fragments.js";
|
||||
export { checkResultErrors, Result };
|
||||
/**
|
||||
* When using the [[Interface-parseLog]] to automatically match a Log to its event
|
||||
* for parsing, a **LogDescription** is returned.
|
||||
*/
|
||||
export declare class LogDescription {
|
||||
/**
|
||||
* The matching fragment for the ``topic0``.
|
||||
*/
|
||||
readonly fragment: EventFragment;
|
||||
/**
|
||||
* The name of the Event.
|
||||
*/
|
||||
readonly name: string;
|
||||
/**
|
||||
* The full Event signature.
|
||||
*/
|
||||
readonly signature: string;
|
||||
/**
|
||||
* The topic hash for the Event.
|
||||
*/
|
||||
readonly topic: string;
|
||||
/**
|
||||
* The arguments passed into the Event with ``emit``.
|
||||
*/
|
||||
readonly args: Result;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
constructor(fragment: EventFragment, topic: string, args: Result);
|
||||
}
|
||||
/**
|
||||
* When using the [[Interface-parseTransaction]] to automatically match
|
||||
* a transaction data to its function for parsing,
|
||||
* a **TransactionDescription** is returned.
|
||||
*/
|
||||
export declare class TransactionDescription {
|
||||
/**
|
||||
* The matching fragment from the transaction ``data``.
|
||||
*/
|
||||
readonly fragment: FunctionFragment;
|
||||
/**
|
||||
* The name of the Function from the transaction ``data``.
|
||||
*/
|
||||
readonly name: string;
|
||||
/**
|
||||
* The arguments passed to the Function from the transaction ``data``.
|
||||
*/
|
||||
readonly args: Result;
|
||||
/**
|
||||
* The full Function signature from the transaction ``data``.
|
||||
*/
|
||||
readonly signature: string;
|
||||
/**
|
||||
* The selector for the Function from the transaction ``data``.
|
||||
*/
|
||||
readonly selector: string;
|
||||
/**
|
||||
* The ``value`` (in wei) from the transaction.
|
||||
*/
|
||||
readonly value: bigint;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
constructor(fragment: FunctionFragment, selector: string, args: Result, value: bigint);
|
||||
}
|
||||
/**
|
||||
* When using the [[Interface-parseError]] to automatically match an
|
||||
* error for a call result for parsing, an **ErrorDescription** is returned.
|
||||
*/
|
||||
export declare class ErrorDescription {
|
||||
/**
|
||||
* The matching fragment.
|
||||
*/
|
||||
readonly fragment: ErrorFragment;
|
||||
/**
|
||||
* The name of the Error.
|
||||
*/
|
||||
readonly name: string;
|
||||
/**
|
||||
* The arguments passed to the Error with ``revert``.
|
||||
*/
|
||||
readonly args: Result;
|
||||
/**
|
||||
* The full Error signature.
|
||||
*/
|
||||
readonly signature: string;
|
||||
/**
|
||||
* The selector for the Error.
|
||||
*/
|
||||
readonly selector: string;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
constructor(fragment: ErrorFragment, selector: string, args: Result);
|
||||
}
|
||||
/**
|
||||
* An **Indexed** is used as a value when a value that does not
|
||||
* fit within a topic (i.e. not a fixed-length, 32-byte type). It
|
||||
* is the ``keccak256`` of the value, and used for types such as
|
||||
* arrays, tuples, bytes and strings.
|
||||
*/
|
||||
export declare class Indexed {
|
||||
/**
|
||||
* The ``keccak256`` of the value logged.
|
||||
*/
|
||||
readonly hash: null | string;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
readonly _isIndexed: boolean;
|
||||
/**
|
||||
* Returns ``true`` if %%value%% is an **Indexed**.
|
||||
*
|
||||
* This provides a Type Guard for property access.
|
||||
*/
|
||||
static isIndexed(value: any): value is Indexed;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
constructor(hash: null | string);
|
||||
}
|
||||
/**
|
||||
* An **InterfaceAbi** may be any supported ABI format.
|
||||
*
|
||||
* A string is expected to be a JSON string, which will be parsed
|
||||
* using ``JSON.parse``. This means that the value **must** be a valid
|
||||
* JSON string, with no stray commas, etc.
|
||||
*
|
||||
* An array may contain any combination of:
|
||||
* - Human-Readable fragments
|
||||
* - Parsed JSON fragment
|
||||
* - [[Fragment]] instances
|
||||
*
|
||||
* A **Human-Readable Fragment** is a string which resembles a Solidity
|
||||
* signature and is introduced in [this blog entry](link-ricmoo-humanreadableabi).
|
||||
* For example, ``function balanceOf(address) view returns (uint)``.
|
||||
*
|
||||
* A **Parsed JSON Fragment** is a JavaScript Object desribed in the
|
||||
* [Solidity documentation](link-solc-jsonabi).
|
||||
*/
|
||||
export type InterfaceAbi = string | ReadonlyArray<Fragment | JsonFragment | string>;
|
||||
/**
|
||||
* An Interface abstracts many of the low-level details for
|
||||
* encoding and decoding the data on the blockchain.
|
||||
*
|
||||
* An ABI provides information on how to encode data to send to
|
||||
* a Contract, how to decode the results and events and how to
|
||||
* interpret revert errors.
|
||||
*
|
||||
* The ABI can be specified by [any supported format](InterfaceAbi).
|
||||
*/
|
||||
export declare class Interface {
|
||||
#private;
|
||||
/**
|
||||
* All the Contract ABI members (i.e. methods, events, errors, etc).
|
||||
*/
|
||||
readonly fragments: ReadonlyArray<Fragment>;
|
||||
/**
|
||||
* The Contract constructor.
|
||||
*/
|
||||
readonly deploy: ConstructorFragment;
|
||||
/**
|
||||
* The Fallback method, if any.
|
||||
*/
|
||||
readonly fallback: null | FallbackFragment;
|
||||
/**
|
||||
* If receiving ether is supported.
|
||||
*/
|
||||
readonly receive: boolean;
|
||||
/**
|
||||
* Create a new Interface for the %%fragments%%.
|
||||
*/
|
||||
constructor(fragments: InterfaceAbi);
|
||||
/**
|
||||
* Returns the entire Human-Readable ABI, as an array of
|
||||
* signatures, optionally as %%minimal%% strings, which
|
||||
* removes parameter names and unneceesary spaces.
|
||||
*/
|
||||
format(minimal?: boolean): Array<string>;
|
||||
/**
|
||||
* Return the JSON-encoded ABI. This is the format Solidiy
|
||||
* returns.
|
||||
*/
|
||||
formatJson(): string;
|
||||
/**
|
||||
* The ABI coder that will be used to encode and decode binary
|
||||
* data.
|
||||
*/
|
||||
getAbiCoder(): AbiCoder;
|
||||
/**
|
||||
* Get the function name for %%key%%, which may be a function selector,
|
||||
* function name or function signature that belongs to the ABI.
|
||||
*/
|
||||
getFunctionName(key: string): string;
|
||||
/**
|
||||
* Returns true if %%key%% (a function selector, function name or
|
||||
* function signature) is present in the ABI.
|
||||
*
|
||||
* In the case of a function name, the name may be ambiguous, so
|
||||
* accessing the [[FunctionFragment]] may require refinement.
|
||||
*/
|
||||
hasFunction(key: string): boolean;
|
||||
/**
|
||||
* Get the [[FunctionFragment]] for %%key%%, which may be a function
|
||||
* selector, function name or function signature that belongs to the ABI.
|
||||
*
|
||||
* If %%values%% is provided, it will use the Typed API to handle
|
||||
* ambiguous cases where multiple functions match by name.
|
||||
*
|
||||
* If the %%key%% and %%values%% do not refine to a single function in
|
||||
* the ABI, this will throw.
|
||||
*/
|
||||
getFunction(key: string, values?: Array<any | Typed>): null | FunctionFragment;
|
||||
/**
|
||||
* Iterate over all functions, calling %%callback%%, sorted by their name.
|
||||
*/
|
||||
forEachFunction(callback: (func: FunctionFragment, index: number) => void): void;
|
||||
/**
|
||||
* Get the event name for %%key%%, which may be a topic hash,
|
||||
* event name or event signature that belongs to the ABI.
|
||||
*/
|
||||
getEventName(key: string): string;
|
||||
/**
|
||||
* Returns true if %%key%% (an event topic hash, event name or
|
||||
* event signature) is present in the ABI.
|
||||
*
|
||||
* In the case of an event name, the name may be ambiguous, so
|
||||
* accessing the [[EventFragment]] may require refinement.
|
||||
*/
|
||||
hasEvent(key: string): boolean;
|
||||
/**
|
||||
* Get the [[EventFragment]] for %%key%%, which may be a topic hash,
|
||||
* event name or event signature that belongs to the ABI.
|
||||
*
|
||||
* If %%values%% is provided, it will use the Typed API to handle
|
||||
* ambiguous cases where multiple events match by name.
|
||||
*
|
||||
* If the %%key%% and %%values%% do not refine to a single event in
|
||||
* the ABI, this will throw.
|
||||
*/
|
||||
getEvent(key: string, values?: Array<any | Typed>): null | EventFragment;
|
||||
/**
|
||||
* Iterate over all events, calling %%callback%%, sorted by their name.
|
||||
*/
|
||||
forEachEvent(callback: (func: EventFragment, index: number) => void): void;
|
||||
/**
|
||||
* Get the [[ErrorFragment]] for %%key%%, which may be an error
|
||||
* selector, error name or error signature that belongs to the ABI.
|
||||
*
|
||||
* If %%values%% is provided, it will use the Typed API to handle
|
||||
* ambiguous cases where multiple errors match by name.
|
||||
*
|
||||
* If the %%key%% and %%values%% do not refine to a single error in
|
||||
* the ABI, this will throw.
|
||||
*/
|
||||
getError(key: string, values?: Array<any | Typed>): null | ErrorFragment;
|
||||
/**
|
||||
* Iterate over all errors, calling %%callback%%, sorted by their name.
|
||||
*/
|
||||
forEachError(callback: (func: ErrorFragment, index: number) => void): void;
|
||||
_decodeParams(params: ReadonlyArray<ParamType>, data: BytesLike): Result;
|
||||
_encodeParams(params: ReadonlyArray<ParamType>, values: ReadonlyArray<any>): string;
|
||||
/**
|
||||
* Encodes a ``tx.data`` object for deploying the Contract with
|
||||
* the %%values%% as the constructor arguments.
|
||||
*/
|
||||
encodeDeploy(values?: ReadonlyArray<any>): string;
|
||||
/**
|
||||
* Decodes the result %%data%% (e.g. from an ``eth_call``) for the
|
||||
* specified error (see [[getError]] for valid values for
|
||||
* %%key%%).
|
||||
*
|
||||
* Most developers should prefer the [[parseCallResult]] method instead,
|
||||
* which will automatically detect a ``CALL_EXCEPTION`` and throw the
|
||||
* corresponding error.
|
||||
*/
|
||||
decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result;
|
||||
/**
|
||||
* Encodes the transaction revert data for a call result that
|
||||
* reverted from the the Contract with the sepcified %%error%%
|
||||
* (see [[getError]] for valid values for %%fragment%%) with the %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray<any>): string;
|
||||
/**
|
||||
* Decodes the %%data%% from a transaction ``tx.data`` for
|
||||
* the function specified (see [[getFunction]] for valid values
|
||||
* for %%fragment%%).
|
||||
*
|
||||
* Most developers should prefer the [[parseTransaction]] method
|
||||
* instead, which will automatically detect the fragment.
|
||||
*/
|
||||
decodeFunctionData(fragment: FunctionFragment | string, data: BytesLike): Result;
|
||||
/**
|
||||
* Encodes the ``tx.data`` for a transaction that calls the function
|
||||
* specified (see [[getFunction]] for valid values for %%fragment%%) with
|
||||
* the %%values%%.
|
||||
*/
|
||||
encodeFunctionData(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string;
|
||||
/**
|
||||
* Decodes the result %%data%% (e.g. from an ``eth_call``) for the
|
||||
* specified function (see [[getFunction]] for valid values for
|
||||
* %%key%%).
|
||||
*
|
||||
* Most developers should prefer the [[parseCallResult]] method instead,
|
||||
* which will automatically detect a ``CALL_EXCEPTION`` and throw the
|
||||
* corresponding error.
|
||||
*/
|
||||
decodeFunctionResult(fragment: FunctionFragment | string, data: BytesLike): Result;
|
||||
makeError(_data: BytesLike, tx: CallExceptionTransaction): CallExceptionError;
|
||||
/**
|
||||
* Encodes the result data (e.g. from an ``eth_call``) for the
|
||||
* specified function (see [[getFunction]] for valid values
|
||||
* for %%fragment%%) with %%values%%.
|
||||
*
|
||||
* This is generally not used by most developers, unless trying to mock
|
||||
* a result from a Contract.
|
||||
*/
|
||||
encodeFunctionResult(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string;
|
||||
encodeFilterTopics(fragment: EventFragment | string, values: ReadonlyArray<any>): Array<null | string | Array<string>>;
|
||||
encodeEventLog(fragment: EventFragment | string, values: ReadonlyArray<any>): {
|
||||
data: string;
|
||||
topics: Array<string>;
|
||||
};
|
||||
decodeEventLog(fragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray<string>): Result;
|
||||
/**
|
||||
* Parses a transaction, finding the matching function and extracts
|
||||
* the parameter values along with other useful function details.
|
||||
*
|
||||
* If the matching function cannot be found, return null.
|
||||
*/
|
||||
parseTransaction(tx: {
|
||||
data: string;
|
||||
value?: BigNumberish;
|
||||
}): null | TransactionDescription;
|
||||
parseCallResult(data: BytesLike): Result;
|
||||
/**
|
||||
* Parses a receipt log, finding the matching event and extracts
|
||||
* the parameter values along with other useful event details.
|
||||
*
|
||||
* If the matching event cannot be found, returns null.
|
||||
*/
|
||||
parseLog(log: {
|
||||
topics: ReadonlyArray<string>;
|
||||
data: string;
|
||||
}): null | LogDescription;
|
||||
/**
|
||||
* Parses a revert data, finding the matching error and extracts
|
||||
* the parameter values along with other useful error details.
|
||||
*
|
||||
* If the matching error cannot be found, returns null.
|
||||
*/
|
||||
parseError(data: BytesLike): null | ErrorDescription;
|
||||
/**
|
||||
* Creates a new [[Interface]] from the ABI %%value%%.
|
||||
*
|
||||
* The %%value%% may be provided as an existing [[Interface]] object,
|
||||
* a JSON-encoded ABI or any Human-Readable ABI format.
|
||||
*/
|
||||
static from(value: InterfaceAbi | Interface): Interface;
|
||||
}
|
||||
//# sourceMappingURL=interface.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/interface.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/interface.d.ts.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1110
dev/env/node_modules/ethers/lib.commonjs/abi/interface.js
generated
vendored
Executable file
1110
dev/env/node_modules/ethers/lib.commonjs/abi/interface.js
generated
vendored
Executable file
File diff suppressed because it is too large
Load Diff
1
dev/env/node_modules/ethers/lib.commonjs/abi/interface.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/interface.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
570
dev/env/node_modules/ethers/lib.commonjs/abi/typed.d.ts
generated
vendored
Executable file
570
dev/env/node_modules/ethers/lib.commonjs/abi/typed.d.ts
generated
vendored
Executable file
@@ -0,0 +1,570 @@
|
||||
/**
|
||||
* A Typed object allows a value to have its type explicitly
|
||||
* specified.
|
||||
*
|
||||
* For example, in Solidity, the value ``45`` could represent a
|
||||
* ``uint8`` or a ``uint256``. The value ``0x1234`` could represent
|
||||
* a ``bytes2`` or ``bytes``.
|
||||
*
|
||||
* Since JavaScript has no meaningful way to explicitly inform any
|
||||
* APIs which what the type is, this allows transparent interoperation
|
||||
* with Soldity.
|
||||
*
|
||||
* @_subsection: api/abi:Typed Values
|
||||
*/
|
||||
import type { Addressable } from "../address/index.js";
|
||||
import type { BigNumberish, BytesLike } from "../utils/index.js";
|
||||
import type { Result } from "./coders/abstract-coder.js";
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
export interface TypedNumber extends Typed {
|
||||
value: number;
|
||||
defaultValue(): number;
|
||||
minValue(): number;
|
||||
maxValue(): number;
|
||||
}
|
||||
/**
|
||||
* A **Typed** that represents a numeric value.
|
||||
*/
|
||||
export interface TypedBigInt extends Typed {
|
||||
/**
|
||||
* The value.
|
||||
*/
|
||||
value: bigint;
|
||||
/**
|
||||
* The default value for all numeric types is ``0``.
|
||||
*/
|
||||
defaultValue(): bigint;
|
||||
/**
|
||||
* The minimum value for this type, accounting for bit-width and signed-ness.
|
||||
*/
|
||||
minValue(): bigint;
|
||||
/**
|
||||
* The minimum value for this type, accounting for bit-width.
|
||||
*/
|
||||
maxValue(): bigint;
|
||||
}
|
||||
/**
|
||||
* A **Typed** that represents a binary sequence of data as bytes.
|
||||
*/
|
||||
export interface TypedData extends Typed {
|
||||
/**
|
||||
* The value.
|
||||
*/
|
||||
value: string;
|
||||
/**
|
||||
* The default value for this type.
|
||||
*/
|
||||
defaultValue(): string;
|
||||
}
|
||||
/**
|
||||
* A **Typed** that represents a UTF-8 sequence of bytes.
|
||||
*/
|
||||
export interface TypedString extends Typed {
|
||||
/**
|
||||
* The value.
|
||||
*/
|
||||
value: string;
|
||||
/**
|
||||
* The default value for the string type is the empty string (i.e. ``""``).
|
||||
*/
|
||||
defaultValue(): string;
|
||||
}
|
||||
/**
|
||||
* The **Typed** class to wrap values providing explicit type information.
|
||||
*/
|
||||
export declare class Typed {
|
||||
#private;
|
||||
/**
|
||||
* The type, as a Solidity-compatible type.
|
||||
*/
|
||||
readonly type: string;
|
||||
/**
|
||||
* The actual value.
|
||||
*/
|
||||
readonly value: any;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
readonly _typedSymbol: Symbol;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
constructor(gaurd: any, type: string, value: any, options?: any);
|
||||
/**
|
||||
* Format the type as a Human-Readable type.
|
||||
*/
|
||||
format(): string;
|
||||
/**
|
||||
* The default value returned by this type.
|
||||
*/
|
||||
defaultValue(): string | number | bigint | Result;
|
||||
/**
|
||||
* The minimum value for numeric types.
|
||||
*/
|
||||
minValue(): string | number | bigint;
|
||||
/**
|
||||
* The maximum value for numeric types.
|
||||
*/
|
||||
maxValue(): string | number | bigint;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard is this is a [[TypedBigInt]].
|
||||
*/
|
||||
isBigInt(): this is TypedBigInt;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard is this is a [[TypedData]].
|
||||
*/
|
||||
isData(): this is TypedData;
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard is this is a [[TypedString]].
|
||||
*/
|
||||
isString(): this is TypedString;
|
||||
/**
|
||||
* Returns the tuple name, if this is a tuple. Throws otherwise.
|
||||
*/
|
||||
get tupleName(): null | string;
|
||||
/**
|
||||
* Returns the length of the array type or ``-1`` if it is dynamic.
|
||||
*
|
||||
* Throws if the type is not an array.
|
||||
*/
|
||||
get arrayLength(): null | number;
|
||||
/**
|
||||
* Returns a new **Typed** of %%type%% with the %%value%%.
|
||||
*/
|
||||
static from(type: string, value: any): Typed;
|
||||
/**
|
||||
* Return a new ``uint8`` type for %%v%%.
|
||||
*/
|
||||
static uint8(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint16`` type for %%v%%.
|
||||
*/
|
||||
static uint16(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint24`` type for %%v%%.
|
||||
*/
|
||||
static uint24(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint32`` type for %%v%%.
|
||||
*/
|
||||
static uint32(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint40`` type for %%v%%.
|
||||
*/
|
||||
static uint40(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint48`` type for %%v%%.
|
||||
*/
|
||||
static uint48(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint56`` type for %%v%%.
|
||||
*/
|
||||
static uint56(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint64`` type for %%v%%.
|
||||
*/
|
||||
static uint64(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint72`` type for %%v%%.
|
||||
*/
|
||||
static uint72(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint80`` type for %%v%%.
|
||||
*/
|
||||
static uint80(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint88`` type for %%v%%.
|
||||
*/
|
||||
static uint88(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint96`` type for %%v%%.
|
||||
*/
|
||||
static uint96(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint104`` type for %%v%%.
|
||||
*/
|
||||
static uint104(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint112`` type for %%v%%.
|
||||
*/
|
||||
static uint112(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint120`` type for %%v%%.
|
||||
*/
|
||||
static uint120(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint128`` type for %%v%%.
|
||||
*/
|
||||
static uint128(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint136`` type for %%v%%.
|
||||
*/
|
||||
static uint136(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint144`` type for %%v%%.
|
||||
*/
|
||||
static uint144(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint152`` type for %%v%%.
|
||||
*/
|
||||
static uint152(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint160`` type for %%v%%.
|
||||
*/
|
||||
static uint160(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint168`` type for %%v%%.
|
||||
*/
|
||||
static uint168(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint176`` type for %%v%%.
|
||||
*/
|
||||
static uint176(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint184`` type for %%v%%.
|
||||
*/
|
||||
static uint184(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint192`` type for %%v%%.
|
||||
*/
|
||||
static uint192(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint200`` type for %%v%%.
|
||||
*/
|
||||
static uint200(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint208`` type for %%v%%.
|
||||
*/
|
||||
static uint208(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint216`` type for %%v%%.
|
||||
*/
|
||||
static uint216(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint224`` type for %%v%%.
|
||||
*/
|
||||
static uint224(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint232`` type for %%v%%.
|
||||
*/
|
||||
static uint232(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint240`` type for %%v%%.
|
||||
*/
|
||||
static uint240(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint248`` type for %%v%%.
|
||||
*/
|
||||
static uint248(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint256`` type for %%v%%.
|
||||
*/
|
||||
static uint256(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``uint256`` type for %%v%%.
|
||||
*/
|
||||
static uint(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int8`` type for %%v%%.
|
||||
*/
|
||||
static int8(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int16`` type for %%v%%.
|
||||
*/
|
||||
static int16(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int24`` type for %%v%%.
|
||||
*/
|
||||
static int24(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int32`` type for %%v%%.
|
||||
*/
|
||||
static int32(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int40`` type for %%v%%.
|
||||
*/
|
||||
static int40(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int48`` type for %%v%%.
|
||||
*/
|
||||
static int48(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int56`` type for %%v%%.
|
||||
*/
|
||||
static int56(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int64`` type for %%v%%.
|
||||
*/
|
||||
static int64(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int72`` type for %%v%%.
|
||||
*/
|
||||
static int72(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int80`` type for %%v%%.
|
||||
*/
|
||||
static int80(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int88`` type for %%v%%.
|
||||
*/
|
||||
static int88(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int96`` type for %%v%%.
|
||||
*/
|
||||
static int96(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int104`` type for %%v%%.
|
||||
*/
|
||||
static int104(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int112`` type for %%v%%.
|
||||
*/
|
||||
static int112(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int120`` type for %%v%%.
|
||||
*/
|
||||
static int120(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int128`` type for %%v%%.
|
||||
*/
|
||||
static int128(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int136`` type for %%v%%.
|
||||
*/
|
||||
static int136(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int144`` type for %%v%%.
|
||||
*/
|
||||
static int144(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int52`` type for %%v%%.
|
||||
*/
|
||||
static int152(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int160`` type for %%v%%.
|
||||
*/
|
||||
static int160(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int168`` type for %%v%%.
|
||||
*/
|
||||
static int168(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int176`` type for %%v%%.
|
||||
*/
|
||||
static int176(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int184`` type for %%v%%.
|
||||
*/
|
||||
static int184(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int92`` type for %%v%%.
|
||||
*/
|
||||
static int192(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int200`` type for %%v%%.
|
||||
*/
|
||||
static int200(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int208`` type for %%v%%.
|
||||
*/
|
||||
static int208(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int216`` type for %%v%%.
|
||||
*/
|
||||
static int216(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int224`` type for %%v%%.
|
||||
*/
|
||||
static int224(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int232`` type for %%v%%.
|
||||
*/
|
||||
static int232(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int240`` type for %%v%%.
|
||||
*/
|
||||
static int240(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int248`` type for %%v%%.
|
||||
*/
|
||||
static int248(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int256`` type for %%v%%.
|
||||
*/
|
||||
static int256(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``int256`` type for %%v%%.
|
||||
*/
|
||||
static int(v: BigNumberish): Typed;
|
||||
/**
|
||||
* Return a new ``bytes1`` type for %%v%%.
|
||||
*/
|
||||
static bytes1(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes2`` type for %%v%%.
|
||||
*/
|
||||
static bytes2(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes3`` type for %%v%%.
|
||||
*/
|
||||
static bytes3(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes4`` type for %%v%%.
|
||||
*/
|
||||
static bytes4(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes5`` type for %%v%%.
|
||||
*/
|
||||
static bytes5(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes6`` type for %%v%%.
|
||||
*/
|
||||
static bytes6(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes7`` type for %%v%%.
|
||||
*/
|
||||
static bytes7(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes8`` type for %%v%%.
|
||||
*/
|
||||
static bytes8(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes9`` type for %%v%%.
|
||||
*/
|
||||
static bytes9(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes10`` type for %%v%%.
|
||||
*/
|
||||
static bytes10(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes11`` type for %%v%%.
|
||||
*/
|
||||
static bytes11(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes12`` type for %%v%%.
|
||||
*/
|
||||
static bytes12(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes13`` type for %%v%%.
|
||||
*/
|
||||
static bytes13(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes14`` type for %%v%%.
|
||||
*/
|
||||
static bytes14(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes15`` type for %%v%%.
|
||||
*/
|
||||
static bytes15(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes16`` type for %%v%%.
|
||||
*/
|
||||
static bytes16(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes17`` type for %%v%%.
|
||||
*/
|
||||
static bytes17(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes18`` type for %%v%%.
|
||||
*/
|
||||
static bytes18(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes19`` type for %%v%%.
|
||||
*/
|
||||
static bytes19(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes20`` type for %%v%%.
|
||||
*/
|
||||
static bytes20(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes21`` type for %%v%%.
|
||||
*/
|
||||
static bytes21(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes22`` type for %%v%%.
|
||||
*/
|
||||
static bytes22(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes23`` type for %%v%%.
|
||||
*/
|
||||
static bytes23(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes24`` type for %%v%%.
|
||||
*/
|
||||
static bytes24(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes25`` type for %%v%%.
|
||||
*/
|
||||
static bytes25(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes26`` type for %%v%%.
|
||||
*/
|
||||
static bytes26(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes27`` type for %%v%%.
|
||||
*/
|
||||
static bytes27(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes28`` type for %%v%%.
|
||||
*/
|
||||
static bytes28(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes29`` type for %%v%%.
|
||||
*/
|
||||
static bytes29(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes30`` type for %%v%%.
|
||||
*/
|
||||
static bytes30(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes31`` type for %%v%%.
|
||||
*/
|
||||
static bytes31(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``bytes32`` type for %%v%%.
|
||||
*/
|
||||
static bytes32(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``address`` type for %%v%%.
|
||||
*/
|
||||
static address(v: string | Addressable): Typed;
|
||||
/**
|
||||
* Return a new ``bool`` type for %%v%%.
|
||||
*/
|
||||
static bool(v: any): Typed;
|
||||
/**
|
||||
* Return a new ``bytes`` type for %%v%%.
|
||||
*/
|
||||
static bytes(v: BytesLike): Typed;
|
||||
/**
|
||||
* Return a new ``string`` type for %%v%%.
|
||||
*/
|
||||
static string(v: string): Typed;
|
||||
/**
|
||||
* Return a new ``array`` type for %%v%%, allowing %%dynamic%% length.
|
||||
*/
|
||||
static array(v: Array<any | Typed>, dynamic?: null | boolean): Typed;
|
||||
/**
|
||||
* Return a new ``tuple`` type for %%v%%, with the optional %%name%%.
|
||||
*/
|
||||
static tuple(v: Array<any | Typed> | Record<string, any | Typed>, name?: string): Typed;
|
||||
/**
|
||||
* Return a new ``uint8`` type for %%v%%.
|
||||
*/
|
||||
static overrides(v: Record<string, any>): Typed;
|
||||
/**
|
||||
* Returns true only if %%value%% is a [[Typed]] instance.
|
||||
*/
|
||||
static isTyped(value: any): value is Typed;
|
||||
/**
|
||||
* If the value is a [[Typed]] instance, validates the underlying value
|
||||
* and returns it, otherwise returns value directly.
|
||||
*
|
||||
* This is useful for functions that with to accept either a [[Typed]]
|
||||
* object or values.
|
||||
*/
|
||||
static dereference<T>(value: Typed | T, type: string): T;
|
||||
}
|
||||
//# sourceMappingURL=typed.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/typed.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/typed.d.ts.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
606
dev/env/node_modules/ethers/lib.commonjs/abi/typed.js
generated
vendored
Executable file
606
dev/env/node_modules/ethers/lib.commonjs/abi/typed.js
generated
vendored
Executable file
@@ -0,0 +1,606 @@
|
||||
"use strict";
|
||||
/**
|
||||
* A Typed object allows a value to have its type explicitly
|
||||
* specified.
|
||||
*
|
||||
* For example, in Solidity, the value ``45`` could represent a
|
||||
* ``uint8`` or a ``uint256``. The value ``0x1234`` could represent
|
||||
* a ``bytes2`` or ``bytes``.
|
||||
*
|
||||
* Since JavaScript has no meaningful way to explicitly inform any
|
||||
* APIs which what the type is, this allows transparent interoperation
|
||||
* with Soldity.
|
||||
*
|
||||
* @_subsection: api/abi:Typed Values
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Typed = void 0;
|
||||
const index_js_1 = require("../utils/index.js");
|
||||
const _gaurd = {};
|
||||
function n(value, width) {
|
||||
let signed = false;
|
||||
if (width < 0) {
|
||||
signed = true;
|
||||
width *= -1;
|
||||
}
|
||||
// @TODO: Check range is valid for value
|
||||
return new Typed(_gaurd, `${signed ? "" : "u"}int${width}`, value, { signed, width });
|
||||
}
|
||||
function b(value, size) {
|
||||
// @TODO: Check range is valid for value
|
||||
return new Typed(_gaurd, `bytes${(size) ? size : ""}`, value, { size });
|
||||
}
|
||||
const _typedSymbol = Symbol.for("_ethers_typed");
|
||||
/**
|
||||
* The **Typed** class to wrap values providing explicit type information.
|
||||
*/
|
||||
class Typed {
|
||||
/**
|
||||
* The type, as a Solidity-compatible type.
|
||||
*/
|
||||
type;
|
||||
/**
|
||||
* The actual value.
|
||||
*/
|
||||
value;
|
||||
#options;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
_typedSymbol;
|
||||
/**
|
||||
* @_ignore:
|
||||
*/
|
||||
constructor(gaurd, type, value, options) {
|
||||
if (options == null) {
|
||||
options = null;
|
||||
}
|
||||
(0, index_js_1.assertPrivate)(_gaurd, gaurd, "Typed");
|
||||
(0, index_js_1.defineProperties)(this, { _typedSymbol, type, value });
|
||||
this.#options = options;
|
||||
// Check the value is valid
|
||||
this.format();
|
||||
}
|
||||
/**
|
||||
* Format the type as a Human-Readable type.
|
||||
*/
|
||||
format() {
|
||||
if (this.type === "array") {
|
||||
throw new Error("");
|
||||
}
|
||||
else if (this.type === "dynamicArray") {
|
||||
throw new Error("");
|
||||
}
|
||||
else if (this.type === "tuple") {
|
||||
return `tuple(${this.value.map((v) => v.format()).join(",")})`;
|
||||
}
|
||||
return this.type;
|
||||
}
|
||||
/**
|
||||
* The default value returned by this type.
|
||||
*/
|
||||
defaultValue() {
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
* The minimum value for numeric types.
|
||||
*/
|
||||
minValue() {
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
* The maximum value for numeric types.
|
||||
*/
|
||||
maxValue() {
|
||||
return 0;
|
||||
}
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard is this is a [[TypedBigInt]].
|
||||
*/
|
||||
isBigInt() {
|
||||
return !!(this.type.match(/^u?int[0-9]+$/));
|
||||
}
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard is this is a [[TypedData]].
|
||||
*/
|
||||
isData() {
|
||||
return this.type.startsWith("bytes");
|
||||
}
|
||||
/**
|
||||
* Returns ``true`` and provides a type guard is this is a [[TypedString]].
|
||||
*/
|
||||
isString() {
|
||||
return (this.type === "string");
|
||||
}
|
||||
/**
|
||||
* Returns the tuple name, if this is a tuple. Throws otherwise.
|
||||
*/
|
||||
get tupleName() {
|
||||
if (this.type !== "tuple") {
|
||||
throw TypeError("not a tuple");
|
||||
}
|
||||
return this.#options;
|
||||
}
|
||||
// Returns the length of this type as an array
|
||||
// - `null` indicates the length is unforced, it could be dynamic
|
||||
// - `-1` indicates the length is dynamic
|
||||
// - any other value indicates it is a static array and is its length
|
||||
/**
|
||||
* Returns the length of the array type or ``-1`` if it is dynamic.
|
||||
*
|
||||
* Throws if the type is not an array.
|
||||
*/
|
||||
get arrayLength() {
|
||||
if (this.type !== "array") {
|
||||
throw TypeError("not an array");
|
||||
}
|
||||
if (this.#options === true) {
|
||||
return -1;
|
||||
}
|
||||
if (this.#options === false) {
|
||||
return (this.value).length;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Returns a new **Typed** of %%type%% with the %%value%%.
|
||||
*/
|
||||
static from(type, value) {
|
||||
return new Typed(_gaurd, type, value);
|
||||
}
|
||||
/**
|
||||
* Return a new ``uint8`` type for %%v%%.
|
||||
*/
|
||||
static uint8(v) { return n(v, 8); }
|
||||
/**
|
||||
* Return a new ``uint16`` type for %%v%%.
|
||||
*/
|
||||
static uint16(v) { return n(v, 16); }
|
||||
/**
|
||||
* Return a new ``uint24`` type for %%v%%.
|
||||
*/
|
||||
static uint24(v) { return n(v, 24); }
|
||||
/**
|
||||
* Return a new ``uint32`` type for %%v%%.
|
||||
*/
|
||||
static uint32(v) { return n(v, 32); }
|
||||
/**
|
||||
* Return a new ``uint40`` type for %%v%%.
|
||||
*/
|
||||
static uint40(v) { return n(v, 40); }
|
||||
/**
|
||||
* Return a new ``uint48`` type for %%v%%.
|
||||
*/
|
||||
static uint48(v) { return n(v, 48); }
|
||||
/**
|
||||
* Return a new ``uint56`` type for %%v%%.
|
||||
*/
|
||||
static uint56(v) { return n(v, 56); }
|
||||
/**
|
||||
* Return a new ``uint64`` type for %%v%%.
|
||||
*/
|
||||
static uint64(v) { return n(v, 64); }
|
||||
/**
|
||||
* Return a new ``uint72`` type for %%v%%.
|
||||
*/
|
||||
static uint72(v) { return n(v, 72); }
|
||||
/**
|
||||
* Return a new ``uint80`` type for %%v%%.
|
||||
*/
|
||||
static uint80(v) { return n(v, 80); }
|
||||
/**
|
||||
* Return a new ``uint88`` type for %%v%%.
|
||||
*/
|
||||
static uint88(v) { return n(v, 88); }
|
||||
/**
|
||||
* Return a new ``uint96`` type for %%v%%.
|
||||
*/
|
||||
static uint96(v) { return n(v, 96); }
|
||||
/**
|
||||
* Return a new ``uint104`` type for %%v%%.
|
||||
*/
|
||||
static uint104(v) { return n(v, 104); }
|
||||
/**
|
||||
* Return a new ``uint112`` type for %%v%%.
|
||||
*/
|
||||
static uint112(v) { return n(v, 112); }
|
||||
/**
|
||||
* Return a new ``uint120`` type for %%v%%.
|
||||
*/
|
||||
static uint120(v) { return n(v, 120); }
|
||||
/**
|
||||
* Return a new ``uint128`` type for %%v%%.
|
||||
*/
|
||||
static uint128(v) { return n(v, 128); }
|
||||
/**
|
||||
* Return a new ``uint136`` type for %%v%%.
|
||||
*/
|
||||
static uint136(v) { return n(v, 136); }
|
||||
/**
|
||||
* Return a new ``uint144`` type for %%v%%.
|
||||
*/
|
||||
static uint144(v) { return n(v, 144); }
|
||||
/**
|
||||
* Return a new ``uint152`` type for %%v%%.
|
||||
*/
|
||||
static uint152(v) { return n(v, 152); }
|
||||
/**
|
||||
* Return a new ``uint160`` type for %%v%%.
|
||||
*/
|
||||
static uint160(v) { return n(v, 160); }
|
||||
/**
|
||||
* Return a new ``uint168`` type for %%v%%.
|
||||
*/
|
||||
static uint168(v) { return n(v, 168); }
|
||||
/**
|
||||
* Return a new ``uint176`` type for %%v%%.
|
||||
*/
|
||||
static uint176(v) { return n(v, 176); }
|
||||
/**
|
||||
* Return a new ``uint184`` type for %%v%%.
|
||||
*/
|
||||
static uint184(v) { return n(v, 184); }
|
||||
/**
|
||||
* Return a new ``uint192`` type for %%v%%.
|
||||
*/
|
||||
static uint192(v) { return n(v, 192); }
|
||||
/**
|
||||
* Return a new ``uint200`` type for %%v%%.
|
||||
*/
|
||||
static uint200(v) { return n(v, 200); }
|
||||
/**
|
||||
* Return a new ``uint208`` type for %%v%%.
|
||||
*/
|
||||
static uint208(v) { return n(v, 208); }
|
||||
/**
|
||||
* Return a new ``uint216`` type for %%v%%.
|
||||
*/
|
||||
static uint216(v) { return n(v, 216); }
|
||||
/**
|
||||
* Return a new ``uint224`` type for %%v%%.
|
||||
*/
|
||||
static uint224(v) { return n(v, 224); }
|
||||
/**
|
||||
* Return a new ``uint232`` type for %%v%%.
|
||||
*/
|
||||
static uint232(v) { return n(v, 232); }
|
||||
/**
|
||||
* Return a new ``uint240`` type for %%v%%.
|
||||
*/
|
||||
static uint240(v) { return n(v, 240); }
|
||||
/**
|
||||
* Return a new ``uint248`` type for %%v%%.
|
||||
*/
|
||||
static uint248(v) { return n(v, 248); }
|
||||
/**
|
||||
* Return a new ``uint256`` type for %%v%%.
|
||||
*/
|
||||
static uint256(v) { return n(v, 256); }
|
||||
/**
|
||||
* Return a new ``uint256`` type for %%v%%.
|
||||
*/
|
||||
static uint(v) { return n(v, 256); }
|
||||
/**
|
||||
* Return a new ``int8`` type for %%v%%.
|
||||
*/
|
||||
static int8(v) { return n(v, -8); }
|
||||
/**
|
||||
* Return a new ``int16`` type for %%v%%.
|
||||
*/
|
||||
static int16(v) { return n(v, -16); }
|
||||
/**
|
||||
* Return a new ``int24`` type for %%v%%.
|
||||
*/
|
||||
static int24(v) { return n(v, -24); }
|
||||
/**
|
||||
* Return a new ``int32`` type for %%v%%.
|
||||
*/
|
||||
static int32(v) { return n(v, -32); }
|
||||
/**
|
||||
* Return a new ``int40`` type for %%v%%.
|
||||
*/
|
||||
static int40(v) { return n(v, -40); }
|
||||
/**
|
||||
* Return a new ``int48`` type for %%v%%.
|
||||
*/
|
||||
static int48(v) { return n(v, -48); }
|
||||
/**
|
||||
* Return a new ``int56`` type for %%v%%.
|
||||
*/
|
||||
static int56(v) { return n(v, -56); }
|
||||
/**
|
||||
* Return a new ``int64`` type for %%v%%.
|
||||
*/
|
||||
static int64(v) { return n(v, -64); }
|
||||
/**
|
||||
* Return a new ``int72`` type for %%v%%.
|
||||
*/
|
||||
static int72(v) { return n(v, -72); }
|
||||
/**
|
||||
* Return a new ``int80`` type for %%v%%.
|
||||
*/
|
||||
static int80(v) { return n(v, -80); }
|
||||
/**
|
||||
* Return a new ``int88`` type for %%v%%.
|
||||
*/
|
||||
static int88(v) { return n(v, -88); }
|
||||
/**
|
||||
* Return a new ``int96`` type for %%v%%.
|
||||
*/
|
||||
static int96(v) { return n(v, -96); }
|
||||
/**
|
||||
* Return a new ``int104`` type for %%v%%.
|
||||
*/
|
||||
static int104(v) { return n(v, -104); }
|
||||
/**
|
||||
* Return a new ``int112`` type for %%v%%.
|
||||
*/
|
||||
static int112(v) { return n(v, -112); }
|
||||
/**
|
||||
* Return a new ``int120`` type for %%v%%.
|
||||
*/
|
||||
static int120(v) { return n(v, -120); }
|
||||
/**
|
||||
* Return a new ``int128`` type for %%v%%.
|
||||
*/
|
||||
static int128(v) { return n(v, -128); }
|
||||
/**
|
||||
* Return a new ``int136`` type for %%v%%.
|
||||
*/
|
||||
static int136(v) { return n(v, -136); }
|
||||
/**
|
||||
* Return a new ``int144`` type for %%v%%.
|
||||
*/
|
||||
static int144(v) { return n(v, -144); }
|
||||
/**
|
||||
* Return a new ``int52`` type for %%v%%.
|
||||
*/
|
||||
static int152(v) { return n(v, -152); }
|
||||
/**
|
||||
* Return a new ``int160`` type for %%v%%.
|
||||
*/
|
||||
static int160(v) { return n(v, -160); }
|
||||
/**
|
||||
* Return a new ``int168`` type for %%v%%.
|
||||
*/
|
||||
static int168(v) { return n(v, -168); }
|
||||
/**
|
||||
* Return a new ``int176`` type for %%v%%.
|
||||
*/
|
||||
static int176(v) { return n(v, -176); }
|
||||
/**
|
||||
* Return a new ``int184`` type for %%v%%.
|
||||
*/
|
||||
static int184(v) { return n(v, -184); }
|
||||
/**
|
||||
* Return a new ``int92`` type for %%v%%.
|
||||
*/
|
||||
static int192(v) { return n(v, -192); }
|
||||
/**
|
||||
* Return a new ``int200`` type for %%v%%.
|
||||
*/
|
||||
static int200(v) { return n(v, -200); }
|
||||
/**
|
||||
* Return a new ``int208`` type for %%v%%.
|
||||
*/
|
||||
static int208(v) { return n(v, -208); }
|
||||
/**
|
||||
* Return a new ``int216`` type for %%v%%.
|
||||
*/
|
||||
static int216(v) { return n(v, -216); }
|
||||
/**
|
||||
* Return a new ``int224`` type for %%v%%.
|
||||
*/
|
||||
static int224(v) { return n(v, -224); }
|
||||
/**
|
||||
* Return a new ``int232`` type for %%v%%.
|
||||
*/
|
||||
static int232(v) { return n(v, -232); }
|
||||
/**
|
||||
* Return a new ``int240`` type for %%v%%.
|
||||
*/
|
||||
static int240(v) { return n(v, -240); }
|
||||
/**
|
||||
* Return a new ``int248`` type for %%v%%.
|
||||
*/
|
||||
static int248(v) { return n(v, -248); }
|
||||
/**
|
||||
* Return a new ``int256`` type for %%v%%.
|
||||
*/
|
||||
static int256(v) { return n(v, -256); }
|
||||
/**
|
||||
* Return a new ``int256`` type for %%v%%.
|
||||
*/
|
||||
static int(v) { return n(v, -256); }
|
||||
/**
|
||||
* Return a new ``bytes1`` type for %%v%%.
|
||||
*/
|
||||
static bytes1(v) { return b(v, 1); }
|
||||
/**
|
||||
* Return a new ``bytes2`` type for %%v%%.
|
||||
*/
|
||||
static bytes2(v) { return b(v, 2); }
|
||||
/**
|
||||
* Return a new ``bytes3`` type for %%v%%.
|
||||
*/
|
||||
static bytes3(v) { return b(v, 3); }
|
||||
/**
|
||||
* Return a new ``bytes4`` type for %%v%%.
|
||||
*/
|
||||
static bytes4(v) { return b(v, 4); }
|
||||
/**
|
||||
* Return a new ``bytes5`` type for %%v%%.
|
||||
*/
|
||||
static bytes5(v) { return b(v, 5); }
|
||||
/**
|
||||
* Return a new ``bytes6`` type for %%v%%.
|
||||
*/
|
||||
static bytes6(v) { return b(v, 6); }
|
||||
/**
|
||||
* Return a new ``bytes7`` type for %%v%%.
|
||||
*/
|
||||
static bytes7(v) { return b(v, 7); }
|
||||
/**
|
||||
* Return a new ``bytes8`` type for %%v%%.
|
||||
*/
|
||||
static bytes8(v) { return b(v, 8); }
|
||||
/**
|
||||
* Return a new ``bytes9`` type for %%v%%.
|
||||
*/
|
||||
static bytes9(v) { return b(v, 9); }
|
||||
/**
|
||||
* Return a new ``bytes10`` type for %%v%%.
|
||||
*/
|
||||
static bytes10(v) { return b(v, 10); }
|
||||
/**
|
||||
* Return a new ``bytes11`` type for %%v%%.
|
||||
*/
|
||||
static bytes11(v) { return b(v, 11); }
|
||||
/**
|
||||
* Return a new ``bytes12`` type for %%v%%.
|
||||
*/
|
||||
static bytes12(v) { return b(v, 12); }
|
||||
/**
|
||||
* Return a new ``bytes13`` type for %%v%%.
|
||||
*/
|
||||
static bytes13(v) { return b(v, 13); }
|
||||
/**
|
||||
* Return a new ``bytes14`` type for %%v%%.
|
||||
*/
|
||||
static bytes14(v) { return b(v, 14); }
|
||||
/**
|
||||
* Return a new ``bytes15`` type for %%v%%.
|
||||
*/
|
||||
static bytes15(v) { return b(v, 15); }
|
||||
/**
|
||||
* Return a new ``bytes16`` type for %%v%%.
|
||||
*/
|
||||
static bytes16(v) { return b(v, 16); }
|
||||
/**
|
||||
* Return a new ``bytes17`` type for %%v%%.
|
||||
*/
|
||||
static bytes17(v) { return b(v, 17); }
|
||||
/**
|
||||
* Return a new ``bytes18`` type for %%v%%.
|
||||
*/
|
||||
static bytes18(v) { return b(v, 18); }
|
||||
/**
|
||||
* Return a new ``bytes19`` type for %%v%%.
|
||||
*/
|
||||
static bytes19(v) { return b(v, 19); }
|
||||
/**
|
||||
* Return a new ``bytes20`` type for %%v%%.
|
||||
*/
|
||||
static bytes20(v) { return b(v, 20); }
|
||||
/**
|
||||
* Return a new ``bytes21`` type for %%v%%.
|
||||
*/
|
||||
static bytes21(v) { return b(v, 21); }
|
||||
/**
|
||||
* Return a new ``bytes22`` type for %%v%%.
|
||||
*/
|
||||
static bytes22(v) { return b(v, 22); }
|
||||
/**
|
||||
* Return a new ``bytes23`` type for %%v%%.
|
||||
*/
|
||||
static bytes23(v) { return b(v, 23); }
|
||||
/**
|
||||
* Return a new ``bytes24`` type for %%v%%.
|
||||
*/
|
||||
static bytes24(v) { return b(v, 24); }
|
||||
/**
|
||||
* Return a new ``bytes25`` type for %%v%%.
|
||||
*/
|
||||
static bytes25(v) { return b(v, 25); }
|
||||
/**
|
||||
* Return a new ``bytes26`` type for %%v%%.
|
||||
*/
|
||||
static bytes26(v) { return b(v, 26); }
|
||||
/**
|
||||
* Return a new ``bytes27`` type for %%v%%.
|
||||
*/
|
||||
static bytes27(v) { return b(v, 27); }
|
||||
/**
|
||||
* Return a new ``bytes28`` type for %%v%%.
|
||||
*/
|
||||
static bytes28(v) { return b(v, 28); }
|
||||
/**
|
||||
* Return a new ``bytes29`` type for %%v%%.
|
||||
*/
|
||||
static bytes29(v) { return b(v, 29); }
|
||||
/**
|
||||
* Return a new ``bytes30`` type for %%v%%.
|
||||
*/
|
||||
static bytes30(v) { return b(v, 30); }
|
||||
/**
|
||||
* Return a new ``bytes31`` type for %%v%%.
|
||||
*/
|
||||
static bytes31(v) { return b(v, 31); }
|
||||
/**
|
||||
* Return a new ``bytes32`` type for %%v%%.
|
||||
*/
|
||||
static bytes32(v) { return b(v, 32); }
|
||||
/**
|
||||
* Return a new ``address`` type for %%v%%.
|
||||
*/
|
||||
static address(v) { return new Typed(_gaurd, "address", v); }
|
||||
/**
|
||||
* Return a new ``bool`` type for %%v%%.
|
||||
*/
|
||||
static bool(v) { return new Typed(_gaurd, "bool", !!v); }
|
||||
/**
|
||||
* Return a new ``bytes`` type for %%v%%.
|
||||
*/
|
||||
static bytes(v) { return new Typed(_gaurd, "bytes", v); }
|
||||
/**
|
||||
* Return a new ``string`` type for %%v%%.
|
||||
*/
|
||||
static string(v) { return new Typed(_gaurd, "string", v); }
|
||||
/**
|
||||
* Return a new ``array`` type for %%v%%, allowing %%dynamic%% length.
|
||||
*/
|
||||
static array(v, dynamic) {
|
||||
throw new Error("not implemented yet");
|
||||
return new Typed(_gaurd, "array", v, dynamic);
|
||||
}
|
||||
/**
|
||||
* Return a new ``tuple`` type for %%v%%, with the optional %%name%%.
|
||||
*/
|
||||
static tuple(v, name) {
|
||||
throw new Error("not implemented yet");
|
||||
return new Typed(_gaurd, "tuple", v, name);
|
||||
}
|
||||
/**
|
||||
* Return a new ``uint8`` type for %%v%%.
|
||||
*/
|
||||
static overrides(v) {
|
||||
return new Typed(_gaurd, "overrides", Object.assign({}, v));
|
||||
}
|
||||
/**
|
||||
* Returns true only if %%value%% is a [[Typed]] instance.
|
||||
*/
|
||||
static isTyped(value) {
|
||||
return (value
|
||||
&& typeof (value) === "object"
|
||||
&& "_typedSymbol" in value
|
||||
&& value._typedSymbol === _typedSymbol);
|
||||
}
|
||||
/**
|
||||
* If the value is a [[Typed]] instance, validates the underlying value
|
||||
* and returns it, otherwise returns value directly.
|
||||
*
|
||||
* This is useful for functions that with to accept either a [[Typed]]
|
||||
* object or values.
|
||||
*/
|
||||
static dereference(value, type) {
|
||||
if (Typed.isTyped(value)) {
|
||||
if (value.type !== type) {
|
||||
throw new Error(`invalid type: expecetd ${type}, got ${value.type}`);
|
||||
}
|
||||
return value.value;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
exports.Typed = Typed;
|
||||
//# sourceMappingURL=typed.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/abi/typed.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/abi/typed.js.map
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
56
dev/env/node_modules/ethers/lib.commonjs/address/address.d.ts
generated
vendored
Executable file
56
dev/env/node_modules/ethers/lib.commonjs/address/address.d.ts
generated
vendored
Executable file
@@ -0,0 +1,56 @@
|
||||
/**
|
||||
* Returns a normalized and checksumed address for %%address%%.
|
||||
* This accepts non-checksum addresses, checksum addresses and
|
||||
* [[getIcapAddress]] formats.
|
||||
*
|
||||
* The checksum in Ethereum uses the capitalization (upper-case
|
||||
* vs lower-case) of the characters within an address to encode
|
||||
* its checksum, which offers, on average, a checksum of 15-bits.
|
||||
*
|
||||
* If %%address%% contains both upper-case and lower-case, it is
|
||||
* assumed to already be a checksum address and its checksum is
|
||||
* validated, and if the address fails its expected checksum an
|
||||
* error is thrown.
|
||||
*
|
||||
* If you wish the checksum of %%address%% to be ignore, it should
|
||||
* be converted to lower-case (i.e. ``.toLowercase()``) before
|
||||
* being passed in. This should be a very rare situation though,
|
||||
* that you wish to bypass the safegaurds in place to protect
|
||||
* against an address that has been incorrectly copied from another
|
||||
* source.
|
||||
*
|
||||
* @example:
|
||||
* // Adds the checksum (via upper-casing specific letters)
|
||||
* getAddress("0x8ba1f109551bd432803012645ac136ddd64dba72")
|
||||
* //_result:
|
||||
*
|
||||
* // Converts ICAP address and adds checksum
|
||||
* getAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36");
|
||||
* //_result:
|
||||
*
|
||||
* // Throws an error if an address contains mixed case,
|
||||
* // but the checksum fails
|
||||
* getAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBA72")
|
||||
* //_error:
|
||||
*/
|
||||
export declare function getAddress(address: string): string;
|
||||
/**
|
||||
* The [ICAP Address format](link-icap) format is an early checksum
|
||||
* format which attempts to be compatible with the banking
|
||||
* industry [IBAN format](link-wiki-iban) for bank accounts.
|
||||
*
|
||||
* It is no longer common or a recommended format.
|
||||
*
|
||||
* @example:
|
||||
* getIcapAddress("0x8ba1f109551bd432803012645ac136ddd64dba72");
|
||||
* //_result:
|
||||
*
|
||||
* getIcapAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36");
|
||||
* //_result:
|
||||
*
|
||||
* // Throws an error if the ICAP checksum is wrong
|
||||
* getIcapAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK37");
|
||||
* //_error:
|
||||
*/
|
||||
export declare function getIcapAddress(address: string): string;
|
||||
//# sourceMappingURL=address.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/address/address.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/address/address.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src.ts/address/address.ts"],"names":[],"mappings":"AAmFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6BlD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKtD"}
|
||||
161
dev/env/node_modules/ethers/lib.commonjs/address/address.js
generated
vendored
Executable file
161
dev/env/node_modules/ethers/lib.commonjs/address/address.js
generated
vendored
Executable file
@@ -0,0 +1,161 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getIcapAddress = exports.getAddress = void 0;
|
||||
const index_js_1 = require("../crypto/index.js");
|
||||
const index_js_2 = require("../utils/index.js");
|
||||
const BN_0 = BigInt(0);
|
||||
const BN_36 = BigInt(36);
|
||||
function getChecksumAddress(address) {
|
||||
// if (!isHexString(address, 20)) {
|
||||
// logger.throwArgumentError("invalid address", "address", address);
|
||||
// }
|
||||
address = address.toLowerCase();
|
||||
const chars = address.substring(2).split("");
|
||||
const expanded = new Uint8Array(40);
|
||||
for (let i = 0; i < 40; i++) {
|
||||
expanded[i] = chars[i].charCodeAt(0);
|
||||
}
|
||||
const hashed = (0, index_js_2.getBytes)((0, index_js_1.keccak256)(expanded));
|
||||
for (let i = 0; i < 40; i += 2) {
|
||||
if ((hashed[i >> 1] >> 4) >= 8) {
|
||||
chars[i] = chars[i].toUpperCase();
|
||||
}
|
||||
if ((hashed[i >> 1] & 0x0f) >= 8) {
|
||||
chars[i + 1] = chars[i + 1].toUpperCase();
|
||||
}
|
||||
}
|
||||
return "0x" + chars.join("");
|
||||
}
|
||||
// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number
|
||||
// Create lookup table
|
||||
const ibanLookup = {};
|
||||
for (let i = 0; i < 10; i++) {
|
||||
ibanLookup[String(i)] = String(i);
|
||||
}
|
||||
for (let i = 0; i < 26; i++) {
|
||||
ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
|
||||
}
|
||||
// How many decimal digits can we process? (for 64-bit float, this is 15)
|
||||
// i.e. Math.floor(Math.log10(Number.MAX_SAFE_INTEGER));
|
||||
const safeDigits = 15;
|
||||
function ibanChecksum(address) {
|
||||
address = address.toUpperCase();
|
||||
address = address.substring(4) + address.substring(0, 2) + "00";
|
||||
let expanded = address.split("").map((c) => { return ibanLookup[c]; }).join("");
|
||||
// Javascript can handle integers safely up to 15 (decimal) digits
|
||||
while (expanded.length >= safeDigits) {
|
||||
let block = expanded.substring(0, safeDigits);
|
||||
expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
|
||||
}
|
||||
let checksum = String(98 - (parseInt(expanded, 10) % 97));
|
||||
while (checksum.length < 2) {
|
||||
checksum = "0" + checksum;
|
||||
}
|
||||
return checksum;
|
||||
}
|
||||
;
|
||||
const Base36 = (function () {
|
||||
;
|
||||
const result = {};
|
||||
for (let i = 0; i < 36; i++) {
|
||||
const key = "0123456789abcdefghijklmnopqrstuvwxyz"[i];
|
||||
result[key] = BigInt(i);
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
function fromBase36(value) {
|
||||
value = value.toLowerCase();
|
||||
let result = BN_0;
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
result = result * BN_36 + Base36[value[i]];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* Returns a normalized and checksumed address for %%address%%.
|
||||
* This accepts non-checksum addresses, checksum addresses and
|
||||
* [[getIcapAddress]] formats.
|
||||
*
|
||||
* The checksum in Ethereum uses the capitalization (upper-case
|
||||
* vs lower-case) of the characters within an address to encode
|
||||
* its checksum, which offers, on average, a checksum of 15-bits.
|
||||
*
|
||||
* If %%address%% contains both upper-case and lower-case, it is
|
||||
* assumed to already be a checksum address and its checksum is
|
||||
* validated, and if the address fails its expected checksum an
|
||||
* error is thrown.
|
||||
*
|
||||
* If you wish the checksum of %%address%% to be ignore, it should
|
||||
* be converted to lower-case (i.e. ``.toLowercase()``) before
|
||||
* being passed in. This should be a very rare situation though,
|
||||
* that you wish to bypass the safegaurds in place to protect
|
||||
* against an address that has been incorrectly copied from another
|
||||
* source.
|
||||
*
|
||||
* @example:
|
||||
* // Adds the checksum (via upper-casing specific letters)
|
||||
* getAddress("0x8ba1f109551bd432803012645ac136ddd64dba72")
|
||||
* //_result:
|
||||
*
|
||||
* // Converts ICAP address and adds checksum
|
||||
* getAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36");
|
||||
* //_result:
|
||||
*
|
||||
* // Throws an error if an address contains mixed case,
|
||||
* // but the checksum fails
|
||||
* getAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBA72")
|
||||
* //_error:
|
||||
*/
|
||||
function getAddress(address) {
|
||||
(0, index_js_2.assertArgument)(typeof (address) === "string", "invalid address", "address", address);
|
||||
if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
|
||||
// Missing the 0x prefix
|
||||
if (!address.startsWith("0x")) {
|
||||
address = "0x" + address;
|
||||
}
|
||||
const result = getChecksumAddress(address);
|
||||
// It is a checksummed address with a bad checksum
|
||||
(0, index_js_2.assertArgument)(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, "bad address checksum", "address", address);
|
||||
return result;
|
||||
}
|
||||
// Maybe ICAP? (we only support direct mode)
|
||||
if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
|
||||
// It is an ICAP address with a bad checksum
|
||||
(0, index_js_2.assertArgument)(address.substring(2, 4) === ibanChecksum(address), "bad icap checksum", "address", address);
|
||||
let result = fromBase36(address.substring(4)).toString(16);
|
||||
while (result.length < 40) {
|
||||
result = "0" + result;
|
||||
}
|
||||
return getChecksumAddress("0x" + result);
|
||||
}
|
||||
(0, index_js_2.assertArgument)(false, "invalid address", "address", address);
|
||||
}
|
||||
exports.getAddress = getAddress;
|
||||
/**
|
||||
* The [ICAP Address format](link-icap) format is an early checksum
|
||||
* format which attempts to be compatible with the banking
|
||||
* industry [IBAN format](link-wiki-iban) for bank accounts.
|
||||
*
|
||||
* It is no longer common or a recommended format.
|
||||
*
|
||||
* @example:
|
||||
* getIcapAddress("0x8ba1f109551bd432803012645ac136ddd64dba72");
|
||||
* //_result:
|
||||
*
|
||||
* getIcapAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36");
|
||||
* //_result:
|
||||
*
|
||||
* // Throws an error if the ICAP checksum is wrong
|
||||
* getIcapAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK37");
|
||||
* //_error:
|
||||
*/
|
||||
function getIcapAddress(address) {
|
||||
//let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();
|
||||
let base36 = BigInt(getAddress(address)).toString(36).toUpperCase();
|
||||
while (base36.length < 30) {
|
||||
base36 = "0" + base36;
|
||||
}
|
||||
return "XE" + ibanChecksum("XE00" + base36) + base36;
|
||||
}
|
||||
exports.getIcapAddress = getIcapAddress;
|
||||
//# sourceMappingURL=address.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/address/address.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/address/address.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src.ts/address/address.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,gDAA6D;AAG7D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzB,SAAS,kBAAkB,CAAC,OAAe;IAC3C,sCAAsC;IACtC,2EAA2E;IAC3E,OAAO;IAEH,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACzB,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACxC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,IAAA,oBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACrC;QACD,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC7C;KACJ;IAED,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,uEAAuE;AAEvE,sBAAsB;AACtB,MAAM,UAAU,GAAoC,EAAG,CAAC;AACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CAAE;AACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;CAAE;AAE1F,yEAAyE;AACzE,wDAAwD;AACxD,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,SAAS,YAAY,CAAC,OAAe;IACjC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAChC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAEhE,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEhF,kEAAkE;IAClE,OAAO,QAAQ,CAAC,MAAM,IAAI,UAAU,EAAC;QACjC,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAC9C,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC1E;IAED,IAAI,QAAQ,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAAE,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;KAAE;IAE1D,OAAO,QAAQ,CAAC;AACpB,CAAC;AAAA,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC;IAAY,CAAC;IACzB,MAAM,MAAM,GAA2B,EAAG,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,sCAAsC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;KAC3B;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC,EAAE,CAAC;AAEL,SAAS,UAAU,CAAC,KAAa;IAC7B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE5B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9C;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAgB,UAAU,CAAC,OAAe;IAEtC,IAAA,yBAAc,EAAC,OAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAEpF,IAAI,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE;QAEzC,wBAAwB;QACxB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;SAAE;QAE5D,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE3C,kDAAkD;QAClD,IAAA,yBAAc,EAAC,CAAC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,MAAM,KAAK,OAAO,EAChF,sBAAsB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhD,OAAO,MAAM,CAAC;KACjB;IAED,4CAA4C;IAC5C,IAAI,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE;QACjD,4CAA4C;QAC5C,IAAA,yBAAc,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE3G,IAAI,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE;YAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;SAAE;QACrD,OAAQ,kBAAkB,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;KAC7C;IAED,IAAA,yBAAc,EAAC,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AA7BD,gCA6BC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,cAAc,CAAC,OAAe;IAC1C,2EAA2E;IAC3E,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE;QAAE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;KAAE;IACrD,OAAO,IAAI,GAAG,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AACzD,CAAC;AALD,wCAKC"}
|
||||
81
dev/env/node_modules/ethers/lib.commonjs/address/checks.d.ts
generated
vendored
Executable file
81
dev/env/node_modules/ethers/lib.commonjs/address/checks.d.ts
generated
vendored
Executable file
@@ -0,0 +1,81 @@
|
||||
import type { Addressable, AddressLike, NameResolver } from "./index.js";
|
||||
/**
|
||||
* Returns true if %%value%% is an object which implements the
|
||||
* [[Addressable]] interface.
|
||||
*
|
||||
* @example:
|
||||
* // Wallets and AbstractSigner sub-classes
|
||||
* isAddressable(Wallet.createRandom())
|
||||
* //_result:
|
||||
*
|
||||
* // Contracts
|
||||
* contract = new Contract("dai.tokens.ethers.eth", [ ], provider)
|
||||
* isAddressable(contract)
|
||||
* //_result:
|
||||
*/
|
||||
export declare function isAddressable(value: any): value is Addressable;
|
||||
/**
|
||||
* Returns true if %%value%% is a valid address.
|
||||
*
|
||||
* @example:
|
||||
* // Valid address
|
||||
* isAddress("0x8ba1f109551bD432803012645Ac136ddd64DBA72")
|
||||
* //_result:
|
||||
*
|
||||
* // Valid ICAP address
|
||||
* isAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36")
|
||||
* //_result:
|
||||
*
|
||||
* // Invalid checksum
|
||||
* isAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBa72")
|
||||
* //_result:
|
||||
*
|
||||
* // Invalid ICAP checksum
|
||||
* isAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBA72")
|
||||
* //_result:
|
||||
*
|
||||
* // Not an address (an ENS name requires a provided and an
|
||||
* // asynchronous API to access)
|
||||
* isAddress("ricmoo.eth")
|
||||
* //_result:
|
||||
*/
|
||||
export declare function isAddress(value: any): value is string;
|
||||
/**
|
||||
* Resolves to an address for the %%target%%, which may be any
|
||||
* supported address type, an [[Addressable]] or a Promise which
|
||||
* resolves to an address.
|
||||
*
|
||||
* If an ENS name is provided, but that name has not been correctly
|
||||
* configured a [[UnconfiguredNameError]] is thrown.
|
||||
*
|
||||
* @example:
|
||||
* addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F"
|
||||
*
|
||||
* // Addresses are return synchronously
|
||||
* resolveAddress(addr, provider)
|
||||
* //_result:
|
||||
*
|
||||
* // Address promises are resolved asynchronously
|
||||
* resolveAddress(Promise.resolve(addr))
|
||||
* //_result:
|
||||
*
|
||||
* // ENS names are resolved asynchronously
|
||||
* resolveAddress("dai.tokens.ethers.eth", provider)
|
||||
* //_result:
|
||||
*
|
||||
* // Addressable objects are resolved asynchronously
|
||||
* contract = new Contract(addr, [ ])
|
||||
* resolveAddress(contract, provider)
|
||||
* //_result:
|
||||
*
|
||||
* // Unconfigured ENS names reject
|
||||
* resolveAddress("nothing-here.ricmoo.eth", provider)
|
||||
* //_error:
|
||||
*
|
||||
* // ENS names require a NameResolver object passed in
|
||||
* // (notice the provider was omitted)
|
||||
* resolveAddress("nothing-here.ricmoo.eth")
|
||||
* //_error:
|
||||
*/
|
||||
export declare function resolveAddress(target: AddressLike, resolver?: null | NameResolver): string | Promise<string>;
|
||||
//# sourceMappingURL=checks.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/address/checks.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/address/checks.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src.ts/address/checks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGzE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,WAAW,CAE9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAMrD;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5G"}
|
||||
120
dev/env/node_modules/ethers/lib.commonjs/address/checks.js
generated
vendored
Executable file
120
dev/env/node_modules/ethers/lib.commonjs/address/checks.js
generated
vendored
Executable file
@@ -0,0 +1,120 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.resolveAddress = exports.isAddress = exports.isAddressable = void 0;
|
||||
const index_js_1 = require("../utils/index.js");
|
||||
const address_js_1 = require("./address.js");
|
||||
/**
|
||||
* Returns true if %%value%% is an object which implements the
|
||||
* [[Addressable]] interface.
|
||||
*
|
||||
* @example:
|
||||
* // Wallets and AbstractSigner sub-classes
|
||||
* isAddressable(Wallet.createRandom())
|
||||
* //_result:
|
||||
*
|
||||
* // Contracts
|
||||
* contract = new Contract("dai.tokens.ethers.eth", [ ], provider)
|
||||
* isAddressable(contract)
|
||||
* //_result:
|
||||
*/
|
||||
function isAddressable(value) {
|
||||
return (value && typeof (value.getAddress) === "function");
|
||||
}
|
||||
exports.isAddressable = isAddressable;
|
||||
/**
|
||||
* Returns true if %%value%% is a valid address.
|
||||
*
|
||||
* @example:
|
||||
* // Valid address
|
||||
* isAddress("0x8ba1f109551bD432803012645Ac136ddd64DBA72")
|
||||
* //_result:
|
||||
*
|
||||
* // Valid ICAP address
|
||||
* isAddress("XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36")
|
||||
* //_result:
|
||||
*
|
||||
* // Invalid checksum
|
||||
* isAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBa72")
|
||||
* //_result:
|
||||
*
|
||||
* // Invalid ICAP checksum
|
||||
* isAddress("0x8Ba1f109551bD432803012645Ac136ddd64DBA72")
|
||||
* //_result:
|
||||
*
|
||||
* // Not an address (an ENS name requires a provided and an
|
||||
* // asynchronous API to access)
|
||||
* isAddress("ricmoo.eth")
|
||||
* //_result:
|
||||
*/
|
||||
function isAddress(value) {
|
||||
try {
|
||||
(0, address_js_1.getAddress)(value);
|
||||
return true;
|
||||
}
|
||||
catch (error) { }
|
||||
return false;
|
||||
}
|
||||
exports.isAddress = isAddress;
|
||||
async function checkAddress(target, promise) {
|
||||
const result = await promise;
|
||||
if (result == null || result === "0x0000000000000000000000000000000000000000") {
|
||||
(0, index_js_1.assert)(typeof (target) !== "string", "unconfigured name", "UNCONFIGURED_NAME", { value: target });
|
||||
(0, index_js_1.assertArgument)(false, "invalid AddressLike value; did not resolve to a value address", "target", target);
|
||||
}
|
||||
return (0, address_js_1.getAddress)(result);
|
||||
}
|
||||
/**
|
||||
* Resolves to an address for the %%target%%, which may be any
|
||||
* supported address type, an [[Addressable]] or a Promise which
|
||||
* resolves to an address.
|
||||
*
|
||||
* If an ENS name is provided, but that name has not been correctly
|
||||
* configured a [[UnconfiguredNameError]] is thrown.
|
||||
*
|
||||
* @example:
|
||||
* addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F"
|
||||
*
|
||||
* // Addresses are return synchronously
|
||||
* resolveAddress(addr, provider)
|
||||
* //_result:
|
||||
*
|
||||
* // Address promises are resolved asynchronously
|
||||
* resolveAddress(Promise.resolve(addr))
|
||||
* //_result:
|
||||
*
|
||||
* // ENS names are resolved asynchronously
|
||||
* resolveAddress("dai.tokens.ethers.eth", provider)
|
||||
* //_result:
|
||||
*
|
||||
* // Addressable objects are resolved asynchronously
|
||||
* contract = new Contract(addr, [ ])
|
||||
* resolveAddress(contract, provider)
|
||||
* //_result:
|
||||
*
|
||||
* // Unconfigured ENS names reject
|
||||
* resolveAddress("nothing-here.ricmoo.eth", provider)
|
||||
* //_error:
|
||||
*
|
||||
* // ENS names require a NameResolver object passed in
|
||||
* // (notice the provider was omitted)
|
||||
* resolveAddress("nothing-here.ricmoo.eth")
|
||||
* //_error:
|
||||
*/
|
||||
function resolveAddress(target, resolver) {
|
||||
if (typeof (target) === "string") {
|
||||
if (target.match(/^0x[0-9a-f]{40}$/i)) {
|
||||
return (0, address_js_1.getAddress)(target);
|
||||
}
|
||||
(0, index_js_1.assert)(resolver != null, "ENS resolution requires a provider", "UNSUPPORTED_OPERATION", { operation: "resolveName" });
|
||||
return checkAddress(target, resolver.resolveName(target));
|
||||
}
|
||||
else if (isAddressable(target)) {
|
||||
return checkAddress(target, target.getAddress());
|
||||
}
|
||||
else if (target && typeof (target.then) === "function") {
|
||||
return checkAddress(target, target);
|
||||
}
|
||||
(0, index_js_1.assertArgument)(false, "unsupported addressable value", "target", target);
|
||||
}
|
||||
exports.resolveAddress = resolveAddress;
|
||||
//# sourceMappingURL=checks.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/address/checks.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/address/checks.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src.ts/address/checks.ts"],"names":[],"mappings":";;;AAAA,gDAA2D;AAE3D,6CAA0C;AAK1C;;;;;;;;;;;;;GAaG;AACH,SAAgB,aAAa,CAAC,KAAU;IACpC,OAAO,CAAC,KAAK,IAAI,OAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,CAAC;AAC9D,CAAC;AAFD,sCAEC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,SAAS,CAAC,KAAU;IAChC,IAAI;QACA,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;KACf;IAAC,OAAO,KAAK,EAAE,GAAG;IACnB,OAAO,KAAK,CAAC;AACjB,CAAC;AAND,8BAMC;AAED,KAAK,UAAU,YAAY,CAAC,MAAW,EAAE,OAA+B;IACpE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;IAC7B,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,4CAA4C,EAAE;QAC3E,IAAA,iBAAM,EAAC,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjG,IAAA,yBAAc,EAAC,KAAK,EAAE,+DAA+D,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC5G;IACD,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAgB,cAAc,CAAC,MAAmB,EAAE,QAA8B;IAE9E,IAAI,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;QAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;YAAE,OAAO,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;SAAE;QAErE,IAAA,iBAAM,EAAC,QAAQ,IAAI,IAAI,EAAE,oCAAoC,EACzD,uBAAuB,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QAE3D,OAAO,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;KAE7D;SAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;QAC9B,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;KAEpD;SAAM,IAAI,MAAM,IAAI,OAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;QACrD,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC;IAED,IAAA,yBAAc,EAAC,KAAK,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAlBD,wCAkBC"}
|
||||
48
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.d.ts
generated
vendored
Executable file
48
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.d.ts
generated
vendored
Executable file
@@ -0,0 +1,48 @@
|
||||
import type { BigNumberish, BytesLike } from "../utils/index.js";
|
||||
/**
|
||||
* Returns the address that would result from a ``CREATE`` for %%tx%%.
|
||||
*
|
||||
* This can be used to compute the address a contract will be
|
||||
* deployed to by an EOA when sending a deployment transaction (i.e.
|
||||
* when the ``to`` address is ``null``).
|
||||
*
|
||||
* This can also be used to compute the address a contract will be
|
||||
* deployed to by a contract, by using the contract's address as the
|
||||
* ``to`` and the contract's nonce.
|
||||
*
|
||||
* @example
|
||||
* from = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
|
||||
* nonce = 5;
|
||||
*
|
||||
* getCreateAddress({ from, nonce });
|
||||
* //_result:
|
||||
*/
|
||||
export declare function getCreateAddress(tx: {
|
||||
from: string;
|
||||
nonce: BigNumberish;
|
||||
}): string;
|
||||
/**
|
||||
* Returns the address that would result from a ``CREATE2`` operation
|
||||
* with the given %%from%%, %%salt%% and %%initCodeHash%%.
|
||||
*
|
||||
* To compute the %%initCodeHash%% from a contract's init code, use
|
||||
* the [[keccak256]] function.
|
||||
*
|
||||
* For a quick overview and example of ``CREATE2``, see [[link-ricmoo-wisps]].
|
||||
*
|
||||
* @example
|
||||
* // The address of the contract
|
||||
* from = "0x8ba1f109551bD432803012645Ac136ddd64DBA72"
|
||||
*
|
||||
* // The salt
|
||||
* salt = id("HelloWorld")
|
||||
*
|
||||
* // The hash of the initCode
|
||||
* initCode = "0x6394198df16000526103ff60206004601c335afa6040516060f3";
|
||||
* initCodeHash = keccak256(initCode)
|
||||
*
|
||||
* getCreate2Address(from, salt, initCodeHash)
|
||||
* //_result:
|
||||
*/
|
||||
export declare function getCreate2Address(_from: string, _salt: BytesLike, _initCodeHash: BytesLike): string;
|
||||
//# sourceMappingURL=contract-address.d.ts.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.d.ts.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.d.ts.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contract-address.d.ts","sourceRoot":"","sources":["../../src.ts/address/contract-address.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKjE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GAAG,MAAM,CAclF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,MAAM,CAUnG"}
|
||||
74
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.js
generated
vendored
Executable file
74
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.js
generated
vendored
Executable file
@@ -0,0 +1,74 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getCreate2Address = exports.getCreateAddress = void 0;
|
||||
const index_js_1 = require("../crypto/index.js");
|
||||
const index_js_2 = require("../utils/index.js");
|
||||
const address_js_1 = require("./address.js");
|
||||
// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed
|
||||
/**
|
||||
* Returns the address that would result from a ``CREATE`` for %%tx%%.
|
||||
*
|
||||
* This can be used to compute the address a contract will be
|
||||
* deployed to by an EOA when sending a deployment transaction (i.e.
|
||||
* when the ``to`` address is ``null``).
|
||||
*
|
||||
* This can also be used to compute the address a contract will be
|
||||
* deployed to by a contract, by using the contract's address as the
|
||||
* ``to`` and the contract's nonce.
|
||||
*
|
||||
* @example
|
||||
* from = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
|
||||
* nonce = 5;
|
||||
*
|
||||
* getCreateAddress({ from, nonce });
|
||||
* //_result:
|
||||
*/
|
||||
function getCreateAddress(tx) {
|
||||
const from = (0, address_js_1.getAddress)(tx.from);
|
||||
const nonce = (0, index_js_2.getBigInt)(tx.nonce, "tx.nonce");
|
||||
let nonceHex = nonce.toString(16);
|
||||
if (nonceHex === "0") {
|
||||
nonceHex = "0x";
|
||||
}
|
||||
else if (nonceHex.length % 2) {
|
||||
nonceHex = "0x0" + nonceHex;
|
||||
}
|
||||
else {
|
||||
nonceHex = "0x" + nonceHex;
|
||||
}
|
||||
return (0, address_js_1.getAddress)((0, index_js_2.dataSlice)((0, index_js_1.keccak256)((0, index_js_2.encodeRlp)([from, nonceHex])), 12));
|
||||
}
|
||||
exports.getCreateAddress = getCreateAddress;
|
||||
/**
|
||||
* Returns the address that would result from a ``CREATE2`` operation
|
||||
* with the given %%from%%, %%salt%% and %%initCodeHash%%.
|
||||
*
|
||||
* To compute the %%initCodeHash%% from a contract's init code, use
|
||||
* the [[keccak256]] function.
|
||||
*
|
||||
* For a quick overview and example of ``CREATE2``, see [[link-ricmoo-wisps]].
|
||||
*
|
||||
* @example
|
||||
* // The address of the contract
|
||||
* from = "0x8ba1f109551bD432803012645Ac136ddd64DBA72"
|
||||
*
|
||||
* // The salt
|
||||
* salt = id("HelloWorld")
|
||||
*
|
||||
* // The hash of the initCode
|
||||
* initCode = "0x6394198df16000526103ff60206004601c335afa6040516060f3";
|
||||
* initCodeHash = keccak256(initCode)
|
||||
*
|
||||
* getCreate2Address(from, salt, initCodeHash)
|
||||
* //_result:
|
||||
*/
|
||||
function getCreate2Address(_from, _salt, _initCodeHash) {
|
||||
const from = (0, address_js_1.getAddress)(_from);
|
||||
const salt = (0, index_js_2.getBytes)(_salt, "salt");
|
||||
const initCodeHash = (0, index_js_2.getBytes)(_initCodeHash, "initCodeHash");
|
||||
(0, index_js_2.assertArgument)(salt.length === 32, "salt must be 32 bytes", "salt", _salt);
|
||||
(0, index_js_2.assertArgument)(initCodeHash.length === 32, "initCodeHash must be 32 bytes", "initCodeHash", _initCodeHash);
|
||||
return (0, address_js_1.getAddress)((0, index_js_2.dataSlice)((0, index_js_1.keccak256)((0, index_js_2.concat)(["0xff", from, salt, initCodeHash])), 12));
|
||||
}
|
||||
exports.getCreate2Address = getCreate2Address;
|
||||
//# sourceMappingURL=contract-address.js.map
|
||||
1
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.js.map
generated
vendored
Executable file
1
dev/env/node_modules/ethers/lib.commonjs/address/contract-address.js.map
generated
vendored
Executable file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"contract-address.js","sourceRoot":"","sources":["../../src.ts/address/contract-address.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,gDAE2B;AAE3B,6CAA0C;AAK1C,sGAAsG;AAEtG;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,gBAAgB,CAAC,EAAyC;IACtE,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAA,oBAAS,EAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAE9C,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,GAAG,EAAE;QAClB,QAAQ,GAAG,IAAI,CAAC;KACnB;SAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAC5B,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;KAC/B;SAAM;QACH,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;KAC9B;IAED,OAAO,IAAA,uBAAU,EAAC,IAAA,oBAAS,EAAC,IAAA,oBAAS,EAAC,IAAA,oBAAS,EAAC,CAAE,IAAI,EAAE,QAAQ,CAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAdD,4CAcC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,iBAAiB,CAAC,KAAa,EAAE,KAAgB,EAAE,aAAwB;IACvF,MAAM,IAAI,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAA,mBAAQ,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,IAAA,mBAAQ,EAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAE7D,IAAA,yBAAc,EAAC,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,uBAAuB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAE3E,IAAA,yBAAc,EAAC,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,+BAA+B,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAE3G,OAAO,IAAA,uBAAU,EAAC,IAAA,oBAAS,EAAC,IAAA,oBAAS,EAAC,IAAA,iBAAM,EAAC,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC7F,CAAC;AAVD,8CAUC"}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user