@etherisc/gif-next 3.0.0-15742bc-193 → 3.0.0-193bd1e-500
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 +9 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +15 -19
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +44 -56
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
- 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/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 +2 -2
- 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/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +37 -37
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -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 +2 -2
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2 -2
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +248 -84
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +183 -28
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +82 -35
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +2 -2
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +444 -669
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +83 -36
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.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 +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
- 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/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +102 -114
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +93 -34
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +2 -2
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +2 -2
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
- 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/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- 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/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +2 -2
- 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/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
- 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/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 +2 -2
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +2 -2
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/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 +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +101 -113
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +110 -122
- 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 +56 -62
- 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 +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +51 -26
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +14 -14
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +25 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.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/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/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- 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/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +25 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -48
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +25 -25
- 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 +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- 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/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.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/ChainId.sol/ChainIdLib.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/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/RequestIdSet.sol/LibRequestIdSet.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/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/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +17 -29
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +6 -25
- package/contracts/authorization/AccessAdminLib.sol +20 -3
- package/contracts/authorization/AccessManagerCloneable.sol +3 -0
- package/contracts/distribution/DistributionService.sol +5 -3
- package/contracts/distribution/IDistributionService.sol +4 -3
- package/contracts/examples/flight/FlightLib.sol +90 -75
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +68 -9
- package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
- package/contracts/examples/flight/FlightPool.sol +1 -1
- package/contracts/examples/flight/FlightProduct.sol +283 -247
- package/contracts/examples/flight/FlightProductAuthorization.sol +35 -10
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/InstanceAdmin.sol +0 -1
- package/contracts/instance/InstanceReader.sol +16 -4
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/RegistryAdmin.sol +7 -1
- package/contracts/registry/ReleaseAdmin.sol +8 -1
- package/contracts/shared/ComponentService.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponentService.sol +1 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -1
- package/contracts/staking/IStaking.sol +2 -0
- package/contracts/staking/Staking.sol +1 -0
- package/package.json +1 -1
| @@ -3,19 +3,42 @@ pragma solidity ^0.8.20; | |
| 3 3 |  | 
| 4 4 | 
             
            import {IAccess} from "../../../contracts/authorization/IAccess.sol";
         | 
| 5 5 |  | 
| 6 | 
            +
            import {AccessAdminLib} from "../../authorization/AccessAdminLib.sol";
         | 
| 6 7 | 
             
            import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
         | 
| 7 8 | 
             
            import {FlightProduct} from "./FlightProduct.sol";
         | 
| 8 9 | 
             
            import {ORACLE} from "../../../contracts/type/ObjectType.sol";
         | 
| 9 | 
            -
            import {PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
         | 
| 10 | 
            +
            import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../../../contracts/type/RoleId.sol";
         | 
| 10 11 |  | 
| 11 12 |  | 
| 12 13 | 
             
            contract FlightProductAuthorization
         | 
| 13 14 | 
             
                is BasicProductAuthorization
         | 
| 14 15 | 
             
            {
         | 
| 15 16 |  | 
| 16 | 
            -
                 | 
| 17 | 
            -
             | 
| 18 | 
            -
                 | 
| 17 | 
            +
                uint64 public constant STATISTICS_PROVIDER_ROLE_IDX = 1; // 1st custom role for flight product
         | 
| 18 | 
            +
                string public constant STATISTICS_PROVIDER_ROLE_NAME = "StatisticsProviderRole";
         | 
| 19 | 
            +
                RoleId public STATISTICS_PROVIDER_ROLE;
         | 
| 20 | 
            +
             | 
| 21 | 
            +
             | 
| 22 | 
            +
                constructor(string memory productName)
         | 
| 23 | 
            +
                    BasicProductAuthorization(productName)
         | 
| 24 | 
            +
                { }
         | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 27 | 
            +
                function _setupRoles()
         | 
| 28 | 
            +
                    internal
         | 
| 29 | 
            +
                    override
         | 
| 30 | 
            +
                {
         | 
| 31 | 
            +
                    STATISTICS_PROVIDER_ROLE = AccessAdminLib.getCustomRoleId(STATISTICS_PROVIDER_ROLE_IDX);
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                    _addRole(
         | 
| 34 | 
            +
                        STATISTICS_PROVIDER_ROLE,
         | 
| 35 | 
            +
                        AccessAdminLib.roleInfo(
         | 
| 36 | 
            +
                            ADMIN_ROLE(),
         | 
| 37 | 
            +
                            TargetType.Custom,
         | 
| 38 | 
            +
                            1, // max member count special case: instance nft owner is sole role owner
         | 
| 39 | 
            +
                            STATISTICS_PROVIDER_ROLE_NAME));
         | 
| 40 | 
            +
                }
         | 
| 41 | 
            +
             | 
| 19 42 |  | 
| 20 43 | 
             
                function _setupTargetAuthorizations()
         | 
| 21 44 | 
             
                    internal
         | 
| @@ -28,14 +51,16 @@ contract FlightProductAuthorization | |
| 28 51 | 
             
                    functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
         | 
| 29 52 | 
             
                    _authorize(functions, FlightProduct.flightStatusCallback.selector, "flightStatusCallback");
         | 
| 30 53 |  | 
| 31 | 
            -
                    // authorize  | 
| 32 | 
            -
                    functions = _authorizeForTarget(getMainTargetName(),  | 
| 33 | 
            -
                    _authorize(functions, FlightProduct.createPolicy.selector, "createPolicy");
         | 
| 54 | 
            +
                    // authorize statistics provider role 
         | 
| 55 | 
            +
                    functions = _authorizeForTarget(getMainTargetName(), STATISTICS_PROVIDER_ROLE);
         | 
| 34 56 | 
             
                    _authorize(functions, FlightProduct.createPolicyWithPermit.selector, "createPolicyWithPermit");
         | 
| 35 57 |  | 
| 36 | 
            -
                    //  | 
| 37 | 
            -
                     | 
| 38 | 
            -
                    _authorize(functions, FlightProduct. | 
| 58 | 
            +
                    // authorize public role (additional authz via onlyOwner)
         | 
| 59 | 
            +
                    functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
         | 
| 60 | 
            +
                    _authorize(functions, FlightProduct.resendRequest.selector, "resendRequest");
         | 
| 61 | 
            +
                    _authorize(functions, FlightProduct.processPayoutsAndClosePolicies.selector, "processPayoutsAndClosePolicies");
         | 
| 62 | 
            +
                    _authorize(functions, FlightProduct.setConstants.selector, "setConstants");
         | 
| 63 | 
            +
                    _authorize(functions, FlightProduct.setTestMode.selector, "setTestMode");
         | 
| 39 64 | 
             
                    _authorize(functions, FlightProduct.setDefaultBundle.selector, "setDefaultBundle");
         | 
| 40 65 | 
             
                    _authorize(functions, FlightProduct.approveTokenHandler.selector, "approveTokenHandler");
         | 
| 41 66 | 
             
                    _authorize(functions, FlightProduct.setLocked.selector, "setLocked");
         | 
| @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 | 
            +
            pragma solidity ^0.8.20;
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            import {IAuthorization} from "../../authorization/IAuthorization.sol";
         | 
| 5 | 
            +
            import {IVersionable} from "../../upgradeability/IVersionable.sol";
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            import {NftId} from "../../type/NftId.sol";
         | 
| 8 | 
            +
            import {ProxyManager} from "../../upgradeability/ProxyManager.sol";
         | 
| 9 | 
            +
            import {FlightProduct} from "./FlightProduct.sol";
         | 
| 10 | 
            +
             | 
| 11 | 
            +
             | 
| 12 | 
            +
            contract FlightProductManager is ProxyManager {
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                FlightProduct private _flightProduct;
         | 
| 15 | 
            +
                bytes32 private _salt = "0x1234";
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                /// @dev initializes proxy manager with flight product implementation 
         | 
| 18 | 
            +
                constructor(
         | 
| 19 | 
            +
                    address registry,
         | 
| 20 | 
            +
                    NftId instanceNftId,
         | 
| 21 | 
            +
                    string memory componentName,
         | 
| 22 | 
            +
                    IAuthorization authorization
         | 
| 23 | 
            +
                ) 
         | 
| 24 | 
            +
                {
         | 
| 25 | 
            +
                    // FlightProduct prd = new FlightProduct{salt: _salt}();
         | 
| 26 | 
            +
                    // bytes memory data = abi.encode(
         | 
| 27 | 
            +
                    //     registry, 
         | 
| 28 | 
            +
                    //     instanceNftId, 
         | 
| 29 | 
            +
                    //     componentName, 
         | 
| 30 | 
            +
                    //     authorization);
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                    // IVersionable versionable = initialize(
         | 
| 33 | 
            +
                    //     registry,
         | 
| 34 | 
            +
                    //     address(prd), 
         | 
| 35 | 
            +
                    //     data,
         | 
| 36 | 
            +
                    //     _salt);
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                    // _flightProduct = FlightProduct(address(versionable));
         | 
| 39 | 
            +
                }
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                //--- view functions ----------------------------------------------------//
         | 
| 42 | 
            +
                function getFlightProduct()
         | 
| 43 | 
            +
                    external
         | 
| 44 | 
            +
                    view
         | 
| 45 | 
            +
                    returns (FlightProduct flightProduct)
         | 
| 46 | 
            +
                {
         | 
| 47 | 
            +
                    return _flightProduct;
         | 
| 48 | 
            +
                }
         | 
| 49 | 
            +
            }
         | 
| @@ -42,6 +42,8 @@ abstract contract BaseStore is | |
| 42 42 | 
             
                    metadata.objectType = objectType;
         | 
| 43 43 | 
             
                    metadata.state = initialState;
         | 
| 44 44 | 
             
                    metadata.updatedIn = blocknumber;
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                    emit LogBaseStoreMetadataCreated(key32, objectType, initialState);
         | 
| 45 47 | 
             
                }
         | 
| 46 48 |  | 
| 47 49 | 
             
                function _updateState(
         | 
| @@ -73,6 +75,8 @@ abstract contract BaseStore is | |
| 73 75 |  | 
| 74 76 | 
             
                    // update metadata
         | 
| 75 77 | 
             
                    metadata.updatedIn = BlocknumberLib.current();
         | 
| 78 | 
            +
                    
         | 
| 79 | 
            +
                    emit LogBaseStoreMetadataUpdated(key32, oldState, state);
         | 
| 76 80 | 
             
                }
         | 
| 77 81 |  | 
| 78 82 | 
             
                function exists(Key32 key32) public view returns (bool) {
         | 
| @@ -17,6 +17,14 @@ interface IBaseStore is ILifecycle { | |
| 17 17 | 
             
                error ErrorBaseStoreStateZero(Key32 key);
         | 
| 18 18 | 
             
                error ErrorBaseStoreNotExisting(Key32 key);
         | 
| 19 19 |  | 
| 20 | 
            +
                event LogBaseStoreMetadataCreated(
         | 
| 21 | 
            +
                    Key32 indexed key,
         | 
| 22 | 
            +
                    ObjectType indexed objectType,
         | 
| 23 | 
            +
                    StateId indexed state);
         | 
| 24 | 
            +
                event LogBaseStoreMetadataUpdated(
         | 
| 25 | 
            +
                    Key32 indexed key,
         | 
| 26 | 
            +
                    StateId indexed oldState,
         | 
| 27 | 
            +
                    StateId indexed newState);
         | 
| 20 28 |  | 
| 21 29 | 
             
                struct Metadata {
         | 
| 22 30 | 
             
                    // slot 0
         | 
| @@ -130,7 +130,6 @@ contract InstanceAdmin is | |
| 130 130 | 
             
                    _createTarget(target, name, TargetType.Instance, true); 
         | 
| 131 131 | 
             
                }
         | 
| 132 132 |  | 
| 133 | 
            -
             | 
| 134 133 | 
             
                /// @dev Initializes the authorization for the specified component.
         | 
| 135 134 | 
             
                /// Important: The component MUST be registered.
         | 
| 136 135 | 
             
                function initializeComponentAuthorization(
         | 
| @@ -34,6 +34,7 @@ import {RiskId} from "../type/RiskId.sol"; | |
| 34 34 | 
             
            import {RiskSet} from "./RiskSet.sol";
         | 
| 35 35 | 
             
            import {RoleId, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
         | 
| 36 36 | 
             
            import {StateId} from "../type/StateId.sol";
         | 
| 37 | 
            +
            import {Str, StrLib} from "../type/String.sol";
         | 
| 37 38 | 
             
            import {TokenHandler} from "../shared/TokenHandler.sol";
         | 
| 38 39 | 
             
            import {UFixed, UFixedLib} from "../type/UFixed.sol";
         | 
| 39 40 |  | 
| @@ -466,6 +467,12 @@ contract InstanceReader { | |
| 466 467 | 
             
                }
         | 
| 467 468 |  | 
| 468 469 |  | 
| 470 | 
            +
                /// @dev Returns the role ID for the given index.
         | 
| 471 | 
            +
                function getRoleForName(string memory name) public view returns (RoleId roleId, bool exists) {
         | 
| 472 | 
            +
                    return _instanceAdmin.getRoleForName(name);
         | 
| 473 | 
            +
                }
         | 
| 474 | 
            +
             | 
| 475 | 
            +
             | 
| 469 476 | 
             
                /// @dev Returns the role ID for the instance owner role.
         | 
| 470 477 | 
             
                /// This role may be used as a "root" admin role for other custom roles defined for this instance.
         | 
| 471 478 | 
             
                function getInstanceOwnerRole() public pure returns (RoleId roleId) {
         | 
| @@ -595,13 +602,18 @@ contract InstanceReader { | |
| 595 602 | 
             
                }
         | 
| 596 603 |  | 
| 597 604 |  | 
| 598 | 
            -
                function  | 
| 599 | 
            -
                    return UFixedLib. | 
| 605 | 
            +
                function toInt(UFixed value) public pure returns (uint256) {
         | 
| 606 | 
            +
                    return UFixedLib.toInt(value);
         | 
| 600 607 | 
             
                }
         | 
| 601 608 |  | 
| 602 609 |  | 
| 603 | 
            -
                function  | 
| 604 | 
            -
                    return  | 
| 610 | 
            +
                function toString(Str str) public pure returns (string memory) {
         | 
| 611 | 
            +
                    return StrLib.toString(str);
         | 
| 612 | 
            +
                }
         | 
| 613 | 
            +
             | 
| 614 | 
            +
             | 
| 615 | 
            +
                function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
         | 
| 616 | 
            +
                    return UFixedLib.toUFixed(value, exp);
         | 
| 605 617 | 
             
                }
         | 
| 606 618 |  | 
| 607 619 | 
             
                //--- internal functions ----------------------------------------------------//
         | 
| @@ -140,10 +140,10 @@ abstract contract Oracle is | |
| 140 140 | 
             
                    internal
         | 
| 141 141 | 
             
                    virtual
         | 
| 142 142 | 
             
                {
         | 
| 143 | 
            -
                    _getOracleStorage()._oracleService.respond(
         | 
| 144 | 
            -
                        requestId, responseData);
         | 
| 143 | 
            +
                    _getOracleStorage()._oracleService.respond(requestId, responseData);
         | 
| 145 144 | 
             
                }
         | 
| 146 145 |  | 
| 146 | 
            +
             | 
| 147 147 | 
             
                function _getOracleStorage() private pure returns (OracleStorage storage $) {
         | 
| 148 148 | 
             
                    assembly {
         | 
| 149 149 | 
             
                        $.slot := ORACLE_STORAGE_LOCATION_V1
         | 
| @@ -95,13 +95,14 @@ library PolicyServiceLib { | |
| 95 95 | 
             
                {
         | 
| 96 96 | 
             
                    if (policyState != COLLATERALIZED()) { 
         | 
| 97 97 | 
             
                        revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
         | 
| 98 | 
            -
                    } | 
| 99 | 
            -
             | 
| 98 | 
            +
                    }
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                    if (policyInfo.activatedAt.eqz() || TimestampLib.current() < policyInfo.activatedAt) { 
         | 
| 100 101 | 
             
                        revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
         | 
| 101 102 | 
             
                    } 
         | 
| 102 103 |  | 
| 103 104 | 
             
                    // check expiredAt represents a valid expiry time
         | 
| 104 | 
            -
                    if (newExpiredAt  | 
| 105 | 
            +
                    if (newExpiredAt > policyInfo.expiredAt) {
         | 
| 105 106 | 
             
                        revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
         | 
| 106 107 | 
             
                    }
         | 
| 107 108 |  | 
| @@ -110,6 +111,7 @@ library PolicyServiceLib { | |
| 110 111 | 
             
                    }
         | 
| 111 112 | 
             
                }
         | 
| 112 113 |  | 
| 114 | 
            +
             | 
| 113 115 | 
             
                function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
         | 
| 114 116 | 
             
                    external 
         | 
| 115 117 | 
             
                    view
         | 
| @@ -11,7 +11,7 @@ contract ChainNft is ERC721Enumerable { | |
| 11 11 | 
             
                event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
         | 
| 12 12 |  | 
| 13 13 | 
             
                // constants
         | 
| 14 | 
            -
                string public constant NAME = " | 
| 14 | 
            +
                string public constant NAME = "Decentralized Insurance Protocol NFT";
         | 
| 15 15 | 
             
                string public constant SYMBOL = "DIPNFT";
         | 
| 16 16 |  | 
| 17 17 | 
             
                uint256 public constant PROTOCOL_NFT_ID = 1101;
         | 
| @@ -85,7 +85,13 @@ contract RegistryAdmin is | |
| 85 85 | 
             
                            registry, 
         | 
| 86 86 | 
             
                            release); 
         | 
| 87 87 |  | 
| 88 | 
            -
                     | 
| 88 | 
            +
                    AccessAdminLib.checkAuthorization(
         | 
| 89 | 
            +
                        address(_authorization),
         | 
| 90 | 
            +
                        authorization, 
         | 
| 91 | 
            +
                        REGISTRY(), 
         | 
| 92 | 
            +
                        release, 
         | 
| 93 | 
            +
                        false, // expectServiceAuthorization
         | 
| 94 | 
            +
                        false); // checkAlreadyInitialized);
         | 
| 89 95 |  | 
| 90 96 | 
             
                    _registry = registry;
         | 
| 91 97 | 
             
                    _authorization = IAuthorization(authorization);
         | 
| @@ -72,7 +72,14 @@ contract ReleaseAdmin is | |
| 72 72 | 
             
                            release);
         | 
| 73 73 |  | 
| 74 74 | 
             
                    IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
         | 
| 75 | 
            -
                     | 
| 75 | 
            +
                    AccessAdminLib.checkAuthorization(
         | 
| 76 | 
            +
                        address(_authorization),
         | 
| 77 | 
            +
                        address(serviceAuthorization), 
         | 
| 78 | 
            +
                        RELEASE(), 
         | 
| 79 | 
            +
                        release, 
         | 
| 80 | 
            +
                        true, // expectServiceAuthorization
         | 
| 81 | 
            +
                        true); // checkAlreadyInitialized);
         | 
| 82 | 
            +
             | 
| 76 83 | 
             
                    _serviceAuthorization = serviceAuthorization;
         | 
| 77 84 |  | 
| 78 85 | 
             
                    // link nft ownability to registry
         | 
| @@ -543,6 +543,11 @@ contract ComponentService is | |
| 543 543 | 
             
                        address(component), // initially, component is its own wallet
         | 
| 544 544 | 
             
                        token, 
         | 
| 545 545 | 
             
                        instanceAdmin.authority());
         | 
| 546 | 
            +
             | 
| 547 | 
            +
                    emit LogComponentServiceTokenHandlerDeployed(
         | 
| 548 | 
            +
                        componentNftId, 
         | 
| 549 | 
            +
                        address(componentInfo.tokenHandler), 
         | 
| 550 | 
            +
                        token);
         | 
| 546 551 |  | 
| 547 552 | 
             
                    // register component with instance
         | 
| 548 553 | 
             
                    instanceStore.createComponent(
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            // SPDX-License-Identifier: Apache-2.0
         | 
| 2 | 
            +
            pragma solidity ^0.8.20;
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            import {IComponent} from "../shared/IComponent.sol";
         | 
| 5 | 
            +
            import {IAuthorization} from "../authorization/IAuthorization.sol";
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            /// @dev component base class
         | 
| 8 | 
            +
            /// component examples are product, distribution, pool and oracle
         | 
| 9 | 
            +
            interface IAuthorizedComponent is 
         | 
| 10 | 
            +
                IComponent
         | 
| 11 | 
            +
            {
         | 
| 12 | 
            +
                /// @dev returns the initial component authorization specification.
         | 
| 13 | 
            +
                function getAuthorization() external view returns (IAuthorization authorization);
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            }
         | 
| @@ -46,6 +46,7 @@ interface IComponentService is | |
| 46 46 | 
             
                error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
         | 
| 47 47 |  | 
| 48 48 | 
             
                event LogComponentServiceComponentLocked(address component, bool locked);
         | 
| 49 | 
            +
                event LogComponentServiceTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
         | 
| 49 50 | 
             
                event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner); 
         | 
| 50 51 | 
             
                event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
         | 
| 51 52 | 
             
                event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            import {Amount} from "../type/Amount.sol";
         | 
| 5 | 
            -
            import { | 
| 5 | 
            +
            import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
         | 
| 6 6 | 
             
            import {IAuthorization} from "../authorization/IAuthorization.sol";
         | 
| 7 7 | 
             
            import {IInstance} from "../instance/IInstance.sol";
         | 
| 8 8 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| @@ -11,7 +11,7 @@ import {ObjectType} from "../type/ObjectType.sol"; | |
| 11 11 | 
             
            /// @dev component base class
         | 
| 12 12 | 
             
            /// component examples are product, distribution, pool and oracle
         | 
| 13 13 | 
             
            interface IInstanceLinkedComponent is 
         | 
| 14 | 
            -
                 | 
| 14 | 
            +
                IAuthorizedComponent
         | 
| 15 15 | 
             
            {
         | 
| 16 16 | 
             
                error ErrorInstanceLinkedComponentTypeMismatch(ObjectType requiredType, ObjectType objectType);
         | 
| 17 17 | 
             
                error ErrorInstanceLinkedComponentNotProduct(NftId nftId, ObjectType objectType);
         | 
| @@ -24,7 +24,4 @@ interface IInstanceLinkedComponent is | |
| 24 24 | 
             
                /// @dev defines the instance to which this component is linked to
         | 
| 25 25 | 
             
                function getInstance() external view returns (IInstance instance);
         | 
| 26 26 |  | 
| 27 | 
            -
                /// @dev returns the initial component authorization specification.
         | 
| 28 | 
            -
                function getAuthorization() external view returns (IAuthorization authorization);
         | 
| 29 | 
            -
             | 
| 30 27 | 
             
            }
         | 
| @@ -2,6 +2,7 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            import {IAuthorization} from "../authorization/IAuthorization.sol";
         | 
| 5 | 
            +
            import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
         | 
| 5 6 | 
             
            import {IComponents} from "../instance/module/IComponents.sol";
         | 
| 6 7 | 
             
            import {IComponentService} from "./IComponentService.sol";
         | 
| 7 8 | 
             
            import {IInstance} from "../instance/IInstance.sol";
         | 
| @@ -46,7 +47,7 @@ abstract contract InstanceLinkedComponent is | |
| 46 47 | 
             
                }
         | 
| 47 48 |  | 
| 48 49 |  | 
| 49 | 
            -
                /// @inheritdoc  | 
| 50 | 
            +
                /// @inheritdoc IAuthorizedComponent
         | 
| 50 51 | 
             
                function getAuthorization() external view virtual returns (IAuthorization authorization) {
         | 
| 51 52 | 
             
                    return _getInstanceLinkedComponentStorage()._initialAuthorization;
         | 
| 52 53 | 
             
                }
         | 
| @@ -25,6 +25,8 @@ interface IStaking is | |
| 25 25 | 
             
                IVersionable
         | 
| 26 26 | 
             
            {
         | 
| 27 27 |  | 
| 28 | 
            +
                event LogStakingTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
         | 
| 29 | 
            +
                
         | 
| 28 30 | 
             
                // owner functions
         | 
| 29 31 | 
             
                event LogStakingStakingRateSet(ChainId chainId, address token, UFixed newStakingRate, UFixed oldStakingRate, Blocknumber lastUpdateIn);
         | 
| 30 32 | 
             
                event LogStakingStakingServiceSet(address stakingService, VersionPart release, address oldStakingService);
         | 
    
        package/package.json
    CHANGED