@etherisc/gif-next 0.0.2-d48ae55-246 → 0.0.2-d53bd1e-732
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 +17 -86
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +302 -319
- 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/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +240 -215
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +383 -212
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +61 -116
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +263 -1985
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +294 -199
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +434 -2792
- 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/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 +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +642 -327
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +413 -453
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +274 -126
- 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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- 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 +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +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/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +301 -296
- 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 → pool}/IBundleService.sol/IBundleService.json +257 -352
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +479 -219
- 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/{components → pool}/Pool.sol/Pool.json +512 -313
- 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/{instance/service → product}/IApplicationService.sol/IApplicationService.json +121 -247
- 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/{instance/service → product}/IPolicyService.sol/IPolicyService.json +239 -303
- 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} +262 -225
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +409 -227
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +400 -0
- 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/{components → product}/Product.sol/Product.json +432 -325
- 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 +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +188 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +293 -225
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- 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 +425 -34
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +347 -302
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +246 -126
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +769 -98
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +307 -177
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -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/{components → shared}/Component.sol/Component.json +219 -220
- 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/service/IProductService.sol/IProductService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +222 -232
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- 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/{components → shared}/IComponent.sol/IComponent.json +224 -113
- 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 +50 -11
- 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 +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -40
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -40
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -34
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +76 -164
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -150
- 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 +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +19 -78
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -47
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +215 -97
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +28 -90
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -36
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +88 -208
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- 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 +0 -150
- 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/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- 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/{types → type}/Key32.sol/Key32Lib.json +3 -3
- 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/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -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 → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- 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/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/{components → distribution}/Distribution.sol +50 -105
- 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 +15 -14
- package/contracts/instance/IInstance.sol +72 -71
- package/contracts/instance/IInstanceService.sol +59 -21
- package/contracts/instance/Instance.sol +175 -193
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +159 -60
- package/contracts/instance/InstanceService.sol +302 -305
- package/contracts/instance/InstanceServiceManager.sol +12 -22
- package/contracts/instance/InstanceStore.sol +269 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -16
- package/contracts/instance/module/IAccess.sol +19 -20
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -19
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.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/{instance/service → product}/IApplicationService.sol +17 -37
- 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 +16 -1
- package/contracts/registry/IRegistry.sol +46 -21
- package/contracts/registry/IRegistryService.sol +40 -38
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +215 -97
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +92 -103
- package/contracts/registry/RegistryServiceManager.sol +22 -31
- package/contracts/registry/ReleaseManager.sol +398 -202
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +262 -60
- package/contracts/shared/AccessAdmin.sol +759 -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 +3 -2
- package/contracts/shared/IAccessAdmin.sol +168 -0
- 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/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +6 -11
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -4
- package/contracts/shared/IService.sol +14 -5
- 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 +37 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +10 -93
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/ProxyManager.sol +129 -25
- package/contracts/shared/Registerable.sol +15 -21
- package/contracts/shared/RegistryLinked.sol +5 -26
- package/contracts/shared/Service.sol +52 -29
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +1 -90
- 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/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +241 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +5 -1
- 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 +34 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +23 -14
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +2 -1
- package/package.json +4 -3
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- 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/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- 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/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- 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/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1117
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1318
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -586
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1200
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -614
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- 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/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1378
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -642
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -957
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -574
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1007
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -574
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- 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/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -446
- 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 -759
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- 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 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- 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/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.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/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/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- 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/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- 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 -156
- 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 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.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/contracts/components/Component.sol +0 -236
- package/contracts/components/IComponent.sol +0 -50
- package/contracts/components/IDistributionComponent.sol +0 -100
- package/contracts/components/IPoolComponent.sol +0 -87
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -254
- package/contracts/components/Product.sol +0 -278
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- 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/InstanceAccessManager.sol +0 -297
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -268
- package/contracts/instance/service/BundleService.sol +0 -298
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -291
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -54
- package/contracts/instance/service/IDistributionService.sol +0 -65
- package/contracts/instance/service/IPolicyService.sol +0 -88
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -524
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -109
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -233
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -156
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,34 +1,57 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
|
5
|
-
import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
|
6
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";
|
9
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";
|
10
12
|
import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
|
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
17
|
contract ProxyManager is
|
14
18
|
NftOwnable
|
15
19
|
{
|
16
20
|
|
17
|
-
|
18
|
-
|
19
|
-
|
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);
|
20
31
|
|
21
|
-
error
|
22
|
-
error
|
23
|
-
|
32
|
+
error ErrorProxyManagerAlreadyDeployed();
|
33
|
+
error ErrorProxyManagerNotYetDeployed();
|
34
|
+
|
35
|
+
error ErrorProxyManagerZeroVersion();
|
36
|
+
error ErrorProxyManagerNextVersionNotIncreasing(Version nextVersion);
|
24
37
|
|
25
38
|
UpgradableProxyWithAdmin internal _proxy;
|
26
|
-
|
39
|
+
|
40
|
+
// state to keep version history
|
41
|
+
mapping(Version version => VersionInfo info) _versionHistory;
|
42
|
+
Version [] _versions;
|
27
43
|
|
28
44
|
/// @dev only used to capture proxy owner
|
29
|
-
constructor()
|
45
|
+
constructor(address registry)
|
30
46
|
{
|
31
|
-
|
47
|
+
initializeProxyManager(registry);
|
48
|
+
}
|
49
|
+
|
50
|
+
function initializeProxyManager(address registry)
|
51
|
+
public
|
52
|
+
initializer()
|
53
|
+
{
|
54
|
+
initializeNftOwnable(msg.sender, registry);
|
32
55
|
}
|
33
56
|
|
34
57
|
/// @dev deploy initial contract
|
@@ -38,22 +61,48 @@ contract ProxyManager is
|
|
38
61
|
onlyOwner()
|
39
62
|
returns (IVersionable versionable)
|
40
63
|
{
|
41
|
-
if (
|
42
|
-
|
64
|
+
if (_versions.length > 0) {
|
65
|
+
revert ErrorProxyManagerAlreadyDeployed();
|
66
|
+
}
|
43
67
|
|
44
68
|
address currentProxyOwner = getOwner(); // used by implementation
|
45
69
|
address initialProxyAdminOwner = address(this); // used by proxy
|
46
|
-
bytes memory data = getDeployData(initialImplementation, currentProxyOwner, initializationData);
|
47
70
|
|
48
71
|
_proxy = new UpgradableProxyWithAdmin(
|
49
72
|
initialImplementation,
|
50
73
|
initialProxyAdminOwner,
|
51
|
-
|
74
|
+
getDeployData(currentProxyOwner, initializationData)
|
75
|
+
);
|
76
|
+
|
77
|
+
versionable = IVersionable(address(_proxy));
|
78
|
+
_updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
|
79
|
+
|
80
|
+
emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
|
81
|
+
}
|
82
|
+
|
83
|
+
function deployDetermenistic(address initialImplementation, bytes memory initializationData, bytes32 salt)
|
84
|
+
public
|
85
|
+
virtual
|
86
|
+
onlyOwner()
|
87
|
+
returns (IVersionable versionable)
|
88
|
+
{
|
89
|
+
if (_versions.length > 0) {
|
90
|
+
revert ErrorProxyManagerAlreadyDeployed();
|
91
|
+
}
|
92
|
+
|
93
|
+
address currentProxyOwner = getOwner();
|
94
|
+
address initialProxyAdminOwner = address(this);
|
95
|
+
|
96
|
+
_proxy = new UpgradableProxyWithAdmin{salt: salt}(
|
97
|
+
initialImplementation,
|
98
|
+
initialProxyAdminOwner,
|
99
|
+
getDeployData(currentProxyOwner, initializationData)
|
52
100
|
);
|
53
101
|
|
54
102
|
versionable = IVersionable(address(_proxy));
|
103
|
+
_updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
|
55
104
|
|
56
|
-
emit
|
105
|
+
emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
|
57
106
|
}
|
58
107
|
|
59
108
|
/// @dev upgrade existing contract
|
@@ -63,33 +112,88 @@ contract ProxyManager is
|
|
63
112
|
onlyOwner()
|
64
113
|
returns (IVersionable versionable)
|
65
114
|
{
|
66
|
-
if (
|
115
|
+
if (_versions.length == 0) {
|
116
|
+
revert ErrorProxyManagerNotYetDeployed();
|
117
|
+
}
|
67
118
|
|
68
119
|
address currentProxyOwner = getOwner();
|
69
120
|
ProxyAdmin proxyAdmin = getProxy().getProxyAdmin();
|
70
121
|
ITransparentUpgradeableProxy proxy = ITransparentUpgradeableProxy(address(_proxy));
|
71
|
-
bytes memory data = getUpgradeData(newImplementation, currentProxyOwner, upgradeData);
|
72
122
|
|
73
123
|
proxyAdmin.upgradeAndCall(
|
74
124
|
proxy,
|
75
125
|
newImplementation,
|
76
|
-
|
126
|
+
getUpgradeData(upgradeData));
|
77
127
|
|
78
128
|
versionable = IVersionable(address(_proxy));
|
129
|
+
_updateVersionHistory(versionable.getVersion(), newImplementation, currentProxyOwner);
|
130
|
+
|
131
|
+
emit LogProxyManagerVersionableUpgraded(address(_proxy), newImplementation);
|
79
132
|
|
80
|
-
|
133
|
+
}
|
81
134
|
|
135
|
+
function linkToProxy() public returns (NftId) {
|
136
|
+
return _linkToNftOwnable(address(_proxy));
|
82
137
|
}
|
83
138
|
|
84
|
-
function getDeployData(address
|
85
|
-
return abi.encodeWithSelector(
|
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);
|
86
144
|
}
|
87
145
|
|
88
|
-
function getUpgradeData(
|
89
|
-
return abi.encodeWithSelector(
|
146
|
+
function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
|
147
|
+
return abi.encodeWithSelector(
|
148
|
+
IVersionable.upgradeVersionable.selector,
|
149
|
+
upgradeData);
|
90
150
|
}
|
91
151
|
|
92
|
-
function getProxy() public returns (UpgradableProxyWithAdmin) {
|
152
|
+
function getProxy() public view returns (UpgradableProxyWithAdmin) {
|
93
153
|
return _proxy;
|
94
154
|
}
|
155
|
+
|
156
|
+
function getVersion() external view virtual returns(Version) {
|
157
|
+
return IVersionable(address(_proxy)).getVersion();
|
158
|
+
}
|
159
|
+
|
160
|
+
function getVersionCount() external view returns(uint256) {
|
161
|
+
return _versions.length;
|
162
|
+
}
|
163
|
+
|
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
|
+
);
|
198
|
+
}
|
95
199
|
}
|
@@ -3,13 +3,12 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {NftId,
|
6
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
7
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
8
|
-
import {ObjectType} from "../
|
8
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
9
9
|
|
10
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
11
11
|
import {IRegisterable} from "./IRegisterable.sol";
|
12
|
-
import {Versionable} from "./Versionable.sol";
|
13
12
|
|
14
13
|
contract Registerable is
|
15
14
|
NftOwnable,
|
@@ -18,8 +17,6 @@ contract Registerable is
|
|
18
17
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
|
19
18
|
bytes32 public constant REGISTERABLE_LOCATION_V1 = 0x6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300;
|
20
19
|
|
21
|
-
error ErrorRegisterableNotRegistry(address registryAddress);
|
22
|
-
|
23
20
|
struct RegisterableStorage {
|
24
21
|
NftId _parentNftId;
|
25
22
|
ObjectType _objectType;
|
@@ -27,19 +24,13 @@ contract Registerable is
|
|
27
24
|
bytes _data;
|
28
25
|
}
|
29
26
|
|
30
|
-
function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
|
31
|
-
assembly {
|
32
|
-
$.slot := REGISTERABLE_LOCATION_V1
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
27
|
function initializeRegisterable(
|
37
28
|
address registryAddress,
|
38
29
|
NftId parentNftId,
|
39
30
|
ObjectType objectType,
|
40
31
|
bool isInterceptor,
|
41
32
|
address initialOwner,
|
42
|
-
bytes memory data
|
33
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
43
34
|
)
|
44
35
|
public
|
45
36
|
virtual
|
@@ -49,16 +40,15 @@ contract Registerable is
|
|
49
40
|
initialOwner,
|
50
41
|
registryAddress);
|
51
42
|
|
52
|
-
|
53
|
-
|
43
|
+
RegisterableStorage storage $;
|
44
|
+
assembly {
|
45
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
46
|
+
}
|
54
47
|
|
55
|
-
RegisterableStorage storage $ = _getRegisterableStorage();
|
56
48
|
$._parentNftId = parentNftId;
|
57
49
|
$._objectType = objectType;
|
58
50
|
$._isInterceptor = isInterceptor;
|
59
|
-
$._data =
|
60
|
-
|
61
|
-
registerInterface(type(IRegisterable).interfaceId);
|
51
|
+
$._data = registryData;
|
62
52
|
}
|
63
53
|
|
64
54
|
|
@@ -68,14 +58,18 @@ contract Registerable is
|
|
68
58
|
virtual
|
69
59
|
returns (IRegistry.ObjectInfo memory info)
|
70
60
|
{
|
71
|
-
RegisterableStorage
|
61
|
+
RegisterableStorage storage $;
|
62
|
+
assembly {
|
63
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
64
|
+
}
|
65
|
+
|
72
66
|
info = IRegistry.ObjectInfo(
|
73
|
-
|
67
|
+
NftIdLib.zero(),
|
74
68
|
$._parentNftId,
|
75
69
|
$._objectType,
|
76
70
|
$._isInterceptor,
|
77
71
|
address(this),
|
78
|
-
|
72
|
+
getOwner(),
|
79
73
|
$._data);
|
80
74
|
}
|
81
75
|
}
|
@@ -21,32 +21,6 @@ contract RegistryLinked is
|
|
21
21
|
virtual
|
22
22
|
onlyInitializing()
|
23
23
|
{
|
24
|
-
_setRegistry(registryAddress);
|
25
|
-
}
|
26
|
-
|
27
|
-
|
28
|
-
function getRegistry() public view returns (IRegistry) {
|
29
|
-
return _registry;
|
30
|
-
}
|
31
|
-
|
32
|
-
|
33
|
-
function getRegistryAddress() public view returns (address) {
|
34
|
-
return address(_registry);
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
function _setRegistry(address registryAddress)
|
39
|
-
internal
|
40
|
-
{
|
41
|
-
|
42
|
-
if (address(_registry) != address(0)) {
|
43
|
-
revert ErrorRegistryAlreadyInitialized(address(_registry));
|
44
|
-
}
|
45
|
-
|
46
|
-
if (registryAddress == address(0)) {
|
47
|
-
revert ErrorRegistryAddressZero();
|
48
|
-
}
|
49
|
-
|
50
24
|
if (registryAddress.code.length == 0) {
|
51
25
|
revert ErrorNotRegistry(registryAddress);
|
52
26
|
}
|
@@ -61,4 +35,9 @@ contract RegistryLinked is
|
|
61
35
|
revert ErrorNotRegistry(registryAddress);
|
62
36
|
}
|
63
37
|
}
|
38
|
+
|
39
|
+
|
40
|
+
function getRegistry() public view returns (IRegistry) {
|
41
|
+
return _registry;
|
42
|
+
}
|
64
43
|
}
|
@@ -1,60 +1,83 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {Version, VersionPart, VersionLib} from "../types/Version.sol";
|
4
|
+
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
7
6
|
|
8
|
-
import {
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
9
8
|
import {IService} from "./IService.sol";
|
10
9
|
import {IVersionable} from "./IVersionable.sol";
|
11
|
-
import {
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
|
+
import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
|
12
12
|
import {Registerable} from "./Registerable.sol";
|
13
|
-
|
14
|
-
import {
|
13
|
+
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
14
|
+
import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
|
15
|
+
import {Versionable} from "./Versionable.sol";
|
15
16
|
|
16
17
|
|
17
18
|
/// @dev service base contract
|
18
19
|
abstract contract Service is
|
19
20
|
Registerable,
|
20
21
|
Versionable,
|
22
|
+
AccessManagedUpgradeable,
|
21
23
|
IService
|
22
24
|
{
|
23
|
-
function getDomain() public pure virtual override returns(ObjectType);
|
24
25
|
|
25
|
-
|
26
|
-
return getVersion().toMajorPart();
|
27
|
-
}
|
26
|
+
uint8 private constant GIF_MAJOR_VERSION = 3;
|
28
27
|
|
29
|
-
// from Versionable
|
30
|
-
function getVersion()
|
31
|
-
public
|
32
|
-
pure
|
33
|
-
virtual override (IVersionable, Versionable)
|
34
|
-
returns(Version)
|
35
|
-
{
|
36
|
-
return VersionLib.toVersion(3,0,0);
|
37
|
-
}
|
38
28
|
|
39
29
|
function initializeService(
|
40
30
|
address registry,
|
31
|
+
address authority, // real authority for registry service adress(0) for other services
|
41
32
|
address initialOwner
|
42
33
|
)
|
43
34
|
public
|
44
35
|
virtual
|
45
36
|
onlyInitializing()
|
46
37
|
{
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
38
|
+
initializeRegisterable(
|
39
|
+
registry,
|
40
|
+
IRegistry(registry).getNftId(),
|
41
|
+
SERVICE(),
|
42
|
+
false, // is interceptor
|
43
|
+
initialOwner,
|
44
|
+
""); // data
|
45
|
+
|
46
|
+
// externally provided authority
|
47
|
+
if(authority != address(0)) {
|
48
|
+
__AccessManaged_init(authority);
|
49
|
+
} else {
|
50
|
+
address registryServiceAddress = _getServiceAddress(REGISTRY());
|
51
51
|
|
52
|
-
|
52
|
+
// copy authority from already registered registry services
|
53
|
+
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
54
|
+
}
|
55
|
+
|
56
|
+
registerInterface(type(IAccessManaged).interfaceId);
|
53
57
|
registerInterface(type(IService).interfaceId);
|
54
58
|
}
|
55
59
|
|
56
|
-
|
57
|
-
|
58
|
-
|
60
|
+
function getDomain() external virtual pure returns(ObjectType serviceDomain) {
|
61
|
+
return _getDomain();
|
62
|
+
}
|
63
|
+
|
64
|
+
function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
|
65
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
66
|
+
}
|
67
|
+
|
68
|
+
// from Versionable
|
69
|
+
function getVersion()
|
70
|
+
public
|
71
|
+
pure
|
72
|
+
virtual override (IVersionable, Versionable)
|
73
|
+
returns(Version)
|
74
|
+
{
|
75
|
+
return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
|
76
|
+
}
|
77
|
+
|
78
|
+
function _getDomain() internal virtual pure returns (ObjectType);
|
79
|
+
|
80
|
+
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
81
|
+
return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
|
59
82
|
}
|
60
83
|
}
|
@@ -4,6 +4,11 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
6
6
|
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
|
9
|
+
/// @dev token specific transfer helper
|
10
|
+
/// a default token contract is provided via contract constructor
|
11
|
+
/// relies internally on oz SafeERC20.safeTransferFrom
|
7
12
|
contract TokenHandler {
|
8
13
|
IERC20Metadata private _token;
|
9
14
|
|
@@ -11,17 +16,43 @@ contract TokenHandler {
|
|
11
16
|
_token = IERC20Metadata(token);
|
12
17
|
}
|
13
18
|
|
14
|
-
|
19
|
+
/// @dev transfer amount default tokens
|
15
20
|
function transfer(
|
16
21
|
address from,
|
17
22
|
address to,
|
18
|
-
|
19
|
-
)
|
20
|
-
|
21
|
-
|
23
|
+
Amount amount
|
24
|
+
)
|
25
|
+
external
|
26
|
+
{
|
27
|
+
SafeERC20.safeTransferFrom(
|
28
|
+
_token,
|
29
|
+
from,
|
30
|
+
to,
|
31
|
+
amount.toInt());
|
32
|
+
}
|
33
|
+
|
34
|
+
/// @dev transfer amount of the specified token
|
35
|
+
function safeTransferFrom(
|
36
|
+
address token,
|
37
|
+
address from,
|
38
|
+
address to,
|
39
|
+
Amount amount
|
40
|
+
)
|
41
|
+
external
|
42
|
+
{
|
43
|
+
SafeERC20.safeTransferFrom(
|
44
|
+
IERC20Metadata(token),
|
45
|
+
from,
|
46
|
+
to,
|
47
|
+
amount.toInt());
|
22
48
|
}
|
23
49
|
|
24
|
-
|
50
|
+
/// @dev returns the default token defined for this TokenHandler
|
51
|
+
function getToken()
|
52
|
+
external
|
53
|
+
view
|
54
|
+
returns (IERC20Metadata)
|
55
|
+
{
|
25
56
|
return _token;
|
26
57
|
}
|
27
58
|
}
|
@@ -3,84 +3,39 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
5
|
|
6
|
-
import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
|
7
|
-
import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
|
8
|
-
import {Version, VersionPart, VersionLib} from "../types/Version.sol";
|
9
|
-
|
10
6
|
import {IVersionable} from "./IVersionable.sol";
|
11
|
-
|
7
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
12
8
|
|
13
9
|
|
14
10
|
abstract contract Versionable is
|
15
11
|
Initializable,
|
16
12
|
IVersionable
|
17
13
|
{
|
18
|
-
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Versionable.sol")) - 1)) & ~bytes32(uint256(0xff))
|
19
|
-
bytes32 private constant VERSIONABLE_LOCATION_V1 = 0x4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900;
|
20
|
-
|
21
|
-
|
22
|
-
/// @custom:storage-location erc7201:gif-next.contracts.shared.Versionable.sol
|
23
|
-
struct VersionableStorage {
|
24
|
-
mapping(Version version => VersionInfo info) _versionHistory;
|
25
|
-
Version [] _versions;
|
26
|
-
Version _v1;
|
27
|
-
}
|
28
|
-
|
29
|
-
|
30
14
|
constructor() {
|
31
15
|
_disableInitializers();
|
32
16
|
}
|
33
|
-
// TODO write test where new version of private _updateVersionHistory is added and used...
|
34
17
|
|
35
18
|
function initializeVersionable(
|
36
|
-
address implementation,
|
37
19
|
address activatedBy,
|
38
20
|
bytes memory data
|
39
21
|
)
|
40
22
|
public
|
41
23
|
initializer
|
42
24
|
{
|
43
|
-
_updateVersionHistory(implementation, activatedBy);
|
44
25
|
_initialize(activatedBy, data);
|
45
26
|
}
|
46
27
|
|
47
|
-
// TODO activatedBy MUST ALWAYS be an owner?
|
48
28
|
function upgradeVersionable(
|
49
|
-
address implementation,
|
50
|
-
address activatedBy,
|
51
29
|
bytes memory data
|
52
30
|
)
|
53
31
|
external
|
54
32
|
reinitializer(VersionLib.toUint64(getVersion()))
|
55
33
|
{
|
56
|
-
_updateVersionHistory(implementation, activatedBy);
|
57
34
|
_upgrade(data);
|
58
35
|
}
|
59
36
|
|
60
|
-
function isInitialized(Version _version) public override view returns(bool) {
|
61
|
-
return _getVersionableStorage()._versionHistory[_version].activatedIn.toInt() > 0;
|
62
|
-
}
|
63
|
-
|
64
37
|
function getVersion() public pure virtual returns(Version);
|
65
38
|
|
66
|
-
function getVersionCount() public view override returns(uint256) {
|
67
|
-
return _getVersionableStorage()._versions.length;
|
68
|
-
}
|
69
|
-
|
70
|
-
function getVersion(uint256 idx) public view override returns(Version) {
|
71
|
-
return _getVersionableStorage()._versions[idx];
|
72
|
-
}
|
73
|
-
|
74
|
-
function getVersionInfo(Version _version) public override view returns(VersionInfo memory) {
|
75
|
-
return _getVersionableStorage()._versionHistory[_version];
|
76
|
-
}
|
77
|
-
|
78
|
-
function getInitializedVersion() public view returns(uint64) {
|
79
|
-
return _getInitializedVersion();
|
80
|
-
}
|
81
|
-
|
82
|
-
|
83
|
-
|
84
39
|
// IMPORTANT each version must implement this function
|
85
40
|
// each implementation MUST use onlyInitialising modifier
|
86
41
|
// each implementation MUST call intializers of all base contracts...
|
@@ -92,7 +47,6 @@ abstract contract Versionable is
|
|
92
47
|
revert();
|
93
48
|
}
|
94
49
|
|
95
|
-
|
96
50
|
// IMPORTANT each version except version "1" must implement this function
|
97
51
|
// each implementation MUST use onlyInitialising modifier
|
98
52
|
function _upgrade(bytes memory data)
|
@@ -102,47 +56,4 @@ abstract contract Versionable is
|
|
102
56
|
{
|
103
57
|
revert();
|
104
58
|
}
|
105
|
-
|
106
|
-
function _getVersionableStorage() private pure returns (VersionableStorage storage $) {
|
107
|
-
assembly {
|
108
|
-
$.slot := VERSIONABLE_LOCATION_V1
|
109
|
-
}
|
110
|
-
}
|
111
|
-
|
112
|
-
// can only be called once per contract
|
113
|
-
// needs to be called inside the proxy upgrade tx
|
114
|
-
// TODO run reinitializer(version().toUint64()) modifier after "version()" is checked,
|
115
|
-
function _updateVersionHistory(
|
116
|
-
address implementation,
|
117
|
-
address activatedBy
|
118
|
-
)
|
119
|
-
private
|
120
|
-
onlyInitializing
|
121
|
-
{
|
122
|
-
VersionableStorage storage $ = _getVersionableStorage();
|
123
|
-
|
124
|
-
uint64 version = _getInitializedVersion();
|
125
|
-
|
126
|
-
Version thisVersion = getVersion();
|
127
|
-
|
128
|
-
if(version == 1) {
|
129
|
-
// thisVersion is alias to version "1"
|
130
|
-
$._v1 = thisVersion;
|
131
|
-
}
|
132
|
-
else {
|
133
|
-
require(thisVersion > $._v1, "INVALID VERSION");
|
134
|
-
}
|
135
|
-
|
136
|
-
// update version history
|
137
|
-
$._versions.push(thisVersion);
|
138
|
-
$._versionHistory[thisVersion] = VersionInfo(
|
139
|
-
thisVersion,
|
140
|
-
implementation,
|
141
|
-
activatedBy,
|
142
|
-
TimestampLib.blockTimestamp(),
|
143
|
-
blockNumber()
|
144
|
-
);
|
145
|
-
|
146
|
-
emit LogVersionableInitialized(thisVersion, implementation, activatedBy);
|
147
|
-
}
|
148
59
|
}
|