@etherisc/gif-next 0.0.2-92c50c2-136 → 0.0.2-9306579-093
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 +32 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -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 +358 -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 +94 -270
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1363 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -447
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +260 -233
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +109 -157
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -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 +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 +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 +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +28 -178
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1186 -271
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +489 -147
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +57 -224
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -105
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +245 -235
- 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 +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 +1000 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -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 +58 -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 +55 -309
- 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 +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1297 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +458 -161
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +154 -86
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +229 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +79 -275
- 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 +79 -561
- 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 +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1119 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- 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 +75 -99
- 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 +75 -395
- 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 +265 -42
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +483 -99
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +337 -380
- 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 +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
- 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 +247 -185
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -107
- 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 +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +47 -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 +47 -269
- 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 +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- 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 +92 -87
- 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 +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 +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 +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 +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 +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/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 +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 +586 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- 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 +158 -325
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +221 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -55
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -111
- package/contracts/distribution/DistributionService.sol +86 -47
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +23 -3
- 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 +412 -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/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -38
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +68 -102
- package/contracts/instance/InstanceAdmin.sol +224 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +137 -34
- package/contracts/instance/InstanceService.sol +115 -89
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +17 -2
- package/contracts/instance/base/ObjectLifecycle.sol +9 -4
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +4 -8
- 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 +48 -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/Oracle.sol +73 -51
- package/contracts/oracle/OracleService.sol +11 -8
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +221 -56
- 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 +57 -36
- package/contracts/pool/Pool.sol +192 -138
- package/contracts/pool/PoolService.sol +241 -130
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +62 -65
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +254 -115
- 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 +7 -7
- package/contracts/product/IProductComponent.sol +20 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +404 -193
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +46 -46
- package/contracts/product/PricingServiceManager.sol +5 -8
- package/contracts/product/Product.sol +170 -115
- package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +65 -19
- package/contracts/registry/IRegistryService.sol +0 -9
- package/contracts/registry/Registry.sol +340 -215
- package/contracts/registry/RegistryAdmin.sol +260 -131
- package/contracts/registry/RegistryService.sol +59 -66
- package/contracts/registry/RegistryServiceManager.sol +4 -4
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +107 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +20 -22
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +38 -43
- package/contracts/shared/ComponentService.sol +103 -82
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +3 -4
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +7 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +52 -25
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- 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 +19 -15
- 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 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +27 -42
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +23 -20
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +12 -22
- 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 -82
- 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 +38 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +3 -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 -1177
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- 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/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- 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/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/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- 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
@@ -2,19 +2,17 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
ALL, REGISTRY,
|
5
|
+
ALL, REGISTRY, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
|
-
import {
|
9
|
-
import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
|
8
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
10
9
|
import {IBundleService} from "../pool/IBundleService.sol";
|
11
10
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
12
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
13
11
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
14
12
|
import {IPoolService} from "../pool/IPoolService.sol";
|
15
13
|
import {IStakingService} from "../staking/IStakingService.sol";
|
16
14
|
import {IRegistryService} from "./IRegistryService.sol";
|
17
|
-
import {ServiceAuthorization} from "
|
15
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
18
16
|
|
19
17
|
|
20
18
|
contract ServiceAuthorizationV3
|
@@ -39,9 +37,9 @@ contract ServiceAuthorizationV3
|
|
39
37
|
_authorizeDomain(POOL(), address(8));
|
40
38
|
_authorizeDomain(ORACLE(), address(9));
|
41
39
|
_authorizeDomain(PRODUCT(), address(10));
|
42
|
-
_authorizeDomain(
|
43
|
-
_authorizeDomain(
|
44
|
-
_authorizeDomain(
|
40
|
+
_authorizeDomain(POLICY(), address(11));
|
41
|
+
_authorizeDomain(CLAIM(), address(12));
|
42
|
+
_authorizeDomain(APPLICATION(), address(13));
|
45
43
|
}
|
46
44
|
|
47
45
|
|
@@ -64,19 +62,19 @@ contract ServiceAuthorizationV3
|
|
64
62
|
function _setupIRegistryServiceAuthorization()
|
65
63
|
internal
|
66
64
|
{
|
67
|
-
|
65
|
+
IAccess.FunctionInfo[] storage functions;
|
68
66
|
|
69
67
|
functions = _authorizeForService(REGISTRY(), APPLICATION());
|
70
68
|
_authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
|
71
69
|
|
72
|
-
functions = _authorizeForService(REGISTRY(), POOL());
|
73
|
-
_authorize(functions, IRegistryService.registerPool.selector, "registerPool");
|
70
|
+
// functions = _authorizeForService(REGISTRY(), POOL());
|
71
|
+
// _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
|
74
72
|
|
75
73
|
functions = _authorizeForService(REGISTRY(), BUNDLE());
|
76
74
|
_authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
|
77
75
|
|
78
76
|
functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
|
79
|
-
_authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
|
77
|
+
// _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
|
80
78
|
_authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
|
81
79
|
|
82
80
|
functions = _authorizeForService(REGISTRY(), COMPONENT());
|
@@ -88,8 +86,8 @@ contract ServiceAuthorizationV3
|
|
88
86
|
functions = _authorizeForService(REGISTRY(), STAKING());
|
89
87
|
_authorize(functions, IRegistryService.registerStake.selector, "registerStake");
|
90
88
|
|
91
|
-
functions = _authorizeForService(REGISTRY(), PRODUCT());
|
92
|
-
_authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
89
|
+
// functions = _authorizeForService(REGISTRY(), PRODUCT());
|
90
|
+
// _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
93
91
|
}
|
94
92
|
|
95
93
|
|
@@ -98,7 +96,7 @@ contract ServiceAuthorizationV3
|
|
98
96
|
function _setupStakingServiceAuthorization()
|
99
97
|
internal
|
100
98
|
{
|
101
|
-
|
99
|
+
IAccess.FunctionInfo[] storage functions;
|
102
100
|
|
103
101
|
functions = _authorizeForService(STAKING(), INSTANCE());
|
104
102
|
_authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
|
@@ -121,10 +119,10 @@ contract ServiceAuthorizationV3
|
|
121
119
|
function _setupInstanceServiceAuthorization()
|
122
120
|
internal
|
123
121
|
{
|
124
|
-
|
122
|
+
IAccess.FunctionInfo[] storage functions;
|
125
123
|
|
126
124
|
functions = _authorizeForService(INSTANCE(), COMPONENT());
|
127
|
-
_authorize(functions, IInstanceService.
|
125
|
+
_authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
128
126
|
}
|
129
127
|
|
130
128
|
|
@@ -159,10 +157,11 @@ contract ServiceAuthorizationV3
|
|
159
157
|
function _setupDistributionServiceAuthorization()
|
160
158
|
internal
|
161
159
|
{
|
162
|
-
|
160
|
+
IAccess.FunctionInfo[] storage functions;
|
163
161
|
|
164
162
|
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
165
163
|
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
164
|
+
_authorize(functions, IDistributionService.processReferral.selector, "processReferral");
|
166
165
|
}
|
167
166
|
|
168
167
|
|
@@ -170,16 +169,15 @@ contract ServiceAuthorizationV3
|
|
170
169
|
function _setupPoolServiceAuthorization()
|
171
170
|
internal
|
172
171
|
{
|
173
|
-
|
172
|
+
IAccess.FunctionInfo[] storage functions;
|
174
173
|
|
175
174
|
functions = _authorizeForService(POOL(), POLICY());
|
176
175
|
_authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
|
177
176
|
_authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
|
178
|
-
_authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
|
179
177
|
_authorize(functions, IPoolService.processSale.selector, "processSale");
|
180
178
|
|
181
179
|
functions = _authorizeForService(POOL(), CLAIM());
|
182
|
-
_authorize(functions, IPoolService.
|
180
|
+
_authorize(functions, IPoolService.processPayout.selector, "processPayout");
|
183
181
|
}
|
184
182
|
|
185
183
|
|
@@ -187,7 +185,7 @@ contract ServiceAuthorizationV3
|
|
187
185
|
function _setupBundleServiceAuthorization()
|
188
186
|
internal
|
189
187
|
{
|
190
|
-
|
188
|
+
IAccess.FunctionInfo[] storage functions;
|
191
189
|
|
192
190
|
functions = _authorizeForService(BUNDLE(), POOL());
|
193
191
|
_authorize(functions, IBundleService.create.selector, "create");
|
@@ -12,7 +12,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
12
12
|
|
13
13
|
import {IRegistry} from "./IRegistry.sol";
|
14
14
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
15
|
-
import {
|
15
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
16
16
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
17
17
|
|
18
18
|
|
@@ -49,7 +49,7 @@ contract TokenRegistry is
|
|
49
49
|
TokenInfo [] internal _token;
|
50
50
|
|
51
51
|
IRegistry internal _registry;
|
52
|
-
|
52
|
+
ReleaseRegistry internal _releaseRegistry;
|
53
53
|
IERC20Metadata internal _dipToken;
|
54
54
|
|
55
55
|
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
@@ -6,7 +6,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
7
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
8
|
|
9
|
-
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
10
|
import {IComponent} from "./IComponent.sol";
|
11
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
12
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
@@ -26,7 +26,6 @@ abstract contract Component is
|
|
26
26
|
struct ComponentStorage {
|
27
27
|
string _name; // unique (per instance) component name
|
28
28
|
IERC20Metadata _token; // token for this component
|
29
|
-
TokenHandler _tokenHandler;
|
30
29
|
address _wallet;
|
31
30
|
bool _isInterceptor;
|
32
31
|
bytes _data;
|
@@ -40,6 +39,20 @@ abstract contract Component is
|
|
40
39
|
_;
|
41
40
|
}
|
42
41
|
|
42
|
+
modifier onlyNftOwner(NftId nftId) {
|
43
|
+
if(msg.sender != getRegistry().ownerOf(nftId)) {
|
44
|
+
revert ErrorNftOwnableNotOwner(msg.sender);
|
45
|
+
}
|
46
|
+
_;
|
47
|
+
}
|
48
|
+
|
49
|
+
modifier onlyNftObjectType(NftId nftId, ObjectType expectedObjectType) {
|
50
|
+
ObjectType objectType = getRegistry().getObjectInfo(nftId).objectType;
|
51
|
+
if(!objectType.eq(expectedObjectType)) {
|
52
|
+
revert ErrorNftNotObjectType(nftId, objectType, expectedObjectType);
|
53
|
+
}
|
54
|
+
_;
|
55
|
+
}
|
43
56
|
|
44
57
|
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
45
58
|
assembly {
|
@@ -47,7 +60,7 @@ abstract contract Component is
|
|
47
60
|
}
|
48
61
|
}
|
49
62
|
|
50
|
-
function
|
63
|
+
function _initializeComponent(
|
51
64
|
address authority,
|
52
65
|
address registry,
|
53
66
|
NftId parentNftId,
|
@@ -59,11 +72,11 @@ abstract contract Component is
|
|
59
72
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
60
73
|
bytes memory componentData // other component specific data
|
61
74
|
)
|
62
|
-
|
75
|
+
internal
|
63
76
|
virtual
|
64
77
|
onlyInitializing()
|
65
78
|
{
|
66
|
-
|
79
|
+
_initializeRegisterable(registry, parentNftId, componentType, isInterceptor, initialOwner, registryData);
|
67
80
|
__AccessManaged_init(authority);
|
68
81
|
|
69
82
|
if (token == address(0)) {
|
@@ -78,13 +91,12 @@ abstract contract Component is
|
|
78
91
|
ComponentStorage storage $ = _getComponentStorage();
|
79
92
|
$._name = name;
|
80
93
|
$._token = IERC20Metadata(token);
|
81
|
-
$._tokenHandler = TokenHandler(address(0));
|
82
94
|
$._wallet = address(this);
|
83
95
|
$._isInterceptor = isInterceptor;
|
84
96
|
$._data = componentData;
|
85
97
|
|
86
|
-
|
87
|
-
|
98
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
99
|
+
_registerInterface(type(IComponent).interfaceId);
|
88
100
|
}
|
89
101
|
|
90
102
|
|
@@ -105,11 +117,11 @@ abstract contract Component is
|
|
105
117
|
revert ErrorComponentWalletNotComponent();
|
106
118
|
}
|
107
119
|
|
120
|
+
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
|
121
|
+
|
108
122
|
IERC20Metadata(token).approve(
|
109
123
|
address(getTokenHandler()),
|
110
124
|
spendingLimitAmount.toInt());
|
111
|
-
|
112
|
-
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
|
113
125
|
}
|
114
126
|
|
115
127
|
function setWallet(address newWallet)
|
@@ -120,34 +132,22 @@ abstract contract Component is
|
|
120
132
|
{
|
121
133
|
// checks
|
122
134
|
address currentWallet = getWallet();
|
123
|
-
|
124
|
-
uint256 currentBalance = token.balanceOf(currentWallet);
|
125
|
-
|
126
|
-
if (currentBalance > 0) {
|
127
|
-
if (currentWallet == address(this)) {
|
128
|
-
// move tokens from component smart contract to external wallet
|
129
|
-
} else {
|
130
|
-
// move tokens from external wallet to component smart contract or another external wallet
|
131
|
-
uint256 allowance = token.allowance(currentWallet, address(this));
|
132
|
-
if (allowance < currentBalance) {
|
133
|
-
revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
135
|
+
uint256 currentBalance = getToken().balanceOf(currentWallet);
|
137
136
|
|
138
137
|
// effects
|
139
138
|
_setWallet(newWallet);
|
140
139
|
|
141
140
|
// interactions
|
142
141
|
if (currentBalance > 0) {
|
143
|
-
//
|
142
|
+
// move tokens from old to new wallet
|
143
|
+
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
144
|
+
|
144
145
|
if (currentWallet == address(this)) {
|
145
|
-
//
|
146
|
-
|
146
|
+
// transfer from the component requires an allowance
|
147
|
+
getTokenHandler().distributeTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
|
148
|
+
} else {
|
149
|
+
getTokenHandler().collectTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
|
147
150
|
}
|
148
|
-
|
149
|
-
SafeERC20.safeTransferFrom(token, currentWallet, newWallet, currentBalance);
|
150
|
-
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
151
151
|
}
|
152
152
|
}
|
153
153
|
|
@@ -214,7 +214,7 @@ abstract contract Component is
|
|
214
214
|
|
215
215
|
|
216
216
|
function isRegistered() public virtual view returns (bool) {
|
217
|
-
return getRegistry().
|
217
|
+
return getRegistry().getNftIdForAddress(address(this)).gtz();
|
218
218
|
}
|
219
219
|
|
220
220
|
|
@@ -253,29 +253,24 @@ abstract contract Component is
|
|
253
253
|
}
|
254
254
|
|
255
255
|
|
256
|
-
/// @dev for component contracts that hold its own component information
|
257
|
-
/// this function creates and sets a token hanlder for the components tokens
|
258
|
-
function _createAndSetTokenHandler()
|
259
|
-
internal
|
260
|
-
{
|
261
|
-
ComponentStorage storage $ = _getComponentStorage();
|
262
|
-
$._tokenHandler = new TokenHandler(address($._token));
|
263
|
-
}
|
264
|
-
|
265
|
-
|
266
256
|
/// @dev depending on the source of the component information this function needs to be overwritten.
|
267
257
|
/// eg for instance linked components that externally store this information with the instance store contract
|
268
258
|
function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
|
269
259
|
ComponentStorage storage $ = _getComponentStorage();
|
270
|
-
|
260
|
+
|
271
261
|
return IComponents.ComponentInfo({
|
272
262
|
name: $._name,
|
273
263
|
productNftId: NftIdLib.zero(),
|
274
264
|
token: $._token,
|
275
|
-
tokenHandler:
|
265
|
+
tokenHandler: TokenHandler(address(0)),
|
276
266
|
wallet: $._wallet, // initial wallet address
|
277
267
|
data: $._data // user specific component data
|
278
268
|
});
|
279
269
|
}
|
280
270
|
|
271
|
+
function _approveTokenHandler(uint256 amount) internal {
|
272
|
+
ComponentStorage storage $ = _getComponentStorage();
|
273
|
+
$._token.approve(address(getComponentInfo().tokenHandler), amount);
|
274
|
+
}
|
275
|
+
|
281
276
|
}
|
@@ -4,30 +4,27 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
5
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
6
6
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
7
|
-
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
|
-
import {IInstance} from "../instance/IInstance.sol";
|
11
|
-
import {IAccess} from "../instance/module/IAccess.sol";
|
12
|
-
import {NftId} from "../type/NftId.sol";
|
13
|
-
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
14
|
-
import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, POLICY_SERVICE_ROLE, PRODUCT_SERVICE_ROLE} from "../type/RoleId.sol";
|
15
|
-
import {KEEP_STATE} from "../type/StateId.sol";
|
16
7
|
import {IComponents} from "../instance/module/IComponents.sol";
|
17
8
|
import {IComponentService} from "./IComponentService.sol";
|
18
|
-
import {
|
9
|
+
import {IInstance} from "../instance/IInstance.sol";
|
10
|
+
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
11
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
12
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
19
13
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
20
14
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
21
15
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
22
|
-
import {
|
23
|
-
import {
|
24
|
-
import {
|
16
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
17
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
18
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
19
|
+
import {NftId} from "../type/NftId.sol";
|
20
|
+
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
21
|
+
import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
22
|
+
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
25
23
|
|
26
24
|
contract ComponentService is
|
27
25
|
ComponentVerifyingService,
|
28
26
|
IComponentService
|
29
27
|
{
|
30
|
-
|
31
28
|
error ErrorComponentServiceAlreadyRegistered(address component);
|
32
29
|
error ErrorComponentServiceNotComponent(address component);
|
33
30
|
error ErrorComponentServiceInvalidType(address component, ObjectType requiredType, ObjectType componentType);
|
@@ -51,17 +48,17 @@ contract ComponentService is
|
|
51
48
|
virtual override
|
52
49
|
initializer()
|
53
50
|
{
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
(
|
52
|
+
address registryAddress,
|
53
|
+
address authority
|
54
|
+
) = abi.decode(data, (address, address));
|
58
55
|
|
59
|
-
|
56
|
+
_initializeService(registryAddress, authority, owner);
|
60
57
|
|
61
58
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
62
59
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
63
60
|
|
64
|
-
|
61
|
+
_registerInterface(type(IComponentService).interfaceId);
|
65
62
|
}
|
66
63
|
|
67
64
|
//-------- component ----------------------------------------------------//
|
@@ -94,6 +91,37 @@ contract ComponentService is
|
|
94
91
|
// TODO implement
|
95
92
|
function unlock() external virtual {}
|
96
93
|
|
94
|
+
function withdrawFees(Amount amount)
|
95
|
+
external
|
96
|
+
virtual
|
97
|
+
returns (Amount withdrawnAmount)
|
98
|
+
{
|
99
|
+
(NftId componentNftId,, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
100
|
+
IComponents.ComponentInfo memory info = instance.getInstanceReader().getComponentInfo(componentNftId);
|
101
|
+
address componentWallet = info.wallet;
|
102
|
+
|
103
|
+
// determine withdrawn amount
|
104
|
+
withdrawnAmount = amount;
|
105
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
106
|
+
withdrawnAmount = instance.getInstanceReader().getFeeAmount(componentNftId);
|
107
|
+
} else if (withdrawnAmount.eqz()) {
|
108
|
+
revert ErrorComponentServiceWithdrawAmountIsZero();
|
109
|
+
} else {
|
110
|
+
Amount withdrawLimit = instance.getInstanceReader().getFeeAmount(componentNftId);
|
111
|
+
if (withdrawnAmount.gt(withdrawLimit)) {
|
112
|
+
revert ErrorComponentServiceWithdrawAmountExceedsLimit(withdrawnAmount, withdrawLimit);
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
// decrease fee counters by withdrawnAmount
|
117
|
+
_changeTargetBalance(DECREASE, instance.getInstanceStore(), componentNftId, AmountLib.zero(), withdrawnAmount);
|
118
|
+
|
119
|
+
// transfer amount to component owner
|
120
|
+
address componentOwner = getRegistry().ownerOf(componentNftId);
|
121
|
+
emit LogComponentServiceComponentFeesWithdrawn(componentNftId, componentOwner, address(info.token), withdrawnAmount);
|
122
|
+
info.tokenHandler.distributeTokens(componentWallet, componentOwner, withdrawnAmount);
|
123
|
+
}
|
124
|
+
|
97
125
|
|
98
126
|
//-------- product ------------------------------------------------------//
|
99
127
|
|
@@ -102,12 +130,6 @@ contract ComponentService is
|
|
102
130
|
virtual
|
103
131
|
{
|
104
132
|
address contractAddress = msg.sender;
|
105
|
-
RoleId[] memory roles = new RoleId[](1);
|
106
|
-
bytes4[][] memory selectors = new bytes4[][](1);
|
107
|
-
|
108
|
-
// authorizaion for distribution owner
|
109
|
-
roles[0] = PRODUCT_OWNER_ROLE();
|
110
|
-
selectors[0] = _createSelectors(IProductComponent.setFees.selector);
|
111
133
|
|
112
134
|
// register/create component setup
|
113
135
|
(
|
@@ -117,10 +139,8 @@ contract ComponentService is
|
|
117
139
|
) = _register(
|
118
140
|
contractAddress,
|
119
141
|
PRODUCT(),
|
120
|
-
PRODUCT_OWNER_ROLE()
|
121
|
-
|
122
|
-
selectors);
|
123
|
-
|
142
|
+
PRODUCT_OWNER_ROLE());
|
143
|
+
|
124
144
|
// create product info
|
125
145
|
IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
|
126
146
|
instanceStore.createProduct(productNftId, productInfo);
|
@@ -193,24 +213,12 @@ contract ComponentService is
|
|
193
213
|
virtual
|
194
214
|
{
|
195
215
|
address contractAddress = msg.sender;
|
196
|
-
RoleId[] memory roles = new RoleId[](2);
|
197
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
198
|
-
|
199
|
-
// authorizaion for distribution owner
|
200
|
-
roles[0] = DISTRIBUTION_OWNER_ROLE();
|
201
|
-
selectors[0] = _createSelectors(IDistributionComponent.setFees.selector);
|
202
|
-
|
203
|
-
// authorizaion for product service
|
204
|
-
roles[1] = PRODUCT_SERVICE_ROLE();
|
205
|
-
selectors[1] = _createSelectors(IDistributionComponent.processRenewal.selector);
|
206
216
|
|
207
217
|
// register/create component info
|
208
218
|
_register(
|
209
219
|
contractAddress,
|
210
220
|
DISTRIBUTION(),
|
211
|
-
DISTRIBUTION_OWNER_ROLE()
|
212
|
-
roles,
|
213
|
-
selectors);
|
221
|
+
DISTRIBUTION_OWNER_ROLE());
|
214
222
|
}
|
215
223
|
|
216
224
|
|
@@ -275,6 +283,36 @@ contract ComponentService is
|
|
275
283
|
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
276
284
|
}
|
277
285
|
|
286
|
+
//-------- distributor -------------------------------------------------------//
|
287
|
+
|
288
|
+
function increaseDistributorBalance(
|
289
|
+
InstanceStore instanceStore,
|
290
|
+
NftId distributorNftId,
|
291
|
+
Amount amount,
|
292
|
+
Amount feeAmount
|
293
|
+
)
|
294
|
+
external
|
295
|
+
virtual
|
296
|
+
// TODO re-enable once role granting is stable and fixed
|
297
|
+
// restricted()
|
298
|
+
{
|
299
|
+
_changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
|
300
|
+
}
|
301
|
+
|
302
|
+
function decreaseDistributorBalance(
|
303
|
+
InstanceStore instanceStore,
|
304
|
+
NftId distributorNftId,
|
305
|
+
Amount amount,
|
306
|
+
Amount feeAmount
|
307
|
+
)
|
308
|
+
external
|
309
|
+
virtual
|
310
|
+
// TODO re-enable once role granting is stable and fixed
|
311
|
+
// restricted()
|
312
|
+
{
|
313
|
+
_changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
|
314
|
+
}
|
315
|
+
|
278
316
|
//-------- oracle -------------------------------------------------------//
|
279
317
|
|
280
318
|
function registerOracle()
|
@@ -282,8 +320,6 @@ contract ComponentService is
|
|
282
320
|
virtual
|
283
321
|
{
|
284
322
|
address contractAddress = msg.sender;
|
285
|
-
RoleId[] memory roles = new RoleId[](0);
|
286
|
-
bytes4[][] memory selectors = new bytes4[][](0);
|
287
323
|
|
288
324
|
// register/create component setup
|
289
325
|
(
|
@@ -293,9 +329,7 @@ contract ComponentService is
|
|
293
329
|
) = _register(
|
294
330
|
contractAddress,
|
295
331
|
ORACLE(),
|
296
|
-
ORACLE_OWNER_ROLE()
|
297
|
-
roles,
|
298
|
-
selectors);
|
332
|
+
ORACLE_OWNER_ROLE());
|
299
333
|
}
|
300
334
|
|
301
335
|
//-------- pool ---------------------------------------------------------//
|
@@ -305,16 +339,6 @@ contract ComponentService is
|
|
305
339
|
virtual
|
306
340
|
{
|
307
341
|
address contractAddress = msg.sender;
|
308
|
-
RoleId[] memory roles = new RoleId[](2);
|
309
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
310
|
-
|
311
|
-
// authorizaion for pool owner
|
312
|
-
roles[0] = POOL_OWNER_ROLE();
|
313
|
-
selectors[0] = _createSelectors(IPoolComponent.setFees.selector);
|
314
|
-
|
315
|
-
// authorizaion for product service
|
316
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
317
|
-
selectors[1] = _createSelectors(IPoolComponent.verifyApplication.selector);
|
318
342
|
|
319
343
|
// register/create component setup
|
320
344
|
(
|
@@ -324,14 +348,13 @@ contract ComponentService is
|
|
324
348
|
) = _register(
|
325
349
|
contractAddress,
|
326
350
|
POOL(),
|
327
|
-
POOL_OWNER_ROLE()
|
328
|
-
roles,
|
329
|
-
selectors);
|
351
|
+
POOL_OWNER_ROLE());
|
330
352
|
|
331
353
|
// create info
|
332
354
|
instanceStore.createPool(
|
333
355
|
componentNftId,
|
334
|
-
IPoolComponent(
|
356
|
+
IPoolComponent(
|
357
|
+
contractAddress).getInitialPoolInfo());
|
335
358
|
}
|
336
359
|
|
337
360
|
|
@@ -461,9 +484,7 @@ contract ComponentService is
|
|
461
484
|
function _register(
|
462
485
|
address componentAddress, // address of component to register
|
463
486
|
ObjectType requiredType, // required type for component for registration
|
464
|
-
RoleId requiredRole
|
465
|
-
RoleId[] memory roles, // roles with write access to component
|
466
|
-
bytes4[][] memory selectors // authorized functions per role with write access
|
487
|
+
RoleId requiredRole // role required for comonent owner for registration
|
467
488
|
)
|
468
489
|
internal
|
469
490
|
virtual
|
@@ -490,24 +511,25 @@ contract ComponentService is
|
|
490
511
|
|
491
512
|
component.linkToRegisteredNftId();
|
492
513
|
|
493
|
-
|
494
|
-
// TODO second part, may be done in different tx....
|
495
|
-
|
496
514
|
// save amended component info with instance
|
497
515
|
instanceReader = instance.getInstanceReader();
|
498
516
|
instanceStore = instance.getInstanceStore();
|
499
517
|
|
500
|
-
IComponents.ComponentInfo memory componentInfo = component.
|
501
|
-
componentInfo.tokenHandler =
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
518
|
+
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
519
|
+
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
520
|
+
address(componentInfo.token),
|
521
|
+
address(instance.getInstanceAdmin().authority()));
|
522
|
+
|
523
|
+
instanceStore.createComponent(
|
524
|
+
component.getNftId(),
|
525
|
+
componentInfo);
|
526
|
+
|
527
|
+
// setup initial component authorization
|
528
|
+
_instanceService.initializeAuthorization(
|
529
|
+
instance.getNftId(),
|
530
|
+
component);
|
531
|
+
|
532
|
+
// TODO add logging
|
511
533
|
}
|
512
534
|
|
513
535
|
|
@@ -600,7 +622,7 @@ contract ComponentService is
|
|
600
622
|
}
|
601
623
|
|
602
624
|
// check component has not already been registered
|
603
|
-
if (getRegistry().
|
625
|
+
if (getRegistry().getNftIdForAddress(componentAddress).gtz()) {
|
604
626
|
revert ErrorComponentServiceAlreadyRegistered(componentAddress);
|
605
627
|
}
|
606
628
|
|
@@ -608,8 +630,7 @@ contract ComponentService is
|
|
608
630
|
instance = _getInstance(info.parentNftId);
|
609
631
|
owner = info.initialOwner;
|
610
632
|
|
611
|
-
(
|
612
|
-
if(!hasRole) {
|
633
|
+
if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
|
613
634
|
revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
|
614
635
|
}
|
615
636
|
}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "./IVersionable.sol";
|
5
|
-
import {ProxyManager} from "./ProxyManager.sol";
|
6
4
|
import {ComponentService} from "./ComponentService.sol";
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
7
|
|
8
8
|
contract ComponentServiceManager is ProxyManager {
|
9
9
|
|
@@ -11,15 +11,18 @@ contract ComponentServiceManager is ProxyManager {
|
|
11
11
|
|
12
12
|
/// @dev initializes proxy manager with service implementation
|
13
13
|
constructor(
|
14
|
-
address
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
15
17
|
)
|
16
|
-
ProxyManager(registryAddress)
|
17
18
|
{
|
18
19
|
ComponentService svc = new ComponentService();
|
19
|
-
bytes memory data = abi.encode(
|
20
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
21
23
|
address(svc),
|
22
|
-
data
|
24
|
+
data,
|
25
|
+
salt);
|
23
26
|
|
24
27
|
_componentService = ComponentService(address(versionable));
|
25
28
|
}
|