@etherisc/gif-next 0.0.2-b244df3-779 → 0.0.2-b38343e-249
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/README.md +73 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +853 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +887 -242
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/{BaseComponent.sol/BaseComponent.json → IComponent.sol/IComponent.json} +160 -100
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +791 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +655 -43
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +654 -5
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +600 -217
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +543 -152
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +38 -62
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +881 -121
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +168 -166
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +791 -438
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +118 -173
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +61 -97
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +390 -362
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +299 -130
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -32
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +188 -168
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +2 -2
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +24 -13
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +858 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +657 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +408 -246
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +302 -81
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +743 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +443 -192
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +322 -73
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{IComponentOwnerService.sol/IComponentOwnerService.json → IApplicationService.sol/IApplicationService.json} +200 -204
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +170 -217
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → instance/service/IClaimService.sol/IClaimService.json} +154 -124
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +197 -163
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +138 -230
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +23 -186
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +29 -192
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +392 -267
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +339 -86
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +216 -218
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +299 -78
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +217 -219
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +305 -76
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +225 -133
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +149 -217
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +238 -235
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +195 -322
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +298 -145
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -53
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +48 -0
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +23 -186
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +119 -173
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +140 -230
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/Component.sol +242 -0
- package/contracts/components/Distribution.sol +209 -64
- package/contracts/components/IComponent.sol +55 -0
- package/contracts/components/IDistributionComponent.sol +59 -3
- package/contracts/components/IPoolComponent.sol +50 -29
- package/contracts/components/IProductComponent.sol +7 -3
- package/contracts/components/Pool.sol +135 -152
- package/contracts/components/Product.sol +114 -121
- package/contracts/instance/BundleManager.sol +7 -11
- package/contracts/instance/IInstance.sol +42 -10
- package/contracts/instance/IInstanceService.sol +27 -2
- package/contracts/instance/Instance.sol +84 -69
- package/contracts/instance/InstanceAccessManager.sol +36 -41
- package/contracts/instance/InstanceReader.sol +3 -25
- package/contracts/instance/InstanceService.sol +271 -79
- package/contracts/instance/InstanceServiceManager.sol +6 -9
- package/contracts/instance/ObjectManager.sol +7 -24
- package/contracts/instance/base/ComponentService.sol +134 -0
- package/contracts/instance/module/IAccess.sol +4 -5
- package/contracts/instance/module/IPolicy.sol +4 -2
- package/contracts/instance/module/ISetup.sol +5 -4
- package/contracts/instance/service/ApplicationService.sol +268 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +52 -14
- package/contracts/instance/service/BundleServiceManager.sol +6 -9
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +208 -49
- package/contracts/instance/service/DistributionServiceManager.sol +7 -10
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +12 -3
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +53 -0
- package/contracts/instance/service/IPolicyService.sol +48 -46
- package/contracts/instance/service/PolicyService.sol +156 -190
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +27 -42
- package/contracts/instance/service/PoolServiceManager.sol +6 -9
- package/contracts/instance/service/ProductService.sol +100 -40
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +37 -19
- package/contracts/registry/IRegistryService.sol +30 -13
- package/contracts/registry/Registry.sol +233 -217
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +96 -171
- package/contracts/registry/RegistryServiceManager.sol +21 -39
- package/contracts/registry/ReleaseManager.sol +322 -0
- package/contracts/registry/TokenRegistry.sol +22 -17
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +2 -1
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +66 -80
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +14 -30
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +25 -22
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +4 -3
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/ObjectType.sol +9 -5
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/RoleId.sol +6 -8
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/contracts/components/BaseComponent.sol +0 -132
- package/contracts/components/IBaseComponent.sol +0 -31
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -72
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -1,48 +1,52 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
-
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
7
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
8
5
|
|
9
|
-
import {IAccess} from "./module/IAccess.sol";
|
10
|
-
import {IBundle} from "./module/IBundle.sol";
|
11
|
-
import {IPolicy} from "./module/IPolicy.sol";
|
12
|
-
import {IRisk} from "./module/IRisk.sol";
|
13
|
-
import {ISetup} from "./module/ISetup.sol";
|
14
6
|
import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
|
15
|
-
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
16
|
-
import {IInstance} from "./IInstance.sol";
|
17
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
18
|
-
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
19
|
-
import {BundleManager} from "./BundleManager.sol";
|
20
7
|
import {NftId} from "../types/NftId.sol";
|
8
|
+
import {ClaimId} from "../types/ClaimId.sol";
|
21
9
|
import {NumberId} from "../types/NumberId.sol";
|
22
|
-
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
|
10
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
|
23
11
|
import {RiskId, RiskIdLib} from "../types/RiskId.sol";
|
24
12
|
import {RoleId, RoleIdLib} from "../types/RoleId.sol";
|
25
13
|
import {StateId, ACTIVE} from "../types/StateId.sol";
|
26
14
|
import {TimestampLib} from "../types/Timestamp.sol";
|
15
|
+
import {VersionPart} from "../types/Version.sol";
|
16
|
+
|
27
17
|
import {ERC165} from "../shared/ERC165.sol";
|
28
18
|
import {Registerable} from "../shared/Registerable.sol";
|
29
|
-
|
30
|
-
import {
|
19
|
+
|
20
|
+
import {IInstance} from "./IInstance.sol";
|
21
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
22
|
+
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
23
|
+
import {BundleManager} from "./BundleManager.sol";
|
24
|
+
|
25
|
+
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
26
|
+
|
27
|
+
import {IAccess} from "./module/IAccess.sol";
|
28
|
+
import {IBundle} from "./module/IBundle.sol";
|
29
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
30
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
31
|
+
import {IRisk} from "./module/IRisk.sol";
|
32
|
+
import {ISetup} from "./module/ISetup.sol";
|
33
|
+
|
31
34
|
import {IDistributionService} from "./service/IDistributionService.sol";
|
32
35
|
import {IPoolService} from "./service/IPoolService.sol";
|
33
36
|
import {IProductService} from "./service/IProductService.sol";
|
34
37
|
import {IPolicyService} from "./service/IPolicyService.sol";
|
35
38
|
import {IBundleService} from "./service/IBundleService.sol";
|
36
|
-
import {VersionPart} from "../types/Version.sol";
|
37
|
-
import {InstanceBase} from "./InstanceBase.sol";
|
39
|
+
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
38
40
|
|
39
41
|
contract Instance is
|
40
|
-
AccessManagedUpgradeable,
|
41
42
|
IInstance,
|
42
|
-
|
43
|
-
|
43
|
+
AccessManagedUpgradeable,
|
44
|
+
Registerable,
|
45
|
+
KeyValueStore
|
44
46
|
{
|
45
47
|
|
48
|
+
uint256 public constant GIF_MAJOR_VERSION = 3;
|
49
|
+
|
46
50
|
uint64 public constant ADMIN_ROLE = type(uint64).min;
|
47
51
|
uint64 public constant PUBLIC_ROLE = type(uint64).max;
|
48
52
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
@@ -57,18 +61,12 @@ contract Instance is
|
|
57
61
|
|
58
62
|
function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner)
|
59
63
|
public
|
60
|
-
initializer
|
64
|
+
initializer()
|
61
65
|
{
|
62
|
-
require(!_initialized, "Contract instance has already been initialized");
|
63
|
-
|
64
66
|
__AccessManaged_init(accessManagerAddress);
|
65
|
-
|
66
|
-
_accessManager = InstanceAccessManager(accessManagerAddress);
|
67
67
|
|
68
|
-
|
69
|
-
|
70
|
-
_registerInterface(type(IInstance).interfaceId);
|
71
|
-
_initialized = true;
|
68
|
+
initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
|
69
|
+
registerInterface(type(IInstance).interfaceId);
|
72
70
|
}
|
73
71
|
|
74
72
|
//--- ProductSetup ------------------------------------------------------//
|
@@ -110,43 +108,43 @@ contract Instance is
|
|
110
108
|
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
111
109
|
}
|
112
110
|
|
113
|
-
//--- DistributorType
|
114
|
-
function createDistributorType(
|
115
|
-
create(
|
111
|
+
//--- DistributorType -------------------------------------------------------//
|
112
|
+
function createDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
113
|
+
create(distributorKey, abi.encode(info));
|
116
114
|
}
|
117
115
|
|
118
|
-
function updateDistributorType(
|
119
|
-
update(
|
116
|
+
function updateDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
117
|
+
update(distributorKey, abi.encode(info), newState);
|
120
118
|
}
|
121
119
|
|
122
|
-
function updateDistributorTypeState(
|
123
|
-
updateState(
|
120
|
+
function updateDistributorTypeState(Key32 distributorKey, StateId newState) external restricted() {
|
121
|
+
updateState(distributorKey, newState);
|
124
122
|
}
|
125
123
|
|
126
124
|
//--- Distributor -------------------------------------------------------//
|
127
|
-
function createDistributor(NftId
|
128
|
-
create(
|
125
|
+
function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external restricted() {
|
126
|
+
create(toDistributorKey32(nftId), abi.encode(info));
|
129
127
|
}
|
130
128
|
|
131
|
-
function updateDistributor(NftId
|
132
|
-
update(
|
129
|
+
function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
130
|
+
update(toDistributorKey32(nftId), abi.encode(info), newState);
|
133
131
|
}
|
134
132
|
|
135
|
-
function updateDistributorState(NftId
|
136
|
-
updateState(
|
133
|
+
function updateDistributorState(NftId nftId, StateId newState) external restricted() {
|
134
|
+
updateState(toDistributorKey32(nftId), newState);
|
137
135
|
}
|
138
136
|
|
139
137
|
//--- Referral ----------------------------------------------------------//
|
140
|
-
function createReferral(
|
141
|
-
create(
|
138
|
+
function createReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
139
|
+
create(referralKey, abi.encode(referralInfo));
|
142
140
|
}
|
143
141
|
|
144
|
-
function updateReferral(
|
145
|
-
update(
|
142
|
+
function updateReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
143
|
+
update(referralKey, abi.encode(referralInfo), newState);
|
146
144
|
}
|
147
145
|
|
148
|
-
function updateReferralState(
|
149
|
-
updateState(
|
146
|
+
function updateReferralState(Key32 referralKey, StateId newState) external restricted() {
|
147
|
+
updateState(referralKey, newState);
|
150
148
|
}
|
151
149
|
|
152
150
|
//--- Bundle ------------------------------------------------------------//
|
@@ -175,11 +173,20 @@ contract Instance is
|
|
175
173
|
updateState(riskId.toKey32(), newState);
|
176
174
|
}
|
177
175
|
|
178
|
-
//--- Policy
|
179
|
-
function
|
180
|
-
create(toPolicyKey32(
|
176
|
+
//--- Application (Policy) ----------------------------------------------//
|
177
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
178
|
+
create(toPolicyKey32(applicationNftId), abi.encode(policy));
|
181
179
|
}
|
182
180
|
|
181
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
182
|
+
update(toPolicyKey32(applicationNftId), abi.encode(policy), newState);
|
183
|
+
}
|
184
|
+
|
185
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
186
|
+
updateState(toPolicyKey32(applicationNftId), newState);
|
187
|
+
}
|
188
|
+
|
189
|
+
//--- Policy ------------------------------------------------------------//
|
183
190
|
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
184
191
|
update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
|
185
192
|
}
|
@@ -189,15 +196,15 @@ contract Instance is
|
|
189
196
|
}
|
190
197
|
|
191
198
|
//--- Claim -------------------------------------------------------------//
|
192
|
-
function createClaim(NftId policyNftId,
|
199
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
193
200
|
create(toPolicyKey32(policyNftId), abi.encode(claim));
|
194
201
|
}
|
195
202
|
|
196
|
-
function updateClaim(NftId policyNftId,
|
203
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
197
204
|
update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
|
198
205
|
}
|
199
206
|
|
200
|
-
function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
|
207
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
201
208
|
updateState(toPolicyKey32(policyNftId), newState);
|
202
209
|
}
|
203
210
|
|
@@ -206,7 +213,7 @@ contract Instance is
|
|
206
213
|
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
207
214
|
}
|
208
215
|
|
209
|
-
function
|
216
|
+
function updatePayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
210
217
|
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
211
218
|
}
|
212
219
|
|
@@ -227,46 +234,54 @@ contract Instance is
|
|
227
234
|
return policyNftId.toKey32(POLICY());
|
228
235
|
}
|
229
236
|
|
230
|
-
function
|
231
|
-
return
|
237
|
+
function toDistributionKey32(NftId distNftId) public pure returns (Key32) {
|
238
|
+
return distNftId.toKey32(DISTRIBUTION());
|
239
|
+
}
|
240
|
+
|
241
|
+
function toDistributorTypeKey32(NftId distNftId) public pure returns (Key32) {
|
242
|
+
return distNftId.toKey32(DISTRIBUTOR_TYPE());
|
232
243
|
}
|
233
244
|
|
245
|
+
function toDistributorKey32(NftId distNftId) public pure returns (Key32) {
|
246
|
+
return distNftId.toKey32(DISTRIBUTOR());
|
247
|
+
}
|
248
|
+
|
234
249
|
function getDistributionService() external view returns (IDistributionService) {
|
235
|
-
return IDistributionService(
|
250
|
+
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
236
251
|
}
|
237
252
|
|
238
253
|
function getProductService() external view returns (IProductService) {
|
239
|
-
return IProductService(
|
254
|
+
return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
|
240
255
|
}
|
241
256
|
|
242
257
|
function getPoolService() external view returns (IPoolService) {
|
243
|
-
return IPoolService(
|
258
|
+
return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
|
244
259
|
}
|
245
260
|
|
246
261
|
function getPolicyService() external view returns (IPolicyService) {
|
247
|
-
return IPolicyService(
|
262
|
+
return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
|
248
263
|
}
|
249
264
|
|
250
265
|
function getBundleService() external view returns (IBundleService) {
|
251
|
-
return IBundleService(
|
252
|
-
}
|
253
|
-
|
254
|
-
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
255
|
-
return _accessManager;
|
266
|
+
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
256
267
|
}
|
257
268
|
|
258
269
|
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
259
|
-
require(instanceReader.
|
270
|
+
require(instanceReader.getInstance() == Instance(this), "InstanceReader instance mismatch");
|
260
271
|
_instanceReader = instanceReader;
|
261
272
|
}
|
262
273
|
|
274
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
275
|
+
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
276
|
+
}
|
277
|
+
|
263
278
|
function getInstanceReader() external view returns (InstanceReader) {
|
264
279
|
return _instanceReader;
|
265
280
|
}
|
266
281
|
|
267
282
|
function setBundleManager(BundleManager bundleManager) external restricted() {
|
268
283
|
require(address(_bundleManager) == address(0), "BundleManager is set");
|
269
|
-
require(bundleManager.
|
284
|
+
require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
|
270
285
|
_bundleManager = bundleManager;
|
271
286
|
}
|
272
287
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
4
6
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
5
7
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
7
8
|
|
8
|
-
import {
|
9
|
-
import {RoleId, RoleIdLib, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, POLICY_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_SERVICE_ROLE } from "../types/RoleId.sol";
|
9
|
+
import {RoleId, RoleIdLib } from "../types/RoleId.sol";
|
10
10
|
import {TimestampLib} from "../types/Timestamp.sol";
|
11
11
|
import {IAccess} from "./module/IAccess.sol";
|
12
12
|
|
@@ -32,41 +32,23 @@ contract InstanceAccessManager is
|
|
32
32
|
mapping(ShortString name => address target) internal _targetForName;
|
33
33
|
address [] internal _targets;
|
34
34
|
|
35
|
-
|
35
|
+
AccessManager internal _accessManager;
|
36
36
|
|
37
|
-
function
|
37
|
+
function initialize(address initialAdmin) external initializer
|
38
38
|
{
|
39
39
|
// if size of the contract gets too large, this can be externalized which will reduce the contract size considerably
|
40
|
-
_accessManager = new
|
41
|
-
// this service required
|
42
|
-
_accessManager.__AccessManagerUpgradeableInitializeable_init(address(this));
|
40
|
+
_accessManager = new AccessManager(address(this));
|
41
|
+
// this service required admin rights to access manager to be able to grant/revoke roles
|
43
42
|
_accessManager.grantRole(_accessManager.ADMIN_ROLE(), initialAdmin, 0);
|
44
43
|
|
45
44
|
__AccessManaged_init(address(_accessManager));
|
46
45
|
|
47
46
|
_createRole(RoleIdLib.toRoleId(_accessManager.ADMIN_ROLE()), ADMIN_ROLE_NAME, false, false);
|
48
47
|
_createRole(RoleIdLib.toRoleId(_accessManager.PUBLIC_ROLE()), PUBLIC_ROLE_NAME, false, false);
|
49
|
-
|
50
|
-
createDefaultGifRoles();
|
51
|
-
}
|
52
|
-
|
53
|
-
function createDefaultGifRoles() public restricted() {
|
54
|
-
// DISTRIBUTION_OWNER_ROLE
|
55
|
-
_createRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", false, true);
|
56
|
-
_createRole(POOL_OWNER_ROLE(), "PoolOwnerRole", false, true);
|
57
|
-
_createRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", false, true);
|
58
|
-
|
59
|
-
_createRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole", false, true);
|
60
|
-
_createRole(POOL_SERVICE_ROLE(), "PoolServiceRole", false, true);
|
61
|
-
_createRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole", false, true);
|
62
|
-
_createRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole", false, true);
|
63
|
-
_createRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole", false, true);
|
64
|
-
_createRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole", false, true);
|
65
48
|
}
|
66
49
|
|
67
50
|
//--- Role ------------------------------------------------------//
|
68
|
-
|
69
|
-
function createDefaultRole(RoleId roleId, string memory name) external restricted() {
|
51
|
+
function createGifRole(RoleId roleId, string memory name) external restricted() {
|
70
52
|
_createRole(roleId, name, false, true);
|
71
53
|
}
|
72
54
|
|
@@ -76,7 +58,7 @@ contract InstanceAccessManager is
|
|
76
58
|
|
77
59
|
function setRoleLocked(RoleId roleId, bool locked) external restricted() {
|
78
60
|
if (!roleExists(roleId)) {
|
79
|
-
revert IAccess.
|
61
|
+
revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
|
80
62
|
}
|
81
63
|
|
82
64
|
_role[roleId].isLocked = locked;
|
@@ -89,7 +71,7 @@ contract InstanceAccessManager is
|
|
89
71
|
|
90
72
|
function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
|
91
73
|
if (!roleExists(roleId)) {
|
92
|
-
revert IAccess.
|
74
|
+
revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
|
93
75
|
}
|
94
76
|
|
95
77
|
if (_role[roleId].isLocked) {
|
@@ -167,6 +149,10 @@ contract InstanceAccessManager is
|
|
167
149
|
}
|
168
150
|
|
169
151
|
//--- Target ------------------------------------------------------//
|
152
|
+
function createGifTarget(address target, string memory name) external restricted() {
|
153
|
+
_createTarget(target, name, false, true);
|
154
|
+
}
|
155
|
+
|
170
156
|
function createTarget(address target, string memory name) external restricted() {
|
171
157
|
_createTarget(target, name, true, true);
|
172
158
|
}
|
@@ -175,7 +161,7 @@ contract InstanceAccessManager is
|
|
175
161
|
address target = _targetForName[ShortStrings.toShortString(targetName)];
|
176
162
|
|
177
163
|
if (target == address(0)) {
|
178
|
-
revert IAccess.
|
164
|
+
revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
|
179
165
|
}
|
180
166
|
|
181
167
|
_target[target].isLocked = locked;
|
@@ -249,6 +235,13 @@ contract InstanceAccessManager is
|
|
249
235
|
_validateTargetParameters(target, name, isCustom);
|
250
236
|
}
|
251
237
|
|
238
|
+
if (_target[target].createdAt.gtz()) {
|
239
|
+
revert IAccess.ErrorIAccessTargetExists(target, _target[target].name);
|
240
|
+
}
|
241
|
+
if (_targetForName[ShortStrings.toShortString(name)] != address(0)) {
|
242
|
+
revert IAccess.ErrorIAccessTargetNameExists(target, _targetForName[ShortStrings.toShortString(name)], ShortStrings.toShortString(name));
|
243
|
+
}
|
244
|
+
|
252
245
|
IAccess.TargetInfo memory info = IAccess.TargetInfo(
|
253
246
|
ShortStrings.toShortString(name),
|
254
247
|
isCustom,
|
@@ -265,33 +258,35 @@ contract InstanceAccessManager is
|
|
265
258
|
// TODO: implement
|
266
259
|
}
|
267
260
|
|
268
|
-
function setTargetFunctionRole(
|
269
|
-
address target,
|
270
|
-
bytes4[] calldata selectors,
|
271
|
-
uint64 roleId
|
272
|
-
) public virtual restricted() {
|
273
|
-
_accessManager.setTargetFunctionRole(target, selectors, roleId);
|
274
|
-
}
|
275
|
-
|
276
261
|
function setTargetFunctionRole(
|
277
262
|
string memory targetName,
|
278
263
|
bytes4[] calldata selectors,
|
279
264
|
RoleId roleId
|
280
265
|
) public virtual restricted() {
|
281
266
|
address target = _targetForName[ShortStrings.toShortString(targetName)];
|
267
|
+
|
268
|
+
if (target == address(0)) {
|
269
|
+
revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
|
270
|
+
}
|
271
|
+
if (! roleExists(roleId)) {
|
272
|
+
revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
|
273
|
+
}
|
282
274
|
uint64 roleIdInt = RoleId.unwrap(roleId);
|
283
275
|
_accessManager.setTargetFunctionRole(target, selectors, roleIdInt);
|
284
276
|
}
|
285
277
|
|
286
|
-
function getAccessManager() public restricted() returns (AccessManagerUpgradeableInitializeable) {
|
287
|
-
return _accessManager;
|
288
|
-
}
|
289
|
-
|
290
278
|
function setTargetClosed(string memory targetName, bool closed) public restricted() {
|
291
279
|
address target = _targetForName[ShortStrings.toShortString(targetName)];
|
280
|
+
if (target == address(0)) {
|
281
|
+
revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
|
282
|
+
}
|
292
283
|
_accessManager.setTargetClosed(target, closed);
|
293
284
|
}
|
294
285
|
|
286
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
287
|
+
return _accessManager.isTargetClosed(target);
|
288
|
+
}
|
289
|
+
|
295
290
|
function canCall(
|
296
291
|
address caller,
|
297
292
|
address target,
|
@@ -31,39 +31,21 @@ contract InstanceReader {
|
|
31
31
|
bool private _initialized;
|
32
32
|
|
33
33
|
IRegistry internal _registry;
|
34
|
-
NftId internal _instanceNftId;
|
35
34
|
IInstance internal _instance;
|
36
35
|
IKeyValueStore internal _store;
|
37
36
|
|
38
|
-
|
39
|
-
address registry,
|
40
|
-
NftId instanceNftId
|
41
|
-
)
|
42
|
-
{
|
43
|
-
initialize(registry, instanceNftId);
|
44
|
-
}
|
45
|
-
|
46
|
-
function initialize(address registry, NftId instanceNftId) public {
|
37
|
+
function initialize(address registry, address instance) public {
|
47
38
|
require(!_initialized, "ERROR:CRD-000:ALREADY_INITIALIZED");
|
48
39
|
|
49
40
|
require(
|
50
41
|
address(registry) != address(0),
|
51
42
|
"ERROR:CRD-001:REGISTRY_ZERO");
|
52
43
|
|
53
|
-
require(
|
54
|
-
instanceNftId.gtz(),
|
55
|
-
"ERROR:CRD-002:NFT_ID_ZERO");
|
56
44
|
|
57
45
|
_registry = IRegistry(registry);
|
58
|
-
_instanceNftId = instanceNftId;
|
59
|
-
IRegistry.ObjectInfo memory instanceInfo = _registry.getObjectInfo(_instanceNftId);
|
60
46
|
|
61
|
-
|
62
|
-
|
63
|
-
"ERROR:CRD-003:PARENT_NOT_INSTANCE");
|
64
|
-
|
65
|
-
_instance = IInstance(instanceInfo.objectAddress);
|
66
|
-
_store = IKeyValueStore(instanceInfo.objectAddress);
|
47
|
+
_instance = IInstance(instance);
|
48
|
+
_store = IKeyValueStore(instance);
|
67
49
|
|
68
50
|
_initialized = true;
|
69
51
|
}
|
@@ -301,10 +283,6 @@ contract InstanceReader {
|
|
301
283
|
return _store;
|
302
284
|
}
|
303
285
|
|
304
|
-
function getInstanceNftId() external view returns (NftId nftId) {
|
305
|
-
return _instanceNftId;
|
306
|
-
}
|
307
|
-
|
308
286
|
function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
|
309
287
|
return UFixedLib.toUFixed(value, exp);
|
310
288
|
}
|