@etherisc/gif-next 0.0.2-ac2f4a6-957 → 0.0.2-ac4bee9-682
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/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +32 -110
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +8 -38
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +110 -78
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +78 -46
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -23
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- 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 +38 -147
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +92 -190
- 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/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +43 -84
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +33 -87
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +155 -141
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +391 -205
- 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/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +2 -2
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +18 -2
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +4 -4
- 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 +69 -74
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +21 -5
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +36 -46
- package/artifacts/contracts/instance/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/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +22 -100
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +11 -23
- 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 +8 -38
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -16
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +46 -22
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +8 -53
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +115 -111
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +67 -51
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -15
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -62
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +77 -75
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +8 -77
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +139 -129
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +53 -33
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +20 -4
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +43 -19
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +13 -38
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -66
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -47
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +7 -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 +16 -23
- 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 +71 -57
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -35
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +54 -38
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +56 -32
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -38
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +18 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +40 -16
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +24 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +62 -38
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +107 -94
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +32 -16
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +39 -15
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +12 -12
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +8 -38
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +145 -70
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +62 -42
- 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 +21 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -23
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +67 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -23
- 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 +8 -38
- 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/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +29 -59
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +80 -152
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +36 -20
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +43 -19
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/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/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/RiskId.sol/RiskIdLib.json +2 -2
- 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/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/distribution/DistributionService.sol +5 -5
- package/contracts/examples/fire/FirePool.sol +19 -8
- package/contracts/examples/fire/FireProduct.sol +24 -11
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +8 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +34 -2
- package/contracts/examples/unpermissioned/SimpleProduct.sol +15 -21
- package/contracts/instance/IInstanceService.sol +2 -3
- package/contracts/instance/InstanceAdmin.sol +3 -3
- package/contracts/instance/InstanceReader.sol +1 -1
- package/contracts/instance/InstanceService.sol +15 -12
- package/contracts/instance/module/IComponents.sol +1 -2
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/oracle/OracleService.sol +10 -9
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +14 -22
- package/contracts/pool/IBundleService.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +23 -18
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +150 -74
- package/contracts/product/BasicProduct.sol +7 -11
- package/contracts/product/ClaimService.sol +3 -1
- package/contracts/product/IPolicyService.sol +3 -1
- package/contracts/product/PolicyService.sol +26 -14
- package/contracts/product/PricingService.sol +4 -1
- package/contracts/product/Product.sol +10 -33
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/Registry.sol +9 -1
- package/contracts/registry/RegistryAdmin.sol +22 -8
- package/contracts/registry/ReleaseRegistry.sol +2 -18
- package/contracts/registry/ServiceAuthorizationV3.sol +10 -1
- package/contracts/shared/Component.sol +45 -81
- package/contracts/shared/ComponentService.sol +62 -18
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +17 -1
- package/contracts/shared/IComponent.sol +5 -12
- package/contracts/shared/IComponentService.sol +13 -3
- package/contracts/shared/InstanceLinkedComponent.sol +1 -9
- package/contracts/shared/Registerable.sol +0 -2
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/TokenHandler.sol +324 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +29 -21
- package/contracts/staking/StakingService.sol +68 -8
- package/contracts/type/RiskId.sol +1 -1
- package/package.json +3 -3
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Fee} from "../type/Fee.sol";
|
5
5
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
6
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
6
7
|
import {NftId} from "../type/NftId.sol";
|
7
8
|
import {Product} from "../product/Product.sol";
|
8
9
|
|
@@ -25,13 +26,11 @@ abstract contract BasicProduct is
|
|
25
26
|
function _initializeBasicProduct(
|
26
27
|
address registry,
|
27
28
|
NftId instanceNftId,
|
28
|
-
IAuthorization authorization,
|
29
|
-
address initialOwner,
|
30
29
|
string memory name,
|
31
30
|
address token,
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
IComponents.ProductInfo memory productInfo,
|
32
|
+
IAuthorization authorization,
|
33
|
+
address initialOwner
|
35
34
|
)
|
36
35
|
internal
|
37
36
|
virtual
|
@@ -40,14 +39,11 @@ abstract contract BasicProduct is
|
|
40
39
|
_initializeProduct(
|
41
40
|
registry,
|
42
41
|
instanceNftId,
|
43
|
-
authorization,
|
44
|
-
initialOwner,
|
45
42
|
name,
|
46
43
|
token,
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
numberOfOracles,
|
44
|
+
productInfo,
|
45
|
+
authorization,
|
46
|
+
initialOwner,
|
51
47
|
""); // component data
|
52
48
|
}
|
53
49
|
}
|
@@ -388,7 +388,9 @@ contract ClaimService is
|
|
388
388
|
{
|
389
389
|
NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
|
390
390
|
IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
|
391
|
-
poolInfo.tokenHandler.
|
391
|
+
poolInfo.tokenHandler.pushToken(
|
392
|
+
beneficiary,
|
393
|
+
netPayoutAmount);
|
392
394
|
|
393
395
|
// TODO add 2nd token tx if processingFeeAmount > 0
|
394
396
|
}
|
@@ -49,7 +49,9 @@ interface IPolicyService is IService {
|
|
49
49
|
function createPolicy(
|
50
50
|
NftId applicationNftId,
|
51
51
|
Timestamp activateAt
|
52
|
-
)
|
52
|
+
)
|
53
|
+
external
|
54
|
+
returns (Amount premiumAmount);
|
53
55
|
|
54
56
|
/// @dev declines an application represented by {policyNftId}
|
55
57
|
/// an application can only be declined in applied state
|
@@ -15,7 +15,7 @@ import {Amount, AmountLib} from "../type/Amount.sol";
|
|
15
15
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
16
16
|
import {ObjectType, APPLICATION, COMPONENT, DISTRIBUTION, PRODUCT, POOL, POLICY, BUNDLE, CLAIM, PRICE} from "../type/ObjectType.sol";
|
17
17
|
import {APPLIED, COLLATERALIZED, KEEP_STATE, CLOSED, DECLINED, PAID} from "../type/StateId.sol";
|
18
|
-
import {NftId
|
18
|
+
import {NftId} from "../type/NftId.sol";
|
19
19
|
import {ReferralId} from "../type/Referral.sol";
|
20
20
|
import {StateId} from "../type/StateId.sol";
|
21
21
|
import {VersionPart} from "../type/Version.sol";
|
@@ -38,10 +38,7 @@ contract PolicyService is
|
|
38
38
|
ComponentVerifyingService,
|
39
39
|
IPolicyService
|
40
40
|
{
|
41
|
-
IApplicationService internal _applicationService;
|
42
41
|
IComponentService internal _componentService;
|
43
|
-
IBundleService internal _bundleService;
|
44
|
-
IClaimService internal _claimService;
|
45
42
|
IDistributionService internal _distributionService;
|
46
43
|
IPoolService internal _poolService;
|
47
44
|
IPricingService internal _pricingService;
|
@@ -62,10 +59,7 @@ contract PolicyService is
|
|
62
59
|
_initializeService(registryAddress, authority, owner);
|
63
60
|
|
64
61
|
VersionPart majorVersion = getVersion().toMajorPart();
|
65
|
-
_applicationService = IApplicationService(getRegistry().getServiceAddress(APPLICATION(), majorVersion));
|
66
|
-
_bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), majorVersion));
|
67
62
|
_componentService = IComponentService(getRegistry().getServiceAddress(COMPONENT(), majorVersion));
|
68
|
-
_claimService = IClaimService(getRegistry().getServiceAddress(CLAIM(), majorVersion));
|
69
63
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), majorVersion));
|
70
64
|
_distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
|
71
65
|
_pricingService = IPricingService(getRegistry().getServiceAddress(PRICE(), majorVersion));
|
@@ -81,6 +75,8 @@ contract PolicyService is
|
|
81
75
|
virtual
|
82
76
|
nonReentrant()
|
83
77
|
{
|
78
|
+
_checkNftType(applicationNftId, POLICY());
|
79
|
+
|
84
80
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
85
81
|
InstanceReader instanceReader = instance.getInstanceReader();
|
86
82
|
|
@@ -116,7 +112,10 @@ contract PolicyService is
|
|
116
112
|
external
|
117
113
|
virtual
|
118
114
|
nonReentrant()
|
115
|
+
returns (Amount premiumAmount)
|
119
116
|
{
|
117
|
+
_checkNftType(applicationNftId, POLICY());
|
118
|
+
|
120
119
|
// check caller is registered product
|
121
120
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
122
121
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -172,6 +171,8 @@ contract PolicyService is
|
|
172
171
|
applicationNftId,
|
173
172
|
premium);
|
174
173
|
|
174
|
+
premiumAmount = premium.fullPremiumAmount;
|
175
|
+
|
175
176
|
// update referral counter
|
176
177
|
{
|
177
178
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
@@ -186,8 +187,6 @@ contract PolicyService is
|
|
186
187
|
// log policy creation before interactions with token and policy holder
|
187
188
|
emit LogPolicyServicePolicyCreated(applicationNftId, premium.premiumAmount, activateAt);
|
188
189
|
|
189
|
-
// TODO add calling pool contract if it needs to validate application
|
190
|
-
|
191
190
|
// callback to policy holder if applicable
|
192
191
|
_policyHolderPolicyActivated(applicationNftId, activateAt);
|
193
192
|
}
|
@@ -202,6 +201,8 @@ contract PolicyService is
|
|
202
201
|
virtual
|
203
202
|
nonReentrant()
|
204
203
|
{
|
204
|
+
_checkNftType(policyNftId, POLICY());
|
205
|
+
|
205
206
|
// check caller is registered product
|
206
207
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
207
208
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -246,6 +247,8 @@ contract PolicyService is
|
|
246
247
|
virtual
|
247
248
|
nonReentrant()
|
248
249
|
{
|
250
|
+
_checkNftType(policyNftId, POLICY());
|
251
|
+
|
249
252
|
// check caller is registered product
|
250
253
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
251
254
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -273,6 +276,8 @@ contract PolicyService is
|
|
273
276
|
nonReentrant()
|
274
277
|
returns (Timestamp expiredAt)
|
275
278
|
{
|
279
|
+
_checkNftType(policyNftId, POLICY());
|
280
|
+
|
276
281
|
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
277
282
|
|
278
283
|
// check policy matches with calling product
|
@@ -302,6 +307,8 @@ contract PolicyService is
|
|
302
307
|
nonReentrant()
|
303
308
|
returns (Timestamp expiredAt)
|
304
309
|
{
|
310
|
+
_checkNftType(policyNftId, POLICY());
|
311
|
+
|
305
312
|
return _expire(
|
306
313
|
instance,
|
307
314
|
policyNftId,
|
@@ -361,6 +368,8 @@ contract PolicyService is
|
|
361
368
|
virtual
|
362
369
|
nonReentrant()
|
363
370
|
{
|
371
|
+
_checkNftType(policyNftId, POLICY());
|
372
|
+
|
364
373
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
365
374
|
InstanceReader instanceReader = instance.getInstanceReader();
|
366
375
|
|
@@ -423,7 +432,7 @@ contract PolicyService is
|
|
423
432
|
address policyHolder = getRegistry().ownerOf(applicationNftId);
|
424
433
|
|
425
434
|
_checkPremiumBalanceAndAllowance(
|
426
|
-
tokenHandler.
|
435
|
+
tokenHandler.TOKEN(),
|
427
436
|
address(tokenHandler),
|
428
437
|
policyHolder,
|
429
438
|
premium.premiumAmount);
|
@@ -663,10 +672,13 @@ contract PolicyService is
|
|
663
672
|
)
|
664
673
|
{
|
665
674
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
675
|
+
productWallet = instanceReader.getComponentInfo(productNftId).tokenHandler.getWallet();
|
676
|
+
poolWallet = instanceReader.getComponentInfo(productInfo.poolNftId).tokenHandler.getWallet();
|
677
|
+
|
678
|
+
if (productInfo.hasDistribution) {
|
679
|
+
distributionNftId = productInfo.distributionNftId;
|
680
|
+
distributionWallet = instanceReader.getComponentInfo(distributionNftId).tokenHandler.getWallet();
|
681
|
+
}
|
670
682
|
}
|
671
683
|
|
672
684
|
|
@@ -9,7 +9,7 @@ import {NftId} from "../type/NftId.sol";
|
|
9
9
|
import {Fee} from "../type/Fee.sol";
|
10
10
|
import {ReferralId} from "../type/Referral.sol";
|
11
11
|
import {RiskId} from "../type/RiskId.sol";
|
12
|
-
import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
12
|
+
import {PRODUCT, BUNDLE, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
13
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
14
|
|
15
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
@@ -70,6 +70,9 @@ contract PricingService is
|
|
70
70
|
IPolicy.PremiumInfo memory premium
|
71
71
|
)
|
72
72
|
{
|
73
|
+
_checkNftType(productNftId, PRODUCT());
|
74
|
+
_checkNftType(bundleNftId, BUNDLE());
|
75
|
+
|
73
76
|
InstanceReader reader;
|
74
77
|
Amount netPremiumAmount;
|
75
78
|
|
@@ -40,15 +40,13 @@ abstract contract Product is
|
|
40
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
41
41
|
|
42
42
|
struct ProductStorage {
|
43
|
-
|
44
|
-
|
45
|
-
uint8 _numberOfOracles;
|
43
|
+
IComponents.ProductInfo _productInfo;
|
44
|
+
IComponentService _componentService;
|
46
45
|
IRiskService _riskService;
|
47
46
|
IApplicationService _applicationService;
|
48
47
|
IPolicyService _policyService;
|
49
48
|
IClaimService _claimService;
|
50
49
|
IPricingService _pricingService;
|
51
|
-
IComponentService _componentService;
|
52
50
|
}
|
53
51
|
|
54
52
|
|
@@ -125,38 +123,18 @@ abstract contract Product is
|
|
125
123
|
view
|
126
124
|
returns (IComponents.ProductInfo memory poolInfo)
|
127
125
|
{
|
128
|
-
|
129
|
-
|
130
|
-
return IComponents.ProductInfo({
|
131
|
-
isProcessingFundedClaims: false,
|
132
|
-
hasDistribution: $._hasDistribution,
|
133
|
-
expectedNumberOfOracles: $._numberOfOracles,
|
134
|
-
numberOfOracles: 0,
|
135
|
-
poolNftId: NftIdLib.zero(),
|
136
|
-
distributionNftId: NftIdLib.zero(),
|
137
|
-
oracleNftId: new NftId[]($._numberOfOracles),
|
138
|
-
productFee: FeeLib.zero(),
|
139
|
-
processingFee: FeeLib.zero(),
|
140
|
-
distributionFee: FeeLib.zero(),
|
141
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
142
|
-
poolFee: FeeLib.zero(),
|
143
|
-
stakingFee: FeeLib.zero(),
|
144
|
-
performanceFee: FeeLib.zero()
|
145
|
-
});
|
126
|
+
return _getProductStorage()._productInfo;
|
146
127
|
}
|
147
128
|
|
148
129
|
|
149
130
|
function _initializeProduct(
|
150
131
|
address registry,
|
151
132
|
NftId instanceNftId,
|
152
|
-
IAuthorization authorization,
|
153
|
-
address initialOwner,
|
154
133
|
string memory name,
|
155
134
|
address token,
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
uint8 numberOfOracles,
|
135
|
+
IComponents.ProductInfo memory productInfo,
|
136
|
+
IAuthorization authorization,
|
137
|
+
address initialOwner,
|
160
138
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
161
139
|
)
|
162
140
|
internal
|
@@ -170,14 +148,12 @@ abstract contract Product is
|
|
170
148
|
token,
|
171
149
|
PRODUCT(),
|
172
150
|
authorization,
|
173
|
-
|
151
|
+
productInfo.isInterceptingPolicyTransfers,
|
174
152
|
initialOwner,
|
175
153
|
componentData);
|
176
154
|
|
177
155
|
ProductStorage storage $ = _getProductStorage();
|
178
|
-
$.
|
179
|
-
$._hasDistribution = hasDistribution;
|
180
|
-
$._numberOfOracles = numberOfOracles;
|
156
|
+
$._productInfo = productInfo;
|
181
157
|
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
182
158
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
183
159
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
@@ -277,8 +253,9 @@ abstract contract Product is
|
|
277
253
|
)
|
278
254
|
internal
|
279
255
|
virtual
|
256
|
+
returns (Amount premiumAmount)
|
280
257
|
{
|
281
|
-
_getProductStorage()._policyService.createPolicy(
|
258
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
282
259
|
applicationNftId,
|
283
260
|
activateAt);
|
284
261
|
}
|
@@ -129,6 +129,8 @@ interface IRegistry is IERC165 {
|
|
129
129
|
|
130
130
|
function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
|
131
131
|
|
132
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
|
133
|
+
|
132
134
|
function getObjectAddress(NftId nftId) external view returns (address objectAddress);
|
133
135
|
|
134
136
|
/// @dev Returns the object info for the specified object address.
|
@@ -13,6 +13,7 @@ import {ObjectType, ObjectTypeLib, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE,
|
|
13
13
|
import {ChainNft} from "./ChainNft.sol";
|
14
14
|
import {IRegistry} from "./IRegistry.sol";
|
15
15
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
+
import {IStaking} from "../staking/IStaking.sol";
|
16
17
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
17
18
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
19
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
@@ -354,7 +355,12 @@ contract Registry is
|
|
354
355
|
return _info[nftId];
|
355
356
|
}
|
356
357
|
|
357
|
-
function isObjectType(
|
358
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
|
359
|
+
NftId nftId = _nftIdByAddress[contractAddress];
|
360
|
+
return isObjectType(nftId, expectedObjectType);
|
361
|
+
}
|
362
|
+
|
363
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) public view returns (bool) {
|
358
364
|
return _info[nftId].objectType == expectedObjectType;
|
359
365
|
}
|
360
366
|
|
@@ -635,6 +641,8 @@ contract Registry is
|
|
635
641
|
initialOwner: stakingOwner,
|
636
642
|
data: ""}),
|
637
643
|
true);
|
644
|
+
|
645
|
+
IStaking(_stakingAddress).initializeTokenHandler();
|
638
646
|
}
|
639
647
|
|
640
648
|
/// @dev Register the provided object info for the specified NFT ID.
|
@@ -42,6 +42,7 @@ contract RegistryAdmin is
|
|
42
42
|
string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
|
43
43
|
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
44
44
|
string public constant STAKING_TARGET_NAME = "Staking";
|
45
|
+
string public constant STAKING_TH_TARGET_NAME = "StakingTH";
|
45
46
|
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
46
47
|
|
47
48
|
uint8 public constant MAX_NUM_RELEASES = 99;
|
@@ -363,6 +364,7 @@ contract RegistryAdmin is
|
|
363
364
|
onlyInitializing()
|
364
365
|
{
|
365
366
|
_createTarget(_staking, STAKING_TARGET_NAME, true, false);
|
367
|
+
_createTarget(address(IStaking(_staking).getTokenHandler()), STAKING_TH_TARGET_NAME, true, false);
|
366
368
|
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
|
367
369
|
|
368
370
|
// staking function authorization for staking service
|
@@ -376,7 +378,7 @@ contract RegistryAdmin is
|
|
376
378
|
name: STAKING_SERVICE_ROLE_NAME}));
|
377
379
|
|
378
380
|
FunctionInfo[] memory functions;
|
379
|
-
functions = new FunctionInfo[](
|
381
|
+
functions = new FunctionInfo[](12);
|
380
382
|
functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
|
381
383
|
functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
382
384
|
functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
|
@@ -388,9 +390,21 @@ contract RegistryAdmin is
|
|
388
390
|
functions[8] = toFunction(IStaking.restake.selector, "restake");
|
389
391
|
functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
|
390
392
|
functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
|
391
|
-
|
392
|
-
functions[
|
393
|
+
// TODO cleanup
|
394
|
+
// functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
|
395
|
+
// functions[11] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
|
393
396
|
_authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
|
397
|
+
|
398
|
+
// grant token handler authorizations
|
399
|
+
IStaking staking = IStaking(_staking);
|
400
|
+
functions = new FunctionInfo[](2);
|
401
|
+
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
402
|
+
functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
403
|
+
|
404
|
+
_authorizeTargetFunctions(
|
405
|
+
address(staking.getTokenHandler()),
|
406
|
+
stakingServiceRoleId,
|
407
|
+
functions);
|
394
408
|
|
395
409
|
// staking function authorization for pool service
|
396
410
|
RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
|
@@ -437,12 +451,12 @@ contract RegistryAdmin is
|
|
437
451
|
|
438
452
|
_grantRoleToAccount(stakingRoleId, _staking);
|
439
453
|
|
454
|
+
// TODO cleanup
|
440
455
|
// grant token handler authorizations
|
441
|
-
IStaking staking = IStaking(_staking);
|
442
|
-
functions = new FunctionInfo[](
|
443
|
-
functions[0] = toFunction(TokenHandler.
|
444
|
-
functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
456
|
+
// IStaking staking = IStaking(_staking);
|
457
|
+
// functions = new FunctionInfo[](1);
|
458
|
+
// functions[0] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
445
459
|
|
446
|
-
_authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
|
460
|
+
// _authorizeTargetFunctions(address(staking.getTokenHandler()), stakingRoleId, functions);
|
447
461
|
}
|
448
462
|
}
|
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
6
6
|
|
7
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
7
8
|
import {NftId} from "../type/NftId.sol";
|
8
9
|
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
9
10
|
import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
@@ -76,8 +77,7 @@ contract ReleaseRegistry is
|
|
76
77
|
constructor(Registry registry)
|
77
78
|
AccessManaged(msg.sender)
|
78
79
|
{
|
79
|
-
|
80
|
-
if(!_isRegistry(address(registry))) {
|
80
|
+
if (!ContractLib.isRegistry(address(registry))) {
|
81
81
|
revert ErrorReleaseRegistryNotRegistry(registry);
|
82
82
|
}
|
83
83
|
|
@@ -481,21 +481,5 @@ contract ReleaseRegistry is
|
|
481
481
|
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
482
482
|
}
|
483
483
|
}
|
484
|
-
|
485
|
-
/// @dev returns true iff a the address passes some simple proxy tests.
|
486
|
-
function _isRegistry(address registryAddress) internal view returns (bool) {
|
487
|
-
|
488
|
-
// zero address is certainly not registry
|
489
|
-
if (registryAddress == address(0)) {
|
490
|
-
return false;
|
491
|
-
}
|
492
|
-
// TODO try catch and return false in case of revert or just panic
|
493
|
-
// check if contract returns a zero nft id for its own address
|
494
|
-
if (IRegistry(registryAddress).getNftIdForAddress(registryAddress).eqz()) {
|
495
|
-
return false;
|
496
|
-
}
|
497
|
-
|
498
|
-
return true;
|
499
|
-
}
|
500
484
|
}
|
501
485
|
|
@@ -184,11 +184,20 @@ contract ServiceAuthorizationV3
|
|
184
184
|
IAccess.FunctionInfo[] storage functions;
|
185
185
|
|
186
186
|
functions = _authorizeForService(BUNDLE(), POOL());
|
187
|
-
_authorize(functions, IBundleService.
|
187
|
+
_authorize(functions, IBundleService.stake.selector, "stake");
|
188
|
+
_authorize(functions, IBundleService.unstake.selector, "unstake");
|
188
189
|
_authorize(functions, IBundleService.close.selector, "close");
|
189
190
|
_authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
|
190
191
|
_authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
|
191
192
|
_authorize(functions, IBundleService.unlinkPolicy.selector, "unlinkPolicy");
|
193
|
+
|
194
|
+
functions = _authorizeForService(BUNDLE(), ALL());
|
195
|
+
_authorize(functions, IBundleService.create.selector, "create");
|
196
|
+
_authorize(functions, IBundleService.extend.selector, "extend");
|
197
|
+
_authorize(functions, IBundleService.lock.selector, "lock");
|
198
|
+
_authorize(functions, IBundleService.unlock.selector, "unlock");
|
199
|
+
_authorize(functions, IBundleService.setFee.selector, "setFee");
|
200
|
+
_authorize(functions, IBundleService.withdrawBundleFees.selector, "withdrawBundleFees");
|
192
201
|
}
|
193
202
|
}
|
194
203
|
|