@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,210 @@
|
|
|
1
|
+
import { defineAction } from "../../../action/action.js";
|
|
2
|
+
import { provideConfig } from "../../../internal/config/context.js";
|
|
3
|
+
import { viemErrorToEffectError } from "../../../internal/errors/viem-error.js";
|
|
4
|
+
import { resolveWalletContext } from "../../../internal/services/wallet-client.js";
|
|
5
|
+
import { executeWritePlan } from "../../batch/execute-write-plan.js";
|
|
6
|
+
import { normalizeName } from "../../../names/normalize.js";
|
|
7
|
+
import { getNameState } from "../../name/get-name-state/index.js";
|
|
8
|
+
import { getMigrationEligibility } from "../get-migration-eligibility/index.js";
|
|
9
|
+
import { getMigrationPlan } from "../get-migration-plan/index.js";
|
|
10
|
+
import { MigrationError } from "../../../errors/migration-error.js";
|
|
11
|
+
import { approveMigration, getCompatibleMigrationHelper, makeMigrationHelperIntent, makeMigrationIntent } from "../mutation.js";
|
|
12
|
+
import { resolveMigrationSteps } from "../migrate-name/index.js";
|
|
13
|
+
import { Effect } from "effect";
|
|
14
|
+
import { isAddressEqual, keccak256, stringToHex } from "viem";
|
|
15
|
+
import { baseRegistrarV1IsApprovedForAllAbi, nameWrapperV1IsApprovedForAllAbi } from "@ensforge/contracts/v1";
|
|
16
|
+
|
|
17
|
+
//#region src/actions/migration/migrate-names/index.ts
|
|
18
|
+
const planId = (migrations) => `migrateNames:${keccak256(stringToHex(JSON.stringify(migrations.map(({ name, owner, resolver, subregistry }) => ({
|
|
19
|
+
name,
|
|
20
|
+
owner: owner ?? null,
|
|
21
|
+
resolver: resolver ?? null,
|
|
22
|
+
subregistry: subregistry ?? null
|
|
23
|
+
})))))}`;
|
|
24
|
+
const readApproval = Effect.fn("ensforge.migrateNames.readApproval")(function* (config, entry, helper) {
|
|
25
|
+
return yield* Effect.tryPromise({
|
|
26
|
+
try: () => config.publicClient.readContract({
|
|
27
|
+
address: entry.plan.target.tokenContract,
|
|
28
|
+
abi: entry.plan.target.tokenStandard === "erc721" ? baseRegistrarV1IsApprovedForAllAbi : nameWrapperV1IsApprovedForAllAbi,
|
|
29
|
+
functionName: "isApprovedForAll",
|
|
30
|
+
args: [entry.tokenOwner, helper]
|
|
31
|
+
}),
|
|
32
|
+
catch: (cause) => viemErrorToEffectError(cause, "readContract")
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
const migrateNamesEffect = Effect.fn("ensforge.migrateNames")(function* (config, parameters) {
|
|
36
|
+
if (parameters.migrations.length === 0) return yield* new MigrationError({
|
|
37
|
+
code: "INVALID_MIGRATION_BATCH",
|
|
38
|
+
message: "migrateNames requires at least one migration"
|
|
39
|
+
});
|
|
40
|
+
const migrations = yield* Effect.forEach(parameters.migrations, (migration) => normalizeName.effect(migration.name).pipe(Effect.map((name) => ({
|
|
41
|
+
...migration,
|
|
42
|
+
name
|
|
43
|
+
}))));
|
|
44
|
+
if (new Set(migrations.map(({ name }) => name)).size !== migrations.length) return yield* new MigrationError({
|
|
45
|
+
code: "INVALID_MIGRATION_BATCH",
|
|
46
|
+
message: "migrateNames cannot contain duplicate names"
|
|
47
|
+
});
|
|
48
|
+
const id = planId(migrations);
|
|
49
|
+
if (parameters.resume !== void 0 && parameters.resume.write.planId !== id) return yield* new MigrationError({
|
|
50
|
+
code: "ROUTE_CHANGED",
|
|
51
|
+
message: "Migration resume data does not match the supplied batch"
|
|
52
|
+
});
|
|
53
|
+
if (parameters.resume?.write.status === "completed") {
|
|
54
|
+
const completedEntries = yield* Effect.forEach(parameters.resume.migrations, (entry) => getNameState.effect(config, { name: entry.name }).pipe(Effect.map((finalState) => ({
|
|
55
|
+
...entry,
|
|
56
|
+
status: entry.route === null ? "not-required" : "completed",
|
|
57
|
+
finalState
|
|
58
|
+
}))));
|
|
59
|
+
return {
|
|
60
|
+
...parameters.resume,
|
|
61
|
+
status: "completed",
|
|
62
|
+
migrations: completedEntries
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const { account } = yield* provideConfig(config, resolveWalletContext(parameters));
|
|
66
|
+
const address = typeof account === "string" ? account : account.address;
|
|
67
|
+
const initial = yield* Effect.forEach(migrations, (migration) => Effect.all([getMigrationPlan.effect(config, {
|
|
68
|
+
...migration,
|
|
69
|
+
account: address
|
|
70
|
+
}), resolveMigrationSteps(config, migration, address, true)], { concurrency: "unbounded" }).pipe(Effect.map(([plan, steps]) => ({
|
|
71
|
+
migration,
|
|
72
|
+
plan,
|
|
73
|
+
steps
|
|
74
|
+
}))), { concurrency: config.reads.concurrency });
|
|
75
|
+
const steps = parameters.resume?.steps ?? [...new Map(initial.flatMap(({ steps: resolved }) => resolved).map((step) => [step.name, step])).values()];
|
|
76
|
+
const readyEntries = yield* Effect.forEach(initial.filter((entry) => entry.plan.status === "ready" && entry.plan.target.supported), ({ migration, plan }) => getMigrationEligibility.effect(config, {
|
|
77
|
+
name: migration.name,
|
|
78
|
+
account: address
|
|
79
|
+
}).pipe(Effect.flatMap((eligibility) => eligibility.owner === null ? new MigrationError({
|
|
80
|
+
code: "MIGRATION_BLOCKED",
|
|
81
|
+
message: `Unable to determine the migration token owner for ${migration.name}`
|
|
82
|
+
}) : Effect.succeed({
|
|
83
|
+
parameters: migration,
|
|
84
|
+
plan,
|
|
85
|
+
tokenOwner: eligibility.owner
|
|
86
|
+
}))));
|
|
87
|
+
const helper = yield* getCompatibleMigrationHelper(config);
|
|
88
|
+
const hasDependencies = initial.some(({ steps: resolved }) => resolved.length > 1);
|
|
89
|
+
const approvalsWithEntries = helper === null || hasDependencies || readyEntries.length !== steps.length ? [] : yield* Effect.forEach(readyEntries, (entry) => readApproval(config, entry, helper).pipe(Effect.map((approved) => ({
|
|
90
|
+
entry,
|
|
91
|
+
approved
|
|
92
|
+
}))));
|
|
93
|
+
const canStageApprovals = approvalsWithEntries.every(({ entry, approved }) => approved || isAddressEqual(entry.tokenOwner, address));
|
|
94
|
+
const strategy = parameters.resume?.strategy ?? (helper !== null && readyEntries.length > 0 && approvalsWithEntries.length === readyEntries.length && canStageApprovals ? "helper" : "sequential");
|
|
95
|
+
if (strategy === "helper" && helper === null) return yield* new MigrationError({
|
|
96
|
+
code: "ROUTE_CHANGED",
|
|
97
|
+
message: "MigrationHelper became unavailable while resuming the migration batch"
|
|
98
|
+
});
|
|
99
|
+
const approvals = parameters.resume?.approvals ? [...parameters.resume.approvals] : [];
|
|
100
|
+
const stages = [];
|
|
101
|
+
if (strategy === "helper" && helper !== null) {
|
|
102
|
+
const requiredByToken = /* @__PURE__ */ new Map();
|
|
103
|
+
const listedApprovals = /* @__PURE__ */ new Set();
|
|
104
|
+
for (const { entry, approved } of approvalsWithEntries) {
|
|
105
|
+
const key = `${entry.plan.target.tokenContract}:${entry.tokenOwner}`;
|
|
106
|
+
if (parameters.resume === void 0 && !listedApprovals.has(key)) {
|
|
107
|
+
approvals.push({
|
|
108
|
+
token: entry.plan.target.tokenContract,
|
|
109
|
+
owner: entry.tokenOwner,
|
|
110
|
+
operator: helper,
|
|
111
|
+
required: !approved
|
|
112
|
+
});
|
|
113
|
+
listedApprovals.add(key);
|
|
114
|
+
}
|
|
115
|
+
if (!approved) requiredByToken.set(key, entry);
|
|
116
|
+
}
|
|
117
|
+
if (parameters.resume !== void 0) for (const approval of parameters.resume.approvals) {
|
|
118
|
+
if (!approval.required) continue;
|
|
119
|
+
const entry = readyEntries.find((candidate) => isAddressEqual(candidate.plan.target.tokenContract, approval.token) && isAddressEqual(candidate.tokenOwner, approval.owner));
|
|
120
|
+
if (entry !== void 0) requiredByToken.set(approval.token, entry);
|
|
121
|
+
}
|
|
122
|
+
if (requiredByToken.size > 0) stages.push({
|
|
123
|
+
type: "calls",
|
|
124
|
+
id: "approve-migration-helper",
|
|
125
|
+
calls: [...requiredByToken.values()].map((entry) => approveMigration.call({ name: entry.parameters.name })),
|
|
126
|
+
mode: parameters.mode ?? "auto",
|
|
127
|
+
atomicity: "none",
|
|
128
|
+
confirmation: { type: "confirmed" }
|
|
129
|
+
});
|
|
130
|
+
stages.push({
|
|
131
|
+
type: "calls",
|
|
132
|
+
id: "migrate-with-helper",
|
|
133
|
+
calls: [makeMigrationHelperIntent({ migrations: readyEntries.map(({ parameters: migration }) => migration) })],
|
|
134
|
+
mode: "sequential",
|
|
135
|
+
atomicity: "none",
|
|
136
|
+
confirmation: parameters.confirmation ?? { type: "confirmed" }
|
|
137
|
+
});
|
|
138
|
+
} else for (const [index, step] of steps.entries()) {
|
|
139
|
+
const requested = migrations.find(({ name }) => name === step.name);
|
|
140
|
+
stages.push({
|
|
141
|
+
type: "calls",
|
|
142
|
+
id: `migrate-${index}-${step.name}`,
|
|
143
|
+
calls: [makeMigrationIntent(requested ?? { name: step.name })],
|
|
144
|
+
mode: "sequential",
|
|
145
|
+
atomicity: "none",
|
|
146
|
+
confirmation: parameters.confirmation ?? { type: "confirmed" }
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
if (stages.length === 0) {
|
|
150
|
+
const write = {
|
|
151
|
+
planId: id,
|
|
152
|
+
status: "completed",
|
|
153
|
+
completedStages: [],
|
|
154
|
+
currentStage: null,
|
|
155
|
+
nextActionAt: null,
|
|
156
|
+
failure: null
|
|
157
|
+
};
|
|
158
|
+
return {
|
|
159
|
+
status: "completed",
|
|
160
|
+
strategy,
|
|
161
|
+
migrations: yield* Effect.forEach(migrations, (migration) => getNameState.effect(config, { name: migration.name }).pipe(Effect.map((finalState) => ({
|
|
162
|
+
name: migration.name,
|
|
163
|
+
status: "not-required",
|
|
164
|
+
route: null,
|
|
165
|
+
finalState
|
|
166
|
+
})))),
|
|
167
|
+
approvals,
|
|
168
|
+
steps,
|
|
169
|
+
write
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
const write = yield* executeWritePlan.effect(config, {
|
|
173
|
+
plan: {
|
|
174
|
+
id,
|
|
175
|
+
stages
|
|
176
|
+
},
|
|
177
|
+
...parameters.resume === void 0 ? {} : { resume: parameters.resume.write },
|
|
178
|
+
...parameters.walletClient === void 0 ? {} : { walletClient: parameters.walletClient },
|
|
179
|
+
...parameters.account === void 0 ? {} : { account: parameters.account }
|
|
180
|
+
});
|
|
181
|
+
const completed = write.status === "completed";
|
|
182
|
+
const resultEntries = yield* Effect.forEach(initial, ({ migration, plan, steps: resolved }) => {
|
|
183
|
+
const route = plan.status === "ready" && plan.target.supported ? plan.target.route : resolved.at(-1)?.route ?? parameters.resume?.migrations.find(({ name }) => name === migration.name)?.route ?? null;
|
|
184
|
+
if (!completed) return Effect.succeed({
|
|
185
|
+
name: migration.name,
|
|
186
|
+
status: route === null ? "not-required" : "partial",
|
|
187
|
+
route,
|
|
188
|
+
finalState: null
|
|
189
|
+
});
|
|
190
|
+
return getNameState.effect(config, { name: migration.name }).pipe(Effect.map((finalState) => ({
|
|
191
|
+
name: migration.name,
|
|
192
|
+
status: route === null ? "not-required" : "completed",
|
|
193
|
+
route,
|
|
194
|
+
finalState
|
|
195
|
+
})));
|
|
196
|
+
});
|
|
197
|
+
return {
|
|
198
|
+
status: completed ? "completed" : "partial",
|
|
199
|
+
strategy,
|
|
200
|
+
migrations: resultEntries,
|
|
201
|
+
approvals,
|
|
202
|
+
steps,
|
|
203
|
+
write
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
const migrateNames = defineAction(migrateNamesEffect);
|
|
207
|
+
|
|
208
|
+
//#endregion
|
|
209
|
+
export { migrateNames };
|
|
210
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/actions/migration/migrate-names/index.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport {\n baseRegistrarV1IsApprovedForAllAbi,\n nameWrapperV1IsApprovedForAllAbi,\n} from \"@ensforge/contracts/v1\";\nimport { isAddressEqual, keccak256, stringToHex } from \"viem\";\n\nimport { defineAction } from \"../../../action/action.js\";\nimport type { EnsforgeConfig } from \"../../../config/config.js\";\nimport { MigrationError } from \"../../../errors/migration-error.js\";\nimport { provideConfig } from \"../../../internal/config/context.js\";\nimport { viemErrorToEffectError } from \"../../../internal/errors/viem-error.js\";\nimport { resolveWalletContext } from \"../../../internal/services/wallet-client.js\";\nimport { normalizeName } from \"../../../names/normalize.js\";\nimport type { EthereumAddress } from \"../../../schemas/identity.js\";\nimport type { WriteError, WritePlan } from \"../../../write/types.js\";\nimport { executeWritePlan } from \"../../batch/execute-write-plan.js\";\nimport { getNameState } from \"../../name/get-name-state/index.js\";\nimport { getMigrationEligibility } from \"../get-migration-eligibility/index.js\";\nimport { getMigrationPlan } from \"../get-migration-plan/index.js\";\nimport { resolveMigrationSteps } from \"../migrate-name/index.js\";\nimport {\n approveMigration,\n getCompatibleMigrationHelper,\n makeMigrationHelperIntent,\n makeMigrationIntent,\n} from \"../mutation.js\";\nimport type {\n MigrateNameCallParameters,\n MigrateNamesParameters,\n MigrationBatchApproval,\n MigrationBatchEntry,\n MigrationBatchProgress,\n MigrationNameProgress,\n MigrationPlan,\n MigrationTarget,\n} from \"../types.js\";\n\ntype ReadyPlan = Omit<Extract<MigrationPlan, { readonly status: \"ready\" }>, \"target\"> & {\n readonly target: Extract<MigrationTarget, { readonly supported: true }>;\n};\ntype ReadyEntry = {\n readonly parameters: MigrateNameCallParameters;\n readonly plan: ReadyPlan;\n readonly tokenOwner: EthereumAddress;\n};\n\nconst planId = (migrations: ReadonlyArray<MigrateNameCallParameters>) =>\n `migrateNames:${keccak256(\n stringToHex(\n JSON.stringify(\n migrations.map(({ name, owner, resolver, subregistry }) => ({\n name,\n owner: owner ?? null,\n resolver: resolver ?? null,\n subregistry: subregistry ?? null,\n })),\n ),\n ),\n )}`;\n\nconst readApproval = Effect.fn(\"ensforge.migrateNames.readApproval\")(function* (\n config: EnsforgeConfig,\n entry: ReadyEntry,\n helper: EthereumAddress,\n) {\n return yield* Effect.tryPromise({\n try: () =>\n config.publicClient.readContract({\n address: entry.plan.target.tokenContract,\n abi:\n entry.plan.target.tokenStandard === \"erc721\"\n ? baseRegistrarV1IsApprovedForAllAbi\n : nameWrapperV1IsApprovedForAllAbi,\n functionName: \"isApprovedForAll\",\n args: [entry.tokenOwner, helper],\n }),\n catch: (cause) => viemErrorToEffectError(cause, \"readContract\"),\n });\n});\n\nconst migrateNamesEffect = Effect.fn(\"ensforge.migrateNames\")(function* (\n config: EnsforgeConfig,\n parameters: MigrateNamesParameters,\n): Effect.fn.Return<MigrationBatchProgress, WriteError> {\n if (parameters.migrations.length === 0) {\n return yield* new MigrationError({\n code: \"INVALID_MIGRATION_BATCH\",\n message: \"migrateNames requires at least one migration\",\n });\n }\n const migrations = yield* Effect.forEach(parameters.migrations, (migration) =>\n normalizeName.effect(migration.name).pipe(Effect.map((name) => ({ ...migration, name }))),\n );\n if (new Set(migrations.map(({ name }) => name)).size !== migrations.length) {\n return yield* new MigrationError({\n code: \"INVALID_MIGRATION_BATCH\",\n message: \"migrateNames cannot contain duplicate names\",\n });\n }\n const id = planId(migrations);\n if (parameters.resume !== undefined && parameters.resume.write.planId !== id) {\n return yield* new MigrationError({\n code: \"ROUTE_CHANGED\",\n message: \"Migration resume data does not match the supplied batch\",\n });\n }\n if (parameters.resume?.write.status === \"completed\") {\n const completedEntries = yield* Effect.forEach(parameters.resume.migrations, (entry) =>\n getNameState.effect(config, { name: entry.name }).pipe(\n Effect.map((finalState): MigrationBatchEntry => ({\n ...entry,\n status: entry.route === null ? \"not-required\" : \"completed\",\n finalState,\n })),\n ),\n );\n return { ...parameters.resume, status: \"completed\", migrations: completedEntries };\n }\n\n const { account } = yield* provideConfig(config, resolveWalletContext(parameters));\n const address = (typeof account === \"string\" ? account : account.address) as EthereumAddress;\n const initial = yield* Effect.forEach(\n migrations,\n (migration) =>\n Effect.all(\n [\n getMigrationPlan.effect(config, { ...migration, account: address }),\n resolveMigrationSteps(config, migration, address, true),\n ] as const,\n { concurrency: \"unbounded\" },\n ).pipe(Effect.map(([plan, steps]) => ({ migration, plan, steps }))),\n { concurrency: config.reads.concurrency },\n );\n const steps = parameters.resume?.steps ?? [\n ...new Map(\n initial.flatMap(({ steps: resolved }) => resolved).map((step) => [step.name, step]),\n ).values(),\n ];\n\n const readyEntries = yield* Effect.forEach(\n initial.filter(\n (entry): entry is typeof entry & { readonly plan: ReadyPlan } =>\n entry.plan.status === \"ready\" && entry.plan.target.supported,\n ),\n ({ migration, plan }) =>\n getMigrationEligibility.effect(config, { name: migration.name, account: address }).pipe(\n Effect.flatMap((eligibility) =>\n eligibility.owner === null\n ? new MigrationError({\n code: \"MIGRATION_BLOCKED\",\n message: `Unable to determine the migration token owner for ${migration.name}`,\n })\n : Effect.succeed({ parameters: migration, plan, tokenOwner: eligibility.owner }),\n ),\n ),\n );\n const helper = yield* getCompatibleMigrationHelper(config);\n const hasDependencies = initial.some(({ steps: resolved }) => resolved.length > 1);\n const approvalsWithEntries =\n helper === null || hasDependencies || readyEntries.length !== steps.length\n ? []\n : yield* Effect.forEach(readyEntries, (entry) =>\n readApproval(config, entry, helper).pipe(Effect.map((approved) => ({ entry, approved }))),\n );\n const canStageApprovals = approvalsWithEntries.every(\n ({ entry, approved }) => approved || isAddressEqual(entry.tokenOwner, address),\n );\n const strategy: MigrationBatchProgress[\"strategy\"] =\n parameters.resume?.strategy ??\n (helper !== null &&\n readyEntries.length > 0 &&\n approvalsWithEntries.length === readyEntries.length &&\n canStageApprovals\n ? \"helper\"\n : \"sequential\");\n if (strategy === \"helper\" && helper === null) {\n return yield* new MigrationError({\n code: \"ROUTE_CHANGED\",\n message: \"MigrationHelper became unavailable while resuming the migration batch\",\n });\n }\n\n const approvals: Array<MigrationBatchApproval> = parameters.resume?.approvals\n ? [...parameters.resume.approvals]\n : [];\n const stages: Array<WritePlan[\"stages\"][number]> = [];\n if (strategy === \"helper\" && helper !== null) {\n const requiredByToken = new Map<string, ReadyEntry>();\n const listedApprovals = new Set<string>();\n for (const { entry, approved } of approvalsWithEntries) {\n const key = `${entry.plan.target.tokenContract}:${entry.tokenOwner}`;\n if (parameters.resume === undefined && !listedApprovals.has(key)) {\n approvals.push({\n token: entry.plan.target.tokenContract,\n owner: entry.tokenOwner,\n operator: helper,\n required: !approved,\n });\n listedApprovals.add(key);\n }\n if (!approved) requiredByToken.set(key, entry);\n }\n if (parameters.resume !== undefined) {\n for (const approval of parameters.resume.approvals) {\n if (!approval.required) continue;\n const entry = readyEntries.find(\n (candidate) =>\n isAddressEqual(candidate.plan.target.tokenContract, approval.token) &&\n isAddressEqual(candidate.tokenOwner, approval.owner),\n );\n if (entry !== undefined) requiredByToken.set(approval.token, entry);\n }\n }\n if (requiredByToken.size > 0) {\n stages.push({\n type: \"calls\",\n id: \"approve-migration-helper\",\n calls: [...requiredByToken.values()].map((entry) =>\n approveMigration.call({ name: entry.parameters.name }),\n ),\n mode: parameters.mode ?? \"auto\",\n atomicity: \"none\",\n confirmation: { type: \"confirmed\" },\n });\n }\n stages.push({\n type: \"calls\",\n id: \"migrate-with-helper\",\n calls: [\n makeMigrationHelperIntent({\n migrations: readyEntries.map(({ parameters: migration }) => migration),\n }),\n ],\n mode: \"sequential\",\n atomicity: \"none\",\n confirmation: parameters.confirmation ?? { type: \"confirmed\" },\n });\n } else {\n for (const [index, step] of steps.entries()) {\n const requested = migrations.find(({ name }) => name === step.name);\n stages.push({\n type: \"calls\",\n id: `migrate-${index}-${step.name}`,\n calls: [makeMigrationIntent(requested ?? { name: step.name })],\n mode: \"sequential\",\n atomicity: \"none\",\n confirmation: parameters.confirmation ?? { type: \"confirmed\" },\n });\n }\n }\n\n if (stages.length === 0) {\n const write = {\n planId: id,\n status: \"completed\",\n completedStages: [],\n currentStage: null,\n nextActionAt: null,\n failure: null,\n } as const;\n const entries = yield* Effect.forEach(migrations, (migration) =>\n getNameState.effect(config, { name: migration.name }).pipe(\n Effect.map((finalState): MigrationBatchEntry => ({\n name: migration.name,\n status: \"not-required\",\n route: null,\n finalState,\n })),\n ),\n );\n return {\n status: \"completed\",\n strategy,\n migrations: entries,\n approvals,\n steps,\n write,\n };\n }\n\n const write = yield* executeWritePlan.effect(config, {\n plan: { id, stages },\n ...(parameters.resume === undefined ? {} : { resume: parameters.resume.write }),\n ...(parameters.walletClient === undefined ? {} : { walletClient: parameters.walletClient }),\n ...(parameters.account === undefined ? {} : { account: parameters.account }),\n });\n const completed = write.status === \"completed\";\n const resultEntries = yield* Effect.forEach(initial, ({ migration, plan, steps: resolved }) => {\n const route =\n plan.status === \"ready\" && plan.target.supported\n ? plan.target.route\n : ((resolved.at(-1)?.route ??\n parameters.resume?.migrations.find(({ name }) => name === migration.name)?.route ??\n null) as MigrationNameProgress[\"route\"] | null);\n if (!completed) {\n return Effect.succeed({\n name: migration.name,\n status: route === null ? \"not-required\" : \"partial\",\n route,\n finalState: null,\n } satisfies MigrationBatchEntry);\n }\n return getNameState.effect(config, { name: migration.name }).pipe(\n Effect.map((finalState): MigrationBatchEntry => ({\n name: migration.name,\n status: route === null ? \"not-required\" : \"completed\",\n route,\n finalState,\n })),\n );\n });\n return {\n status: completed ? \"completed\" : \"partial\",\n strategy,\n migrations: resultEntries,\n approvals,\n steps,\n write,\n };\n});\n\nexport const migrateNames = defineAction<\n MigrateNamesParameters,\n MigrationBatchProgress,\n WriteError\n>(migrateNamesEffect);\n\nexport type {\n MigrateNamesParameters,\n MigrationBatchEntry,\n MigrationBatchProgress,\n} from \"../types.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAgDA,MAAM,UAAU,eACd,gBAAgB,UACd,YACE,KAAK,UACH,WAAW,KAAK,EAAE,MAAM,OAAO,UAAU,mBAAmB;CAC1D;CACA,OAAO,SAAS;CAChB,UAAU,YAAY;CACtB,aAAa,eAAe;AAC9B,EAAE,CACJ,CACF,CACF;AAEF,MAAM,eAAe,OAAO,GAAG,oCAAoC,CAAC,CAAC,WACnE,QACA,OACA,QACA;CACA,OAAO,OAAO,OAAO,WAAW;EAC9B,WACE,OAAO,aAAa,aAAa;GAC/B,SAAS,MAAM,KAAK,OAAO;GAC3B,KACE,MAAM,KAAK,OAAO,kBAAkB,WAChC,qCACA;GACN,cAAc;GACd,MAAM,CAAC,MAAM,YAAY,MAAM;EACjC,CAAC;EACH,QAAQ,UAAU,uBAAuB,OAAO,cAAc;CAChE,CAAC;AACH,CAAC;AAED,MAAM,qBAAqB,OAAO,GAAG,uBAAuB,CAAC,CAAC,WAC5D,QACA,YACsD;CACtD,IAAI,WAAW,WAAW,WAAW,GACnC,OAAO,OAAO,IAAI,eAAe;EAC/B,MAAM;EACN,SAAS;CACX,CAAC;CAEH,MAAM,aAAa,OAAO,OAAO,QAAQ,WAAW,aAAa,cAC/D,cAAc,OAAO,UAAU,IAAI,CAAC,CAAC,KAAK,OAAO,KAAK,UAAU;EAAE,GAAG;EAAW;CAAK,EAAE,CAAC,CAC1F;CACA,IAAI,IAAI,IAAI,WAAW,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,SAAS,WAAW,QAClE,OAAO,OAAO,IAAI,eAAe;EAC/B,MAAM;EACN,SAAS;CACX,CAAC;CAEH,MAAM,KAAK,OAAO,UAAU;CAC5B,IAAI,WAAW,WAAW,UAAa,WAAW,OAAO,MAAM,WAAW,IACxE,OAAO,OAAO,IAAI,eAAe;EAC/B,MAAM;EACN,SAAS;CACX,CAAC;CAEH,IAAI,WAAW,QAAQ,MAAM,WAAW,aAAa;EACnD,MAAM,mBAAmB,OAAO,OAAO,QAAQ,WAAW,OAAO,aAAa,UAC5E,aAAa,OAAO,QAAQ,EAAE,MAAM,MAAM,KAAK,CAAC,CAAC,CAAC,KAChD,OAAO,KAAK,gBAAqC;GAC/C,GAAG;GACH,QAAQ,MAAM,UAAU,OAAO,iBAAiB;GAChD;EACF,EAAE,CACJ,CACF;EACA,OAAO;GAAE,GAAG,WAAW;GAAQ,QAAQ;GAAa,YAAY;EAAiB;CACnF;CAEA,MAAM,EAAE,YAAY,OAAO,cAAc,QAAQ,qBAAqB,UAAU,CAAC;CACjF,MAAM,UAAW,OAAO,YAAY,WAAW,UAAU,QAAQ;CACjE,MAAM,UAAU,OAAO,OAAO,QAC5B,aACC,cACC,OAAO,IACL,CACE,iBAAiB,OAAO,QAAQ;EAAE,GAAG;EAAW,SAAS;CAAQ,CAAC,GAClE,sBAAsB,QAAQ,WAAW,SAAS,IAAI,CACxD,GACA,EAAE,aAAa,YAAY,CAC7B,CAAC,CAAC,KAAK,OAAO,KAAK,CAAC,MAAM,YAAY;EAAE;EAAW;EAAM;CAAM,EAAE,CAAC,GACpE,EAAE,aAAa,OAAO,MAAM,YAAY,CAC1C;CACA,MAAM,QAAQ,WAAW,QAAQ,SAAS,CACxC,GAAG,IAAI,IACL,QAAQ,SAAS,EAAE,OAAO,eAAe,QAAQ,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,CACpF,CAAC,CAAC,OAAO,CACX;CAEA,MAAM,eAAe,OAAO,OAAO,QACjC,QAAQ,QACL,UACC,MAAM,KAAK,WAAW,WAAW,MAAM,KAAK,OAAO,SACvD,IACC,EAAE,WAAW,WACZ,wBAAwB,OAAO,QAAQ;EAAE,MAAM,UAAU;EAAM,SAAS;CAAQ,CAAC,CAAC,CAAC,KACjF,OAAO,SAAS,gBACd,YAAY,UAAU,OAClB,IAAI,eAAe;EACjB,MAAM;EACN,SAAS,qDAAqD,UAAU;CAC1E,CAAC,IACD,OAAO,QAAQ;EAAE,YAAY;EAAW;EAAM,YAAY,YAAY;CAAM,CAAC,CACnF,CACF,CACJ;CACA,MAAM,SAAS,OAAO,6BAA6B,MAAM;CACzD,MAAM,kBAAkB,QAAQ,MAAM,EAAE,OAAO,eAAe,SAAS,SAAS,CAAC;CACjF,MAAM,uBACJ,WAAW,QAAQ,mBAAmB,aAAa,WAAW,MAAM,SAChE,CAAC,IACD,OAAO,OAAO,QAAQ,eAAe,UACnC,aAAa,QAAQ,OAAO,MAAM,CAAC,CAAC,KAAK,OAAO,KAAK,cAAc;EAAE;EAAO;CAAS,EAAE,CAAC,CAC1F;CACN,MAAM,oBAAoB,qBAAqB,OAC5C,EAAE,OAAO,eAAe,YAAY,eAAe,MAAM,YAAY,OAAO,CAC/E;CACA,MAAM,WACJ,WAAW,QAAQ,aAClB,WAAW,QACZ,aAAa,SAAS,KACtB,qBAAqB,WAAW,aAAa,UAC7C,oBACI,WACA;CACN,IAAI,aAAa,YAAY,WAAW,MACtC,OAAO,OAAO,IAAI,eAAe;EAC/B,MAAM;EACN,SAAS;CACX,CAAC;CAGH,MAAM,YAA2C,WAAW,QAAQ,YAChE,CAAC,GAAG,WAAW,OAAO,SAAS,IAC/B,CAAC;CACL,MAAM,SAA6C,CAAC;CACpD,IAAI,aAAa,YAAY,WAAW,MAAM;EAC5C,MAAM,kCAAkB,IAAI,IAAwB;EACpD,MAAM,kCAAkB,IAAI,IAAY;EACxC,KAAK,MAAM,EAAE,OAAO,cAAc,sBAAsB;GACtD,MAAM,MAAM,GAAG,MAAM,KAAK,OAAO,cAAc,GAAG,MAAM;GACxD,IAAI,WAAW,WAAW,UAAa,CAAC,gBAAgB,IAAI,GAAG,GAAG;IAChE,UAAU,KAAK;KACb,OAAO,MAAM,KAAK,OAAO;KACzB,OAAO,MAAM;KACb,UAAU;KACV,UAAU,CAAC;IACb,CAAC;IACD,gBAAgB,IAAI,GAAG;GACzB;GACA,IAAI,CAAC,UAAU,gBAAgB,IAAI,KAAK,KAAK;EAC/C;EACA,IAAI,WAAW,WAAW,QACxB,KAAK,MAAM,YAAY,WAAW,OAAO,WAAW;GAClD,IAAI,CAAC,SAAS,UAAU;GACxB,MAAM,QAAQ,aAAa,MACxB,cACC,eAAe,UAAU,KAAK,OAAO,eAAe,SAAS,KAAK,KAClE,eAAe,UAAU,YAAY,SAAS,KAAK,CACvD;GACA,IAAI,UAAU,QAAW,gBAAgB,IAAI,SAAS,OAAO,KAAK;EACpE;EAEF,IAAI,gBAAgB,OAAO,GACzB,OAAO,KAAK;GACV,MAAM;GACN,IAAI;GACJ,OAAO,CAAC,GAAG,gBAAgB,OAAO,CAAC,CAAC,CAAC,KAAK,UACxC,iBAAiB,KAAK,EAAE,MAAM,MAAM,WAAW,KAAK,CAAC,CACvD;GACA,MAAM,WAAW,QAAQ;GACzB,WAAW;GACX,cAAc,EAAE,MAAM,YAAY;EACpC,CAAC;EAEH,OAAO,KAAK;GACV,MAAM;GACN,IAAI;GACJ,OAAO,CACL,0BAA0B,EACxB,YAAY,aAAa,KAAK,EAAE,YAAY,gBAAgB,SAAS,EACvE,CAAC,CACH;GACA,MAAM;GACN,WAAW;GACX,cAAc,WAAW,gBAAgB,EAAE,MAAM,YAAY;EAC/D,CAAC;CACH,OACE,KAAK,MAAM,CAAC,OAAO,SAAS,MAAM,QAAQ,GAAG;EAC3C,MAAM,YAAY,WAAW,MAAM,EAAE,WAAW,SAAS,KAAK,IAAI;EAClE,OAAO,KAAK;GACV,MAAM;GACN,IAAI,WAAW,MAAM,GAAG,KAAK;GAC7B,OAAO,CAAC,oBAAoB,aAAa,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC;GAC7D,MAAM;GACN,WAAW;GACX,cAAc,WAAW,gBAAgB,EAAE,MAAM,YAAY;EAC/D,CAAC;CACH;CAGF,IAAI,OAAO,WAAW,GAAG;EACvB,MAAM,QAAQ;GACZ,QAAQ;GACR,QAAQ;GACR,iBAAiB,CAAC;GAClB,cAAc;GACd,cAAc;GACd,SAAS;EACX;EAWA,OAAO;GACL,QAAQ;GACR;GACA,YAAY,OAbS,OAAO,QAAQ,aAAa,cACjD,aAAa,OAAO,QAAQ,EAAE,MAAM,UAAU,KAAK,CAAC,CAAC,CAAC,KACpD,OAAO,KAAK,gBAAqC;IAC/C,MAAM,UAAU;IAChB,QAAQ;IACR,OAAO;IACP;GACF,EAAE,CACJ,CACF;GAKE;GACA;GACA;EACF;CACF;CAEA,MAAM,QAAQ,OAAO,iBAAiB,OAAO,QAAQ;EACnD,MAAM;GAAE;GAAI;EAAO;EACnB,GAAI,WAAW,WAAW,SAAY,CAAC,IAAI,EAAE,QAAQ,WAAW,OAAO,MAAM;EAC7E,GAAI,WAAW,iBAAiB,SAAY,CAAC,IAAI,EAAE,cAAc,WAAW,aAAa;EACzF,GAAI,WAAW,YAAY,SAAY,CAAC,IAAI,EAAE,SAAS,WAAW,QAAQ;CAC5E,CAAC;CACD,MAAM,YAAY,MAAM,WAAW;CACnC,MAAM,gBAAgB,OAAO,OAAO,QAAQ,UAAU,EAAE,WAAW,MAAM,OAAO,eAAe;EAC7F,MAAM,QACJ,KAAK,WAAW,WAAW,KAAK,OAAO,YACnC,KAAK,OAAO,QACV,SAAS,GAAG,EAAE,CAAC,EAAE,SACjB,WAAW,QAAQ,WAAW,MAAM,EAAE,WAAW,SAAS,UAAU,IAAI,CAAC,EAAE,SAC3E;EACR,IAAI,CAAC,WACH,OAAO,OAAO,QAAQ;GACpB,MAAM,UAAU;GAChB,QAAQ,UAAU,OAAO,iBAAiB;GAC1C;GACA,YAAY;EACd,CAA+B;EAEjC,OAAO,aAAa,OAAO,QAAQ,EAAE,MAAM,UAAU,KAAK,CAAC,CAAC,CAAC,KAC3D,OAAO,KAAK,gBAAqC;GAC/C,MAAM,UAAU;GAChB,QAAQ,UAAU,OAAO,iBAAiB;GAC1C;GACA;EACF,EAAE,CACJ;CACF,CAAC;CACD,OAAO;EACL,QAAQ,YAAY,cAAc;EAClC;EACA,YAAY;EACZ;EACA;EACA;CACF;AACF,CAAC;AAED,MAAa,eAAe,aAI1B,kBAAkB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CallExecutionResult, WriteError } from "../../write/types.js";
|
|
2
|
+
import { EnsWriteAction } from "../../action/write-intent.js";
|
|
3
|
+
import { ApproveMigrationParameters } from "./types.js";
|
|
4
|
+
import "../../index.js";
|
|
5
|
+
import { Effect } from "effect";
|
|
6
|
+
//#region src/actions/migration/mutation.d.ts
|
|
7
|
+
declare const approveMigration: EnsWriteAction<ApproveMigrationParameters, CallExecutionResult, WriteError>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { approveMigration };
|
|
10
|
+
//# sourceMappingURL=mutation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation.d.ts","names":[],"sources":["../../../src/actions/migration/mutation.ts"],"mappings":";;;;;;cA8Ra,kBAAgB,eAAA,4BAAA,qBAAA"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { makeWriteIntent } from "../../action/write-intent.js";
|
|
2
|
+
import { ContractError } from "../../errors/contract-error.js";
|
|
3
|
+
import { dnsEncodeName } from "../../names/dns.js";
|
|
4
|
+
import { makeSingleWriteAction } from "../../internal/write/single-write-action.js";
|
|
5
|
+
import { getMigrationEligibility } from "./get-migration-eligibility/index.js";
|
|
6
|
+
import { getMigrationPlan } from "./get-migration-plan/index.js";
|
|
7
|
+
import { MigrationError } from "../../errors/migration-error.js";
|
|
8
|
+
import { Effect } from "effect";
|
|
9
|
+
import { encodeAbiParameters, encodeFunctionData, isAddressEqual } from "viem";
|
|
10
|
+
import { baseRegistrarV1SafeTransferFromAbi, baseRegistrarV1SetApprovalForAllAbi, nameWrapperV1SafeTransferFromAbi, nameWrapperV1SetApprovalForAllAbi } from "@ensforge/contracts/v1";
|
|
11
|
+
import { migrationHelperV2MigrateAbi, migrationHelperV2NameWrapperAbi } from "@ensforge/contracts/v2";
|
|
12
|
+
|
|
13
|
+
//#region src/actions/migration/mutation.ts
|
|
14
|
+
const migrationTuple = [{
|
|
15
|
+
type: "tuple",
|
|
16
|
+
components: [
|
|
17
|
+
{
|
|
18
|
+
name: "label",
|
|
19
|
+
type: "string"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "owner",
|
|
23
|
+
type: "address"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "subregistry",
|
|
27
|
+
type: "address"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "resolver",
|
|
31
|
+
type: "address"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}];
|
|
35
|
+
const encode = (operation, makeData) => Effect.try({
|
|
36
|
+
try: makeData,
|
|
37
|
+
catch: (cause) => new ContractError({
|
|
38
|
+
code: "ENCODE_FAILED",
|
|
39
|
+
message: `Unable to encode ${operation}`,
|
|
40
|
+
cause
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
const getCompatibleMigrationHelper = Effect.fn("ensforge.migration.getCompatibleHelper")(function* (config) {
|
|
44
|
+
const helper = config.deployments.v2?.migration.migrationHelper;
|
|
45
|
+
const expectedWrapper = config.deployments.v1?.contracts.nameWrapper;
|
|
46
|
+
if (helper === void 0 || expectedWrapper === void 0) return null;
|
|
47
|
+
const wrapper = yield* Effect.tryPromise(() => config.publicClient.readContract({
|
|
48
|
+
address: helper,
|
|
49
|
+
abi: migrationHelperV2NameWrapperAbi,
|
|
50
|
+
functionName: "NAME_WRAPPER"
|
|
51
|
+
})).pipe(Effect.catch(() => Effect.succeed(null)));
|
|
52
|
+
return wrapper !== null && isAddressEqual(wrapper, expectedWrapper) ? helper : null;
|
|
53
|
+
});
|
|
54
|
+
const requireReadyPlan = Effect.fn("ensforge.migration.requireReadyPlan")(function* (config, parameters, account) {
|
|
55
|
+
const plan = yield* getMigrationPlan.effect(config, {
|
|
56
|
+
...parameters,
|
|
57
|
+
account
|
|
58
|
+
});
|
|
59
|
+
switch (plan.status) {
|
|
60
|
+
case "ready":
|
|
61
|
+
if (!plan.target.supported) return yield* new MigrationError({
|
|
62
|
+
code: "MIGRATION_BLOCKED",
|
|
63
|
+
message: `${plan.name} has no transferable migration target`
|
|
64
|
+
});
|
|
65
|
+
return plan;
|
|
66
|
+
case "authorization-required": return yield* new MigrationError({
|
|
67
|
+
code: "AUTHORIZATION_REQUIRED",
|
|
68
|
+
message: `${account} is not authorized to migrate ${plan.name}`
|
|
69
|
+
});
|
|
70
|
+
case "blocked": return yield* new MigrationError({
|
|
71
|
+
code: "MIGRATION_BLOCKED",
|
|
72
|
+
message: `${plan.name} cannot be migrated: ${plan.blockers.join(", ")}`
|
|
73
|
+
});
|
|
74
|
+
case "not-required": return yield* new MigrationError({
|
|
75
|
+
code: "MIGRATION_NOT_REQUIRED",
|
|
76
|
+
message: `${plan.name} does not require migration`
|
|
77
|
+
});
|
|
78
|
+
case "unsupported": return yield* new MigrationError({
|
|
79
|
+
code: "MIGRATION_UNSUPPORTED",
|
|
80
|
+
message: `${plan.name} cannot be migrated on this deployment`
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
const approvalPreparer = Effect.fn("ensforge.approveMigration.prepare")(function* (config, parameters, context) {
|
|
85
|
+
const account = typeof context.account === "string" ? context.account : context.account.address;
|
|
86
|
+
const eligibility = yield* getMigrationEligibility.effect(config, {
|
|
87
|
+
name: parameters.name,
|
|
88
|
+
account
|
|
89
|
+
});
|
|
90
|
+
if (!eligibility.target.supported || eligibility.owner === null) return yield* new MigrationError({
|
|
91
|
+
code: "MIGRATION_UNSUPPORTED",
|
|
92
|
+
message: `${eligibility.name} has no migration token to approve`
|
|
93
|
+
});
|
|
94
|
+
const target = eligibility.target;
|
|
95
|
+
if (!isAddressEqual(eligibility.owner, account)) return yield* new MigrationError({
|
|
96
|
+
code: "AUTHORIZATION_REQUIRED",
|
|
97
|
+
message: `Only the token owner can approve MigrationHelper for ${eligibility.name}`
|
|
98
|
+
});
|
|
99
|
+
const helper = yield* getCompatibleMigrationHelper(config);
|
|
100
|
+
if (helper === null) return yield* new MigrationError({
|
|
101
|
+
code: "MIGRATION_UNSUPPORTED",
|
|
102
|
+
message: "MigrationHelper is unavailable on this deployment"
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
to: target.tokenContract,
|
|
106
|
+
data: yield* encode("approveMigration", () => encodeFunctionData({
|
|
107
|
+
abi: target.tokenStandard === "erc721" ? baseRegistrarV1SetApprovalForAllAbi : nameWrapperV1SetApprovalForAllAbi,
|
|
108
|
+
functionName: "setApprovalForAll",
|
|
109
|
+
args: [helper, parameters.approved ?? true]
|
|
110
|
+
})),
|
|
111
|
+
value: 0n,
|
|
112
|
+
protocol: "v1"
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
const migrationPreparer = Effect.fn("ensforge.migrateName.prepare")(function* (config, parameters, context) {
|
|
116
|
+
const account = typeof context.account === "string" ? context.account : context.account.address;
|
|
117
|
+
const [plan, eligibility] = yield* Effect.all([requireReadyPlan(config, parameters, account), getMigrationEligibility.effect(config, {
|
|
118
|
+
name: parameters.name,
|
|
119
|
+
account
|
|
120
|
+
})], { concurrency: "unbounded" });
|
|
121
|
+
if (eligibility.owner === null) return yield* new MigrationError({
|
|
122
|
+
code: "MIGRATION_BLOCKED",
|
|
123
|
+
message: `Unable to determine the migration token owner for ${plan.name}`
|
|
124
|
+
});
|
|
125
|
+
const tokenOwner = eligibility.owner;
|
|
126
|
+
const payload = yield* encode("migration payload", () => encodeAbiParameters(migrationTuple, [plan.migration]));
|
|
127
|
+
return {
|
|
128
|
+
to: plan.target.tokenContract,
|
|
129
|
+
data: yield* encode("migrateName", () => plan.target.tokenStandard === "erc721" ? encodeFunctionData({
|
|
130
|
+
abi: baseRegistrarV1SafeTransferFromAbi,
|
|
131
|
+
functionName: "safeTransferFrom",
|
|
132
|
+
args: [
|
|
133
|
+
tokenOwner,
|
|
134
|
+
plan.target.receiver,
|
|
135
|
+
plan.target.tokenId,
|
|
136
|
+
payload
|
|
137
|
+
]
|
|
138
|
+
}) : encodeFunctionData({
|
|
139
|
+
abi: nameWrapperV1SafeTransferFromAbi,
|
|
140
|
+
functionName: "safeTransferFrom",
|
|
141
|
+
args: [
|
|
142
|
+
tokenOwner,
|
|
143
|
+
plan.target.receiver,
|
|
144
|
+
plan.target.tokenId,
|
|
145
|
+
1n,
|
|
146
|
+
payload
|
|
147
|
+
]
|
|
148
|
+
})),
|
|
149
|
+
value: 0n,
|
|
150
|
+
protocol: "v2"
|
|
151
|
+
};
|
|
152
|
+
});
|
|
153
|
+
const groupPlans = (plans, route) => {
|
|
154
|
+
const groups = /* @__PURE__ */ new Map();
|
|
155
|
+
for (const entry of plans) {
|
|
156
|
+
if (entry.plan.target.route !== route) continue;
|
|
157
|
+
groups.set(entry.tokenOwner, [...groups.get(entry.tokenOwner) ?? [], entry.plan.migration]);
|
|
158
|
+
}
|
|
159
|
+
return [...groups.values()];
|
|
160
|
+
};
|
|
161
|
+
const helperPreparer = Effect.fn("ensforge.migrateNames.prepareHelper")(function* (config, parameters, context) {
|
|
162
|
+
const account = typeof context.account === "string" ? context.account : context.account.address;
|
|
163
|
+
const helper = yield* getCompatibleMigrationHelper(config);
|
|
164
|
+
if (helper === null) return yield* new MigrationError({
|
|
165
|
+
code: "MIGRATION_UNSUPPORTED",
|
|
166
|
+
message: "MigrationHelper is unavailable on this deployment"
|
|
167
|
+
});
|
|
168
|
+
const entries = yield* Effect.forEach(parameters.migrations, (migration) => Effect.all([requireReadyPlan(config, migration, account), getMigrationEligibility.effect(config, {
|
|
169
|
+
name: migration.name,
|
|
170
|
+
account
|
|
171
|
+
})], { concurrency: "unbounded" }).pipe(Effect.flatMap(([plan, eligibility]) => eligibility.owner === null ? new MigrationError({
|
|
172
|
+
code: "MIGRATION_BLOCKED",
|
|
173
|
+
message: `Unable to determine the migration token owner for ${plan.name}`
|
|
174
|
+
}) : Effect.succeed({
|
|
175
|
+
plan,
|
|
176
|
+
tokenOwner: eligibility.owner
|
|
177
|
+
}))));
|
|
178
|
+
const parentNames = /* @__PURE__ */ new Map();
|
|
179
|
+
for (const entry of entries) {
|
|
180
|
+
if (entry.plan.target.route !== "locked-child") continue;
|
|
181
|
+
const parent = entry.plan.name.split(".").slice(1).join(".");
|
|
182
|
+
parentNames.set(parent, [...parentNames.get(parent) ?? [], entry]);
|
|
183
|
+
}
|
|
184
|
+
const lockedChildrenGroups = yield* Effect.forEach([...parentNames.entries()], ([parent, children]) => dnsEncodeName.effect(parent).pipe(Effect.map((parentName) => ({
|
|
185
|
+
parentName,
|
|
186
|
+
groups: groupPlans(children, "locked-child")
|
|
187
|
+
}))));
|
|
188
|
+
return {
|
|
189
|
+
to: helper,
|
|
190
|
+
data: yield* encode("migrateNames", () => encodeFunctionData({
|
|
191
|
+
abi: migrationHelperV2MigrateAbi,
|
|
192
|
+
functionName: "migrate",
|
|
193
|
+
args: [
|
|
194
|
+
entries.filter(({ plan }) => plan.target.route === "unwrapped").map(({ plan }) => plan.migration),
|
|
195
|
+
groupPlans(entries, "wrapped-unlocked"),
|
|
196
|
+
groupPlans(entries, "wrapped-locked"),
|
|
197
|
+
lockedChildrenGroups
|
|
198
|
+
]
|
|
199
|
+
})),
|
|
200
|
+
value: 0n,
|
|
201
|
+
protocol: "v2"
|
|
202
|
+
};
|
|
203
|
+
});
|
|
204
|
+
const approveMigration = makeSingleWriteAction("approveMigration", approvalPreparer);
|
|
205
|
+
const makeMigrationIntent = (parameters) => makeWriteIntent("migrateName", parameters, migrationPreparer);
|
|
206
|
+
const makeMigrationHelperIntent = (parameters) => makeWriteIntent("migrateNames", parameters, helperPreparer);
|
|
207
|
+
|
|
208
|
+
//#endregion
|
|
209
|
+
export { approveMigration, getCompatibleMigrationHelper, makeMigrationHelperIntent, makeMigrationIntent };
|
|
210
|
+
//# sourceMappingURL=mutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation.js","names":[],"sources":["../../../src/actions/migration/mutation.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport {\n baseRegistrarV1SafeTransferFromAbi,\n baseRegistrarV1SetApprovalForAllAbi,\n nameWrapperV1SafeTransferFromAbi,\n nameWrapperV1SetApprovalForAllAbi,\n} from \"@ensforge/contracts/v1\";\nimport {\n migrationHelperV2MigrateAbi,\n migrationHelperV2NameWrapperAbi,\n} from \"@ensforge/contracts/v2\";\nimport { encodeAbiParameters, encodeFunctionData, isAddressEqual } from \"viem\";\n\nimport {\n makeWriteIntent,\n type EnsWriteIntent,\n type EnsWriteIntentPreparer,\n} from \"../../action/write-intent.js\";\nimport { ContractError } from \"../../errors/contract-error.js\";\nimport { MigrationError } from \"../../errors/migration-error.js\";\nimport { makeSingleWriteAction } from \"../../internal/write/single-write-action.js\";\nimport { dnsEncodeName } from \"../../names/dns.js\";\nimport type { EthereumAddress } from \"../../schemas/identity.js\";\nimport type { CallExecutionResult, WriteError } from \"../../write/types.js\";\nimport { getMigrationEligibility } from \"./get-migration-eligibility/index.js\";\nimport { getMigrationPlan } from \"./get-migration-plan/index.js\";\nimport type {\n ApproveMigrationParameters,\n MigrateNameCallParameters,\n MigrationPlan,\n MigrationTarget,\n} from \"./types.js\";\n\ntype ReadyPlan = Omit<Extract<MigrationPlan, { readonly status: \"ready\" }>, \"target\"> & {\n readonly target: Extract<MigrationTarget, { readonly supported: true }>;\n};\n\ninterface HelperMigrationParameters {\n readonly migrations: ReadonlyArray<MigrateNameCallParameters>;\n}\n\nconst migrationTuple = [\n {\n type: \"tuple\",\n components: [\n { name: \"label\", type: \"string\" },\n { name: \"owner\", type: \"address\" },\n { name: \"subregistry\", type: \"address\" },\n { name: \"resolver\", type: \"address\" },\n ],\n },\n] as const;\n\nconst encode = (operation: string, makeData: () => `0x${string}`) =>\n Effect.try({\n try: makeData,\n catch: (cause) =>\n new ContractError({ code: \"ENCODE_FAILED\", message: `Unable to encode ${operation}`, cause }),\n });\n\nexport const getCompatibleMigrationHelper = Effect.fn(\"ensforge.migration.getCompatibleHelper\")(\n function* (config: Parameters<typeof getMigrationPlan.effect>[0]) {\n const helper = config.deployments.v2?.migration.migrationHelper;\n const expectedWrapper = config.deployments.v1?.contracts.nameWrapper;\n if (helper === undefined || expectedWrapper === undefined) return null;\n const wrapper = yield* Effect.tryPromise(() =>\n config.publicClient.readContract({\n address: helper,\n abi: migrationHelperV2NameWrapperAbi,\n functionName: \"NAME_WRAPPER\",\n }),\n ).pipe(Effect.catch(() => Effect.succeed(null)));\n return wrapper !== null && isAddressEqual(wrapper, expectedWrapper) ? helper : null;\n },\n);\n\nconst requireReadyPlan = Effect.fn(\"ensforge.migration.requireReadyPlan\")(function* (\n config: Parameters<typeof getMigrationPlan.effect>[0],\n parameters: MigrateNameCallParameters,\n account: EthereumAddress,\n) {\n const plan = yield* getMigrationPlan.effect(config, { ...parameters, account });\n switch (plan.status) {\n case \"ready\":\n if (!plan.target.supported) {\n return yield* new MigrationError({\n code: \"MIGRATION_BLOCKED\",\n message: `${plan.name} has no transferable migration target`,\n });\n }\n return plan as ReadyPlan;\n case \"authorization-required\":\n return yield* new MigrationError({\n code: \"AUTHORIZATION_REQUIRED\",\n message: `${account} is not authorized to migrate ${plan.name}`,\n });\n case \"blocked\":\n return yield* new MigrationError({\n code: \"MIGRATION_BLOCKED\",\n message: `${plan.name} cannot be migrated: ${plan.blockers.join(\", \")}`,\n });\n case \"not-required\":\n return yield* new MigrationError({\n code: \"MIGRATION_NOT_REQUIRED\",\n message: `${plan.name} does not require migration`,\n });\n case \"unsupported\":\n return yield* new MigrationError({\n code: \"MIGRATION_UNSUPPORTED\",\n message: `${plan.name} cannot be migrated on this deployment`,\n });\n }\n});\n\nconst approvalPreparer: EnsWriteIntentPreparer<ApproveMigrationParameters, WriteError> = Effect.fn(\n \"ensforge.approveMigration.prepare\",\n)(function* (config, parameters, context) {\n const account = (\n typeof context.account === \"string\" ? context.account : context.account.address\n ) as EthereumAddress;\n const eligibility = yield* getMigrationEligibility.effect(config, {\n name: parameters.name,\n account,\n });\n if (!eligibility.target.supported || eligibility.owner === null) {\n return yield* new MigrationError({\n code: \"MIGRATION_UNSUPPORTED\",\n message: `${eligibility.name} has no migration token to approve`,\n });\n }\n const target = eligibility.target;\n if (!isAddressEqual(eligibility.owner, account)) {\n return yield* new MigrationError({\n code: \"AUTHORIZATION_REQUIRED\",\n message: `Only the token owner can approve MigrationHelper for ${eligibility.name}`,\n });\n }\n const helper = yield* getCompatibleMigrationHelper(config);\n if (helper === null) {\n return yield* new MigrationError({\n code: \"MIGRATION_UNSUPPORTED\",\n message: \"MigrationHelper is unavailable on this deployment\",\n });\n }\n return {\n to: target.tokenContract,\n data: yield* encode(\"approveMigration\", () =>\n encodeFunctionData({\n abi:\n target.tokenStandard === \"erc721\"\n ? baseRegistrarV1SetApprovalForAllAbi\n : nameWrapperV1SetApprovalForAllAbi,\n functionName: \"setApprovalForAll\",\n args: [helper, parameters.approved ?? true],\n }),\n ),\n value: 0n,\n protocol: \"v1\" as const,\n };\n});\n\nconst migrationPreparer: EnsWriteIntentPreparer<MigrateNameCallParameters, WriteError> = Effect.fn(\n \"ensforge.migrateName.prepare\",\n)(function* (config, parameters, context) {\n const account = (\n typeof context.account === \"string\" ? context.account : context.account.address\n ) as EthereumAddress;\n const [plan, eligibility] = yield* Effect.all(\n [\n requireReadyPlan(config, parameters, account),\n getMigrationEligibility.effect(config, { name: parameters.name, account }),\n ] as const,\n { concurrency: \"unbounded\" },\n );\n if (eligibility.owner === null) {\n return yield* new MigrationError({\n code: \"MIGRATION_BLOCKED\",\n message: `Unable to determine the migration token owner for ${plan.name}`,\n });\n }\n const tokenOwner = eligibility.owner;\n const payload = yield* encode(\"migration payload\", () =>\n encodeAbiParameters(migrationTuple, [plan.migration]),\n );\n return {\n to: plan.target.tokenContract,\n data: yield* encode(\"migrateName\", () =>\n plan.target.tokenStandard === \"erc721\"\n ? encodeFunctionData({\n abi: baseRegistrarV1SafeTransferFromAbi,\n functionName: \"safeTransferFrom\",\n args: [tokenOwner, plan.target.receiver, plan.target.tokenId, payload],\n })\n : encodeFunctionData({\n abi: nameWrapperV1SafeTransferFromAbi,\n functionName: \"safeTransferFrom\",\n args: [tokenOwner, plan.target.receiver, plan.target.tokenId, 1n, payload],\n }),\n ),\n value: 0n,\n protocol: \"v2\" as const,\n };\n});\n\nconst groupPlans = (\n plans: ReadonlyArray<{ readonly plan: ReadyPlan; readonly tokenOwner: EthereumAddress }>,\n route: \"wrapped-unlocked\" | \"wrapped-locked\" | \"locked-child\",\n) => {\n const groups = new Map<EthereumAddress, Array<ReadyPlan[\"migration\"]>>();\n for (const entry of plans) {\n if (entry.plan.target.route !== route) continue;\n groups.set(entry.tokenOwner, [...(groups.get(entry.tokenOwner) ?? []), entry.plan.migration]);\n }\n return [...groups.values()];\n};\n\nconst helperPreparer: EnsWriteIntentPreparer<HelperMigrationParameters, WriteError> = Effect.fn(\n \"ensforge.migrateNames.prepareHelper\",\n)(function* (config, parameters, context) {\n const account = (\n typeof context.account === \"string\" ? context.account : context.account.address\n ) as EthereumAddress;\n const helper = yield* getCompatibleMigrationHelper(config);\n if (helper === null) {\n return yield* new MigrationError({\n code: \"MIGRATION_UNSUPPORTED\",\n message: \"MigrationHelper is unavailable on this deployment\",\n });\n }\n const entries = yield* Effect.forEach(parameters.migrations, (migration) =>\n Effect.all(\n [\n requireReadyPlan(config, migration, account),\n getMigrationEligibility.effect(config, { name: migration.name, account }),\n ] as const,\n { concurrency: \"unbounded\" },\n ).pipe(\n Effect.flatMap(([plan, eligibility]) =>\n eligibility.owner === null\n ? new MigrationError({\n code: \"MIGRATION_BLOCKED\",\n message: `Unable to determine the migration token owner for ${plan.name}`,\n })\n : Effect.succeed({ plan, tokenOwner: eligibility.owner }),\n ),\n ),\n );\n const parentNames = new Map<string, Array<(typeof entries)[number]>>();\n for (const entry of entries) {\n if (entry.plan.target.route !== \"locked-child\") continue;\n const labels = entry.plan.name.split(\".\");\n const parent = labels.slice(1).join(\".\");\n parentNames.set(parent, [...(parentNames.get(parent) ?? []), entry]);\n }\n const lockedChildrenGroups = yield* Effect.forEach(\n [...parentNames.entries()],\n ([parent, children]) =>\n dnsEncodeName.effect(parent).pipe(\n Effect.map((parentName) => ({\n parentName,\n groups: groupPlans(children, \"locked-child\"),\n })),\n ),\n );\n return {\n to: helper,\n data: yield* encode(\"migrateNames\", () =>\n encodeFunctionData({\n abi: migrationHelperV2MigrateAbi,\n functionName: \"migrate\",\n args: [\n entries\n .filter(({ plan }) => plan.target.route === \"unwrapped\")\n .map(({ plan }) => plan.migration),\n groupPlans(entries, \"wrapped-unlocked\"),\n groupPlans(entries, \"wrapped-locked\"),\n lockedChildrenGroups,\n ],\n }),\n ),\n value: 0n,\n protocol: \"v2\" as const,\n };\n});\n\nexport const approveMigration = makeSingleWriteAction(\"approveMigration\", approvalPreparer);\n\nexport const makeMigrationIntent = (\n parameters: MigrateNameCallParameters,\n): EnsWriteIntent<CallExecutionResult, WriteError> =>\n makeWriteIntent(\"migrateName\", parameters, migrationPreparer);\n\nexport const makeMigrationHelperIntent = (\n parameters: HelperMigrationParameters,\n): EnsWriteIntent<CallExecutionResult, WriteError> =>\n makeWriteIntent(\"migrateNames\", parameters, helperPreparer);\n"],"mappings":"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"}
|