@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845
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 +2 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
- 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} +53 -136
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
- 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 +179 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
- 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 +415 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -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/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -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 +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- 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/type/NftId.sol/NftIdLib.json +209 -0
- 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/type/Seconds.sol/SecondsLib.json +198 -0
- 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 +41 -64
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
- package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
- package/contracts/instance/BundleManager.sol +5 -5
- package/contracts/instance/IInstance.sol +45 -70
- package/contracts/instance/IInstanceService.sol +29 -11
- package/contracts/instance/Instance.sol +112 -195
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +106 -58
- package/contracts/instance/InstanceService.sol +166 -288
- package/contracts/instance/InstanceServiceManager.sol +11 -21
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +21 -10
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +20 -14
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
- package/contracts/{components → pool}/IPoolComponent.sol +16 -17
- package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
- package/contracts/{components → pool}/Pool.sol +52 -55
- package/contracts/pool/PoolService.sol +453 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/ClaimService.sol +167 -86
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/{instance/service → product}/IClaimService.sol +18 -15
- package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/{components → product}/Product.sol +83 -77
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +44 -21
- package/contracts/registry/IRegistryService.sol +37 -34
- package/contracts/registry/Registry.sol +191 -82
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +66 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -25
- package/contracts/registry/ReleaseManager.sol +458 -183
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- package/contracts/shared/AccessManagerExtended.sol +470 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +278 -0
- package/contracts/shared/ComponentService.sol +596 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +14 -7
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -14
- package/contracts/shared/PolicyHolder.sol +32 -17
- package/contracts/shared/ProxyManager.sol +34 -4
- package/contracts/shared/Registerable.sol +3 -3
- package/contracts/shared/Service.sol +9 -4
- package/contracts/shared/TokenHandler.sol +27 -2
- package/contracts/shared/Versionable.sol +1 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/{types → type}/Amount.sol +59 -1
- package/contracts/{types → type}/Blocknumber.sol +20 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/{types → type}/ObjectType.sol +15 -3
- package/contracts/{types → type}/Referral.sol +1 -1
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/{types → type}/RoleId.sol +55 -9
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/{types → type}/StateId.sol +17 -4
- package/contracts/{types → type}/Version.sol +1 -1
- package/package.json +3 -3
- 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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
- 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 -1153
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- 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 -370
- 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 -588
- 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/Blocknumber.sol/BlocknumberLib.json +0 -174
- 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/NftId.sol/NftIdLib.json +0 -166
- 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/Seconds.sol/SecondsLib.json +0 -124
- 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/components/Component.sol +0 -253
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -130
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -356
- package/contracts/instance/service/BundleService.sol +0 -443
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -358
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -349
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- 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/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/{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}/PayoutId.sol +0 -0
- /package/contracts/{types → type}/Timestamp.sol +0 -0
- /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -0,0 +1,260 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
|
6
|
+
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, FEE, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
|
11
|
+
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
12
|
+
import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
|
13
|
+
import {StateId, ACTIVE} from "../type/StateId.sol";
|
14
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
15
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
16
|
+
import {ReferralId} from "../type/Referral.sol";
|
17
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
18
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
+
|
20
|
+
import {BalanceStore} from "./base/BalanceStore.sol";
|
21
|
+
import {IInstance} from "./IInstance.sol";
|
22
|
+
import {KeyValueStore} from "../shared/KeyValueStore.sol";
|
23
|
+
import {IKeyValueStore} from "../shared/KeyValueStore.sol";
|
24
|
+
|
25
|
+
import {IBundle} from "./module/IBundle.sol";
|
26
|
+
import {IComponents} from "./module/IComponents.sol";
|
27
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
28
|
+
import {IPolicy} from "./module/IPolicy.sol";
|
29
|
+
import {IRisk} from "./module/IRisk.sol";
|
30
|
+
|
31
|
+
|
32
|
+
contract InstanceStore is
|
33
|
+
AccessManagedUpgradeable,
|
34
|
+
KeyValueStore,
|
35
|
+
BalanceStore
|
36
|
+
{
|
37
|
+
function initialize(address instance)
|
38
|
+
public
|
39
|
+
initializer()
|
40
|
+
{
|
41
|
+
address authority = IInstance(instance).authority();
|
42
|
+
__AccessManaged_init(authority);
|
43
|
+
initializeLifecycle();
|
44
|
+
}
|
45
|
+
|
46
|
+
//--- Component ---------------------------------------------------------//
|
47
|
+
function createComponent(
|
48
|
+
NftId componentNftId,
|
49
|
+
IComponents.ComponentInfo memory componentInfo
|
50
|
+
)
|
51
|
+
external
|
52
|
+
restricted()
|
53
|
+
{
|
54
|
+
_registerBalanceTarget(componentNftId);
|
55
|
+
_create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
|
56
|
+
}
|
57
|
+
|
58
|
+
function updateComponent(
|
59
|
+
NftId componentNftId,
|
60
|
+
IComponents.ComponentInfo memory componentInfo,
|
61
|
+
StateId newState
|
62
|
+
)
|
63
|
+
external
|
64
|
+
restricted()
|
65
|
+
{
|
66
|
+
_update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
|
67
|
+
}
|
68
|
+
|
69
|
+
//--- ProductSetup ------------------------------------------------------//
|
70
|
+
|
71
|
+
function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
|
72
|
+
_create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
|
73
|
+
}
|
74
|
+
|
75
|
+
function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
|
76
|
+
_update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
|
77
|
+
}
|
78
|
+
|
79
|
+
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
80
|
+
_updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
81
|
+
}
|
82
|
+
|
83
|
+
//--- PoolSetup ------------------------------------------------------//
|
84
|
+
|
85
|
+
function createPool(
|
86
|
+
NftId poolNftId,
|
87
|
+
IComponents.PoolInfo memory info
|
88
|
+
)
|
89
|
+
external
|
90
|
+
restricted()
|
91
|
+
{
|
92
|
+
_create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
93
|
+
}
|
94
|
+
|
95
|
+
function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
|
96
|
+
_update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
97
|
+
}
|
98
|
+
|
99
|
+
function updatePoolState(NftId poolNftId, StateId newState) external restricted() {
|
100
|
+
_updateState(_toNftKey32(poolNftId, POOL()), newState);
|
101
|
+
}
|
102
|
+
|
103
|
+
//--- DistributorType -------------------------------------------------------//
|
104
|
+
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
105
|
+
_create(distributorType.toKey32(), abi.encode(info));
|
106
|
+
}
|
107
|
+
|
108
|
+
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
109
|
+
_update(distributorType.toKey32(), abi.encode(info), newState);
|
110
|
+
}
|
111
|
+
|
112
|
+
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
113
|
+
_updateState(distributorType.toKey32(), newState);
|
114
|
+
}
|
115
|
+
|
116
|
+
//--- Distributor -------------------------------------------------------//
|
117
|
+
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
118
|
+
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
119
|
+
}
|
120
|
+
|
121
|
+
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
122
|
+
_update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
123
|
+
}
|
124
|
+
|
125
|
+
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
126
|
+
_updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
127
|
+
}
|
128
|
+
|
129
|
+
//--- Referral ----------------------------------------------------------//
|
130
|
+
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
131
|
+
_create(referralId.toKey32(), abi.encode(referralInfo));
|
132
|
+
}
|
133
|
+
|
134
|
+
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
135
|
+
_update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
136
|
+
}
|
137
|
+
|
138
|
+
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
139
|
+
_updateState(referralId.toKey32(), newState);
|
140
|
+
}
|
141
|
+
|
142
|
+
//--- Bundle ------------------------------------------------------------//
|
143
|
+
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
144
|
+
_registerBalanceTarget(bundleNftId);
|
145
|
+
_create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
146
|
+
}
|
147
|
+
|
148
|
+
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
149
|
+
_update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
150
|
+
}
|
151
|
+
|
152
|
+
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
153
|
+
_updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
|
154
|
+
}
|
155
|
+
|
156
|
+
//--- Risk --------------------------------------------------------------//
|
157
|
+
function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
|
158
|
+
_create(riskId.toKey32(), abi.encode(risk));
|
159
|
+
}
|
160
|
+
|
161
|
+
function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
|
162
|
+
_update(riskId.toKey32(), abi.encode(risk), newState);
|
163
|
+
}
|
164
|
+
|
165
|
+
function updateRiskState(RiskId riskId, StateId newState) external restricted() {
|
166
|
+
_updateState(riskId.toKey32(), newState);
|
167
|
+
}
|
168
|
+
|
169
|
+
//--- Application (Policy) ----------------------------------------------//
|
170
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
171
|
+
_registerBalanceTarget(applicationNftId);
|
172
|
+
_create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
173
|
+
}
|
174
|
+
|
175
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
176
|
+
_update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
|
177
|
+
}
|
178
|
+
|
179
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
180
|
+
_updateState(_toNftKey32(applicationNftId, POLICY()), newState);
|
181
|
+
}
|
182
|
+
|
183
|
+
//--- Policy ------------------------------------------------------------//
|
184
|
+
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
185
|
+
_update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
186
|
+
}
|
187
|
+
|
188
|
+
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
189
|
+
_update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
190
|
+
}
|
191
|
+
|
192
|
+
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
193
|
+
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
194
|
+
}
|
195
|
+
|
196
|
+
//--- Claim -------------------------------------------------------------//
|
197
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
198
|
+
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
199
|
+
}
|
200
|
+
|
201
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
202
|
+
_update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
|
203
|
+
}
|
204
|
+
|
205
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
206
|
+
_updateState(_toClaimKey32(policyNftId, claimId), newState);
|
207
|
+
}
|
208
|
+
|
209
|
+
//--- Payout ------------------------------------------------------------//
|
210
|
+
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
211
|
+
_create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
212
|
+
}
|
213
|
+
|
214
|
+
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
215
|
+
_update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
|
216
|
+
}
|
217
|
+
|
218
|
+
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
219
|
+
_updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
220
|
+
}
|
221
|
+
|
222
|
+
//--- balance and fee management functions ------------------------------//
|
223
|
+
|
224
|
+
function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
225
|
+
return _increaseBalance(targetNftId, amount);
|
226
|
+
}
|
227
|
+
|
228
|
+
function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
229
|
+
return _decreaseBalance(targetNftId, amount);
|
230
|
+
}
|
231
|
+
|
232
|
+
function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
|
233
|
+
return _increaseFees(targetNftId, amount);
|
234
|
+
}
|
235
|
+
|
236
|
+
function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
|
237
|
+
return _decreaseFees(targetNftId, amount);
|
238
|
+
}
|
239
|
+
|
240
|
+
function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
241
|
+
return _increaseLocked(targetNftId, amount);
|
242
|
+
}
|
243
|
+
|
244
|
+
function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
|
245
|
+
return _decreaseLocked(targetNftId, amount);
|
246
|
+
}
|
247
|
+
|
248
|
+
//--- internal view/pure functions --------------------------------------//
|
249
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
250
|
+
return nftId.toKey32(objectType);
|
251
|
+
}
|
252
|
+
|
253
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
254
|
+
return claimId.toKey32(policyNftId);
|
255
|
+
}
|
256
|
+
|
257
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
258
|
+
return payoutId.toKey32(policyNftId);
|
259
|
+
}
|
260
|
+
}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {Amount} from "../../type/Amount.sol";
|
7
|
+
|
8
|
+
contract BalanceStore {
|
9
|
+
|
10
|
+
error ErrorBalanceStoreTargetAlreadyRegistered(NftId targetNftId);
|
11
|
+
error ErrorBalanceStoreTargetNotRegistered(NftId targetNftId);
|
12
|
+
|
13
|
+
event LogBalanceStoreTargetRegistered(NftId targetNftId);
|
14
|
+
|
15
|
+
event LogBalanceStoreFeesIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
16
|
+
event LogBalanceStoreFeesDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
17
|
+
|
18
|
+
event LogBalanceStoreLockedIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
19
|
+
event LogBalanceStoreLockedDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
20
|
+
|
21
|
+
event LogBalanceStoreBalanceIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
22
|
+
event LogBalanceStoreBalanceDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
|
23
|
+
|
24
|
+
mapping(NftId nftId => Amount balance) private _balanceAmount;
|
25
|
+
mapping(NftId nftId => Amount locked) private _lockedAmount;
|
26
|
+
mapping(NftId nftId => Amount fees) private _feeAmount;
|
27
|
+
mapping(NftId nftId => bool isRegistered) private _isRegistered;
|
28
|
+
|
29
|
+
// TODO check if this is made redundant by *Info struct updates
|
30
|
+
mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
|
31
|
+
|
32
|
+
modifier onlyRegisteredTarget(NftId targetNftId) {
|
33
|
+
if (!_isRegistered[targetNftId]) {
|
34
|
+
revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
|
35
|
+
}
|
36
|
+
_;
|
37
|
+
}
|
38
|
+
|
39
|
+
function getBalanceAmount(NftId targetNftId) external view returns (Amount balanceAmount) { return _balanceAmount[targetNftId]; }
|
40
|
+
function getLockedAmount(NftId targetNftId) external view returns (Amount lockedAmount) { return _lockedAmount[targetNftId]; }
|
41
|
+
function getFeeAmount(NftId targetNftId) external view returns (Amount feeAmount) { return _feeAmount[targetNftId]; }
|
42
|
+
|
43
|
+
function getAmounts(NftId targetNftId)
|
44
|
+
external
|
45
|
+
view
|
46
|
+
returns (
|
47
|
+
Amount balanceAmount,
|
48
|
+
Amount lockedAmount,
|
49
|
+
Amount feeAmount
|
50
|
+
)
|
51
|
+
{
|
52
|
+
balanceAmount = _balanceAmount[targetNftId];
|
53
|
+
lockedAmount = _lockedAmount[targetNftId];
|
54
|
+
feeAmount = _feeAmount[targetNftId];
|
55
|
+
}
|
56
|
+
|
57
|
+
function _registerBalanceTarget(NftId targetNftId) internal {
|
58
|
+
if (_isRegistered[targetNftId]) {
|
59
|
+
revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
|
60
|
+
}
|
61
|
+
|
62
|
+
_isRegistered[targetNftId] = true;
|
63
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
64
|
+
|
65
|
+
emit LogBalanceStoreTargetRegistered(targetNftId);
|
66
|
+
}
|
67
|
+
|
68
|
+
//--- fee management ----------------------------------------------------//
|
69
|
+
function _increaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
70
|
+
newBalance = _feeAmount[targetNftId] + amount;
|
71
|
+
_feeAmount[targetNftId] = newBalance;
|
72
|
+
|
73
|
+
emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
74
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
75
|
+
}
|
76
|
+
|
77
|
+
function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
78
|
+
newBalance = _feeAmount[targetNftId] - amount;
|
79
|
+
_feeAmount[targetNftId] = newBalance;
|
80
|
+
|
81
|
+
emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
82
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
83
|
+
}
|
84
|
+
|
85
|
+
//--- locked management -------------------------------------------------//
|
86
|
+
function _increaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
87
|
+
newBalance = _lockedAmount[targetNftId] + amount;
|
88
|
+
_lockedAmount[targetNftId] = newBalance;
|
89
|
+
|
90
|
+
emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
91
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
92
|
+
}
|
93
|
+
|
94
|
+
function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
95
|
+
newBalance = _lockedAmount[targetNftId] - amount;
|
96
|
+
_lockedAmount[targetNftId] = newBalance;
|
97
|
+
|
98
|
+
emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
99
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
100
|
+
}
|
101
|
+
|
102
|
+
//--- balance management ------------------------------------------------//
|
103
|
+
function _increaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
104
|
+
newBalance = _balanceAmount[targetNftId] + amount;
|
105
|
+
_balanceAmount[targetNftId] = newBalance;
|
106
|
+
|
107
|
+
emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
108
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
109
|
+
}
|
110
|
+
|
111
|
+
function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
|
112
|
+
newBalance = _balanceAmount[targetNftId] - amount;
|
113
|
+
_balanceAmount[targetNftId] = newBalance;
|
114
|
+
|
115
|
+
emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
|
116
|
+
_lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
|
117
|
+
}
|
118
|
+
}
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
6
6
|
|
7
|
-
import {IRegistry} from "
|
7
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
8
8
|
|
9
9
|
abstract contract Cloneable is
|
10
10
|
AccessManagedUpgradeable
|
@@ -3,12 +3,12 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Cloneable} from "./Cloneable.sol";
|
5
5
|
|
6
|
-
import {IInstance} from "
|
7
|
-
import {INSTANCE} from "
|
8
|
-
import {InstanceReader} from "
|
9
|
-
import {IRegistry} from "
|
10
|
-
import {LibNftIdSet} from "
|
11
|
-
import {NftId} from "
|
6
|
+
import {IInstance} from "../IInstance.sol";
|
7
|
+
import {INSTANCE} from "../../type/ObjectType.sol";
|
8
|
+
import {InstanceReader} from "../InstanceReader.sol";
|
9
|
+
import {IRegistry} from "../../registry/IRegistry.sol";
|
10
|
+
import {LibNftIdSet} from "../../type/NftIdSet.sol";
|
11
|
+
import {NftId} from "../../type/NftId.sol";
|
12
12
|
|
13
13
|
contract ObjectManager is
|
14
14
|
Cloneable
|
@@ -3,8 +3,9 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
5
5
|
|
6
|
-
import {
|
7
|
-
import {
|
6
|
+
import {NftId} from "../../type/NftId.sol";
|
7
|
+
import {RoleId} from "../../type/RoleId.sol";
|
8
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
8
9
|
|
9
10
|
interface IAccess {
|
10
11
|
|
@@ -32,23 +33,14 @@ interface IAccess {
|
|
32
33
|
Timestamp updatedAt;
|
33
34
|
}
|
34
35
|
|
35
|
-
error ErrorIAccessCallerIsNotRoleAdmin(address caller, RoleId roleId);
|
36
|
-
|
37
|
-
error ErrorIAccessRoleIdDoesNotExist(RoleId roleId);
|
38
36
|
error ErrorIAccessRoleIdTooBig(RoleId roleId);
|
39
37
|
error ErrorIAccessRoleIdTooSmall(RoleId roleId);
|
40
|
-
error ErrorIAccessRoleIdExists(RoleId roleId);
|
41
|
-
error ErrorIAccessRoleNameEmpty(RoleId roleId);
|
42
|
-
error ErrorIAccessRoleNameExists(RoleId roleId, RoleId existingRoleId, ShortString name);
|
43
38
|
error ErrorIAccessRoleTypeInvalid(RoleId roleId, Type rtype);
|
44
39
|
|
45
40
|
error ErrorIAccessTargetAddressZero();
|
46
|
-
error ErrorIAccessTargetDoesNotExist(address target);
|
47
|
-
error ErrorIAccessTargetExists(address target, ShortString name);
|
48
41
|
error ErrorIAccessTargetTypeInvalid(address target, Type ttype);
|
49
|
-
error ErrorIAccessTargetNameEmpty(address target);
|
50
|
-
error ErrorIAccessTargetNameExists(address target, address existingTarget, ShortString name);
|
51
42
|
error ErrorIAccessTargetLocked(address target);
|
52
43
|
error ErrorIAccessTargetNotRegistered(address target);
|
53
44
|
error ErrorIAccessTargetAuthorityInvalid(address target, address targetAuthority);
|
45
|
+
error ErrorIAccessTargetInstanceMismatch(address target, NftId targetParentNftId, NftId instanceNftId);
|
54
46
|
}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../../
|
5
|
-
import {NftId} from "../../
|
6
|
-
import {Fee} from "../../
|
7
|
-
import {Seconds} from "../../
|
8
|
-
import {Timestamp} from "../../
|
4
|
+
import {Amount} from "../../type/Amount.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {Fee} from "../../type/Fee.sol";
|
7
|
+
import {Seconds} from "../../type/Seconds.sol";
|
8
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
9
9
|
|
10
10
|
interface IBundle {
|
11
11
|
|
@@ -13,10 +13,7 @@ interface IBundle {
|
|
13
13
|
NftId poolNftId;
|
14
14
|
Fee fee; // bundle fee on net premium amounts
|
15
15
|
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
16
|
-
|
17
|
-
Amount lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= capital amount)
|
18
|
-
Amount feeAmount; // accumulated fee amount
|
19
|
-
Seconds lifetime;
|
16
|
+
Seconds lifetime; // lifetime of bundle after creation
|
20
17
|
Timestamp expiredAt; // no new policies starting with this timestamp
|
21
18
|
Timestamp closedAt; // no open policies, locked amount = 0
|
22
19
|
}
|
@@ -3,32 +3,43 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {Amount} from "../../
|
7
|
-
import {Fee} from "../../
|
8
|
-
import {NftId} from "../../
|
9
|
-
import {RoleId} from "../../
|
6
|
+
import {Amount} from "../../type/Amount.sol";
|
7
|
+
import {Fee} from "../../type/Fee.sol";
|
8
|
+
import {NftId} from "../../type/NftId.sol";
|
9
|
+
import {RoleId} from "../../type/RoleId.sol";
|
10
10
|
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
11
|
-
import {UFixed} from "../../
|
11
|
+
import {UFixed} from "../../type/UFixed.sol";
|
12
12
|
|
13
13
|
interface IComponents {
|
14
14
|
|
15
15
|
struct ComponentInfo {
|
16
16
|
string name; // component name (needs to be unique per instance)
|
17
|
+
NftId productNftId;
|
17
18
|
IERC20Metadata token;
|
18
19
|
TokenHandler tokenHandler;
|
19
20
|
address wallet;
|
20
|
-
Amount balanceAmount; // calculated balance (may not necessarily match withg wallet balance)
|
21
|
-
Amount feeAmount; // accumulated fees belonging to component owner
|
22
21
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
23
22
|
}
|
24
23
|
|
24
|
+
|
25
|
+
struct ProductInfo {
|
26
|
+
NftId distributionNftId;
|
27
|
+
NftId poolNftId;
|
28
|
+
Fee productFee; // product fee on net premium
|
29
|
+
Fee processingFee; // product fee on payout amounts
|
30
|
+
Fee distributionFee; // distribution fee for sales that do not include commissions
|
31
|
+
Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
|
32
|
+
Fee poolFee; // pool fee on net premium
|
33
|
+
Fee stakingFee; // pool fee on staked capital from investor
|
34
|
+
Fee performanceFee; // pool fee on profits from capital investors
|
35
|
+
}
|
36
|
+
|
37
|
+
|
25
38
|
struct PoolInfo {
|
26
39
|
NftId productNftId; // the nft of the product this pool is linked to
|
27
40
|
RoleId bundleOwnerRole; // the required role for bundle owners
|
28
41
|
// TODO maxCapitalAmount -> maxBalanceAmount
|
29
|
-
|
30
|
-
uint256 balanceAmount; // current pool balance (accounting view)
|
31
|
-
uint256 feeAmount; // accumulated fee amount
|
42
|
+
Amount maxCapitalAmount; // max capital amount allowed for pool
|
32
43
|
bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
|
33
44
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
34
45
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
@@ -1,10 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import {
|
4
|
+
import {Amount} from "../../type/Amount.sol";
|
5
|
+
import {DistributorType} from "../../type/DistributorType.sol";
|
6
|
+
import {NftId} from "../../type/NftId.sol";
|
7
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
8
|
+
import {UFixed} from "../../type/UFixed.sol";
|
8
9
|
|
9
10
|
interface IDistribution {
|
10
11
|
|
@@ -24,8 +25,8 @@ interface IDistribution {
|
|
24
25
|
DistributorType distributorType;
|
25
26
|
bool active;
|
26
27
|
bytes data;
|
27
|
-
|
28
|
-
|
28
|
+
Amount commissionAmount;
|
29
|
+
uint32 numPoliciesSold;
|
29
30
|
}
|
30
31
|
|
31
32
|
struct ReferralInfo {
|
@@ -1,17 +1,23 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../../
|
5
|
-
import {NftId} from "../../
|
6
|
-
import {ClaimId} from "../../
|
7
|
-
import {ReferralId} from "../../
|
8
|
-
import {RiskId} from "../../
|
9
|
-
import {Seconds} from "../../
|
10
|
-
import {Timestamp} from "../../
|
4
|
+
import {Amount} from "../../type/Amount.sol";
|
5
|
+
import {NftId} from "../../type/NftId.sol";
|
6
|
+
import {ClaimId} from "../../type/ClaimId.sol";
|
7
|
+
import {ReferralId} from "../../type/Referral.sol";
|
8
|
+
import {RiskId} from "../../type/RiskId.sol";
|
9
|
+
import {Seconds} from "../../type/Seconds.sol";
|
10
|
+
import {Timestamp} from "../../type/Timestamp.sol";
|
11
11
|
|
12
12
|
interface IPolicy {
|
13
13
|
|
14
14
|
struct Premium {
|
15
|
+
// premium splitting per target wallet
|
16
|
+
Amount productFeeAmount;
|
17
|
+
Amount distributionFeeAndCommissionAmount;
|
18
|
+
Amount poolPremiumAndFeeAmount;
|
19
|
+
|
20
|
+
// detailed positions
|
15
21
|
// this is the net premium calculated by the product
|
16
22
|
uint256 netPremiumAmount;
|
17
23
|
// fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
|
@@ -41,12 +47,13 @@ interface IPolicy {
|
|
41
47
|
NftId bundleNftId;
|
42
48
|
ReferralId referralId;
|
43
49
|
RiskId riskId;
|
44
|
-
|
45
|
-
|
46
|
-
|
50
|
+
Amount sumInsuredAmount;
|
51
|
+
Amount premiumAmount; // expected premium at application time
|
52
|
+
Amount premiumPaidAmount; // actual paid premium
|
47
53
|
Seconds lifetime;
|
54
|
+
// policy application data, no changes after applying for a policy
|
48
55
|
bytes applicationData;
|
49
|
-
bytes
|
56
|
+
bytes processData;
|
50
57
|
uint16 claimsCount;
|
51
58
|
uint16 openClaimsCount;
|
52
59
|
Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
|
@@ -62,8 +69,8 @@ interface IPolicy {
|
|
62
69
|
Amount paidAmount;
|
63
70
|
uint8 payoutsCount;
|
64
71
|
uint8 openPayoutsCount;
|
65
|
-
bytes data
|
66
|
-
|
72
|
+
bytes submissionData; // claim submission data, no changes after submitting the claim
|
73
|
+
bytes processData; // data that may include information supporting confirm or decline
|
67
74
|
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
68
75
|
}
|
69
76
|
|
@@ -71,7 +78,6 @@ interface IPolicy {
|
|
71
78
|
struct PayoutInfo {
|
72
79
|
ClaimId claimId;
|
73
80
|
Amount amount;
|
74
|
-
// TODO consider to add a beneficiary address that will be the receiver of the payout tokens
|
75
81
|
bytes data;
|
76
82
|
Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
|
77
83
|
}
|
@@ -1,14 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
5
5
|
|
6
|
-
contract
|
6
|
+
contract Dip is ERC20 {
|
7
7
|
|
8
8
|
// https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
|
9
|
-
string public constant NAME = "
|
10
|
-
string public constant SYMBOL = "
|
11
|
-
uint8 public constant DECIMALS =
|
9
|
+
string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
|
10
|
+
string public constant SYMBOL = "DIP";
|
11
|
+
uint8 public constant DECIMALS = 18;
|
12
12
|
uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
|
13
13
|
// decimals == 18 (openzeppelin erc20 default)
|
14
14
|
constructor()
|