@etherisc/gif-next 0.0.2-dfb8aa3-070 → 0.0.2-e016345-525
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +944 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +711 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +53 -163
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +6 -68
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +121 -82
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -48
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +6 -50
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +23 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +50 -147
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +105 -186
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +79 -121
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +31 -117
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +168 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +403 -205
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -18
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +24 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +96 -29
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +103 -72
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +303 -75
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +71 -48
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +36 -46
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +20 -130
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +6 -50
- 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 +6 -68
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +84 -60
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +66 -22
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +6 -83
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -206
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +58 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -57
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +6 -89
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +77 -75
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +6 -107
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +153 -159
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -33
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +58 -23
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +11 -68
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -66
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -47
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +38 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -50
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +132 -121
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +70 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +50 -34
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +56 -32
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +11 -68
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +34 -18
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +40 -16
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +24 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +62 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +107 -94
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +32 -16
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +39 -15
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +12 -12
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +6 -54
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +216 -410
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +65 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +402 -6
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +6 -36
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +107 -245
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +6 -50
- 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/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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +6 -68
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +24 -72
- 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 +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +80 -152
- 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 +50 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +36 -20
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +43 -19
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +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 +43 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +244 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +42 -0
- package/contracts/authorization/AccessAdmin.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +28 -26
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +29 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +22 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +7 -2
- package/contracts/instance/IInstanceService.sol +7 -9
- package/contracts/instance/Instance.sol +16 -9
- package/contracts/instance/InstanceAdmin.sol +20 -12
- package/contracts/instance/InstanceAuthorizationV3.sol +42 -14
- package/contracts/instance/InstanceReader.sol +86 -2
- package/contracts/instance/InstanceService.sol +38 -58
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +1 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/OracleService.sol +87 -69
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +23 -91
- package/contracts/pool/IBundleService.sol +2 -23
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +167 -96
- package/contracts/product/ApplicationService.sol +12 -12
- package/contracts/product/BasicProduct.sol +7 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +3 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/PolicyService.sol +241 -196
- package/contracts/product/Product.sol +12 -40
- package/contracts/product/RiskService.sol +14 -3
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/Registry.sol +9 -1
- package/contracts/registry/RegistryAdmin.sol +21 -12
- package/contracts/registry/ReleaseRegistry.sol +2 -18
- package/contracts/registry/ServiceAuthorizationV3.sol +22 -41
- package/contracts/shared/Component.sol +44 -90
- package/contracts/shared/ComponentService.sol +160 -212
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +196 -10
- package/contracts/shared/IComponent.sol +1 -13
- package/contracts/shared/IComponentService.sol +20 -24
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/Registerable.sol +0 -2
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +39 -21
- package/contracts/staking/StakingService.sol +41 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +10 -0
- package/contracts/type/RiskId.sol +18 -6
- package/package.json +3 -3
@@ -4,9 +4,10 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
-
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
8
7
|
import {ContractLib} from "../shared/ContractLib.sol";
|
9
8
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
9
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
10
|
+
import {IComponent} from "../shared/IComponent.sol";
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
12
|
import {IComponentService} from "./IComponentService.sol";
|
12
13
|
import {IInstance} from "../instance/IInstance.sol";
|
@@ -15,32 +16,56 @@ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
|
15
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
17
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
17
18
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
18
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
19
19
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
20
20
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
21
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
21
22
|
import {IRegistry} from "../registry/IRegistry.sol";
|
22
23
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
24
|
+
|
25
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
26
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
27
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
23
28
|
import {KEEP_STATE} from "../type/StateId.sol";
|
24
29
|
import {NftId} from "../type/NftId.sol";
|
25
|
-
import {ObjectType,
|
26
|
-
import {
|
30
|
+
import {ObjectType, ACCOUNTING, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
31
|
+
import {Service} from "../shared/Service.sol";
|
32
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
27
33
|
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
34
|
+
import {VersionPart} from "../type/Version.sol";
|
35
|
+
|
28
36
|
|
29
37
|
contract ComponentService is
|
30
|
-
|
38
|
+
Service,
|
31
39
|
IComponentService
|
32
40
|
{
|
33
|
-
|
34
41
|
bool private constant INCREASE = true;
|
35
42
|
bool private constant DECREASE = false;
|
36
43
|
|
44
|
+
IAccountingService private _accountingService;
|
37
45
|
IRegistryService private _registryService;
|
38
46
|
IInstanceService private _instanceService;
|
39
47
|
|
40
48
|
modifier onlyComponent(address component) {
|
41
|
-
|
42
|
-
|
49
|
+
_checkSupportsInterface(component);
|
50
|
+
_;
|
51
|
+
}
|
52
|
+
|
53
|
+
modifier onlyInstance() {
|
54
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
55
|
+
if (instanceNftId.eqz()) {
|
56
|
+
revert ErrorComponentServiceNotRegistered(msg.sender);
|
57
|
+
}
|
58
|
+
|
59
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
60
|
+
if (objectType != INSTANCE()) {
|
61
|
+
revert ErrorComponentServiceNotInstance(msg.sender, objectType);
|
62
|
+
}
|
63
|
+
|
64
|
+
VersionPart instanceVersion = IInstance(msg.sender).getRelease();
|
65
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
66
|
+
revert ErrorComponentServiceInstanceVersionMismatch(msg.sender, instanceVersion);
|
43
67
|
}
|
68
|
+
|
44
69
|
_;
|
45
70
|
}
|
46
71
|
|
@@ -60,6 +85,7 @@ contract ComponentService is
|
|
60
85
|
|
61
86
|
_initializeService(registryAddress, authority, owner);
|
62
87
|
|
88
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
63
89
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
64
90
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
65
91
|
|
@@ -90,43 +116,84 @@ contract ComponentService is
|
|
90
116
|
revert ErrorComponentServiceTypeNotSupported(component, componentType);
|
91
117
|
}
|
92
118
|
|
119
|
+
function approveTokenHandler(
|
120
|
+
IERC20Metadata token,
|
121
|
+
Amount amount
|
122
|
+
)
|
123
|
+
external
|
124
|
+
virtual
|
125
|
+
{
|
126
|
+
// checks
|
127
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
128
|
+
TokenHandler tokenHandler = instance.getInstanceReader().getComponentInfo(
|
129
|
+
componentNftId).tokenHandler;
|
93
130
|
|
94
|
-
|
95
|
-
(
|
96
|
-
|
97
|
-
address currentWallet = info.wallet;
|
131
|
+
// effects
|
132
|
+
tokenHandler.approve(token, amount);
|
133
|
+
}
|
98
134
|
|
99
|
-
if (newWallet == address(0)) {
|
100
|
-
revert ErrorComponentServiceNewWalletAddressZero();
|
101
|
-
}
|
102
135
|
|
103
|
-
|
104
|
-
|
105
|
-
|
136
|
+
function approveStakingTokenHandler(
|
137
|
+
IERC20Metadata token,
|
138
|
+
Amount amount
|
139
|
+
)
|
140
|
+
external
|
141
|
+
virtual
|
142
|
+
{
|
143
|
+
// checks
|
144
|
+
ContractLib.getAndVerifyStaking(
|
145
|
+
getRegistry(),
|
146
|
+
msg.sender); // only active
|
147
|
+
|
148
|
+
// effects
|
149
|
+
TokenHandler tokenHandler = IComponent(msg.sender).getTokenHandler();
|
150
|
+
tokenHandler.approve(token, amount);
|
151
|
+
}
|
106
152
|
|
107
|
-
if (newWallet == currentWallet) {
|
108
|
-
revert ErrorComponentServiceWalletAddressIsSameAsCurrent();
|
109
|
-
}
|
110
153
|
|
111
|
-
|
112
|
-
|
113
|
-
|
154
|
+
function setWallet(address newWallet)
|
155
|
+
external
|
156
|
+
virtual
|
157
|
+
{
|
158
|
+
// checks
|
159
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
160
|
+
TokenHandler tokenHandler = instance.getInstanceReader().getComponentInfo(
|
161
|
+
componentNftId).tokenHandler;
|
162
|
+
|
163
|
+
// effects
|
164
|
+
tokenHandler.setWallet(newWallet);
|
114
165
|
}
|
115
166
|
|
116
|
-
|
117
|
-
function
|
167
|
+
/// @inheritdoc IComponentService
|
168
|
+
function setLockedFromInstance(address componentAddress, bool locked)
|
169
|
+
external
|
170
|
+
virtual
|
171
|
+
onlyInstance()
|
172
|
+
{
|
173
|
+
address instanceAddress = msg.sender;
|
174
|
+
// NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
175
|
+
IInstance instance = IInstance(instanceAddress);
|
176
|
+
_setLocked(instance.getInstanceAdmin(), componentAddress, locked);
|
177
|
+
}
|
118
178
|
|
119
|
-
|
120
|
-
function
|
179
|
+
/// @inheritdoc IComponentService
|
180
|
+
function setLockedFromComponent(address componentAddress, bool locked)
|
181
|
+
external
|
182
|
+
virtual
|
183
|
+
onlyComponent(msg.sender)
|
184
|
+
{
|
185
|
+
(, IInstance instance) = _getAndVerifyComponent(COMPONENT(), false);
|
186
|
+
_setLocked(instance.getInstanceAdmin(), componentAddress, locked);
|
187
|
+
}
|
121
188
|
|
122
189
|
function withdrawFees(Amount amount)
|
123
190
|
external
|
124
191
|
virtual
|
125
192
|
returns (Amount withdrawnAmount)
|
126
193
|
{
|
127
|
-
(NftId componentNftId
|
194
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
128
195
|
IComponents.ComponentInfo memory info = instance.getInstanceReader().getComponentInfo(componentNftId);
|
129
|
-
address componentWallet = info.
|
196
|
+
address componentWallet = info.tokenHandler.getWallet();
|
130
197
|
|
131
198
|
// determine withdrawn amount
|
132
199
|
withdrawnAmount = amount;
|
@@ -142,7 +209,7 @@ contract ComponentService is
|
|
142
209
|
}
|
143
210
|
|
144
211
|
// decrease fee counters by withdrawnAmount
|
145
|
-
|
212
|
+
_accountingService.decreaseComponentFees(instance.getInstanceStore(), componentNftId, withdrawnAmount);
|
146
213
|
|
147
214
|
// transfer amount to component owner
|
148
215
|
address componentOwner = getRegistry().ownerOf(componentNftId);
|
@@ -186,7 +253,7 @@ contract ComponentService is
|
|
186
253
|
external
|
187
254
|
virtual
|
188
255
|
{
|
189
|
-
(NftId productNftId
|
256
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
190
257
|
IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
|
191
258
|
bool feesChanged = false;
|
192
259
|
|
@@ -210,31 +277,6 @@ contract ComponentService is
|
|
210
277
|
}
|
211
278
|
}
|
212
279
|
|
213
|
-
function increaseProductFees(
|
214
|
-
InstanceStore instanceStore,
|
215
|
-
NftId productNftId,
|
216
|
-
Amount feeAmount
|
217
|
-
)
|
218
|
-
external
|
219
|
-
virtual
|
220
|
-
// TODO re-enable once role granting is stable and fixed
|
221
|
-
// restricted()
|
222
|
-
{
|
223
|
-
_checkNftType(productNftId, PRODUCT());
|
224
|
-
_changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
225
|
-
}
|
226
|
-
|
227
|
-
|
228
|
-
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount)
|
229
|
-
external
|
230
|
-
virtual
|
231
|
-
// TODO re-enable once role granting is stable and fixed
|
232
|
-
// restricted()
|
233
|
-
{
|
234
|
-
_checkNftType(productNftId, PRODUCT());
|
235
|
-
_changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
236
|
-
}
|
237
|
-
|
238
280
|
//-------- distribution -------------------------------------------------//
|
239
281
|
|
240
282
|
/// @dev registers the sending component as a distribution component
|
@@ -278,7 +320,7 @@ contract ComponentService is
|
|
278
320
|
external
|
279
321
|
virtual
|
280
322
|
{
|
281
|
-
(NftId distributionNftId
|
323
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
282
324
|
(NftId productNftId, IComponents.ProductInfo memory productInfo) = _getLinkedProductInfo(
|
283
325
|
instance.getInstanceReader(), distributionNftId);
|
284
326
|
bool feesChanged = false;
|
@@ -303,69 +345,6 @@ contract ComponentService is
|
|
303
345
|
}
|
304
346
|
}
|
305
347
|
|
306
|
-
function increaseDistributionBalance(
|
307
|
-
InstanceStore instanceStore,
|
308
|
-
NftId distributionNftId,
|
309
|
-
Amount amount,
|
310
|
-
Amount feeAmount
|
311
|
-
)
|
312
|
-
external
|
313
|
-
virtual
|
314
|
-
// TODO re-enable once role granting is stable and fixed
|
315
|
-
// restricted()
|
316
|
-
{
|
317
|
-
_checkNftType(distributionNftId, DISTRIBUTION());
|
318
|
-
_changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
|
319
|
-
}
|
320
|
-
|
321
|
-
|
322
|
-
function decreaseDistributionBalance(
|
323
|
-
InstanceStore instanceStore,
|
324
|
-
NftId distributionNftId,
|
325
|
-
Amount amount,
|
326
|
-
Amount feeAmount
|
327
|
-
)
|
328
|
-
external
|
329
|
-
virtual
|
330
|
-
// TODO re-enable once role granting is stable and fixed
|
331
|
-
// restricted()
|
332
|
-
{
|
333
|
-
_checkNftType(distributionNftId, DISTRIBUTION());
|
334
|
-
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
335
|
-
}
|
336
|
-
|
337
|
-
//-------- distributor -------------------------------------------------------//
|
338
|
-
|
339
|
-
function increaseDistributorBalance(
|
340
|
-
InstanceStore instanceStore,
|
341
|
-
NftId distributorNftId,
|
342
|
-
Amount amount,
|
343
|
-
Amount feeAmount
|
344
|
-
)
|
345
|
-
external
|
346
|
-
virtual
|
347
|
-
// TODO re-enable once role granting is stable and fixed
|
348
|
-
// restricted()
|
349
|
-
{
|
350
|
-
_checkNftType(distributorNftId, DISTRIBUTOR());
|
351
|
-
_changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
|
352
|
-
}
|
353
|
-
|
354
|
-
function decreaseDistributorBalance(
|
355
|
-
InstanceStore instanceStore,
|
356
|
-
NftId distributorNftId,
|
357
|
-
Amount amount,
|
358
|
-
Amount feeAmount
|
359
|
-
)
|
360
|
-
external
|
361
|
-
virtual
|
362
|
-
// TODO re-enable once role granting is stable and fixed
|
363
|
-
// restricted()
|
364
|
-
{
|
365
|
-
_checkNftType(distributorNftId, DISTRIBUTOR());
|
366
|
-
_changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
|
367
|
-
}
|
368
|
-
|
369
348
|
//-------- oracle -------------------------------------------------------//
|
370
349
|
|
371
350
|
function _registerOracle(address oracleAddress)
|
@@ -379,7 +358,7 @@ contract ComponentService is
|
|
379
358
|
InstanceStore instanceStore;
|
380
359
|
NftId productNftId;
|
381
360
|
|
382
|
-
(instanceReader, instanceAdmin, instanceStore, productNftId, oracleNftId) =_register(
|
361
|
+
(instanceReader, instanceAdmin, instanceStore, productNftId, oracleNftId) = _register(
|
383
362
|
oracleAddress,
|
384
363
|
ORACLE());
|
385
364
|
|
@@ -415,7 +394,7 @@ contract ComponentService is
|
|
415
394
|
InstanceStore instanceStore;
|
416
395
|
NftId productNftId;
|
417
396
|
|
418
|
-
(instanceReader, instanceAdmin, instanceStore, productNftId, poolNftId) =_register(
|
397
|
+
(instanceReader, instanceAdmin, instanceStore, productNftId, poolNftId) = _register(
|
419
398
|
poolAddress,
|
420
399
|
POOL());
|
421
400
|
|
@@ -448,7 +427,8 @@ contract ComponentService is
|
|
448
427
|
external
|
449
428
|
virtual
|
450
429
|
{
|
451
|
-
(NftId poolNftId
|
430
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
431
|
+
|
452
432
|
(NftId productNftId, IComponents.ProductInfo memory productInfo) = _getLinkedProductInfo(
|
453
433
|
instance.getInstanceReader(), poolNftId);
|
454
434
|
bool feesChanged = false;
|
@@ -480,92 +460,6 @@ contract ComponentService is
|
|
480
460
|
}
|
481
461
|
}
|
482
462
|
|
483
|
-
function increasePoolBalance(
|
484
|
-
InstanceStore instanceStore,
|
485
|
-
NftId poolNftId,
|
486
|
-
Amount amount,
|
487
|
-
Amount feeAmount
|
488
|
-
)
|
489
|
-
public
|
490
|
-
virtual
|
491
|
-
// TODO re-enable once role granting is stable and fixed
|
492
|
-
// restricted()
|
493
|
-
{
|
494
|
-
_checkNftType(poolNftId, POOL());
|
495
|
-
_changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
|
496
|
-
}
|
497
|
-
|
498
|
-
function decreasePoolBalance(
|
499
|
-
InstanceStore instanceStore,
|
500
|
-
NftId poolNftId,
|
501
|
-
Amount amount,
|
502
|
-
Amount feeAmount
|
503
|
-
)
|
504
|
-
public
|
505
|
-
virtual
|
506
|
-
// TODO re-enable once role granting is stable and fixed
|
507
|
-
// restricted()
|
508
|
-
{
|
509
|
-
_checkNftType(poolNftId, POOL());
|
510
|
-
_changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
|
511
|
-
}
|
512
|
-
|
513
|
-
//-------- bundle -------------------------------------------------------//
|
514
|
-
|
515
|
-
function increaseBundleBalance(
|
516
|
-
InstanceStore instanceStore,
|
517
|
-
NftId bundleNftId,
|
518
|
-
Amount amount,
|
519
|
-
Amount feeAmount
|
520
|
-
)
|
521
|
-
external
|
522
|
-
virtual
|
523
|
-
// TODO re-enable once role granting is stable and fixed
|
524
|
-
// restricted()
|
525
|
-
{
|
526
|
-
_checkNftType(bundleNftId, BUNDLE());
|
527
|
-
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
528
|
-
}
|
529
|
-
|
530
|
-
function decreaseBundleBalance(
|
531
|
-
InstanceStore instanceStore,
|
532
|
-
NftId bundleNftId,
|
533
|
-
Amount amount,
|
534
|
-
Amount feeAmount
|
535
|
-
)
|
536
|
-
external
|
537
|
-
virtual
|
538
|
-
// TODO re-enable once role granting is stable and fixed
|
539
|
-
// restricted()
|
540
|
-
{
|
541
|
-
_checkNftType(bundleNftId, BUNDLE());
|
542
|
-
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
|
543
|
-
}
|
544
|
-
|
545
|
-
|
546
|
-
//-------- internal functions ------------------------------------------//
|
547
|
-
|
548
|
-
function _changeTargetBalance(
|
549
|
-
bool increase,
|
550
|
-
InstanceStore instanceStore,
|
551
|
-
NftId targetNftId,
|
552
|
-
Amount amount,
|
553
|
-
Amount feeAmount
|
554
|
-
)
|
555
|
-
internal
|
556
|
-
virtual
|
557
|
-
{
|
558
|
-
Amount totalAmount = amount + feeAmount;
|
559
|
-
|
560
|
-
if(increase) {
|
561
|
-
if(totalAmount.gtz()) { instanceStore.increaseBalance(targetNftId, totalAmount); }
|
562
|
-
if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
|
563
|
-
} else {
|
564
|
-
if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
|
565
|
-
if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
|
566
|
-
}
|
567
|
-
}
|
568
|
-
|
569
463
|
/// @dev Registers the component represented by the provided address.
|
570
464
|
function _register(
|
571
465
|
address componentAddress, // address of component to register
|
@@ -615,8 +509,13 @@ contract ComponentService is
|
|
615
509
|
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
616
510
|
IERC20Metadata token = componentInfo.token;
|
617
511
|
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
512
|
+
address(getRegistry()),
|
513
|
+
address(component), // initially, component is its own wallet
|
618
514
|
address(token),
|
619
515
|
address(instanceAdmin.authority()));
|
516
|
+
|
517
|
+
// set token handler allowance to max
|
518
|
+
// componentInfo.tokenHandler.approve(token, AmountLib.max());
|
620
519
|
|
621
520
|
// register component with instance
|
622
521
|
instanceStore.createComponent(
|
@@ -656,7 +555,7 @@ contract ComponentService is
|
|
656
555
|
IComponents.ProductInfo memory info
|
657
556
|
)
|
658
557
|
{
|
659
|
-
productNftId =
|
558
|
+
productNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
|
660
559
|
info = instanceReader.getProductInfo(productNftId);
|
661
560
|
}
|
662
561
|
|
@@ -735,11 +634,60 @@ contract ComponentService is
|
|
735
634
|
|
736
635
|
// get initial owner and instance
|
737
636
|
initialOwner = info.initialOwner;
|
738
|
-
instance =
|
637
|
+
instance = IInstance(registry.getObjectAddress(instanceNftId));
|
638
|
+
}
|
639
|
+
|
640
|
+
function _setLocked(InstanceAdmin instanceAdmin, address componentAddress, bool locked) internal {
|
641
|
+
instanceAdmin.setTargetLocked(componentAddress, locked);
|
642
|
+
}
|
643
|
+
|
644
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
645
|
+
internal
|
646
|
+
view
|
647
|
+
returns (
|
648
|
+
NftId componentNftId,
|
649
|
+
IInstance instance
|
650
|
+
)
|
651
|
+
{
|
652
|
+
return _getAndVerifyComponent(expectedType, true); // only active
|
739
653
|
}
|
740
654
|
|
655
|
+
function _getAndVerifyComponent(ObjectType expectedType, bool isActive)
|
656
|
+
internal
|
657
|
+
view
|
658
|
+
returns (
|
659
|
+
NftId componentNftId,
|
660
|
+
IInstance instance
|
661
|
+
)
|
662
|
+
{
|
663
|
+
IRegistry.ObjectInfo memory info;
|
664
|
+
address instanceAddress;
|
665
|
+
|
666
|
+
if (expectedType != COMPONENT()) {
|
667
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
668
|
+
getRegistry(),
|
669
|
+
msg.sender, // caller
|
670
|
+
expectedType,
|
671
|
+
isActive);
|
672
|
+
} else {
|
673
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
674
|
+
getRegistry(),
|
675
|
+
msg.sender,
|
676
|
+
isActive);
|
677
|
+
}
|
678
|
+
|
679
|
+
// get component nft id and instance
|
680
|
+
componentNftId = info.nftId;
|
681
|
+
instance = IInstance(instanceAddress);
|
682
|
+
}
|
741
683
|
|
742
684
|
function _getDomain() internal pure virtual override returns(ObjectType) {
|
743
685
|
return COMPONENT();
|
744
686
|
}
|
687
|
+
|
688
|
+
function _checkSupportsInterface(address component) internal view {
|
689
|
+
if (!ContractLib.supportsInterface(component, type(IInstanceLinkedComponent).interfaceId)) {
|
690
|
+
revert ErrorComponentServiceNotInstanceLinkedComponent(component);
|
691
|
+
}
|
692
|
+
}
|
745
693
|
}
|
@@ -5,7 +5,7 @@ import {IInstance} from "../instance/IInstance.sol";
|
|
5
5
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
6
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
7
|
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
8
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, STAKING} from "../type/ObjectType.sol";
|
9
9
|
import {Service} from "../shared/Service.sol";
|
10
10
|
|
11
11
|
|
@@ -27,12 +27,12 @@ abstract contract ComponentVerifyingService is
|
|
27
27
|
view
|
28
28
|
returns(
|
29
29
|
NftId componentNftId,
|
30
|
-
IRegistry.ObjectInfo memory
|
30
|
+
IRegistry.ObjectInfo memory objectInfo,
|
31
31
|
IInstance instance
|
32
32
|
)
|
33
33
|
{
|
34
34
|
componentNftId = getRegistry().getNftIdForAddress(msg.sender);
|
35
|
-
(
|
35
|
+
(objectInfo, instance) = _getAndVerifyComponentInfo(
|
36
36
|
componentNftId,
|
37
37
|
expectedType,
|
38
38
|
true); // only active
|
@@ -82,7 +82,15 @@ abstract contract ComponentVerifyingService is
|
|
82
82
|
}
|
83
83
|
}
|
84
84
|
|
85
|
-
|
85
|
+
if (info.objectType == STAKING()) {
|
86
|
+
return (info, instance);
|
87
|
+
}
|
88
|
+
|
89
|
+
if (info.objectType == PRODUCT()) {
|
90
|
+
instance = _getInstance(registry, info.parentNftId);
|
91
|
+
} else {
|
92
|
+
instance = _getInstanceForComponent(registry, info.parentNftId);
|
93
|
+
}
|
86
94
|
|
87
95
|
// ensure component is not locked
|
88
96
|
if (onlyActive) {
|
@@ -93,21 +101,15 @@ abstract contract ComponentVerifyingService is
|
|
93
101
|
}
|
94
102
|
|
95
103
|
|
96
|
-
function _getInstanceForComponent(IRegistry registry,
|
104
|
+
function _getInstanceForComponent(IRegistry registry, NftId productNftId)
|
97
105
|
internal
|
98
106
|
view
|
99
107
|
returns (IInstance instance)
|
100
108
|
{
|
101
|
-
|
102
|
-
if (componentInfo.objectType == PRODUCT()) {
|
103
|
-
instance = _getInstance(registry, componentInfo.parentNftId);
|
104
|
-
// parent of other types is product
|
105
|
-
} else {
|
106
|
-
instance = _getInstance(
|
109
|
+
return _getInstance(
|
107
110
|
registry,
|
108
111
|
registry.getObjectInfo(
|
109
|
-
|
110
|
-
}
|
112
|
+
productNftId).parentNftId);
|
111
113
|
}
|
112
114
|
|
113
115
|
|