@etherisc/gif-next 0.0.2-e94f4c7-084 → 0.0.2-e964d24-516
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/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +45 -14
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
- 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 +252 -2210
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -38
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +352 -2691
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +71 -53
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +233 -67
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -226
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -124
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
- 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 +6 -6
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.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/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +57 -31
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +153 -36
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +493 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +230 -89
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +36 -354
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +37 -154
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/Product.sol/Product.json +53 -22
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -13
- 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 +6 -6
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +4 -4
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +21 -29
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -40
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +9 -9
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +20 -33
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +5 -13
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
- 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/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftId.sol/NftIdLib.json +5 -5
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Seconds.sol/SecondsLib.json +3 -3
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/{components → distribution}/Distribution.sol +15 -14
- package/contracts/{instance/service → distribution}/DistributionService.sol +80 -163
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +5 -5
- package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
- package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
- package/contracts/instance/BundleManager.sol +4 -4
- package/contracts/instance/IInstance.sol +37 -62
- package/contracts/instance/IInstanceService.sol +18 -13
- package/contracts/instance/Instance.sol +94 -175
- package/contracts/instance/InstanceAccessManager.sol +38 -24
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +68 -17
- package/contracts/instance/InstanceService.sol +96 -266
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/ObjectManager.sol +4 -4
- package/contracts/instance/base/IKeyValueStore.sol +5 -5
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +6 -37
- package/contracts/instance/base/Lifecycle.sol +8 -5
- package/contracts/instance/module/IAccess.sol +2 -2
- package/contracts/instance/module/IBundle.sol +5 -5
- package/contracts/instance/module/IComponents.sol +8 -8
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +12 -12
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/instance/module/ISetup.sol +4 -4
- package/contracts/instance/module/ITreasury.sol +2 -2
- package/contracts/{instance/service → pool}/BundleService.sol +84 -145
- package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
- package/contracts/{instance/service → pool}/IBundleService.sol +41 -25
- package/contracts/{components → pool}/IPoolComponent.sol +13 -12
- package/contracts/{instance/service → pool}/IPoolService.sol +26 -14
- package/contracts/{components → pool}/Pool.sol +18 -18
- package/contracts/{instance/service → pool}/PoolService.sol +125 -58
- package/contracts/{instance/service → pool}/PoolServiceManager.sol +5 -5
- package/contracts/product/ApplicationService.sol +186 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +2 -2
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
- package/contracts/{instance/service → product}/IApplicationService.sol +12 -28
- package/contracts/product/IClaimService.sol +90 -0
- package/contracts/product/IPolicyService.sol +80 -0
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/{components → product}/IProductComponent.sol +11 -10
- package/contracts/{instance/service → product}/IProductService.sol +10 -10
- package/contracts/product/PolicyService.sol +376 -0
- package/contracts/{instance/service → product}/PolicyServiceManager.sol +5 -5
- package/contracts/product/PricingService.sol +275 -0
- package/contracts/product/PricingServiceManager.sol +51 -0
- package/contracts/{components → product}/Product.sol +37 -33
- package/contracts/{instance/service → product}/ProductService.sol +46 -46
- package/contracts/{instance/service → product}/ProductServiceManager.sol +5 -5
- package/contracts/registry/IRegistry.sol +4 -4
- package/contracts/registry/IRegistryService.sol +4 -6
- package/contracts/registry/Registry.sol +3 -3
- package/contracts/registry/RegistryAccessManager.sol +1 -1
- package/contracts/registry/RegistryService.sol +23 -20
- package/contracts/registry/RegistryServiceManager.sol +0 -2
- package/contracts/registry/ReleaseManager.sol +5 -5
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/{components → shared}/Component.sol +26 -8
- package/contracts/{instance/base → shared}/ComponentService.sol +63 -34
- package/contracts/{components → shared}/IComponent.sol +19 -5
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +24 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +3 -1
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/NftOwnable.sol +1 -3
- package/contracts/shared/PolicyHolder.sol +31 -18
- package/contracts/shared/ProxyManager.sol +3 -3
- package/contracts/shared/Registerable.sol +12 -11
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +3 -3
- package/contracts/shared/TokenHandler.sol +4 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStakingService.sol +102 -0
- package/contracts/staking/StakeingServiceManager.sol +37 -0
- package/contracts/staking/StakingService.sol +166 -0
- package/contracts/{types → type}/Amount.sol +39 -0
- package/contracts/{types → type}/Fee.sol +7 -6
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +5 -1
- package/package.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1543
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1449
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/instance/service/ApplicationService.sol +0 -355
- package/contracts/instance/service/ClaimService.sol +0 -239
- package/contracts/instance/service/IClaimService.sol +0 -92
- package/contracts/instance/service/IPolicyService.sol +0 -139
- package/contracts/instance/service/PolicyService.sol +0 -571
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Blocknumber.sol +0 -0
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/NftId.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
- /package/contracts/{types → type}/Referral.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
- /package/contracts/{types → type}/RoleId.sol +0 -0
- /package/contracts/{types → type}/Seconds.sol +0 -0
- /package/contracts/{types → type}/StateId.sol +0 -0
- /package/contracts/{types → type}/Timestamp.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
- /package/contracts/{types → type}/Version.sol +0 -0
@@ -1,16 +1,17 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {NftId} from "../
|
5
|
-
import {ObjectType} from "../
|
6
|
-
import {RoleId} from "../
|
4
|
+
import {NftId} from "../type/NftId.sol";
|
5
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
|
+
import {RoleId} from "../type/RoleId.sol";
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
8
|
|
9
|
-
import {AccessManagerUpgradeableInitializeable} from "
|
9
|
+
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
10
10
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
11
11
|
import {Instance} from "./Instance.sol";
|
12
12
|
import {InstanceReader} from "./InstanceReader.sol";
|
13
13
|
import {BundleManager} from "./BundleManager.sol";
|
14
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
14
15
|
|
15
16
|
interface IInstanceService is IService {
|
16
17
|
|
@@ -25,15 +26,16 @@ interface IInstanceService is IService {
|
|
25
26
|
error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
|
26
27
|
error ErrorInstanceServiceInstanceReaderInstanceMismatch();
|
27
28
|
|
28
|
-
error ErrorInstanceServiceOzAccessManagerZero();
|
29
29
|
error ErrorInstanceServiceInstanceAccessManagerZero();
|
30
30
|
error ErrorInstanceServiceInstanceReaderZero();
|
31
31
|
error ErrorInstanceServiceBundleManagerZero();
|
32
|
+
error ErrorInstanceServiceInstanceStoreZero();
|
32
33
|
|
33
34
|
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
34
35
|
error ErrorInstanceServiceBundleManagerAuthorityMismatch();
|
35
36
|
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
36
37
|
error ErrorInstanceServiceBundleMangerInstanceMismatch();
|
38
|
+
error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
|
37
39
|
|
38
40
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
39
41
|
error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
|
@@ -42,17 +44,21 @@ interface IInstanceService is IService {
|
|
42
44
|
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
43
45
|
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
44
46
|
|
45
|
-
event LogInstanceCloned(
|
47
|
+
event LogInstanceCloned(
|
48
|
+
address clonedOzAccessManager,
|
49
|
+
address clonedInstanceAccessManager,
|
50
|
+
address clonedInstance,
|
51
|
+
address clonedInstanceStore,
|
52
|
+
address clonedBundleManager,
|
53
|
+
address clonedInstanceReader,
|
54
|
+
NftId clonedInstanceNftId
|
55
|
+
);
|
46
56
|
|
47
57
|
function createInstanceClone()
|
48
58
|
external
|
49
59
|
returns (
|
50
|
-
AccessManagerUpgradeableInitializeable clonedOzAccessManager,
|
51
|
-
InstanceAccessManager clonedInstanceAccessManager,
|
52
60
|
Instance clonedInstance,
|
53
|
-
NftId instanceNftId
|
54
|
-
InstanceReader clonedInstanceReader,
|
55
|
-
BundleManager clonedBundleManager
|
61
|
+
NftId instanceNftId
|
56
62
|
);
|
57
63
|
|
58
64
|
function createGifTarget(
|
@@ -64,5 +70,4 @@ interface IInstanceService is IService {
|
|
64
70
|
) external;
|
65
71
|
|
66
72
|
function setComponentLocked(bool locked) external;
|
67
|
-
}
|
68
|
-
|
73
|
+
}
|
@@ -3,19 +3,19 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
|
-
import {Key32} from "../
|
7
|
-
import {NftId} from "../
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
6
|
+
import {Key32} from "../type/Key32.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {RiskId} from "../type/RiskId.sol";
|
9
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
10
|
+
import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
11
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
12
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
13
|
+
import {ReferralId} from "../type/Referral.sol";
|
14
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
15
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
17
16
|
|
18
17
|
import {Registerable} from "../shared/Registerable.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
19
|
|
20
20
|
import {IRegistry} from "../registry/IRegistry.sol";
|
21
21
|
|
@@ -23,6 +23,7 @@ import {IInstance} from "./IInstance.sol";
|
|
23
23
|
import {InstanceReader} from "./InstanceReader.sol";
|
24
24
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
25
25
|
import {BundleManager} from "./BundleManager.sol";
|
26
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
26
27
|
|
27
28
|
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
28
29
|
|
@@ -33,28 +34,25 @@ import {IPolicy} from "./module/IPolicy.sol";
|
|
33
34
|
import {IRisk} from "./module/IRisk.sol";
|
34
35
|
import {ISetup} from "./module/ISetup.sol";
|
35
36
|
|
36
|
-
import {
|
37
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
38
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
39
|
+
import {IProductService} from "../product/IProductService.sol";
|
40
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
41
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
37
42
|
|
38
43
|
contract Instance is
|
39
44
|
IInstance,
|
40
45
|
AccessManagedUpgradeable,
|
41
|
-
Registerable
|
42
|
-
KeyValueStore
|
46
|
+
Registerable
|
43
47
|
{
|
44
|
-
|
45
48
|
uint256 public constant GIF_MAJOR_VERSION = 3;
|
46
49
|
|
47
|
-
uint64 public constant ADMIN_ROLE = type(uint64).min;
|
48
|
-
uint64 public constant PUBLIC_ROLE = type(uint64).max;
|
49
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
50
|
-
|
51
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
52
|
-
|
53
50
|
bool private _initialized;
|
54
51
|
|
55
52
|
InstanceAccessManager internal _accessManager;
|
56
53
|
InstanceReader internal _instanceReader;
|
57
54
|
BundleManager internal _bundleManager;
|
55
|
+
InstanceStore internal _instanceStore;
|
58
56
|
|
59
57
|
modifier onlyChainNft() {
|
60
58
|
if(msg.sender != getRegistry().getChainNftAddress()) {
|
@@ -64,171 +62,74 @@ contract Instance is
|
|
64
62
|
}
|
65
63
|
|
66
64
|
function initialize(address authority, address registryAddress, address initialOwner)
|
67
|
-
|
65
|
+
external
|
68
66
|
initializer()
|
69
67
|
{
|
68
|
+
if(authority == address(0)) {
|
69
|
+
revert ErrorInstanceInstanceAccessManagerZero();
|
70
|
+
}
|
71
|
+
|
70
72
|
__AccessManaged_init(authority);
|
71
73
|
|
72
74
|
IRegistry registry = IRegistry(registryAddress);
|
73
75
|
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
74
|
-
initializeLifecycle();
|
75
76
|
|
76
77
|
registerInterface(type(IInstance).interfaceId);
|
77
78
|
}
|
78
79
|
|
79
|
-
//---
|
80
|
-
function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
|
81
|
-
create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
|
82
|
-
}
|
83
|
-
|
84
|
-
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
|
85
|
-
update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
|
86
|
-
}
|
87
|
-
|
88
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
89
|
-
updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
90
|
-
}
|
91
|
-
|
92
|
-
//--- DistributionSetup ------------------------------------------------------//
|
93
|
-
function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
|
94
|
-
create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
|
95
|
-
}
|
96
|
-
|
97
|
-
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
|
98
|
-
update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
|
99
|
-
}
|
100
|
-
|
101
|
-
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
|
102
|
-
updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
|
103
|
-
}
|
104
|
-
|
105
|
-
//--- PoolSetup ------------------------------------------------------//
|
106
|
-
function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
|
107
|
-
create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
108
|
-
}
|
109
|
-
|
110
|
-
function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
|
111
|
-
update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
112
|
-
}
|
113
|
-
|
114
|
-
function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
|
115
|
-
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
116
|
-
}
|
117
|
-
|
118
|
-
//--- DistributorType -------------------------------------------------------//
|
119
|
-
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
120
|
-
create(distributorType.toKey32(), abi.encode(info));
|
121
|
-
}
|
122
|
-
|
123
|
-
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
124
|
-
update(distributorType.toKey32(), abi.encode(info), newState);
|
125
|
-
}
|
126
|
-
|
127
|
-
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
128
|
-
updateState(distributorType.toKey32(), newState);
|
129
|
-
}
|
130
|
-
|
131
|
-
//--- Distributor -------------------------------------------------------//
|
132
|
-
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
133
|
-
create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
134
|
-
}
|
135
|
-
|
136
|
-
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
137
|
-
update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
138
|
-
}
|
139
|
-
|
140
|
-
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
141
|
-
updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
142
|
-
}
|
143
|
-
|
144
|
-
//--- Referral ----------------------------------------------------------//
|
145
|
-
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
146
|
-
create(referralId.toKey32(), abi.encode(referralInfo));
|
147
|
-
}
|
148
|
-
|
149
|
-
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
150
|
-
update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
151
|
-
}
|
152
|
-
|
153
|
-
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
154
|
-
updateState(referralId.toKey32(), newState);
|
155
|
-
}
|
156
|
-
|
157
|
-
//--- Bundle ------------------------------------------------------------//
|
158
|
-
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
159
|
-
create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
160
|
-
}
|
161
|
-
|
162
|
-
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
163
|
-
update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
164
|
-
}
|
80
|
+
//--- Roles ------------------------------------------------------------//
|
165
81
|
|
166
|
-
function
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
create(riskId.toKey32(), abi.encode(risk));
|
173
|
-
}
|
174
|
-
|
175
|
-
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
|
176
|
-
update(riskId.toKey32(), abi.encode(risk), newState);
|
177
|
-
}
|
178
|
-
|
179
|
-
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
180
|
-
updateState(riskId.toKey32(), newState);
|
181
|
-
}
|
182
|
-
|
183
|
-
//--- Application (Policy) ----------------------------------------------//
|
184
|
-
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
185
|
-
create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
186
|
-
}
|
187
|
-
|
188
|
-
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
189
|
-
update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
|
190
|
-
}
|
191
|
-
|
192
|
-
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
193
|
-
updateState(_toNftKey32(applicationNftId, POLICY()), newState);
|
194
|
-
}
|
195
|
-
|
196
|
-
//--- Policy ------------------------------------------------------------//
|
197
|
-
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
198
|
-
update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
199
|
-
}
|
200
|
-
|
201
|
-
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
202
|
-
updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
82
|
+
function createRole(string memory roleName, string memory adminName)
|
83
|
+
external
|
84
|
+
restricted // INSTANCE_OWNER_ROLE
|
85
|
+
returns (RoleId roleId, RoleId admin)
|
86
|
+
{
|
87
|
+
(roleId, admin) = _accessManager.createRole(roleName, adminName);
|
203
88
|
}
|
204
89
|
|
205
|
-
|
206
|
-
|
207
|
-
|
90
|
+
function grantRole(RoleId roleId, address account)
|
91
|
+
external
|
92
|
+
restricted // INSTANCE_OWNER_ROLE
|
93
|
+
{
|
94
|
+
_accessManager.grantRole(roleId, account);
|
208
95
|
}
|
209
96
|
|
210
|
-
function
|
211
|
-
|
97
|
+
function revokeRole(RoleId roleId, address account)
|
98
|
+
external
|
99
|
+
restricted // INSTANCE_OWNER_ROLE
|
100
|
+
{
|
101
|
+
_accessManager.revokeRole(roleId, account);
|
212
102
|
}
|
213
103
|
|
214
|
-
|
215
|
-
updateState(_toClaimKey32(policyNftId, claimId), newState);
|
216
|
-
}
|
104
|
+
//--- Targets ------------------------------------------------------------//
|
217
105
|
|
218
|
-
|
219
|
-
|
220
|
-
|
106
|
+
function createTarget(address target, string memory name)
|
107
|
+
external
|
108
|
+
restricted // INSTANCE_OWNER_ROLE
|
109
|
+
{
|
110
|
+
_accessManager.createTarget(target, name);
|
221
111
|
}
|
222
112
|
|
223
|
-
function
|
224
|
-
|
113
|
+
function setTargetFunctionRole(
|
114
|
+
string memory targetName,
|
115
|
+
bytes4[] calldata selectors,
|
116
|
+
RoleId roleId
|
117
|
+
)
|
118
|
+
external
|
119
|
+
restricted // INSTANCE_OWNER_ROLE
|
120
|
+
{
|
121
|
+
_accessManager.setTargetFunctionRole(targetName, selectors, roleId);
|
225
122
|
}
|
226
123
|
|
227
|
-
function
|
228
|
-
|
124
|
+
function setTargetLocked(address target, bool locked)
|
125
|
+
external
|
126
|
+
restricted // INSTANCE_OWNER_ROLE
|
127
|
+
{
|
128
|
+
_accessManager.setTargetLockedByInstance(target, locked);
|
229
129
|
}
|
230
130
|
|
231
131
|
//--- ITransferInterceptor ------------------------------------------------------------//
|
132
|
+
|
232
133
|
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
233
134
|
assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
|
234
135
|
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
@@ -245,27 +146,22 @@ contract Instance is
|
|
245
146
|
if(address(_accessManager) != address(0)) {
|
246
147
|
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
247
148
|
}
|
248
|
-
|
249
149
|
if(accessManager.authority() != authority()) {
|
250
150
|
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
251
151
|
}
|
252
|
-
|
253
152
|
_accessManager = accessManager;
|
254
153
|
}
|
255
|
-
|
154
|
+
|
256
155
|
function setBundleManager(BundleManager bundleManager) external restricted() {
|
257
156
|
if(address(_bundleManager) != address(0)) {
|
258
157
|
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
259
158
|
}
|
260
|
-
|
261
159
|
if(bundleManager.getInstance() != Instance(this)) {
|
262
160
|
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
263
161
|
}
|
264
|
-
|
265
162
|
if(bundleManager.authority() != authority()) {
|
266
163
|
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
267
164
|
}
|
268
|
-
|
269
165
|
_bundleManager = bundleManager;
|
270
166
|
}
|
271
167
|
|
@@ -291,20 +187,43 @@ contract Instance is
|
|
291
187
|
return _accessManager;
|
292
188
|
}
|
293
189
|
|
190
|
+
function setInstanceStore(InstanceStore instanceStore) external restricted {
|
191
|
+
if(address(_instanceStore) != address(0)) {
|
192
|
+
revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
|
193
|
+
}
|
194
|
+
if(instanceStore.authority() != authority()) {
|
195
|
+
revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
|
196
|
+
}
|
197
|
+
_instanceStore = instanceStore;
|
198
|
+
}
|
199
|
+
|
200
|
+
function getInstanceStore() external view returns (InstanceStore) {
|
201
|
+
return _instanceStore;
|
202
|
+
}
|
203
|
+
|
294
204
|
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
295
205
|
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
296
206
|
}
|
297
207
|
|
298
|
-
|
299
|
-
|
300
|
-
|
208
|
+
function getDistributionService() external view returns (IDistributionService) {
|
209
|
+
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
210
|
+
}
|
211
|
+
|
212
|
+
function getProductService() external view returns (IProductService) {
|
213
|
+
return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
|
214
|
+
}
|
215
|
+
|
216
|
+
function getPoolService() external view returns (IPoolService) {
|
217
|
+
return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
|
301
218
|
}
|
302
219
|
|
303
|
-
function
|
304
|
-
return
|
220
|
+
function getPolicyService() external view returns (IPolicyService) {
|
221
|
+
return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
|
305
222
|
}
|
306
223
|
|
307
|
-
function
|
308
|
-
return
|
224
|
+
function getBundleService() external view returns (IBundleService) {
|
225
|
+
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
309
226
|
}
|
310
|
-
|
227
|
+
|
228
|
+
//--- internal view/pure functions --------------------------------------//
|
229
|
+
}
|
@@ -5,11 +5,11 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
|
|
5
5
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
6
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
7
7
|
|
8
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, INSTANCE_SERVICE_ROLE, INSTANCE_OWNER_ROLE, INSTANCE_ROLE} from "../
|
9
|
-
import {TimestampLib} from "../
|
10
|
-
import {NftId} from "../
|
8
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, INSTANCE_SERVICE_ROLE, INSTANCE_OWNER_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
|
9
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
11
|
|
12
|
-
import {AccessManagerUpgradeableInitializeable} from "
|
12
|
+
import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
|
13
13
|
|
14
14
|
import {IRegistry} from "../registry/IRegistry.sol";
|
15
15
|
|
@@ -73,7 +73,7 @@ contract InstanceAccessManager is
|
|
73
73
|
_createRole(ADMIN_ROLE(), ADMIN_ROLE_NAME, IAccess.Type.Core);
|
74
74
|
_createRole(PUBLIC_ROLE(), PUBLIC_ROLE_NAME, IAccess.Type.Core);
|
75
75
|
_createRole(INSTANCE_ROLE(), INSTANCE_ROLE_NAME, IAccess.Type.Core);
|
76
|
-
_createRole(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE_NAME, IAccess.Type.Gif)
|
76
|
+
_createRole(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE_NAME, IAccess.Type.Gif);// TODO should be of core type
|
77
77
|
|
78
78
|
// assume `this` is already a member of ADMIN_ROLE
|
79
79
|
EnumerableSet.add(_roleMembers[ADMIN_ROLE()], address(this));
|
@@ -105,6 +105,7 @@ contract InstanceAccessManager is
|
|
105
105
|
}
|
106
106
|
|
107
107
|
// INSTANCE_OWNER_ROLE
|
108
|
+
// TODO specify how many owners role can have -> many roles MUST have exactly 1 member?
|
108
109
|
function createRole(string memory roleName, string memory adminName)
|
109
110
|
external
|
110
111
|
restricted()
|
@@ -142,6 +143,7 @@ contract InstanceAccessManager is
|
|
142
143
|
_roleInfo[roleId].admin = admin;
|
143
144
|
}
|
144
145
|
|
146
|
+
// TODO core role can be granted only to 1 member
|
145
147
|
function grantRole(RoleId roleId, address member)
|
146
148
|
public
|
147
149
|
restrictedToRoleAdmin(roleId)
|
@@ -226,7 +228,7 @@ contract InstanceAccessManager is
|
|
226
228
|
return _roleIds[idx];
|
227
229
|
}
|
228
230
|
|
229
|
-
// TODO
|
231
|
+
// TODO returns ADMIN_ROLE id for non existent name
|
230
232
|
function getRoleIdForName(string memory name) external view returns (RoleId roleId) {
|
231
233
|
return _roleIdForName[ShortStrings.toShortString(name)];
|
232
234
|
}
|
@@ -250,7 +252,7 @@ contract InstanceAccessManager is
|
|
250
252
|
_createTarget(target, name, IAccess.Type.Core);
|
251
253
|
}
|
252
254
|
// INSTANCE_SERVICE_ROLE
|
253
|
-
//
|
255
|
+
// TODO check for instance mismatch?
|
254
256
|
function createGifTarget(address target, string memory name) external restricted()
|
255
257
|
{
|
256
258
|
if(!_registry.isRegistered(target)) {
|
@@ -269,26 +271,22 @@ contract InstanceAccessManager is
|
|
269
271
|
_createTarget(target, name, IAccess.Type.Custom);
|
270
272
|
}
|
271
273
|
|
272
|
-
//
|
273
|
-
|
274
|
-
function setTargetLocked(address target, bool locked)
|
274
|
+
// TODO instance owner locks component instead of revoking it access to the instance...
|
275
|
+
function setTargetLockedByService(address target, bool locked)
|
275
276
|
external
|
276
|
-
restricted
|
277
|
+
restricted // INSTANCE_SERVICE_ROLE
|
277
278
|
{
|
278
|
-
|
279
|
-
|
280
|
-
revert IAccess.ErrorIAccessTargetDoesNotExist(target);
|
281
|
-
}
|
282
|
-
|
283
|
-
if(targetType == IAccess.Type.Core) {
|
284
|
-
revert IAccess.ErrorIAccessTargetTypeInvalid(target, targetType);
|
285
|
-
}
|
279
|
+
_setTargetLocked(target, locked);
|
280
|
+
}
|
286
281
|
|
287
|
-
|
288
|
-
|
289
|
-
|
282
|
+
function setTargetLockedByInstance(address target, bool locked)
|
283
|
+
external
|
284
|
+
restricted // INSTANCE_ROLE
|
285
|
+
{
|
286
|
+
_setTargetLocked(target, locked);
|
290
287
|
}
|
291
288
|
|
289
|
+
|
292
290
|
// allowed combinations of roles and targets:
|
293
291
|
//1) set core role for core target
|
294
292
|
//2) set gif role for gif target
|
@@ -362,7 +360,7 @@ contract InstanceAccessManager is
|
|
362
360
|
}
|
363
361
|
|
364
362
|
function isTargetLocked(address target) public view returns (bool locked) {
|
365
|
-
return
|
363
|
+
return _targetInfo[target].isLocked;
|
366
364
|
}
|
367
365
|
|
368
366
|
function targetExists(address target) public view returns (bool exists) {
|
@@ -497,6 +495,22 @@ contract InstanceAccessManager is
|
|
497
495
|
}
|
498
496
|
}
|
499
497
|
|
498
|
+
// IMPORTANT: instance access manager MUST be of Core type -> otherwise can be locked forever
|
499
|
+
function _setTargetLocked(address target, bool locked) internal
|
500
|
+
{
|
501
|
+
IAccess.Type targetType = _targetInfo[target].ttype;
|
502
|
+
if(target == address(0) || targetType == IAccess.Type.NotInitialized) {
|
503
|
+
revert IAccess.ErrorIAccessTargetDoesNotExist(target);
|
504
|
+
}
|
505
|
+
|
506
|
+
if(targetType == IAccess.Type.Core) {
|
507
|
+
revert IAccess.ErrorIAccessTargetTypeInvalid(target, targetType);
|
508
|
+
}
|
509
|
+
|
510
|
+
_targetInfo[target].isLocked = locked;
|
511
|
+
_accessManager.setTargetClosed(target, locked);
|
512
|
+
}
|
513
|
+
|
500
514
|
function _setTargetFunctionRole(
|
501
515
|
address target,
|
502
516
|
ShortString name,
|
@@ -524,4 +538,4 @@ contract InstanceAccessManager is
|
|
524
538
|
) public view virtual returns (bool immediate, uint32 delay) {
|
525
539
|
return _accessManager.canCall(caller, target, selector);
|
526
540
|
}
|
527
|
-
}
|
541
|
+
}
|