@etherisc/gif-next 0.0.2-de7c770-422 → 0.0.2-de9ede4-391
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 +28 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -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 +767 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -63
- 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 +67 -11
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +159 -209
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -125
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +180 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +139 -64
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +87 -108
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -0
- 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 +1441 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +187 -169
- 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 +131 -157
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -194
- 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 +564 -249
- 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 +116 -48
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +149 -60
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +196 -138
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +687 -84
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -148
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -44
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +475 -116
- 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 +46 -5
- 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 +119 -169
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +82 -103
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +95 -121
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -79
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -40
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +115 -141
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +148 -150
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +102 -134
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +272 -185
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +115 -152
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +413 -263
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +144 -45
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -45
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -40
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +158 -138
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +200 -86
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +144 -61
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +64 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +178 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +141 -116
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +328 -119
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -55
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +170 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +119 -48
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +154 -134
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +81 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -34
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +91 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +135 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +220 -182
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -172
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -32
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +123 -225
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +72 -80
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -477
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -76
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
- 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 +61 -64
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +425 -261
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +82 -103
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +94 -120
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -0
- 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 +79 -100
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +158 -170
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -54
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -36
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -104
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
- 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 +33 -9
- 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 +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 +3 -3
- 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 +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 +99 -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/StateId.sol/StateIdLib.json +15 -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/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- 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 +79 -27
- 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 +263 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +82 -56
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -3
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -40
- package/contracts/distribution/DistributionService.sol +86 -65
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +436 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +24 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +11 -3
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +36 -26
- package/contracts/instance/InstanceAdmin.sol +57 -54
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -32
- package/contracts/instance/InstanceReader.sol +187 -21
- package/contracts/instance/InstanceService.sol +54 -129
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +12 -2
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +20 -7
- package/contracts/instance/module/IPolicy.sol +4 -3
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +110 -80
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +74 -87
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +2 -15
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +30 -37
- package/contracts/pool/Pool.sol +141 -122
- package/contracts/pool/PoolService.sol +263 -157
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +31 -20
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +233 -106
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +3 -2
- package/contracts/product/IPolicyService.sol +25 -8
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +361 -198
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +10 -11
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +76 -74
- package/contracts/product/RiskService.sol +16 -6
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +8 -3
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +29 -6
- package/contracts/registry/RegistryAdmin.sol +29 -36
- package/contracts/registry/RegistryService.sol +33 -44
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +205 -210
- package/contracts/registry/ServiceAuthorizationV3.sol +58 -50
- package/contracts/shared/Component.sol +56 -105
- package/contracts/shared/ComponentService.sol +384 -329
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +27 -16
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +6 -14
- package/contracts/shared/IComponentService.sol +45 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -13
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +68 -43
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/PolicyHolder.sol +11 -5
- package/contracts/shared/Registerable.sol +15 -7
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/Service.sol +16 -14
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +42 -25
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +56 -23
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +14 -0
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,263 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
|
+
import {Fee} from "../type/Fee.sol";
|
6
|
+
import {IAccountingService} from "./IAccountingService.sol";
|
7
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
8
|
+
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
|
+
import {Fee} from "../type/Fee.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {ObjectType, ACCOUNTING, BUNDLE, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
|
13
|
+
import {Service} from "../shared/Service.sol";
|
14
|
+
|
15
|
+
|
16
|
+
contract AccountingService is
|
17
|
+
Service,
|
18
|
+
IAccountingService
|
19
|
+
{
|
20
|
+
bool private constant INCREASE = true;
|
21
|
+
bool private constant DECREASE = false;
|
22
|
+
|
23
|
+
function _initialize(
|
24
|
+
address owner,
|
25
|
+
bytes memory data
|
26
|
+
)
|
27
|
+
internal
|
28
|
+
virtual override
|
29
|
+
initializer()
|
30
|
+
{
|
31
|
+
(
|
32
|
+
address registryAddress,
|
33
|
+
address authority
|
34
|
+
) = abi.decode(data, (address, address));
|
35
|
+
|
36
|
+
_initializeService(registryAddress, authority, owner);
|
37
|
+
|
38
|
+
_registerInterface(type(IAccountingService).interfaceId);
|
39
|
+
}
|
40
|
+
|
41
|
+
function decreaseComponentFees(
|
42
|
+
InstanceStore instanceStore,
|
43
|
+
NftId componentNftId,
|
44
|
+
Amount feeAmount
|
45
|
+
)
|
46
|
+
external
|
47
|
+
virtual
|
48
|
+
restricted()
|
49
|
+
{
|
50
|
+
_changeTargetBalance(DECREASE, instanceStore, componentNftId, AmountLib.zero(), feeAmount);
|
51
|
+
}
|
52
|
+
|
53
|
+
|
54
|
+
function increaseProductFees(
|
55
|
+
InstanceStore instanceStore,
|
56
|
+
NftId productNftId,
|
57
|
+
Amount feeAmount
|
58
|
+
)
|
59
|
+
external
|
60
|
+
virtual
|
61
|
+
restricted()
|
62
|
+
{
|
63
|
+
_checkNftType(productNftId, PRODUCT());
|
64
|
+
_changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
65
|
+
}
|
66
|
+
|
67
|
+
|
68
|
+
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount)
|
69
|
+
external
|
70
|
+
virtual
|
71
|
+
restricted()
|
72
|
+
{
|
73
|
+
_checkNftType(productNftId, PRODUCT());
|
74
|
+
_changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
75
|
+
}
|
76
|
+
|
77
|
+
function increaseDistributionBalance(
|
78
|
+
InstanceStore instanceStore,
|
79
|
+
NftId distributionNftId,
|
80
|
+
Amount amount,
|
81
|
+
Amount feeAmount
|
82
|
+
)
|
83
|
+
external
|
84
|
+
virtual
|
85
|
+
restricted()
|
86
|
+
{
|
87
|
+
_checkNftType(distributionNftId, DISTRIBUTION());
|
88
|
+
_changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
function decreaseDistributionBalance(
|
93
|
+
InstanceStore instanceStore,
|
94
|
+
NftId distributionNftId,
|
95
|
+
Amount amount,
|
96
|
+
Amount feeAmount
|
97
|
+
)
|
98
|
+
external
|
99
|
+
virtual
|
100
|
+
restricted()
|
101
|
+
{
|
102
|
+
_checkNftType(distributionNftId, DISTRIBUTION());
|
103
|
+
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
104
|
+
}
|
105
|
+
|
106
|
+
function increaseDistributorBalance(
|
107
|
+
InstanceStore instanceStore,
|
108
|
+
NftId distributorNftId,
|
109
|
+
Amount amount,
|
110
|
+
Amount feeAmount
|
111
|
+
)
|
112
|
+
external
|
113
|
+
virtual
|
114
|
+
restricted()
|
115
|
+
{
|
116
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
117
|
+
_changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
|
118
|
+
}
|
119
|
+
|
120
|
+
function decreaseDistributorBalance(
|
121
|
+
InstanceStore instanceStore,
|
122
|
+
NftId distributorNftId,
|
123
|
+
Amount amount,
|
124
|
+
Amount feeAmount
|
125
|
+
)
|
126
|
+
external
|
127
|
+
virtual
|
128
|
+
restricted()
|
129
|
+
{
|
130
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
131
|
+
_changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
|
132
|
+
}
|
133
|
+
|
134
|
+
function increasePoolBalance(
|
135
|
+
InstanceStore instanceStore,
|
136
|
+
NftId poolNftId,
|
137
|
+
Amount amount,
|
138
|
+
Amount feeAmount
|
139
|
+
)
|
140
|
+
public
|
141
|
+
virtual
|
142
|
+
restricted()
|
143
|
+
{
|
144
|
+
_checkNftType(poolNftId, POOL());
|
145
|
+
_changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
|
146
|
+
}
|
147
|
+
|
148
|
+
function decreasePoolBalance(
|
149
|
+
InstanceStore instanceStore,
|
150
|
+
NftId poolNftId,
|
151
|
+
Amount amount,
|
152
|
+
Amount feeAmount
|
153
|
+
)
|
154
|
+
public
|
155
|
+
virtual
|
156
|
+
// TODO re-enable once role granting is stable and fixed
|
157
|
+
// restricted()
|
158
|
+
{
|
159
|
+
_checkNftType(poolNftId, POOL());
|
160
|
+
_changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
|
161
|
+
}
|
162
|
+
|
163
|
+
function increaseBundleBalance(
|
164
|
+
InstanceStore instanceStore,
|
165
|
+
NftId bundleNftId,
|
166
|
+
Amount amount,
|
167
|
+
Amount feeAmount
|
168
|
+
)
|
169
|
+
external
|
170
|
+
virtual
|
171
|
+
restricted()
|
172
|
+
{
|
173
|
+
_checkNftType(bundleNftId, BUNDLE());
|
174
|
+
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
175
|
+
}
|
176
|
+
|
177
|
+
function decreaseBundleBalance(
|
178
|
+
InstanceStore instanceStore,
|
179
|
+
NftId bundleNftId,
|
180
|
+
Amount amount,
|
181
|
+
Amount feeAmount
|
182
|
+
)
|
183
|
+
external
|
184
|
+
virtual
|
185
|
+
restricted()
|
186
|
+
{
|
187
|
+
_checkNftType(bundleNftId, BUNDLE());
|
188
|
+
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
|
189
|
+
}
|
190
|
+
|
191
|
+
function increaseBundleBalanceForPool(
|
192
|
+
InstanceStore instanceStore,
|
193
|
+
NftId bundleNftId,
|
194
|
+
Amount amount,
|
195
|
+
Amount feeAmount
|
196
|
+
)
|
197
|
+
external
|
198
|
+
virtual
|
199
|
+
restricted()
|
200
|
+
{
|
201
|
+
_checkNftType(bundleNftId, BUNDLE());
|
202
|
+
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
203
|
+
}
|
204
|
+
|
205
|
+
function decreaseBundleBalanceForPool(
|
206
|
+
InstanceStore instanceStore,
|
207
|
+
NftId bundleNftId,
|
208
|
+
Amount amount,
|
209
|
+
Amount feeAmount
|
210
|
+
)
|
211
|
+
external
|
212
|
+
virtual
|
213
|
+
restricted()
|
214
|
+
{
|
215
|
+
_checkNftType(bundleNftId, BUNDLE());
|
216
|
+
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
|
217
|
+
}
|
218
|
+
|
219
|
+
|
220
|
+
//-------- internal functions ------------------------------------------//
|
221
|
+
|
222
|
+
function _changeTargetBalance(
|
223
|
+
bool increase,
|
224
|
+
InstanceStore instanceStore,
|
225
|
+
NftId targetNftId,
|
226
|
+
Amount amount,
|
227
|
+
Amount feeAmount
|
228
|
+
)
|
229
|
+
internal
|
230
|
+
virtual
|
231
|
+
{
|
232
|
+
Amount totalAmount = amount + feeAmount;
|
233
|
+
|
234
|
+
if(increase) {
|
235
|
+
if(totalAmount.gtz()) { instanceStore.increaseBalance(targetNftId, totalAmount); }
|
236
|
+
if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
|
237
|
+
} else {
|
238
|
+
if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
|
239
|
+
if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
|
240
|
+
}
|
241
|
+
}
|
242
|
+
|
243
|
+
|
244
|
+
function _logUpdateFee(NftId productNftId, string memory name, Fee memory feeBefore, Fee memory feeAfter)
|
245
|
+
internal
|
246
|
+
virtual
|
247
|
+
{
|
248
|
+
emit LogComponentServiceUpdateFee(
|
249
|
+
productNftId,
|
250
|
+
name,
|
251
|
+
feeBefore.fractionalFee,
|
252
|
+
feeBefore.fixedFee,
|
253
|
+
feeAfter.fractionalFee,
|
254
|
+
feeAfter.fixedFee
|
255
|
+
);
|
256
|
+
}
|
257
|
+
|
258
|
+
function _getDomain() internal pure virtual override returns(ObjectType) {
|
259
|
+
return ACCOUNTING();
|
260
|
+
}
|
261
|
+
|
262
|
+
|
263
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccountingService} from "./AccountingService.sol";
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
|
+
|
8
|
+
contract AccountingServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
AccountingService private _accountingService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with service implementation
|
13
|
+
constructor(
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
18
|
+
{
|
19
|
+
AccountingService svc = new AccountingService();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
|
+
data,
|
25
|
+
salt);
|
26
|
+
|
27
|
+
_accountingService = AccountingService(address(versionable));
|
28
|
+
}
|
29
|
+
|
30
|
+
//--- view functions ----------------------------------------------------//
|
31
|
+
function getAccountingService()
|
32
|
+
external
|
33
|
+
view
|
34
|
+
returns (AccountingService)
|
35
|
+
{
|
36
|
+
return _accountingService;
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
|
5
|
+
import {Amount} from "../type/Amount.sol";
|
6
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
import {NftId} from "../type/NftId.sol";
|
9
|
+
import {UFixed} from "../type/UFixed.sol";
|
10
|
+
|
11
|
+
/// @dev component base class
|
12
|
+
/// component examples are staking, product, distribution, pool and oracle
|
13
|
+
interface IAccountingService is
|
14
|
+
IService
|
15
|
+
{
|
16
|
+
event LogComponentServiceUpdateFee(
|
17
|
+
NftId nftId,
|
18
|
+
string feeName,
|
19
|
+
UFixed previousFractionalFee,
|
20
|
+
uint256 previousFixedFee,
|
21
|
+
UFixed newFractionalFee,
|
22
|
+
uint256 newFixedFee
|
23
|
+
);
|
24
|
+
|
25
|
+
function decreaseComponentFees(InstanceStore instanceStore, NftId componentNftId, Amount feeAmount) external;
|
26
|
+
|
27
|
+
function increaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
28
|
+
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
29
|
+
|
30
|
+
function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
31
|
+
function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
32
|
+
|
33
|
+
function increaseDistributorBalance(InstanceStore instanceStore, NftId distributorNftId, Amount amount, Amount feeAmount) external;
|
34
|
+
function decreaseDistributorBalance(InstanceStore instanceStore, NftId distributorNftId, Amount amount, Amount feeAmount) external;
|
35
|
+
|
36
|
+
function increasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
|
37
|
+
function decreasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
|
38
|
+
|
39
|
+
function increaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
40
|
+
function decreaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
41
|
+
|
42
|
+
function increaseBundleBalanceForPool(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
43
|
+
function decreaseBundleBalanceForPool(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
44
|
+
|
45
|
+
}
|
@@ -6,12 +6,16 @@ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet
|
|
6
6
|
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
7
|
|
8
8
|
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
9
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
9
10
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
10
11
|
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
11
12
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
12
13
|
import {Str, StrLib} from "../type/String.sol";
|
13
14
|
import {TimestampLib} from "../type/Timestamp.sol";
|
14
15
|
|
16
|
+
interface IAccessManagedChecker {
|
17
|
+
function authority() external view returns (address);
|
18
|
+
}
|
15
19
|
|
16
20
|
/**
|
17
21
|
* @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
|
@@ -79,9 +83,7 @@ contract AccessAdmin is
|
|
79
83
|
}
|
80
84
|
|
81
85
|
modifier onlyRoleAdmin(RoleId roleId) {
|
82
|
-
|
83
|
-
revert ErrorRoleUnknown(roleId);
|
84
|
-
}
|
86
|
+
_checkRoleExists(roleId, false);
|
85
87
|
|
86
88
|
if (!hasAdminRole(msg.sender, roleId)) {
|
87
89
|
revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
|
@@ -96,8 +98,8 @@ contract AccessAdmin is
|
|
96
98
|
_;
|
97
99
|
}
|
98
100
|
|
99
|
-
modifier onlyExistingRole(RoleId roleId) {
|
100
|
-
|
101
|
+
modifier onlyExistingRole(RoleId roleId, bool onlyActiveRole) {
|
102
|
+
_checkRoleExists(roleId, onlyActiveRole);
|
101
103
|
_;
|
102
104
|
}
|
103
105
|
|
@@ -218,18 +220,6 @@ contract AccessAdmin is
|
|
218
220
|
selector.toBytes4()));
|
219
221
|
}
|
220
222
|
|
221
|
-
function isAccessManaged(address target) public view returns (bool) {
|
222
|
-
if (!_isContract(target)) {
|
223
|
-
return false;
|
224
|
-
}
|
225
|
-
|
226
|
-
(bool success, ) = target.staticcall(
|
227
|
-
abi.encodeWithSelector(
|
228
|
-
AccessManagedUpgradeable.authority.selector));
|
229
|
-
|
230
|
-
return success;
|
231
|
-
}
|
232
|
-
|
233
223
|
function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
|
234
224
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
235
225
|
}
|
@@ -240,7 +230,8 @@ contract AccessAdmin is
|
|
240
230
|
adminRoleId: adminRoleId,
|
241
231
|
roleType: roleType,
|
242
232
|
maxMemberCount: maxMemberCount,
|
243
|
-
createdAt: TimestampLib.blockTimestamp()
|
233
|
+
createdAt: TimestampLib.blockTimestamp(),
|
234
|
+
pausedAt: TimestampLib.max()
|
244
235
|
});
|
245
236
|
}
|
246
237
|
|
@@ -371,14 +362,6 @@ contract AccessAdmin is
|
|
371
362
|
name: PUBLIC_ROLE_NAME}));
|
372
363
|
}
|
373
364
|
|
374
|
-
/// @dev check if target exists and reverts if it doesn't
|
375
|
-
function _checkTarget(address target)
|
376
|
-
internal
|
377
|
-
{
|
378
|
-
if (_targetInfo[target].createdAt.eqz()) {
|
379
|
-
revert ErrorTargetUnknown(target);
|
380
|
-
}
|
381
|
-
}
|
382
365
|
|
383
366
|
/// @dev grant the specified role access to all functions in the provided selector list
|
384
367
|
function _grantRoleAccessToFunctions(
|
@@ -396,22 +379,26 @@ contract AccessAdmin is
|
|
396
379
|
// implizit logging: rely on OpenZeppelin log TargetFunctionRoleUpdated
|
397
380
|
}
|
398
381
|
|
382
|
+
|
399
383
|
/// @dev grant the specified role to the provided account
|
400
384
|
function _grantRoleToAccount(RoleId roleId, address account)
|
401
385
|
internal
|
386
|
+
onlyExistingRole(roleId, true)
|
402
387
|
{
|
403
|
-
_checkRoleId(roleId);
|
404
|
-
|
405
388
|
// check max role members will not be exceeded
|
406
389
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
407
390
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
408
391
|
}
|
409
392
|
|
410
393
|
// check account is contract for contract role
|
411
|
-
|
412
|
-
|
394
|
+
if (
|
395
|
+
_roleInfo[roleId].roleType == RoleType.Contract &&
|
396
|
+
!ContractLib.isContract(account) // will fail in account's constructor
|
397
|
+
) {
|
398
|
+
revert ErrorRoleMemberNotContract(roleId, account);
|
413
399
|
}
|
414
400
|
|
401
|
+
// TODO check account already have roleId
|
415
402
|
_roleMembers[roleId].add(account);
|
416
403
|
_authority.grantRole(
|
417
404
|
RoleId.unwrap(roleId),
|
@@ -424,14 +411,15 @@ contract AccessAdmin is
|
|
424
411
|
/// @dev revoke the specified role from the provided account
|
425
412
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
426
413
|
internal
|
414
|
+
onlyExistingRole(roleId, false)
|
427
415
|
{
|
428
|
-
_checkRoleId(roleId);
|
429
416
|
|
430
417
|
// check role removal is permitted
|
431
418
|
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
432
|
-
revert
|
419
|
+
revert ErrorRoleMemberRemovalDisabled(roleId, account);
|
433
420
|
}
|
434
421
|
|
422
|
+
// TODO check account have roleId?
|
435
423
|
_roleMembers[roleId].remove(account);
|
436
424
|
_authority.revokeRole(
|
437
425
|
RoleId.unwrap(roleId),
|
@@ -441,21 +429,6 @@ contract AccessAdmin is
|
|
441
429
|
}
|
442
430
|
|
443
431
|
|
444
|
-
function _checkRoleId(RoleId roleId)
|
445
|
-
internal
|
446
|
-
{
|
447
|
-
if (_roleInfo[roleId].createdAt.eqz()) {
|
448
|
-
revert ErrorRoleUnknown(roleId);
|
449
|
-
}
|
450
|
-
|
451
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
452
|
-
if (roleIdInt == _authority.ADMIN_ROLE()
|
453
|
-
|| roleIdInt == _authority.PUBLIC_ROLE())
|
454
|
-
{
|
455
|
-
revert ErrorRoleIsLocked(roleId);
|
456
|
-
}
|
457
|
-
}
|
458
|
-
|
459
432
|
/// @dev Creates a role based on the provided parameters.
|
460
433
|
/// Checks that the provided role and role id and role name not already used.
|
461
434
|
function _createRole(
|
@@ -522,7 +495,6 @@ contract AccessAdmin is
|
|
522
495
|
bool custom
|
523
496
|
)
|
524
497
|
internal
|
525
|
-
nonReentrant()
|
526
498
|
{
|
527
499
|
// check target does not yet exist
|
528
500
|
if(targetExists(target)) {
|
@@ -546,7 +518,7 @@ contract AccessAdmin is
|
|
546
518
|
}
|
547
519
|
|
548
520
|
// check target is an access managed contract
|
549
|
-
if (!
|
521
|
+
if (!_isAccessManaged(target)) {
|
550
522
|
revert ErrorTargetNotAccessManaged(target);
|
551
523
|
}
|
552
524
|
|
@@ -574,16 +546,70 @@ contract AccessAdmin is
|
|
574
546
|
emit LogTargetCreated(target, targetName);
|
575
547
|
}
|
576
548
|
|
577
|
-
|
549
|
+
|
550
|
+
function _isAccessManaged(address target)
|
578
551
|
internal
|
579
|
-
view
|
552
|
+
view
|
580
553
|
returns (bool)
|
581
554
|
{
|
582
|
-
|
583
|
-
|
584
|
-
|
555
|
+
if (!ContractLib.isContract(target)) {
|
556
|
+
return false;
|
557
|
+
}
|
558
|
+
|
559
|
+
(bool success, ) = target.staticcall(
|
560
|
+
abi.encodeWithSelector(
|
561
|
+
IAccessManagedChecker.authority.selector));
|
562
|
+
|
563
|
+
return success;
|
564
|
+
}
|
565
|
+
|
566
|
+
|
567
|
+
function _setTargetClosed(address target, bool locked)
|
568
|
+
internal
|
569
|
+
{
|
570
|
+
_checkTarget(target);
|
571
|
+
|
572
|
+
// target locked/unlocked already
|
573
|
+
if(_authority.isTargetClosed(target) == locked) {
|
574
|
+
revert ErrorTargetAlreadyLocked(target, locked);
|
575
|
+
}
|
576
|
+
|
577
|
+
_authority.setTargetClosed(target, locked);
|
578
|
+
}
|
579
|
+
|
580
|
+
|
581
|
+
function _checkRoleExists(
|
582
|
+
RoleId roleId,
|
583
|
+
bool onlyActiveRole
|
584
|
+
)
|
585
|
+
internal
|
586
|
+
view
|
587
|
+
{
|
588
|
+
if (!roleExists(roleId)) {
|
589
|
+
revert ErrorRoleUnknown(roleId);
|
590
|
+
}
|
591
|
+
|
592
|
+
uint64 roleIdInt = RoleId.unwrap(roleId);
|
593
|
+
if (roleIdInt == _authority.ADMIN_ROLE()
|
594
|
+
|| roleIdInt == _authority.PUBLIC_ROLE())
|
595
|
+
{
|
596
|
+
revert ErrorRoleIsLocked(roleId);
|
597
|
+
}
|
598
|
+
|
599
|
+
// check if role is disabled
|
600
|
+
if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
|
601
|
+
revert ErrorRoleIsPaused(roleId);
|
602
|
+
}
|
603
|
+
}
|
604
|
+
|
605
|
+
|
606
|
+
/// @dev check if target exists and reverts if it doesn't
|
607
|
+
function _checkTarget(address target)
|
608
|
+
internal
|
609
|
+
view
|
610
|
+
{
|
611
|
+
if (!targetExists(target)) {
|
612
|
+
revert ErrorTargetUnknown(target);
|
585
613
|
}
|
586
|
-
return size > 0;
|
587
614
|
}
|
588
|
-
|
589
615
|
}
|