@etherisc/gif-next 0.0.2-c0dadcd-773 → 0.0.2-c16a73d-798
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 +49 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +152 -281
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +48 -10
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/{shared/AccessManagerCustom.sol/AccessManagerCustom.json → authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json} +28 -25
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +133 -501
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +316 -239
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +116 -104
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +164 -210
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +181 -47
- 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 +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +59 -50
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +43 -110
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +74 -202
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1211 -266
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +511 -154
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +91 -316
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -111
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +340 -260
- 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 +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- 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 +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +109 -80
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +119 -358
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +498 -167
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +169 -89
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +258 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +125 -319
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +384 -179
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +165 -632
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +506 -334
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -87
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +76 -168
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -92
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +303 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +176 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +323 -118
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +154 -137
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +444 -325
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +119 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +202 -307
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +168 -434
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -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 +311 -55
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -146
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +537 -112
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +381 -396
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +101 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +65 -236
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +518 -261
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -118
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -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 +55 -54
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +474 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +98 -80
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- 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/IRegisterable.sol/IRegisterable.json +29 -0
- 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 +29 -0
- 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 +111 -318
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -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 +58 -89
- 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 +47 -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 +82 -55
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +176 -293
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +106 -91
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -164
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
- 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 +61 -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 +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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 +4 -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 +55 -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 +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- 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 +117 -14
- 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/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- 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 +71 -2
- 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 +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +190 -353
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +26 -57
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +11 -6
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +45 -25
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +140 -116
- package/contracts/distribution/DistributionService.sol +138 -80
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +26 -40
- package/contracts/distribution/IDistributionService.sol +23 -3
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -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/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +17 -38
- package/contracts/instance/IInstanceService.sol +9 -34
- package/contracts/instance/Instance.sol +84 -115
- package/contracts/instance/InstanceAdmin.sol +216 -270
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +137 -34
- package/contracts/instance/InstanceService.sol +98 -126
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +23 -5
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +10 -11
- 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/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +64 -53
- package/contracts/oracle/OracleService.sol +47 -34
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +154 -0
- package/contracts/pool/BasicPoolAuthorization.sol +57 -0
- package/contracts/pool/BundleService.sol +267 -70
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +42 -5
- package/contracts/pool/IPoolComponent.sol +24 -68
- package/contracts/pool/IPoolService.sol +56 -39
- package/contracts/pool/Pool.sol +184 -148
- package/contracts/pool/PoolService.sol +256 -164
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +70 -65
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +316 -146
- package/contracts/product/ClaimServiceManager.sol +6 -6
- 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 +10 -10
- package/contracts/product/IProductComponent.sol +26 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +419 -203
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +54 -54
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +211 -133
- package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -38
- package/contracts/registry/IRegistry.sol +69 -22
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +354 -219
- package/contracts/registry/RegistryAdmin.sol +244 -129
- package/contracts/registry/RegistryService.sol +39 -64
- package/contracts/registry/RegistryServiceManager.sol +4 -4
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +23 -29
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +47 -63
- package/contracts/shared/ComponentService.sol +314 -186
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +24 -15
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +10 -6
- package/contracts/shared/IComponentService.sol +38 -20
- package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +106 -37
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +19 -9
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +23 -22
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -8
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +29 -45
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +25 -29
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- 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 +53 -18
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +15 -1
- package/contracts/type/RoleId.sol +55 -94
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +7 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- 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/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,47 +1,57 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
6
8
|
import {IServiceAuthorization} from "./IServiceAuthorization.sol";
|
7
|
-
import {SelectorLib} from "
|
8
|
-
import {StrLib} from "
|
9
|
-
import {
|
9
|
+
import {SelectorLib} from "../type/Selector.sol";
|
10
|
+
import {StrLib} from "../type/String.sol";
|
11
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
12
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
10
13
|
|
11
14
|
/// @dev Base contract for release specific service authorization contracts.
|
12
|
-
contract ServiceAuthorization
|
13
|
-
|
15
|
+
contract ServiceAuthorization is
|
16
|
+
IServiceAuthorization
|
14
17
|
{
|
15
|
-
uint256 public constant
|
18
|
+
uint256 public constant COMMIT_HASH_LENGTH = 40;
|
19
|
+
uint256 public constant GIF_INITIAL_VERSION = 3;
|
16
20
|
|
17
|
-
|
21
|
+
uint256 public immutable VERSION;
|
22
|
+
string public COMMIT_HASH;
|
18
23
|
|
19
24
|
ObjectType[] internal _serviceDomains;
|
20
25
|
mapping(ObjectType domain => address service) internal _serviceAddress;
|
21
26
|
mapping(ObjectType domain => ObjectType[] authorizedDomains) internal _authorizedDomains;
|
22
|
-
mapping(ObjectType domain => mapping(ObjectType authorizedDomain =>
|
27
|
+
mapping(ObjectType domain => mapping(ObjectType authorizedDomain => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
|
28
|
+
|
29
|
+
constructor(string memory commitHash, uint256 version) {
|
30
|
+
assert(bytes(commitHash).length == COMMIT_HASH_LENGTH);
|
31
|
+
assert(version >= GIF_INITIAL_VERSION);
|
23
32
|
|
24
|
-
|
25
|
-
|
33
|
+
COMMIT_HASH = commitHash;
|
34
|
+
VERSION = version;
|
26
35
|
_setupDomains();
|
27
36
|
_setupDomainAuthorizations();
|
28
37
|
}
|
29
38
|
|
30
39
|
function getCommitHash() external view returns(string memory commitHash) {
|
31
|
-
return
|
40
|
+
return COMMIT_HASH;
|
32
41
|
}
|
33
42
|
|
34
|
-
function getRelease() external view returns(VersionPart release
|
35
|
-
return (
|
36
|
-
VersionPartLib.toVersionPart(GIF_VERSION),
|
37
|
-
_serviceDomains.length
|
38
|
-
);
|
43
|
+
function getRelease() external view returns(VersionPart release) {
|
44
|
+
return VersionPartLib.toVersionPart(VERSION);
|
39
45
|
}
|
40
46
|
|
41
47
|
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
|
42
48
|
return _serviceDomains;
|
43
49
|
}
|
44
50
|
|
51
|
+
function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain) {
|
52
|
+
return _serviceDomains[idx];
|
53
|
+
}
|
54
|
+
|
45
55
|
function getServiceAddress(ObjectType serviceDomain) external view returns(address service) {
|
46
56
|
return _serviceAddress[serviceDomain];
|
47
57
|
}
|
@@ -50,10 +60,19 @@ contract ServiceAuthorization
|
|
50
60
|
return _authorizedDomains[serviceDomain];
|
51
61
|
}
|
52
62
|
|
53
|
-
function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(
|
63
|
+
function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
|
54
64
|
return _authorizedFunctions[serviceDomain][authorizedDomain];
|
55
65
|
}
|
56
66
|
|
67
|
+
// ERC165
|
68
|
+
function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
|
69
|
+
return (
|
70
|
+
interfaceId == type(IServiceAuthorization).interfaceId ||
|
71
|
+
interfaceId == type(IERC165).interfaceId
|
72
|
+
);
|
73
|
+
}
|
74
|
+
|
75
|
+
|
57
76
|
/// @dev Overwrite this function for a specific realease.
|
58
77
|
function _setupDomains() internal virtual {}
|
59
78
|
|
@@ -67,20 +86,21 @@ contract ServiceAuthorization
|
|
67
86
|
_serviceAddress[serviceDomain] = serviceAddress;
|
68
87
|
}
|
69
88
|
|
89
|
+
/// @dev Use this method to authorize the specified domain to access the service domain.
|
70
90
|
function _authorizeForService(ObjectType serviceDomain, ObjectType authorizedDomain)
|
71
91
|
internal
|
72
|
-
returns (
|
92
|
+
returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
|
73
93
|
{
|
74
94
|
_authorizedDomains[serviceDomain].push(authorizedDomain);
|
75
95
|
return _authorizedFunctions[serviceDomain][authorizedDomain];
|
76
96
|
}
|
77
97
|
|
78
98
|
/// @dev Use this method to authorize a specific function authorization
|
79
|
-
function _authorize(
|
99
|
+
function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
|
80
100
|
functions.push(
|
81
|
-
|
101
|
+
IAccess.FunctionInfo({
|
82
102
|
selector: SelectorLib.toSelector(selector),
|
83
|
-
name: StrLib.toStr(name)
|
103
|
+
name: StrLib.toStr(name),
|
104
|
+
createdAt: TimestampLib.blockTimestamp()}));
|
84
105
|
}
|
85
|
-
}
|
86
|
-
|
106
|
+
}
|
@@ -0,0 +1,139 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Distribution} from "./Distribution.sol";
|
5
|
+
import {DISTRIBUTOR} from "../type/ObjectType.sol";
|
6
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {ReferralId} from "../type/Referral.sol";
|
9
|
+
import {Fee} from "../type/Fee.sol";
|
10
|
+
import {UFixed} from "../type/UFixed.sol";
|
11
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
12
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
13
|
+
|
14
|
+
|
15
|
+
contract BasicDistribution is
|
16
|
+
Distribution
|
17
|
+
{
|
18
|
+
|
19
|
+
function setFees(
|
20
|
+
Fee memory distributionFee,
|
21
|
+
Fee memory minDistributionOwnerFee
|
22
|
+
)
|
23
|
+
external
|
24
|
+
virtual
|
25
|
+
onlyOwner()
|
26
|
+
restricted()
|
27
|
+
{
|
28
|
+
_setFees(
|
29
|
+
distributionFee,
|
30
|
+
minDistributionOwnerFee);
|
31
|
+
}
|
32
|
+
|
33
|
+
|
34
|
+
function createDistributorType(
|
35
|
+
string memory name,
|
36
|
+
UFixed minDiscountPercentage,
|
37
|
+
UFixed maxDiscountPercentage,
|
38
|
+
UFixed commissionPercentage,
|
39
|
+
uint32 maxReferralCount,
|
40
|
+
uint32 maxReferralLifetime,
|
41
|
+
bool allowSelfReferrals,
|
42
|
+
bool allowRenewals,
|
43
|
+
bytes memory data
|
44
|
+
)
|
45
|
+
external
|
46
|
+
virtual
|
47
|
+
onlyOwner()
|
48
|
+
restricted()
|
49
|
+
returns (DistributorType distributorType)
|
50
|
+
{
|
51
|
+
return _createDistributorType(
|
52
|
+
name,
|
53
|
+
minDiscountPercentage,
|
54
|
+
maxDiscountPercentage,
|
55
|
+
commissionPercentage,
|
56
|
+
maxReferralCount,
|
57
|
+
maxReferralLifetime,
|
58
|
+
allowSelfReferrals,
|
59
|
+
allowRenewals,
|
60
|
+
data);
|
61
|
+
}
|
62
|
+
|
63
|
+
function createDistributor(
|
64
|
+
address distributor,
|
65
|
+
DistributorType distributorType,
|
66
|
+
bytes memory data
|
67
|
+
)
|
68
|
+
external
|
69
|
+
virtual
|
70
|
+
onlyOwner()
|
71
|
+
restricted()
|
72
|
+
returns(NftId distributorNftId)
|
73
|
+
{
|
74
|
+
return _createDistributor(distributor, distributorType, data);
|
75
|
+
}
|
76
|
+
|
77
|
+
function updateDistributorType(
|
78
|
+
NftId distributorNftId,
|
79
|
+
DistributorType distributorType,
|
80
|
+
bytes memory data
|
81
|
+
)
|
82
|
+
external
|
83
|
+
virtual
|
84
|
+
onlyOwner()
|
85
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
86
|
+
restricted()
|
87
|
+
{
|
88
|
+
_updateDistributorType(distributorNftId, distributorType, data);
|
89
|
+
}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* @dev lets distributors create referral codes.
|
93
|
+
* referral codes need to be unique
|
94
|
+
*/
|
95
|
+
function createReferral(
|
96
|
+
string memory code,
|
97
|
+
UFixed discountPercentage,
|
98
|
+
uint32 maxReferrals,
|
99
|
+
Timestamp expiryAt,
|
100
|
+
bytes memory data
|
101
|
+
)
|
102
|
+
external
|
103
|
+
virtual
|
104
|
+
onlyDistributor()
|
105
|
+
restricted()
|
106
|
+
returns (ReferralId referralId)
|
107
|
+
{
|
108
|
+
NftId distributorNftId = getDistributorNftId(msg.sender);
|
109
|
+
return _createReferral(
|
110
|
+
distributorNftId,
|
111
|
+
code,
|
112
|
+
discountPercentage,
|
113
|
+
maxReferrals,
|
114
|
+
expiryAt,
|
115
|
+
data); // data
|
116
|
+
}
|
117
|
+
|
118
|
+
function _initializeBasicDistribution(
|
119
|
+
address registry,
|
120
|
+
NftId instanceNftId,
|
121
|
+
IAuthorization authorization,
|
122
|
+
address initialOwner,
|
123
|
+
string memory name,
|
124
|
+
address token
|
125
|
+
)
|
126
|
+
internal
|
127
|
+
virtual
|
128
|
+
onlyInitializing()
|
129
|
+
{
|
130
|
+
_initializeDistribution(
|
131
|
+
registry,
|
132
|
+
instanceNftId,
|
133
|
+
authorization,
|
134
|
+
initialOwner,
|
135
|
+
name,
|
136
|
+
token,
|
137
|
+
""); // component specifc data
|
138
|
+
}
|
139
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Authorization} from "../authorization/Authorization.sol";
|
5
|
+
import {BasicDistribution} from "./BasicDistribution.sol";
|
6
|
+
import {Distribution} from "./Distribution.sol";
|
7
|
+
import {DISTRIBUTION} from "../type/ObjectType.sol";
|
8
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
9
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
10
|
+
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
11
|
+
|
12
|
+
|
13
|
+
contract BasicDistributionAuthorization
|
14
|
+
is Authorization
|
15
|
+
{
|
16
|
+
|
17
|
+
constructor(string memory distributionlName)
|
18
|
+
Authorization(distributionlName)
|
19
|
+
{}
|
20
|
+
|
21
|
+
function _setupTargets()
|
22
|
+
internal
|
23
|
+
virtual override
|
24
|
+
{
|
25
|
+
_addComponentTargetWithRole(DISTRIBUTION()); // basic target
|
26
|
+
}
|
27
|
+
|
28
|
+
|
29
|
+
function _setupTargetAuthorizations()
|
30
|
+
internal
|
31
|
+
virtual override
|
32
|
+
{
|
33
|
+
IAccess.FunctionInfo[] storage functions;
|
34
|
+
|
35
|
+
// authorize public role (open access to any account, only allows to lock target)
|
36
|
+
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
37
|
+
_authorize(functions, BasicDistribution.setFees.selector, "setFees");
|
38
|
+
_authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
|
39
|
+
_authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
|
40
|
+
_authorize(functions, BasicDistribution.updateDistributorType.selector, "updateDistributorType");
|
41
|
+
_authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
|
42
|
+
|
43
|
+
_authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
|
44
|
+
_authorize(functions, Distribution.withdrawCommission.selector, "withdrawCommission");
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
@@ -1,23 +1,19 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
|
6
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
5
7
|
import {IDistributionService} from "./IDistributionService.sol";
|
6
|
-
import {IProductService} from "../product/IProductService.sol";
|
7
8
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
8
9
|
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
9
|
-
import {Fee
|
10
|
+
import {Fee} from "../type/Fee.sol";
|
10
11
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
11
12
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
-
import {IDistribution} from "../instance/module/IDistribution.sol";
|
13
13
|
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
14
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
15
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
17
14
|
import {UFixed} from "../type/UFixed.sol";
|
18
15
|
import {DistributorType} from "../type/DistributorType.sol";
|
19
|
-
import {Timestamp
|
20
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
16
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
21
17
|
|
22
18
|
|
23
19
|
abstract contract Distribution is
|
@@ -33,54 +29,149 @@ abstract contract Distribution is
|
|
33
29
|
mapping(address distributor => NftId distributorNftId) _distributorNftId;
|
34
30
|
}
|
35
31
|
|
36
|
-
|
32
|
+
modifier onlyDistributor() {
|
33
|
+
if (!isDistributor(msg.sender)) {
|
34
|
+
revert ErrorDistributionNotDistributor(msg.sender);
|
35
|
+
}
|
36
|
+
_;
|
37
|
+
}
|
38
|
+
|
39
|
+
|
40
|
+
function isDistributor(address candidate)
|
41
|
+
public
|
42
|
+
view
|
43
|
+
returns (bool)
|
44
|
+
{
|
45
|
+
DistributionStorage storage $ = _getDistributionStorage();
|
46
|
+
return $._distributorNftId[candidate].gtz();
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
function getDistributorNftId(address distributor)
|
51
|
+
public
|
52
|
+
view
|
53
|
+
returns (NftId distributorNftId)
|
54
|
+
{
|
55
|
+
DistributionStorage storage $ = _getDistributionStorage();
|
56
|
+
return $._distributorNftId[distributor];
|
57
|
+
}
|
37
58
|
|
38
|
-
|
59
|
+
|
60
|
+
function getDiscountPercentage(string memory referralCode)
|
61
|
+
external
|
62
|
+
view
|
63
|
+
returns (
|
64
|
+
UFixed discountPercentage,
|
65
|
+
ReferralStatus status
|
66
|
+
)
|
67
|
+
{
|
68
|
+
ReferralId referralId = getReferralId(referralCode);
|
69
|
+
return _getInstanceReader().getDiscountPercentage(referralId);
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
function getReferralId(
|
74
|
+
string memory referralCode
|
75
|
+
)
|
76
|
+
public
|
77
|
+
view
|
78
|
+
returns (ReferralId referralId)
|
79
|
+
{
|
80
|
+
return ReferralLib.toReferralId(
|
81
|
+
getNftId(),
|
82
|
+
referralCode);
|
83
|
+
}
|
84
|
+
|
85
|
+
|
86
|
+
function calculateRenewalFeeAmount(
|
87
|
+
ReferralId referralId,
|
88
|
+
uint256 netPremiumAmount
|
89
|
+
)
|
90
|
+
external
|
91
|
+
view
|
92
|
+
virtual override
|
93
|
+
returns (uint256 feeAmount)
|
94
|
+
{
|
95
|
+
// default is no fees
|
96
|
+
return 0 * netPremiumAmount;
|
97
|
+
}
|
98
|
+
|
99
|
+
|
100
|
+
function processRenewal(
|
101
|
+
ReferralId referralId,
|
102
|
+
uint256 feeAmount
|
103
|
+
)
|
104
|
+
external
|
105
|
+
virtual
|
106
|
+
restricted()
|
107
|
+
{
|
108
|
+
// default is no action
|
109
|
+
}
|
110
|
+
|
111
|
+
/// @dev Returns true iff the component needs to be called when selling/renewing policis
|
112
|
+
function isVerifying() external pure returns (bool verifying) {
|
113
|
+
return true;
|
114
|
+
}
|
115
|
+
|
116
|
+
/// @inheritdoc IDistributionComponent
|
117
|
+
function withdrawCommission(NftId distributorNftId, Amount amount)
|
118
|
+
external
|
119
|
+
virtual
|
120
|
+
restricted()
|
121
|
+
onlyDistributor()
|
122
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
123
|
+
onlyNftOwner(distributorNftId)
|
124
|
+
returns (Amount withdrawnAmount)
|
125
|
+
{
|
126
|
+
return _withdrawCommission(distributorNftId, amount);
|
127
|
+
}
|
128
|
+
|
129
|
+
function _initializeDistribution(
|
39
130
|
address registry,
|
40
|
-
NftId
|
131
|
+
NftId productNftId,
|
132
|
+
IAuthorization authorization,
|
41
133
|
address initialOwner,
|
42
134
|
string memory name,
|
43
135
|
address token,
|
44
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
45
136
|
bytes memory componentData // component specifidc data
|
46
137
|
)
|
47
|
-
|
138
|
+
internal
|
48
139
|
virtual
|
49
140
|
onlyInitializing()
|
50
141
|
{
|
51
|
-
|
142
|
+
_initializeInstanceLinkedComponent(
|
143
|
+
registry,
|
144
|
+
productNftId,
|
145
|
+
name,
|
146
|
+
token,
|
147
|
+
DISTRIBUTION(),
|
148
|
+
authorization,
|
149
|
+
true,
|
150
|
+
initialOwner,
|
151
|
+
componentData);
|
52
152
|
|
53
153
|
DistributionStorage storage $ = _getDistributionStorage();
|
54
154
|
$._distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
55
155
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
56
156
|
|
57
|
-
|
58
|
-
}
|
59
|
-
|
60
|
-
function register()
|
61
|
-
external
|
62
|
-
virtual
|
63
|
-
onlyOwner()
|
64
|
-
{
|
65
|
-
_getDistributionStorage()._componentService.registerDistribution();
|
157
|
+
_registerInterface(type(IDistributionComponent).interfaceId);
|
66
158
|
}
|
67
159
|
|
68
|
-
|
160
|
+
/// @dev Sets the distribution fees to the provided values.
|
161
|
+
function _setFees(
|
69
162
|
Fee memory distributionFee,
|
70
163
|
Fee memory minDistributionOwnerFee
|
71
164
|
)
|
72
|
-
|
73
|
-
|
74
|
-
onlyOwner()
|
75
|
-
restricted()
|
165
|
+
internal
|
166
|
+
virtual
|
76
167
|
{
|
77
168
|
_getDistributionStorage()._componentService.setDistributionFees(
|
78
169
|
distributionFee,
|
79
170
|
minDistributionOwnerFee);
|
80
171
|
}
|
81
172
|
|
82
|
-
|
83
|
-
function
|
173
|
+
/// @dev Creates a new distributor type using the provided parameters.
|
174
|
+
function _createDistributorType(
|
84
175
|
string memory name,
|
85
176
|
UFixed minDiscountPercentage,
|
86
177
|
UFixed maxDiscountPercentage,
|
@@ -91,7 +182,8 @@ abstract contract Distribution is
|
|
91
182
|
bool allowRenewals,
|
92
183
|
bytes memory data
|
93
184
|
)
|
94
|
-
|
185
|
+
internal
|
186
|
+
virtual
|
95
187
|
returns (DistributorType distributorType)
|
96
188
|
{
|
97
189
|
DistributionStorage storage $ = _getDistributionStorage();
|
@@ -107,12 +199,14 @@ abstract contract Distribution is
|
|
107
199
|
data);
|
108
200
|
}
|
109
201
|
|
110
|
-
|
202
|
+
/// @dev Turns the provided account into a new distributor of the specified type.
|
203
|
+
function _createDistributor(
|
111
204
|
address distributor,
|
112
205
|
DistributorType distributorType,
|
113
206
|
bytes memory data
|
114
207
|
)
|
115
|
-
|
208
|
+
internal
|
209
|
+
virtual
|
116
210
|
returns(NftId distributorNftId)
|
117
211
|
{
|
118
212
|
DistributionStorage storage $ = _getDistributionStorage();
|
@@ -128,14 +222,14 @@ abstract contract Distribution is
|
|
128
222
|
$._distributorNftId[distributor] = distributorNftId;
|
129
223
|
}
|
130
224
|
|
131
|
-
|
225
|
+
/// @dev Uptates the distributor type for the specified distributor.
|
226
|
+
function _updateDistributorType(
|
132
227
|
NftId distributorNftId,
|
133
228
|
DistributorType distributorType,
|
134
229
|
bytes memory data
|
135
230
|
)
|
136
|
-
|
137
|
-
|
138
|
-
// and add it
|
231
|
+
internal
|
232
|
+
virtual
|
139
233
|
{
|
140
234
|
DistributionStorage storage $ = _getDistributionStorage();
|
141
235
|
// TODO re-enable once implemented
|
@@ -145,10 +239,7 @@ abstract contract Distribution is
|
|
145
239
|
// data);
|
146
240
|
}
|
147
241
|
|
148
|
-
|
149
|
-
* @dev lets distributors create referral codes.
|
150
|
-
* referral codes need to be unique
|
151
|
-
*/
|
242
|
+
/// @dev Create a new referral code for the provided distributor.
|
152
243
|
function _createReferral(
|
153
244
|
NftId distributorNftId,
|
154
245
|
string memory code,
|
@@ -158,6 +249,7 @@ abstract contract Distribution is
|
|
158
249
|
bytes memory data
|
159
250
|
)
|
160
251
|
internal
|
252
|
+
virtual
|
161
253
|
returns (ReferralId referralId)
|
162
254
|
{
|
163
255
|
DistributionStorage storage $ = _getDistributionStorage();
|
@@ -170,88 +262,20 @@ abstract contract Distribution is
|
|
170
262
|
data);
|
171
263
|
}
|
172
264
|
|
173
|
-
function
|
174
|
-
|
175
|
-
|
176
|
-
returns (bool)
|
177
|
-
{
|
178
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
179
|
-
return $._distributorNftId[candidate].gtz();
|
180
|
-
}
|
181
|
-
|
182
|
-
function getDistributorNftId(address distributor)
|
183
|
-
public
|
184
|
-
view
|
185
|
-
returns (NftId distributorNftId)
|
186
|
-
{
|
187
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
188
|
-
return $._distributorNftId[distributor];
|
189
|
-
}
|
190
|
-
|
191
|
-
function getDiscountPercentage(string memory referralCode)
|
192
|
-
external
|
193
|
-
view
|
194
|
-
returns (
|
195
|
-
UFixed discountPercentage,
|
196
|
-
ReferralStatus status
|
197
|
-
)
|
198
|
-
{
|
199
|
-
ReferralId referralId = getReferralId(referralCode);
|
200
|
-
return _getInstanceReader().getDiscountPercentage(referralId);
|
201
|
-
}
|
202
|
-
|
203
|
-
|
204
|
-
function getReferralId(
|
205
|
-
string memory referralCode
|
206
|
-
)
|
207
|
-
public
|
208
|
-
view
|
209
|
-
returns (ReferralId referralId)
|
210
|
-
{
|
211
|
-
return ReferralLib.toReferralId(
|
212
|
-
getNftId(),
|
213
|
-
referralCode);
|
214
|
-
}
|
215
|
-
|
216
|
-
function calculateRenewalFeeAmount(
|
217
|
-
ReferralId referralId,
|
218
|
-
uint256 netPremiumAmount
|
219
|
-
)
|
220
|
-
external
|
221
|
-
view
|
222
|
-
virtual override
|
223
|
-
returns (uint256 feeAmount)
|
224
|
-
{
|
225
|
-
// default is no fees
|
226
|
-
return 0 * netPremiumAmount;
|
227
|
-
}
|
228
|
-
|
229
|
-
function processRenewal(
|
230
|
-
ReferralId referralId,
|
231
|
-
uint256 feeAmount
|
232
|
-
)
|
233
|
-
external
|
234
|
-
onlyOwner
|
235
|
-
restricted()
|
236
|
-
virtual override
|
265
|
+
function _withdrawCommission(NftId distributorNftId, Amount amount)
|
266
|
+
internal
|
267
|
+
returns (Amount withdrawnAmount)
|
237
268
|
{
|
238
|
-
|
269
|
+
return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
|
239
270
|
}
|
240
271
|
|
241
|
-
|
242
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId) internal virtual override {
|
272
|
+
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator) internal virtual override {
|
243
273
|
// keep track of distributor nft owner
|
244
|
-
emit LogDistributorUpdated(to,
|
274
|
+
emit LogDistributorUpdated(to, operator);
|
245
275
|
DistributionStorage storage $ = _getDistributionStorage();
|
246
276
|
$._distributorNftId[from] = NftIdLib.zero();
|
247
277
|
$._distributorNftId[to] = NftIdLib.toNftId(tokenId);
|
248
278
|
}
|
249
|
-
|
250
|
-
|
251
|
-
/// @dev returns true iff the component needs to be called when selling/renewing policis
|
252
|
-
function isVerifying() external pure returns (bool verifying) {
|
253
|
-
return true;
|
254
|
-
}
|
255
279
|
|
256
280
|
function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
|
257
281
|
assembly {
|