@etherisc/gif-next 0.0.2-754ba48-078 → 0.0.2-7560591-936
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 +53 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +8 -8
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +40 -40
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +6 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +33 -33
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +18 -18
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +19 -19
- 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 +5 -5
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +5 -5
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.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 +32 -145
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +20 -20
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1 -87
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +90 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -67
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1 -87
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +4 -4
- 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 +44 -74
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +20 -20
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +89 -119
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +20 -20
- 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 +39 -174
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +20 -20
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +18 -61
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +69 -112
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +20 -20
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +93 -136
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +20 -20
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +19 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +8 -2
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +36 -13
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +81 -81
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +26 -26
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -200
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +34 -28
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +37 -37
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +344 -354
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- 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/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +10 -31
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +20 -20
- 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 +0 -21
- 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 +0 -21
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +45 -45
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +22 -43
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +20 -20
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +60 -60
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -53
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +6 -6
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +10 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +18 -18
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +10 -31
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +34 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +42 -42
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +55 -55
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +12 -12
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +38 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +27 -48
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +20 -20
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +64 -64
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -64
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- 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/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 +21 -42
- 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 +60 -60
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +32 -32
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -55
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +32 -72
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +45 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +21 -42
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +38 -38
- 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 +15 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.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 +17 -17
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +83 -83
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +31 -31
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +33 -33
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +91 -91
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +88 -88
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -14
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -81
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +59 -55
- 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 +2 -2
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +43 -27
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -21
- 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 +0 -21
- 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/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/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 +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +9 -30
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +4 -4
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +67 -96
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +42 -42
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +47 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +21 -21
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +20 -20
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +38 -38
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +159 -159
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -59
- 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 +10 -10
- 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/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- 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/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- 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 -18
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/IAccountingService.sol +2 -2
- package/contracts/authorization/IAccess.sol +13 -5
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/Distribution.sol +3 -48
- package/contracts/distribution/DistributionService.sol +28 -28
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
- package/contracts/instance/IInstance.sol +2 -1
- package/contracts/instance/IInstanceService.sol +5 -1
- package/contracts/instance/Instance.sol +11 -3
- package/contracts/instance/InstanceService.sol +11 -14
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +0 -2
- package/contracts/pool/BasicPool.sol +0 -2
- package/contracts/pool/Pool.sol +0 -2
- package/contracts/pool/PoolService.sol +1 -3
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/PricingService.sol +6 -6
- package/contracts/product/Product.sol +0 -2
- package/contracts/registry/IRegistry.sol +4 -0
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/TokenRegistry.sol +4 -1
- package/contracts/shared/Component.sol +8 -25
- package/contracts/shared/ComponentService.sol +34 -15
- package/contracts/shared/IComponent.sol +0 -3
- package/contracts/shared/IComponentService.sol +5 -3
- package/contracts/shared/InstanceLinkedComponent.sol +0 -2
- package/contracts/staking/IStaking.sol +7 -3
- package/contracts/staking/Staking.sol +2 -2
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/upgradeability/ProxyManager.sol +11 -9
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/package.json +1 -1
@@ -12,29 +12,38 @@ import {Timestamp} from "../../type/Timestamp.sol";
|
|
12
12
|
interface IPolicy {
|
13
13
|
|
14
14
|
struct PremiumInfo {
|
15
|
+
// slot 0
|
15
16
|
// premium splitting per target wallet
|
16
17
|
Amount productFeeAmount;
|
17
18
|
Amount distributionFeeAndCommissionAmount;
|
19
|
+
// slot 1
|
18
20
|
Amount poolPremiumAndFeeAmount;
|
19
21
|
|
20
22
|
// detailed positions
|
21
23
|
// this is the net premium calculated by the product
|
22
24
|
Amount netPremiumAmount;
|
25
|
+
// slot 2
|
23
26
|
// fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
|
24
27
|
Amount fullPremiumAmount;
|
25
28
|
// effective premium = fullPremium - discount
|
26
29
|
Amount premiumAmount;
|
30
|
+
// slot 3
|
27
31
|
Amount productFeeFixAmount;
|
28
32
|
Amount poolFeeFixAmount;
|
33
|
+
// slot 4
|
29
34
|
Amount bundleFeeFixAmount;
|
30
35
|
Amount distributionFeeFixAmount;
|
36
|
+
// slot 5
|
31
37
|
Amount productFeeVarAmount;
|
32
38
|
Amount poolFeeVarAmount;
|
39
|
+
// slot 6
|
33
40
|
Amount bundleFeeVarAmount;
|
34
41
|
Amount distributionFeeVarAmount;
|
42
|
+
// slot 7
|
35
43
|
Amount distributionOwnerFeeFixAmount;
|
36
44
|
// this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
|
37
45
|
Amount distributionOwnerFeeVarAmount;
|
46
|
+
// slot 8
|
38
47
|
// this value is based on distributor type referenced in the referral
|
39
48
|
Amount commissionAmount;
|
40
49
|
// this is based on referral used
|
@@ -43,43 +52,54 @@ interface IPolicy {
|
|
43
52
|
|
44
53
|
/// @dev policy data for the full policy lifecycle
|
45
54
|
struct PolicyInfo {
|
46
|
-
//
|
55
|
+
// slot 0
|
47
56
|
NftId productNftId;
|
48
57
|
NftId bundleNftId;
|
49
|
-
ReferralId referralId;
|
50
58
|
RiskId riskId;
|
59
|
+
// slot 1
|
51
60
|
Amount sumInsuredAmount;
|
52
61
|
Amount premiumAmount; // expected premium at application time
|
53
|
-
|
54
|
-
|
55
|
-
// policy data that may change during the lifecycle
|
56
|
-
bytes processData;
|
62
|
+
ReferralId referralId;
|
63
|
+
// slot 2
|
57
64
|
uint16 claimsCount;
|
58
65
|
uint16 openClaimsCount;
|
59
66
|
Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
|
60
67
|
Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
|
68
|
+
// slot 3
|
61
69
|
Timestamp activatedAt; // time of underwriting
|
70
|
+
Seconds lifetime;
|
62
71
|
Timestamp expiredAt; // no new claims (activatedAt + lifetime)
|
63
72
|
Timestamp closedAt; // no locked capital (or declinedAt)
|
73
|
+
// slot 4
|
74
|
+
bytes applicationData;
|
75
|
+
// slot 5
|
76
|
+
bytes processData;
|
64
77
|
}
|
65
78
|
|
66
79
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
67
80
|
struct ClaimInfo {
|
81
|
+
// slot 0
|
68
82
|
Amount claimAmount;
|
69
83
|
Amount paidAmount;
|
84
|
+
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
70
85
|
uint24 payoutsCount;
|
86
|
+
// slot 1
|
71
87
|
uint24 openPayoutsCount;
|
88
|
+
// slot 2
|
72
89
|
bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
|
90
|
+
// slot 3
|
73
91
|
bytes processData; // use case specific data that may include information supporting confirm or decline
|
74
|
-
Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
|
75
92
|
}
|
76
93
|
|
77
94
|
// claimId neeeds to be encoded policyNftId:claimId combination
|
78
95
|
struct PayoutInfo {
|
96
|
+
// slot 0
|
79
97
|
ClaimId claimId;
|
80
98
|
Amount amount;
|
99
|
+
Timestamp paidAt; // timestamp for actual payout
|
100
|
+
// slot 1
|
81
101
|
address beneficiary; // for address(0) beneficiary is policy nft owner
|
102
|
+
// slot 2
|
82
103
|
bytes data; // use case specific supporting data
|
83
|
-
Timestamp paidAt; // timestamp for actual payout
|
84
104
|
}
|
85
105
|
}
|
@@ -27,8 +27,7 @@ contract BasicOracle is
|
|
27
27
|
NftId instanceNftId,
|
28
28
|
IAuthorization authorization,
|
29
29
|
address initialOwner,
|
30
|
-
string memory name
|
31
|
-
address token
|
30
|
+
string memory name
|
32
31
|
)
|
33
32
|
internal
|
34
33
|
virtual
|
@@ -41,7 +40,6 @@ contract BasicOracle is
|
|
41
40
|
authorization,
|
42
41
|
initialOwner,
|
43
42
|
name,
|
44
|
-
token,
|
45
43
|
"");
|
46
44
|
}
|
47
45
|
}
|
@@ -9,14 +9,19 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
9
9
|
interface IOracle {
|
10
10
|
|
11
11
|
struct RequestInfo {
|
12
|
+
// slot 0
|
12
13
|
NftId requesterNftId; // originator of the request
|
13
|
-
string callbackMethodName; // callback function of the requestor to call to provide response data
|
14
14
|
NftId oracleNftId; // responsible oracle component
|
15
|
-
|
16
|
-
bytes responseData;
|
15
|
+
bool isCancelled;
|
17
16
|
Timestamp respondedAt; // response timestamp
|
17
|
+
// slot 1
|
18
18
|
Timestamp expiredAt; // expiry timestamp
|
19
|
-
|
19
|
+
// slot 2
|
20
|
+
string callbackMethodName; // callback function of the requestor to call to provide response data
|
21
|
+
// slot 3
|
22
|
+
bytes requestData;
|
23
|
+
// slot 4
|
24
|
+
bytes responseData;
|
20
25
|
}
|
21
26
|
|
22
27
|
|
@@ -81,7 +81,6 @@ abstract contract Oracle is
|
|
81
81
|
IAuthorization authorization,
|
82
82
|
address initialOwner,
|
83
83
|
string memory name,
|
84
|
-
address token,
|
85
84
|
bytes memory componentData // component specifidc data
|
86
85
|
)
|
87
86
|
internal
|
@@ -92,7 +91,6 @@ abstract contract Oracle is
|
|
92
91
|
registry,
|
93
92
|
productNftId,
|
94
93
|
name,
|
95
|
-
token,
|
96
94
|
ORACLE(),
|
97
95
|
authorization,
|
98
96
|
true,
|
@@ -21,7 +21,6 @@ abstract contract BasicPool is
|
|
21
21
|
address registry,
|
22
22
|
NftId productNftId,
|
23
23
|
string memory name,
|
24
|
-
address token,
|
25
24
|
IComponents.PoolInfo memory poolInfo,
|
26
25
|
IAuthorization authorization,
|
27
26
|
address initialOwner
|
@@ -34,7 +33,6 @@ abstract contract BasicPool is
|
|
34
33
|
registry,
|
35
34
|
productNftId,
|
36
35
|
name,
|
37
|
-
token,
|
38
36
|
poolInfo,
|
39
37
|
authorization,
|
40
38
|
initialOwner,
|
package/contracts/pool/Pool.sol
CHANGED
@@ -127,7 +127,6 @@ abstract contract Pool is
|
|
127
127
|
address registry,
|
128
128
|
NftId productNftId,
|
129
129
|
string memory name,
|
130
|
-
address token,
|
131
130
|
IComponents.PoolInfo memory poolInfo,
|
132
131
|
IAuthorization authorization,
|
133
132
|
address initialOwner,
|
@@ -141,7 +140,6 @@ abstract contract Pool is
|
|
141
140
|
registry,
|
142
141
|
productNftId,
|
143
142
|
name,
|
144
|
-
token,
|
145
143
|
POOL(),
|
146
144
|
authorization,
|
147
145
|
poolInfo.isInterceptingBundleTransfers,
|
@@ -466,9 +466,7 @@ contract PoolService is
|
|
466
466
|
payoutAmount);
|
467
467
|
|
468
468
|
// update value locked with staking service
|
469
|
-
TokenHandler poolTokenHandler =
|
470
|
-
instanceReader.getTokenHandler(
|
471
|
-
poolNftId));
|
469
|
+
TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
|
472
470
|
|
473
471
|
_staking.decreaseTotalValueLocked(
|
474
472
|
instanceReader.getInstanceNftId(),
|
@@ -27,7 +27,6 @@ abstract contract BasicProduct is
|
|
27
27
|
address registry,
|
28
28
|
NftId instanceNftId,
|
29
29
|
string memory name,
|
30
|
-
address token,
|
31
30
|
IComponents.ProductInfo memory productInfo,
|
32
31
|
IComponents.FeeInfo memory feeInfo,
|
33
32
|
IAuthorization authorization,
|
@@ -41,7 +40,6 @@ abstract contract BasicProduct is
|
|
41
40
|
registry,
|
42
41
|
instanceNftId,
|
43
42
|
name,
|
44
|
-
token,
|
45
43
|
productInfo,
|
46
44
|
feeInfo,
|
47
45
|
authorization,
|
@@ -145,7 +145,7 @@ contract PricingService is
|
|
145
145
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
146
146
|
}
|
147
147
|
|
148
|
-
if (premium.distributionOwnerFeeFixAmount
|
148
|
+
if (premium.distributionOwnerFeeFixAmount < feeInfo.minDistributionOwnerFee.fixedFee) {
|
149
149
|
revert ErrorPricingServiceFeeCalculationMismatch(
|
150
150
|
premium.distributionFeeFixAmount,
|
151
151
|
premium.distributionFeeVarAmount,
|
@@ -185,19 +185,19 @@ contract PricingService is
|
|
185
185
|
premium.netPremiumAmount = netPremiumAmount;
|
186
186
|
premium.fullPremiumAmount = netPremiumAmount;
|
187
187
|
|
188
|
-
Amount t =
|
188
|
+
Amount t = feeInfo.productFee.fixedFee;
|
189
189
|
premium.productFeeFixAmount = t;
|
190
190
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
191
191
|
|
192
|
-
t =
|
192
|
+
t = feeInfo.poolFee.fixedFee;
|
193
193
|
premium.poolFeeFixAmount = t;
|
194
194
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
195
195
|
|
196
|
-
t =
|
196
|
+
t = bundleInfo.fee.fixedFee;
|
197
197
|
premium.bundleFeeFixAmount = t;
|
198
198
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
199
199
|
|
200
|
-
t =
|
200
|
+
t = feeInfo.distributionFee.fixedFee;
|
201
201
|
premium.distributionFeeFixAmount = t;
|
202
202
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
203
203
|
}
|
@@ -267,7 +267,7 @@ contract PricingService is
|
|
267
267
|
Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
|
268
268
|
premium.commissionAmount = commissionAmount;
|
269
269
|
premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
|
270
|
-
premium.distributionOwnerFeeFixAmount =
|
270
|
+
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
271
271
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
272
272
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
273
273
|
}
|
@@ -135,7 +135,6 @@ abstract contract Product is
|
|
135
135
|
address registry,
|
136
136
|
NftId instanceNftId,
|
137
137
|
string memory name,
|
138
|
-
address token,
|
139
138
|
IComponents.ProductInfo memory productInfo,
|
140
139
|
IComponents.FeeInfo memory feeInfo,
|
141
140
|
IAuthorization authorization,
|
@@ -150,7 +149,6 @@ abstract contract Product is
|
|
150
149
|
registry,
|
151
150
|
instanceNftId,
|
152
151
|
name,
|
153
|
-
token,
|
154
152
|
PRODUCT(),
|
155
153
|
authorization,
|
156
154
|
productInfo.isInterceptingPolicyTransfers,
|
@@ -52,12 +52,16 @@ interface IRegistry is
|
|
52
52
|
error ErrorRegistryContractAlreadyRegistered(address objectAddress);
|
53
53
|
|
54
54
|
struct ObjectInfo {
|
55
|
+
// slot 0
|
55
56
|
NftId nftId;
|
56
57
|
NftId parentNftId;
|
57
58
|
ObjectType objectType;
|
58
59
|
bool isInterceptor;
|
60
|
+
// slot 1
|
59
61
|
address objectAddress;
|
62
|
+
// slot 2
|
60
63
|
address initialOwner;
|
64
|
+
// slot 3
|
61
65
|
bytes data;
|
62
66
|
}
|
63
67
|
|
@@ -11,13 +11,16 @@ import {VersionPart} from "../type/Version.sol";
|
|
11
11
|
interface IRelease {
|
12
12
|
|
13
13
|
struct ReleaseInfo {
|
14
|
+
// slot 0
|
15
|
+
address releaseAdmin;
|
14
16
|
StateId state;
|
15
17
|
VersionPart version;
|
16
|
-
bytes32 salt;
|
17
|
-
IServiceAuthorization auth;
|
18
|
-
address releaseAdmin;
|
19
18
|
Timestamp activatedAt;
|
20
19
|
Timestamp disabledAt;
|
20
|
+
// slot 1
|
21
|
+
IServiceAuthorization auth;
|
22
|
+
// slot 2
|
23
|
+
bytes32 salt;
|
21
24
|
}
|
22
25
|
|
23
26
|
/// @dev Registers a registry contract for a specified chain.
|
@@ -35,10 +35,13 @@ contract TokenRegistry is
|
|
35
35
|
error ErrorTokenRegistryMajorVersionInvalid(VersionPart majorVersion);
|
36
36
|
|
37
37
|
struct TokenInfo {
|
38
|
+
// slot 0
|
38
39
|
uint256 chainId;
|
40
|
+
// slot 1
|
41
|
+
string symbol;
|
42
|
+
// slot 2
|
39
43
|
address token;
|
40
44
|
uint8 decimals;
|
41
|
-
string symbol;
|
42
45
|
bool active;
|
43
46
|
}
|
44
47
|
|
@@ -5,17 +5,14 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
7
|
import {Amount} from "../type/Amount.sol";
|
8
|
-
import {ContractLib} from "./ContractLib.sol";
|
9
8
|
import {IComponent} from "./IComponent.sol";
|
10
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
10
|
import {IComponentService} from "./IComponentService.sol";
|
12
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
-
import {IRelease} from "../registry/IRelease.sol";
|
14
11
|
import {NftId} from "../type/NftId.sol";
|
15
|
-
import {ObjectType, COMPONENT
|
12
|
+
import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
|
16
13
|
import {Registerable} from "../shared/Registerable.sol";
|
17
14
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
18
|
-
import {Version, VersionLib
|
15
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
19
16
|
|
20
17
|
|
21
18
|
abstract contract Component is
|
@@ -27,7 +24,6 @@ abstract contract Component is
|
|
27
24
|
|
28
25
|
struct ComponentStorage {
|
29
26
|
string _name; // unique (per instance) component name
|
30
|
-
IERC20Metadata _token; // token for this component
|
31
27
|
bool _isInterceptor;
|
32
28
|
bytes _data;
|
33
29
|
IComponentService _componentService;
|
@@ -43,6 +39,7 @@ abstract contract Component is
|
|
43
39
|
|
44
40
|
|
45
41
|
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
42
|
+
// solhint-disable-next-line no-inline-assembly
|
46
43
|
assembly {
|
47
44
|
$.slot := COMPONENT_LOCATION_V1
|
48
45
|
}
|
@@ -54,7 +51,6 @@ abstract contract Component is
|
|
54
51
|
address registry,
|
55
52
|
NftId parentNftId,
|
56
53
|
string memory name,
|
57
|
-
address token,
|
58
54
|
ObjectType componentType,
|
59
55
|
bool isInterceptor,
|
60
56
|
address initialOwner,
|
@@ -65,20 +61,6 @@ abstract contract Component is
|
|
65
61
|
virtual
|
66
62
|
onlyInitializing()
|
67
63
|
{
|
68
|
-
address tokenRegistry = IRegistry(registry).getTokenRegistryAddress();
|
69
|
-
VersionPart release = IRelease(authority).getRelease();
|
70
|
-
|
71
|
-
// special case for staking: component intitialization happens before
|
72
|
-
// GIF core contract setup is complete. at that time token registry
|
73
|
-
// is not yet available. therefore we skip the check for staking.
|
74
|
-
if (componentType != STAKING()) {
|
75
|
-
|
76
|
-
// check if provided token is whitelisted and active
|
77
|
-
if (!ContractLib.isActiveToken(tokenRegistry, token, block.chainid, release)) {
|
78
|
-
revert ErrorComponentTokenInvalid(token);
|
79
|
-
}
|
80
|
-
}
|
81
|
-
|
82
64
|
if (bytes(name).length == 0) {
|
83
65
|
revert ErrorComponentNameLengthZero();
|
84
66
|
}
|
@@ -95,7 +77,6 @@ abstract contract Component is
|
|
95
77
|
// set component state
|
96
78
|
ComponentStorage storage $ = _getComponentStorage();
|
97
79
|
$._name = name;
|
98
|
-
$._token = IERC20Metadata(token);
|
99
80
|
$._isInterceptor = isInterceptor;
|
100
81
|
$._data = componentData;
|
101
82
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -125,7 +106,7 @@ abstract contract Component is
|
|
125
106
|
}
|
126
107
|
|
127
108
|
function getToken() public view virtual returns (IERC20Metadata token) {
|
128
|
-
return
|
109
|
+
return getTokenHandler().TOKEN();
|
129
110
|
}
|
130
111
|
|
131
112
|
function getName() public view override returns(string memory name) {
|
@@ -183,7 +164,10 @@ abstract contract Component is
|
|
183
164
|
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
184
165
|
internal
|
185
166
|
virtual
|
186
|
-
|
167
|
+
// solhint-disable-next-line no-empty-blocks
|
168
|
+
{
|
169
|
+
// empty default implementation
|
170
|
+
}
|
187
171
|
|
188
172
|
|
189
173
|
/// @dev Sets the components wallet to the specified address.
|
@@ -213,7 +197,6 @@ abstract contract Component is
|
|
213
197
|
|
214
198
|
return IComponents.ComponentInfo({
|
215
199
|
name: $._name,
|
216
|
-
token: $._token,
|
217
200
|
tokenHandler: TokenHandler(address(0)),
|
218
201
|
data: $._data // user specific component data
|
219
202
|
});
|
@@ -19,6 +19,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
19
19
|
import {IRegistry} from "../registry/IRegistry.sol";
|
20
20
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
21
21
|
|
22
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
22
23
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
23
24
|
import {ContractLib} from "../shared/ContractLib.sol";
|
24
25
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
@@ -98,15 +99,18 @@ contract ComponentService is
|
|
98
99
|
returns (NftId componentNftId)
|
99
100
|
{
|
100
101
|
// type specific registration
|
101
|
-
|
102
|
+
IRegistry.ObjectInfo memory componentObjectInfo = IInstanceLinkedComponent(component).getInitialInfo();
|
103
|
+
ObjectType componentType = componentObjectInfo.objectType;
|
104
|
+
IComponent productComponent = IComponent(getRegistry().getObjectAddress(componentObjectInfo.parentNftId));
|
105
|
+
|
102
106
|
if (componentType == POOL()) {
|
103
|
-
return _registerPool(component);
|
107
|
+
return _registerPool(component, address(productComponent.getToken()));
|
104
108
|
}
|
105
109
|
if (componentType == DISTRIBUTION()) {
|
106
|
-
return _registerDistribution(component);
|
110
|
+
return _registerDistribution(component, address(productComponent.getToken()));
|
107
111
|
}
|
108
112
|
if (componentType == ORACLE()) {
|
109
|
-
return _registerOracle(component);
|
113
|
+
return _registerOracle(component, address(productComponent.getToken()));
|
110
114
|
}
|
111
115
|
|
112
116
|
// fail
|
@@ -210,7 +214,7 @@ contract ComponentService is
|
|
210
214
|
|
211
215
|
//-------- product ------------------------------------------------------//
|
212
216
|
|
213
|
-
function registerProduct(address productAddress)
|
217
|
+
function registerProduct(address productAddress, address token)
|
214
218
|
external
|
215
219
|
virtual
|
216
220
|
nonReentrant()
|
@@ -222,7 +226,8 @@ contract ComponentService is
|
|
222
226
|
InstanceStore instanceStore;
|
223
227
|
(, instanceAdmin, instanceStore,, productNftId) = _register(
|
224
228
|
productAddress,
|
225
|
-
PRODUCT()
|
229
|
+
PRODUCT(),
|
230
|
+
token);
|
226
231
|
|
227
232
|
// get product
|
228
233
|
IProductComponent product = IProductComponent(productAddress);
|
@@ -280,7 +285,7 @@ contract ComponentService is
|
|
280
285
|
//-------- distribution -------------------------------------------------//
|
281
286
|
|
282
287
|
/// @dev registers the sending component as a distribution component
|
283
|
-
function _registerDistribution(address distributioAddress)
|
288
|
+
function _registerDistribution(address distributioAddress, address token)
|
284
289
|
internal
|
285
290
|
virtual
|
286
291
|
nonReentrant()
|
@@ -293,7 +298,8 @@ contract ComponentService is
|
|
293
298
|
NftId productNftId;
|
294
299
|
(instanceReader, instanceAdmin, instanceStore, productNftId, distributionNftId) = _register(
|
295
300
|
distributioAddress,
|
296
|
-
DISTRIBUTION()
|
301
|
+
DISTRIBUTION(),
|
302
|
+
token);
|
297
303
|
|
298
304
|
// check product is still expecting a distribution registration
|
299
305
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
@@ -344,7 +350,7 @@ contract ComponentService is
|
|
344
350
|
|
345
351
|
//-------- oracle -------------------------------------------------------//
|
346
352
|
|
347
|
-
function _registerOracle(address oracleAddress)
|
353
|
+
function _registerOracle(address oracleAddress, address token)
|
348
354
|
internal
|
349
355
|
virtual
|
350
356
|
returns (NftId oracleNftId)
|
@@ -357,7 +363,8 @@ contract ComponentService is
|
|
357
363
|
|
358
364
|
(instanceReader, instanceAdmin, instanceStore, productNftId, oracleNftId) = _register(
|
359
365
|
oracleAddress,
|
360
|
-
ORACLE()
|
366
|
+
ORACLE(),
|
367
|
+
token);
|
361
368
|
|
362
369
|
// check product is still expecting an oracle registration
|
363
370
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
@@ -376,7 +383,7 @@ contract ComponentService is
|
|
376
383
|
|
377
384
|
//-------- pool ---------------------------------------------------------//
|
378
385
|
|
379
|
-
function _registerPool(address poolAddress)
|
386
|
+
function _registerPool(address poolAddress, address token)
|
380
387
|
internal
|
381
388
|
virtual
|
382
389
|
returns (NftId poolNftId)
|
@@ -389,7 +396,8 @@ contract ComponentService is
|
|
389
396
|
|
390
397
|
(instanceReader, instanceAdmin, instanceStore, productNftId, poolNftId) = _register(
|
391
398
|
poolAddress,
|
392
|
-
POOL()
|
399
|
+
POOL(),
|
400
|
+
token);
|
393
401
|
|
394
402
|
// check product is still expecting a pool registration
|
395
403
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
@@ -453,7 +461,8 @@ contract ComponentService is
|
|
453
461
|
/// @dev Registers the component represented by the provided address.
|
454
462
|
function _register(
|
455
463
|
address componentAddress, // address of component to register
|
456
|
-
ObjectType requiredType // required type for component for registration
|
464
|
+
ObjectType requiredType, // required type for component for registration
|
465
|
+
address token
|
457
466
|
)
|
458
467
|
internal
|
459
468
|
virtual
|
@@ -481,6 +490,18 @@ contract ComponentService is
|
|
481
490
|
componentAddress,
|
482
491
|
requiredType);
|
483
492
|
|
493
|
+
if (! instance.isTokenRegistryDisabled()) {
|
494
|
+
// check if provided token is whitelisted and active
|
495
|
+
if (!ContractLib.isActiveToken(
|
496
|
+
getRegistry().getTokenRegistryAddress(),
|
497
|
+
token,
|
498
|
+
block.chainid,
|
499
|
+
AccessManagerCloneable(authority()).getRelease())
|
500
|
+
) {
|
501
|
+
revert ErrorComponentServiceTokenInvalid(token);
|
502
|
+
}
|
503
|
+
}
|
504
|
+
|
484
505
|
// get instance supporting contracts (as function return values)
|
485
506
|
instanceReader = instance.getInstanceReader();
|
486
507
|
instanceAdmin = instance.getInstanceAdmin();
|
@@ -496,10 +517,8 @@ contract ComponentService is
|
|
496
517
|
}
|
497
518
|
|
498
519
|
// deploy and wire token handler
|
499
|
-
address token;
|
500
520
|
{
|
501
521
|
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
502
|
-
token = address(componentInfo.token);
|
503
522
|
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
504
523
|
address(getRegistry()),
|
505
524
|
componentAddress, // initially, component is its own wallet
|
@@ -15,9 +15,6 @@ interface IComponent is
|
|
15
15
|
IRegisterable,
|
16
16
|
ITransferInterceptor
|
17
17
|
{
|
18
|
-
|
19
|
-
error ErrorComponentTokenInvalid(address token);
|
20
|
-
|
21
18
|
error ErrorComponentProductNftIdZero();
|
22
19
|
error ErrorComponentProductNftIdNonzero();
|
23
20
|
error ErrorComponentNameLengthZero();
|
@@ -16,6 +16,8 @@ import {VersionPart} from "../type/Version.sol";
|
|
16
16
|
interface IComponentService is
|
17
17
|
IService
|
18
18
|
{
|
19
|
+
error ErrorComponentServiceTokenInvalid(address token);
|
20
|
+
|
19
21
|
error ErrorComponentServiceNotInstanceLinkedComponent(address component);
|
20
22
|
error ErrorComponentServiceSenderNotRegistered(address sender);
|
21
23
|
error ErrorComponentServiceNotComponent(address component);
|
@@ -56,9 +58,9 @@ interface IComponentService is
|
|
56
58
|
NftId nftId,
|
57
59
|
string feeName,
|
58
60
|
UFixed previousFractionalFee,
|
59
|
-
|
61
|
+
Amount previousFixedFee,
|
60
62
|
UFixed newFractionalFee,
|
61
|
-
|
63
|
+
Amount newFixedFee
|
62
64
|
);
|
63
65
|
|
64
66
|
//-------- component ----------------------------------------------------//
|
@@ -85,7 +87,7 @@ interface IComponentService is
|
|
85
87
|
//-------- product ------------------------------------------------------//
|
86
88
|
|
87
89
|
/// @dev Registers the specified product component for the instance (sender)
|
88
|
-
function registerProduct(address product) external returns (NftId productNftId);
|
90
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
89
91
|
|
90
92
|
function setProductFees(
|
91
93
|
Fee memory productFee, // product fee on net premium
|
@@ -71,7 +71,6 @@ abstract contract InstanceLinkedComponent is
|
|
71
71
|
address registry,
|
72
72
|
NftId parentNftId,
|
73
73
|
string memory name,
|
74
|
-
address token,
|
75
74
|
ObjectType componentType,
|
76
75
|
IAuthorization authorization,
|
77
76
|
bool isInterceptor,
|
@@ -99,7 +98,6 @@ abstract contract InstanceLinkedComponent is
|
|
99
98
|
registry,
|
100
99
|
parentNftId,
|
101
100
|
name,
|
102
|
-
token,
|
103
101
|
componentType,
|
104
102
|
isInterceptor,
|
105
103
|
initialOwner,
|
@@ -60,15 +60,19 @@ interface IStaking is
|
|
60
60
|
|
61
61
|
// info for individual stake
|
62
62
|
struct StakeInfo {
|
63
|
+
// slot 0
|
63
64
|
Timestamp lockedUntil;
|
64
65
|
}
|
65
66
|
|
66
67
|
struct TargetInfo {
|
67
|
-
|
68
|
-
uint256 chainId;
|
69
|
-
Seconds lockingPeriod;
|
68
|
+
// Slot 0
|
70
69
|
UFixed rewardRate;
|
71
70
|
Amount maxStakedAmount;
|
71
|
+
// Slot 1
|
72
|
+
ObjectType objectType;
|
73
|
+
Seconds lockingPeriod;
|
74
|
+
// Slot 2
|
75
|
+
uint256 chainId;
|
72
76
|
}
|
73
77
|
|
74
78
|
function initializeTokenHandler() external;
|