@ensforge/core 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +61 -0
- package/dist/action/action.d.ts +13 -0
- package/dist/action/action.d.ts.map +1 -0
- package/dist/action/action.js +18 -0
- package/dist/action/action.js.map +1 -0
- package/dist/action/block.d.ts +12 -0
- package/dist/action/block.d.ts.map +1 -0
- package/dist/action/block.js +10 -0
- package/dist/action/block.js.map +1 -0
- package/dist/action/index.d.ts +5 -0
- package/dist/action/read-request.d.ts +19 -0
- package/dist/action/read-request.d.ts.map +1 -0
- package/dist/action/read-request.js +23 -0
- package/dist/action/read-request.js.map +1 -0
- package/dist/action/write-intent.d.ts +34 -0
- package/dist/action/write-intent.d.ts.map +1 -0
- package/dist/action/write-intent.js +41 -0
- package/dist/action/write-intent.js.map +1 -0
- package/dist/actions/batch/estimate-calls.d.ts +8 -0
- package/dist/actions/batch/estimate-calls.d.ts.map +1 -0
- package/dist/actions/batch/estimate-calls.js +68 -0
- package/dist/actions/batch/estimate-calls.js.map +1 -0
- package/dist/actions/batch/execute-write-plan.d.ts +8 -0
- package/dist/actions/batch/execute-write-plan.d.ts.map +1 -0
- package/dist/actions/batch/execute-write-plan.js +145 -0
- package/dist/actions/batch/execute-write-plan.js.map +1 -0
- package/dist/actions/batch/get-calls-status.d.ts +8 -0
- package/dist/actions/batch/get-calls-status.d.ts.map +1 -0
- package/dist/actions/batch/get-calls-status.js +33 -0
- package/dist/actions/batch/get-calls-status.js.map +1 -0
- package/dist/actions/batch/get-wallet-capabilities.d.ts +10 -0
- package/dist/actions/batch/get-wallet-capabilities.d.ts.map +1 -0
- package/dist/actions/batch/get-wallet-capabilities.js +60 -0
- package/dist/actions/batch/get-wallet-capabilities.js.map +1 -0
- package/dist/actions/batch/index.d.ts +10 -0
- package/dist/actions/batch/prepare-calls.d.ts +8 -0
- package/dist/actions/batch/prepare-calls.d.ts.map +1 -0
- package/dist/actions/batch/prepare-calls.js +11 -0
- package/dist/actions/batch/prepare-calls.js.map +1 -0
- package/dist/actions/batch/read-batch.d.ts +33 -0
- package/dist/actions/batch/read-batch.d.ts.map +1 -0
- package/dist/actions/batch/read-batch.js +55 -0
- package/dist/actions/batch/read-batch.js.map +1 -0
- package/dist/actions/batch/resume-calls.d.ts +8 -0
- package/dist/actions/batch/resume-calls.d.ts.map +1 -0
- package/dist/actions/batch/resume-calls.js +17 -0
- package/dist/actions/batch/resume-calls.js.map +1 -0
- package/dist/actions/batch/send-calls.d.ts +8 -0
- package/dist/actions/batch/send-calls.d.ts.map +1 -0
- package/dist/actions/batch/send-calls.js +28 -0
- package/dist/actions/batch/send-calls.js.map +1 -0
- package/dist/actions/batch/simulate-calls.d.ts +8 -0
- package/dist/actions/batch/simulate-calls.d.ts.map +1 -0
- package/dist/actions/batch/simulate-calls.js +22 -0
- package/dist/actions/batch/simulate-calls.js.map +1 -0
- package/dist/actions/capabilities/get-name-capabilities/index.d.ts +127 -0
- package/dist/actions/capabilities/get-name-capabilities/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-name-capabilities/index.js +65 -0
- package/dist/actions/capabilities/get-name-capabilities/index.js.map +1 -0
- package/dist/actions/capabilities/get-operator-approval/index.d.ts +24 -0
- package/dist/actions/capabilities/get-operator-approval/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-operator-approval/index.js +108 -0
- package/dist/actions/capabilities/get-operator-approval/index.js.map +1 -0
- package/dist/actions/capabilities/get-record-permissions/index.d.ts +86 -0
- package/dist/actions/capabilities/get-record-permissions/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-record-permissions/index.js +160 -0
- package/dist/actions/capabilities/get-record-permissions/index.js.map +1 -0
- package/dist/actions/capabilities/get-registry-capabilities/index.d.ts +24 -0
- package/dist/actions/capabilities/get-registry-capabilities/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-registry-capabilities/index.js +64 -0
- package/dist/actions/capabilities/get-registry-capabilities/index.js.map +1 -0
- package/dist/actions/capabilities/get-registry-roles/index.d.ts +21 -0
- package/dist/actions/capabilities/get-registry-roles/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-registry-roles/index.js +32 -0
- package/dist/actions/capabilities/get-registry-roles/index.js.map +1 -0
- package/dist/actions/capabilities/get-required-authorization/index.d.ts +148 -0
- package/dist/actions/capabilities/get-required-authorization/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-required-authorization/index.js +183 -0
- package/dist/actions/capabilities/get-required-authorization/index.js.map +1 -0
- package/dist/actions/capabilities/get-resolver-capabilities/index.d.ts +29 -0
- package/dist/actions/capabilities/get-resolver-capabilities/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-resolver-capabilities/index.js +71 -0
- package/dist/actions/capabilities/get-resolver-capabilities/index.js.map +1 -0
- package/dist/actions/capabilities/get-resolver-delegate-approval/index.d.ts +26 -0
- package/dist/actions/capabilities/get-resolver-delegate-approval/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-resolver-delegate-approval/index.js +50 -0
- package/dist/actions/capabilities/get-resolver-delegate-approval/index.js.map +1 -0
- package/dist/actions/capabilities/get-resolver-roles/index.d.ts +25 -0
- package/dist/actions/capabilities/get-resolver-roles/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-resolver-roles/index.js +35 -0
- package/dist/actions/capabilities/get-resolver-roles/index.js.map +1 -0
- package/dist/actions/capabilities/get-token-approval/index.d.ts +21 -0
- package/dist/actions/capabilities/get-token-approval/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-token-approval/index.js +73 -0
- package/dist/actions/capabilities/get-token-approval/index.js.map +1 -0
- package/dist/actions/capabilities/get-wrapper-permissions/index.d.ts +41 -0
- package/dist/actions/capabilities/get-wrapper-permissions/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-wrapper-permissions/index.js +131 -0
- package/dist/actions/capabilities/get-wrapper-permissions/index.js.map +1 -0
- package/dist/actions/capabilities/get-write-target/index.d.ts +68 -0
- package/dist/actions/capabilities/get-write-target/index.d.ts.map +1 -0
- package/dist/actions/capabilities/get-write-target/index.js +94 -0
- package/dist/actions/capabilities/get-write-target/index.js.map +1 -0
- package/dist/actions/capabilities/has-registry-roles/index.d.ts +25 -0
- package/dist/actions/capabilities/has-registry-roles/index.d.ts.map +1 -0
- package/dist/actions/capabilities/has-registry-roles/index.js +37 -0
- package/dist/actions/capabilities/has-registry-roles/index.js.map +1 -0
- package/dist/actions/capabilities/has-resolver-roles/index.d.ts +27 -0
- package/dist/actions/capabilities/has-resolver-roles/index.d.ts.map +1 -0
- package/dist/actions/capabilities/has-resolver-roles/index.js +49 -0
- package/dist/actions/capabilities/has-resolver-roles/index.js.map +1 -0
- package/dist/actions/capabilities/index.d.ts +16 -0
- package/dist/actions/capabilities/types.d.ts +790 -0
- package/dist/actions/capabilities/types.d.ts.map +1 -0
- package/dist/actions/capabilities/types.js +320 -0
- package/dist/actions/capabilities/types.js.map +1 -0
- package/dist/actions/dns/claim-dns-name/index.d.ts +9 -0
- package/dist/actions/dns/claim-dns-name/index.d.ts.map +1 -0
- package/dist/actions/dns/claim-dns-name/index.js +63 -0
- package/dist/actions/dns/claim-dns-name/index.js.map +1 -0
- package/dist/actions/dns/get-dns-claim-status/index.d.ts +26 -0
- package/dist/actions/dns/get-dns-claim-status/index.d.ts.map +1 -0
- package/dist/actions/dns/get-dns-claim-status/index.js +62 -0
- package/dist/actions/dns/get-dns-claim-status/index.js.map +1 -0
- package/dist/actions/dns/get-dns-import-plan/index.d.ts +32 -0
- package/dist/actions/dns/get-dns-import-plan/index.d.ts.map +1 -0
- package/dist/actions/dns/get-dns-import-plan/index.js +53 -0
- package/dist/actions/dns/get-dns-import-plan/index.js.map +1 -0
- package/dist/actions/dns/get-dns-record/index.d.ts +14 -0
- package/dist/actions/dns/get-dns-record/index.d.ts.map +1 -0
- package/dist/actions/dns/get-dns-record/index.js +30 -0
- package/dist/actions/dns/get-dns-record/index.js.map +1 -0
- package/dist/actions/dns/get-dns-records/index.d.ts +18 -0
- package/dist/actions/dns/get-dns-records/index.d.ts.map +1 -0
- package/dist/actions/dns/get-dns-records/index.js +34 -0
- package/dist/actions/dns/get-dns-records/index.js.map +1 -0
- package/dist/actions/dns/get-zone-hash/index.d.ts +16 -0
- package/dist/actions/dns/get-zone-hash/index.d.ts.map +1 -0
- package/dist/actions/dns/get-zone-hash/index.js +58 -0
- package/dist/actions/dns/get-zone-hash/index.js.map +1 -0
- package/dist/actions/dns/has-dns-records/index.d.ts +18 -0
- package/dist/actions/dns/has-dns-records/index.d.ts.map +1 -0
- package/dist/actions/dns/has-dns-records/index.js +61 -0
- package/dist/actions/dns/has-dns-records/index.js.map +1 -0
- package/dist/actions/dns/import-dns-name/index.d.ts +9 -0
- package/dist/actions/dns/import-dns-name/index.d.ts.map +1 -0
- package/dist/actions/dns/import-dns-name/index.js +82 -0
- package/dist/actions/dns/import-dns-name/index.js.map +1 -0
- package/dist/actions/dns/index.d.ts +14 -0
- package/dist/actions/dns/set-dns-records/index.d.ts +9 -0
- package/dist/actions/dns/set-dns-records/index.d.ts.map +1 -0
- package/dist/actions/dns/set-dns-records/index.js +35 -0
- package/dist/actions/dns/set-dns-records/index.js.map +1 -0
- package/dist/actions/dns/set-dns-records/types.d.ts +12 -0
- package/dist/actions/dns/set-dns-records/types.d.ts.map +1 -0
- package/dist/actions/dns/set-zone-hash/index.d.ts +9 -0
- package/dist/actions/dns/set-zone-hash/index.d.ts.map +1 -0
- package/dist/actions/dns/set-zone-hash/index.js +35 -0
- package/dist/actions/dns/set-zone-hash/index.js.map +1 -0
- package/dist/actions/dns/set-zone-hash/types.d.ts +12 -0
- package/dist/actions/dns/set-zone-hash/types.d.ts.map +1 -0
- package/dist/actions/dns/types.d.ts +145 -0
- package/dist/actions/dns/types.d.ts.map +1 -0
- package/dist/actions/dns/types.js +87 -0
- package/dist/actions/dns/types.js.map +1 -0
- package/dist/actions/events/get-ens-events/index.d.ts +33 -0
- package/dist/actions/events/get-ens-events/index.d.ts.map +1 -0
- package/dist/actions/events/get-ens-events/index.js +30 -0
- package/dist/actions/events/get-ens-events/index.js.map +1 -0
- package/dist/actions/events/get-name-history/index.d.ts +36 -0
- package/dist/actions/events/get-name-history/index.d.ts.map +1 -0
- package/dist/actions/events/get-name-history/index.js +17 -0
- package/dist/actions/events/get-name-history/index.js.map +1 -0
- package/dist/actions/events/index.d.ts +5 -0
- package/dist/actions/events/types.d.ts +89 -0
- package/dist/actions/events/types.d.ts.map +1 -0
- package/dist/actions/events/types.js +61 -0
- package/dist/actions/events/types.js.map +1 -0
- package/dist/actions/events/watch-ens-events/index.d.ts +12 -0
- package/dist/actions/events/watch-ens-events/index.d.ts.map +1 -0
- package/dist/actions/events/watch-ens-events/index.js +59 -0
- package/dist/actions/events/watch-ens-events/index.js.map +1 -0
- package/dist/actions/index.d.ts +199 -0
- package/dist/actions/migration/get-migration-eligibility/index.d.ts +71 -0
- package/dist/actions/migration/get-migration-eligibility/index.d.ts.map +1 -0
- package/dist/actions/migration/get-migration-eligibility/index.js +88 -0
- package/dist/actions/migration/get-migration-eligibility/index.js.map +1 -0
- package/dist/actions/migration/get-migration-plan/index.d.ts +70 -0
- package/dist/actions/migration/get-migration-plan/index.d.ts.map +1 -0
- package/dist/actions/migration/get-migration-plan/index.js +73 -0
- package/dist/actions/migration/get-migration-plan/index.js.map +1 -0
- package/dist/actions/migration/get-migration-status/index.d.ts +46 -0
- package/dist/actions/migration/get-migration-status/index.d.ts.map +1 -0
- package/dist/actions/migration/get-migration-status/index.js +124 -0
- package/dist/actions/migration/get-migration-status/index.js.map +1 -0
- package/dist/actions/migration/get-migration-target/index.d.ts +22 -0
- package/dist/actions/migration/get-migration-target/index.d.ts.map +1 -0
- package/dist/actions/migration/get-migration-target/index.js +65 -0
- package/dist/actions/migration/get-migration-target/index.js.map +1 -0
- package/dist/actions/migration/index.d.ts +9 -0
- package/dist/actions/migration/migrate-name/index.d.ts +9 -0
- package/dist/actions/migration/migrate-name/index.d.ts.map +1 -0
- package/dist/actions/migration/migrate-name/index.js +145 -0
- package/dist/actions/migration/migrate-name/index.js.map +1 -0
- package/dist/actions/migration/migrate-names/index.d.ts +9 -0
- package/dist/actions/migration/migrate-names/index.d.ts.map +1 -0
- package/dist/actions/migration/migrate-names/index.js +210 -0
- package/dist/actions/migration/migrate-names/index.js.map +1 -0
- package/dist/actions/migration/mutation.d.ts +10 -0
- package/dist/actions/migration/mutation.d.ts.map +1 -0
- package/dist/actions/migration/mutation.js +210 -0
- package/dist/actions/migration/mutation.js.map +1 -0
- package/dist/actions/migration/types.d.ts +267 -0
- package/dist/actions/migration/types.d.ts.map +1 -0
- package/dist/actions/migration/types.js +145 -0
- package/dist/actions/migration/types.js.map +1 -0
- package/dist/actions/name/get-canonical-resource/index.d.ts +9 -0
- package/dist/actions/name/get-canonical-resource/index.d.ts.map +1 -0
- package/dist/actions/name/get-canonical-resource/index.js +20 -0
- package/dist/actions/name/get-canonical-resource/index.js.map +1 -0
- package/dist/actions/name/get-expiry/index.d.ts +15 -0
- package/dist/actions/name/get-expiry/index.d.ts.map +1 -0
- package/dist/actions/name/get-expiry/index.js +34 -0
- package/dist/actions/name/get-expiry/index.js.map +1 -0
- package/dist/actions/name/get-expiry/route.js +131 -0
- package/dist/actions/name/get-expiry/route.js.map +1 -0
- package/dist/actions/name/get-expiry/types.d.ts +25 -0
- package/dist/actions/name/get-expiry/types.d.ts.map +1 -0
- package/dist/actions/name/get-expiry/types.js +22 -0
- package/dist/actions/name/get-expiry/types.js.map +1 -0
- package/dist/actions/name/get-expiry/v1.js +49 -0
- package/dist/actions/name/get-expiry/v1.js.map +1 -0
- package/dist/actions/name/get-expiry/v2.js +60 -0
- package/dist/actions/name/get-expiry/v2.js.map +1 -0
- package/dist/actions/name/get-manager/index.d.ts +10 -0
- package/dist/actions/name/get-manager/index.d.ts.map +1 -0
- package/dist/actions/name/get-manager/index.js +21 -0
- package/dist/actions/name/get-manager/index.js.map +1 -0
- package/dist/actions/name/get-name-state/index.d.ts +116 -0
- package/dist/actions/name/get-name-state/index.d.ts.map +1 -0
- package/dist/actions/name/get-name-state/index.js +104 -0
- package/dist/actions/name/get-name-state/index.js.map +1 -0
- package/dist/actions/name/get-name-state/types.d.ts +240 -0
- package/dist/actions/name/get-name-state/types.d.ts.map +1 -0
- package/dist/actions/name/get-name-state/types.js +83 -0
- package/dist/actions/name/get-name-state/types.js.map +1 -0
- package/dist/actions/name/get-name-status/index.d.ts +8 -0
- package/dist/actions/name/get-name-status/index.d.ts.map +1 -0
- package/dist/actions/name/get-name-status/index.js +41 -0
- package/dist/actions/name/get-name-status/index.js.map +1 -0
- package/dist/actions/name/get-owner/index.d.ts +14 -0
- package/dist/actions/name/get-owner/index.d.ts.map +1 -0
- package/dist/actions/name/get-owner/index.js +34 -0
- package/dist/actions/name/get-owner/index.js.map +1 -0
- package/dist/actions/name/get-owner/route.js +105 -0
- package/dist/actions/name/get-owner/route.js.map +1 -0
- package/dist/actions/name/get-owner/types.d.ts +25 -0
- package/dist/actions/name/get-owner/types.d.ts.map +1 -0
- package/dist/actions/name/get-owner/types.js +22 -0
- package/dist/actions/name/get-owner/types.js.map +1 -0
- package/dist/actions/name/get-owner/v1.js +124 -0
- package/dist/actions/name/get-owner/v1.js.map +1 -0
- package/dist/actions/name/get-owner/v2.js +28 -0
- package/dist/actions/name/get-owner/v2.js.map +1 -0
- package/dist/actions/name/get-protocol/index.d.ts +10 -0
- package/dist/actions/name/get-protocol/index.d.ts.map +1 -0
- package/dist/actions/name/get-protocol/index.js +16 -0
- package/dist/actions/name/get-protocol/index.js.map +1 -0
- package/dist/actions/name/get-registrant/index.d.ts +10 -0
- package/dist/actions/name/get-registrant/index.d.ts.map +1 -0
- package/dist/actions/name/get-registrant/index.js +37 -0
- package/dist/actions/name/get-registrant/index.js.map +1 -0
- package/dist/actions/name/get-registry/index.d.ts +10 -0
- package/dist/actions/name/get-registry/index.d.ts.map +1 -0
- package/dist/actions/name/get-registry/index.js +20 -0
- package/dist/actions/name/get-registry/index.js.map +1 -0
- package/dist/actions/name/get-token-id/index.d.ts +9 -0
- package/dist/actions/name/get-token-id/index.d.ts.map +1 -0
- package/dist/actions/name/get-token-id/index.js +42 -0
- package/dist/actions/name/get-token-id/index.js.map +1 -0
- package/dist/actions/name/index.d.ts +19 -0
- package/dist/actions/name/is-available/index.d.ts +8 -0
- package/dist/actions/name/is-available/index.d.ts.map +1 -0
- package/dist/actions/name/is-available/index.js +46 -0
- package/dist/actions/name/is-available/index.js.map +1 -0
- package/dist/actions/name/is-migrated/index.d.ts +8 -0
- package/dist/actions/name/is-migrated/index.d.ts.map +1 -0
- package/dist/actions/name/is-migrated/index.js +28 -0
- package/dist/actions/name/is-migrated/index.js.map +1 -0
- package/dist/actions/name/is-renewable/index.d.ts +8 -0
- package/dist/actions/name/is-renewable/index.d.ts.map +1 -0
- package/dist/actions/name/is-renewable/index.js +44 -0
- package/dist/actions/name/is-renewable/index.js.map +1 -0
- package/dist/actions/name/is-reserved/index.d.ts +8 -0
- package/dist/actions/name/is-reserved/index.d.ts.map +1 -0
- package/dist/actions/name/is-reserved/index.js +16 -0
- package/dist/actions/name/is-reserved/index.js.map +1 -0
- package/dist/actions/name/is-wrapped/index.d.ts +8 -0
- package/dist/actions/name/is-wrapped/index.d.ts.map +1 -0
- package/dist/actions/name/is-wrapped/index.js +48 -0
- package/dist/actions/name/is-wrapped/index.js.map +1 -0
- package/dist/actions/ownership/address.js +25 -0
- package/dist/actions/ownership/address.js.map +1 -0
- package/dist/actions/ownership/authorization.js +25 -0
- package/dist/actions/ownership/authorization.js.map +1 -0
- package/dist/actions/ownership/get-ttl/index.d.ts +9 -0
- package/dist/actions/ownership/get-ttl/index.d.ts.map +1 -0
- package/dist/actions/ownership/get-ttl/index.js +38 -0
- package/dist/actions/ownership/get-ttl/index.js.map +1 -0
- package/dist/actions/ownership/index.d.ts +9 -0
- package/dist/actions/ownership/reclaim-name/index.d.ts +9 -0
- package/dist/actions/ownership/reclaim-name/index.d.ts.map +1 -0
- package/dist/actions/ownership/reclaim-name/index.js +40 -0
- package/dist/actions/ownership/reclaim-name/index.js.map +1 -0
- package/dist/actions/ownership/registrar-target.js +26 -0
- package/dist/actions/ownership/registrar-target.js.map +1 -0
- package/dist/actions/ownership/set-manager/index.d.ts +9 -0
- package/dist/actions/ownership/set-manager/index.d.ts.map +1 -0
- package/dist/actions/ownership/set-manager/index.js +49 -0
- package/dist/actions/ownership/set-manager/index.js.map +1 -0
- package/dist/actions/ownership/set-ttl/index.d.ts +9 -0
- package/dist/actions/ownership/set-ttl/index.d.ts.map +1 -0
- package/dist/actions/ownership/set-ttl/index.js +52 -0
- package/dist/actions/ownership/set-ttl/index.js.map +1 -0
- package/dist/actions/ownership/transfer-name/index.d.ts +10 -0
- package/dist/actions/ownership/transfer-name/index.d.ts.map +1 -0
- package/dist/actions/ownership/transfer-name/index.js +111 -0
- package/dist/actions/ownership/transfer-name/index.js.map +1 -0
- package/dist/actions/ownership/transfer-registrant/index.d.ts +9 -0
- package/dist/actions/ownership/transfer-registrant/index.d.ts.map +1 -0
- package/dist/actions/ownership/transfer-registrant/index.js +44 -0
- package/dist/actions/ownership/transfer-registrant/index.js.map +1 -0
- package/dist/actions/ownership/transfer-token.js +51 -0
- package/dist/actions/ownership/transfer-token.js.map +1 -0
- package/dist/actions/ownership/types.d.ts +58 -0
- package/dist/actions/ownership/types.d.ts.map +1 -0
- package/dist/actions/permissions/address.js +16 -0
- package/dist/actions/permissions/address.js.map +1 -0
- package/dist/actions/permissions/index.d.ts +13 -0
- package/dist/actions/permissions/name-approval/index.d.ts +10 -0
- package/dist/actions/permissions/name-approval/index.d.ts.map +1 -0
- package/dist/actions/permissions/name-approval/index.js +52 -0
- package/dist/actions/permissions/name-approval/index.js.map +1 -0
- package/dist/actions/permissions/name-approval/types.d.ts +19 -0
- package/dist/actions/permissions/name-approval/types.d.ts.map +1 -0
- package/dist/actions/permissions/operator-approval/index.d.ts +9 -0
- package/dist/actions/permissions/operator-approval/index.d.ts.map +1 -0
- package/dist/actions/permissions/operator-approval/index.js +48 -0
- package/dist/actions/permissions/operator-approval/index.js.map +1 -0
- package/dist/actions/permissions/operator-approval/types.d.ts +16 -0
- package/dist/actions/permissions/operator-approval/types.d.ts.map +1 -0
- package/dist/actions/permissions/registry-roles/index.d.ts +10 -0
- package/dist/actions/permissions/registry-roles/index.d.ts.map +1 -0
- package/dist/actions/permissions/registry-roles/index.js +51 -0
- package/dist/actions/permissions/registry-roles/index.js.map +1 -0
- package/dist/actions/permissions/registry-roles/types.d.ts +19 -0
- package/dist/actions/permissions/registry-roles/types.d.ts.map +1 -0
- package/dist/actions/permissions/resolver-delegate-approval/index.d.ts +9 -0
- package/dist/actions/permissions/resolver-delegate-approval/index.d.ts.map +1 -0
- package/dist/actions/permissions/resolver-delegate-approval/index.js +53 -0
- package/dist/actions/permissions/resolver-delegate-approval/index.js.map +1 -0
- package/dist/actions/permissions/resolver-delegate-approval/types.d.ts +14 -0
- package/dist/actions/permissions/resolver-delegate-approval/types.d.ts.map +1 -0
- package/dist/actions/permissions/resolver-roles/index.d.ts +12 -0
- package/dist/actions/permissions/resolver-roles/index.d.ts.map +1 -0
- package/dist/actions/permissions/resolver-roles/index.js +125 -0
- package/dist/actions/permissions/resolver-roles/index.js.map +1 -0
- package/dist/actions/permissions/resolver-roles/types.d.ts +34 -0
- package/dist/actions/permissions/resolver-roles/types.d.ts.map +1 -0
- package/dist/actions/permissions/roles.js +13 -0
- package/dist/actions/permissions/roles.js.map +1 -0
- package/dist/actions/permissions/set-record-permissions/index.d.ts +9 -0
- package/dist/actions/permissions/set-record-permissions/index.d.ts.map +1 -0
- package/dist/actions/permissions/set-record-permissions/index.js +122 -0
- package/dist/actions/permissions/set-record-permissions/index.js.map +1 -0
- package/dist/actions/permissions/set-record-permissions/types.d.ts +48 -0
- package/dist/actions/permissions/set-record-permissions/types.d.ts.map +1 -0
- package/dist/actions/records/clear-records/index.d.ts +9 -0
- package/dist/actions/records/clear-records/index.d.ts.map +1 -0
- package/dist/actions/records/clear-records/index.js +27 -0
- package/dist/actions/records/clear-records/index.js.map +1 -0
- package/dist/actions/records/clear-records/types.d.ts +10 -0
- package/dist/actions/records/clear-records/types.d.ts.map +1 -0
- package/dist/actions/records/get-abi/index.d.ts +20 -0
- package/dist/actions/records/get-abi/index.d.ts.map +1 -0
- package/dist/actions/records/get-abi/index.js +23 -0
- package/dist/actions/records/get-abi/index.js.map +1 -0
- package/dist/actions/records/get-abi/resolve.js +116 -0
- package/dist/actions/records/get-abi/resolve.js.map +1 -0
- package/dist/actions/records/get-abi/types.d.ts +30 -0
- package/dist/actions/records/get-abi/types.d.ts.map +1 -0
- package/dist/actions/records/get-abi/types.js +32 -0
- package/dist/actions/records/get-abi/types.js.map +1 -0
- package/dist/actions/records/get-address/index.d.ts +25 -0
- package/dist/actions/records/get-address/index.d.ts.map +1 -0
- package/dist/actions/records/get-address/index.js +31 -0
- package/dist/actions/records/get-address/index.js.map +1 -0
- package/dist/actions/records/get-address/resolve.js +107 -0
- package/dist/actions/records/get-address/resolve.js.map +1 -0
- package/dist/actions/records/get-address/types.d.ts +30 -0
- package/dist/actions/records/get-address/types.d.ts.map +1 -0
- package/dist/actions/records/get-address/types.js +20 -0
- package/dist/actions/records/get-address/types.js.map +1 -0
- package/dist/actions/records/get-avatar/index.d.ts +16 -0
- package/dist/actions/records/get-avatar/index.d.ts.map +1 -0
- package/dist/actions/records/get-avatar/index.js +20 -0
- package/dist/actions/records/get-avatar/index.js.map +1 -0
- package/dist/actions/records/get-avatar/resolve.js +39 -0
- package/dist/actions/records/get-avatar/resolve.js.map +1 -0
- package/dist/actions/records/get-avatar/types.d.ts +27 -0
- package/dist/actions/records/get-avatar/types.d.ts.map +1 -0
- package/dist/actions/records/get-avatar/types.js +16 -0
- package/dist/actions/records/get-avatar/types.js.map +1 -0
- package/dist/actions/records/get-content-hash/index.d.ts +16 -0
- package/dist/actions/records/get-content-hash/index.d.ts.map +1 -0
- package/dist/actions/records/get-content-hash/index.js +17 -0
- package/dist/actions/records/get-content-hash/index.js.map +1 -0
- package/dist/actions/records/get-content-hash/resolve.js +69 -0
- package/dist/actions/records/get-content-hash/resolve.js.map +1 -0
- package/dist/actions/records/get-content-hash/types.d.ts +24 -0
- package/dist/actions/records/get-content-hash/types.d.ts.map +1 -0
- package/dist/actions/records/get-content-hash/types.js +19 -0
- package/dist/actions/records/get-content-hash/types.js.map +1 -0
- package/dist/actions/records/get-data/index.d.ts +11 -0
- package/dist/actions/records/get-data/index.d.ts.map +1 -0
- package/dist/actions/records/get-data/index.js +17 -0
- package/dist/actions/records/get-data/index.js.map +1 -0
- package/dist/actions/records/get-data/resolve.js +57 -0
- package/dist/actions/records/get-data/resolve.js.map +1 -0
- package/dist/actions/records/get-data/types.d.ts +20 -0
- package/dist/actions/records/get-data/types.d.ts.map +1 -0
- package/dist/actions/records/get-data/types.js +12 -0
- package/dist/actions/records/get-data/types.js.map +1 -0
- package/dist/actions/records/get-interface/index.d.ts +11 -0
- package/dist/actions/records/get-interface/index.d.ts.map +1 -0
- package/dist/actions/records/get-interface/index.js +17 -0
- package/dist/actions/records/get-interface/index.js.map +1 -0
- package/dist/actions/records/get-interface/resolve.js +66 -0
- package/dist/actions/records/get-interface/resolve.js.map +1 -0
- package/dist/actions/records/get-interface/types.d.ts +20 -0
- package/dist/actions/records/get-interface/types.d.ts.map +1 -0
- package/dist/actions/records/get-interface/types.js +13 -0
- package/dist/actions/records/get-interface/types.js.map +1 -0
- package/dist/actions/records/get-name/index.d.ts +10 -0
- package/dist/actions/records/get-name/index.d.ts.map +1 -0
- package/dist/actions/records/get-name/index.js +17 -0
- package/dist/actions/records/get-name/index.js.map +1 -0
- package/dist/actions/records/get-name/resolve.js +47 -0
- package/dist/actions/records/get-name/resolve.js.map +1 -0
- package/dist/actions/records/get-name/types.d.ts +18 -0
- package/dist/actions/records/get-name/types.d.ts.map +1 -0
- package/dist/actions/records/get-name/types.js +8 -0
- package/dist/actions/records/get-name/types.js.map +1 -0
- package/dist/actions/records/get-pubkey/index.d.ts +11 -0
- package/dist/actions/records/get-pubkey/index.d.ts.map +1 -0
- package/dist/actions/records/get-pubkey/index.js +17 -0
- package/dist/actions/records/get-pubkey/index.js.map +1 -0
- package/dist/actions/records/get-pubkey/resolve.js +60 -0
- package/dist/actions/records/get-pubkey/resolve.js.map +1 -0
- package/dist/actions/records/get-pubkey/types.d.ts +19 -0
- package/dist/actions/records/get-pubkey/types.d.ts.map +1 -0
- package/dist/actions/records/get-pubkey/types.js +12 -0
- package/dist/actions/records/get-pubkey/types.js.map +1 -0
- package/dist/actions/records/get-records/index.d.ts +6 -0
- package/dist/actions/records/get-records/index.d.ts.map +1 -0
- package/dist/actions/records/get-records/index.js +16 -0
- package/dist/actions/records/get-records/index.js.map +1 -0
- package/dist/actions/records/get-records/resolve.js +562 -0
- package/dist/actions/records/get-records/resolve.js.map +1 -0
- package/dist/actions/records/get-records/types.d.ts +54 -0
- package/dist/actions/records/get-records/types.d.ts.map +1 -0
- package/dist/actions/records/get-text/index.d.ts +15 -0
- package/dist/actions/records/get-text/index.d.ts.map +1 -0
- package/dist/actions/records/get-text/index.js +31 -0
- package/dist/actions/records/get-text/index.js.map +1 -0
- package/dist/actions/records/get-text/resolve.js +72 -0
- package/dist/actions/records/get-text/resolve.js.map +1 -0
- package/dist/actions/records/get-text/types.d.ts +25 -0
- package/dist/actions/records/get-text/types.d.ts.map +1 -0
- package/dist/actions/records/get-text/types.js +11 -0
- package/dist/actions/records/get-text/types.js.map +1 -0
- package/dist/actions/records/index.d.ts +47 -0
- package/dist/actions/records/set-abi/index.d.ts +9 -0
- package/dist/actions/records/set-abi/index.d.ts.map +1 -0
- package/dist/actions/records/set-abi/index.js +57 -0
- package/dist/actions/records/set-abi/index.js.map +1 -0
- package/dist/actions/records/set-abi/types.d.ts +17 -0
- package/dist/actions/records/set-abi/types.d.ts.map +1 -0
- package/dist/actions/records/set-address/index.d.ts +10 -0
- package/dist/actions/records/set-address/index.d.ts.map +1 -0
- package/dist/actions/records/set-address/index.js +63 -0
- package/dist/actions/records/set-address/index.js.map +1 -0
- package/dist/actions/records/set-address/types.d.ts +22 -0
- package/dist/actions/records/set-address/types.d.ts.map +1 -0
- package/dist/actions/records/set-alias/index.d.ts +9 -0
- package/dist/actions/records/set-alias/index.d.ts.map +1 -0
- package/dist/actions/records/set-alias/index.js +32 -0
- package/dist/actions/records/set-alias/index.js.map +1 -0
- package/dist/actions/records/set-alias/types.d.ts +11 -0
- package/dist/actions/records/set-alias/types.d.ts.map +1 -0
- package/dist/actions/records/set-avatar/index.d.ts +10 -0
- package/dist/actions/records/set-avatar/index.d.ts.map +1 -0
- package/dist/actions/records/set-avatar/index.js +43 -0
- package/dist/actions/records/set-avatar/index.js.map +1 -0
- package/dist/actions/records/set-avatar/types.d.ts +16 -0
- package/dist/actions/records/set-avatar/types.d.ts.map +1 -0
- package/dist/actions/records/set-content-hash/index.d.ts +9 -0
- package/dist/actions/records/set-content-hash/index.d.ts.map +1 -0
- package/dist/actions/records/set-content-hash/index.js +32 -0
- package/dist/actions/records/set-content-hash/index.js.map +1 -0
- package/dist/actions/records/set-content-hash/types.d.ts +13 -0
- package/dist/actions/records/set-content-hash/types.d.ts.map +1 -0
- package/dist/actions/records/set-data/index.d.ts +9 -0
- package/dist/actions/records/set-data/index.d.ts.map +1 -0
- package/dist/actions/records/set-data/index.js +42 -0
- package/dist/actions/records/set-data/index.js.map +1 -0
- package/dist/actions/records/set-data/types.d.ts +13 -0
- package/dist/actions/records/set-data/types.d.ts.map +1 -0
- package/dist/actions/records/set-interface/index.d.ts +9 -0
- package/dist/actions/records/set-interface/index.d.ts.map +1 -0
- package/dist/actions/records/set-interface/index.js +50 -0
- package/dist/actions/records/set-interface/index.js.map +1 -0
- package/dist/actions/records/set-interface/types.d.ts +12 -0
- package/dist/actions/records/set-interface/types.d.ts.map +1 -0
- package/dist/actions/records/set-name/index.d.ts +9 -0
- package/dist/actions/records/set-name/index.d.ts.map +1 -0
- package/dist/actions/records/set-name/index.js +31 -0
- package/dist/actions/records/set-name/index.js.map +1 -0
- package/dist/actions/records/set-name/types.d.ts +11 -0
- package/dist/actions/records/set-name/types.d.ts.map +1 -0
- package/dist/actions/records/set-pubkey/index.d.ts +9 -0
- package/dist/actions/records/set-pubkey/index.d.ts.map +1 -0
- package/dist/actions/records/set-pubkey/index.js +39 -0
- package/dist/actions/records/set-pubkey/index.js.map +1 -0
- package/dist/actions/records/set-pubkey/types.d.ts +13 -0
- package/dist/actions/records/set-pubkey/types.d.ts.map +1 -0
- package/dist/actions/records/set-records/index.d.ts +8 -0
- package/dist/actions/records/set-records/index.d.ts.map +1 -0
- package/dist/actions/records/set-records/index.js +177 -0
- package/dist/actions/records/set-records/index.js.map +1 -0
- package/dist/actions/records/set-records/types.d.ts +70 -0
- package/dist/actions/records/set-records/types.d.ts.map +1 -0
- package/dist/actions/records/set-text/index.d.ts +9 -0
- package/dist/actions/records/set-text/index.d.ts.map +1 -0
- package/dist/actions/records/set-text/index.js +34 -0
- package/dist/actions/records/set-text/index.js.map +1 -0
- package/dist/actions/records/set-text/types.d.ts +12 -0
- package/dist/actions/records/set-text/types.d.ts.map +1 -0
- package/dist/actions/records/set-texts/index.d.ts +9 -0
- package/dist/actions/records/set-texts/index.d.ts.map +1 -0
- package/dist/actions/records/set-texts/index.js +41 -0
- package/dist/actions/records/set-texts/index.js.map +1 -0
- package/dist/actions/records/set-texts/types.d.ts +15 -0
- package/dist/actions/records/set-texts/types.d.ts.map +1 -0
- package/dist/actions/registration/get-commitment-status/index.d.ts +36 -0
- package/dist/actions/registration/get-commitment-status/index.d.ts.map +1 -0
- package/dist/actions/registration/get-commitment-status/index.js +66 -0
- package/dist/actions/registration/get-commitment-status/index.js.map +1 -0
- package/dist/actions/registration/get-registration-parameters/index.d.ts +33 -0
- package/dist/actions/registration/get-registration-parameters/index.d.ts.map +1 -0
- package/dist/actions/registration/get-registration-parameters/index.js +96 -0
- package/dist/actions/registration/get-registration-parameters/index.js.map +1 -0
- package/dist/actions/registration/get-registration-plan/index.d.ts +113 -0
- package/dist/actions/registration/get-registration-plan/index.d.ts.map +1 -0
- package/dist/actions/registration/get-registration-plan/index.js +47 -0
- package/dist/actions/registration/get-registration-plan/index.js.map +1 -0
- package/dist/actions/registration/get-registration-price/index.d.ts +41 -0
- package/dist/actions/registration/get-registration-price/index.d.ts.map +1 -0
- package/dist/actions/registration/get-registration-price/index.js +98 -0
- package/dist/actions/registration/get-registration-price/index.js.map +1 -0
- package/dist/actions/registration/get-renewal-price/index.d.ts +40 -0
- package/dist/actions/registration/get-renewal-price/index.d.ts.map +1 -0
- package/dist/actions/registration/get-renewal-price/index.js +99 -0
- package/dist/actions/registration/get-renewal-price/index.js.map +1 -0
- package/dist/actions/registration/index.d.ts +15 -0
- package/dist/actions/registration/is-payment-token-supported/index.d.ts +28 -0
- package/dist/actions/registration/is-payment-token-supported/index.d.ts.map +1 -0
- package/dist/actions/registration/is-payment-token-supported/index.js +35 -0
- package/dist/actions/registration/is-payment-token-supported/index.js.map +1 -0
- package/dist/actions/registration/make-registration-commitment/index.d.ts +13 -0
- package/dist/actions/registration/make-registration-commitment/index.d.ts.map +1 -0
- package/dist/actions/registration/make-registration-commitment/index.js +70 -0
- package/dist/actions/registration/make-registration-commitment/index.js.map +1 -0
- package/dist/actions/registration/mutation.d.ts +11 -0
- package/dist/actions/registration/mutation.d.ts.map +1 -0
- package/dist/actions/registration/mutation.js +162 -0
- package/dist/actions/registration/mutation.js.map +1 -0
- package/dist/actions/registration/register-name/index.d.ts +9 -0
- package/dist/actions/registration/register-name/index.d.ts.map +1 -0
- package/dist/actions/registration/register-name/index.js +252 -0
- package/dist/actions/registration/register-name/index.js.map +1 -0
- package/dist/actions/registration/register-names/index.d.ts +9 -0
- package/dist/actions/registration/register-names/index.d.ts.map +1 -0
- package/dist/actions/registration/register-names/index.js +36 -0
- package/dist/actions/registration/register-names/index.js.map +1 -0
- package/dist/actions/registration/renew-name/index.d.ts +6 -0
- package/dist/actions/registration/renew-name/index.d.ts.map +1 -0
- package/dist/actions/registration/renew-name/index.js +139 -0
- package/dist/actions/registration/renew-name/index.js.map +1 -0
- package/dist/actions/registration/renew-names/index.d.ts +9 -0
- package/dist/actions/registration/renew-names/index.d.ts.map +1 -0
- package/dist/actions/registration/renew-names/index.js +207 -0
- package/dist/actions/registration/renew-names/index.js.map +1 -0
- package/dist/actions/registration/renewal-mutation.d.ts +10 -0
- package/dist/actions/registration/renewal-mutation.d.ts.map +1 -0
- package/dist/actions/registration/renewal-mutation.js +220 -0
- package/dist/actions/registration/renewal-mutation.js.map +1 -0
- package/dist/actions/registration/types.d.ts +418 -0
- package/dist/actions/registration/types.d.ts.map +1 -0
- package/dist/actions/registration/types.js +185 -0
- package/dist/actions/registration/types.js.map +1 -0
- package/dist/actions/resolution/create-resolver/index.d.ts +16 -0
- package/dist/actions/resolution/create-resolver/index.d.ts.map +1 -0
- package/dist/actions/resolution/create-resolver/index.js +77 -0
- package/dist/actions/resolution/create-resolver/index.js.map +1 -0
- package/dist/actions/resolution/create-resolver/prepare.d.ts +9 -0
- package/dist/actions/resolution/create-resolver/prepare.d.ts.map +1 -0
- package/dist/actions/resolution/create-resolver/prepare.js +69 -0
- package/dist/actions/resolution/create-resolver/prepare.js.map +1 -0
- package/dist/actions/resolution/create-resolver/types.d.ts +28 -0
- package/dist/actions/resolution/create-resolver/types.d.ts.map +1 -0
- package/dist/actions/resolution/get-alias/index.d.ts +19 -0
- package/dist/actions/resolution/get-alias/index.d.ts.map +1 -0
- package/dist/actions/resolution/get-alias/index.js +56 -0
- package/dist/actions/resolution/get-alias/index.js.map +1 -0
- package/dist/actions/resolution/get-alias/types.d.ts +25 -0
- package/dist/actions/resolution/get-alias/types.d.ts.map +1 -0
- package/dist/actions/resolution/get-alias/types.js +22 -0
- package/dist/actions/resolution/get-alias/types.js.map +1 -0
- package/dist/actions/resolution/get-or-create-resolver/index.d.ts +9 -0
- package/dist/actions/resolution/get-or-create-resolver/index.d.ts.map +1 -0
- package/dist/actions/resolution/get-or-create-resolver/index.js +51 -0
- package/dist/actions/resolution/get-or-create-resolver/index.js.map +1 -0
- package/dist/actions/resolution/get-or-create-resolver/types.d.ts +33 -0
- package/dist/actions/resolution/get-or-create-resolver/types.d.ts.map +1 -0
- package/dist/actions/resolution/get-resolver/find.js +34 -0
- package/dist/actions/resolution/get-resolver/find.js.map +1 -0
- package/dist/actions/resolution/get-resolver/index.d.ts +8 -0
- package/dist/actions/resolution/get-resolver/index.d.ts.map +1 -0
- package/dist/actions/resolution/get-resolver/index.js +16 -0
- package/dist/actions/resolution/get-resolver/index.js.map +1 -0
- package/dist/actions/resolution/get-resolver/types.d.ts +15 -0
- package/dist/actions/resolution/get-resolver/types.d.ts.map +1 -0
- package/dist/actions/resolution/get-resolver-version/index.d.ts +20 -0
- package/dist/actions/resolution/get-resolver-version/index.d.ts.map +1 -0
- package/dist/actions/resolution/get-resolver-version/index.js +45 -0
- package/dist/actions/resolution/get-resolver-version/index.js.map +1 -0
- package/dist/actions/resolution/get-resolver-version/types.d.ts +23 -0
- package/dist/actions/resolution/get-resolver-version/types.d.ts.map +1 -0
- package/dist/actions/resolution/get-resolver-version/types.js +20 -0
- package/dist/actions/resolution/get-resolver-version/types.js.map +1 -0
- package/dist/actions/resolution/index.d.ts +21 -0
- package/dist/actions/resolution/resolve/execute.js +66 -0
- package/dist/actions/resolution/resolve/execute.js.map +1 -0
- package/dist/actions/resolution/resolve/index.d.ts +15 -0
- package/dist/actions/resolution/resolve/index.d.ts.map +1 -0
- package/dist/actions/resolution/resolve/index.js +28 -0
- package/dist/actions/resolution/resolve/index.js.map +1 -0
- package/dist/actions/resolution/resolve/types.d.ts +33 -0
- package/dist/actions/resolution/resolve/types.d.ts.map +1 -0
- package/dist/actions/resolution/resolve/types.js +17 -0
- package/dist/actions/resolution/resolve/types.js.map +1 -0
- package/dist/actions/resolution/resolve-batch/index.d.ts +10 -0
- package/dist/actions/resolution/resolve-batch/index.d.ts.map +1 -0
- package/dist/actions/resolution/resolve-batch/index.js +15 -0
- package/dist/actions/resolution/resolve-batch/index.js.map +1 -0
- package/dist/actions/resolution/resolve-batch/types.d.ts +22 -0
- package/dist/actions/resolution/resolve-batch/types.d.ts.map +1 -0
- package/dist/actions/resolution/set-resolver/index.d.ts +9 -0
- package/dist/actions/resolution/set-resolver/index.d.ts.map +1 -0
- package/dist/actions/resolution/set-resolver/index.js +85 -0
- package/dist/actions/resolution/set-resolver/index.js.map +1 -0
- package/dist/actions/resolution/set-resolver/types.d.ts +11 -0
- package/dist/actions/resolution/set-resolver/types.d.ts.map +1 -0
- package/dist/actions/resolution/set-resolver-and-records/index.d.ts +9 -0
- package/dist/actions/resolution/set-resolver-and-records/index.d.ts.map +1 -0
- package/dist/actions/resolution/set-resolver-and-records/index.js +160 -0
- package/dist/actions/resolution/set-resolver-and-records/index.js.map +1 -0
- package/dist/actions/resolution/set-resolver-and-records/types.d.ts +33 -0
- package/dist/actions/resolution/set-resolver-and-records/types.d.ts.map +1 -0
- package/dist/actions/resolution/upgrade-resolver/index.d.ts +14 -0
- package/dist/actions/resolution/upgrade-resolver/index.d.ts.map +1 -0
- package/dist/actions/resolution/upgrade-resolver/index.js +152 -0
- package/dist/actions/resolution/upgrade-resolver/index.js.map +1 -0
- package/dist/actions/resolution/upgrade-resolver/types.d.ts +33 -0
- package/dist/actions/resolution/upgrade-resolver/types.d.ts.map +1 -0
- package/dist/actions/reverse/authorization.js +70 -0
- package/dist/actions/reverse/authorization.js.map +1 -0
- package/dist/actions/reverse/clear-primary-name/index.d.ts +9 -0
- package/dist/actions/reverse/clear-primary-name/index.d.ts.map +1 -0
- package/dist/actions/reverse/clear-primary-name/index.js +8 -0
- package/dist/actions/reverse/clear-primary-name/index.js.map +1 -0
- package/dist/actions/reverse/get-primary-name/index.d.ts +11 -0
- package/dist/actions/reverse/get-primary-name/index.d.ts.map +1 -0
- package/dist/actions/reverse/get-primary-name/index.js +51 -0
- package/dist/actions/reverse/get-primary-name/index.js.map +1 -0
- package/dist/actions/reverse/get-primary-name/types.d.ts +20 -0
- package/dist/actions/reverse/get-primary-name/types.d.ts.map +1 -0
- package/dist/actions/reverse/get-primary-name/types.js +12 -0
- package/dist/actions/reverse/get-primary-name/types.js.map +1 -0
- package/dist/actions/reverse/index.d.ts +8 -0
- package/dist/actions/reverse/mutation.js +89 -0
- package/dist/actions/reverse/mutation.js.map +1 -0
- package/dist/actions/reverse/set-contract-primary-name/index.d.ts +9 -0
- package/dist/actions/reverse/set-contract-primary-name/index.d.ts.map +1 -0
- package/dist/actions/reverse/set-contract-primary-name/index.js +13 -0
- package/dist/actions/reverse/set-contract-primary-name/index.js.map +1 -0
- package/dist/actions/reverse/set-primary-name/index.d.ts +9 -0
- package/dist/actions/reverse/set-primary-name/index.d.ts.map +1 -0
- package/dist/actions/reverse/set-primary-name/index.js +11 -0
- package/dist/actions/reverse/set-primary-name/index.js.map +1 -0
- package/dist/actions/reverse/set-primary-name-for-address/index.d.ts +9 -0
- package/dist/actions/reverse/set-primary-name-for-address/index.d.ts.map +1 -0
- package/dist/actions/reverse/set-primary-name-for-address/index.js +12 -0
- package/dist/actions/reverse/set-primary-name-for-address/index.js.map +1 -0
- package/dist/actions/reverse/types.d.ts +18 -0
- package/dist/actions/reverse/types.d.ts.map +1 -0
- package/dist/actions/subnames/create-subname/index.d.ts +9 -0
- package/dist/actions/subnames/create-subname/index.d.ts.map +1 -0
- package/dist/actions/subnames/create-subname/index.js +165 -0
- package/dist/actions/subnames/create-subname/index.js.map +1 -0
- package/dist/actions/subnames/index.d.ts +6 -0
- package/dist/actions/subnames/intents.js +148 -0
- package/dist/actions/subnames/intents.js.map +1 -0
- package/dist/actions/subnames/mutation.d.ts +12 -0
- package/dist/actions/subnames/mutation.d.ts.map +1 -0
- package/dist/actions/subnames/mutation.js +214 -0
- package/dist/actions/subnames/mutation.js.map +1 -0
- package/dist/actions/subnames/route.js +105 -0
- package/dist/actions/subnames/route.js.map +1 -0
- package/dist/actions/subnames/set-subname-record/index.d.ts +9 -0
- package/dist/actions/subnames/set-subname-record/index.d.ts.map +1 -0
- package/dist/actions/subnames/set-subname-record/index.js +72 -0
- package/dist/actions/subnames/set-subname-record/index.js.map +1 -0
- package/dist/actions/subnames/transfer-subname/index.d.ts +11 -0
- package/dist/actions/subnames/transfer-subname/index.d.ts.map +1 -0
- package/dist/actions/subnames/transfer-subname/index.js +15 -0
- package/dist/actions/subnames/transfer-subname/index.js.map +1 -0
- package/dist/actions/subnames/types.d.ts +70 -0
- package/dist/actions/subnames/types.d.ts.map +1 -0
- package/dist/actions/wrapping/extend-subname-expiry/index.d.ts +3 -0
- package/dist/actions/wrapping/fuse-mask.d.ts +14 -0
- package/dist/actions/wrapping/fuse-mask.d.ts.map +1 -0
- package/dist/actions/wrapping/fuse-mask.js +36 -0
- package/dist/actions/wrapping/fuse-mask.js.map +1 -0
- package/dist/actions/wrapping/get-fuses/index.d.ts +10 -0
- package/dist/actions/wrapping/get-fuses/index.d.ts.map +1 -0
- package/dist/actions/wrapping/get-fuses/index.js +28 -0
- package/dist/actions/wrapping/get-fuses/index.js.map +1 -0
- package/dist/actions/wrapping/get-wrapper-expiry/index.d.ts +10 -0
- package/dist/actions/wrapping/get-wrapper-expiry/index.d.ts.map +1 -0
- package/dist/actions/wrapping/get-wrapper-expiry/index.js +24 -0
- package/dist/actions/wrapping/get-wrapper-expiry/index.js.map +1 -0
- package/dist/actions/wrapping/index.d.ts +11 -0
- package/dist/actions/wrapping/intents.js +71 -0
- package/dist/actions/wrapping/intents.js.map +1 -0
- package/dist/actions/wrapping/mutation.d.ts +12 -0
- package/dist/actions/wrapping/mutation.d.ts.map +1 -0
- package/dist/actions/wrapping/mutation.js +174 -0
- package/dist/actions/wrapping/mutation.js.map +1 -0
- package/dist/actions/wrapping/route.js +63 -0
- package/dist/actions/wrapping/route.js.map +1 -0
- package/dist/actions/wrapping/set-child-fuses/index.d.ts +3 -0
- package/dist/actions/wrapping/set-fuses/index.d.ts +3 -0
- package/dist/actions/wrapping/types.d.ts +84 -0
- package/dist/actions/wrapping/types.d.ts.map +1 -0
- package/dist/actions/wrapping/unwrap-name/index.d.ts +3 -0
- package/dist/actions/wrapping/wrap-name/index.d.ts +9 -0
- package/dist/actions/wrapping/wrap-name/index.d.ts.map +1 -0
- package/dist/actions/wrapping/wrap-name/index.js +147 -0
- package/dist/actions/wrapping/wrap-name/index.js.map +1 -0
- package/dist/config/config.d.ts +52 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +6 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/create-config.d.ts +6 -0
- package/dist/config/create-config.d.ts.map +1 -0
- package/dist/config/create-config.js +67 -0
- package/dist/config/create-config.js.map +1 -0
- package/dist/config/gateway-options.d.ts +19 -0
- package/dist/config/gateway-options.d.ts.map +1 -0
- package/dist/config/gateway-options.js +37 -0
- package/dist/config/gateway-options.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/network.d.ts +8 -0
- package/dist/config/network.d.ts.map +1 -0
- package/dist/config/network.js +13 -0
- package/dist/config/network.js.map +1 -0
- package/dist/config/read-options.d.ts +13 -0
- package/dist/config/read-options.d.ts.map +1 -0
- package/dist/config/read-options.js +27 -0
- package/dist/config/read-options.js.map +1 -0
- package/dist/config/write-options.d.ts +26 -0
- package/dist/config/write-options.d.ts.map +1 -0
- package/dist/config/write-options.js +37 -0
- package/dist/config/write-options.js.map +1 -0
- package/dist/errors/authorization-error.d.ts +12 -0
- package/dist/errors/authorization-error.d.ts.map +1 -0
- package/dist/errors/authorization-error.js +17 -0
- package/dist/errors/authorization-error.js.map +1 -0
- package/dist/errors/codec-error.d.ts +12 -0
- package/dist/errors/codec-error.d.ts.map +1 -0
- package/dist/errors/codec-error.js +26 -0
- package/dist/errors/codec-error.js.map +1 -0
- package/dist/errors/config-error.d.ts +12 -0
- package/dist/errors/config-error.d.ts.map +1 -0
- package/dist/errors/config-error.js +25 -0
- package/dist/errors/config-error.js.map +1 -0
- package/dist/errors/contract-error.d.ts +18 -0
- package/dist/errors/contract-error.d.ts.map +1 -0
- package/dist/errors/contract-error.js +27 -0
- package/dist/errors/contract-error.js.map +1 -0
- package/dist/errors/dns-import-error.d.ts +12 -0
- package/dist/errors/dns-import-error.d.ts.map +1 -0
- package/dist/errors/dns-import-error.js +18 -0
- package/dist/errors/dns-import-error.js.map +1 -0
- package/dist/errors/gateway-error.d.ts +13 -0
- package/dist/errors/gateway-error.d.ts.map +1 -0
- package/dist/errors/gateway-error.js +17 -0
- package/dist/errors/gateway-error.js.map +1 -0
- package/dist/errors/index.d.ts +16 -0
- package/dist/errors/migration-error.d.ts +12 -0
- package/dist/errors/migration-error.d.ts.map +1 -0
- package/dist/errors/migration-error.js +21 -0
- package/dist/errors/migration-error.js.map +1 -0
- package/dist/errors/name-error.d.ts +12 -0
- package/dist/errors/name-error.d.ts.map +1 -0
- package/dist/errors/name-error.js +12 -0
- package/dist/errors/name-error.js.map +1 -0
- package/dist/errors/registration-error.d.ts +12 -0
- package/dist/errors/registration-error.d.ts.map +1 -0
- package/dist/errors/registration-error.js +22 -0
- package/dist/errors/registration-error.js.map +1 -0
- package/dist/errors/renewal-error.d.ts +12 -0
- package/dist/errors/renewal-error.d.ts.map +1 -0
- package/dist/errors/renewal-error.js +21 -0
- package/dist/errors/renewal-error.js.map +1 -0
- package/dist/errors/reverse-name-error.d.ts +12 -0
- package/dist/errors/reverse-name-error.d.ts.map +1 -0
- package/dist/errors/reverse-name-error.js +12 -0
- package/dist/errors/reverse-name-error.js.map +1 -0
- package/dist/errors/rpc-error.d.ts +13 -0
- package/dist/errors/rpc-error.d.ts.map +1 -0
- package/dist/errors/rpc-error.js +17 -0
- package/dist/errors/rpc-error.js.map +1 -0
- package/dist/errors/transaction-error.d.ts +15 -0
- package/dist/errors/transaction-error.d.ts.map +1 -0
- package/dist/errors/transaction-error.js +21 -0
- package/dist/errors/transaction-error.js.map +1 -0
- package/dist/errors/wallet-error.d.ts +13 -0
- package/dist/errors/wallet-error.d.ts.map +1 -0
- package/dist/errors/wallet-error.js +21 -0
- package/dist/errors/wallet-error.js.map +1 -0
- package/dist/errors/write-plan-error.d.ts +13 -0
- package/dist/errors/write-plan-error.d.ts.map +1 -0
- package/dist/errors/write-plan-error.js +19 -0
- package/dist/errors/write-plan-error.js.map +1 -0
- package/dist/index.d.ts +233 -0
- package/dist/index.js +192 -0
- package/dist/internal/capabilities/interface-support.js +22 -0
- package/dist/internal/capabilities/interface-support.js.map +1 -0
- package/dist/internal/capabilities/registry-permissions.js +40 -0
- package/dist/internal/capabilities/registry-permissions.js.map +1 -0
- package/dist/internal/capabilities/resolver-authorization.js +9 -0
- package/dist/internal/capabilities/resolver-authorization.js.map +1 -0
- package/dist/internal/capabilities/resolver-permissions.js +32 -0
- package/dist/internal/capabilities/resolver-permissions.js.map +1 -0
- package/dist/internal/capabilities/resolver-resource.d.ts +36 -0
- package/dist/internal/capabilities/resolver-resource.d.ts.map +1 -0
- package/dist/internal/capabilities/resolver-resource.js +45 -0
- package/dist/internal/capabilities/resolver-resource.js.map +1 -0
- package/dist/internal/client/ethereum-client.js +35 -0
- package/dist/internal/client/ethereum-client.js.map +1 -0
- package/dist/internal/config/context.js +16 -0
- package/dist/internal/config/context.js.map +1 -0
- package/dist/internal/config/network-profile.js +21 -0
- package/dist/internal/config/network-profile.js.map +1 -0
- package/dist/internal/config/validation.js +37 -0
- package/dist/internal/config/validation.js.map +1 -0
- package/dist/internal/config/wagmi-clients.js +26 -0
- package/dist/internal/config/wagmi-clients.js.map +1 -0
- package/dist/internal/dns/resolve-dns-records.js +45 -0
- package/dist/internal/dns/resolve-dns-records.js.map +1 -0
- package/dist/internal/errors/viem-error.d.ts +3 -0
- package/dist/internal/errors/viem-error.js +88 -0
- package/dist/internal/errors/viem-error.js.map +1 -0
- package/dist/internal/errors/write-error.js +52 -0
- package/dist/internal/errors/write-error.js.map +1 -0
- package/dist/internal/events/contracts.js +70 -0
- package/dist/internal/events/contracts.js.map +1 -0
- package/dist/internal/events/normalize-event.js +139 -0
- package/dist/internal/events/normalize-event.js.map +1 -0
- package/dist/internal/gateway/ccip-request.js +103 -0
- package/dist/internal/gateway/ccip-request.js.map +1 -0
- package/dist/internal/gateway/validate-url.js +19 -0
- package/dist/internal/gateway/validate-url.js.map +1 -0
- package/dist/internal/name/name-route.js +120 -0
- package/dist/internal/name/name-route.js.map +1 -0
- package/dist/internal/read/block-timestamp.js +18 -0
- package/dist/internal/read/block-timestamp.js.map +1 -0
- package/dist/internal/read/contract-read-resolver.d.ts +4 -0
- package/dist/internal/read/contract-read-resolver.js +82 -0
- package/dist/internal/read/contract-read-resolver.js.map +1 -0
- package/dist/internal/read/contract-read.d.ts +4 -0
- package/dist/internal/read/contract-read.js +32 -0
- package/dist/internal/read/contract-read.js.map +1 -0
- package/dist/internal/read/execute-read.js +21 -0
- package/dist/internal/read/execute-read.js.map +1 -0
- package/dist/internal/read/execution-context.d.ts +13 -0
- package/dist/internal/read/execution-context.d.ts.map +1 -0
- package/dist/internal/read/execution-context.js +66 -0
- package/dist/internal/read/execution-context.js.map +1 -0
- package/dist/internal/registration/commitment-status.js +36 -0
- package/dist/internal/registration/commitment-status.js.map +1 -0
- package/dist/internal/registration/payment-token.js +33 -0
- package/dist/internal/registration/payment-token.js.map +1 -0
- package/dist/internal/registration/second-level-eth.js +18 -0
- package/dist/internal/registration/second-level-eth.js.map +1 -0
- package/dist/internal/resolver/resolve-name.js +52 -0
- package/dist/internal/resolver/resolve-name.js.map +1 -0
- package/dist/internal/resolver/resolve-records.js +64 -0
- package/dist/internal/resolver/resolve-records.js.map +1 -0
- package/dist/internal/resolver/reverse-address.js +33 -0
- package/dist/internal/resolver/reverse-address.js.map +1 -0
- package/dist/internal/services/context.js +30 -0
- package/dist/internal/services/context.js.map +1 -0
- package/dist/internal/services/deployment.js +8 -0
- package/dist/internal/services/deployment.js.map +1 -0
- package/dist/internal/services/network.js +8 -0
- package/dist/internal/services/network.js.map +1 -0
- package/dist/internal/services/public-client.js +8 -0
- package/dist/internal/services/public-client.js.map +1 -0
- package/dist/internal/services/wallet-client.js +45 -0
- package/dist/internal/services/wallet-client.js.map +1 -0
- package/dist/internal/sync-function.d.ts +9 -0
- package/dist/internal/sync-function.d.ts.map +1 -0
- package/dist/internal/sync-function.js +20 -0
- package/dist/internal/sync-function.js.map +1 -0
- package/dist/internal/write/confirm-native-batch.js +52 -0
- package/dist/internal/write/confirm-native-batch.js.map +1 -0
- package/dist/internal/write/execute-native-batch.js +39 -0
- package/dist/internal/write/execute-native-batch.js.map +1 -0
- package/dist/internal/write/execute-sequential.js +88 -0
- package/dist/internal/write/execute-sequential.js.map +1 -0
- package/dist/internal/write/prepare-resolver-write.js +50 -0
- package/dist/internal/write/prepare-resolver-write.js.map +1 -0
- package/dist/internal/write/prepare-write-intents.js +49 -0
- package/dist/internal/write/prepare-write-intents.js.map +1 -0
- package/dist/internal/write/redact-sensitive-error.js +12 -0
- package/dist/internal/write/redact-sensitive-error.js.map +1 -0
- package/dist/internal/write/resolver-write-action.js +42 -0
- package/dist/internal/write/resolver-write-action.js.map +1 -0
- package/dist/internal/write/simulate-prepared-calls.js +15 -0
- package/dist/internal/write/simulate-prepared-calls.js.map +1 -0
- package/dist/internal/write/single-write-action.js +24 -0
- package/dist/internal/write/single-write-action.js.map +1 -0
- package/dist/internal/write/write-client.js +104 -0
- package/dist/internal/write/write-client.js.map +1 -0
- package/dist/names/address-record.d.ts +16 -0
- package/dist/names/address-record.d.ts.map +1 -0
- package/dist/names/address-record.js +57 -0
- package/dist/names/address-record.js.map +1 -0
- package/dist/names/analyze.d.ts +20 -0
- package/dist/names/analyze.d.ts.map +1 -0
- package/dist/names/analyze.js +28 -0
- package/dist/names/analyze.js.map +1 -0
- package/dist/names/coin-type.d.ts +14 -0
- package/dist/names/coin-type.d.ts.map +1 -0
- package/dist/names/coin-type.js +52 -0
- package/dist/names/coin-type.js.map +1 -0
- package/dist/names/content-hash.d.ts +15 -0
- package/dist/names/content-hash.d.ts.map +1 -0
- package/dist/names/content-hash.js +54 -0
- package/dist/names/content-hash.js.map +1 -0
- package/dist/names/dns.d.ts +10 -0
- package/dist/names/dns.d.ts.map +1 -0
- package/dist/names/dns.js +66 -0
- package/dist/names/dns.js.map +1 -0
- package/dist/names/hashes.d.ts +8 -0
- package/dist/names/hashes.d.ts.map +1 -0
- package/dist/names/hashes.js +12 -0
- package/dist/names/hashes.js.map +1 -0
- package/dist/names/index.d.ts +8 -0
- package/dist/names/normalize.d.ts +8 -0
- package/dist/names/normalize.d.ts.map +1 -0
- package/dist/names/normalize.js +33 -0
- package/dist/names/normalize.js.map +1 -0
- package/dist/schemas/coin-type.d.ts +7 -0
- package/dist/schemas/coin-type.d.ts.map +1 -0
- package/dist/schemas/coin-type.js +9 -0
- package/dist/schemas/coin-type.js.map +1 -0
- package/dist/schemas/dns.d.ts +7 -0
- package/dist/schemas/dns.d.ts.map +1 -0
- package/dist/schemas/dns.js +24 -0
- package/dist/schemas/dns.js.map +1 -0
- package/dist/schemas/hash.d.ts +11 -0
- package/dist/schemas/hash.d.ts.map +1 -0
- package/dist/schemas/hash.js +11 -0
- package/dist/schemas/hash.js.map +1 -0
- package/dist/schemas/hex.d.ts +7 -0
- package/dist/schemas/hex.d.ts.map +1 -0
- package/dist/schemas/hex.js +8 -0
- package/dist/schemas/hex.js.map +1 -0
- package/dist/schemas/identity.d.ts +18 -0
- package/dist/schemas/identity.d.ts.map +1 -0
- package/dist/schemas/identity.js +25 -0
- package/dist/schemas/identity.js.map +1 -0
- package/dist/schemas/index.d.ts +9 -0
- package/dist/schemas/name.d.ts +9 -0
- package/dist/schemas/name.d.ts.map +1 -0
- package/dist/schemas/name.js +28 -0
- package/dist/schemas/name.js.map +1 -0
- package/dist/schemas/protocol.d.ts +7 -0
- package/dist/schemas/protocol.d.ts.map +1 -0
- package/dist/schemas/protocol.js +8 -0
- package/dist/schemas/protocol.js.map +1 -0
- package/dist/schemas/records.d.ts +20 -0
- package/dist/schemas/records.d.ts.map +1 -0
- package/dist/schemas/records.js +32 -0
- package/dist/schemas/records.js.map +1 -0
- package/dist/testing/create-test-config.d.ts +19 -0
- package/dist/testing/create-test-config.d.ts.map +1 -0
- package/dist/testing/create-test-config.js +37 -0
- package/dist/testing/create-test-config.js.map +1 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.js +3 -0
- package/dist/write/index.d.ts +3 -0
- package/dist/write/types.d.ts +188 -0
- package/dist/write/types.d.ts.map +1 -0
- package/dist/write/types.js +17 -0
- package/dist/write/types.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wagmi-clients.js","names":[],"sources":["../../../src/internal/config/wagmi-clients.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport type { PublicClient } from \"viem\";\nimport type { Config as WagmiConfig } from \"wagmi\";\nimport { getPublicClient, getWalletClient } from \"wagmi/actions\";\n\nimport type { EnsChainId, EnsNetwork } from \"../../config/network.js\";\nimport { ConfigError } from \"../../errors/config-error.js\";\nimport type { WalletClientResolver } from \"../services/wallet-client.js\";\n\nexport const getWagmiPublicClient = (\n wagmiConfig: WagmiConfig,\n network: EnsNetwork,\n chainId: EnsChainId,\n): PublicClient => {\n const publicClient = getPublicClient(wagmiConfig, { chainId });\n\n if (publicClient === undefined) {\n throw new ConfigError({\n code: \"PUBLIC_CLIENT_UNAVAILABLE\",\n message: `The Wagmi config does not provide a public client for ${network} (${chainId})`,\n });\n }\n\n return publicClient;\n};\n\nexport const makeWagmiWalletClientResolver = (\n wagmiConfig: WagmiConfig,\n network: EnsNetwork,\n chainId: EnsChainId,\n): WalletClientResolver =>\n Effect.fn(\"ensforge.resolveWagmiWalletClient\")(function* () {\n return yield* Effect.tryPromise({\n try: () => getWalletClient(wagmiConfig, { chainId }),\n catch: () =>\n new ConfigError({\n code: \"WALLET_CLIENT_UNAVAILABLE\",\n message: `The Wagmi config does not have a connected wallet for ${network} (${chainId})`,\n }),\n });\n });\n"],"mappings":";;;;;AAUA,MAAa,wBACX,aACA,SACA,YACiB;CACjB,MAAM,eAAe,gBAAgB,aAAa,EAAE,QAAQ,CAAC;CAE7D,IAAI,iBAAiB,QACnB,MAAM,IAAI,YAAY;EACpB,MAAM;EACN,SAAS,yDAAyD,QAAQ,IAAI,QAAQ;CACxF,CAAC;CAGH,OAAO;AACT;AAEA,MAAa,iCACX,aACA,SACA,YAEA,OAAO,GAAG,mCAAmC,CAAC,CAAC,aAAa;CAC1D,OAAO,OAAO,OAAO,WAAW;EAC9B,WAAW,gBAAgB,aAAa,EAAE,QAAQ,CAAC;EACnD,aACE,IAAI,YAAY;GACd,MAAM;GACN,SAAS,yDAAyD,QAAQ,IAAI,QAAQ;EACxF,CAAC;CACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ContractError } from "../../errors/contract-error.js";
|
|
2
|
+
import { namehash } from "../../names/hashes.js";
|
|
3
|
+
import { dnsEncodeName } from "../../names/dns.js";
|
|
4
|
+
import { resolveRecords } from "../resolver/resolve-records.js";
|
|
5
|
+
import { Effect } from "effect";
|
|
6
|
+
import { decodeFunctionResult, encodeFunctionData, keccak256 } from "viem";
|
|
7
|
+
import { dnsRecordResolverAbi } from "@ensforge/contracts/resolver-profiles";
|
|
8
|
+
|
|
9
|
+
//#region src/internal/dns/resolve-dns-records.ts
|
|
10
|
+
const resolveDnsRecords = Effect.fn("resolveDnsRecords")(function* (name, queries) {
|
|
11
|
+
const calls = yield* Effect.forEach(queries, (query) => Effect.try({
|
|
12
|
+
try: () => encodeFunctionData({
|
|
13
|
+
abi: dnsRecordResolverAbi,
|
|
14
|
+
functionName: "dnsRecord",
|
|
15
|
+
args: [
|
|
16
|
+
namehash(name),
|
|
17
|
+
keccak256(dnsEncodeName(query.recordName)),
|
|
18
|
+
query.resource
|
|
19
|
+
]
|
|
20
|
+
}),
|
|
21
|
+
catch: (cause) => new ContractError({
|
|
22
|
+
code: "ENCODE_FAILED",
|
|
23
|
+
message: `Unable to encode DNS record ${query.recordName}`,
|
|
24
|
+
cause
|
|
25
|
+
})
|
|
26
|
+
}));
|
|
27
|
+
const encoded = yield* resolveRecords(name, calls);
|
|
28
|
+
if (encoded === null) return null;
|
|
29
|
+
return yield* Effect.forEach(encoded, (value, index) => Effect.try({
|
|
30
|
+
try: () => decodeFunctionResult({
|
|
31
|
+
abi: dnsRecordResolverAbi,
|
|
32
|
+
functionName: "dnsRecord",
|
|
33
|
+
data: value
|
|
34
|
+
}),
|
|
35
|
+
catch: (cause) => new ContractError({
|
|
36
|
+
code: "DECODE_FAILED",
|
|
37
|
+
message: `Unable to decode DNS record ${queries[index]?.recordName ?? index}`,
|
|
38
|
+
cause
|
|
39
|
+
})
|
|
40
|
+
}));
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { resolveDnsRecords };
|
|
45
|
+
//# sourceMappingURL=resolve-dns-records.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-dns-records.js","names":[],"sources":["../../../src/internal/dns/resolve-dns-records.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport { dnsRecordResolverAbi } from \"@ensforge/contracts/resolver-profiles\";\nimport { decodeFunctionResult, encodeFunctionData, keccak256 } from \"viem\";\n\nimport type { DnsRecordQuery } from \"../../actions/dns/types.js\";\nimport { ContractError } from \"../../errors/contract-error.js\";\nimport { dnsEncodeName } from \"../../names/dns.js\";\nimport { namehash } from \"../../names/hashes.js\";\nimport type { NormalizedName } from \"../../schemas/name.js\";\nimport { resolveRecords } from \"../resolver/resolve-records.js\";\n\nexport const resolveDnsRecords = Effect.fn(\"resolveDnsRecords\")(function* (\n name: NormalizedName,\n queries: ReadonlyArray<{ readonly recordName: NormalizedName } & DnsRecordQuery>,\n) {\n const calls = yield* Effect.forEach(queries, (query) =>\n Effect.try({\n try: () =>\n encodeFunctionData({\n abi: dnsRecordResolverAbi,\n functionName: \"dnsRecord\",\n args: [namehash(name), keccak256(dnsEncodeName(query.recordName)), query.resource],\n }),\n catch: (cause) =>\n new ContractError({\n code: \"ENCODE_FAILED\",\n message: `Unable to encode DNS record ${query.recordName}`,\n cause,\n }),\n }),\n );\n const encoded = yield* resolveRecords(name, calls);\n if (encoded === null) return null;\n\n return yield* Effect.forEach(encoded, (value, index) =>\n Effect.try({\n try: () =>\n decodeFunctionResult({\n abi: dnsRecordResolverAbi,\n functionName: \"dnsRecord\",\n data: value,\n }),\n catch: (cause) =>\n new ContractError({\n code: \"DECODE_FAILED\",\n message: `Unable to decode DNS record ${queries[index]?.recordName ?? index}`,\n cause,\n }),\n }),\n );\n});\n"],"mappings":";;;;;;;;;AAYA,MAAa,oBAAoB,OAAO,GAAG,mBAAmB,CAAC,CAAC,WAC9D,MACA,SACA;CACA,MAAM,QAAQ,OAAO,OAAO,QAAQ,UAAU,UAC5C,OAAO,IAAI;EACT,WACE,mBAAmB;GACjB,KAAK;GACL,cAAc;GACd,MAAM;IAAC,SAAS,IAAI;IAAG,UAAU,cAAc,MAAM,UAAU,CAAC;IAAG,MAAM;GAAQ;EACnF,CAAC;EACH,QAAQ,UACN,IAAI,cAAc;GAChB,MAAM;GACN,SAAS,+BAA+B,MAAM;GAC9C;EACF,CAAC;CACL,CAAC,CACH;CACA,MAAM,UAAU,OAAO,eAAe,MAAM,KAAK;CACjD,IAAI,YAAY,MAAM,OAAO;CAE7B,OAAO,OAAO,OAAO,QAAQ,UAAU,OAAO,UAC5C,OAAO,IAAI;EACT,WACE,qBAAqB;GACnB,KAAK;GACL,cAAc;GACd,MAAM;EACR,CAAC;EACH,QAAQ,UACN,IAAI,cAAc;GAChB,MAAM;GACN,SAAS,+BAA+B,QAAQ,MAAM,EAAE,cAAc;GACtE;EACF,CAAC;CACL,CAAC,CACH;AACF,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { RpcError } from "../../errors/rpc-error.js";
|
|
2
|
+
import { ContractError } from "../../errors/contract-error.js";
|
|
3
|
+
import { Predicate } from "effect";
|
|
4
|
+
import { AbiDecodingDataSizeInvalidError, AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, BaseError, ContractFunctionRevertedError, ContractFunctionZeroDataError, HttpRequestError, RawContractError, RpcRequestError, SocketClosedError, TimeoutError, WebSocketRequestError } from "viem";
|
|
5
|
+
|
|
6
|
+
//#region src/internal/errors/viem-error.ts
|
|
7
|
+
const fallbackCodes = {
|
|
8
|
+
encodeFunctionData: "ENCODE_FAILED",
|
|
9
|
+
readContract: "READ_FAILED",
|
|
10
|
+
multicall: "MULTICALL_FAILED",
|
|
11
|
+
simulateContract: "SIMULATION_FAILED",
|
|
12
|
+
estimateGas: "SIMULATION_FAILED",
|
|
13
|
+
writeContract: "WRITE_FAILED"
|
|
14
|
+
};
|
|
15
|
+
const findViemErrorCause = (cause, errorClass) => {
|
|
16
|
+
if (cause instanceof errorClass) return cause;
|
|
17
|
+
if (!(cause instanceof BaseError)) return;
|
|
18
|
+
return cause.walk((error) => error instanceof errorClass) ?? void 0;
|
|
19
|
+
};
|
|
20
|
+
const isContractRevert = (cause, errorName) => findViemErrorCause(cause, ContractFunctionRevertedError)?.data?.errorName === errorName;
|
|
21
|
+
const isContractRevertWithData = (cause, errorName, selector) => {
|
|
22
|
+
const revert = findViemErrorCause(cause, ContractFunctionRevertedError)?.data;
|
|
23
|
+
const nestedData = revert?.args?.at(0);
|
|
24
|
+
return revert?.errorName === errorName && Predicate.isString(nestedData) && nestedData.startsWith(selector);
|
|
25
|
+
};
|
|
26
|
+
const messageFromCause = (cause) => {
|
|
27
|
+
if (cause instanceof BaseError) return cause.shortMessage;
|
|
28
|
+
if (Predicate.isError(cause)) return cause.message;
|
|
29
|
+
return "An unknown Ethereum client error occurred";
|
|
30
|
+
};
|
|
31
|
+
const isDecodeError = (cause) => findViemErrorCause(cause, ContractFunctionZeroDataError) !== void 0 || findViemErrorCause(cause, AbiDecodingDataSizeInvalidError) !== void 0 || findViemErrorCause(cause, AbiDecodingDataSizeTooSmallError) !== void 0 || findViemErrorCause(cause, AbiDecodingZeroDataError) !== void 0;
|
|
32
|
+
function viemErrorToEffectError(cause, operation) {
|
|
33
|
+
const timeout = findViemErrorCause(cause, TimeoutError);
|
|
34
|
+
if (timeout !== void 0) return new RpcError({
|
|
35
|
+
code: "REQUEST_TIMEOUT",
|
|
36
|
+
message: timeout.shortMessage,
|
|
37
|
+
cause
|
|
38
|
+
});
|
|
39
|
+
const request = findViemErrorCause(cause, RpcRequestError) ?? findViemErrorCause(cause, HttpRequestError);
|
|
40
|
+
if (request !== void 0) return new RpcError({
|
|
41
|
+
code: "REQUEST_FAILED",
|
|
42
|
+
message: request.shortMessage,
|
|
43
|
+
cause
|
|
44
|
+
});
|
|
45
|
+
const transport = findViemErrorCause(cause, WebSocketRequestError) ?? findViemErrorCause(cause, SocketClosedError);
|
|
46
|
+
if (transport !== void 0) return new RpcError({
|
|
47
|
+
code: "TRANSPORT_FAILED",
|
|
48
|
+
message: transport.shortMessage,
|
|
49
|
+
cause
|
|
50
|
+
});
|
|
51
|
+
if (operation === "getBlock" || operation === "getLogs" || operation === "watchEvent" || operation === "estimateFeesPerGas") return new RpcError({
|
|
52
|
+
code: "REQUEST_FAILED",
|
|
53
|
+
message: messageFromCause(cause),
|
|
54
|
+
cause
|
|
55
|
+
});
|
|
56
|
+
const reverted = findViemErrorCause(cause, ContractFunctionRevertedError);
|
|
57
|
+
if (reverted !== void 0) return new ContractError({
|
|
58
|
+
code: "REVERTED",
|
|
59
|
+
message: reverted.shortMessage,
|
|
60
|
+
cause,
|
|
61
|
+
revert: {
|
|
62
|
+
...reverted.data?.errorName === void 0 ? {} : { name: reverted.data.errorName },
|
|
63
|
+
...reverted.data?.args === void 0 ? {} : { args: [...reverted.data.args] }
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const raw = findViemErrorCause(cause, RawContractError)?.data;
|
|
67
|
+
const rawData = typeof raw === "string" ? raw : raw?.data;
|
|
68
|
+
if (rawData !== void 0) return new ContractError({
|
|
69
|
+
code: "REVERTED",
|
|
70
|
+
message: messageFromCause(cause),
|
|
71
|
+
cause,
|
|
72
|
+
revert: { data: rawData }
|
|
73
|
+
});
|
|
74
|
+
if (isDecodeError(cause)) return new ContractError({
|
|
75
|
+
code: "DECODE_FAILED",
|
|
76
|
+
message: messageFromCause(cause),
|
|
77
|
+
cause
|
|
78
|
+
});
|
|
79
|
+
return new ContractError({
|
|
80
|
+
code: fallbackCodes[operation],
|
|
81
|
+
message: messageFromCause(cause),
|
|
82
|
+
cause
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
export { findViemErrorCause, isContractRevert, isContractRevertWithData, viemErrorToEffectError };
|
|
88
|
+
//# sourceMappingURL=viem-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viem-error.js","names":[],"sources":["../../../src/internal/errors/viem-error.ts"],"sourcesContent":["import { Predicate } from \"effect\";\n\nimport {\n AbiDecodingDataSizeInvalidError,\n AbiDecodingDataSizeTooSmallError,\n AbiDecodingZeroDataError,\n BaseError,\n ContractFunctionRevertedError,\n ContractFunctionZeroDataError,\n HttpRequestError,\n RpcRequestError,\n RawContractError,\n SocketClosedError,\n TimeoutError,\n WebSocketRequestError,\n type Hex,\n} from \"viem\";\n\nimport { ContractError, type ContractErrorCode } from \"../../errors/contract-error.js\";\nimport { RpcError } from \"../../errors/rpc-error.js\";\n\nexport type ViemOperation =\n | \"encodeFunctionData\"\n | \"getBlock\"\n | \"estimateFeesPerGas\"\n | \"estimateGas\"\n | \"getLogs\"\n | \"readContract\"\n | \"multicall\"\n | \"simulateContract\"\n | \"watchEvent\"\n | \"writeContract\";\n\nexport type ViemError = ContractError | RpcError;\n\nconst fallbackCodes = {\n encodeFunctionData: \"ENCODE_FAILED\",\n readContract: \"READ_FAILED\",\n multicall: \"MULTICALL_FAILED\",\n simulateContract: \"SIMULATION_FAILED\",\n estimateGas: \"SIMULATION_FAILED\",\n writeContract: \"WRITE_FAILED\",\n} as const satisfies Record<\n Exclude<ViemOperation, \"getBlock\" | \"getLogs\" | \"watchEvent\" | \"estimateFeesPerGas\">,\n ContractErrorCode\n>;\n\nexport const findViemErrorCause = <ErrorClass extends Error>(\n cause: unknown,\n errorClass: abstract new (...args: never[]) => ErrorClass,\n): ErrorClass | undefined => {\n if (cause instanceof errorClass) {\n return cause;\n }\n\n if (!(cause instanceof BaseError)) {\n return undefined;\n }\n\n return (\n (cause.walk((error) => error instanceof errorClass) as ErrorClass | null | undefined) ??\n undefined\n );\n};\n\nexport const isContractRevert = (cause: unknown, errorName: string): boolean =>\n findViemErrorCause(cause, ContractFunctionRevertedError)?.data?.errorName === errorName;\n\nexport const isContractRevertWithData = (\n cause: unknown,\n errorName: string,\n selector: Hex,\n): boolean => {\n const revert = findViemErrorCause(cause, ContractFunctionRevertedError)?.data;\n const nestedData = revert?.args?.at(0);\n return (\n revert?.errorName === errorName &&\n Predicate.isString(nestedData) &&\n nestedData.startsWith(selector)\n );\n};\n\nconst messageFromCause = (cause: unknown): string => {\n if (cause instanceof BaseError) {\n return cause.shortMessage;\n }\n\n if (Predicate.isError(cause)) {\n return cause.message;\n }\n\n return \"An unknown Ethereum client error occurred\";\n};\n\nconst isDecodeError = (cause: unknown): boolean =>\n findViemErrorCause(cause, ContractFunctionZeroDataError) !== undefined ||\n findViemErrorCause(cause, AbiDecodingDataSizeInvalidError) !== undefined ||\n findViemErrorCause(cause, AbiDecodingDataSizeTooSmallError) !== undefined ||\n findViemErrorCause(cause, AbiDecodingZeroDataError) !== undefined;\n\nexport function viemErrorToEffectError(\n cause: unknown,\n operation: \"getBlock\" | \"getLogs\" | \"watchEvent\" | \"estimateFeesPerGas\",\n): RpcError;\nexport function viemErrorToEffectError(\n cause: unknown,\n operation: Exclude<ViemOperation, \"getBlock\" | \"getLogs\" | \"watchEvent\" | \"estimateFeesPerGas\">,\n): ViemError;\nexport function viemErrorToEffectError(cause: unknown, operation: ViemOperation): ViemError {\n const timeout = findViemErrorCause(cause, TimeoutError);\n\n if (timeout !== undefined) {\n return new RpcError({\n code: \"REQUEST_TIMEOUT\",\n message: timeout.shortMessage,\n cause,\n });\n }\n\n const request =\n findViemErrorCause(cause, RpcRequestError) ?? findViemErrorCause(cause, HttpRequestError);\n\n if (request !== undefined) {\n return new RpcError({\n code: \"REQUEST_FAILED\",\n message: request.shortMessage,\n cause,\n });\n }\n\n const transport =\n findViemErrorCause(cause, WebSocketRequestError) ??\n findViemErrorCause(cause, SocketClosedError);\n\n if (transport !== undefined) {\n return new RpcError({\n code: \"TRANSPORT_FAILED\",\n message: transport.shortMessage,\n cause,\n });\n }\n\n if (\n operation === \"getBlock\" ||\n operation === \"getLogs\" ||\n operation === \"watchEvent\" ||\n operation === \"estimateFeesPerGas\"\n ) {\n return new RpcError({\n code: \"REQUEST_FAILED\",\n message: messageFromCause(cause),\n cause,\n });\n }\n\n const reverted = findViemErrorCause(cause, ContractFunctionRevertedError);\n\n if (reverted !== undefined) {\n return new ContractError({\n code: \"REVERTED\",\n message: reverted.shortMessage,\n cause,\n revert: {\n ...(reverted.data?.errorName === undefined ? {} : { name: reverted.data.errorName }),\n ...(reverted.data?.args === undefined ? {} : { args: [...reverted.data.args] }),\n },\n });\n }\n\n const raw = findViemErrorCause(cause, RawContractError)?.data;\n const rawData = typeof raw === \"string\" ? raw : raw?.data;\n if (rawData !== undefined) {\n return new ContractError({\n code: \"REVERTED\",\n message: messageFromCause(cause),\n cause,\n revert: { data: rawData },\n });\n }\n\n if (isDecodeError(cause)) {\n return new ContractError({\n code: \"DECODE_FAILED\",\n message: messageFromCause(cause),\n cause,\n });\n }\n\n return new ContractError({\n code: fallbackCodes[operation],\n message: messageFromCause(cause),\n cause,\n });\n}\n"],"mappings":";;;;;;AAmCA,MAAM,gBAAgB;CACpB,oBAAoB;CACpB,cAAc;CACd,WAAW;CACX,kBAAkB;CAClB,aAAa;CACb,eAAe;AACjB;AAKA,MAAa,sBACX,OACA,eAC2B;CAC3B,IAAI,iBAAiB,YACnB,OAAO;CAGT,IAAI,EAAE,iBAAiB,YACrB;CAGF,OACG,MAAM,MAAM,UAAU,iBAAiB,UAAU,KAClD;AAEJ;AAEA,MAAa,oBAAoB,OAAgB,cAC/C,mBAAmB,OAAO,6BAA6B,CAAC,EAAE,MAAM,cAAc;AAEhF,MAAa,4BACX,OACA,WACA,aACY;CACZ,MAAM,SAAS,mBAAmB,OAAO,6BAA6B,CAAC,EAAE;CACzE,MAAM,aAAa,QAAQ,MAAM,GAAG,CAAC;CACrC,OACE,QAAQ,cAAc,aACtB,UAAU,SAAS,UAAU,KAC7B,WAAW,WAAW,QAAQ;AAElC;AAEA,MAAM,oBAAoB,UAA2B;CACnD,IAAI,iBAAiB,WACnB,OAAO,MAAM;CAGf,IAAI,UAAU,QAAQ,KAAK,GACzB,OAAO,MAAM;CAGf,OAAO;AACT;AAEA,MAAM,iBAAiB,UACrB,mBAAmB,OAAO,6BAA6B,MAAM,UAC7D,mBAAmB,OAAO,+BAA+B,MAAM,UAC/D,mBAAmB,OAAO,gCAAgC,MAAM,UAChE,mBAAmB,OAAO,wBAAwB,MAAM;AAU1D,SAAgB,uBAAuB,OAAgB,WAAqC;CAC1F,MAAM,UAAU,mBAAmB,OAAO,YAAY;CAEtD,IAAI,YAAY,QACd,OAAO,IAAI,SAAS;EAClB,MAAM;EACN,SAAS,QAAQ;EACjB;CACF,CAAC;CAGH,MAAM,UACJ,mBAAmB,OAAO,eAAe,KAAK,mBAAmB,OAAO,gBAAgB;CAE1F,IAAI,YAAY,QACd,OAAO,IAAI,SAAS;EAClB,MAAM;EACN,SAAS,QAAQ;EACjB;CACF,CAAC;CAGH,MAAM,YACJ,mBAAmB,OAAO,qBAAqB,KAC/C,mBAAmB,OAAO,iBAAiB;CAE7C,IAAI,cAAc,QAChB,OAAO,IAAI,SAAS;EAClB,MAAM;EACN,SAAS,UAAU;EACnB;CACF,CAAC;CAGH,IACE,cAAc,cACd,cAAc,aACd,cAAc,gBACd,cAAc,sBAEd,OAAO,IAAI,SAAS;EAClB,MAAM;EACN,SAAS,iBAAiB,KAAK;EAC/B;CACF,CAAC;CAGH,MAAM,WAAW,mBAAmB,OAAO,6BAA6B;CAExE,IAAI,aAAa,QACf,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,SAAS,SAAS;EAClB;EACA,QAAQ;GACN,GAAI,SAAS,MAAM,cAAc,SAAY,CAAC,IAAI,EAAE,MAAM,SAAS,KAAK,UAAU;GAClF,GAAI,SAAS,MAAM,SAAS,SAAY,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,KAAK,IAAI,EAAE;EAC/E;CACF,CAAC;CAGH,MAAM,MAAM,mBAAmB,OAAO,gBAAgB,CAAC,EAAE;CACzD,MAAM,UAAU,OAAO,QAAQ,WAAW,MAAM,KAAK;CACrD,IAAI,YAAY,QACd,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,SAAS,iBAAiB,KAAK;EAC/B;EACA,QAAQ,EAAE,MAAM,QAAQ;CAC1B,CAAC;CAGH,IAAI,cAAc,KAAK,GACrB,OAAO,IAAI,cAAc;EACvB,MAAM;EACN,SAAS,iBAAiB,KAAK;EAC/B;CACF,CAAC;CAGH,OAAO,IAAI,cAAc;EACvB,MAAM,cAAc;EACpB,SAAS,iBAAiB,KAAK;EAC/B;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { findViemErrorCause, viemErrorToEffectError } from "./viem-error.js";
|
|
2
|
+
import { TransactionError } from "../../errors/transaction-error.js";
|
|
3
|
+
import { WalletError } from "../../errors/wallet-error.js";
|
|
4
|
+
import { AtomicityNotSupportedError, BaseError, MethodNotFoundRpcError, MethodNotSupportedRpcError, TimeoutError, UnauthorizedProviderError, UnsupportedChainIdError, UserRejectedRequestError } from "viem";
|
|
5
|
+
|
|
6
|
+
//#region src/internal/errors/write-error.ts
|
|
7
|
+
const messageFromCause = (cause) => cause instanceof BaseError ? cause.shortMessage : "The wallet request failed";
|
|
8
|
+
const isWalletCallBundleUnsupported = (cause) => findViemErrorCause(cause, MethodNotFoundRpcError) !== void 0 || findViemErrorCause(cause, MethodNotSupportedRpcError) !== void 0;
|
|
9
|
+
function walletRequestError(cause, operation) {
|
|
10
|
+
if (findViemErrorCause(cause, UserRejectedRequestError) !== void 0) return new WalletError({
|
|
11
|
+
code: "USER_REJECTED",
|
|
12
|
+
message: "The wallet request was rejected by the user",
|
|
13
|
+
cause
|
|
14
|
+
});
|
|
15
|
+
if (findViemErrorCause(cause, UnauthorizedProviderError) !== void 0 || findViemErrorCause(cause, UnsupportedChainIdError) !== void 0) return new WalletError({
|
|
16
|
+
code: "UNAUTHORIZED_ACCOUNT",
|
|
17
|
+
message: messageFromCause(cause),
|
|
18
|
+
cause
|
|
19
|
+
});
|
|
20
|
+
if (findViemErrorCause(cause, AtomicityNotSupportedError) !== void 0) return new WalletError({
|
|
21
|
+
code: "ATOMICITY_UNAVAILABLE",
|
|
22
|
+
message: "The wallet cannot execute this call group atomically",
|
|
23
|
+
cause
|
|
24
|
+
});
|
|
25
|
+
if (operation === "capabilities") return new WalletError({
|
|
26
|
+
code: "CAPABILITY_REQUEST_FAILED",
|
|
27
|
+
message: messageFromCause(cause),
|
|
28
|
+
cause
|
|
29
|
+
});
|
|
30
|
+
if (operation === "sendCalls") return new WalletError({
|
|
31
|
+
code: "BATCH_SUBMISSION_FAILED",
|
|
32
|
+
message: messageFromCause(cause),
|
|
33
|
+
cause
|
|
34
|
+
});
|
|
35
|
+
return viemErrorToEffectError(cause, "writeContract");
|
|
36
|
+
}
|
|
37
|
+
const batchStatusError = (cause, batchId) => new TransactionError({
|
|
38
|
+
code: findViemErrorCause(cause, TimeoutError) === void 0 ? "BATCH_STATUS_FAILED" : "CONFIRMATION_TIMEOUT",
|
|
39
|
+
message: findViemErrorCause(cause, TimeoutError) === void 0 ? "Unable to read the wallet call-batch status" : "Timed out while waiting for the wallet call batch",
|
|
40
|
+
cause,
|
|
41
|
+
batchId
|
|
42
|
+
});
|
|
43
|
+
const receiptWaitError = (cause, transactionHash) => findViemErrorCause(cause, TimeoutError) === void 0 ? viemErrorToEffectError(cause, "getBlock") : new TransactionError({
|
|
44
|
+
code: "CONFIRMATION_TIMEOUT",
|
|
45
|
+
message: `Timed out while waiting for transaction ${transactionHash}`,
|
|
46
|
+
cause,
|
|
47
|
+
transactionHash
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
//#endregion
|
|
51
|
+
export { batchStatusError, isWalletCallBundleUnsupported, receiptWaitError, walletRequestError };
|
|
52
|
+
//# sourceMappingURL=write-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-error.js","names":[],"sources":["../../../src/internal/errors/write-error.ts"],"sourcesContent":["import {\n AtomicityNotSupportedError,\n BaseError,\n MethodNotFoundRpcError,\n MethodNotSupportedRpcError,\n UnauthorizedProviderError,\n UnsupportedChainIdError,\n TimeoutError,\n UserRejectedRequestError,\n} from \"viem\";\n\nimport { TransactionError } from \"../../errors/transaction-error.js\";\nimport { WalletError } from \"../../errors/wallet-error.js\";\nimport { findViemErrorCause, viemErrorToEffectError, type ViemError } from \"./viem-error.js\";\n\nconst messageFromCause = (cause: unknown): string =>\n cause instanceof BaseError ? cause.shortMessage : \"The wallet request failed\";\n\nexport const isWalletCallBundleUnsupported = (cause: unknown): boolean =>\n findViemErrorCause(cause, MethodNotFoundRpcError) !== undefined ||\n findViemErrorCause(cause, MethodNotSupportedRpcError) !== undefined;\n\nexport function walletRequestError(\n cause: unknown,\n operation: \"capabilities\" | \"sendCalls\",\n): WalletError;\nexport function walletRequestError(\n cause: unknown,\n operation: \"sendTransaction\",\n): ViemError | WalletError;\nexport function walletRequestError(\n cause: unknown,\n operation: \"capabilities\" | \"sendCalls\" | \"sendTransaction\",\n): ViemError | WalletError {\n if (findViemErrorCause(cause, UserRejectedRequestError) !== undefined) {\n return new WalletError({\n code: \"USER_REJECTED\",\n message: \"The wallet request was rejected by the user\",\n cause,\n });\n }\n if (\n findViemErrorCause(cause, UnauthorizedProviderError) !== undefined ||\n findViemErrorCause(cause, UnsupportedChainIdError) !== undefined\n ) {\n return new WalletError({\n code: \"UNAUTHORIZED_ACCOUNT\",\n message: messageFromCause(cause),\n cause,\n });\n }\n if (findViemErrorCause(cause, AtomicityNotSupportedError) !== undefined) {\n return new WalletError({\n code: \"ATOMICITY_UNAVAILABLE\",\n message: \"The wallet cannot execute this call group atomically\",\n cause,\n });\n }\n if (operation === \"capabilities\") {\n return new WalletError({\n code: \"CAPABILITY_REQUEST_FAILED\",\n message: messageFromCause(cause),\n cause,\n });\n }\n if (operation === \"sendCalls\") {\n return new WalletError({\n code: \"BATCH_SUBMISSION_FAILED\",\n message: messageFromCause(cause),\n cause,\n });\n }\n return viemErrorToEffectError(cause, \"writeContract\");\n}\n\nexport const batchStatusError = (cause: unknown, batchId: string) =>\n new TransactionError({\n code:\n findViemErrorCause(cause, TimeoutError) === undefined\n ? \"BATCH_STATUS_FAILED\"\n : \"CONFIRMATION_TIMEOUT\",\n message:\n findViemErrorCause(cause, TimeoutError) === undefined\n ? \"Unable to read the wallet call-batch status\"\n : \"Timed out while waiting for the wallet call batch\",\n cause,\n batchId,\n });\n\nexport const receiptWaitError = (cause: unknown, transactionHash: `0x${string}`) =>\n findViemErrorCause(cause, TimeoutError) === undefined\n ? viemErrorToEffectError(cause, \"getBlock\")\n : new TransactionError({\n code: \"CONFIRMATION_TIMEOUT\",\n message: `Timed out while waiting for transaction ${transactionHash}`,\n cause,\n transactionHash,\n });\n"],"mappings":";;;;;;AAeA,MAAM,oBAAoB,UACxB,iBAAiB,YAAY,MAAM,eAAe;AAEpD,MAAa,iCAAiC,UAC5C,mBAAmB,OAAO,sBAAsB,MAAM,UACtD,mBAAmB,OAAO,0BAA0B,MAAM;AAU5D,SAAgB,mBACd,OACA,WACyB;CACzB,IAAI,mBAAmB,OAAO,wBAAwB,MAAM,QAC1D,OAAO,IAAI,YAAY;EACrB,MAAM;EACN,SAAS;EACT;CACF,CAAC;CAEH,IACE,mBAAmB,OAAO,yBAAyB,MAAM,UACzD,mBAAmB,OAAO,uBAAuB,MAAM,QAEvD,OAAO,IAAI,YAAY;EACrB,MAAM;EACN,SAAS,iBAAiB,KAAK;EAC/B;CACF,CAAC;CAEH,IAAI,mBAAmB,OAAO,0BAA0B,MAAM,QAC5D,OAAO,IAAI,YAAY;EACrB,MAAM;EACN,SAAS;EACT;CACF,CAAC;CAEH,IAAI,cAAc,gBAChB,OAAO,IAAI,YAAY;EACrB,MAAM;EACN,SAAS,iBAAiB,KAAK;EAC/B;CACF,CAAC;CAEH,IAAI,cAAc,aAChB,OAAO,IAAI,YAAY;EACrB,MAAM;EACN,SAAS,iBAAiB,KAAK;EAC/B;CACF,CAAC;CAEH,OAAO,uBAAuB,OAAO,eAAe;AACtD;AAEA,MAAa,oBAAoB,OAAgB,YAC/C,IAAI,iBAAiB;CACnB,MACE,mBAAmB,OAAO,YAAY,MAAM,SACxC,wBACA;CACN,SACE,mBAAmB,OAAO,YAAY,MAAM,SACxC,gDACA;CACN;CACA;AACF,CAAC;AAEH,MAAa,oBAAoB,OAAgB,oBAC/C,mBAAmB,OAAO,YAAY,MAAM,SACxC,uBAAuB,OAAO,UAAU,IACxC,IAAI,iBAAiB;CACnB,MAAM;CACN,SAAS,2CAA2C;CACpD;CACA;AACF,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { baseRegistrarV1Abi, ensRegistryV1Abi, ethRegistrarControllerV1Abi, nameWrapperV1Abi, publicResolverV1Abi } from "@ensforge/contracts/v1";
|
|
2
|
+
import { ethRegistrarV2Abi, ethRegistryV2Abi, lockedMigrationControllerV2Abi, permissionedResolverV2Abi, publicResolverV2Abi, unlockedMigrationControllerV2Abi } from "@ensforge/contracts/v2";
|
|
3
|
+
|
|
4
|
+
//#region src/internal/events/contracts.ts
|
|
5
|
+
const getEnsEventContracts = (profile) => {
|
|
6
|
+
const v1 = profile.v1;
|
|
7
|
+
const contracts = [];
|
|
8
|
+
if (v1 !== void 0) contracts.push({
|
|
9
|
+
address: v1.contracts.ethRegistrarController,
|
|
10
|
+
abi: ethRegistrarControllerV1Abi,
|
|
11
|
+
protocol: "v1",
|
|
12
|
+
kind: "registrar"
|
|
13
|
+
}, {
|
|
14
|
+
address: v1.contracts.baseRegistrar,
|
|
15
|
+
abi: baseRegistrarV1Abi,
|
|
16
|
+
protocol: "v1",
|
|
17
|
+
kind: "registrar"
|
|
18
|
+
}, {
|
|
19
|
+
address: v1.contracts.registry,
|
|
20
|
+
abi: ensRegistryV1Abi,
|
|
21
|
+
protocol: "v1",
|
|
22
|
+
kind: "registry"
|
|
23
|
+
}, {
|
|
24
|
+
address: v1.contracts.nameWrapper,
|
|
25
|
+
abi: nameWrapperV1Abi,
|
|
26
|
+
protocol: "v1",
|
|
27
|
+
kind: "name-wrapper"
|
|
28
|
+
}, {
|
|
29
|
+
address: v1.contracts.publicResolver,
|
|
30
|
+
abi: publicResolverV1Abi,
|
|
31
|
+
protocol: "v1",
|
|
32
|
+
kind: "resolver"
|
|
33
|
+
});
|
|
34
|
+
if (profile.protocol === "v2") contracts.push({
|
|
35
|
+
address: profile.v2.contracts.ethRegistrar,
|
|
36
|
+
abi: ethRegistrarV2Abi,
|
|
37
|
+
protocol: "v2",
|
|
38
|
+
kind: "registrar"
|
|
39
|
+
}, {
|
|
40
|
+
address: profile.v2.contracts.ethRegistry,
|
|
41
|
+
abi: ethRegistryV2Abi,
|
|
42
|
+
protocol: "v2",
|
|
43
|
+
kind: "registry"
|
|
44
|
+
}, {
|
|
45
|
+
address: profile.v2.contracts.publicResolver,
|
|
46
|
+
abi: publicResolverV2Abi,
|
|
47
|
+
protocol: "v2",
|
|
48
|
+
kind: "resolver"
|
|
49
|
+
}, {
|
|
50
|
+
address: profile.v2.contracts.ensV2Resolver,
|
|
51
|
+
abi: permissionedResolverV2Abi,
|
|
52
|
+
protocol: "v2",
|
|
53
|
+
kind: "resolver"
|
|
54
|
+
}, {
|
|
55
|
+
address: profile.v2.migration.unlockedMigrationController,
|
|
56
|
+
abi: unlockedMigrationControllerV2Abi,
|
|
57
|
+
protocol: "v2",
|
|
58
|
+
kind: "migration-controller"
|
|
59
|
+
}, {
|
|
60
|
+
address: profile.v2.migration.lockedMigrationController,
|
|
61
|
+
abi: lockedMigrationControllerV2Abi,
|
|
62
|
+
protocol: "v2",
|
|
63
|
+
kind: "migration-controller"
|
|
64
|
+
});
|
|
65
|
+
return contracts;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
export { getEnsEventContracts };
|
|
70
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","names":[],"sources":["../../../src/internal/events/contracts.ts"],"sourcesContent":["import {\n baseRegistrarV1Abi,\n ensRegistryV1Abi,\n ethRegistrarControllerV1Abi,\n nameWrapperV1Abi,\n publicResolverV1Abi,\n} from \"@ensforge/contracts/v1\";\nimport {\n ethRegistrarV2Abi,\n ethRegistryV2Abi,\n permissionedResolverV2Abi,\n publicResolverV2Abi,\n lockedMigrationControllerV2Abi,\n unlockedMigrationControllerV2Abi,\n} from \"@ensforge/contracts/v2\";\nimport type { Abi, Address } from \"viem\";\n\nimport type { EnsEventContractKind } from \"../../actions/events/types.js\";\nimport type { EnsDeploymentProfile } from \"../../config/config.js\";\nimport type { EnsProtocol } from \"../../schemas/protocol.js\";\n\nexport interface EnsEventContract {\n readonly address: Address;\n readonly abi: Abi;\n readonly protocol: EnsProtocol;\n readonly kind: EnsEventContractKind;\n}\n\nexport const getEnsEventContracts = (\n profile: EnsDeploymentProfile,\n): ReadonlyArray<EnsEventContract> => {\n const v1 = profile.v1;\n const contracts: Array<EnsEventContract> = [];\n if (v1 !== undefined) {\n contracts.push(\n {\n address: v1.contracts.ethRegistrarController,\n abi: ethRegistrarControllerV1Abi,\n protocol: \"v1\",\n kind: \"registrar\",\n },\n {\n address: v1.contracts.baseRegistrar,\n abi: baseRegistrarV1Abi,\n protocol: \"v1\",\n kind: \"registrar\",\n },\n { address: v1.contracts.registry, abi: ensRegistryV1Abi, protocol: \"v1\", kind: \"registry\" },\n {\n address: v1.contracts.nameWrapper,\n abi: nameWrapperV1Abi,\n protocol: \"v1\",\n kind: \"name-wrapper\",\n },\n {\n address: v1.contracts.publicResolver,\n abi: publicResolverV1Abi,\n protocol: \"v1\",\n kind: \"resolver\",\n },\n );\n }\n if (profile.protocol === \"v2\") {\n contracts.push(\n {\n address: profile.v2.contracts.ethRegistrar,\n abi: ethRegistrarV2Abi,\n protocol: \"v2\",\n kind: \"registrar\",\n },\n {\n address: profile.v2.contracts.ethRegistry,\n abi: ethRegistryV2Abi,\n protocol: \"v2\",\n kind: \"registry\",\n },\n {\n address: profile.v2.contracts.publicResolver,\n abi: publicResolverV2Abi,\n protocol: \"v2\",\n kind: \"resolver\",\n },\n {\n address: profile.v2.contracts.ensV2Resolver,\n abi: permissionedResolverV2Abi,\n protocol: \"v2\",\n kind: \"resolver\",\n },\n {\n address: profile.v2.migration.unlockedMigrationController,\n abi: unlockedMigrationControllerV2Abi,\n protocol: \"v2\",\n kind: \"migration-controller\",\n },\n {\n address: profile.v2.migration.lockedMigrationController,\n abi: lockedMigrationControllerV2Abi,\n protocol: \"v2\",\n kind: \"migration-controller\",\n },\n );\n }\n return contracts;\n};\n"],"mappings":";;;;AA4BA,MAAa,wBACX,YACoC;CACpC,MAAM,KAAK,QAAQ;CACnB,MAAM,YAAqC,CAAC;CAC5C,IAAI,OAAO,QACT,UAAU,KACR;EACE,SAAS,GAAG,UAAU;EACtB,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EACE,SAAS,GAAG,UAAU;EACtB,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EAAE,SAAS,GAAG,UAAU;EAAU,KAAK;EAAkB,UAAU;EAAM,MAAM;CAAW,GAC1F;EACE,SAAS,GAAG,UAAU;EACtB,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EACE,SAAS,GAAG,UAAU;EACtB,KAAK;EACL,UAAU;EACV,MAAM;CACR,CACF;CAEF,IAAI,QAAQ,aAAa,MACvB,UAAU,KACR;EACE,SAAS,QAAQ,GAAG,UAAU;EAC9B,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EACE,SAAS,QAAQ,GAAG,UAAU;EAC9B,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EACE,SAAS,QAAQ,GAAG,UAAU;EAC9B,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EACE,SAAS,QAAQ,GAAG,UAAU;EAC9B,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EACE,SAAS,QAAQ,GAAG,UAAU;EAC9B,KAAK;EACL,UAAU;EACV,MAAM;CACR,GACA;EACE,SAAS,QAAQ,GAAG,UAAU;EAC9B,KAAK;EACL,UAAU;EACV,MAAM;CACR,CACF;CAEF,OAAO;AACT"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { normalizeName } from "../../names/normalize.js";
|
|
2
|
+
import { labelhash, namehash } from "../../names/hashes.js";
|
|
3
|
+
import { analyzeName } from "../../names/analyze.js";
|
|
4
|
+
import { Predicate } from "effect";
|
|
5
|
+
import { decodeEventLog, isAddress } from "viem";
|
|
6
|
+
|
|
7
|
+
//#region src/internal/events/normalize-event.ts
|
|
8
|
+
const recordEvents = /* @__PURE__ */ new Set([
|
|
9
|
+
"ABIChanged",
|
|
10
|
+
"AddrChanged",
|
|
11
|
+
"AddressChanged",
|
|
12
|
+
"AliasChanged",
|
|
13
|
+
"ContenthashChanged",
|
|
14
|
+
"DNSRecordChanged",
|
|
15
|
+
"DNSRecordDeleted",
|
|
16
|
+
"DNSZonehashChanged",
|
|
17
|
+
"DataChanged",
|
|
18
|
+
"InterfaceChanged",
|
|
19
|
+
"NameChanged",
|
|
20
|
+
"PubkeyChanged",
|
|
21
|
+
"TextChanged",
|
|
22
|
+
"VersionChanged"
|
|
23
|
+
]);
|
|
24
|
+
const eventKind = (eventName) => {
|
|
25
|
+
if (eventName === "CommitmentMade") return "commitment";
|
|
26
|
+
if (eventName === "NameRegistered") return "registration";
|
|
27
|
+
if (eventName === "NameRenewed" || eventName === "ExpiryExtended") return "renewal";
|
|
28
|
+
if (eventName === "NameMigrated") return "migration";
|
|
29
|
+
if (recordEvents.has(eventName)) return "records";
|
|
30
|
+
if (eventName === "NewResolver" || eventName === "ResolverUpdated") return "resolver";
|
|
31
|
+
if (eventName === "NewOwner" || eventName === "LabelRegistered" || eventName === "LabelReserved" || eventName === "LabelUnregistered" || eventName === "SubregistryUpdated" || eventName === "RegistryCreated") return "subname";
|
|
32
|
+
if (eventName === "Transfer" || eventName === "TransferSingle" || eventName === "TransferBatch" || eventName === "NameWrapped" || eventName === "NameUnwrapped") return "ownership";
|
|
33
|
+
if (eventName === "EACRolesChanged" || eventName === "Approval" || eventName === "ApprovalForAll") return "manager";
|
|
34
|
+
return "other";
|
|
35
|
+
};
|
|
36
|
+
const property = (args, key) => Predicate.isObject(args) ? args[key] : void 0;
|
|
37
|
+
const addressProperty = (args, key) => {
|
|
38
|
+
const value = property(args, key);
|
|
39
|
+
return Predicate.isString(value) && isAddress(value) ? value : void 0;
|
|
40
|
+
};
|
|
41
|
+
const bigintProperty = (args, ...keys) => {
|
|
42
|
+
for (const key of keys) {
|
|
43
|
+
const value = property(args, key);
|
|
44
|
+
if (Predicate.isBigInt(value)) return value;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const hexProperty = (args, key) => {
|
|
48
|
+
const value = property(args, key);
|
|
49
|
+
return Predicate.isString(value) && /^0x[0-9a-fA-F]+$/.test(value) ? value : void 0;
|
|
50
|
+
};
|
|
51
|
+
const decodedName = (args) => {
|
|
52
|
+
const nameValue = property(args, "name");
|
|
53
|
+
const labelValue = property(args, "label");
|
|
54
|
+
const candidate = Predicate.isString(nameValue) ? nameValue : Predicate.isString(labelValue) ? labelValue : void 0;
|
|
55
|
+
if (candidate === void 0) return {};
|
|
56
|
+
try {
|
|
57
|
+
const label = candidate.includes(".") ? void 0 : candidate;
|
|
58
|
+
return {
|
|
59
|
+
name: normalizeName(label === void 0 ? candidate : `${label}.eth`),
|
|
60
|
+
...label === void 0 ? {} : { label }
|
|
61
|
+
};
|
|
62
|
+
} catch {
|
|
63
|
+
return Predicate.isString(labelValue) ? { label: labelValue } : {};
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const normalizeEnsLog = (log, contracts) => {
|
|
67
|
+
const contract = contracts.find((candidate) => candidate.address.toLowerCase() === log.address.toLowerCase());
|
|
68
|
+
if (contract === void 0) return null;
|
|
69
|
+
let decoded;
|
|
70
|
+
try {
|
|
71
|
+
decoded = decodeEventLog({
|
|
72
|
+
abi: contract.abi,
|
|
73
|
+
data: log.data,
|
|
74
|
+
topics: log.topics,
|
|
75
|
+
strict: false
|
|
76
|
+
});
|
|
77
|
+
} catch {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
const args = decoded.args;
|
|
81
|
+
const identity = decodedName(args);
|
|
82
|
+
const node = hexProperty(args, "node");
|
|
83
|
+
const commitment = hexProperty(args, "commitment");
|
|
84
|
+
return {
|
|
85
|
+
kind: eventKind(decoded.eventName),
|
|
86
|
+
protocol: contract.protocol,
|
|
87
|
+
contractKind: contract.kind,
|
|
88
|
+
eventName: decoded.eventName,
|
|
89
|
+
contract: log.address,
|
|
90
|
+
blockNumber: log.blockNumber,
|
|
91
|
+
transactionHash: log.transactionHash,
|
|
92
|
+
transactionIndex: log.transactionIndex,
|
|
93
|
+
logIndex: log.logIndex,
|
|
94
|
+
removed: log.removed,
|
|
95
|
+
...identity,
|
|
96
|
+
...node !== void 0 && node.length === 66 ? { node } : {},
|
|
97
|
+
...addressProperty(args, "owner") !== void 0 ? { owner: addressProperty(args, "owner") } : {},
|
|
98
|
+
...addressProperty(args, "from") !== void 0 ? { from: addressProperty(args, "from") } : {},
|
|
99
|
+
...addressProperty(args, "to") !== void 0 ? { to: addressProperty(args, "to") } : {},
|
|
100
|
+
...addressProperty(args, "resolver") !== void 0 ? { resolver: addressProperty(args, "resolver") } : {},
|
|
101
|
+
...bigintProperty(args, "tokenId", "id") !== void 0 ? { tokenId: bigintProperty(args, "tokenId", "id") } : {},
|
|
102
|
+
...commitment !== void 0 && commitment.length === 66 ? { commitment } : {},
|
|
103
|
+
raw: {
|
|
104
|
+
topics: [...log.topics],
|
|
105
|
+
data: log.data,
|
|
106
|
+
args
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
const matchesEnsEventFilters = (event, parameters, normalizedName) => {
|
|
111
|
+
if (parameters.kinds !== void 0 && !parameters.kinds.includes(event.kind)) return false;
|
|
112
|
+
if (parameters.commitment !== void 0 && event.commitment !== parameters.commitment) return false;
|
|
113
|
+
if (parameters.account !== void 0) {
|
|
114
|
+
const account = parameters.account.toLowerCase();
|
|
115
|
+
if (![
|
|
116
|
+
event.owner,
|
|
117
|
+
event.from,
|
|
118
|
+
event.to
|
|
119
|
+
].some((value) => value?.toLowerCase() === account)) return false;
|
|
120
|
+
}
|
|
121
|
+
if (normalizedName === void 0) return true;
|
|
122
|
+
if (event.name === normalizedName) return true;
|
|
123
|
+
const analysis = analyzeName(normalizedName);
|
|
124
|
+
const identifiers = /* @__PURE__ */ new Set([namehash(normalizedName), BigInt(namehash(normalizedName))]);
|
|
125
|
+
if (analysis.ethSecondLevelLabel !== void 0) {
|
|
126
|
+
identifiers.add(analysis.ethSecondLevelLabel);
|
|
127
|
+
identifiers.add(labelhash(analysis.ethSecondLevelLabel));
|
|
128
|
+
identifiers.add(BigInt(labelhash(analysis.ethSecondLevelLabel)));
|
|
129
|
+
}
|
|
130
|
+
if (event.label !== void 0 && identifiers.has(event.label)) return true;
|
|
131
|
+
if (event.node !== void 0 && identifiers.has(event.node)) return true;
|
|
132
|
+
if (event.tokenId !== void 0 && identifiers.has(event.tokenId)) return true;
|
|
133
|
+
if (!Predicate.isObject(event.raw.args)) return false;
|
|
134
|
+
return Object.values(event.raw.args).some((value) => identifiers.has(value));
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
//#endregion
|
|
138
|
+
export { matchesEnsEventFilters, normalizeEnsLog };
|
|
139
|
+
//# sourceMappingURL=normalize-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-event.js","names":[],"sources":["../../../src/internal/events/normalize-event.ts"],"sourcesContent":["import { Predicate } from \"effect\";\n\nimport { decodeEventLog, isAddress, type Address, type Hex, type Log } from \"viem\";\n\nimport type { EnsEvent, EnsEventKind, GetEnsEventsParameters } from \"../../actions/events/types.js\";\nimport { analyzeName } from \"../../names/analyze.js\";\nimport { labelhash, namehash } from \"../../names/hashes.js\";\nimport { normalizeName } from \"../../names/normalize.js\";\nimport type { NormalizedName } from \"../../schemas/name.js\";\nimport type { EnsEventContract } from \"./contracts.js\";\n\nconst recordEvents = new Set([\n \"ABIChanged\",\n \"AddrChanged\",\n \"AddressChanged\",\n \"AliasChanged\",\n \"ContenthashChanged\",\n \"DNSRecordChanged\",\n \"DNSRecordDeleted\",\n \"DNSZonehashChanged\",\n \"DataChanged\",\n \"InterfaceChanged\",\n \"NameChanged\",\n \"PubkeyChanged\",\n \"TextChanged\",\n \"VersionChanged\",\n]);\n\nconst eventKind = (eventName: string): EnsEventKind => {\n if (eventName === \"CommitmentMade\") return \"commitment\";\n if (eventName === \"NameRegistered\") return \"registration\";\n if (eventName === \"NameRenewed\" || eventName === \"ExpiryExtended\") return \"renewal\";\n if (eventName === \"NameMigrated\") return \"migration\";\n if (recordEvents.has(eventName)) return \"records\";\n if (eventName === \"NewResolver\" || eventName === \"ResolverUpdated\") return \"resolver\";\n if (\n eventName === \"NewOwner\" ||\n eventName === \"LabelRegistered\" ||\n eventName === \"LabelReserved\" ||\n eventName === \"LabelUnregistered\" ||\n eventName === \"SubregistryUpdated\" ||\n eventName === \"RegistryCreated\"\n ) {\n return \"subname\";\n }\n if (\n eventName === \"Transfer\" ||\n eventName === \"TransferSingle\" ||\n eventName === \"TransferBatch\" ||\n eventName === \"NameWrapped\" ||\n eventName === \"NameUnwrapped\"\n ) {\n return \"ownership\";\n }\n if (\n eventName === \"EACRolesChanged\" ||\n eventName === \"Approval\" ||\n eventName === \"ApprovalForAll\"\n ) {\n return \"manager\";\n }\n return \"other\";\n};\n\nconst property = (args: unknown, key: string): unknown =>\n Predicate.isObject(args) ? args[key] : undefined;\n\nconst addressProperty = (args: unknown, key: string): Address | undefined => {\n const value = property(args, key);\n return Predicate.isString(value) && isAddress(value) ? value : undefined;\n};\n\nconst bigintProperty = (args: unknown, ...keys: ReadonlyArray<string>): bigint | undefined => {\n for (const key of keys) {\n const value = property(args, key);\n if (Predicate.isBigInt(value)) return value;\n }\n return undefined;\n};\n\nconst hexProperty = (args: unknown, key: string): Hex | undefined => {\n const value = property(args, key);\n return Predicate.isString(value) && /^0x[0-9a-fA-F]+$/.test(value) ? (value as Hex) : undefined;\n};\n\nconst decodedName = (\n args: unknown,\n): { readonly name?: NormalizedName; readonly label?: string } => {\n const nameValue = property(args, \"name\");\n const labelValue = property(args, \"label\");\n const candidate = Predicate.isString(nameValue)\n ? nameValue\n : Predicate.isString(labelValue)\n ? labelValue\n : undefined;\n if (candidate === undefined) return {};\n try {\n const label = candidate.includes(\".\") ? undefined : candidate;\n return {\n name: normalizeName(label === undefined ? candidate : `${label}.eth`),\n ...(label === undefined ? {} : { label }),\n };\n } catch {\n return Predicate.isString(labelValue) ? { label: labelValue } : {};\n }\n};\n\nexport const normalizeEnsLog = (\n log: Log,\n contracts: ReadonlyArray<EnsEventContract>,\n): EnsEvent | null => {\n const contract = contracts.find(\n (candidate) => candidate.address.toLowerCase() === log.address.toLowerCase(),\n );\n if (contract === undefined) return null;\n\n let decoded: { readonly eventName: string; readonly args?: unknown };\n try {\n decoded = decodeEventLog({\n abi: contract.abi,\n data: log.data,\n topics: log.topics,\n strict: false,\n });\n } catch {\n return null;\n }\n const args = decoded.args;\n const identity = decodedName(args);\n const node = hexProperty(args, \"node\");\n const commitment = hexProperty(args, \"commitment\");\n return {\n kind: eventKind(decoded.eventName),\n protocol: contract.protocol,\n contractKind: contract.kind,\n eventName: decoded.eventName,\n contract: log.address,\n blockNumber: log.blockNumber,\n transactionHash: log.transactionHash,\n transactionIndex: log.transactionIndex,\n logIndex: log.logIndex,\n removed: log.removed,\n ...identity,\n ...(node !== undefined && node.length === 66 ? { node } : {}),\n ...(addressProperty(args, \"owner\") !== undefined\n ? { owner: addressProperty(args, \"owner\") }\n : {}),\n ...(addressProperty(args, \"from\") !== undefined ? { from: addressProperty(args, \"from\") } : {}),\n ...(addressProperty(args, \"to\") !== undefined ? { to: addressProperty(args, \"to\") } : {}),\n ...(addressProperty(args, \"resolver\") !== undefined\n ? { resolver: addressProperty(args, \"resolver\") }\n : {}),\n ...(bigintProperty(args, \"tokenId\", \"id\") !== undefined\n ? { tokenId: bigintProperty(args, \"tokenId\", \"id\") }\n : {}),\n ...(commitment !== undefined && commitment.length === 66 ? { commitment } : {}),\n raw: { topics: [...log.topics], data: log.data, args },\n } as EnsEvent;\n};\n\nexport const matchesEnsEventFilters = (\n event: EnsEvent,\n parameters: GetEnsEventsParameters,\n normalizedName?: NormalizedName,\n): boolean => {\n if (parameters.kinds !== undefined && !parameters.kinds.includes(event.kind)) return false;\n if (parameters.commitment !== undefined && event.commitment !== parameters.commitment)\n return false;\n if (parameters.account !== undefined) {\n const account = parameters.account.toLowerCase();\n if (![event.owner, event.from, event.to].some((value) => value?.toLowerCase() === account)) {\n return false;\n }\n }\n if (normalizedName === undefined) return true;\n if (event.name === normalizedName) return true;\n\n const analysis = analyzeName(normalizedName);\n const identifiers = new Set<unknown>([\n namehash(normalizedName),\n BigInt(namehash(normalizedName)),\n ]);\n if (analysis.ethSecondLevelLabel !== undefined) {\n identifiers.add(analysis.ethSecondLevelLabel);\n identifiers.add(labelhash(analysis.ethSecondLevelLabel));\n identifiers.add(BigInt(labelhash(analysis.ethSecondLevelLabel)));\n }\n if (event.label !== undefined && identifiers.has(event.label)) return true;\n if (event.node !== undefined && identifiers.has(event.node)) return true;\n if (event.tokenId !== undefined && identifiers.has(event.tokenId)) return true;\n if (!Predicate.isObject(event.raw.args)) return false;\n return Object.values(event.raw.args).some((value) => identifiers.has(value));\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { GatewayError } from "../../errors/gateway-error.js";
|
|
2
|
+
import { isHex } from "viem";
|
|
3
|
+
|
|
4
|
+
//#region src/internal/gateway/ccip-request.ts
|
|
5
|
+
const assertAllowedGatewayUrl = (value, policy) => {
|
|
6
|
+
let url;
|
|
7
|
+
try {
|
|
8
|
+
url = new URL(value);
|
|
9
|
+
} catch (cause) {
|
|
10
|
+
throw new GatewayError({
|
|
11
|
+
code: "GATEWAY_NOT_ALLOWED",
|
|
12
|
+
message: "Gateway URL is invalid",
|
|
13
|
+
cause
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
const host = url.hostname.toLowerCase();
|
|
17
|
+
if (policy.deniedHosts.some((denied) => denied.toLowerCase() === host) || policy.allowedHosts !== null && !policy.allowedHosts.some((allowed) => allowed.toLowerCase() === host)) throw new GatewayError({
|
|
18
|
+
code: "GATEWAY_NOT_ALLOWED",
|
|
19
|
+
message: `Gateway host ${host} is not allowed`,
|
|
20
|
+
cause: { host }
|
|
21
|
+
});
|
|
22
|
+
return url;
|
|
23
|
+
};
|
|
24
|
+
const fetchWithRedirects = async (fetcher, initialUrl, init, policy) => {
|
|
25
|
+
let url = assertAllowedGatewayUrl(initialUrl, policy);
|
|
26
|
+
for (let redirects = 0;; redirects += 1) {
|
|
27
|
+
const response = await fetcher(url, {
|
|
28
|
+
...init,
|
|
29
|
+
redirect: "manual"
|
|
30
|
+
});
|
|
31
|
+
if (response.status < 300 || response.status >= 400) return response;
|
|
32
|
+
const location = response.headers.get("location");
|
|
33
|
+
if (location === null || redirects >= policy.maxRedirects) throw new GatewayError({
|
|
34
|
+
code: "GATEWAY_NOT_ALLOWED",
|
|
35
|
+
message: "Gateway exceeded the configured redirect limit",
|
|
36
|
+
cause: {
|
|
37
|
+
url: url.toString(),
|
|
38
|
+
redirects
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
url = assertAllowedGatewayUrl(new URL(location, url).toString(), policy);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const makeCcipRequest = (policy, fetcher = globalThis.fetch) => async ({ data, requestOptions, sender, urls }) => {
|
|
45
|
+
let lastError = /* @__PURE__ */ new Error("No CCIP gateway returned a valid response");
|
|
46
|
+
for (const template of urls) {
|
|
47
|
+
const url = template.replace("{sender}", sender.toLowerCase()).replace("{data}", data);
|
|
48
|
+
const method = template.includes("{data}") ? "GET" : "POST";
|
|
49
|
+
const timeout = AbortSignal.timeout(policy.timeout);
|
|
50
|
+
const signal = requestOptions?.signal === void 0 ? timeout : AbortSignal.any([requestOptions.signal, timeout]);
|
|
51
|
+
try {
|
|
52
|
+
const response = await fetchWithRedirects(fetcher, url, {
|
|
53
|
+
method,
|
|
54
|
+
signal,
|
|
55
|
+
...method === "POST" ? {
|
|
56
|
+
body: JSON.stringify({
|
|
57
|
+
data,
|
|
58
|
+
sender
|
|
59
|
+
}),
|
|
60
|
+
headers: { "content-type": "application/json" }
|
|
61
|
+
} : {}
|
|
62
|
+
}, policy);
|
|
63
|
+
const declaredSize = Number(response.headers.get("content-length") ?? 0);
|
|
64
|
+
if (declaredSize > policy.maxResponseSize) throw new GatewayError({
|
|
65
|
+
code: "GATEWAY_NOT_ALLOWED",
|
|
66
|
+
message: "Gateway response exceeds the configured size limit",
|
|
67
|
+
cause: {
|
|
68
|
+
declaredSize,
|
|
69
|
+
maxResponseSize: policy.maxResponseSize
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
const body = await response.text();
|
|
73
|
+
const actualSize = new TextEncoder().encode(body).byteLength;
|
|
74
|
+
if (actualSize > policy.maxResponseSize) throw new GatewayError({
|
|
75
|
+
code: "GATEWAY_NOT_ALLOWED",
|
|
76
|
+
message: "Gateway response exceeds the configured size limit",
|
|
77
|
+
cause: {
|
|
78
|
+
actualSize,
|
|
79
|
+
maxResponseSize: policy.maxResponseSize
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
if (!response.ok) throw new Error(`Gateway returned HTTP ${response.status}`);
|
|
83
|
+
const result = response.headers.get("content-type")?.startsWith("application/json") ? JSON.parse(body).data : body;
|
|
84
|
+
if (!isHex(result)) throw new Error("Gateway returned malformed CCIP data");
|
|
85
|
+
return result;
|
|
86
|
+
} catch (cause) {
|
|
87
|
+
if (requestOptions?.signal?.aborted === true) throw cause;
|
|
88
|
+
lastError = cause;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
throw lastError;
|
|
92
|
+
};
|
|
93
|
+
const withGatewayPolicy = (client, policy) => {
|
|
94
|
+
if (client.ccipRead === false || client.ccipRead?.request !== void 0) return client;
|
|
95
|
+
return {
|
|
96
|
+
...client,
|
|
97
|
+
ccipRead: { request: makeCcipRequest(policy) }
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
//#endregion
|
|
102
|
+
export { assertAllowedGatewayUrl, makeCcipRequest, withGatewayPolicy };
|
|
103
|
+
//# sourceMappingURL=ccip-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ccip-request.js","names":[],"sources":["../../../src/internal/gateway/ccip-request.ts"],"sourcesContent":["import { isHex, type CcipRequestParameters, type Hex, type PublicClient } from \"viem\";\n\nimport type { ResolvedGatewayOptions } from \"../../config/gateway-options.js\";\nimport { GatewayError } from \"../../errors/gateway-error.js\";\n\ntype GatewayFetch = typeof globalThis.fetch;\n\nexport const assertAllowedGatewayUrl = (value: string, policy: ResolvedGatewayOptions): URL => {\n let url: URL;\n try {\n url = new URL(value);\n } catch (cause) {\n throw new GatewayError({\n code: \"GATEWAY_NOT_ALLOWED\",\n message: \"Gateway URL is invalid\",\n cause,\n });\n }\n const host = url.hostname.toLowerCase();\n if (\n policy.deniedHosts.some((denied) => denied.toLowerCase() === host) ||\n (policy.allowedHosts !== null &&\n !policy.allowedHosts.some((allowed) => allowed.toLowerCase() === host))\n ) {\n throw new GatewayError({\n code: \"GATEWAY_NOT_ALLOWED\",\n message: `Gateway host ${host} is not allowed`,\n cause: { host },\n });\n }\n return url;\n};\n\nconst fetchWithRedirects = async (\n fetcher: GatewayFetch,\n initialUrl: string,\n init: RequestInit,\n policy: ResolvedGatewayOptions,\n): Promise<Response> => {\n let url = assertAllowedGatewayUrl(initialUrl, policy);\n for (let redirects = 0; ; redirects += 1) {\n // Redirect policy must validate each destination before the next request is made.\n // oxlint-disable-next-line no-await-in-loop\n const response = await fetcher(url, { ...init, redirect: \"manual\" });\n if (response.status < 300 || response.status >= 400) return response;\n const location = response.headers.get(\"location\");\n if (location === null || redirects >= policy.maxRedirects) {\n throw new GatewayError({\n code: \"GATEWAY_NOT_ALLOWED\",\n message: \"Gateway exceeded the configured redirect limit\",\n cause: { url: url.toString(), redirects },\n });\n }\n url = assertAllowedGatewayUrl(new URL(location, url).toString(), policy);\n }\n};\n\nexport const makeCcipRequest =\n (policy: ResolvedGatewayOptions, fetcher: GatewayFetch = globalThis.fetch) =>\n async ({ data, requestOptions, sender, urls }: CcipRequestParameters) => {\n let lastError: unknown = new Error(\"No CCIP gateway returned a valid response\");\n for (const template of urls) {\n const url = template.replace(\"{sender}\", sender.toLowerCase()).replace(\"{data}\", data);\n const method = template.includes(\"{data}\") ? \"GET\" : \"POST\";\n const timeout = AbortSignal.timeout(policy.timeout);\n const signal =\n requestOptions?.signal === undefined\n ? timeout\n : AbortSignal.any([requestOptions.signal, timeout]);\n try {\n // CCIP gateway URLs are ordered fallbacks and must not be raced.\n // oxlint-disable-next-line no-await-in-loop\n const response = await fetchWithRedirects(\n fetcher,\n url,\n {\n method,\n signal,\n ...(method === \"POST\"\n ? {\n body: JSON.stringify({ data, sender }),\n headers: { \"content-type\": \"application/json\" },\n }\n : {}),\n },\n policy,\n );\n const declaredSize = Number(response.headers.get(\"content-length\") ?? 0);\n if (declaredSize > policy.maxResponseSize) {\n throw new GatewayError({\n code: \"GATEWAY_NOT_ALLOWED\",\n message: \"Gateway response exceeds the configured size limit\",\n cause: { declaredSize, maxResponseSize: policy.maxResponseSize },\n });\n }\n // The body is consumed only after its declared size has passed validation.\n // oxlint-disable-next-line no-await-in-loop\n const body = await response.text();\n const actualSize = new TextEncoder().encode(body).byteLength;\n if (actualSize > policy.maxResponseSize) {\n throw new GatewayError({\n code: \"GATEWAY_NOT_ALLOWED\",\n message: \"Gateway response exceeds the configured size limit\",\n cause: { actualSize, maxResponseSize: policy.maxResponseSize },\n });\n }\n if (!response.ok) throw new Error(`Gateway returned HTTP ${response.status}`);\n const result = response.headers.get(\"content-type\")?.startsWith(\"application/json\")\n ? (JSON.parse(body) as { readonly data?: unknown }).data\n : body;\n if (!isHex(result)) throw new Error(\"Gateway returned malformed CCIP data\");\n return result satisfies Hex;\n } catch (cause) {\n if (requestOptions?.signal?.aborted === true) throw cause;\n lastError = cause;\n }\n }\n throw lastError;\n };\n\nexport const withGatewayPolicy = (\n client: PublicClient,\n policy: ResolvedGatewayOptions,\n): PublicClient => {\n if (client.ccipRead === false || client.ccipRead?.request !== undefined) return client;\n return { ...client, ccipRead: { request: makeCcipRequest(policy) } } as PublicClient;\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GatewayError } from "../../errors/gateway-error.js";
|
|
2
|
+
import { assertAllowedGatewayUrl } from "./ccip-request.js";
|
|
3
|
+
import { Effect } from "effect";
|
|
4
|
+
|
|
5
|
+
//#region src/internal/gateway/validate-url.ts
|
|
6
|
+
const validateGatewayUrl = Effect.fn("validateGatewayUrl")(function* (value, policy) {
|
|
7
|
+
yield* Effect.try({
|
|
8
|
+
try: () => assertAllowedGatewayUrl(value, policy),
|
|
9
|
+
catch: (cause) => cause instanceof GatewayError ? cause : new GatewayError({
|
|
10
|
+
code: "GATEWAY_NOT_ALLOWED",
|
|
11
|
+
message: "Gateway URL is invalid",
|
|
12
|
+
cause
|
|
13
|
+
})
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { validateGatewayUrl };
|
|
19
|
+
//# sourceMappingURL=validate-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-url.js","names":[],"sources":["../../../src/internal/gateway/validate-url.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport type { ResolvedGatewayOptions } from \"../../config/gateway-options.js\";\nimport { GatewayError } from \"../../errors/gateway-error.js\";\nimport { assertAllowedGatewayUrl } from \"./ccip-request.js\";\n\nexport const validateGatewayUrl = Effect.fn(\"validateGatewayUrl\")(function* (\n value: string,\n policy: ResolvedGatewayOptions,\n) {\n yield* Effect.try({\n try: () => assertAllowedGatewayUrl(value, policy),\n catch: (cause) =>\n cause instanceof GatewayError\n ? cause\n : new GatewayError({\n code: \"GATEWAY_NOT_ALLOWED\",\n message: \"Gateway URL is invalid\",\n cause,\n }),\n });\n});\n"],"mappings":";;;;;AAMA,MAAa,qBAAqB,OAAO,GAAG,oBAAoB,CAAC,CAAC,WAChE,OACA,QACA;CACA,OAAO,OAAO,IAAI;EAChB,WAAW,wBAAwB,OAAO,MAAM;EAChD,QAAQ,UACN,iBAAiB,eACb,QACA,IAAI,aAAa;GACf,MAAM;GACN,SAAS;GACT;EACF,CAAC;CACT,CAAC;AACH,CAAC"}
|