@etherisc/gif-next 0.0.2-96b5b72-170 → 0.0.2-97aac30-275
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 +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +193 -164
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +114 -321
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -82
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +72 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +22 -48
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +56 -22
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +53 -18
- 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 +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -28
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +133 -59
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -32
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -308
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
- 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/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +69 -252
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +105 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +8 -53
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +134 -86
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +121 -133
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +239 -92
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +170 -368
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -72
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +69 -153
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -31
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +95 -203
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +118 -56
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +81 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +230 -107
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +164 -299
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +106 -92
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -160
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +130 -40
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +334 -146
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +29 -214
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +88 -34
- 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 +163 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +256 -65
- 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 +378 -67
- 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 +272 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -35
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +799 -127
- 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 +314 -138
- 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 +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +184 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +908 -49
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
- 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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +172 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +80 -22
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -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 +21 -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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +176 -24
- 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 +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- 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 +2 -2
- 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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1103 -172
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
- 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 +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1247 -56
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +167 -30
- 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 +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +605 -78
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -28
- 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 +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +15 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
- package/contracts/distribution/Distribution.sol +27 -51
- package/contracts/distribution/DistributionService.sol +55 -106
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +3 -8
- package/contracts/distribution/IDistributionService.sol +2 -8
- package/contracts/instance/IInstance.sol +12 -7
- package/contracts/instance/IInstanceService.sol +13 -5
- package/contracts/instance/Instance.sol +30 -23
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +210 -141
- package/contracts/instance/InstanceReader.sol +64 -42
- package/contracts/instance/InstanceService.sol +141 -87
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +125 -55
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +8 -2
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +277 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +63 -149
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +2 -4
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +37 -40
- package/contracts/pool/PoolService.sol +195 -145
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +111 -43
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/ClaimService.sol +21 -21
- package/contracts/product/ClaimServiceManager.sol +9 -6
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +7 -1
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +5 -4
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +226 -127
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +74 -48
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +45 -47
- package/contracts/product/ProductService.sol +26 -112
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +1 -0
- package/contracts/registry/IRegistry.sol +38 -24
- package/contracts/registry/IRegistryService.sol +31 -31
- package/contracts/registry/Registry.sol +176 -105
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +44 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -23
- package/contracts/registry/ReleaseManager.sol +450 -210
- 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 +153 -49
- package/contracts/shared/ComponentService.sol +561 -93
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +20 -8
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +5 -11
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +51 -178
- package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
- package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +31 -1
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +7 -2
- package/contracts/staking/IStaking.sol +146 -8
- package/contracts/staking/IStakingService.sol +83 -39
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +503 -17
- package/contracts/staking/StakingManager.sol +22 -14
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +246 -44
- package/contracts/staking/StakingServiceManager.sol +8 -4
- package/contracts/staking/StakingStore.sol +572 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +20 -1
- package/contracts/type/Blocknumber.sol +20 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +12 -10
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +18 -4
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/Version.sol +1 -1
- package/package.json +4 -3
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- 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 -581
- 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/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- 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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -207
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -170,8 +170,8 @@
|
|
170
170
|
"type": "function"
|
171
171
|
}
|
172
172
|
],
|
173
|
-
"bytecode": "
|
174
|
-
"deployedBytecode": "
|
173
|
+
"bytecode": "0x61039161003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea2646970667358221220eb37260908a3d8439e91e2cbdc02081f9145e9e198f585235c075e7f68458bfb64736f6c63430008140033",
|
174
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100925760003560e01c80638e4ad86c116100655780638e4ad86c1461012157806394aa449c14610144578063a123b37c14610152578063c9e66e291461017957600080fd5b806304b8f6c5146100975780632efe0113146100b357806349a7111a146100c657806355601007146100fd575b600080fd5b60005b60405162ffffff90911681526020015b60405180910390f35b61009a6100c136600461026e565b610190565b6100d96100d436600461029a565b610231565b6040805160ff948516815292841660208401529216918101919091526060016100aa565b61011361010b36600461029a565b62ffffff1690565b6040519081526020016100aa565b61013261012f3660046102c6565b90565b60405160ff90911681526020016100aa565b61009a61012f3660046102df565b61016061010b36600461029a565b60405167ffffffffffffffff90911681526020016100aa565b61013261018736600461029a565b60101c60ff1690565b6000610100841080156101a4575061010083105b80156101b1575061010082105b61020c5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5652532d3031303a56455253494f4e5f504152545f544f4f5f42604482015261494760f01b606482015260840160405180910390fd5b8161021f600885901b601087901b61031f565b610229919061031f565b949350505050565b600080808360ff601082901c166102488383610338565b915061ffff600883901c16600061025f8185610338565b92989197509195509350505050565b60008060006060848603121561028357600080fd5b505081359360208301359350604090920135919050565b6000602082840312156102ac57600080fd5b813562ffffff811681146102bf57600080fd5b9392505050565b6000602082840312156102d857600080fd5b5035919050565b6000602082840312156102f157600080fd5b813567ffffffffffffffff811681146102bf57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561033257610332610309565b92915050565b62ffffff82811682821603908082111561035457610354610309565b509291505056fea2646970667358221220eb37260908a3d8439e91e2cbdc02081f9145e9e198f585235c075e7f68458bfb64736f6c63430008140033",
|
175
175
|
"linkReferences": {},
|
176
176
|
"deployedLinkReferences": {}
|
177
177
|
}
|
@@ -42,8 +42,8 @@
|
|
42
42
|
"type": "function"
|
43
43
|
}
|
44
44
|
],
|
45
|
-
"bytecode": "
|
46
|
-
"deployedBytecode": "
|
45
|
+
"bytecode": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220742e3ab5a296d15998aa86746aaa2f0482bcf0402212cee58404b09b0c2b6c4264736f6c63430008140033",
|
46
|
+
"deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea2646970667358221220742e3ab5a296d15998aa86746aaa2f0482bcf0402212cee58404b09b0c2b6c4264736f6c63430008140033",
|
47
47
|
"linkReferences": {},
|
48
48
|
"deployedLinkReferences": {}
|
49
49
|
}
|
@@ -1,19 +1,17 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {DISTRIBUTION} from "../type/ObjectType.sol";
|
4
|
+
import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
|
5
5
|
import {IDistributionService} from "./IDistributionService.sol";
|
6
6
|
import {IProductService} from "../product/IProductService.sol";
|
7
|
-
import {NftId,
|
7
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
8
8
|
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
9
9
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
10
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
11
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
11
12
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
12
13
|
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
13
14
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
15
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
16
|
-
import {Registerable} from "../shared/Registerable.sol";
|
17
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
18
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
19
17
|
import {UFixed} from "../type/UFixed.sol";
|
@@ -30,9 +28,7 @@ abstract contract Distribution is
|
|
30
28
|
bytes32 public constant DISTRIBUTION_STORAGE_LOCATION_V1 = 0xaab7c5ea03d290056d6c060e0833d3ebcbe647f7694616a2ec52738a64b2f900;
|
31
29
|
|
32
30
|
struct DistributionStorage {
|
33
|
-
|
34
|
-
Fee _distributionFee;
|
35
|
-
TokenHandler _tokenHandler;
|
31
|
+
IComponentService _componentService;
|
36
32
|
IDistributionService _distributionService;
|
37
33
|
mapping(address distributor => NftId distributorNftId) _distributorNftId;
|
38
34
|
}
|
@@ -42,45 +38,47 @@ abstract contract Distribution is
|
|
42
38
|
function initializeDistribution(
|
43
39
|
address registry,
|
44
40
|
NftId instanceNftId,
|
41
|
+
address initialOwner,
|
45
42
|
string memory name,
|
46
43
|
address token,
|
47
|
-
|
48
|
-
|
49
|
-
address initialOwner,
|
50
|
-
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
44
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
45
|
+
bytes memory componentData // component specifidc data
|
51
46
|
)
|
52
47
|
public
|
53
48
|
virtual
|
54
49
|
onlyInitializing()
|
55
50
|
{
|
56
|
-
|
51
|
+
initializeInstanceLinkedComponent(registry, instanceNftId, name, token, DISTRIBUTION(), true, initialOwner, registryData, componentData);
|
57
52
|
|
58
53
|
DistributionStorage storage $ = _getDistributionStorage();
|
59
|
-
// TODO add validation
|
60
|
-
$._minDistributionOwnerFee = minDistributionOwnerFee;
|
61
|
-
$._distributionFee = distributionFee;
|
62
|
-
$._tokenHandler = new TokenHandler(token);
|
63
54
|
$._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
55
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
64
56
|
|
65
57
|
registerInterface(type(IDistributionComponent).interfaceId);
|
66
58
|
}
|
67
59
|
|
60
|
+
function register()
|
61
|
+
external
|
62
|
+
virtual
|
63
|
+
onlyOwner()
|
64
|
+
{
|
65
|
+
_getDistributionStorage()._componentService.registerDistribution();
|
66
|
+
}
|
67
|
+
|
68
68
|
function setFees(
|
69
|
-
Fee memory
|
70
|
-
Fee memory
|
69
|
+
Fee memory distributionFee,
|
70
|
+
Fee memory minDistributionOwnerFee
|
71
71
|
)
|
72
72
|
external
|
73
73
|
override
|
74
|
-
onlyOwner
|
74
|
+
onlyOwner()
|
75
75
|
restricted()
|
76
76
|
{
|
77
|
-
_getDistributionStorage().
|
77
|
+
_getDistributionStorage()._componentService.setDistributionFees(
|
78
|
+
distributionFee,
|
79
|
+
minDistributionOwnerFee);
|
78
80
|
}
|
79
81
|
|
80
|
-
function getDistributionFee() external view returns (Fee memory distributionFee) {
|
81
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
82
|
-
return $._distributionFee;
|
83
|
-
}
|
84
82
|
|
85
83
|
function createDistributorType(
|
86
84
|
string memory name,
|
@@ -240,40 +238,18 @@ abstract contract Distribution is
|
|
240
238
|
// default is no action
|
241
239
|
}
|
242
240
|
|
243
|
-
function getSetupInfo() public view returns (ISetup.DistributionSetupInfo memory setupInfo) {
|
244
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
245
|
-
setupInfo = reader.getDistributionSetupInfo(getNftId());
|
246
|
-
|
247
|
-
// fallback to initial setup info (wallet is always != address(0))
|
248
|
-
if(setupInfo.wallet == address(0)) {
|
249
|
-
setupInfo = _getInitialSetupInfo();
|
250
|
-
}
|
251
|
-
}
|
252
|
-
|
253
|
-
function _getInitialSetupInfo() internal view returns (ISetup.DistributionSetupInfo memory setupInfo) {
|
254
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
255
|
-
return ISetup.DistributionSetupInfo(
|
256
|
-
zeroNftId(),
|
257
|
-
$._tokenHandler,
|
258
|
-
$._minDistributionOwnerFee,
|
259
|
-
$._distributionFee,
|
260
|
-
address(this),
|
261
|
-
0
|
262
|
-
);
|
263
|
-
}
|
264
|
-
|
265
241
|
|
266
242
|
function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
|
267
243
|
// keep track of distributor nft owner
|
268
244
|
emit LogDistributorUpdated(to, msg.sender);
|
269
245
|
DistributionStorage storage $ = _getDistributionStorage();
|
270
|
-
$._distributorNftId[from] =
|
271
|
-
$._distributorNftId[to] = toNftId(tokenId);
|
246
|
+
$._distributorNftId[from] = NftIdLib.zero();
|
247
|
+
$._distributorNftId[to] = NftIdLib.toNftId(tokenId);
|
272
248
|
}
|
273
249
|
|
274
250
|
|
275
251
|
/// @dev returns true iff the component needs to be called when selling/renewing policis
|
276
|
-
function isVerifying() external
|
252
|
+
function isVerifying() external pure returns (bool verifying) {
|
277
253
|
return true;
|
278
254
|
}
|
279
255
|
|
@@ -1,19 +1,22 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
5
|
import {IInstance} from "../instance/IInstance.sol";
|
6
|
-
import {
|
6
|
+
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
7
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
8
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
9
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
7
10
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
8
|
-
import {
|
11
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
9
12
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
13
|
|
11
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
12
|
-
import {NftId, NftIdLib
|
15
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
13
16
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
14
17
|
import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../type/RoleId.sol";
|
15
18
|
import {KEEP_STATE} from "../type/StateId.sol";
|
16
|
-
import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR,
|
19
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
17
20
|
import {Version, VersionLib} from "../type/Version.sol";
|
18
21
|
import {RoleId} from "../type/RoleId.sol";
|
19
22
|
|
@@ -22,7 +25,7 @@ import {Versionable} from "../shared/Versionable.sol";
|
|
22
25
|
|
23
26
|
import {IService} from "../shared/IService.sol";
|
24
27
|
import {Service} from "../shared/Service.sol";
|
25
|
-
import {
|
28
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
26
29
|
import {InstanceService} from "../instance/InstanceService.sol";
|
27
30
|
import {IComponent} from "../shared/IComponent.sol";
|
28
31
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
@@ -39,7 +42,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
|
|
39
42
|
|
40
43
|
|
41
44
|
contract DistributionService is
|
42
|
-
|
45
|
+
ComponentVerifyingService,
|
43
46
|
IDistributionService
|
44
47
|
{
|
45
48
|
using NftIdLib for NftId;
|
@@ -48,7 +51,9 @@ contract DistributionService is
|
|
48
51
|
using FeeLib for Fee;
|
49
52
|
using ReferralLib for ReferralId;
|
50
53
|
|
51
|
-
|
54
|
+
IComponentService private _componentService;
|
55
|
+
IInstanceService private _instanceService;
|
56
|
+
IRegistryService private _registryService;
|
52
57
|
|
53
58
|
function _initialize(
|
54
59
|
address owner,
|
@@ -64,6 +69,11 @@ contract DistributionService is
|
|
64
69
|
// TODO while DistributionService is not deployed in DistributionServiceManager constructor
|
65
70
|
// owner is DistributionServiceManager deployer
|
66
71
|
initializeService(registryAddress, address(0), owner);
|
72
|
+
|
73
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
74
|
+
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
75
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
76
|
+
|
67
77
|
registerInterface(type(IDistributionService).interfaceId);
|
68
78
|
}
|
69
79
|
|
@@ -71,67 +81,6 @@ contract DistributionService is
|
|
71
81
|
return DISTRIBUTION();
|
72
82
|
}
|
73
83
|
|
74
|
-
function register(address distributionAddress)
|
75
|
-
external
|
76
|
-
returns(NftId distributionNftId)
|
77
|
-
{
|
78
|
-
(
|
79
|
-
IComponent component,
|
80
|
-
address owner,
|
81
|
-
IInstance instance,
|
82
|
-
NftId instanceNftId
|
83
|
-
) = _checkComponentForRegistration(
|
84
|
-
distributionAddress,
|
85
|
-
DISTRIBUTION(),
|
86
|
-
DISTRIBUTION_OWNER_ROLE());
|
87
|
-
|
88
|
-
IRegistry.ObjectInfo memory distributionInfo = getRegistryService().registerDistribution(component, owner);
|
89
|
-
IDistributionComponent distribution = IDistributionComponent(distributionAddress);
|
90
|
-
distribution.linkToRegisteredNftId();
|
91
|
-
distributionNftId = distributionInfo.nftId;
|
92
|
-
|
93
|
-
instance.getInstanceStore().createDistributionSetup(distributionNftId, distribution.getSetupInfo());
|
94
|
-
// TODO move to distribution?
|
95
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
96
|
-
selectors[0] = new bytes4[](1);
|
97
|
-
// TODO check if array size should be 1 instead of 2
|
98
|
-
selectors[1] = new bytes4[](2);
|
99
|
-
|
100
|
-
selectors[0][0] = IDistributionComponent.setFees.selector;
|
101
|
-
selectors[1][0] = IDistributionComponent.processRenewal.selector;
|
102
|
-
|
103
|
-
RoleId[] memory roles = new RoleId[](2);
|
104
|
-
roles[0] = DISTRIBUTION_OWNER_ROLE();
|
105
|
-
roles[1] = PRODUCT_SERVICE_ROLE();
|
106
|
-
|
107
|
-
getInstanceService().createGifTarget(
|
108
|
-
instanceNftId,
|
109
|
-
distributionAddress,
|
110
|
-
distribution.getName(),
|
111
|
-
selectors,
|
112
|
-
roles);
|
113
|
-
}
|
114
|
-
|
115
|
-
function setFees(
|
116
|
-
Fee memory minDistributionOwnerFee,
|
117
|
-
Fee memory distributionFee
|
118
|
-
)
|
119
|
-
external
|
120
|
-
override
|
121
|
-
{
|
122
|
-
if (minDistributionOwnerFee.fractionalFee > distributionFee.fractionalFee) {
|
123
|
-
revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
|
124
|
-
}
|
125
|
-
|
126
|
-
(NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
|
127
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
128
|
-
|
129
|
-
ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
|
130
|
-
distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
131
|
-
distSetupInfo.distributionFee = distributionFee;
|
132
|
-
|
133
|
-
instance.getInstanceStore().updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
|
134
|
-
}
|
135
84
|
|
136
85
|
function createDistributorType(
|
137
86
|
string memory name,
|
@@ -147,12 +96,14 @@ contract DistributionService is
|
|
147
96
|
external
|
148
97
|
returns (DistributorType distributorType)
|
149
98
|
{
|
150
|
-
(NftId distributionNftId,, IInstance instance) =
|
99
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
100
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
151
101
|
|
152
102
|
{
|
153
|
-
|
154
|
-
|
155
|
-
UFixed
|
103
|
+
NftId productNftId = _getProductNftId(instanceReader, distributionNftId);
|
104
|
+
IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
|
105
|
+
UFixed variableFeesPartsTotal = productInfo.minDistributionOwnerFee.fractionalFee.add(commissionPercentage);
|
106
|
+
UFixed maxDiscountPercentageLimit = productInfo.distributionFee.fractionalFee.sub(variableFeesPartsTotal);
|
156
107
|
if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
|
157
108
|
revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
|
158
109
|
}
|
@@ -183,11 +134,11 @@ contract DistributionService is
|
|
183
134
|
virtual
|
184
135
|
returns (NftId distributorNftId)
|
185
136
|
{
|
186
|
-
(NftId distributionNftId,, IInstance instance) =
|
137
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
187
138
|
|
188
|
-
distributorNftId =
|
139
|
+
distributorNftId = _registryService.registerDistributor(
|
189
140
|
IRegistry.ObjectInfo(
|
190
|
-
|
141
|
+
NftIdLib.zero(),
|
191
142
|
distributionNftId,
|
192
143
|
DISTRIBUTOR(),
|
193
144
|
true, // intercepting property for bundles is defined on pool
|
@@ -235,7 +186,7 @@ contract DistributionService is
|
|
235
186
|
virtual
|
236
187
|
returns (ReferralId referralId)
|
237
188
|
{
|
238
|
-
(NftId distributionNftId,, IInstance instance) =
|
189
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
239
190
|
|
240
191
|
if (bytes(code).length == 0) {
|
241
192
|
revert ErrorIDistributionServiceInvalidReferral(code);
|
@@ -276,56 +227,53 @@ contract DistributionService is
|
|
276
227
|
return referralId;
|
277
228
|
}
|
278
229
|
|
230
|
+
|
279
231
|
function processSale(
|
280
232
|
NftId distributionNftId, // assume always of distribution type
|
281
233
|
ReferralId referralId,
|
282
|
-
IPolicy.Premium memory premium
|
283
|
-
Amount transferredDistributionFeeAmount
|
234
|
+
IPolicy.Premium memory premium
|
284
235
|
)
|
285
236
|
external
|
286
237
|
virtual
|
238
|
+
restricted
|
287
239
|
{
|
288
|
-
bool isReferral = ! referralId.eqz();
|
289
|
-
bool referralValid = referralIsValid(distributionNftId, referralId);
|
290
|
-
|
291
|
-
if (isReferral && ! referralValid) {
|
292
|
-
revert ErrorIDistributionServiceReferralInvalid(distributionNftId, referralId);
|
293
|
-
}
|
294
|
-
|
295
240
|
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
296
241
|
InstanceReader reader = instance.getInstanceReader();
|
297
242
|
InstanceStore store = instance.getInstanceStore();
|
298
|
-
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
299
|
-
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
300
|
-
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
301
|
-
|
302
|
-
Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
|
303
|
-
Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
|
304
243
|
|
305
|
-
|
306
|
-
|
307
|
-
}
|
244
|
+
// get distribution owner fee amount
|
245
|
+
Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
|
308
246
|
|
247
|
+
// update referral/distributor info if applicable
|
248
|
+
if (referralIsValid(distributionNftId, referralId)) {
|
309
249
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
}
|
250
|
+
// increase distribution balance by commission amount and distribution owner fee
|
251
|
+
Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
|
252
|
+
_componentService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
|
314
253
|
|
315
|
-
|
254
|
+
// update book keeping for referral info
|
255
|
+
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
316
256
|
referralInfo.usedReferrals += 1;
|
317
257
|
store.updateReferral(referralId, referralInfo, KEEP_STATE());
|
318
258
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
259
|
+
// update book keeping for distributor info
|
260
|
+
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
261
|
+
// TODO refactor sum of commission amount into a fee balance for distributors
|
262
|
+
distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
|
263
|
+
distributorInfo.numPoliciesSold += 1;
|
264
|
+
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
265
|
+
} else {
|
266
|
+
|
267
|
+
// increase distribution balance by distribution owner fee
|
268
|
+
_componentService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
324
269
|
}
|
325
270
|
}
|
326
271
|
|
327
|
-
// TODO: zero should return false
|
328
272
|
function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
|
273
|
+
if (distributionNftId.eqz() || referralId.eqz()) {
|
274
|
+
return false;
|
275
|
+
}
|
276
|
+
|
329
277
|
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
330
278
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
331
279
|
|
@@ -346,4 +294,5 @@ contract DistributionService is
|
|
346
294
|
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
347
295
|
return IInstance(instanceAddress);
|
348
296
|
}
|
297
|
+
|
349
298
|
}
|
@@ -14,29 +14,20 @@ contract DistributionServiceManager is ProxyManager {
|
|
14
14
|
|
15
15
|
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
16
16
|
constructor(
|
17
|
-
address
|
18
|
-
|
17
|
+
address authority,
|
18
|
+
address registryAddress,
|
19
|
+
bytes32 salt
|
20
|
+
)
|
19
21
|
ProxyManager(registryAddress)
|
20
22
|
{
|
21
|
-
DistributionService distSrv = new DistributionService();
|
22
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
23
|
-
IVersionable versionable =
|
23
|
+
DistributionService distSrv = new DistributionService{salt: salt}();
|
24
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
25
|
+
IVersionable versionable = deployDetermenistic(
|
24
26
|
address(distSrv),
|
25
|
-
data
|
27
|
+
data,
|
28
|
+
salt);
|
26
29
|
|
27
30
|
_distributionService = DistributionService(address(versionable));
|
28
|
-
|
29
|
-
// TODO `thi` must have a role or own nft to register service
|
30
|
-
//Registry registry = Registry(registryAddress);
|
31
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
|
32
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
33
|
-
//registryService.registerService(_distributionService);
|
34
|
-
|
35
|
-
// TODO no nft to link yet
|
36
|
-
// link ownership of instance service manager ot nft owner of instance service
|
37
|
-
//_linkToNftOwnable(
|
38
|
-
// address(registryAddress),
|
39
|
-
// address(_distributionService));
|
40
31
|
}
|
41
32
|
|
42
33
|
//--- view functions ----------------------------------------------------//
|
@@ -1,9 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Fee} from "../type/Fee.sol";
|
5
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
7
6
|
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
8
7
|
import {NftId} from "../type/NftId.sol";
|
9
8
|
import {DistributorType} from "../type/DistributorType.sol";
|
@@ -14,11 +13,9 @@ interface IDistributionComponent is IInstanceLinkedComponent {
|
|
14
13
|
|
15
14
|
event LogDistributorUpdated(address to, address caller);
|
16
15
|
|
17
|
-
function getSetupInfo() external view returns (ISetup.DistributionSetupInfo memory setupInfo);
|
18
|
-
|
19
16
|
function setFees(
|
20
|
-
Fee memory
|
21
|
-
Fee memory
|
17
|
+
Fee memory distributionFee,
|
18
|
+
Fee memory minDistributionOwnerFee
|
22
19
|
) external;
|
23
20
|
|
24
21
|
function createDistributorType(
|
@@ -60,8 +57,6 @@ interface IDistributionComponent is IInstanceLinkedComponent {
|
|
60
57
|
string memory referralCode
|
61
58
|
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
62
59
|
|
63
|
-
function getDistributionFee() external view returns (Fee memory distibutionFee);
|
64
|
-
|
65
60
|
function getReferralId(
|
66
61
|
string memory referralCode
|
67
62
|
) external returns (ReferralId referralId);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
@@ -29,11 +29,6 @@ interface IDistributionService is IService {
|
|
29
29
|
error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
30
30
|
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
31
31
|
|
32
|
-
function setFees(
|
33
|
-
Fee memory minDistributionOwnerFee,
|
34
|
-
Fee memory distributionFee
|
35
|
-
) external;
|
36
|
-
|
37
32
|
function createDistributorType(
|
38
33
|
string memory name,
|
39
34
|
UFixed minDiscountPercentage,
|
@@ -76,8 +71,7 @@ interface IDistributionService is IService {
|
|
76
71
|
function processSale(
|
77
72
|
NftId distributionNftId,
|
78
73
|
ReferralId referralId,
|
79
|
-
IPolicy.Premium memory premium
|
80
|
-
Amount transferredDistributionFeeAmount
|
74
|
+
IPolicy.Premium memory premium
|
81
75
|
) external;
|
82
76
|
|
83
77
|
function referralIsValid(
|
@@ -14,16 +14,17 @@ import {VersionPart} from "../type/Version.sol";
|
|
14
14
|
import {Key32} from "../type/Key32.sol";
|
15
15
|
import {RoleId} from "../type/RoleId.sol";
|
16
16
|
|
17
|
+
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
17
18
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
18
19
|
|
19
20
|
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
20
21
|
|
21
|
-
import {
|
22
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
22
23
|
import {BundleManager} from "./BundleManager.sol";
|
23
24
|
import {InstanceReader} from "./InstanceReader.sol";
|
24
25
|
import {InstanceStore} from "./InstanceStore.sol";
|
25
26
|
|
26
|
-
import {IKeyValueStore} from "
|
27
|
+
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
27
28
|
|
28
29
|
import {IAccess} from "./module/IAccess.sol";
|
29
30
|
|
@@ -36,15 +37,14 @@ import {IPolicyService} from "../product/IPolicyService.sol";
|
|
36
37
|
import {IBundleService} from "../pool/IBundleService.sol";
|
37
38
|
|
38
39
|
|
39
|
-
|
40
40
|
interface IInstance is
|
41
41
|
IRegisterable,
|
42
42
|
ITransferInterceptor,
|
43
43
|
IAccessManaged
|
44
44
|
{
|
45
|
-
error
|
46
|
-
error
|
47
|
-
error
|
45
|
+
error ErrorInstanceInstanceAdminZero();
|
46
|
+
error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
|
47
|
+
error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
|
48
48
|
|
49
49
|
error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
|
50
50
|
error ErrorInstanceBundleManagerInstanceMismatch(address instance);
|
@@ -55,6 +55,10 @@ interface IInstance is
|
|
55
55
|
error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
|
56
56
|
error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
|
57
57
|
|
58
|
+
struct InstanceInfo {
|
59
|
+
uint64 requestsCount;
|
60
|
+
}
|
61
|
+
|
58
62
|
function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
|
59
63
|
function grantRole(RoleId roleId, address account) external;
|
60
64
|
function revokeRole(RoleId roleId, address account) external;
|
@@ -72,6 +76,7 @@ interface IInstance is
|
|
72
76
|
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
73
77
|
function getInstanceReader() external view returns (InstanceReader);
|
74
78
|
function getBundleManager() external view returns (BundleManager);
|
75
|
-
function
|
79
|
+
function getInstanceAdmin() external view returns (InstanceAdmin);
|
76
80
|
function getInstanceStore() external view returns (InstanceStore);
|
81
|
+
function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable);
|
77
82
|
}
|