@etherisc/gif-next 0.0.2-9346c9b-763 → 0.0.2-93a7619-595
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 +19 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +33 -52
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +0 -19
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +2 -2
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -248
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +16 -16
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -222
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +139 -294
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +84 -124
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +21 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +49 -62
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1512 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1432 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +10 -99
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +97 -100
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +14 -14
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +437 -129
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +39 -146
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +244 -228
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +47 -232
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +18 -18
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +15 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +15 -216
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -274
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +16 -16
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +319 -188
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +130 -94
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +149 -23
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -88
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +41 -270
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +43 -242
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +16 -16
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +295 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +43 -57
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +43 -242
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +240 -21
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +438 -82
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +243 -131
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +24 -14
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +15 -205
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +132 -199
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +96 -114
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +15 -20
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +56 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +15 -31
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +15 -216
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +42 -21
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +100 -256
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +89 -84
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +7 -2
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- 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 +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
- 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 +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- 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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +39 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +25 -24
- package/contracts/authorization/Authorization.sol +5 -2
- package/contracts/authorization/IAccessAdmin.sol +0 -1
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/Distribution.sol +4 -10
- package/contracts/distribution/DistributionService.sol +41 -50
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionService.sol +9 -5
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +411 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/IInstance.sol +7 -30
- package/contracts/instance/Instance.sol +10 -35
- package/contracts/instance/InstanceAdmin.sol +29 -7
- package/contracts/instance/InstanceAuthorizationV3.sol +3 -3
- package/contracts/instance/InstanceReader.sol +115 -25
- package/contracts/instance/InstanceService.sol +63 -41
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +12 -1
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +4 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +24 -24
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/Oracle.sol +4 -7
- package/contracts/oracle/OracleService.sol +11 -8
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +5 -2
- package/contracts/pool/BundleService.sol +167 -48
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +31 -8
- package/contracts/pool/IPoolComponent.sol +18 -8
- package/contracts/pool/IPoolService.sol +57 -36
- package/contracts/pool/Pool.sol +59 -34
- package/contracts/pool/PoolService.sol +231 -104
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +50 -29
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +3 -32
- package/contracts/product/ClaimService.sol +251 -86
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +31 -7
- package/contracts/product/IPolicyService.sol +34 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +17 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +404 -193
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +46 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +90 -50
- package/contracts/product/{ProductService.sol → RiskService.sol} +7 -10
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +51 -15
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +328 -197
- package/contracts/registry/RegistryAdmin.sol +150 -51
- package/contracts/registry/RegistryService.sol +55 -48
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseRegistry.sol +12 -8
- package/contracts/registry/ServiceAuthorizationV3.sol +6 -8
- package/contracts/shared/Component.sol +25 -29
- package/contracts/shared/ComponentService.sol +50 -31
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +2 -3
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +7 -4
- package/contracts/shared/IComponentService.sol +5 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +8 -15
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +5 -6
- package/contracts/shared/NftOwnable.sol +7 -7
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +16 -11
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +2 -1
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +11 -27
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +20 -3
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +16 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +33 -10
- package/contracts/upgradeability/ProxyManager.sol +67 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +2 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
5
|
import {IInstance} from "../instance/IInstance.sol";
|
8
6
|
import {IComponentService} from "../shared/IComponentService.sol";
|
@@ -14,31 +12,22 @@ import {IPolicy} from "../instance/module/IPolicy.sol";
|
|
14
12
|
|
15
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
14
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
17
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
18
15
|
import {KEEP_STATE} from "../type/StateId.sol";
|
19
16
|
import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
20
17
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
21
18
|
import {IDistributionService} from "./IDistributionService.sol";
|
22
|
-
import {UFixed
|
19
|
+
import {UFixed} from "../type/UFixed.sol";
|
23
20
|
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
24
21
|
import {ReferralId, ReferralLib} from "../type/Referral.sol";
|
25
22
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
26
23
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
27
24
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
28
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
29
25
|
|
30
26
|
|
31
27
|
contract DistributionService is
|
32
28
|
ComponentVerifyingService,
|
33
29
|
IDistributionService
|
34
30
|
{
|
35
|
-
using AmountLib for Amount;
|
36
|
-
using NftIdLib for NftId;
|
37
|
-
using TimestampLib for Timestamp;
|
38
|
-
using UFixedLib for UFixed;
|
39
|
-
using FeeLib for Fee;
|
40
|
-
using ReferralLib for ReferralId;
|
41
|
-
|
42
31
|
IComponentService private _componentService;
|
43
32
|
IInstanceService private _instanceService;
|
44
33
|
IRegistryService private _registryService;
|
@@ -48,21 +37,21 @@ contract DistributionService is
|
|
48
37
|
bytes memory data
|
49
38
|
)
|
50
39
|
internal
|
51
|
-
initializer
|
52
40
|
virtual override
|
41
|
+
initializer()
|
53
42
|
{
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
43
|
+
(
|
44
|
+
address registryAddress,
|
45
|
+
address authority
|
46
|
+
) = abi.decode(data, (address, address));
|
47
|
+
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
60
49
|
|
61
50
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
62
51
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
63
52
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
64
53
|
|
65
|
-
|
54
|
+
_registerInterface(type(IDistributionService).interfaceId);
|
66
55
|
}
|
67
56
|
|
68
57
|
|
@@ -142,7 +131,6 @@ contract DistributionService is
|
|
142
131
|
distributorType,
|
143
132
|
true, // active
|
144
133
|
data,
|
145
|
-
AmountLib.zero(),
|
146
134
|
0);
|
147
135
|
|
148
136
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
@@ -218,11 +206,28 @@ contract DistributionService is
|
|
218
206
|
return referralId;
|
219
207
|
}
|
220
208
|
|
209
|
+
/// @inheritdoc IDistributionService
|
210
|
+
function processReferral(
|
211
|
+
NftId distributionNftId,
|
212
|
+
ReferralId referralId
|
213
|
+
)
|
214
|
+
external
|
215
|
+
virtual
|
216
|
+
restricted
|
217
|
+
{
|
218
|
+
if (referralIsValid(distributionNftId, referralId)) {
|
219
|
+
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
220
|
+
// update book keeping for referral info
|
221
|
+
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
222
|
+
referralInfo.usedReferrals += 1;
|
223
|
+
instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
|
224
|
+
}
|
225
|
+
}
|
221
226
|
|
222
227
|
function processSale(
|
223
228
|
NftId distributionNftId, // assume always of distribution type
|
224
229
|
ReferralId referralId,
|
225
|
-
IPolicy.
|
230
|
+
IPolicy.PremiumInfo memory premium
|
226
231
|
)
|
227
232
|
external
|
228
233
|
virtual
|
@@ -233,24 +238,22 @@ contract DistributionService is
|
|
233
238
|
InstanceStore store = instance.getInstanceStore();
|
234
239
|
|
235
240
|
// get distribution owner fee amount
|
236
|
-
Amount distributionOwnerFee =
|
241
|
+
Amount distributionOwnerFee = premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount;
|
237
242
|
|
238
243
|
// update referral/distributor info if applicable
|
239
244
|
if (referralIsValid(distributionNftId, referralId)) {
|
240
245
|
|
241
246
|
// increase distribution balance by commission amount and distribution owner fee
|
242
|
-
Amount commissionAmount =
|
247
|
+
Amount commissionAmount = premium.commissionAmount;
|
243
248
|
_componentService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
|
244
249
|
|
245
250
|
// update book keeping for referral info
|
246
251
|
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
247
|
-
|
248
|
-
|
252
|
+
|
253
|
+
_componentService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
|
249
254
|
|
250
255
|
// update book keeping for distributor info
|
251
256
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
252
|
-
// TODO refactor sum of commission amount into a fee balance for distributors
|
253
|
-
distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
|
254
257
|
distributorInfo.numPoliciesSold += 1;
|
255
258
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
256
259
|
} else {
|
@@ -272,44 +275,32 @@ contract DistributionService is
|
|
272
275
|
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
273
276
|
address distributionWallet = distributionInfo.wallet;
|
274
277
|
|
275
|
-
|
278
|
+
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
276
279
|
|
277
280
|
// determine withdrawn amount
|
278
281
|
withdrawnAmount = amount;
|
279
282
|
if (withdrawnAmount.gte(AmountLib.max())) {
|
280
|
-
withdrawnAmount =
|
283
|
+
withdrawnAmount = commissionAmount;
|
281
284
|
} else {
|
282
|
-
if (withdrawnAmount.gt(
|
283
|
-
revert ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(withdrawnAmount,
|
285
|
+
if (withdrawnAmount.gt(commissionAmount)) {
|
286
|
+
revert ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(withdrawnAmount, commissionAmount);
|
284
287
|
}
|
285
288
|
}
|
286
289
|
|
287
|
-
if (withdrawnAmount.eqz()) {
|
288
|
-
revert ErrorDistributionServiceCommissionWithdrawAmountIsZero();
|
289
|
-
}
|
290
|
-
|
291
|
-
// check allowance
|
292
|
-
IERC20Metadata token = IERC20Metadata(distributionInfo.token);
|
293
|
-
uint256 tokenAllowance = token.allowance(distributionWallet, address(distributionInfo.tokenHandler));
|
294
|
-
if (tokenAllowance < withdrawnAmount.toInt()) {
|
295
|
-
revert ErrorDistributionServiceWalletAllowanceTooSmall(distributionWallet, address(distributionInfo.tokenHandler), tokenAllowance, withdrawnAmount.toInt());
|
296
|
-
}
|
297
|
-
|
298
290
|
// decrease fee counters by withdrawnAmount and update distributor info
|
299
291
|
{
|
300
292
|
InstanceStore store = instance.getInstanceStore();
|
293
|
+
// decrease fee counter for distribution balance
|
301
294
|
_componentService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
|
302
|
-
|
303
|
-
|
304
|
-
store.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
295
|
+
// decrease fee counter for distributor fee
|
296
|
+
_componentService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
|
305
297
|
}
|
306
298
|
|
307
299
|
// transfer amount to distributor
|
308
300
|
{
|
309
301
|
address distributor = getRegistry().ownerOf(distributorNftId);
|
310
|
-
|
311
|
-
|
312
|
-
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(token), withdrawnAmount);
|
302
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.token), withdrawnAmount);
|
303
|
+
distributionInfo.tokenHandler.distributeTokens(distributionWallet, distributor, withdrawnAmount);
|
313
304
|
}
|
314
305
|
}
|
315
306
|
|
@@ -335,7 +326,7 @@ contract DistributionService is
|
|
335
326
|
returns(IInstance instance)
|
336
327
|
{
|
337
328
|
NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
|
338
|
-
address instanceAddress = getRegistry().
|
329
|
+
address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
|
339
330
|
return IInstance(instanceAddress);
|
340
331
|
}
|
341
332
|
|
@@ -12,15 +12,15 @@ contract DistributionServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
|
-
DistributionService
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
23
|
-
|
19
|
+
DistributionService svc = new DistributionService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
26
26
|
|
@@ -3,7 +3,6 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {NftId} from "../type/NftId.sol";
|
6
|
-
import {Fee} from "../type/Fee.sol";
|
7
6
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
8
7
|
import {IService} from "../shared/IService.sol";
|
9
8
|
import {UFixed} from "../type/UFixed.sol";
|
@@ -28,9 +27,7 @@ interface IDistributionService is IService {
|
|
28
27
|
error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
29
28
|
|
30
29
|
error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
31
|
-
|
32
|
-
error ErrorDistributionServiceWalletAllowanceTooSmall(address wallet, address tokenHandler, uint256 allowance, uint256 amount);
|
33
|
-
|
30
|
+
|
34
31
|
error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
|
35
32
|
error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
|
36
33
|
|
@@ -77,11 +74,18 @@ interface IDistributionService is IService {
|
|
77
74
|
external
|
78
75
|
returns (ReferralId referralId);
|
79
76
|
|
77
|
+
/// @dev callback from product service when a referral is used.
|
78
|
+
/// Calling this will increment the referral usage counter.
|
79
|
+
function processReferral(
|
80
|
+
NftId distributionNftId,
|
81
|
+
ReferralId referralId
|
82
|
+
) external;
|
83
|
+
|
80
84
|
/// @dev callback from product service when selling a policy for a specific referralId
|
81
85
|
function processSale(
|
82
86
|
NftId distributionNftId,
|
83
87
|
ReferralId referralId,
|
84
|
-
IPolicy.
|
88
|
+
IPolicy.PremiumInfo memory premium
|
85
89
|
) external;
|
86
90
|
|
87
91
|
function referralIsValid(
|
@@ -0,0 +1,59 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
type DamageLevel is uint8;
|
5
|
+
|
6
|
+
// type bindings
|
7
|
+
using {
|
8
|
+
DamageLevelLib.eq,
|
9
|
+
DamageLevelLib.eqz,
|
10
|
+
DamageLevelLib.toInt
|
11
|
+
} for DamageLevel global;
|
12
|
+
|
13
|
+
// solhint-disable-next-line func-name-mixedcase
|
14
|
+
function DAMAGE_SMALL() pure returns (DamageLevel) {
|
15
|
+
return DamageLevel.wrap(1);
|
16
|
+
}
|
17
|
+
|
18
|
+
// solhint-disable-next-line func-name-mixedcase
|
19
|
+
function DAMAGE_MEDIUM() pure returns (DamageLevel) {
|
20
|
+
return DamageLevel.wrap(2);
|
21
|
+
}
|
22
|
+
|
23
|
+
// solhint-disable-next-line func-name-mixedcase
|
24
|
+
function DAMAGE_LARGE() pure returns (DamageLevel) {
|
25
|
+
return DamageLevel.wrap(3);
|
26
|
+
}
|
27
|
+
|
28
|
+
library DamageLevelLib {
|
29
|
+
|
30
|
+
error ErrorDamageLeveLibInvalidDamageLevel(uint8 damageLevel);
|
31
|
+
|
32
|
+
function zero() internal pure returns (DamageLevel) {
|
33
|
+
return DamageLevel.wrap(0);
|
34
|
+
}
|
35
|
+
|
36
|
+
function toDamageLevel(uint8 damage) internal pure returns (DamageLevel) {
|
37
|
+
if (damage == 1) {
|
38
|
+
return DAMAGE_SMALL();
|
39
|
+
} else if (damage == 2) {
|
40
|
+
return DAMAGE_MEDIUM();
|
41
|
+
} else if (damage == 3) {
|
42
|
+
return DAMAGE_LARGE();
|
43
|
+
} else {
|
44
|
+
revert ErrorDamageLeveLibInvalidDamageLevel(damage);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
function toInt(DamageLevel damageLevel) internal pure returns (uint8) {
|
49
|
+
return uint8(DamageLevel.unwrap(damageLevel));
|
50
|
+
}
|
51
|
+
|
52
|
+
function eq(DamageLevel a, DamageLevel b) internal pure returns (bool) {
|
53
|
+
return DamageLevel.unwrap(a) == DamageLevel.unwrap(b);
|
54
|
+
}
|
55
|
+
|
56
|
+
function eqz(DamageLevel a) internal pure returns (bool) {
|
57
|
+
return DamageLevel.unwrap(a) == 0;
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
|
+
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
|
+
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
7
|
+
import {Fee} from "../../type/Fee.sol";
|
8
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
9
|
+
import {NftId} from "../../type/NftId.sol";
|
10
|
+
import {Seconds} from "../../type/Timestamp.sol";
|
11
|
+
import {UFixed} from "../../type/UFixed.sol";
|
12
|
+
|
13
|
+
contract FirePool is
|
14
|
+
BasicPool
|
15
|
+
{
|
16
|
+
|
17
|
+
constructor(
|
18
|
+
address registry,
|
19
|
+
NftId instanceNftId,
|
20
|
+
string memory componentName,
|
21
|
+
address token,
|
22
|
+
IAuthorization authorization
|
23
|
+
)
|
24
|
+
{
|
25
|
+
address initialOwner = msg.sender;
|
26
|
+
_intialize(
|
27
|
+
registry,
|
28
|
+
instanceNftId,
|
29
|
+
componentName,
|
30
|
+
token,
|
31
|
+
authorization,
|
32
|
+
initialOwner);
|
33
|
+
}
|
34
|
+
|
35
|
+
function _intialize(
|
36
|
+
address registry,
|
37
|
+
NftId instanceNftId,
|
38
|
+
string memory componentName,
|
39
|
+
address token,
|
40
|
+
IAuthorization authorization,
|
41
|
+
address initialOwner
|
42
|
+
)
|
43
|
+
internal
|
44
|
+
initializer
|
45
|
+
{
|
46
|
+
_initializeBasicPool(
|
47
|
+
registry,
|
48
|
+
instanceNftId,
|
49
|
+
authorization,
|
50
|
+
token,
|
51
|
+
componentName,
|
52
|
+
initialOwner);
|
53
|
+
}
|
54
|
+
|
55
|
+
function createBundle(
|
56
|
+
Fee memory fee,
|
57
|
+
Amount initialAmount,
|
58
|
+
Seconds lifetime
|
59
|
+
)
|
60
|
+
external
|
61
|
+
virtual
|
62
|
+
restricted()
|
63
|
+
returns(NftId bundleNftId, Amount netStakedAmount)
|
64
|
+
{
|
65
|
+
address owner = msg.sender;
|
66
|
+
bundleNftId = _createBundle(
|
67
|
+
owner,
|
68
|
+
fee,
|
69
|
+
lifetime,
|
70
|
+
"" // filter
|
71
|
+
);
|
72
|
+
netStakedAmount = _stake(bundleNftId, initialAmount);
|
73
|
+
}
|
74
|
+
|
75
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
4
|
+
pragma solidity ^0.8.20;
|
5
|
+
|
6
|
+
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
7
|
+
import {FirePool} from "./FirePool.sol";
|
8
|
+
import {IAccess} from "../../../contracts/authorization/IAccess.sol";
|
9
|
+
import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
|
10
|
+
|
11
|
+
contract FirePoolAuthorization
|
12
|
+
is BasicPoolAuthorization
|
13
|
+
{
|
14
|
+
|
15
|
+
constructor(string memory poolName)
|
16
|
+
BasicPoolAuthorization(poolName)
|
17
|
+
{}
|
18
|
+
|
19
|
+
|
20
|
+
function _setupTargetAuthorizations()
|
21
|
+
internal
|
22
|
+
virtual override
|
23
|
+
{
|
24
|
+
super._setupTargetAuthorizations();
|
25
|
+
IAccess.FunctionInfo[] storage functions;
|
26
|
+
|
27
|
+
// authorize public role (open access to any account, only allows to lock target)
|
28
|
+
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
29
|
+
// TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
|
30
|
+
_authorize(functions, FirePool.createBundle.selector, "createBundle");
|
31
|
+
}
|
32
|
+
|
33
|
+
}
|
34
|
+
|