@etherisc/gif-next 0.0.2-a714036-117 → 0.0.2-a755cba-731
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -8
- 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 +105 -65
- 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 +156 -412
- 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 +96 -344
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +229 -292
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -142
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +101 -62
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- 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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2329 -0
- 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 +141 -141
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -139
- 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 +746 -134
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -260
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +339 -140
- 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 +109 -365
- 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 +72 -130
- 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 +85 -333
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -191
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +119 -83
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +108 -356
- 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 +160 -334
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -131
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +60 -65
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -163
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +277 -205
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +105 -364
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +385 -418
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +120 -100
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +124 -181
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +89 -89
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +147 -349
- 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 +433 -193
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +141 -105
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +68 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +292 -6
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +281 -142
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +131 -143
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +351 -338
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +126 -98
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +145 -347
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +310 -34
- 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 +516 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -75
- 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 +131 -223
- 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 +69 -288
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +471 -593
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -127
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +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 -90
- 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 +72 -130
- 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 +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +84 -332
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
- 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 +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +106 -127
- 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 +64 -94
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +190 -379
- 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 +118 -99
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +170 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
- 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/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +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/Timestamp.sol/TimestampLib.json +2 -2
- 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 +71 -70
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +263 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +83 -59
- package/contracts/authorization/Authorization.sol +111 -40
- 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 +33 -41
- package/contracts/distribution/DistributionService.sol +109 -89
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -11
- 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 +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +366 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +16 -31
- package/contracts/instance/IInstanceService.sol +7 -29
- package/contracts/instance/Instance.sol +44 -59
- package/contracts/instance/InstanceAdmin.sol +76 -54
- package/contracts/instance/InstanceAuthorizationV3.sol +53 -34
- package/contracts/instance/InstanceReader.sol +203 -27
- package/contracts/instance/InstanceService.sol +97 -148
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +11 -1
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +10 -4
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +11 -8
- package/contracts/instance/module/IPolicy.sol +26 -25
- 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 +6 -16
- package/contracts/oracle/OracleService.sol +112 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +35 -26
- package/contracts/pool/BasicPoolAuthorization.sol +14 -4
- package/contracts/pool/BundleService.sol +105 -118
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +8 -20
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +52 -48
- package/contracts/pool/Pool.sol +145 -128
- package/contracts/pool/PoolService.sol +295 -208
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +71 -42
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +9 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +393 -127
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -7
- package/contracts/product/IPolicyService.sol +44 -38
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +23 -4
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +501 -294
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +54 -54
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +133 -93
- package/contracts/product/{ProductService.sol → RiskService.sol} +21 -13
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +57 -18
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +350 -201
- package/contracts/registry/RegistryAdmin.sol +147 -55
- package/contracts/registry/RegistryService.sol +35 -46
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +207 -206
- package/contracts/registry/ServiceAuthorizationV3.sol +59 -52
- package/contracts/shared/Component.sol +60 -121
- package/contracts/shared/ComponentService.sol +390 -345
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- 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 +6 -32
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +72 -47
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +27 -7
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +20 -18
- package/contracts/shared/TokenHandler.sol +358 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +11 -5
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +49 -50
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +65 -36
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/TargetManagerLib.sol +7 -3
- 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 +26 -11
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +30 -4
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/Seconds.sol +8 -0
- package/contracts/type/StateId.sol +15 -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/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/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/product/ProductServiceManager.sol +0 -39
- 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
|
-
import {
|
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
|
|
@@ -113,7 +115,6 @@ contract AccessAdmin is
|
|
113
115
|
|
114
116
|
_setAuthority(address(_authority)); // set authority for oz access managed
|
115
117
|
_createAdminAndPublicRoles();
|
116
|
-
_disableInitializers();
|
117
118
|
}
|
118
119
|
|
119
120
|
//--- view functions for roles ------------------------------------------//
|
@@ -219,18 +220,6 @@ contract AccessAdmin is
|
|
219
220
|
selector.toBytes4()));
|
220
221
|
}
|
221
222
|
|
222
|
-
function isAccessManaged(address target) public view returns (bool) {
|
223
|
-
if (!_isContract(target)) {
|
224
|
-
return false;
|
225
|
-
}
|
226
|
-
|
227
|
-
(bool success, ) = target.staticcall(
|
228
|
-
abi.encodeWithSelector(
|
229
|
-
AccessManagedUpgradeable.authority.selector));
|
230
|
-
|
231
|
-
return success;
|
232
|
-
}
|
233
|
-
|
234
223
|
function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
|
235
224
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
236
225
|
}
|
@@ -241,7 +230,8 @@ contract AccessAdmin is
|
|
241
230
|
adminRoleId: adminRoleId,
|
242
231
|
roleType: roleType,
|
243
232
|
maxMemberCount: maxMemberCount,
|
244
|
-
createdAt: TimestampLib.blockTimestamp()
|
233
|
+
createdAt: TimestampLib.blockTimestamp(),
|
234
|
+
pausedAt: TimestampLib.max()
|
245
235
|
});
|
246
236
|
}
|
247
237
|
|
@@ -349,7 +339,6 @@ contract AccessAdmin is
|
|
349
339
|
internal
|
350
340
|
{
|
351
341
|
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
352
|
-
FunctionInfo[] memory functions;
|
353
342
|
|
354
343
|
// setup admin role
|
355
344
|
_createRoleUnchecked(
|
@@ -373,14 +362,6 @@ contract AccessAdmin is
|
|
373
362
|
name: PUBLIC_ROLE_NAME}));
|
374
363
|
}
|
375
364
|
|
376
|
-
/// @dev check if target exists and reverts if it doesn't
|
377
|
-
function _checkTarget(address target)
|
378
|
-
internal
|
379
|
-
{
|
380
|
-
if (_targetInfo[target].createdAt.eqz()) {
|
381
|
-
revert ErrorTargetUnknown(target);
|
382
|
-
}
|
383
|
-
}
|
384
365
|
|
385
366
|
/// @dev grant the specified role access to all functions in the provided selector list
|
386
367
|
function _grantRoleAccessToFunctions(
|
@@ -398,22 +379,26 @@ contract AccessAdmin is
|
|
398
379
|
// implizit logging: rely on OpenZeppelin log TargetFunctionRoleUpdated
|
399
380
|
}
|
400
381
|
|
382
|
+
|
401
383
|
/// @dev grant the specified role to the provided account
|
402
384
|
function _grantRoleToAccount(RoleId roleId, address account)
|
403
385
|
internal
|
386
|
+
onlyExistingRole(roleId, true)
|
404
387
|
{
|
405
|
-
_checkRoleId(roleId);
|
406
|
-
|
407
388
|
// check max role members will not be exceeded
|
408
389
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
409
390
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
410
391
|
}
|
411
392
|
|
412
393
|
// check account is contract for contract role
|
413
|
-
|
414
|
-
|
394
|
+
if (
|
395
|
+
_roleInfo[roleId].roleType == RoleType.Contract &&
|
396
|
+
!ContractLib.isContract(account) // will fail in account's constructor
|
397
|
+
) {
|
398
|
+
revert ErrorRoleMemberNotContract(roleId, account);
|
415
399
|
}
|
416
400
|
|
401
|
+
// TODO check account already have roleId
|
417
402
|
_roleMembers[roleId].add(account);
|
418
403
|
_authority.grantRole(
|
419
404
|
RoleId.unwrap(roleId),
|
@@ -426,14 +411,15 @@ contract AccessAdmin is
|
|
426
411
|
/// @dev revoke the specified role from the provided account
|
427
412
|
function _revokeRoleFromAccount(RoleId roleId, address account)
|
428
413
|
internal
|
414
|
+
onlyExistingRole(roleId, false)
|
429
415
|
{
|
430
|
-
_checkRoleId(roleId);
|
431
416
|
|
432
417
|
// check role removal is permitted
|
433
418
|
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
434
|
-
revert
|
419
|
+
revert ErrorRoleMemberRemovalDisabled(roleId, account);
|
435
420
|
}
|
436
421
|
|
422
|
+
// TODO check account have roleId?
|
437
423
|
_roleMembers[roleId].remove(account);
|
438
424
|
_authority.revokeRole(
|
439
425
|
RoleId.unwrap(roleId),
|
@@ -443,21 +429,6 @@ contract AccessAdmin is
|
|
443
429
|
}
|
444
430
|
|
445
431
|
|
446
|
-
function _checkRoleId(RoleId roleId)
|
447
|
-
internal
|
448
|
-
{
|
449
|
-
if (_roleInfo[roleId].createdAt.eqz()) {
|
450
|
-
revert ErrorRoleUnknown(roleId);
|
451
|
-
}
|
452
|
-
|
453
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
454
|
-
if (roleIdInt == _authority.ADMIN_ROLE()
|
455
|
-
|| roleIdInt == _authority.PUBLIC_ROLE())
|
456
|
-
{
|
457
|
-
revert ErrorRoleIsLocked(roleId);
|
458
|
-
}
|
459
|
-
}
|
460
|
-
|
461
432
|
/// @dev Creates a role based on the provided parameters.
|
462
433
|
/// Checks that the provided role and role id and role name not already used.
|
463
434
|
function _createRole(
|
@@ -524,7 +495,6 @@ contract AccessAdmin is
|
|
524
495
|
bool custom
|
525
496
|
)
|
526
497
|
internal
|
527
|
-
nonReentrant()
|
528
498
|
{
|
529
499
|
// check target does not yet exist
|
530
500
|
if(targetExists(target)) {
|
@@ -548,7 +518,7 @@ contract AccessAdmin is
|
|
548
518
|
}
|
549
519
|
|
550
520
|
// check target is an access managed contract
|
551
|
-
if (!
|
521
|
+
if (!_isAccessManaged(target)) {
|
552
522
|
revert ErrorTargetNotAccessManaged(target);
|
553
523
|
}
|
554
524
|
|
@@ -576,16 +546,70 @@ contract AccessAdmin is
|
|
576
546
|
emit LogTargetCreated(target, targetName);
|
577
547
|
}
|
578
548
|
|
579
|
-
|
549
|
+
|
550
|
+
function _isAccessManaged(address target)
|
580
551
|
internal
|
581
|
-
view
|
552
|
+
view
|
582
553
|
returns (bool)
|
583
554
|
{
|
584
|
-
|
585
|
-
|
586
|
-
|
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);
|
587
613
|
}
|
588
|
-
return size > 0;
|
589
614
|
}
|
590
|
-
|
591
615
|
}
|