@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8d9d4d6-542
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 +179 -14
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1502 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1168 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +110 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1639 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +134 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +358 -1865
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +445 -2059
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1676 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +342 -313
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +320 -255
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +187 -176
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +396 -61
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +621 -166
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +630 -235
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1932 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +863 -272
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1237 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +298 -152
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +65 -8
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +155 -153
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +369 -62
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +205 -12
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +242 -191
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +215 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
- package/contracts/authorization/AccessAdmin.sol +749 -0
- package/contracts/authorization/IAccess.sol +43 -0
- package/contracts/authorization/IAccessAdmin.sol +130 -0
- package/contracts/authorization/IModuleAuthorization.sol +27 -0
- package/contracts/authorization/IServiceAuthorization.sol +35 -0
- package/contracts/authorization/InstanceAdmin.sol +108 -0
- package/contracts/authorization/ModuleAuthorization.sol +116 -0
- package/contracts/authorization/ServiceAuthorization.sol +86 -0
- package/contracts/distribution/Distribution.sol +261 -0
- package/contracts/distribution/DistributionService.sol +297 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +126 -0
- package/contracts/instance/IInstance.sol +79 -46
- package/contracts/instance/IInstanceService.sol +97 -0
- package/contracts/instance/Instance.sol +243 -69
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAdminNew.sol +74 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +176 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +392 -0
- package/contracts/instance/InstanceService.sol +439 -0
- package/contracts/instance/InstanceServiceManager.sol +44 -0
- package/contracts/instance/InstanceStore.sol +269 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectManager.sol +80 -0
- package/contracts/instance/module/IAccess.sol +46 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +42 -0
- package/contracts/instance/module/IPolicy.sol +84 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +55 -25
- package/contracts/registry/IRegistry.sol +84 -35
- package/contracts/registry/IRegistryService.sol +56 -16
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +411 -334
- package/contracts/registry/RegistryAdmin.sol +325 -0
- package/contracts/registry/RegistryService.sol +157 -274
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseManager.sol +529 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +315 -0
- package/contracts/shared/AccessManagerCustom.sol +741 -0
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +617 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +16 -10
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/shared/IKeyValueStore.sol +53 -0
- package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +5 -12
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +25 -0
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +38 -8
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +107 -0
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +127 -43
- package/contracts/shared/Registerable.sol +33 -75
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +83 -0
- package/contracts/shared/TokenHandler.sol +58 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
- package/contracts/shared/Versionable.sol +5 -93
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/{types → type}/Key32.sol +8 -3
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +264 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +89 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +201 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +39 -5
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +27 -14
- package/contracts/{types → type}/UFixed.sol +129 -12
- package/contracts/{types → type}/Version.sol +6 -2
- package/package.json +8 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -502
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -380
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -79
- package/contracts/components/Distribution.sol +0 -155
- package/contracts/components/IBaseComponent.sol +0 -19
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -65
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -246
- package/contracts/components/Product.sol +0 -299
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/IInstanceLinked.sol +0 -8
- package/contracts/instance/base/ComponentServiceBase.sol +0 -49
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/IKeyValueStore.sol +0 -50
- package/contracts/instance/base/IService.sol +0 -15
- package/contracts/instance/base/InstanceBase.sol +0 -89
- package/contracts/instance/base/KeyValueStore.sol +0 -161
- package/contracts/instance/base/ModuleBase.sol +0 -57
- package/contracts/instance/base/ServiceBase.sol +0 -43
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/bundle/BundleModule.sol +0 -134
- package/contracts/instance/module/bundle/IBundle.sol +0 -53
- package/contracts/instance/module/component/ComponentModule.sol +0 -71
- package/contracts/instance/module/component/IComponent.sol +0 -28
- package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
- package/contracts/instance/module/distribution/IDistribution.sol +0 -10
- package/contracts/instance/module/policy/IPolicy.sol +0 -63
- package/contracts/instance/module/policy/PolicyModule.sol +0 -91
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -95
- package/contracts/instance/module/risk/IRisk.sol +0 -26
- package/contracts/instance/module/risk/RiskModule.sol +0 -62
- package/contracts/instance/module/treasury/ITreasury.sol +0 -84
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
- package/contracts/instance/service/ComponentOwnerService.sol +0 -272
- package/contracts/instance/service/DistributionService.sol +0 -54
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/instance/service/PoolService.sol +0 -149
- package/contracts/instance/service/ProductService.sol +0 -509
- package/contracts/registry/IChainNft.sol +0 -22
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/registry/RegistryInstaller.sol +0 -100
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/test/TestDistribution.sol +0 -22
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestPool.sol +0 -27
- package/contracts/test/TestProduct.sol +0 -74
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -26
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -56
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/ObjectType.sol +0 -131
- package/contracts/types/ReferralId.sol +0 -48
- package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,65 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
5
|
+
import {NftId} from "../type/NftId.sol";
|
6
|
+
|
7
|
+
contract NftIdSetManager {
|
8
|
+
|
9
|
+
error ErrorNftIdSetManagerNotOwner(address owner, address sender);
|
10
|
+
error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
|
11
|
+
error ErrorNftIdSetManagerNftIdInvalid(NftId objectNftId);
|
12
|
+
error ErrorNftIdSetManagerAlreadyAdded(NftId objectNftId);
|
13
|
+
|
14
|
+
LibNftIdSet.Set private _allObjects;
|
15
|
+
LibNftIdSet.Set private _activeObjects;
|
16
|
+
address private _owner;
|
17
|
+
|
18
|
+
modifier onlyOwner() {
|
19
|
+
if(msg.sender != _owner) {
|
20
|
+
revert ErrorNftIdSetManagerNotOwner(_owner, msg.sender);
|
21
|
+
}
|
22
|
+
_;
|
23
|
+
}
|
24
|
+
|
25
|
+
constructor() {
|
26
|
+
_owner = msg.sender;
|
27
|
+
}
|
28
|
+
|
29
|
+
function add(NftId objectNftId) external onlyOwner {
|
30
|
+
LibNftIdSet.add(_allObjects, objectNftId);
|
31
|
+
LibNftIdSet.add(_activeObjects, objectNftId);
|
32
|
+
}
|
33
|
+
|
34
|
+
function activate(NftId componentNftId, NftId objectNftId) external onlyOwner {
|
35
|
+
LibNftIdSet.add(_activeObjects, objectNftId);
|
36
|
+
}
|
37
|
+
|
38
|
+
function deactivate(NftId componentNftId, NftId objectNftId) external onlyOwner {
|
39
|
+
LibNftIdSet.remove(_activeObjects, objectNftId);
|
40
|
+
}
|
41
|
+
|
42
|
+
function nftIds() external view returns (uint256 ids) {
|
43
|
+
return LibNftIdSet.size(_allObjects);
|
44
|
+
}
|
45
|
+
|
46
|
+
function getNftId(uint256 idx) external view returns (NftId) {
|
47
|
+
return LibNftIdSet.getElementAt(_allObjects, idx);
|
48
|
+
}
|
49
|
+
|
50
|
+
function exists(NftId objectNftId) external view returns (bool) {
|
51
|
+
return LibNftIdSet.contains(_allObjects, objectNftId);
|
52
|
+
}
|
53
|
+
|
54
|
+
function activeNftIds() external view returns (uint256 ids) {
|
55
|
+
return LibNftIdSet.size(_activeObjects);
|
56
|
+
}
|
57
|
+
|
58
|
+
function getActiveNftId(uint256 idx) external view returns (NftId) {
|
59
|
+
return LibNftIdSet.getElementAt(_activeObjects, idx);
|
60
|
+
}
|
61
|
+
|
62
|
+
function isActive(NftId objectNftId) external view returns (bool) {
|
63
|
+
return LibNftIdSet.contains(_activeObjects, objectNftId);
|
64
|
+
}
|
65
|
+
}
|
@@ -0,0 +1,107 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ERC165} from "./ERC165.sol";
|
5
|
+
import {INftOwnable} from "./INftOwnable.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {RegistryLinked} from "./RegistryLinked.sol";
|
8
|
+
|
9
|
+
contract NftOwnable is
|
10
|
+
ERC165,
|
11
|
+
RegistryLinked,
|
12
|
+
INftOwnable
|
13
|
+
{
|
14
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.NftOwnable")) - 1)) & ~bytes32(uint256(0xff));
|
15
|
+
bytes32 public constant NFT_OWNABLE_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
|
16
|
+
|
17
|
+
struct NftOwnableStorage {
|
18
|
+
NftId _nftId;
|
19
|
+
address _initialOwner;
|
20
|
+
}
|
21
|
+
|
22
|
+
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
23
|
+
modifier onlyOwner() {
|
24
|
+
if (msg.sender != getOwner()) {
|
25
|
+
revert ErrorNftOwnableNotOwner(msg.sender);
|
26
|
+
}
|
27
|
+
_;
|
28
|
+
}
|
29
|
+
|
30
|
+
|
31
|
+
/// @dev initialization for upgradable contracts
|
32
|
+
// used in _initializeRegisterable
|
33
|
+
function initializeNftOwnable(
|
34
|
+
address initialOwner,
|
35
|
+
address registryAddress
|
36
|
+
)
|
37
|
+
public
|
38
|
+
virtual
|
39
|
+
onlyInitializing()
|
40
|
+
{
|
41
|
+
initializeRegistryLinked(registryAddress);
|
42
|
+
initializeERC165();
|
43
|
+
|
44
|
+
if(initialOwner == address(0)) {
|
45
|
+
revert ErrorNftOwnableInitialOwnerZero();
|
46
|
+
}
|
47
|
+
|
48
|
+
_getNftOwnableStorage()._initialOwner = initialOwner;
|
49
|
+
}
|
50
|
+
|
51
|
+
|
52
|
+
/// @dev links this contract to nft after registration
|
53
|
+
// needs to be done once per registered contract and
|
54
|
+
// reduces registry calls to check ownership
|
55
|
+
// does not need any protection as function can only do the "right thing"
|
56
|
+
function linkToRegisteredNftId()
|
57
|
+
public
|
58
|
+
virtual
|
59
|
+
returns (NftId nftId)
|
60
|
+
{
|
61
|
+
return _linkToNftOwnable(address(this));
|
62
|
+
}
|
63
|
+
|
64
|
+
function getNftId() public view virtual override returns (NftId) {
|
65
|
+
return _getNftOwnableStorage()._nftId;
|
66
|
+
}
|
67
|
+
|
68
|
+
function getOwner() public view virtual override returns (address) {
|
69
|
+
NftOwnableStorage storage $ = _getNftOwnableStorage();
|
70
|
+
|
71
|
+
if ($._nftId.gtz()) {
|
72
|
+
return getRegistry().ownerOf($._nftId);
|
73
|
+
}
|
74
|
+
|
75
|
+
return $._initialOwner;
|
76
|
+
}
|
77
|
+
|
78
|
+
/// @dev used in constructor of registry service manager
|
79
|
+
// links ownership of registry service manager ot nft owner of registry service
|
80
|
+
function _linkToNftOwnable(
|
81
|
+
address nftOwnableAddress
|
82
|
+
)
|
83
|
+
internal
|
84
|
+
returns (NftId)
|
85
|
+
{
|
86
|
+
NftOwnableStorage storage $ = _getNftOwnableStorage();
|
87
|
+
|
88
|
+
if ($._nftId.gtz()) {
|
89
|
+
revert ErrorNftOwnableAlreadyLinked($._nftId);
|
90
|
+
}
|
91
|
+
|
92
|
+
if (!getRegistry().isRegistered(nftOwnableAddress)) {
|
93
|
+
revert ErrorNftOwnableContractNotRegistered(nftOwnableAddress);
|
94
|
+
}
|
95
|
+
|
96
|
+
$._nftId = getRegistry().getNftId(nftOwnableAddress);
|
97
|
+
|
98
|
+
return $._nftId;
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
function _getNftOwnableStorage() private pure returns (NftOwnableStorage storage $) {
|
103
|
+
assembly {
|
104
|
+
$.slot := NFT_OWNABLE_STORAGE_LOCATION_V1
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
@@ -0,0 +1,102 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
|
6
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
7
|
+
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
+
import {ERC165} from "./ERC165.sol";
|
11
|
+
import {IPolicyHolder} from "./IPolicyHolder.sol";
|
12
|
+
import {NftId} from "../type/NftId.sol";
|
13
|
+
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
14
|
+
import {RegistryLinked} from "./RegistryLinked.sol";
|
15
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
16
|
+
|
17
|
+
/// @dev template implementation for IPolicyHolder
|
18
|
+
contract PolicyHolder is
|
19
|
+
ERC165,
|
20
|
+
RegistryLinked, // TODO need upgradeable version
|
21
|
+
IPolicyHolder
|
22
|
+
{
|
23
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.PolicyHolder")) - 1)) & ~bytes32(uint256(0xff));
|
24
|
+
// TODO fix address
|
25
|
+
bytes32 public constant POLICY_HOLDER_STORAGE_LOCATION_V1 = 0x07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00;
|
26
|
+
|
27
|
+
struct PolicyHolderStorage {
|
28
|
+
mapping(NftId policyId => mapping(PayoutId payoutId => address beneficiary)) _beneficiary;
|
29
|
+
address _beneficiaryDefault;
|
30
|
+
}
|
31
|
+
|
32
|
+
function initializePolicyHolder(
|
33
|
+
address registryAddress,
|
34
|
+
address beneficiaryDefault
|
35
|
+
)
|
36
|
+
public
|
37
|
+
virtual
|
38
|
+
onlyInitializing()
|
39
|
+
{
|
40
|
+
initializeRegistryLinked(registryAddress);
|
41
|
+
|
42
|
+
_getPolicyHolderStorage()._beneficiaryDefault = beneficiaryDefault;
|
43
|
+
|
44
|
+
registerInterface(type(IPolicyHolder).interfaceId);
|
45
|
+
}
|
46
|
+
|
47
|
+
/// @dev empty default implementation
|
48
|
+
function requestPayout(NftId requestingPolicyNftId, Amount requestedPayoutAmount) external { }
|
49
|
+
|
50
|
+
/// @dev empty default implementation
|
51
|
+
function policyActivated(NftId policyNftId) external {}
|
52
|
+
|
53
|
+
/// @dev empty default implementation
|
54
|
+
function policyExpired(NftId policyNftId) external {}
|
55
|
+
|
56
|
+
/// @dev empty default implementation
|
57
|
+
function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external {}
|
58
|
+
|
59
|
+
/// @dev empty default implementation
|
60
|
+
function payoutExecuted(NftId policyNftId, PayoutId payoutId, address beneficiary, Amount amount) external {}
|
61
|
+
|
62
|
+
/// @dev returns payout specific beneficiary
|
63
|
+
/// when no such beneficiary is defined the policy specific beneficiary is returned
|
64
|
+
function getBeneficiary(NftId policyNftId, PayoutId payoutId) external virtual view returns (address beneficiary) {
|
65
|
+
beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][payoutId];
|
66
|
+
|
67
|
+
// fallback to claim independent beneficiary
|
68
|
+
if(beneficiary == address(0) && payoutId.gtz()) {
|
69
|
+
beneficiary = _getPolicyHolderStorage()._beneficiary[policyNftId][PayoutIdLib.zero()];
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
//--- IERC165 functions ---------------//
|
74
|
+
function onERC721Received(
|
75
|
+
address, // operator
|
76
|
+
address, // from
|
77
|
+
uint256, // tokenId
|
78
|
+
bytes calldata // data
|
79
|
+
)
|
80
|
+
external
|
81
|
+
virtual
|
82
|
+
returns (bytes4)
|
83
|
+
{
|
84
|
+
return IERC721Receiver.onERC721Received.selector;
|
85
|
+
}
|
86
|
+
|
87
|
+
/// @dev sets policy specific beneficiary (used when no payout specific beneficiary is defined)
|
88
|
+
function _setBeneficiary(NftId policyNftId, address beneficiary) internal {
|
89
|
+
_setBeneficiary(policyNftId, PayoutIdLib.zero(), beneficiary);
|
90
|
+
}
|
91
|
+
|
92
|
+
/// @dev sets policy and claim specific beneficiary
|
93
|
+
function _setBeneficiary(NftId policyNftId, PayoutId payoutId, address beneficiary) internal {
|
94
|
+
_getPolicyHolderStorage()._beneficiary[policyNftId][payoutId] = beneficiary;
|
95
|
+
}
|
96
|
+
|
97
|
+
function _getPolicyHolderStorage() private pure returns (PolicyHolderStorage storage $) {
|
98
|
+
assembly {
|
99
|
+
$.slot := POLICY_HOLDER_STORAGE_LOCATION_V1
|
100
|
+
}
|
101
|
+
}
|
102
|
+
}
|
@@ -1,79 +1,108 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {ProxyAdmin} from "@openzeppelin5/contracts/proxy/transparent/ProxyAdmin.sol";
|
6
|
-
import {ITransparentUpgradeableProxy} from "@openzeppelin5/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
|
4
|
+
import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
|
7
5
|
|
6
|
+
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
8
7
|
import {IVersionable} from "./IVersionable.sol";
|
8
|
+
import {NftOwnable} from "./NftOwnable.sol";
|
9
|
+
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
10
|
+
import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
|
11
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
9
12
|
import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
|
10
|
-
import {
|
13
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
11
15
|
|
12
16
|
/// @dev manages proxy deployments for upgradable contracs of type IVersionable
|
13
|
-
contract ProxyManager is
|
17
|
+
contract ProxyManager is
|
18
|
+
NftOwnable
|
19
|
+
{
|
20
|
+
|
21
|
+
struct VersionInfo {
|
22
|
+
Version version;
|
23
|
+
address implementation;
|
24
|
+
address activatedBy;
|
25
|
+
Timestamp activatedAt;
|
26
|
+
Blocknumber activatedIn;
|
27
|
+
}
|
28
|
+
|
29
|
+
event LogProxyManagerVersionableDeployed(address indexed proxy, address initialImplementation);
|
30
|
+
event LogProxyManagerVersionableUpgraded(address indexed proxy, address upgradedImplementation);
|
31
|
+
|
32
|
+
error ErrorProxyManagerAlreadyDeployed();
|
33
|
+
error ErrorProxyManagerNotYetDeployed();
|
14
34
|
|
15
|
-
|
16
|
-
|
17
|
-
event LogProxyUpgraded(address indexed proxy, address upgradedImplementation);
|
35
|
+
error ErrorProxyManagerZeroVersion();
|
36
|
+
error ErrorProxyManagerNextVersionNotIncreasing(Version nextVersion);
|
18
37
|
|
19
|
-
|
20
|
-
error ErrorAlreadyDeployedWithSalt();
|
21
|
-
error ErrorNotYetDeployed();
|
38
|
+
UpgradableProxyWithAdmin internal _proxy;
|
22
39
|
|
23
|
-
|
24
|
-
|
40
|
+
// state to keep version history
|
41
|
+
mapping(Version version => VersionInfo info) _versionHistory;
|
42
|
+
Version [] _versions;
|
25
43
|
|
26
44
|
/// @dev only used to capture proxy owner
|
27
|
-
constructor()
|
28
|
-
|
29
|
-
|
45
|
+
constructor(address registry)
|
46
|
+
{
|
47
|
+
initializeProxyManager(registry);
|
48
|
+
}
|
49
|
+
|
50
|
+
function initializeProxyManager(address registry)
|
51
|
+
public
|
52
|
+
initializer()
|
53
|
+
{
|
54
|
+
initializeNftOwnable(msg.sender, registry);
|
55
|
+
}
|
30
56
|
|
31
57
|
/// @dev deploy initial contract
|
32
58
|
function deploy(address initialImplementation, bytes memory initializationData)
|
33
59
|
public
|
60
|
+
virtual
|
34
61
|
onlyOwner()
|
35
62
|
returns (IVersionable versionable)
|
36
63
|
{
|
37
|
-
if (
|
64
|
+
if (_versions.length > 0) {
|
65
|
+
revert ErrorProxyManagerAlreadyDeployed();
|
66
|
+
}
|
38
67
|
|
39
|
-
address currentProxyOwner =
|
68
|
+
address currentProxyOwner = getOwner(); // used by implementation
|
40
69
|
address initialProxyAdminOwner = address(this); // used by proxy
|
41
|
-
bytes memory data = getDeployData(initialImplementation, currentProxyOwner, initializationData);
|
42
70
|
|
43
71
|
_proxy = new UpgradableProxyWithAdmin(
|
44
72
|
initialImplementation,
|
45
73
|
initialProxyAdminOwner,
|
46
|
-
|
74
|
+
getDeployData(currentProxyOwner, initializationData)
|
47
75
|
);
|
48
76
|
|
49
|
-
_isDeployed = true;
|
50
77
|
versionable = IVersionable(address(_proxy));
|
78
|
+
_updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
|
51
79
|
|
52
|
-
emit
|
80
|
+
emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
|
53
81
|
}
|
54
82
|
|
55
|
-
function
|
83
|
+
function deployDetermenistic(address initialImplementation, bytes memory initializationData, bytes32 salt)
|
56
84
|
public
|
85
|
+
virtual
|
57
86
|
onlyOwner()
|
58
87
|
returns (IVersionable versionable)
|
59
88
|
{
|
60
|
-
if (
|
89
|
+
if (_versions.length > 0) {
|
90
|
+
revert ErrorProxyManagerAlreadyDeployed();
|
91
|
+
}
|
61
92
|
|
62
|
-
address currentProxyOwner =
|
63
|
-
address initialProxyAdminOwner = address(this);
|
64
|
-
bytes memory data = getDeployData(initialImplementation, currentProxyOwner, initializationData);
|
93
|
+
address currentProxyOwner = getOwner();
|
94
|
+
address initialProxyAdminOwner = address(this);
|
65
95
|
|
66
|
-
// via create2
|
67
96
|
_proxy = new UpgradableProxyWithAdmin{salt: salt}(
|
68
97
|
initialImplementation,
|
69
98
|
initialProxyAdminOwner,
|
70
|
-
|
99
|
+
getDeployData(currentProxyOwner, initializationData)
|
71
100
|
);
|
72
101
|
|
73
|
-
_isDeployed = true;
|
74
102
|
versionable = IVersionable(address(_proxy));
|
103
|
+
_updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
|
75
104
|
|
76
|
-
emit
|
105
|
+
emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
|
77
106
|
}
|
78
107
|
|
79
108
|
/// @dev upgrade existing contract
|
@@ -83,33 +112,88 @@ contract ProxyManager is Ownable {
|
|
83
112
|
onlyOwner()
|
84
113
|
returns (IVersionable versionable)
|
85
114
|
{
|
86
|
-
if (
|
115
|
+
if (_versions.length == 0) {
|
116
|
+
revert ErrorProxyManagerNotYetDeployed();
|
117
|
+
}
|
87
118
|
|
88
|
-
address currentProxyOwner =
|
89
|
-
ProxyAdmin proxyAdmin = getProxyAdmin();
|
119
|
+
address currentProxyOwner = getOwner();
|
120
|
+
ProxyAdmin proxyAdmin = getProxy().getProxyAdmin();
|
90
121
|
ITransparentUpgradeableProxy proxy = ITransparentUpgradeableProxy(address(_proxy));
|
91
|
-
bytes memory data = getUpgradeData(newImplementation, currentProxyOwner, upgradeData);
|
92
122
|
|
93
123
|
proxyAdmin.upgradeAndCall(
|
94
124
|
proxy,
|
95
125
|
newImplementation,
|
96
|
-
|
126
|
+
getUpgradeData(upgradeData));
|
97
127
|
|
98
128
|
versionable = IVersionable(address(_proxy));
|
129
|
+
_updateVersionHistory(versionable.getVersion(), newImplementation, currentProxyOwner);
|
130
|
+
|
131
|
+
emit LogProxyManagerVersionableUpgraded(address(_proxy), newImplementation);
|
99
132
|
|
100
|
-
|
133
|
+
}
|
134
|
+
|
135
|
+
function linkToProxy() public returns (NftId) {
|
136
|
+
return _linkToNftOwnable(address(_proxy));
|
137
|
+
}
|
138
|
+
|
139
|
+
function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
|
140
|
+
return abi.encodeWithSelector(
|
141
|
+
IVersionable.initializeVersionable.selector,
|
142
|
+
proxyOwner,
|
143
|
+
deployData);
|
144
|
+
}
|
145
|
+
|
146
|
+
function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
|
147
|
+
return abi.encodeWithSelector(
|
148
|
+
IVersionable.upgradeVersionable.selector,
|
149
|
+
upgradeData);
|
150
|
+
}
|
101
151
|
|
152
|
+
function getProxy() public view returns (UpgradableProxyWithAdmin) {
|
153
|
+
return _proxy;
|
102
154
|
}
|
103
155
|
|
104
|
-
function
|
105
|
-
return
|
156
|
+
function getVersion() external view virtual returns(Version) {
|
157
|
+
return IVersionable(address(_proxy)).getVersion();
|
106
158
|
}
|
107
159
|
|
108
|
-
function
|
109
|
-
return
|
160
|
+
function getVersionCount() external view returns(uint256) {
|
161
|
+
return _versions.length;
|
110
162
|
}
|
111
163
|
|
112
|
-
function
|
113
|
-
return
|
164
|
+
function getVersion(uint256 idx) external view returns(Version) {
|
165
|
+
return _versions[idx];
|
166
|
+
}
|
167
|
+
|
168
|
+
function getVersionInfo(Version _version) external view returns(VersionInfo memory) {
|
169
|
+
return _versionHistory[_version];
|
170
|
+
}
|
171
|
+
|
172
|
+
function _updateVersionHistory(
|
173
|
+
Version newVersion,
|
174
|
+
address implementation,
|
175
|
+
address activatedBy
|
176
|
+
)
|
177
|
+
private
|
178
|
+
{
|
179
|
+
if(newVersion == VersionLib.zeroVersion()) {
|
180
|
+
revert ErrorProxyManagerZeroVersion();
|
181
|
+
}
|
182
|
+
|
183
|
+
if(_versions.length > 0) {
|
184
|
+
if(newVersion.toInt() <= _versions[_versions.length-1].toInt()) {
|
185
|
+
revert ErrorProxyManagerNextVersionNotIncreasing(newVersion);
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
// update version history
|
190
|
+
_versions.push(newVersion);
|
191
|
+
_versionHistory[newVersion] = VersionInfo(
|
192
|
+
newVersion,
|
193
|
+
implementation,
|
194
|
+
activatedBy,
|
195
|
+
TimestampLib.blockTimestamp(),
|
196
|
+
blockNumber()
|
197
|
+
);
|
114
198
|
}
|
115
199
|
}
|
@@ -1,117 +1,75 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Initializable} from "@
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {NftId,
|
7
|
-
import {
|
6
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
|
+
import {NftOwnable} from "../shared/NftOwnable.sol";
|
8
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
8
9
|
|
9
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
10
11
|
import {IRegisterable} from "./IRegisterable.sol";
|
11
|
-
import {Versionable} from "./Versionable.sol";
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
ERC165,
|
17
|
-
IRegisterable,
|
18
|
-
Initializable
|
13
|
+
contract Registerable is
|
14
|
+
NftOwnable,
|
15
|
+
IRegisterable
|
19
16
|
{
|
20
17
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
|
21
18
|
bytes32 public constant REGISTERABLE_LOCATION_V1 = 0x6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300;
|
22
19
|
|
23
20
|
struct RegisterableStorage {
|
24
|
-
IRegistry _registry;
|
25
21
|
NftId _parentNftId;
|
26
|
-
address _initialOwner;
|
27
22
|
ObjectType _objectType;
|
28
23
|
bool _isInterceptor;
|
29
24
|
bytes _data;
|
30
25
|
}
|
31
26
|
|
32
|
-
function
|
33
|
-
assembly {
|
34
|
-
$.slot := REGISTERABLE_LOCATION_V1
|
35
|
-
}
|
36
|
-
}
|
37
|
-
|
38
|
-
modifier onlyOwner() virtual {
|
39
|
-
require(
|
40
|
-
msg.sender == getOwner(),
|
41
|
-
"ERROR:RGB-001:NOT_OWNER"
|
42
|
-
);
|
43
|
-
_;
|
44
|
-
}
|
45
|
-
|
46
|
-
function _initializeRegisterable(
|
27
|
+
function initializeRegisterable(
|
47
28
|
address registryAddress,
|
48
29
|
NftId parentNftId,
|
49
30
|
ObjectType objectType,
|
50
31
|
bool isInterceptor,
|
51
32
|
address initialOwner,
|
52
|
-
bytes memory data
|
33
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
53
34
|
)
|
54
|
-
|
55
|
-
//onlyInitializing//TODO uncomment when "fully" upgradeable
|
35
|
+
public
|
56
36
|
virtual
|
37
|
+
onlyInitializing
|
57
38
|
{
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
);
|
62
|
-
|
63
|
-
// TODO check parentNftId -> registry.isRegistered(parentNftId)
|
64
|
-
// TODO check object-parent type pair -> registry.isValidTypeCombo() or something...verify with registry that setup will be able to register...
|
39
|
+
initializeNftOwnable(
|
40
|
+
initialOwner,
|
41
|
+
registryAddress);
|
65
42
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
);
|
43
|
+
RegisterableStorage storage $;
|
44
|
+
assembly {
|
45
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
46
|
+
}
|
71
47
|
|
72
|
-
RegisterableStorage storage $ = _getRegisterableStorage();
|
73
|
-
$._registry = registry;
|
74
48
|
$._parentNftId = parentNftId;
|
75
49
|
$._objectType = objectType;
|
76
50
|
$._isInterceptor = isInterceptor;
|
77
|
-
$.
|
78
|
-
$._data = data;
|
79
|
-
|
80
|
-
_registerInterface(type(Registerable).interfaceId);
|
81
|
-
}
|
82
|
-
|
83
|
-
// from IOwnable
|
84
|
-
function getOwner() public view virtual returns (address) {
|
85
|
-
return _getRegisterableStorage()._registry.ownerOf(address(this));
|
51
|
+
$._data = registryData;
|
86
52
|
}
|
87
53
|
|
88
|
-
// from IRegisterable
|
89
|
-
function getRegistry() public view virtual returns (IRegistry registry) {
|
90
|
-
return _getRegisterableStorage()._registry;
|
91
|
-
}
|
92
|
-
|
93
|
-
function getNftId() public view virtual returns (NftId nftId) {
|
94
|
-
return _getRegisterableStorage()._registry.getNftId(address(this));
|
95
|
-
}
|
96
54
|
|
97
55
|
function getInitialInfo()
|
98
56
|
public
|
99
57
|
view
|
100
58
|
virtual
|
101
|
-
returns (IRegistry.ObjectInfo memory
|
59
|
+
returns (IRegistry.ObjectInfo memory info)
|
102
60
|
{
|
103
|
-
RegisterableStorage storage
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
),
|
114
|
-
|
115
|
-
|
61
|
+
RegisterableStorage storage $;
|
62
|
+
assembly {
|
63
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
64
|
+
}
|
65
|
+
|
66
|
+
info = IRegistry.ObjectInfo(
|
67
|
+
NftIdLib.zero(),
|
68
|
+
$._parentNftId,
|
69
|
+
$._objectType,
|
70
|
+
$._isInterceptor,
|
71
|
+
address(this),
|
72
|
+
getOwner(),
|
73
|
+
$._data);
|
116
74
|
}
|
117
75
|
}
|