@etherisc/gif-next 0.0.2-dfb8aa3-070 → 0.0.2-e016345-525
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +944 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +711 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +53 -163
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +6 -68
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +121 -82
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -48
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +6 -50
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +23 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +50 -147
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +105 -186
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +79 -121
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +31 -117
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +168 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +403 -205
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -18
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +24 -17
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +96 -29
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +103 -72
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +303 -75
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +71 -48
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +36 -46
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +20 -130
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +6 -50
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +6 -68
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +84 -60
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +66 -22
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +6 -83
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -206
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +58 -70
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -57
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +6 -89
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +77 -75
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +6 -107
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +153 -159
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -33
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +58 -23
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +11 -68
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -66
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -47
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -7
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +38 -19
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -50
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +132 -121
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +70 -42
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +50 -34
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +56 -32
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +11 -68
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +34 -18
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +40 -16
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +24 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +62 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +107 -94
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +32 -16
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +39 -15
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +12 -12
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +6 -54
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +216 -410
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +65 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +402 -6
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +6 -36
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +107 -245
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +6 -50
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +6 -68
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +24 -72
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +80 -152
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +36 -20
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +43 -19
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +43 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +244 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +42 -0
- package/contracts/authorization/AccessAdmin.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +28 -26
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +29 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +22 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +7 -2
- package/contracts/instance/IInstanceService.sol +7 -9
- package/contracts/instance/Instance.sol +16 -9
- package/contracts/instance/InstanceAdmin.sol +20 -12
- package/contracts/instance/InstanceAuthorizationV3.sol +42 -14
- package/contracts/instance/InstanceReader.sol +86 -2
- package/contracts/instance/InstanceService.sol +38 -58
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +1 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/oracle/OracleService.sol +87 -69
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +23 -91
- package/contracts/pool/IBundleService.sol +2 -23
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +167 -96
- package/contracts/product/ApplicationService.sol +12 -12
- package/contracts/product/BasicProduct.sol +7 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +3 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/PolicyService.sol +241 -196
- package/contracts/product/Product.sol +12 -40
- package/contracts/product/RiskService.sol +14 -3
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/Registry.sol +9 -1
- package/contracts/registry/RegistryAdmin.sol +21 -12
- package/contracts/registry/ReleaseRegistry.sol +2 -18
- package/contracts/registry/ServiceAuthorizationV3.sol +22 -41
- package/contracts/shared/Component.sol +44 -90
- package/contracts/shared/ComponentService.sol +160 -212
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +196 -10
- package/contracts/shared/IComponent.sol +1 -13
- package/contracts/shared/IComponentService.sol +20 -24
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/Registerable.sol +0 -2
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +39 -21
- package/contracts/staking/StakingService.sol +41 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +10 -0
- package/contracts/type/RiskId.sol +18 -6
- package/package.json +3 -3
@@ -19,7 +19,7 @@ import {IProductComponent} from "./IProductComponent.sol";
|
|
19
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
20
|
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
21
|
import {PayoutId} from "../type/PayoutId.sol";
|
22
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
22
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
23
23
|
import {ReferralId} from "../type/Referral.sol";
|
24
24
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
25
25
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -40,15 +40,13 @@ abstract contract Product is
|
|
40
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
41
41
|
|
42
42
|
struct ProductStorage {
|
43
|
-
|
44
|
-
|
45
|
-
uint8 _numberOfOracles;
|
43
|
+
IComponents.ProductInfo _productInfo;
|
44
|
+
IComponentService _componentService;
|
46
45
|
IRiskService _riskService;
|
47
46
|
IApplicationService _applicationService;
|
48
47
|
IPolicyService _policyService;
|
49
48
|
IClaimService _claimService;
|
50
49
|
IPricingService _pricingService;
|
51
|
-
IComponentService _componentService;
|
52
50
|
}
|
53
51
|
|
54
52
|
|
@@ -125,38 +123,18 @@ abstract contract Product is
|
|
125
123
|
view
|
126
124
|
returns (IComponents.ProductInfo memory poolInfo)
|
127
125
|
{
|
128
|
-
|
129
|
-
|
130
|
-
return IComponents.ProductInfo({
|
131
|
-
isProcessingFundedClaims: false,
|
132
|
-
hasDistribution: $._hasDistribution,
|
133
|
-
expectedNumberOfOracles: $._numberOfOracles,
|
134
|
-
numberOfOracles: 0,
|
135
|
-
poolNftId: NftIdLib.zero(),
|
136
|
-
distributionNftId: NftIdLib.zero(),
|
137
|
-
oracleNftId: new NftId[]($._numberOfOracles),
|
138
|
-
productFee: FeeLib.zero(),
|
139
|
-
processingFee: FeeLib.zero(),
|
140
|
-
distributionFee: FeeLib.zero(),
|
141
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
142
|
-
poolFee: FeeLib.zero(),
|
143
|
-
stakingFee: FeeLib.zero(),
|
144
|
-
performanceFee: FeeLib.zero()
|
145
|
-
});
|
126
|
+
return _getProductStorage()._productInfo;
|
146
127
|
}
|
147
128
|
|
148
129
|
|
149
130
|
function _initializeProduct(
|
150
131
|
address registry,
|
151
132
|
NftId instanceNftId,
|
152
|
-
IAuthorization authorization,
|
153
|
-
address initialOwner,
|
154
133
|
string memory name,
|
155
134
|
address token,
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
uint8 numberOfOracles,
|
135
|
+
IComponents.ProductInfo memory productInfo,
|
136
|
+
IAuthorization authorization,
|
137
|
+
address initialOwner,
|
160
138
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
161
139
|
)
|
162
140
|
internal
|
@@ -170,15 +148,13 @@ abstract contract Product is
|
|
170
148
|
token,
|
171
149
|
PRODUCT(),
|
172
150
|
authorization,
|
173
|
-
|
151
|
+
productInfo.isInterceptingPolicyTransfers,
|
174
152
|
initialOwner,
|
175
153
|
componentData);
|
176
154
|
|
177
155
|
ProductStorage storage $ = _getProductStorage();
|
178
|
-
$.
|
179
|
-
$.
|
180
|
-
$._numberOfOracles = numberOfOracles;
|
181
|
-
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
156
|
+
$._productInfo = productInfo;
|
157
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
182
158
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
183
159
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
184
160
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
@@ -240,11 +216,6 @@ abstract contract Product is
|
|
240
216
|
}
|
241
217
|
|
242
218
|
|
243
|
-
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
244
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
245
|
-
}
|
246
|
-
|
247
|
-
|
248
219
|
function _createApplication(
|
249
220
|
address applicationOwner,
|
250
221
|
RiskId riskId,
|
@@ -277,8 +248,9 @@ abstract contract Product is
|
|
277
248
|
)
|
278
249
|
internal
|
279
250
|
virtual
|
251
|
+
returns (Amount premiumAmount)
|
280
252
|
{
|
281
|
-
_getProductStorage()._policyService.createPolicy(
|
253
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
282
254
|
applicationNftId,
|
283
255
|
activateAt);
|
284
256
|
}
|
@@ -9,11 +9,12 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
|
|
9
9
|
import {IRisk} from "../instance/module/IRisk.sol";
|
10
10
|
|
11
11
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
12
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
13
|
-
import {KEEP_STATE} from "../type/StateId.sol";
|
12
|
+
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY, RISK} from "../type/ObjectType.sol";
|
13
|
+
import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
|
14
14
|
import {NftId} from "../type/NftId.sol";
|
15
15
|
import {RiskId} from "../type/RiskId.sol";
|
16
16
|
import {StateId} from "../type/StateId.sol";
|
17
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
17
18
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
18
19
|
|
19
20
|
contract RiskService is
|
@@ -61,6 +62,10 @@ contract RiskService is
|
|
61
62
|
riskId,
|
62
63
|
riskInfo
|
63
64
|
);
|
65
|
+
|
66
|
+
// add risk to RiskSet
|
67
|
+
RiskSet riskSet = instance.getRiskSet();
|
68
|
+
riskSet.add(riskId);
|
64
69
|
}
|
65
70
|
|
66
71
|
|
@@ -87,10 +92,16 @@ contract RiskService is
|
|
87
92
|
{
|
88
93
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
89
94
|
instance.getInstanceStore().updateRiskState(riskId, state);
|
95
|
+
|
96
|
+
if (state == ACTIVE()) {
|
97
|
+
instance.getRiskSet().activate(riskId);
|
98
|
+
} else if (state == PAUSED()) {
|
99
|
+
instance.getRiskSet().pause(riskId);
|
100
|
+
}
|
90
101
|
}
|
91
102
|
|
92
103
|
|
93
104
|
function _getDomain() internal pure override returns(ObjectType) {
|
94
|
-
return
|
105
|
+
return RISK();
|
95
106
|
}
|
96
107
|
}
|
@@ -129,6 +129,8 @@ interface IRegistry is IERC165 {
|
|
129
129
|
|
130
130
|
function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
|
131
131
|
|
132
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
|
133
|
+
|
132
134
|
function getObjectAddress(NftId nftId) external view returns (address objectAddress);
|
133
135
|
|
134
136
|
/// @dev Returns the object info for the specified object address.
|
@@ -13,6 +13,7 @@ import {ObjectType, ObjectTypeLib, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE,
|
|
13
13
|
import {ChainNft} from "./ChainNft.sol";
|
14
14
|
import {IRegistry} from "./IRegistry.sol";
|
15
15
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
+
import {IStaking} from "../staking/IStaking.sol";
|
16
17
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
17
18
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
19
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
@@ -354,7 +355,12 @@ contract Registry is
|
|
354
355
|
return _info[nftId];
|
355
356
|
}
|
356
357
|
|
357
|
-
function isObjectType(
|
358
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
|
359
|
+
NftId nftId = _nftIdByAddress[contractAddress];
|
360
|
+
return isObjectType(nftId, expectedObjectType);
|
361
|
+
}
|
362
|
+
|
363
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) public view returns (bool) {
|
358
364
|
return _info[nftId].objectType == expectedObjectType;
|
359
365
|
}
|
360
366
|
|
@@ -635,6 +641,8 @@ contract Registry is
|
|
635
641
|
initialOwner: stakingOwner,
|
636
642
|
data: ""}),
|
637
643
|
true);
|
644
|
+
|
645
|
+
IStaking(_stakingAddress).initializeTokenHandler();
|
638
646
|
}
|
639
647
|
|
640
648
|
/// @dev Register the provided object info for the specified NFT ID.
|
@@ -10,6 +10,7 @@ import {IStaking} from "../staking/IStaking.sol";
|
|
10
10
|
import {ObjectType, ObjectTypeLib, ALL, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
|
11
11
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
12
12
|
import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
13
|
+
import {Staking} from "../staking/Staking.sol";
|
13
14
|
import {StakingStore} from "../staking/StakingStore.sol";
|
14
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
15
16
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
@@ -42,6 +43,7 @@ contract RegistryAdmin is
|
|
42
43
|
string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
|
43
44
|
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
44
45
|
string public constant STAKING_TARGET_NAME = "Staking";
|
46
|
+
string public constant STAKING_TH_TARGET_NAME = "StakingTH";
|
45
47
|
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
46
48
|
|
47
49
|
uint8 public constant MAX_NUM_RELEASES = 99;
|
@@ -363,8 +365,15 @@ contract RegistryAdmin is
|
|
363
365
|
onlyInitializing()
|
364
366
|
{
|
365
367
|
_createTarget(_staking, STAKING_TARGET_NAME, true, false);
|
368
|
+
_createTarget(address(IStaking(_staking).getTokenHandler()), STAKING_TH_TARGET_NAME, true, false);
|
366
369
|
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
|
367
370
|
|
371
|
+
// staking function authorization for public role
|
372
|
+
FunctionInfo[] memory functions;
|
373
|
+
functions = new FunctionInfo[](1);
|
374
|
+
functions[0] = toFunction(Staking.approveTokenHandler.selector, "approveTokenHandler");
|
375
|
+
_authorizeTargetFunctions(_staking, PUBLIC_ROLE(), functions); // only owner protected
|
376
|
+
|
368
377
|
// staking function authorization for staking service
|
369
378
|
RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
|
370
379
|
_createRole(
|
@@ -375,8 +384,7 @@ contract RegistryAdmin is
|
|
375
384
|
maxMemberCount: MAX_NUM_RELEASES,
|
376
385
|
name: STAKING_SERVICE_ROLE_NAME}));
|
377
386
|
|
378
|
-
FunctionInfo[]
|
379
|
-
functions = new FunctionInfo[](13);
|
387
|
+
functions = new FunctionInfo[](12);
|
380
388
|
functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
|
381
389
|
functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
382
390
|
functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
|
@@ -388,9 +396,18 @@ contract RegistryAdmin is
|
|
388
396
|
functions[8] = toFunction(IStaking.restake.selector, "restake");
|
389
397
|
functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
|
390
398
|
functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
|
391
|
-
functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
|
392
|
-
functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
|
393
399
|
_authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
|
400
|
+
|
401
|
+
// grant token handler authorizations
|
402
|
+
IStaking staking = IStaking(_staking);
|
403
|
+
functions = new FunctionInfo[](2);
|
404
|
+
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
405
|
+
functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
406
|
+
|
407
|
+
_authorizeTargetFunctions(
|
408
|
+
address(staking.getTokenHandler()),
|
409
|
+
stakingServiceRoleId,
|
410
|
+
functions);
|
394
411
|
|
395
412
|
// staking function authorization for pool service
|
396
413
|
RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
|
@@ -436,13 +453,5 @@ contract RegistryAdmin is
|
|
436
453
|
_authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
|
437
454
|
|
438
455
|
_grantRoleToAccount(stakingRoleId, _staking);
|
439
|
-
|
440
|
-
// grant token handler authorizations
|
441
|
-
IStaking staking = IStaking(_staking);
|
442
|
-
functions = new FunctionInfo[](2);
|
443
|
-
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
444
|
-
functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
445
|
-
|
446
|
-
_authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
|
447
456
|
}
|
448
457
|
}
|
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
6
|
|
7
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
7
8
|
import {NftId} from "../type/NftId.sol";
|
8
9
|
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
9
10
|
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
@@ -76,8 +77,7 @@ contract ReleaseRegistry is
|
|
76
77
|
constructor(Registry registry)
|
77
78
|
AccessManaged(msg.sender)
|
78
79
|
{
|
79
|
-
|
80
|
-
if(!_isRegistry(address(registry))) {
|
80
|
+
if (!ContractLib.isRegistry(address(registry))) {
|
81
81
|
revert ErrorReleaseRegistryNotRegistry(registry);
|
82
82
|
}
|
83
83
|
|
@@ -481,21 +481,5 @@ contract ReleaseRegistry is
|
|
481
481
|
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
482
482
|
}
|
483
483
|
}
|
484
|
-
|
485
|
-
/// @dev returns true iff a the address passes some simple proxy tests.
|
486
|
-
function _isRegistry(address registryAddress) internal view returns (bool) {
|
487
|
-
|
488
|
-
// zero address is certainly not registry
|
489
|
-
if (registryAddress == address(0)) {
|
490
|
-
return false;
|
491
|
-
}
|
492
|
-
// TODO try catch and return false in case of revert or just panic
|
493
|
-
// check if contract returns a zero nft id for its own address
|
494
|
-
if (IRegistry(registryAddress).getNftIdForAddress(registryAddress).eqz()) {
|
495
|
-
return false;
|
496
|
-
}
|
497
|
-
|
498
|
-
return true;
|
499
|
-
}
|
500
484
|
}
|
501
485
|
|
@@ -2,13 +2,12 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
ALL, REGISTRY,
|
5
|
+
ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
8
|
import {IAccess} from "../authorization/IAccess.sol";
|
9
9
|
import {IBundleService} from "../pool/IBundleService.sol";
|
10
10
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
11
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
12
11
|
import {IPoolService} from "../pool/IPoolService.sol";
|
13
12
|
import {IStakingService} from "../staking/IStakingService.sol";
|
14
13
|
import {IRegistryService} from "./IRegistryService.sol";
|
@@ -30,16 +29,17 @@ contract ServiceAuthorizationV3
|
|
30
29
|
_authorizeDomain(REGISTRY(), address(1));
|
31
30
|
_authorizeDomain(STAKING(), address(2));
|
32
31
|
_authorizeDomain(INSTANCE(), address(3));
|
33
|
-
_authorizeDomain(
|
34
|
-
_authorizeDomain(
|
35
|
-
_authorizeDomain(
|
36
|
-
_authorizeDomain(
|
37
|
-
_authorizeDomain(
|
38
|
-
_authorizeDomain(
|
39
|
-
_authorizeDomain(
|
40
|
-
_authorizeDomain(
|
41
|
-
_authorizeDomain(
|
42
|
-
_authorizeDomain(
|
32
|
+
_authorizeDomain(ACCOUNTING(), address(4));
|
33
|
+
_authorizeDomain(COMPONENT(), address(5));
|
34
|
+
_authorizeDomain(DISTRIBUTION(), address(6));
|
35
|
+
_authorizeDomain(PRICE(), address(7));
|
36
|
+
_authorizeDomain(BUNDLE(), address(8));
|
37
|
+
_authorizeDomain(POOL(), address(9));
|
38
|
+
_authorizeDomain(ORACLE(), address(10));
|
39
|
+
_authorizeDomain(RISK(), address(11));
|
40
|
+
_authorizeDomain(POLICY(), address(12));
|
41
|
+
_authorizeDomain(CLAIM(), address(13));
|
42
|
+
_authorizeDomain(APPLICATION(), address(14));
|
43
43
|
}
|
44
44
|
|
45
45
|
|
@@ -113,11 +113,6 @@ contract ServiceAuthorizationV3
|
|
113
113
|
function _setupInstanceServiceAuthorization()
|
114
114
|
internal
|
115
115
|
{
|
116
|
-
// TODO cleanup
|
117
|
-
// IAccess.FunctionInfo[] storage functions;
|
118
|
-
|
119
|
-
// functions = _authorizeForService(INSTANCE(), COMPONENT());
|
120
|
-
// _authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
121
116
|
}
|
122
117
|
|
123
118
|
|
@@ -125,28 +120,6 @@ contract ServiceAuthorizationV3
|
|
125
120
|
function _setupComponentServiceAuthorization()
|
126
121
|
internal
|
127
122
|
{
|
128
|
-
// TODO cleanup
|
129
|
-
// authz.authorizations = new DomainAuthorization[](4);
|
130
|
-
|
131
|
-
// authz.authorizations[0].domain = POLICY();
|
132
|
-
// _functions = new IAccessAdmin.Function[](1);
|
133
|
-
// __authorize(ComponentService.increaseProductFees.selector, "increaseProductFees"));
|
134
|
-
// authz.authorizations[0].functions = _functions;
|
135
|
-
|
136
|
-
// authz.authorizations[1].domain = DISTRIBUTION();
|
137
|
-
// _functions = new IAccessAdmin.Function[](1);
|
138
|
-
// __authorize(ComponentService.increaseDistributionBalance.selector, "increaseDistributionBalance"));
|
139
|
-
// authz.authorizations[1].functions = _functions;
|
140
|
-
|
141
|
-
// authz.authorizations[2].domain = POOL();
|
142
|
-
// _functions = new IAccessAdmin.Function[](1);
|
143
|
-
// __authorize(ComponentService.increasePoolBalance.selector, "increasePoolBalance"));
|
144
|
-
// authz.authorizations[2].functions = _functions;
|
145
|
-
|
146
|
-
// authz.authorizations[3].domain = BUNDLE();
|
147
|
-
// _functions = new IAccessAdmin.Function[](1);
|
148
|
-
// __authorize(ComponentService.increaseBundleBalance.selector, "increaseBundleBalance"));
|
149
|
-
// authz.authorizations[3].functions = _functions;
|
150
123
|
}
|
151
124
|
|
152
125
|
/// @dev Distribution service function authorization.
|
@@ -184,11 +157,19 @@ contract ServiceAuthorizationV3
|
|
184
157
|
IAccess.FunctionInfo[] storage functions;
|
185
158
|
|
186
159
|
functions = _authorizeForService(BUNDLE(), POOL());
|
187
|
-
_authorize(functions, IBundleService.
|
160
|
+
_authorize(functions, IBundleService.stake.selector, "stake");
|
161
|
+
_authorize(functions, IBundleService.unstake.selector, "unstake");
|
188
162
|
_authorize(functions, IBundleService.close.selector, "close");
|
189
163
|
_authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
|
190
164
|
_authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
|
191
|
-
|
165
|
+
|
166
|
+
functions = _authorizeForService(BUNDLE(), ALL());
|
167
|
+
_authorize(functions, IBundleService.create.selector, "create");
|
168
|
+
_authorize(functions, IBundleService.extend.selector, "extend");
|
169
|
+
_authorize(functions, IBundleService.lock.selector, "lock");
|
170
|
+
_authorize(functions, IBundleService.unlock.selector, "unlock");
|
171
|
+
_authorize(functions, IBundleService.setFee.selector, "setFee");
|
172
|
+
_authorize(functions, IBundleService.withdrawBundleFees.selector, "withdrawBundleFees");
|
192
173
|
}
|
193
174
|
}
|
194
175
|
|
@@ -4,16 +4,15 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
6
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
7
|
|
9
|
-
import {Amount
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
10
9
|
import {IComponent} from "./IComponent.sol";
|
11
10
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
|
-
import {
|
13
|
-
import {
|
11
|
+
import {IComponentService} from "./IComponentService.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
|
14
14
|
import {Registerable} from "../shared/Registerable.sol";
|
15
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
|
-
import {VersionPartLib} from "../type/Version.sol";
|
17
16
|
|
18
17
|
abstract contract Component is
|
19
18
|
AccessManagedUpgradeable,
|
@@ -26,9 +25,9 @@ abstract contract Component is
|
|
26
25
|
struct ComponentStorage {
|
27
26
|
string _name; // unique (per instance) component name
|
28
27
|
IERC20Metadata _token; // token for this component
|
29
|
-
address _wallet;
|
30
28
|
bool _isInterceptor;
|
31
29
|
bytes _data;
|
30
|
+
IComponentService _componentService;
|
32
31
|
}
|
33
32
|
|
34
33
|
|
@@ -39,12 +38,14 @@ abstract contract Component is
|
|
39
38
|
_;
|
40
39
|
}
|
41
40
|
|
41
|
+
|
42
42
|
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
43
43
|
assembly {
|
44
44
|
$.slot := COMPONENT_LOCATION_V1
|
45
45
|
}
|
46
46
|
}
|
47
47
|
|
48
|
+
|
48
49
|
function _initializeComponent(
|
49
50
|
address authority,
|
50
51
|
address registry,
|
@@ -83,74 +84,23 @@ abstract contract Component is
|
|
83
84
|
ComponentStorage storage $ = _getComponentStorage();
|
84
85
|
$._name = name;
|
85
86
|
$._token = IERC20Metadata(token);
|
86
|
-
$._wallet = address(this);
|
87
87
|
$._isInterceptor = isInterceptor;
|
88
88
|
$._data = componentData;
|
89
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
89
90
|
|
90
91
|
_registerInterface(type(IAccessManaged).interfaceId);
|
91
92
|
_registerInterface(type(IComponent).interfaceId);
|
92
93
|
}
|
93
94
|
|
94
95
|
|
95
|
-
function
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
/// @dev Approves the component's token hander to spend tokens up to the specified limit.
|
104
|
-
/// When the spending limit amount equals AmountLib.max it is set to type(uint256).max.
|
105
|
-
function approveTokenHandler(address token, Amount spendingLimitAmount)
|
106
|
-
public
|
107
|
-
virtual
|
108
|
-
onlyOwner
|
109
|
-
{
|
110
|
-
if(getWallet() != address(this)) {
|
111
|
-
revert ErrorComponentWalletNotComponent();
|
112
|
-
}
|
113
|
-
|
114
|
-
uint256 spendingLimit = spendingLimitAmount.toInt();
|
115
|
-
bool isMaxAmount = false;
|
116
|
-
if (spendingLimitAmount == AmountLib.max()) {
|
117
|
-
spendingLimit = type(uint256).max;
|
118
|
-
isMaxAmount = true;
|
119
|
-
}
|
120
|
-
|
121
|
-
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount, isMaxAmount);
|
122
|
-
|
123
|
-
IERC20Metadata(token).approve(
|
124
|
-
address(getTokenHandler()),
|
125
|
-
spendingLimit);
|
126
|
-
}
|
127
|
-
|
128
|
-
function setWallet(address newWallet)
|
129
|
-
external
|
130
|
-
virtual
|
131
|
-
override
|
132
|
-
onlyOwner
|
133
|
-
{
|
134
|
-
// checks
|
135
|
-
address currentWallet = getWallet();
|
136
|
-
uint256 currentBalance = getToken().balanceOf(currentWallet);
|
137
|
-
|
138
|
-
// effects
|
139
|
-
_setWallet(newWallet);
|
140
|
-
|
141
|
-
// interactions
|
142
|
-
if (currentBalance > 0) {
|
143
|
-
// move tokens from old to new wallet
|
144
|
-
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
145
|
-
|
146
|
-
if (currentWallet == address(this)) {
|
147
|
-
// transfer from the component requires an allowance
|
148
|
-
getTokenHandler().distributeTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
|
149
|
-
} else {
|
150
|
-
getTokenHandler().collectTokens(currentWallet, newWallet, AmountLib.toAmount(currentBalance));
|
151
|
-
}
|
152
|
-
}
|
153
|
-
}
|
96
|
+
// function setWallet(address newWallet)
|
97
|
+
// external
|
98
|
+
// virtual
|
99
|
+
// override
|
100
|
+
// onlyOwner
|
101
|
+
// {
|
102
|
+
// _setWallet(newWallet);
|
103
|
+
// }
|
154
104
|
|
155
105
|
/// @dev callback function for nft transfers
|
156
106
|
/// may only be called by chain nft contract.
|
@@ -164,7 +114,7 @@ abstract contract Component is
|
|
164
114
|
|
165
115
|
|
166
116
|
function getWallet() public view virtual returns (address walletAddress) {
|
167
|
-
return
|
117
|
+
return getTokenHandler().getWallet();
|
168
118
|
}
|
169
119
|
|
170
120
|
function getTokenHandler() public virtual view returns (TokenHandler tokenHandler) {
|
@@ -208,12 +158,18 @@ abstract contract Component is
|
|
208
158
|
}
|
209
159
|
|
210
160
|
|
211
|
-
/// @dev
|
212
|
-
///
|
213
|
-
|
161
|
+
/// @dev Approves token hanlder to spend up to the specified amount of tokens.
|
162
|
+
/// Reverts if component wallet is not token handler itself.
|
163
|
+
/// Only component owner (nft holder) is authorizes to call this function.
|
164
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
214
165
|
internal
|
215
166
|
virtual
|
216
|
-
{
|
167
|
+
{
|
168
|
+
_getComponentStorage()._componentService.approveTokenHandler(
|
169
|
+
token,
|
170
|
+
amount);
|
171
|
+
}
|
172
|
+
|
217
173
|
|
218
174
|
/// @dev internal function for nft transfers.
|
219
175
|
/// handling logic that deals with nft transfers need to overwrite this function
|
@@ -225,21 +181,20 @@ abstract contract Component is
|
|
225
181
|
|
226
182
|
/// @dev depending on the source of the component information this function needs to be overwritten.
|
227
183
|
/// eg for instance linked components that externally store this information with the instance store contract
|
228
|
-
function _setWallet(
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
if (newWallet == currentWallet) {
|
237
|
-
revert ErrorComponentWalletAddressIsSameAsCurrent();
|
238
|
-
}
|
239
|
-
|
240
|
-
$._wallet = newWallet;
|
241
|
-
emit LogComponentWalletAddressChanged(currentWallet, newWallet);
|
184
|
+
function _setWallet(
|
185
|
+
address newWallet
|
186
|
+
)
|
187
|
+
internal
|
188
|
+
virtual
|
189
|
+
{
|
190
|
+
_getComponentStorage()._componentService.setWallet(newWallet);
|
191
|
+
}
|
242
192
|
|
193
|
+
function _setLocked(bool locked)
|
194
|
+
internal
|
195
|
+
virtual
|
196
|
+
{
|
197
|
+
_getComponentStorage()._componentService.setLockedFromComponent(address(this), locked);
|
243
198
|
}
|
244
199
|
|
245
200
|
|
@@ -252,14 +207,13 @@ abstract contract Component is
|
|
252
207
|
name: $._name,
|
253
208
|
token: $._token,
|
254
209
|
tokenHandler: TokenHandler(address(0)),
|
255
|
-
wallet: $._wallet, // initial wallet address
|
256
210
|
data: $._data // user specific component data
|
257
211
|
});
|
258
212
|
}
|
259
213
|
|
260
|
-
|
261
|
-
|
262
|
-
|
214
|
+
/// @dev returns the service address for the specified domain
|
215
|
+
/// gets address via lookup from registry using the major version form the linked instance
|
216
|
+
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
217
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
263
218
|
}
|
264
|
-
|
265
219
|
}
|