@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,51 @@
|
|
|
1
|
+
import { ContractError } from "../../../errors/contract-error.js";
|
|
2
|
+
import { executeRead } from "../../../internal/read/execute-read.js";
|
|
3
|
+
import { normalizeName } from "../../../names/normalize.js";
|
|
4
|
+
import { readRegistryPermissionTarget } from "../../../internal/capabilities/registry-permissions.js";
|
|
5
|
+
import { makeSingleWriteAction } from "../../../internal/write/single-write-action.js";
|
|
6
|
+
import { AuthorizationError } from "../../../errors/authorization-error.js";
|
|
7
|
+
import { decodePermissionAddress } from "../address.js";
|
|
8
|
+
import { validateRoleBitmap } from "../roles.js";
|
|
9
|
+
import { Effect } from "effect";
|
|
10
|
+
import { encodeFunctionData } from "viem";
|
|
11
|
+
import { permissionedRegistryV2RoleMutationAbi } from "@ensforge/contracts/v2";
|
|
12
|
+
|
|
13
|
+
//#region src/actions/permissions/registry-roles/index.ts
|
|
14
|
+
const makePreparer = (mutation) => Effect.fn(`ensforge.${mutation === "grantRoles" ? "grant" : "revoke"}RegistryRoles.prepare`)(function* (config, parameters) {
|
|
15
|
+
const name = yield* normalizeName.effect(parameters.name);
|
|
16
|
+
const account = yield* decodePermissionAddress(parameters.account, "role account");
|
|
17
|
+
const roles = yield* validateRoleBitmap(parameters.roles);
|
|
18
|
+
const target = yield* executeRead(config, {}, readRegistryPermissionTarget(name));
|
|
19
|
+
if (!target.supported) return yield* new AuthorizationError({
|
|
20
|
+
code: "WRITE_TARGET_UNAVAILABLE",
|
|
21
|
+
message: `Registry roles are unavailable for ${name}`
|
|
22
|
+
});
|
|
23
|
+
const data = yield* Effect.try({
|
|
24
|
+
try: () => encodeFunctionData({
|
|
25
|
+
abi: permissionedRegistryV2RoleMutationAbi,
|
|
26
|
+
functionName: mutation,
|
|
27
|
+
args: [
|
|
28
|
+
target.anyId,
|
|
29
|
+
roles,
|
|
30
|
+
account
|
|
31
|
+
]
|
|
32
|
+
}),
|
|
33
|
+
catch: (cause) => new ContractError({
|
|
34
|
+
code: "ENCODE_FAILED",
|
|
35
|
+
message: `Unable to encode ${mutation} for ${name}`,
|
|
36
|
+
cause
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
to: target.registry,
|
|
41
|
+
data,
|
|
42
|
+
value: 0n,
|
|
43
|
+
protocol: "v2"
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
const grantRegistryRoles = makeSingleWriteAction("grantRegistryRoles", makePreparer("grantRoles"));
|
|
47
|
+
const revokeRegistryRoles = makeSingleWriteAction("revokeRegistryRoles", makePreparer("revokeRoles"));
|
|
48
|
+
|
|
49
|
+
//#endregion
|
|
50
|
+
export { grantRegistryRoles, revokeRegistryRoles };
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/actions/permissions/registry-roles/index.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport { permissionedRegistryV2RoleMutationAbi } from \"@ensforge/contracts/v2\";\nimport { encodeFunctionData } from \"viem\";\n\nimport type { EnsWriteIntentPreparer } from \"../../../action/write-intent.js\";\nimport type { EnsforgeConfig } from \"../../../config/config.js\";\nimport { AuthorizationError } from \"../../../errors/authorization-error.js\";\nimport { ContractError } from \"../../../errors/contract-error.js\";\nimport { readRegistryPermissionTarget } from \"../../../internal/capabilities/registry-permissions.js\";\nimport { executeRead } from \"../../../internal/read/execute-read.js\";\nimport { makeSingleWriteAction } from \"../../../internal/write/single-write-action.js\";\nimport { normalizeName } from \"../../../names/normalize.js\";\nimport type { WriteError } from \"../../../write/types.js\";\nimport { decodePermissionAddress } from \"../address.js\";\nimport { validateRoleBitmap } from \"../roles.js\";\nimport type { RegistryRolesMutationParameters } from \"./types.js\";\n\nconst makePreparer = (\n mutation: \"grantRoles\" | \"revokeRoles\",\n): EnsWriteIntentPreparer<RegistryRolesMutationParameters, WriteError> =>\n Effect.fn(`ensforge.${mutation === \"grantRoles\" ? \"grant\" : \"revoke\"}RegistryRoles.prepare`)(\n function* (config: EnsforgeConfig, parameters) {\n const name = yield* normalizeName.effect(parameters.name);\n const account = yield* decodePermissionAddress(parameters.account, \"role account\");\n const roles = yield* validateRoleBitmap(parameters.roles);\n const target = yield* executeRead(config, {}, readRegistryPermissionTarget(name));\n if (!target.supported) {\n return yield* new AuthorizationError({\n code: \"WRITE_TARGET_UNAVAILABLE\",\n message: `Registry roles are unavailable for ${name}`,\n });\n }\n const data = yield* Effect.try({\n try: () =>\n encodeFunctionData({\n abi: permissionedRegistryV2RoleMutationAbi,\n functionName: mutation,\n args: [target.anyId, roles, account],\n }),\n catch: (cause) =>\n new ContractError({\n code: \"ENCODE_FAILED\",\n message: `Unable to encode ${mutation} for ${name}`,\n cause,\n }),\n });\n return { to: target.registry, data, value: 0n, protocol: \"v2\" as const };\n },\n );\n\nexport const grantRegistryRoles = makeSingleWriteAction(\n \"grantRegistryRoles\",\n makePreparer(\"grantRoles\"),\n);\nexport const revokeRegistryRoles = makeSingleWriteAction(\n \"revokeRegistryRoles\",\n makePreparer(\"revokeRoles\"),\n);\n\nexport type {\n GrantRegistryRolesError,\n GrantRegistryRolesIntent,\n GrantRegistryRolesParameters,\n GrantRegistryRolesResult,\n RegistryRolesMutationParameters,\n RevokeRegistryRolesError,\n RevokeRegistryRolesIntent,\n RevokeRegistryRolesParameters,\n RevokeRegistryRolesResult,\n} from \"./types.js\";\n"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,gBACJ,aAEA,OAAO,GAAG,YAAY,aAAa,eAAe,UAAU,SAAS,sBAAsB,CAAC,CAC1F,WAAW,QAAwB,YAAY;CAC7C,MAAM,OAAO,OAAO,cAAc,OAAO,WAAW,IAAI;CACxD,MAAM,UAAU,OAAO,wBAAwB,WAAW,SAAS,cAAc;CACjF,MAAM,QAAQ,OAAO,mBAAmB,WAAW,KAAK;CACxD,MAAM,SAAS,OAAO,YAAY,QAAQ,CAAC,GAAG,6BAA6B,IAAI,CAAC;CAChF,IAAI,CAAC,OAAO,WACV,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,sCAAsC;CACjD,CAAC;CAEH,MAAM,OAAO,OAAO,OAAO,IAAI;EAC7B,WACE,mBAAmB;GACjB,KAAK;GACL,cAAc;GACd,MAAM;IAAC,OAAO;IAAO;IAAO;GAAO;EACrC,CAAC;EACH,QAAQ,UACN,IAAI,cAAc;GAChB,MAAM;GACN,SAAS,oBAAoB,SAAS,OAAO;GAC7C;EACF,CAAC;CACL,CAAC;CACD,OAAO;EAAE,IAAI,OAAO;EAAU;EAAM,OAAO;EAAI,UAAU;CAAc;AACzE,CACF;AAEF,MAAa,qBAAqB,sBAChC,sBACA,aAAa,YAAY,CAC3B;AACA,MAAa,sBAAsB,sBACjC,uBACA,aAAa,aAAa,CAC5B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CallExecutionResult, WriteError } from "../../../write/types.js";
|
|
2
|
+
import { EnsWriteIntent } from "../../../action/write-intent.js";
|
|
3
|
+
//#region src/actions/permissions/registry-roles/types.d.ts
|
|
4
|
+
interface RegistryRolesMutationParameters {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly account: string;
|
|
7
|
+
readonly roles: bigint;
|
|
8
|
+
}
|
|
9
|
+
type GrantRegistryRolesParameters = RegistryRolesMutationParameters;
|
|
10
|
+
type RevokeRegistryRolesParameters = RegistryRolesMutationParameters;
|
|
11
|
+
type GrantRegistryRolesResult = CallExecutionResult;
|
|
12
|
+
type RevokeRegistryRolesResult = CallExecutionResult;
|
|
13
|
+
type GrantRegistryRolesError = WriteError;
|
|
14
|
+
type RevokeRegistryRolesError = WriteError;
|
|
15
|
+
type GrantRegistryRolesIntent = EnsWriteIntent<GrantRegistryRolesResult, GrantRegistryRolesError>;
|
|
16
|
+
type RevokeRegistryRolesIntent = EnsWriteIntent<RevokeRegistryRolesResult, RevokeRegistryRolesError>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { GrantRegistryRolesError, GrantRegistryRolesIntent, GrantRegistryRolesParameters, GrantRegistryRolesResult, RegistryRolesMutationParameters, RevokeRegistryRolesError, RevokeRegistryRolesIntent, RevokeRegistryRolesParameters, RevokeRegistryRolesResult };
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/actions/permissions/registry-roles/types.ts"],"mappings":";;;UAGiB;WACN;WACA;WACA;;KAGC,+BAA+B;KAC/B,gCAAgC;KAChC,2BAA2B;KAC3B,4BAA4B;KAC5B,0BAA0B;KAC1B,2BAA2B;KAC3B,2BAA2B,eACrC,0BACA;KAEU,4BAA4B,eACtC,2BACA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CallExecutionResult, WriteError } from "../../../write/types.js";
|
|
2
|
+
import { EnsWriteAction } from "../../../action/write-intent.js";
|
|
3
|
+
import { SetResolverDelegateApprovalError, SetResolverDelegateApprovalIntent, SetResolverDelegateApprovalParameters, SetResolverDelegateApprovalResult } from "./types.js";
|
|
4
|
+
import "../../../index.js";
|
|
5
|
+
//#region src/actions/permissions/resolver-delegate-approval/index.d.ts
|
|
6
|
+
declare const setResolverDelegateApproval: EnsWriteAction<SetResolverDelegateApprovalParameters, CallExecutionResult, WriteError>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { type SetResolverDelegateApprovalError, type SetResolverDelegateApprovalIntent, type SetResolverDelegateApprovalParameters, type SetResolverDelegateApprovalResult, setResolverDelegateApproval };
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/actions/permissions/resolver-delegate-approval/index.ts"],"mappings":";;;;;cAmEa,6BAA2B,eAAA,uCAAA,qBAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ContractError } from "../../../errors/contract-error.js";
|
|
2
|
+
import { normalizeName } from "../../../names/normalize.js";
|
|
3
|
+
import { namehash } from "../../../names/hashes.js";
|
|
4
|
+
import { getManager } from "../../name/get-manager/index.js";
|
|
5
|
+
import { getResolverCapabilities } from "../../capabilities/get-resolver-capabilities/index.js";
|
|
6
|
+
import { makeSingleWriteAction } from "../../../internal/write/single-write-action.js";
|
|
7
|
+
import { AuthorizationError } from "../../../errors/authorization-error.js";
|
|
8
|
+
import { decodePermissionAddress } from "../address.js";
|
|
9
|
+
import { Effect } from "effect";
|
|
10
|
+
import { encodeFunctionData, isAddressEqual } from "viem";
|
|
11
|
+
import { publicResolverV1ApproveAbi } from "@ensforge/contracts/v1";
|
|
12
|
+
|
|
13
|
+
//#region src/actions/permissions/resolver-delegate-approval/index.ts
|
|
14
|
+
const preparer = Effect.fn("ensforge.setResolverDelegateApproval.prepare")(function* (config, parameters, context) {
|
|
15
|
+
const name = yield* normalizeName.effect(parameters.name);
|
|
16
|
+
const delegate = yield* decodePermissionAddress(parameters.delegate, "resolver delegate");
|
|
17
|
+
const account = yield* decodePermissionAddress(typeof context.account === "string" ? context.account : context.account.address, "owner");
|
|
18
|
+
const [capabilities, manager] = yield* Effect.all([getResolverCapabilities.effect(config, { name }), getManager.effect(config, { name })], { concurrency: "unbounded" });
|
|
19
|
+
if (capabilities.address === null || capabilities.inherited || capabilities.authorization !== "owner-delegate") return yield* new AuthorizationError({
|
|
20
|
+
code: "WRITE_TARGET_UNAVAILABLE",
|
|
21
|
+
message: `A directly attached Public Resolver is required for ${name}`
|
|
22
|
+
});
|
|
23
|
+
if (manager === null || !isAddressEqual(manager, account)) return yield* new AuthorizationError({
|
|
24
|
+
code: "UNAUTHORIZED",
|
|
25
|
+
message: `${account} cannot administer resolver delegates for ${name}`
|
|
26
|
+
});
|
|
27
|
+
const data = yield* Effect.try({
|
|
28
|
+
try: () => encodeFunctionData({
|
|
29
|
+
abi: publicResolverV1ApproveAbi,
|
|
30
|
+
functionName: "approve",
|
|
31
|
+
args: [
|
|
32
|
+
namehash(name),
|
|
33
|
+
delegate,
|
|
34
|
+
parameters.approved
|
|
35
|
+
]
|
|
36
|
+
}),
|
|
37
|
+
catch: (cause) => new ContractError({
|
|
38
|
+
code: "ENCODE_FAILED",
|
|
39
|
+
message: `Unable to encode the resolver delegate approval for ${name}`,
|
|
40
|
+
cause
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
to: capabilities.address,
|
|
45
|
+
data,
|
|
46
|
+
value: 0n
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
const setResolverDelegateApproval = makeSingleWriteAction("setResolverDelegateApproval", preparer);
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
export { setResolverDelegateApproval };
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/actions/permissions/resolver-delegate-approval/index.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport { publicResolverV1ApproveAbi } from \"@ensforge/contracts/v1\";\nimport { encodeFunctionData, isAddressEqual } from \"viem\";\n\nimport type { EnsWriteIntentPreparer } from \"../../../action/write-intent.js\";\nimport { AuthorizationError } from \"../../../errors/authorization-error.js\";\nimport { ContractError } from \"../../../errors/contract-error.js\";\nimport { makeSingleWriteAction } from \"../../../internal/write/single-write-action.js\";\nimport { namehash } from \"../../../names/hashes.js\";\nimport { normalizeName } from \"../../../names/normalize.js\";\nimport type { WriteError } from \"../../../write/types.js\";\nimport { getResolverCapabilities } from \"../../capabilities/get-resolver-capabilities/index.js\";\nimport { getManager } from \"../../name/get-manager/index.js\";\nimport { decodePermissionAddress } from \"../address.js\";\nimport type { SetResolverDelegateApprovalParameters } from \"./types.js\";\n\nconst preparer: EnsWriteIntentPreparer<SetResolverDelegateApprovalParameters, WriteError> =\n Effect.fn(\"ensforge.setResolverDelegateApproval.prepare\")(\n function* (config, parameters, context) {\n const name = yield* normalizeName.effect(parameters.name);\n const delegate = yield* decodePermissionAddress(parameters.delegate, \"resolver delegate\");\n const account = yield* decodePermissionAddress(\n typeof context.account === \"string\" ? context.account : context.account.address,\n \"owner\",\n );\n const [capabilities, manager] = yield* Effect.all(\n [\n getResolverCapabilities.effect(config, { name }),\n getManager.effect(config, { name }),\n ] as const,\n { concurrency: \"unbounded\" },\n );\n if (\n capabilities.address === null ||\n capabilities.inherited ||\n capabilities.authorization !== \"owner-delegate\"\n ) {\n return yield* new AuthorizationError({\n code: \"WRITE_TARGET_UNAVAILABLE\",\n message: `A directly attached Public Resolver is required for ${name}`,\n });\n }\n if (manager === null || !isAddressEqual(manager, account)) {\n return yield* new AuthorizationError({\n code: \"UNAUTHORIZED\",\n message: `${account} cannot administer resolver delegates for ${name}`,\n });\n }\n const data = yield* Effect.try({\n try: () =>\n encodeFunctionData({\n abi: publicResolverV1ApproveAbi,\n functionName: \"approve\",\n args: [namehash(name), delegate, parameters.approved],\n }),\n catch: (cause) =>\n new ContractError({\n code: \"ENCODE_FAILED\",\n message: `Unable to encode the resolver delegate approval for ${name}`,\n cause,\n }),\n });\n return { to: capabilities.address, data, value: 0n };\n },\n );\n\nexport const setResolverDelegateApproval = makeSingleWriteAction(\n \"setResolverDelegateApproval\",\n preparer,\n);\n\nexport type {\n SetResolverDelegateApprovalError,\n SetResolverDelegateApprovalIntent,\n SetResolverDelegateApprovalParameters,\n SetResolverDelegateApprovalResult,\n} from \"./types.js\";\n"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,WACJ,OAAO,GAAG,8CAA8C,CAAC,CACvD,WAAW,QAAQ,YAAY,SAAS;CACtC,MAAM,OAAO,OAAO,cAAc,OAAO,WAAW,IAAI;CACxD,MAAM,WAAW,OAAO,wBAAwB,WAAW,UAAU,mBAAmB;CACxF,MAAM,UAAU,OAAO,wBACrB,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,QAAQ,QAAQ,SACxE,OACF;CACA,MAAM,CAAC,cAAc,WAAW,OAAO,OAAO,IAC5C,CACE,wBAAwB,OAAO,QAAQ,EAAE,KAAK,CAAC,GAC/C,WAAW,OAAO,QAAQ,EAAE,KAAK,CAAC,CACpC,GACA,EAAE,aAAa,YAAY,CAC7B;CACA,IACE,aAAa,YAAY,QACzB,aAAa,aACb,aAAa,kBAAkB,kBAE/B,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,uDAAuD;CAClE,CAAC;CAEH,IAAI,YAAY,QAAQ,CAAC,eAAe,SAAS,OAAO,GACtD,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,GAAG,QAAQ,4CAA4C;CAClE,CAAC;CAEH,MAAM,OAAO,OAAO,OAAO,IAAI;EAC7B,WACE,mBAAmB;GACjB,KAAK;GACL,cAAc;GACd,MAAM;IAAC,SAAS,IAAI;IAAG;IAAU,WAAW;GAAQ;EACtD,CAAC;EACH,QAAQ,UACN,IAAI,cAAc;GAChB,MAAM;GACN,SAAS,uDAAuD;GAChE;EACF,CAAC;CACL,CAAC;CACD,OAAO;EAAE,IAAI,aAAa;EAAS;EAAM,OAAO;CAAG;AACrD,CACF;AAEF,MAAa,8BAA8B,sBACzC,+BACA,QACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CallExecutionResult, WriteError } from "../../../write/types.js";
|
|
2
|
+
import { EnsWriteIntent } from "../../../action/write-intent.js";
|
|
3
|
+
//#region src/actions/permissions/resolver-delegate-approval/types.d.ts
|
|
4
|
+
interface SetResolverDelegateApprovalParameters {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly delegate: string;
|
|
7
|
+
readonly approved: boolean;
|
|
8
|
+
}
|
|
9
|
+
type SetResolverDelegateApprovalResult = CallExecutionResult;
|
|
10
|
+
type SetResolverDelegateApprovalError = WriteError;
|
|
11
|
+
type SetResolverDelegateApprovalIntent = EnsWriteIntent<SetResolverDelegateApprovalResult, SetResolverDelegateApprovalError>;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { SetResolverDelegateApprovalError, SetResolverDelegateApprovalIntent, SetResolverDelegateApprovalParameters, SetResolverDelegateApprovalResult };
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/actions/permissions/resolver-delegate-approval/types.ts"],"mappings":";;;UAGiB;WACN;WACA;WACA;;KAGC,oCAAoC;KACpC,mCAAmC;KACnC,oCAAoC,eAC9C,mCACA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CallExecutionResult, WriteError } from "../../../write/types.js";
|
|
2
|
+
import { EnsWriteAction } from "../../../action/write-intent.js";
|
|
3
|
+
import { GrantResolverRolesError, GrantResolverRolesIntent, GrantResolverRolesParameters, GrantResolverRolesResult, GrantResolverRootRolesError, GrantResolverRootRolesIntent, GrantResolverRootRolesParameters, GrantResolverRootRolesResult, ResolverRolesMutationParameters, ResolverRootRolesMutationParameters, RevokeResolverRolesError, RevokeResolverRolesIntent, RevokeResolverRolesParameters, RevokeResolverRolesResult, RevokeResolverRootRolesError, RevokeResolverRootRolesIntent, RevokeResolverRootRolesParameters, RevokeResolverRootRolesResult } from "./types.js";
|
|
4
|
+
import "../../../index.js";
|
|
5
|
+
//#region src/actions/permissions/resolver-roles/index.d.ts
|
|
6
|
+
declare const grantResolverRoles: EnsWriteAction<ResolverRolesMutationParameters, CallExecutionResult, WriteError>;
|
|
7
|
+
declare const revokeResolverRoles: EnsWriteAction<ResolverRolesMutationParameters, CallExecutionResult, WriteError>;
|
|
8
|
+
declare const grantResolverRootRoles: EnsWriteAction<ResolverRootRolesMutationParameters, CallExecutionResult, WriteError>;
|
|
9
|
+
declare const revokeResolverRootRoles: EnsWriteAction<ResolverRootRolesMutationParameters, CallExecutionResult, WriteError>;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { type GrantResolverRolesError, type GrantResolverRolesIntent, type GrantResolverRolesParameters, type GrantResolverRolesResult, type GrantResolverRootRolesError, type GrantResolverRootRolesIntent, type GrantResolverRootRolesParameters, type GrantResolverRootRolesResult, type ResolverRolesMutationParameters, type ResolverRootRolesMutationParameters, type RevokeResolverRolesError, type RevokeResolverRolesIntent, type RevokeResolverRolesParameters, type RevokeResolverRolesResult, type RevokeResolverRootRolesError, type RevokeResolverRootRolesIntent, type RevokeResolverRootRolesParameters, type RevokeResolverRootRolesResult, grantResolverRoles, grantResolverRootRoles, revokeResolverRoles, revokeResolverRootRoles };
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/actions/permissions/resolver-roles/index.ts"],"mappings":";;;;;cAsIa,oBAAkB,eAAA,iCAAA,qBAAA;cAIlB,qBAAmB,eAAA,iCAAA,qBAAA;cAInB,wBAAsB,eAAA,qCAAA,qBAAA;cAItB,yBAAuB,eAAA,qCAAA,qBAAA"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { ContractError } from "../../../errors/contract-error.js";
|
|
2
|
+
import { executeRead } from "../../../internal/read/execute-read.js";
|
|
3
|
+
import { normalizeName } from "../../../names/normalize.js";
|
|
4
|
+
import { resolverRecordRole } from "../../../internal/capabilities/resolver-resource.js";
|
|
5
|
+
import { dnsEncodeName } from "../../../names/dns.js";
|
|
6
|
+
import { readResolverPermissionTarget } from "../../../internal/capabilities/resolver-permissions.js";
|
|
7
|
+
import { makeSingleWriteAction } from "../../../internal/write/single-write-action.js";
|
|
8
|
+
import { AuthorizationError } from "../../../errors/authorization-error.js";
|
|
9
|
+
import { decodePermissionAddress } from "../address.js";
|
|
10
|
+
import { validateRoleBitmap } from "../roles.js";
|
|
11
|
+
import { Effect } from "effect";
|
|
12
|
+
import { encodeFunctionData } from "viem";
|
|
13
|
+
import { permissionedResolverV2AuthorizeAddrRolesAbi, permissionedResolverV2AuthorizeDataRolesAbi, permissionedResolverV2AuthorizeNameRolesAbi, permissionedResolverV2AuthorizeTextRolesAbi, permissionedResolverV2RootRoleMutationAbi } from "@ensforge/contracts/v2";
|
|
14
|
+
|
|
15
|
+
//#region src/actions/permissions/resolver-roles/index.ts
|
|
16
|
+
const readTarget = Effect.fn("ensforge.resolverRoles.target")(function* (config, name) {
|
|
17
|
+
const normalized = yield* normalizeName.effect(name);
|
|
18
|
+
const target = yield* executeRead(config, {}, readResolverPermissionTarget(normalized));
|
|
19
|
+
if (!target.supported || target.inherited) return yield* new AuthorizationError({
|
|
20
|
+
code: "WRITE_TARGET_UNAVAILABLE",
|
|
21
|
+
message: `A directly attached Permissioned Resolver is required for ${normalized}`
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
normalized,
|
|
25
|
+
target
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
const makeScopedPreparer = (mutation) => Effect.fn(`ensforge.${mutation === "grantRoles" ? "grant" : "revoke"}ResolverRoles.prepare`)(function* (config, parameters) {
|
|
29
|
+
const { normalized, target } = yield* readTarget(config, parameters.name);
|
|
30
|
+
const account = yield* decodePermissionAddress(parameters.account, "role account");
|
|
31
|
+
const roles = yield* validateRoleBitmap(parameters.roles ?? resolverRecordRole(parameters.record));
|
|
32
|
+
const expectedRole = resolverRecordRole(parameters.record);
|
|
33
|
+
if ((parameters.record.type === "address" || parameters.record.type === "text" || parameters.record.type === "data") && roles !== expectedRole) return yield* new AuthorizationError({
|
|
34
|
+
code: "RECORD_UNSUPPORTED",
|
|
35
|
+
message: `${parameters.record.type} authorization requires its exact resolver role`
|
|
36
|
+
});
|
|
37
|
+
const encodedName = yield* dnsEncodeName.effect(normalized);
|
|
38
|
+
const data = yield* Effect.try({
|
|
39
|
+
try: () => {
|
|
40
|
+
const grant = mutation === "grantRoles";
|
|
41
|
+
if (parameters.record.type === "address") return encodeFunctionData({
|
|
42
|
+
abi: permissionedResolverV2AuthorizeAddrRolesAbi,
|
|
43
|
+
functionName: "authorizeAddrRoles",
|
|
44
|
+
args: [
|
|
45
|
+
encodedName,
|
|
46
|
+
parameters.record.coinType,
|
|
47
|
+
account,
|
|
48
|
+
grant
|
|
49
|
+
]
|
|
50
|
+
});
|
|
51
|
+
if (parameters.record.type === "text") return encodeFunctionData({
|
|
52
|
+
abi: permissionedResolverV2AuthorizeTextRolesAbi,
|
|
53
|
+
functionName: "authorizeTextRoles",
|
|
54
|
+
args: [
|
|
55
|
+
encodedName,
|
|
56
|
+
parameters.record.key,
|
|
57
|
+
account,
|
|
58
|
+
grant
|
|
59
|
+
]
|
|
60
|
+
});
|
|
61
|
+
if (parameters.record.type === "data") return encodeFunctionData({
|
|
62
|
+
abi: permissionedResolverV2AuthorizeDataRolesAbi,
|
|
63
|
+
functionName: "authorizeDataRoles",
|
|
64
|
+
args: [
|
|
65
|
+
encodedName,
|
|
66
|
+
parameters.record.key,
|
|
67
|
+
account,
|
|
68
|
+
grant
|
|
69
|
+
]
|
|
70
|
+
});
|
|
71
|
+
return encodeFunctionData({
|
|
72
|
+
abi: permissionedResolverV2AuthorizeNameRolesAbi,
|
|
73
|
+
functionName: "authorizeNameRoles",
|
|
74
|
+
args: [
|
|
75
|
+
encodedName,
|
|
76
|
+
roles,
|
|
77
|
+
account,
|
|
78
|
+
grant
|
|
79
|
+
]
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
catch: (cause) => new ContractError({
|
|
83
|
+
code: "ENCODE_FAILED",
|
|
84
|
+
message: `Unable to encode ${mutation} for ${normalized}`,
|
|
85
|
+
cause
|
|
86
|
+
})
|
|
87
|
+
});
|
|
88
|
+
return {
|
|
89
|
+
to: target.resolver,
|
|
90
|
+
data,
|
|
91
|
+
value: 0n,
|
|
92
|
+
protocol: "v2"
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
const makeRootPreparer = (mutation) => Effect.fn(`ensforge.${mutation === "grantRootRoles" ? "grant" : "revoke"}ResolverRootRoles.prepare`)(function* (config, parameters) {
|
|
96
|
+
const { normalized, target } = yield* readTarget(config, parameters.name);
|
|
97
|
+
const account = yield* decodePermissionAddress(parameters.account, "root role account");
|
|
98
|
+
const roles = yield* validateRoleBitmap(parameters.roles);
|
|
99
|
+
const data = yield* Effect.try({
|
|
100
|
+
try: () => encodeFunctionData({
|
|
101
|
+
abi: permissionedResolverV2RootRoleMutationAbi,
|
|
102
|
+
functionName: mutation,
|
|
103
|
+
args: [roles, account]
|
|
104
|
+
}),
|
|
105
|
+
catch: (cause) => new ContractError({
|
|
106
|
+
code: "ENCODE_FAILED",
|
|
107
|
+
message: `Unable to encode ${mutation} for ${normalized}`,
|
|
108
|
+
cause
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
return {
|
|
112
|
+
to: target.resolver,
|
|
113
|
+
data,
|
|
114
|
+
value: 0n,
|
|
115
|
+
protocol: "v2"
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
const grantResolverRoles = makeSingleWriteAction("grantResolverRoles", makeScopedPreparer("grantRoles"));
|
|
119
|
+
const revokeResolverRoles = makeSingleWriteAction("revokeResolverRoles", makeScopedPreparer("revokeRoles"));
|
|
120
|
+
const grantResolverRootRoles = makeSingleWriteAction("grantResolverRootRoles", makeRootPreparer("grantRootRoles"));
|
|
121
|
+
const revokeResolverRootRoles = makeSingleWriteAction("revokeResolverRootRoles", makeRootPreparer("revokeRootRoles"));
|
|
122
|
+
|
|
123
|
+
//#endregion
|
|
124
|
+
export { grantResolverRoles, grantResolverRootRoles, revokeResolverRoles, revokeResolverRootRoles };
|
|
125
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/actions/permissions/resolver-roles/index.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport {\n permissionedResolverV2AuthorizeAddrRolesAbi,\n permissionedResolverV2AuthorizeDataRolesAbi,\n permissionedResolverV2AuthorizeNameRolesAbi,\n permissionedResolverV2AuthorizeTextRolesAbi,\n permissionedResolverV2RootRoleMutationAbi,\n} from \"@ensforge/contracts/v2\";\nimport { encodeFunctionData } from \"viem\";\n\nimport type { EnsWriteIntentPreparer } from \"../../../action/write-intent.js\";\nimport type { EnsforgeConfig } from \"../../../config/config.js\";\nimport { AuthorizationError } from \"../../../errors/authorization-error.js\";\nimport { ContractError } from \"../../../errors/contract-error.js\";\nimport { readResolverPermissionTarget } from \"../../../internal/capabilities/resolver-permissions.js\";\nimport { resolverRecordRole } from \"../../../internal/capabilities/resolver-resource.js\";\nimport { executeRead } from \"../../../internal/read/execute-read.js\";\nimport { makeSingleWriteAction } from \"../../../internal/write/single-write-action.js\";\nimport { dnsEncodeName } from \"../../../names/dns.js\";\nimport { normalizeName } from \"../../../names/normalize.js\";\nimport type { WriteError } from \"../../../write/types.js\";\nimport { decodePermissionAddress } from \"../address.js\";\nimport { validateRoleBitmap } from \"../roles.js\";\nimport type {\n ResolverRolesMutationParameters,\n ResolverRootRolesMutationParameters,\n} from \"./types.js\";\n\nconst readTarget = Effect.fn(\"ensforge.resolverRoles.target\")(function* (\n config: EnsforgeConfig,\n name: string,\n) {\n const normalized = yield* normalizeName.effect(name);\n const target = yield* executeRead(config, {}, readResolverPermissionTarget(normalized));\n if (!target.supported || target.inherited) {\n return yield* new AuthorizationError({\n code: \"WRITE_TARGET_UNAVAILABLE\",\n message: `A directly attached Permissioned Resolver is required for ${normalized}`,\n });\n }\n return { normalized, target } as const;\n});\n\nconst makeScopedPreparer = (\n mutation: \"grantRoles\" | \"revokeRoles\",\n): EnsWriteIntentPreparer<ResolverRolesMutationParameters, WriteError> =>\n Effect.fn(`ensforge.${mutation === \"grantRoles\" ? \"grant\" : \"revoke\"}ResolverRoles.prepare`)(\n function* (config: EnsforgeConfig, parameters) {\n const { normalized, target } = yield* readTarget(config, parameters.name);\n const account = yield* decodePermissionAddress(parameters.account, \"role account\");\n const roles = yield* validateRoleBitmap(\n parameters.roles ?? resolverRecordRole(parameters.record),\n );\n const expectedRole = resolverRecordRole(parameters.record);\n if (\n (parameters.record.type === \"address\" ||\n parameters.record.type === \"text\" ||\n parameters.record.type === \"data\") &&\n roles !== expectedRole\n ) {\n return yield* new AuthorizationError({\n code: \"RECORD_UNSUPPORTED\",\n message: `${parameters.record.type} authorization requires its exact resolver role`,\n });\n }\n const encodedName = yield* dnsEncodeName.effect(normalized);\n const data = yield* Effect.try({\n try: () => {\n const grant = mutation === \"grantRoles\";\n if (parameters.record.type === \"address\") {\n return encodeFunctionData({\n abi: permissionedResolverV2AuthorizeAddrRolesAbi,\n functionName: \"authorizeAddrRoles\",\n args: [encodedName, parameters.record.coinType, account, grant],\n });\n }\n if (parameters.record.type === \"text\") {\n return encodeFunctionData({\n abi: permissionedResolverV2AuthorizeTextRolesAbi,\n functionName: \"authorizeTextRoles\",\n args: [encodedName, parameters.record.key, account, grant],\n });\n }\n if (parameters.record.type === \"data\") {\n return encodeFunctionData({\n abi: permissionedResolverV2AuthorizeDataRolesAbi,\n functionName: \"authorizeDataRoles\",\n args: [encodedName, parameters.record.key, account, grant],\n });\n }\n return encodeFunctionData({\n abi: permissionedResolverV2AuthorizeNameRolesAbi,\n functionName: \"authorizeNameRoles\",\n args: [encodedName, roles, account, grant],\n });\n },\n catch: (cause) =>\n new ContractError({\n code: \"ENCODE_FAILED\",\n message: `Unable to encode ${mutation} for ${normalized}`,\n cause,\n }),\n });\n return { to: target.resolver, data, value: 0n, protocol: \"v2\" as const };\n },\n );\n\nconst makeRootPreparer = (\n mutation: \"grantRootRoles\" | \"revokeRootRoles\",\n): EnsWriteIntentPreparer<ResolverRootRolesMutationParameters, WriteError> =>\n Effect.fn(\n `ensforge.${mutation === \"grantRootRoles\" ? \"grant\" : \"revoke\"}ResolverRootRoles.prepare`,\n )(function* (config: EnsforgeConfig, parameters) {\n const { normalized, target } = yield* readTarget(config, parameters.name);\n const account = yield* decodePermissionAddress(parameters.account, \"root role account\");\n const roles = yield* validateRoleBitmap(parameters.roles);\n const data = yield* Effect.try({\n try: () =>\n encodeFunctionData({\n abi: permissionedResolverV2RootRoleMutationAbi,\n functionName: mutation,\n args: [roles, account],\n }),\n catch: (cause) =>\n new ContractError({\n code: \"ENCODE_FAILED\",\n message: `Unable to encode ${mutation} for ${normalized}`,\n cause,\n }),\n });\n return { to: target.resolver, data, value: 0n, protocol: \"v2\" as const };\n });\n\nexport const grantResolverRoles = makeSingleWriteAction(\n \"grantResolverRoles\",\n makeScopedPreparer(\"grantRoles\"),\n);\nexport const revokeResolverRoles = makeSingleWriteAction(\n \"revokeResolverRoles\",\n makeScopedPreparer(\"revokeRoles\"),\n);\nexport const grantResolverRootRoles = makeSingleWriteAction(\n \"grantResolverRootRoles\",\n makeRootPreparer(\"grantRootRoles\"),\n);\nexport const revokeResolverRootRoles = makeSingleWriteAction(\n \"revokeResolverRootRoles\",\n makeRootPreparer(\"revokeRootRoles\"),\n);\n\nexport type {\n GrantResolverRolesError,\n GrantResolverRolesIntent,\n GrantResolverRolesParameters,\n GrantResolverRolesResult,\n GrantResolverRootRolesError,\n GrantResolverRootRolesIntent,\n GrantResolverRootRolesParameters,\n GrantResolverRootRolesResult,\n ResolverRolesMutationParameters,\n ResolverRootRolesMutationParameters,\n RevokeResolverRolesError,\n RevokeResolverRolesIntent,\n RevokeResolverRolesParameters,\n RevokeResolverRolesResult,\n RevokeResolverRootRolesError,\n RevokeResolverRootRolesIntent,\n RevokeResolverRootRolesParameters,\n RevokeResolverRootRolesResult,\n} from \"./types.js\";\n"],"mappings":";;;;;;;;;;;;;;;AA6BA,MAAM,aAAa,OAAO,GAAG,+BAA+B,CAAC,CAAC,WAC5D,QACA,MACA;CACA,MAAM,aAAa,OAAO,cAAc,OAAO,IAAI;CACnD,MAAM,SAAS,OAAO,YAAY,QAAQ,CAAC,GAAG,6BAA6B,UAAU,CAAC;CACtF,IAAI,CAAC,OAAO,aAAa,OAAO,WAC9B,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,6DAA6D;CACxE,CAAC;CAEH,OAAO;EAAE;EAAY;CAAO;AAC9B,CAAC;AAED,MAAM,sBACJ,aAEA,OAAO,GAAG,YAAY,aAAa,eAAe,UAAU,SAAS,sBAAsB,CAAC,CAC1F,WAAW,QAAwB,YAAY;CAC7C,MAAM,EAAE,YAAY,WAAW,OAAO,WAAW,QAAQ,WAAW,IAAI;CACxE,MAAM,UAAU,OAAO,wBAAwB,WAAW,SAAS,cAAc;CACjF,MAAM,QAAQ,OAAO,mBACnB,WAAW,SAAS,mBAAmB,WAAW,MAAM,CAC1D;CACA,MAAM,eAAe,mBAAmB,WAAW,MAAM;CACzD,KACG,WAAW,OAAO,SAAS,aAC1B,WAAW,OAAO,SAAS,UAC3B,WAAW,OAAO,SAAS,WAC7B,UAAU,cAEV,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,GAAG,WAAW,OAAO,KAAK;CACrC,CAAC;CAEH,MAAM,cAAc,OAAO,cAAc,OAAO,UAAU;CAC1D,MAAM,OAAO,OAAO,OAAO,IAAI;EAC7B,WAAW;GACT,MAAM,QAAQ,aAAa;GAC3B,IAAI,WAAW,OAAO,SAAS,WAC7B,OAAO,mBAAmB;IACxB,KAAK;IACL,cAAc;IACd,MAAM;KAAC;KAAa,WAAW,OAAO;KAAU;KAAS;IAAK;GAChE,CAAC;GAEH,IAAI,WAAW,OAAO,SAAS,QAC7B,OAAO,mBAAmB;IACxB,KAAK;IACL,cAAc;IACd,MAAM;KAAC;KAAa,WAAW,OAAO;KAAK;KAAS;IAAK;GAC3D,CAAC;GAEH,IAAI,WAAW,OAAO,SAAS,QAC7B,OAAO,mBAAmB;IACxB,KAAK;IACL,cAAc;IACd,MAAM;KAAC;KAAa,WAAW,OAAO;KAAK;KAAS;IAAK;GAC3D,CAAC;GAEH,OAAO,mBAAmB;IACxB,KAAK;IACL,cAAc;IACd,MAAM;KAAC;KAAa;KAAO;KAAS;IAAK;GAC3C,CAAC;EACH;EACA,QAAQ,UACN,IAAI,cAAc;GAChB,MAAM;GACN,SAAS,oBAAoB,SAAS,OAAO;GAC7C;EACF,CAAC;CACL,CAAC;CACD,OAAO;EAAE,IAAI,OAAO;EAAU;EAAM,OAAO;EAAI,UAAU;CAAc;AACzE,CACF;AAEF,MAAM,oBACJ,aAEA,OAAO,GACL,YAAY,aAAa,mBAAmB,UAAU,SAAS,0BACjE,CAAC,CAAC,WAAW,QAAwB,YAAY;CAC/C,MAAM,EAAE,YAAY,WAAW,OAAO,WAAW,QAAQ,WAAW,IAAI;CACxE,MAAM,UAAU,OAAO,wBAAwB,WAAW,SAAS,mBAAmB;CACtF,MAAM,QAAQ,OAAO,mBAAmB,WAAW,KAAK;CACxD,MAAM,OAAO,OAAO,OAAO,IAAI;EAC7B,WACE,mBAAmB;GACjB,KAAK;GACL,cAAc;GACd,MAAM,CAAC,OAAO,OAAO;EACvB,CAAC;EACH,QAAQ,UACN,IAAI,cAAc;GAChB,MAAM;GACN,SAAS,oBAAoB,SAAS,OAAO;GAC7C;EACF,CAAC;CACL,CAAC;CACD,OAAO;EAAE,IAAI,OAAO;EAAU;EAAM,OAAO;EAAI,UAAU;CAAc;AACzE,CAAC;AAEH,MAAa,qBAAqB,sBAChC,sBACA,mBAAmB,YAAY,CACjC;AACA,MAAa,sBAAsB,sBACjC,uBACA,mBAAmB,aAAa,CAClC;AACA,MAAa,yBAAyB,sBACpC,0BACA,iBAAiB,gBAAgB,CACnC;AACA,MAAa,0BAA0B,sBACrC,2BACA,iBAAiB,iBAAiB,CACpC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CallExecutionResult, WriteError } from "../../../write/types.js";
|
|
2
|
+
import { EnsWriteIntent } from "../../../action/write-intent.js";
|
|
3
|
+
import { ResolverRecord } from "../../../internal/capabilities/resolver-resource.js";
|
|
4
|
+
//#region src/actions/permissions/resolver-roles/types.d.ts
|
|
5
|
+
interface ResolverRolesMutationParameters {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly account: string;
|
|
8
|
+
readonly record: ResolverRecord;
|
|
9
|
+
readonly roles?: bigint;
|
|
10
|
+
}
|
|
11
|
+
interface ResolverRootRolesMutationParameters {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly account: string;
|
|
14
|
+
readonly roles: bigint;
|
|
15
|
+
}
|
|
16
|
+
type GrantResolverRolesParameters = ResolverRolesMutationParameters;
|
|
17
|
+
type RevokeResolverRolesParameters = ResolverRolesMutationParameters;
|
|
18
|
+
type GrantResolverRootRolesParameters = ResolverRootRolesMutationParameters;
|
|
19
|
+
type RevokeResolverRootRolesParameters = ResolverRootRolesMutationParameters;
|
|
20
|
+
type GrantResolverRolesResult = CallExecutionResult;
|
|
21
|
+
type RevokeResolverRolesResult = CallExecutionResult;
|
|
22
|
+
type GrantResolverRootRolesResult = CallExecutionResult;
|
|
23
|
+
type RevokeResolverRootRolesResult = CallExecutionResult;
|
|
24
|
+
type GrantResolverRolesError = WriteError;
|
|
25
|
+
type RevokeResolverRolesError = WriteError;
|
|
26
|
+
type GrantResolverRootRolesError = WriteError;
|
|
27
|
+
type RevokeResolverRootRolesError = WriteError;
|
|
28
|
+
type GrantResolverRolesIntent = EnsWriteIntent<GrantResolverRolesResult, GrantResolverRolesError>;
|
|
29
|
+
type RevokeResolverRolesIntent = EnsWriteIntent<RevokeResolverRolesResult, RevokeResolverRolesError>;
|
|
30
|
+
type GrantResolverRootRolesIntent = EnsWriteIntent<GrantResolverRootRolesResult, GrantResolverRootRolesError>;
|
|
31
|
+
type RevokeResolverRootRolesIntent = EnsWriteIntent<RevokeResolverRootRolesResult, RevokeResolverRootRolesError>;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { GrantResolverRolesError, GrantResolverRolesIntent, GrantResolverRolesParameters, GrantResolverRolesResult, GrantResolverRootRolesError, GrantResolverRootRolesIntent, GrantResolverRootRolesParameters, GrantResolverRootRolesResult, ResolverRolesMutationParameters, ResolverRootRolesMutationParameters, RevokeResolverRolesError, RevokeResolverRolesIntent, RevokeResolverRolesParameters, RevokeResolverRolesResult, RevokeResolverRootRolesError, RevokeResolverRootRolesIntent, RevokeResolverRootRolesParameters, RevokeResolverRootRolesResult };
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/actions/permissions/resolver-roles/types.ts"],"mappings":";;;;UAIiB;WACN;WACA;WACA,QAAQ;WACR;;UAGM;WACN;WACA;WACA;;KAGC,+BAA+B;KAC/B,gCAAgC;KAChC,mCAAmC;KACnC,oCAAoC;KACpC,2BAA2B;KAC3B,4BAA4B;KAC5B,+BAA+B;KAC/B,gCAAgC;KAChC,0BAA0B;KAC1B,2BAA2B;KAC3B,8BAA8B;KAC9B,+BAA+B;KAC/B,2BAA2B,eACrC,0BACA;KAEU,4BAA4B,eACtC,2BACA;KAEU,+BAA+B,eACzC,8BACA;KAEU,gCAAgC,eAC1C,+BACA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { WritePlanError } from "../../errors/write-plan-error.js";
|
|
2
|
+
import { Effect } from "effect";
|
|
3
|
+
|
|
4
|
+
//#region src/actions/permissions/roles.ts
|
|
5
|
+
const validateRoleBitmap = (roles) => roles > 0n && roles < 1n << 256n ? Effect.succeed(roles) : Effect.fail(new WritePlanError({
|
|
6
|
+
code: "INVALID_CALL_PLAN",
|
|
7
|
+
message: "Role bitmap must be a non-zero uint256",
|
|
8
|
+
cause: roles
|
|
9
|
+
}));
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { validateRoleBitmap };
|
|
13
|
+
//# sourceMappingURL=roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.js","names":[],"sources":["../../../src/actions/permissions/roles.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport { WritePlanError } from \"../../errors/write-plan-error.js\";\n\nexport const validateRoleBitmap = (roles: bigint) =>\n roles > 0n && roles < 1n << 256n\n ? Effect.succeed(roles)\n : Effect.fail(\n new WritePlanError({\n code: \"INVALID_CALL_PLAN\",\n message: \"Role bitmap must be a non-zero uint256\",\n cause: roles,\n }),\n );\n"],"mappings":";;;;AAIA,MAAa,sBAAsB,UACjC,QAAQ,MAAM,QAAQ,MAAM,OACxB,OAAO,QAAQ,KAAK,IACpB,OAAO,KACL,IAAI,eAAe;CACjB,MAAM;CACN,SAAS;CACT,OAAO;AACT,CAAC,CACH"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EnsAction } from "../../../action/action.js";
|
|
2
|
+
import { WriteError } from "../../../write/types.js";
|
|
3
|
+
import { AppliedRecordPermission, SetRecordPermissionsError, SetRecordPermissionsParameters, SetRecordPermissionsResult } from "./types.js";
|
|
4
|
+
import "../../../index.js";
|
|
5
|
+
//#region src/actions/permissions/set-record-permissions/index.d.ts
|
|
6
|
+
declare const setRecordPermissions: EnsAction<SetRecordPermissionsParameters, SetRecordPermissionsResult, WriteError>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { type AppliedRecordPermission, type SetRecordPermissionsError, type SetRecordPermissionsParameters, type SetRecordPermissionsResult, setRecordPermissions };
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/actions/permissions/set-record-permissions/index.ts"],"mappings":";;;;;cAwJa,sBAAoB,UAAA,gCAAA,4BAAA"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { defineAction } from "../../../action/action.js";
|
|
2
|
+
import { WritePlanError } from "../../../errors/write-plan-error.js";
|
|
3
|
+
import { sendCalls } from "../../batch/send-calls.js";
|
|
4
|
+
import { resolverRecordRole } from "../../../internal/capabilities/resolver-resource.js";
|
|
5
|
+
import { getResolverCapabilities } from "../../capabilities/get-resolver-capabilities/index.js";
|
|
6
|
+
import { getRecordPermissions } from "../../capabilities/get-record-permissions/index.js";
|
|
7
|
+
import { AuthorizationError } from "../../../errors/authorization-error.js";
|
|
8
|
+
import { getProtocol } from "../../name/get-protocol/index.js";
|
|
9
|
+
import { decodePermissionAddress } from "../address.js";
|
|
10
|
+
import { setResolverDelegateApproval } from "../resolver-delegate-approval/index.js";
|
|
11
|
+
import { grantResolverRoles, revokeResolverRoles } from "../resolver-roles/index.js";
|
|
12
|
+
import { Effect } from "effect";
|
|
13
|
+
|
|
14
|
+
//#region src/actions/permissions/set-record-permissions/index.ts
|
|
15
|
+
const implementation = Effect.fn("ensforge.setRecordPermissions")(function* (config, parameters) {
|
|
16
|
+
if (parameters.records.length === 0) return yield* new WritePlanError({
|
|
17
|
+
code: "INVALID_CALL_PLAN",
|
|
18
|
+
message: "setRecordPermissions requires at least one record permission",
|
|
19
|
+
cause: parameters.records
|
|
20
|
+
});
|
|
21
|
+
const account = yield* decodePermissionAddress(parameters.account, "permission account");
|
|
22
|
+
const [protocol, resolver, permissions] = yield* Effect.all([
|
|
23
|
+
getProtocol.effect(config, { name: parameters.name }),
|
|
24
|
+
getResolverCapabilities.effect(config, { name: parameters.name }),
|
|
25
|
+
getRecordPermissions.effect(config, {
|
|
26
|
+
name: parameters.name,
|
|
27
|
+
account,
|
|
28
|
+
records: parameters.records
|
|
29
|
+
})
|
|
30
|
+
], { concurrency: "unbounded" });
|
|
31
|
+
if (resolver.address === null || resolver.inherited) return yield* new AuthorizationError({
|
|
32
|
+
code: "WRITE_TARGET_UNAVAILABLE",
|
|
33
|
+
message: `A directly attached resolver is required for ${parameters.name}`
|
|
34
|
+
});
|
|
35
|
+
const unsupported = permissions.records.find((permission) => !permission.supported);
|
|
36
|
+
if (unsupported !== void 0) return yield* new AuthorizationError({
|
|
37
|
+
code: "RECORD_UNSUPPORTED",
|
|
38
|
+
message: `The resolver for ${parameters.name} does not support ${unsupported.record.type} permissions`
|
|
39
|
+
});
|
|
40
|
+
if (resolver.authorization === "owner-delegate") {
|
|
41
|
+
if (parameters.allowScopeWidening !== true) return yield* new AuthorizationError({
|
|
42
|
+
code: "SCOPE_WIDENING_REQUIRED",
|
|
43
|
+
message: `Public Resolver delegation widens the requested permissions to every record for ${parameters.name}`
|
|
44
|
+
});
|
|
45
|
+
const execution = yield* sendCalls.effect(config, {
|
|
46
|
+
calls: [setResolverDelegateApproval.call({
|
|
47
|
+
name: parameters.name,
|
|
48
|
+
delegate: account,
|
|
49
|
+
approved: parameters.approved
|
|
50
|
+
})],
|
|
51
|
+
...parameters.walletClient === void 0 ? {} : { walletClient: parameters.walletClient },
|
|
52
|
+
...parameters.walletAccount === void 0 ? {} : { account: parameters.walletAccount },
|
|
53
|
+
mode: "sequential",
|
|
54
|
+
atomicity: "none",
|
|
55
|
+
...parameters.confirmation === void 0 ? {} : { confirmation: parameters.confirmation }
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
model: "public-resolver-delegate",
|
|
59
|
+
protocol,
|
|
60
|
+
resolver: resolver.address,
|
|
61
|
+
account,
|
|
62
|
+
approved: parameters.approved,
|
|
63
|
+
scope: "node",
|
|
64
|
+
widened: true,
|
|
65
|
+
execution
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (resolver.authorization !== "role" || protocol !== "v2") return yield* new AuthorizationError({
|
|
69
|
+
code: "WRITE_TARGET_UNAVAILABLE",
|
|
70
|
+
message: `The resolver permission model for ${parameters.name} is not supported`
|
|
71
|
+
});
|
|
72
|
+
const exact = permissions.records.map((permission) => ({
|
|
73
|
+
record: permission.record,
|
|
74
|
+
resource: permission.resource,
|
|
75
|
+
roles: resolverRecordRole(permission.record)
|
|
76
|
+
}));
|
|
77
|
+
const invalid = exact.find((permission) => permission.resource === null || permission.roles === 0n);
|
|
78
|
+
if (invalid !== void 0) return yield* new AuthorizationError({
|
|
79
|
+
code: "RECORD_UNSUPPORTED",
|
|
80
|
+
message: `Exact ${invalid.record.type} permissions are unavailable for ${parameters.name}`
|
|
81
|
+
});
|
|
82
|
+
const calls = exact.map((permission) => parameters.approved ? grantResolverRoles.call({
|
|
83
|
+
name: parameters.name,
|
|
84
|
+
account,
|
|
85
|
+
record: permission.record,
|
|
86
|
+
roles: permission.roles
|
|
87
|
+
}) : revokeResolverRoles.call({
|
|
88
|
+
name: parameters.name,
|
|
89
|
+
account,
|
|
90
|
+
record: permission.record,
|
|
91
|
+
roles: permission.roles
|
|
92
|
+
}));
|
|
93
|
+
const execution = yield* sendCalls.effect(config, {
|
|
94
|
+
calls,
|
|
95
|
+
...parameters.walletClient === void 0 ? {} : { walletClient: parameters.walletClient },
|
|
96
|
+
...parameters.walletAccount === void 0 ? {} : { account: parameters.walletAccount },
|
|
97
|
+
...parameters.mode === void 0 ? {} : { mode: parameters.mode },
|
|
98
|
+
...parameters.atomicity === void 0 ? {} : { atomicity: parameters.atomicity },
|
|
99
|
+
...parameters.confirmation === void 0 ? {} : { confirmation: parameters.confirmation },
|
|
100
|
+
...parameters.capabilities === void 0 ? {} : { capabilities: parameters.capabilities }
|
|
101
|
+
});
|
|
102
|
+
return {
|
|
103
|
+
model: "permissioned-resolver-roles",
|
|
104
|
+
protocol: "v2",
|
|
105
|
+
resolver: resolver.address,
|
|
106
|
+
account,
|
|
107
|
+
approved: parameters.approved,
|
|
108
|
+
scope: "exact",
|
|
109
|
+
widened: false,
|
|
110
|
+
permissions: exact.map((permission) => ({
|
|
111
|
+
record: permission.record,
|
|
112
|
+
resource: permission.resource,
|
|
113
|
+
roles: permission.roles
|
|
114
|
+
})),
|
|
115
|
+
execution
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
const setRecordPermissions = defineAction(implementation);
|
|
119
|
+
|
|
120
|
+
//#endregion
|
|
121
|
+
export { setRecordPermissions };
|
|
122
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/actions/permissions/set-record-permissions/index.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nimport { defineAction } from \"../../../action/action.js\";\nimport type { EnsforgeConfig } from \"../../../config/config.js\";\nimport { AuthorizationError } from \"../../../errors/authorization-error.js\";\nimport { WritePlanError } from \"../../../errors/write-plan-error.js\";\nimport { resolverRecordRole } from \"../../../internal/capabilities/resolver-resource.js\";\nimport { sendCalls } from \"../../batch/send-calls.js\";\nimport { getRecordPermissions } from \"../../capabilities/get-record-permissions/index.js\";\nimport { getResolverCapabilities } from \"../../capabilities/get-resolver-capabilities/index.js\";\nimport { getProtocol } from \"../../name/get-protocol/index.js\";\nimport { decodePermissionAddress } from \"../address.js\";\nimport { setResolverDelegateApproval } from \"../resolver-delegate-approval/index.js\";\nimport { grantResolverRoles, revokeResolverRoles } from \"../resolver-roles/index.js\";\nimport type {\n SetRecordPermissionsError,\n SetRecordPermissionsParameters,\n SetRecordPermissionsResult,\n} from \"./types.js\";\n\nconst implementation = Effect.fn(\"ensforge.setRecordPermissions\")(function* (\n config: EnsforgeConfig,\n parameters: SetRecordPermissionsParameters,\n): Effect.fn.Return<SetRecordPermissionsResult, SetRecordPermissionsError> {\n if (parameters.records.length === 0) {\n return yield* new WritePlanError({\n code: \"INVALID_CALL_PLAN\",\n message: \"setRecordPermissions requires at least one record permission\",\n cause: parameters.records,\n });\n }\n const account = yield* decodePermissionAddress(parameters.account, \"permission account\");\n const [protocol, resolver, permissions] = yield* Effect.all(\n [\n getProtocol.effect(config, { name: parameters.name }),\n getResolverCapabilities.effect(config, { name: parameters.name }),\n getRecordPermissions.effect(config, {\n name: parameters.name,\n account,\n records: parameters.records,\n }),\n ] as const,\n { concurrency: \"unbounded\" },\n );\n if (resolver.address === null || resolver.inherited) {\n return yield* new AuthorizationError({\n code: \"WRITE_TARGET_UNAVAILABLE\",\n message: `A directly attached resolver is required for ${parameters.name}`,\n });\n }\n const unsupported = permissions.records.find((permission) => !permission.supported);\n if (unsupported !== undefined) {\n return yield* new AuthorizationError({\n code: \"RECORD_UNSUPPORTED\",\n message: `The resolver for ${parameters.name} does not support ${unsupported.record.type} permissions`,\n });\n }\n\n if (resolver.authorization === \"owner-delegate\") {\n if (parameters.allowScopeWidening !== true) {\n return yield* new AuthorizationError({\n code: \"SCOPE_WIDENING_REQUIRED\",\n message: `Public Resolver delegation widens the requested permissions to every record for ${parameters.name}`,\n });\n }\n const execution = yield* sendCalls.effect(config, {\n calls: [\n setResolverDelegateApproval.call({\n name: parameters.name,\n delegate: account,\n approved: parameters.approved,\n }),\n ],\n ...(parameters.walletClient === undefined ? {} : { walletClient: parameters.walletClient }),\n ...(parameters.walletAccount === undefined ? {} : { account: parameters.walletAccount }),\n mode: \"sequential\",\n atomicity: \"none\",\n ...(parameters.confirmation === undefined ? {} : { confirmation: parameters.confirmation }),\n });\n return {\n model: \"public-resolver-delegate\",\n protocol,\n resolver: resolver.address,\n account,\n approved: parameters.approved,\n scope: \"node\",\n widened: true,\n execution,\n };\n }\n\n if (resolver.authorization !== \"role\" || protocol !== \"v2\") {\n return yield* new AuthorizationError({\n code: \"WRITE_TARGET_UNAVAILABLE\",\n message: `The resolver permission model for ${parameters.name} is not supported`,\n });\n }\n const exact = permissions.records.map((permission) => ({\n record: permission.record,\n resource: permission.resource,\n roles: resolverRecordRole(permission.record),\n }));\n const invalid = exact.find(\n (permission) => permission.resource === null || permission.roles === 0n,\n );\n if (invalid !== undefined) {\n return yield* new AuthorizationError({\n code: \"RECORD_UNSUPPORTED\",\n message: `Exact ${invalid.record.type} permissions are unavailable for ${parameters.name}`,\n });\n }\n const calls = exact.map((permission) =>\n parameters.approved\n ? grantResolverRoles.call({\n name: parameters.name,\n account,\n record: permission.record,\n roles: permission.roles,\n })\n : revokeResolverRoles.call({\n name: parameters.name,\n account,\n record: permission.record,\n roles: permission.roles,\n }),\n );\n const execution = yield* sendCalls.effect(config, {\n calls,\n ...(parameters.walletClient === undefined ? {} : { walletClient: parameters.walletClient }),\n ...(parameters.walletAccount === undefined ? {} : { account: parameters.walletAccount }),\n ...(parameters.mode === undefined ? {} : { mode: parameters.mode }),\n ...(parameters.atomicity === undefined ? {} : { atomicity: parameters.atomicity }),\n ...(parameters.confirmation === undefined ? {} : { confirmation: parameters.confirmation }),\n ...(parameters.capabilities === undefined ? {} : { capabilities: parameters.capabilities }),\n });\n return {\n model: \"permissioned-resolver-roles\",\n protocol: \"v2\",\n resolver: resolver.address,\n account,\n approved: parameters.approved,\n scope: \"exact\",\n widened: false,\n permissions: exact.map((permission) => ({\n record: permission.record,\n resource: permission.resource as bigint,\n roles: permission.roles,\n })),\n execution,\n };\n});\n\nexport const setRecordPermissions = defineAction<\n SetRecordPermissionsParameters,\n SetRecordPermissionsResult,\n SetRecordPermissionsError\n>(implementation);\n\nexport type {\n AppliedRecordPermission,\n SetRecordPermissionsError,\n SetRecordPermissionsParameters,\n SetRecordPermissionsResult,\n} from \"./types.js\";\n"],"mappings":";;;;;;;;;;;;;;AAoBA,MAAM,iBAAiB,OAAO,GAAG,+BAA+B,CAAC,CAAC,WAChE,QACA,YACyE;CACzE,IAAI,WAAW,QAAQ,WAAW,GAChC,OAAO,OAAO,IAAI,eAAe;EAC/B,MAAM;EACN,SAAS;EACT,OAAO,WAAW;CACpB,CAAC;CAEH,MAAM,UAAU,OAAO,wBAAwB,WAAW,SAAS,oBAAoB;CACvF,MAAM,CAAC,UAAU,UAAU,eAAe,OAAO,OAAO,IACtD;EACE,YAAY,OAAO,QAAQ,EAAE,MAAM,WAAW,KAAK,CAAC;EACpD,wBAAwB,OAAO,QAAQ,EAAE,MAAM,WAAW,KAAK,CAAC;EAChE,qBAAqB,OAAO,QAAQ;GAClC,MAAM,WAAW;GACjB;GACA,SAAS,WAAW;EACtB,CAAC;CACH,GACA,EAAE,aAAa,YAAY,CAC7B;CACA,IAAI,SAAS,YAAY,QAAQ,SAAS,WACxC,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,gDAAgD,WAAW;CACtE,CAAC;CAEH,MAAM,cAAc,YAAY,QAAQ,MAAM,eAAe,CAAC,WAAW,SAAS;CAClF,IAAI,gBAAgB,QAClB,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,oBAAoB,WAAW,KAAK,oBAAoB,YAAY,OAAO,KAAK;CAC3F,CAAC;CAGH,IAAI,SAAS,kBAAkB,kBAAkB;EAC/C,IAAI,WAAW,uBAAuB,MACpC,OAAO,OAAO,IAAI,mBAAmB;GACnC,MAAM;GACN,SAAS,mFAAmF,WAAW;EACzG,CAAC;EAEH,MAAM,YAAY,OAAO,UAAU,OAAO,QAAQ;GAChD,OAAO,CACL,4BAA4B,KAAK;IAC/B,MAAM,WAAW;IACjB,UAAU;IACV,UAAU,WAAW;GACvB,CAAC,CACH;GACA,GAAI,WAAW,iBAAiB,SAAY,CAAC,IAAI,EAAE,cAAc,WAAW,aAAa;GACzF,GAAI,WAAW,kBAAkB,SAAY,CAAC,IAAI,EAAE,SAAS,WAAW,cAAc;GACtF,MAAM;GACN,WAAW;GACX,GAAI,WAAW,iBAAiB,SAAY,CAAC,IAAI,EAAE,cAAc,WAAW,aAAa;EAC3F,CAAC;EACD,OAAO;GACL,OAAO;GACP;GACA,UAAU,SAAS;GACnB;GACA,UAAU,WAAW;GACrB,OAAO;GACP,SAAS;GACT;EACF;CACF;CAEA,IAAI,SAAS,kBAAkB,UAAU,aAAa,MACpD,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,qCAAqC,WAAW,KAAK;CAChE,CAAC;CAEH,MAAM,QAAQ,YAAY,QAAQ,KAAK,gBAAgB;EACrD,QAAQ,WAAW;EACnB,UAAU,WAAW;EACrB,OAAO,mBAAmB,WAAW,MAAM;CAC7C,EAAE;CACF,MAAM,UAAU,MAAM,MACnB,eAAe,WAAW,aAAa,QAAQ,WAAW,UAAU,EACvE;CACA,IAAI,YAAY,QACd,OAAO,OAAO,IAAI,mBAAmB;EACnC,MAAM;EACN,SAAS,SAAS,QAAQ,OAAO,KAAK,mCAAmC,WAAW;CACtF,CAAC;CAEH,MAAM,QAAQ,MAAM,KAAK,eACvB,WAAW,WACP,mBAAmB,KAAK;EACtB,MAAM,WAAW;EACjB;EACA,QAAQ,WAAW;EACnB,OAAO,WAAW;CACpB,CAAC,IACD,oBAAoB,KAAK;EACvB,MAAM,WAAW;EACjB;EACA,QAAQ,WAAW;EACnB,OAAO,WAAW;CACpB,CAAC,CACP;CACA,MAAM,YAAY,OAAO,UAAU,OAAO,QAAQ;EAChD;EACA,GAAI,WAAW,iBAAiB,SAAY,CAAC,IAAI,EAAE,cAAc,WAAW,aAAa;EACzF,GAAI,WAAW,kBAAkB,SAAY,CAAC,IAAI,EAAE,SAAS,WAAW,cAAc;EACtF,GAAI,WAAW,SAAS,SAAY,CAAC,IAAI,EAAE,MAAM,WAAW,KAAK;EACjE,GAAI,WAAW,cAAc,SAAY,CAAC,IAAI,EAAE,WAAW,WAAW,UAAU;EAChF,GAAI,WAAW,iBAAiB,SAAY,CAAC,IAAI,EAAE,cAAc,WAAW,aAAa;EACzF,GAAI,WAAW,iBAAiB,SAAY,CAAC,IAAI,EAAE,cAAc,WAAW,aAAa;CAC3F,CAAC;CACD,OAAO;EACL,OAAO;EACP,UAAU;EACV,UAAU,SAAS;EACnB;EACA,UAAU,WAAW;EACrB,OAAO;EACP,SAAS;EACT,aAAa,MAAM,KAAK,gBAAgB;GACtC,QAAQ,WAAW;GACnB,UAAU,WAAW;GACrB,OAAO,WAAW;EACpB,EAAE;EACF;CACF;AACF,CAAC;AAED,MAAa,uBAAuB,aAIlC,cAAc"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ConfirmationPolicy } from "../../../config/write-options.js";
|
|
2
|
+
import { SendCallsResult, WriteAtomicity, WriteError, WriteMode } from "../../../write/types.js";
|
|
3
|
+
import { EthereumAddress } from "../../../schemas/identity.js";
|
|
4
|
+
import { RecordOperation } from "../../capabilities/types.js";
|
|
5
|
+
import { Account, Address, WalletClient } from "viem";
|
|
6
|
+
//#region src/actions/permissions/set-record-permissions/types.d.ts
|
|
7
|
+
interface SetRecordPermissionsParameters {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly account: string;
|
|
10
|
+
readonly records: ReadonlyArray<RecordOperation>;
|
|
11
|
+
readonly approved: boolean;
|
|
12
|
+
readonly allowScopeWidening?: boolean;
|
|
13
|
+
readonly walletClient?: WalletClient;
|
|
14
|
+
readonly walletAccount?: Account | Address;
|
|
15
|
+
readonly mode?: WriteMode;
|
|
16
|
+
readonly atomicity?: WriteAtomicity;
|
|
17
|
+
readonly confirmation?: ConfirmationPolicy;
|
|
18
|
+
readonly capabilities?: Readonly<Record<string, unknown>>;
|
|
19
|
+
}
|
|
20
|
+
interface AppliedRecordPermission {
|
|
21
|
+
readonly record: RecordOperation;
|
|
22
|
+
readonly resource: bigint;
|
|
23
|
+
readonly roles: bigint;
|
|
24
|
+
}
|
|
25
|
+
type SetRecordPermissionsResult = {
|
|
26
|
+
readonly model: "public-resolver-delegate";
|
|
27
|
+
readonly protocol: "v1" | "v2";
|
|
28
|
+
readonly resolver: EthereumAddress;
|
|
29
|
+
readonly account: EthereumAddress;
|
|
30
|
+
readonly approved: boolean;
|
|
31
|
+
readonly scope: "node";
|
|
32
|
+
readonly widened: true;
|
|
33
|
+
readonly execution: SendCallsResult;
|
|
34
|
+
} | {
|
|
35
|
+
readonly model: "permissioned-resolver-roles";
|
|
36
|
+
readonly protocol: "v2";
|
|
37
|
+
readonly resolver: EthereumAddress;
|
|
38
|
+
readonly account: EthereumAddress;
|
|
39
|
+
readonly approved: boolean;
|
|
40
|
+
readonly scope: "exact";
|
|
41
|
+
readonly widened: false;
|
|
42
|
+
readonly permissions: ReadonlyArray<AppliedRecordPermission>;
|
|
43
|
+
readonly execution: SendCallsResult;
|
|
44
|
+
};
|
|
45
|
+
type SetRecordPermissionsError = WriteError;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { AppliedRecordPermission, SetRecordPermissionsError, SetRecordPermissionsParameters, SetRecordPermissionsResult };
|
|
48
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../src/actions/permissions/set-record-permissions/types.ts"],"mappings":";;;;;;UAYiB;WACN;WACA;WACA,SAAS,cAAc;WACvB;WACA;WACA,eAAe;WACf,gBAAgB,UAAU;WAC1B,OAAO;WACP,YAAY;WACZ,eAAe;WACf,eAAe,SAAS;;UAGlB;WACN,QAAQ;WACR;WACA;;KAGC;WAEG;WACA;WACA,UAAU;WACV,SAAS;WACT;WACA;WACA;WACA,WAAW;;WAGX;WACA;WACA,UAAU;WACV,SAAS;WACT;WACA;WACA;WACA,aAAa,cAAc;WAC3B,WAAW;;KAGd,4BAA4B"}
|