@etherisc/gif-next 0.0.2-fe88ad7-208 → 0.0.2-ff282a4-523
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 +8 -13
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -83
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +275 -1359
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +264 -218
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +441 -2539
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +479 -178
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +432 -280
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -383
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +295 -99
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2847 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +93 -14
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- 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/IComponents.sol/IComponents.json +10 -0
- 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/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +316 -250
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +218 -191
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +264 -277
- 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} +241 -230
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +254 -168
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +72 -166
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -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 +165 -5
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +158 -215
- 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 +196 -31
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +20 -20
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +270 -254
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +291 -85
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +151 -77
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +142 -54
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +358 -327
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentService.sol/ComponentService.json} +263 -164
- 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/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponent.sol/IComponent.json} +173 -212
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -165
- 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/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +285 -65
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -53
- 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 +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +173 -153
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -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 +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → staking/IStaking.sol/IStaking.json} +62 -150
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → staking/IStakingService.sol/IStakingService.json} +232 -169
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +497 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +623 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +797 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +632 -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 +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
- 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 +166 -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/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- 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/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/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -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/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- 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/distribution/Distribution.sol +285 -0
- package/contracts/distribution/DistributionService.sol +349 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +71 -0
- package/contracts/distribution/IDistributionService.sol +87 -0
- package/contracts/instance/BundleManager.sol +22 -25
- package/contracts/instance/IInstance.sol +56 -41
- package/contracts/instance/IInstanceService.sol +49 -16
- package/contracts/instance/Instance.sol +149 -196
- package/contracts/instance/InstanceAccessManager.sol +406 -166
- package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
- package/contracts/instance/InstanceReader.sol +102 -49
- package/contracts/instance/InstanceService.sol +206 -248
- package/contracts/instance/InstanceServiceManager.sol +2 -2
- package/contracts/instance/InstanceStore.sol +211 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/base/IKeyValueStore.sol +14 -10
- package/contracts/instance/base/ILifecycle.sol +3 -3
- package/contracts/instance/base/KeyValueStore.sol +44 -47
- package/contracts/instance/base/Lifecycle.sol +28 -7
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
- package/contracts/instance/module/IAccess.sol +24 -18
- package/contracts/instance/module/IBundle.sol +11 -8
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +50 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/instance/module/ISetup.sol +9 -22
- package/contracts/instance/module/ITreasury.sol +2 -2
- package/contracts/pool/BundleService.sol +382 -0
- package/contracts/{instance/service → pool}/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +118 -0
- package/contracts/pool/IPoolComponent.sol +114 -0
- package/contracts/pool/IPoolService.sol +114 -0
- package/contracts/pool/Pool.sol +302 -0
- package/contracts/pool/PoolService.sol +403 -0
- package/contracts/{instance/service → pool}/PoolServiceManager.sol +6 -6
- package/contracts/product/ApplicationService.sol +186 -0
- package/contracts/product/ApplicationServiceManager.sol +35 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/product/ClaimServiceManager.sol +35 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +80 -0
- package/contracts/product/IPricingService.sol +37 -0
- package/contracts/product/IProductComponent.sol +41 -0
- package/contracts/{instance/service → product}/IProductService.sol +10 -10
- package/contracts/product/PolicyService.sol +376 -0
- package/contracts/{instance/service → product}/PolicyServiceManager.sol +7 -7
- package/contracts/product/PricingService.sol +275 -0
- package/contracts/product/PricingServiceManager.sol +51 -0
- package/contracts/product/Product.sol +379 -0
- package/contracts/product/ProductService.sol +210 -0
- package/contracts/{instance/service → product}/ProductServiceManager.sol +7 -7
- package/contracts/registry/ChainNft.sol +15 -1
- package/contracts/registry/IRegistry.sol +33 -14
- package/contracts/registry/IRegistryService.sol +28 -17
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +184 -75
- package/contracts/registry/RegistryAccessManager.sol +32 -35
- package/contracts/registry/RegistryService.sol +126 -145
- package/contracts/registry/RegistryServiceManager.sol +13 -15
- package/contracts/registry/ReleaseManager.sol +157 -145
- package/contracts/registry/TokenRegistry.sol +21 -15
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +271 -0
- package/contracts/shared/ComponentService.sol +150 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +90 -0
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +40 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/NftOwnable.sol +64 -80
- package/contracts/shared/PolicyHolder.sol +94 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +37 -23
- package/contracts/shared/TokenHandler.sol +14 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +15 -0
- package/contracts/staking/IStakingService.sol +105 -0
- package/contracts/staking/Staking.sol +64 -0
- package/contracts/staking/StakingManager.sol +44 -0
- package/contracts/staking/StakingService.sol +204 -0
- package/contracts/staking/StakingServiceManager.sol +41 -0
- package/contracts/type/Amount.sol +109 -0
- package/contracts/{types → type}/Blocknumber.sol +1 -0
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +17 -8
- package/contracts/{types → type}/NftId.sol +8 -0
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +21 -7
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/{types → type}/RoleId.sol +56 -14
- package/contracts/type/Seconds.sol +54 -0
- package/contracts/{types → type}/StateId.sol +7 -2
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- 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/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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- 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/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -945
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -432
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- 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 -446
- 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 -993
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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 -305
- 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 -600
- 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/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/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/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- 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/BaseComponent.sol +0 -159
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -34
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -271
- package/contracts/components/Product.sol +0 -292
- 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/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -26
- package/contracts/instance/InstanceBase.sol +0 -41
- package/contracts/instance/base/ComponentServiceBase.sol +0 -82
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -260
- package/contracts/instance/service/ComponentOwnerService.sol +0 -315
- package/contracts/instance/service/DistributionService.sol +0 -113
- package/contracts/instance/service/IBundleService.sol +0 -45
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -87
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/PolicyService.sol +0 -503
- package/contracts/instance/service/PoolService.sol +0 -124
- package/contracts/instance/service/ProductService.sol +0 -170
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- 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/TestToken.sol +0 -26
- 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 → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -1,124 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Pool} from "../../components/Pool.sol";
|
5
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
6
|
-
import {IInstance} from "../../instance/IInstance.sol";
|
7
|
-
import {IBundle} from "../../instance/module/IBundle.sol";
|
8
|
-
import {TokenHandler} from "../../instance/module/ITreasury.sol";
|
9
|
-
import {ISetup} from "../module/ISetup.sol";
|
10
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
11
|
-
|
12
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
13
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
14
|
-
import {INftOwnable} from "../../shared/INftOwnable.sol";
|
15
|
-
|
16
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
17
|
-
import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
|
18
|
-
import {POOL_OWNER_ROLE, RoleId} from "../../types/RoleId.sol";
|
19
|
-
import {Fee, FeeLib} from "../../types/Fee.sol";
|
20
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
21
|
-
import {KEEP_STATE, StateId} from "../../types/StateId.sol";
|
22
|
-
import {TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
23
|
-
|
24
|
-
import {IService} from "../../shared/IService.sol";
|
25
|
-
import {Service} from "../../shared/Service.sol";
|
26
|
-
import {BundleManager} from "../BundleManager.sol";
|
27
|
-
import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
|
28
|
-
import {IPoolService} from "./IPoolService.sol";
|
29
|
-
import {IRegistryService} from "../../registry/IRegistryService.sol";
|
30
|
-
import {InstanceService} from "../InstanceService.sol";
|
31
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
32
|
-
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
33
|
-
|
34
|
-
string constant POOL_SERVICE_NAME = "PoolService";
|
35
|
-
|
36
|
-
contract PoolService is
|
37
|
-
ComponentServiceBase,
|
38
|
-
IPoolService
|
39
|
-
{
|
40
|
-
using NftIdLib for NftId;
|
41
|
-
|
42
|
-
address internal _registryAddress;
|
43
|
-
|
44
|
-
function _initialize(
|
45
|
-
address owner,
|
46
|
-
bytes memory data
|
47
|
-
)
|
48
|
-
internal
|
49
|
-
initializer
|
50
|
-
virtual override
|
51
|
-
{
|
52
|
-
address registryAddress;
|
53
|
-
address initialOwner;
|
54
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
55
|
-
// TODO while PoolService is not deployed in PoolServiceManager constructor
|
56
|
-
// owner is PoolServiceManager deployer
|
57
|
-
_initializeService(registryAddress, owner);
|
58
|
-
|
59
|
-
_registerInterface(type(IPoolService).interfaceId);
|
60
|
-
}
|
61
|
-
|
62
|
-
function getDomain() public pure override(Service, IService) returns(ObjectType) {
|
63
|
-
return POOL();
|
64
|
-
}
|
65
|
-
|
66
|
-
function register(address poolAddress)
|
67
|
-
external
|
68
|
-
returns(NftId poolNftId)
|
69
|
-
{
|
70
|
-
address poolOwner = msg.sender;
|
71
|
-
IBaseComponent pool = IBaseComponent(poolAddress);
|
72
|
-
|
73
|
-
IRegistry.ObjectInfo memory info;
|
74
|
-
bytes memory data;
|
75
|
-
(info, data) = getRegistryService().registerPool(pool, poolOwner);
|
76
|
-
|
77
|
-
IInstance instance = _getInstance(info.parentNftId);
|
78
|
-
|
79
|
-
bool hasRole = getInstanceService().hasRole(
|
80
|
-
poolOwner,
|
81
|
-
POOL_OWNER_ROLE(),
|
82
|
-
address(instance));
|
83
|
-
|
84
|
-
if(!hasRole) {
|
85
|
-
revert ExpectedRoleMissing(POOL_OWNER_ROLE(), poolOwner);
|
86
|
-
}
|
87
|
-
|
88
|
-
poolNftId = info.nftId;
|
89
|
-
ISetup.PoolSetupInfo memory initialSetup = _decodeAndVerifyPoolSetup(data);
|
90
|
-
instance.createPoolSetup(poolNftId, initialSetup);
|
91
|
-
|
92
|
-
getInstanceService().createTarget(_getInstanceNftId(info), poolAddress, pool.getName());
|
93
|
-
}
|
94
|
-
|
95
|
-
function _decodeAndVerifyPoolSetup(bytes memory data) internal returns(ISetup.PoolSetupInfo memory setup)
|
96
|
-
{
|
97
|
-
setup = abi.decode(
|
98
|
-
data,
|
99
|
-
(ISetup.PoolSetupInfo)
|
100
|
-
);
|
101
|
-
|
102
|
-
// TODO add checks if applicable
|
103
|
-
}
|
104
|
-
|
105
|
-
function setFees(
|
106
|
-
Fee memory poolFee,
|
107
|
-
Fee memory stakingFee,
|
108
|
-
Fee memory performanceFee
|
109
|
-
)
|
110
|
-
external
|
111
|
-
override
|
112
|
-
{
|
113
|
-
(IRegistry.ObjectInfo memory poolInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
|
114
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
115
|
-
NftId poolNftId = poolInfo.nftId;
|
116
|
-
|
117
|
-
ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
|
118
|
-
poolSetupInfo.poolFee = poolFee;
|
119
|
-
poolSetupInfo.stakingFee = stakingFee;
|
120
|
-
poolSetupInfo.performanceFee = performanceFee;
|
121
|
-
|
122
|
-
instance.updatePoolSetup(poolNftId, poolSetupInfo, KEEP_STATE());
|
123
|
-
}
|
124
|
-
}
|
@@ -1,170 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
5
|
-
import {IProductComponent} from "../../components/IProductComponent.sol";
|
6
|
-
import {Product} from "../../components/Product.sol";
|
7
|
-
import {IBaseComponent} from "../../components/IBaseComponent.sol";
|
8
|
-
import {IPoolComponent} from "../../components/IPoolComponent.sol";
|
9
|
-
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
10
|
-
import {IInstance} from "../IInstance.sol";
|
11
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
12
|
-
import {IRisk} from "../module/IRisk.sol";
|
13
|
-
import {IBundle} from "../module/IBundle.sol";
|
14
|
-
import {IProductService} from "./IProductService.sol";
|
15
|
-
import {ITreasury} from "../module/ITreasury.sol";
|
16
|
-
import {ISetup} from "../module/ISetup.sol";
|
17
|
-
|
18
|
-
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
19
|
-
|
20
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
21
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
22
|
-
|
23
|
-
import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
|
24
|
-
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
25
|
-
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
26
|
-
import {ObjectType, PRODUCT, POOL, POLICY} from "../../types/ObjectType.sol";
|
27
|
-
import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE} from "../../types/StateId.sol";
|
28
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
29
|
-
import {Fee, FeeLib} from "../../types/Fee.sol";
|
30
|
-
import {ReferralId} from "../../types/Referral.sol";
|
31
|
-
import {RiskId} from "../../types/RiskId.sol";
|
32
|
-
import {StateId} from "../../types/StateId.sol";
|
33
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
34
|
-
import {RoleId, PRODUCT_OWNER_ROLE} from "../../types/RoleId.sol";
|
35
|
-
|
36
|
-
import {IService} from "../../shared/IService.sol";
|
37
|
-
import {Service} from "../../shared/Service.sol";
|
38
|
-
import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
|
39
|
-
import {IProductService} from "./IProductService.sol";
|
40
|
-
import {InstanceReader} from "../InstanceReader.sol";
|
41
|
-
import {IPoolService} from "./PoolService.sol";
|
42
|
-
|
43
|
-
// TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
|
44
|
-
contract ProductService is ComponentServiceBase, IProductService {
|
45
|
-
using NftIdLib for NftId;
|
46
|
-
|
47
|
-
IPoolService internal _poolService;
|
48
|
-
|
49
|
-
event LogProductServiceSender(address sender);
|
50
|
-
|
51
|
-
function _initialize(
|
52
|
-
address owner,
|
53
|
-
bytes memory data
|
54
|
-
)
|
55
|
-
internal
|
56
|
-
initializer
|
57
|
-
virtual override
|
58
|
-
{
|
59
|
-
address registryAddress;
|
60
|
-
address initialOwner;
|
61
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
62
|
-
|
63
|
-
_initializeService(registryAddress, owner);
|
64
|
-
|
65
|
-
_poolService = IPoolService(_registry.getServiceAddress(POOL(), getMajorVersion()));
|
66
|
-
|
67
|
-
_registerInterface(type(IProductService).interfaceId);
|
68
|
-
}
|
69
|
-
|
70
|
-
|
71
|
-
function getDomain() public pure override(IService, Service) returns(ObjectType) {
|
72
|
-
return PRODUCT();
|
73
|
-
}
|
74
|
-
|
75
|
-
function register(address productAddress)
|
76
|
-
external
|
77
|
-
returns(NftId productNftId)
|
78
|
-
{
|
79
|
-
address productOwner = msg.sender;
|
80
|
-
IBaseComponent product = IBaseComponent(productAddress);
|
81
|
-
|
82
|
-
IRegistry.ObjectInfo memory info;
|
83
|
-
bytes memory data;
|
84
|
-
(info, data) = getRegistryService().registerProduct(product, productOwner);
|
85
|
-
|
86
|
-
IInstance instance = _getInstance(info.parentNftId);
|
87
|
-
bool hasRole = getInstanceService().hasRole(
|
88
|
-
productOwner,
|
89
|
-
PRODUCT_OWNER_ROLE(),
|
90
|
-
address(instance));
|
91
|
-
|
92
|
-
if(!hasRole) {
|
93
|
-
revert ExpectedRoleMissing(PRODUCT_OWNER_ROLE(), productOwner);
|
94
|
-
}
|
95
|
-
|
96
|
-
productNftId = info.nftId;
|
97
|
-
ISetup.ProductSetupInfo memory initialSetup = _decodeAndVerifyProductSetup(data);
|
98
|
-
instance.createProductSetup(productNftId, initialSetup);
|
99
|
-
|
100
|
-
getInstanceService().createTarget(_getInstanceNftId(info), productAddress, product.getName());
|
101
|
-
}
|
102
|
-
|
103
|
-
function _decodeAndVerifyProductSetup(bytes memory data) internal returns(ISetup.ProductSetupInfo memory setup)
|
104
|
-
{
|
105
|
-
setup = abi.decode(
|
106
|
-
data,
|
107
|
-
(ISetup.ProductSetupInfo)
|
108
|
-
);
|
109
|
-
|
110
|
-
// TODO add checks if applicable
|
111
|
-
}
|
112
|
-
|
113
|
-
function setFees(
|
114
|
-
Fee memory productFee,
|
115
|
-
Fee memory processingFee
|
116
|
-
)
|
117
|
-
external
|
118
|
-
{
|
119
|
-
// TODO check args
|
120
|
-
|
121
|
-
(
|
122
|
-
IRegistry.ObjectInfo memory productInfo,
|
123
|
-
IInstance instance
|
124
|
-
) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
125
|
-
|
126
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
127
|
-
NftId productNftId = productInfo.nftId;
|
128
|
-
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
|
129
|
-
|
130
|
-
productSetupInfo.productFee = productFee;
|
131
|
-
productSetupInfo.processingFee = processingFee;
|
132
|
-
|
133
|
-
instance.updateProductSetup(productNftId, productSetupInfo, KEEP_STATE());
|
134
|
-
}
|
135
|
-
|
136
|
-
function createRisk(
|
137
|
-
RiskId riskId,
|
138
|
-
bytes memory data
|
139
|
-
) external override {
|
140
|
-
(
|
141
|
-
IRegistry.ObjectInfo memory productInfo,
|
142
|
-
IInstance instance
|
143
|
-
) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
144
|
-
NftId productNftId = productInfo.nftId;
|
145
|
-
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
|
146
|
-
instance.createRisk(
|
147
|
-
riskId,
|
148
|
-
riskInfo
|
149
|
-
);
|
150
|
-
}
|
151
|
-
|
152
|
-
function updateRisk(
|
153
|
-
RiskId riskId,
|
154
|
-
bytes memory data
|
155
|
-
) external {
|
156
|
-
(, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
157
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
158
|
-
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
159
|
-
riskInfo.data = data;
|
160
|
-
instance.updateRisk(riskId, riskInfo, KEEP_STATE());
|
161
|
-
}
|
162
|
-
|
163
|
-
function updateRiskState(
|
164
|
-
RiskId riskId,
|
165
|
-
StateId state
|
166
|
-
) external {
|
167
|
-
(, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
168
|
-
instance.updateRiskState(riskId, state);
|
169
|
-
}
|
170
|
-
}
|
@@ -1,72 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
library ContractDeployerLib {
|
5
|
-
|
6
|
-
event LogContractDeployed(address contractAddress);
|
7
|
-
|
8
|
-
error ErrorCreationCodeHashMismatch(bytes32 expectedHash, bytes32 actualHash);
|
9
|
-
|
10
|
-
/// @dev deploys a new contract using the provided creation code
|
11
|
-
function deploy(
|
12
|
-
bytes memory creationCode,
|
13
|
-
bytes32 expectedCreationCodeHash
|
14
|
-
)
|
15
|
-
public
|
16
|
-
returns (address contractAdress)
|
17
|
-
{
|
18
|
-
// check against expected hash, if provided
|
19
|
-
if (expectedCreationCodeHash != bytes32(0)) {
|
20
|
-
bytes32 creationCodeHash = getHash(creationCode);
|
21
|
-
if (creationCodeHash != expectedCreationCodeHash) {
|
22
|
-
revert ErrorCreationCodeHashMismatch(expectedCreationCodeHash, creationCodeHash);
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
// solhint-disable no-inline-assembly
|
27
|
-
assembly {
|
28
|
-
contractAdress := create(0, add(creationCode, 0x20), mload(creationCode))
|
29
|
-
|
30
|
-
if iszero(extcodesize(contractAdress)) {
|
31
|
-
revert(0, 0)
|
32
|
-
}
|
33
|
-
}
|
34
|
-
// solhint enable
|
35
|
-
|
36
|
-
emit LogContractDeployed(contractAdress);
|
37
|
-
}
|
38
|
-
|
39
|
-
/// @dev gets the creation code for the new contract
|
40
|
-
// for terminology see eg https://www.rareskills.io/post/ethereum-contract-creation-code
|
41
|
-
function getCreationCode(
|
42
|
-
bytes memory byteCodeWithInitCode, // what you get with type(<Contract>).creationCode
|
43
|
-
bytes memory encodedConstructorArguments // what you get with
|
44
|
-
)
|
45
|
-
public
|
46
|
-
pure
|
47
|
-
returns (bytes memory creationCode)
|
48
|
-
{
|
49
|
-
return abi.encodePacked(byteCodeWithInitCode, encodedConstructorArguments);
|
50
|
-
}
|
51
|
-
|
52
|
-
|
53
|
-
function matchesWithHash(
|
54
|
-
bytes memory creationCode,
|
55
|
-
bytes32 expectedHash
|
56
|
-
)
|
57
|
-
public
|
58
|
-
pure
|
59
|
-
returns (bool isMatching)
|
60
|
-
{
|
61
|
-
return getHash(creationCode) == expectedHash;
|
62
|
-
}
|
63
|
-
|
64
|
-
|
65
|
-
function getHash(bytes memory creationCode)
|
66
|
-
public
|
67
|
-
pure
|
68
|
-
returns (bytes32 hash)
|
69
|
-
{
|
70
|
-
return keccak256(creationCode);
|
71
|
-
}
|
72
|
-
}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Registerable} from "./Registerable.sol";
|
5
|
-
import {Versionable} from "./Versionable.sol";
|
6
|
-
|
7
|
-
/// @dev base contract for upgradable objects like services and upgradable components
|
8
|
-
/// deriving contracs need to call _initializeRegisterable
|
9
|
-
/// TODO internalizes versionable here, a non-registerable versionalbe might itself have some value but is outside the scope of the gif
|
10
|
-
/// after this merge versionable will no longer exist on its own in gif
|
11
|
-
/// only registerable and upgradable (which is a registerable too) will remain
|
12
|
-
abstract contract RegisterableUpgradable is
|
13
|
-
Registerable,
|
14
|
-
Versionable
|
15
|
-
{
|
16
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {UFixed, UFixedLib} from "../types/UFixed.sol";
|
5
|
-
import {Fee, FeeLib} from "../types/Fee.sol";
|
6
|
-
|
7
|
-
contract TestFee {
|
8
|
-
|
9
|
-
function createFee(
|
10
|
-
uint256 fractionalValue,
|
11
|
-
int8 exponent,
|
12
|
-
uint256 fixedValue
|
13
|
-
)
|
14
|
-
external
|
15
|
-
pure
|
16
|
-
returns(Fee memory fee)
|
17
|
-
{
|
18
|
-
return FeeLib.toFee(UFixedLib.toUFixed(fractionalValue, exponent), fixedValue);
|
19
|
-
}
|
20
|
-
|
21
|
-
function getZeroFee() external pure returns(Fee memory fee) {
|
22
|
-
return FeeLib.zeroFee();
|
23
|
-
}
|
24
|
-
|
25
|
-
}
|
@@ -1,18 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
5
|
-
import {ObjectType, TOKEN} from "../../contracts/types/ObjectType.sol";
|
6
|
-
import {IRegistry} from "../../contracts/registry/IRegistry.sol";
|
7
|
-
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
8
|
-
|
9
|
-
contract TestRegisterable is Registerable {
|
10
|
-
|
11
|
-
constructor(address registry, NftId registryNftId, ObjectType objectType, bool isInterceptor, address initialOwner)
|
12
|
-
//Registerable(registry, registryNftId)
|
13
|
-
// solhint-disable-next-line no-empty-blocks
|
14
|
-
{
|
15
|
-
bytes memory data = "";
|
16
|
-
_initializeRegisterable(registry, registryNftId, objectType, isInterceptor, initialOwner, data);
|
17
|
-
}
|
18
|
-
}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {RoleId, RoleIdLib, PRODUCT_OWNER_ROLE_NAME, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE_NAME, POOL_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
|
5
|
-
|
6
|
-
contract TestRoleId {
|
7
|
-
function getRole(uint256 roleNum) external pure returns (RoleId) { return RoleIdLib.toRoleId(roleNum); }
|
8
|
-
|
9
|
-
function getProductOwnerRoleName() external pure returns (string memory) { return PRODUCT_OWNER_ROLE_NAME(); }
|
10
|
-
function getProductOwnerRole() external pure returns (RoleId) { return PRODUCT_OWNER_ROLE(); }
|
11
|
-
|
12
|
-
function getPoolOwnerRoleName() external pure returns (string memory) { return POOL_OWNER_ROLE_NAME(); }
|
13
|
-
function getPoolOwnerRole() external pure returns (RoleId) { return POOL_OWNER_ROLE(); }
|
14
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {ObjectType, PRODUCT} from "../../contracts/types/ObjectType.sol";
|
5
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
6
|
-
import {Version, VersionLib} from "../../contracts/types/Version.sol";
|
7
|
-
import {Service} from "../../contracts/shared/Service.sol";
|
8
|
-
|
9
|
-
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
10
|
-
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
11
|
-
|
12
|
-
contract TestService is Service {
|
13
|
-
|
14
|
-
string public constant NAME = "TestService";
|
15
|
-
|
16
|
-
constructor(address registry, NftId registryNftId, address initialOwner)
|
17
|
-
// solhint-disable-next-line no-empty-blocks
|
18
|
-
{
|
19
|
-
_initializeService(registry, initialOwner);
|
20
|
-
}
|
21
|
-
|
22
|
-
function getDomain() public pure override returns(ObjectType) {
|
23
|
-
return PRODUCT();
|
24
|
-
}
|
25
|
-
}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
5
|
-
|
6
|
-
contract TestUsdc is ERC20 {
|
7
|
-
|
8
|
-
// https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
|
9
|
-
string public constant NAME = "USDC - Test";
|
10
|
-
string public constant SYMBOL = "USDC";
|
11
|
-
uint8 public constant DECIMALS = 6;
|
12
|
-
uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
|
13
|
-
// decimals == 18 (openzeppelin erc20 default)
|
14
|
-
constructor()
|
15
|
-
ERC20(NAME, SYMBOL)
|
16
|
-
{
|
17
|
-
_mint(
|
18
|
-
_msgSender(),
|
19
|
-
INITIAL_SUPPLY
|
20
|
-
);
|
21
|
-
}
|
22
|
-
|
23
|
-
function decimals() public pure override returns(uint8) {
|
24
|
-
return DECIMALS;
|
25
|
-
}
|
26
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Version, VersionPart, VersionLib} from "../types/Version.sol";
|
5
|
-
|
6
|
-
contract TestVersion {
|
7
|
-
|
8
|
-
function createVersion(uint major, uint minor, uint patch) external pure returns(Version) {
|
9
|
-
return VersionLib.toVersion(major, minor, patch);
|
10
|
-
}
|
11
|
-
|
12
|
-
function createVersionPart(uint versionPart) external pure returns(VersionPart) {
|
13
|
-
return VersionLib.toVersionPart(uint8(versionPart));
|
14
|
-
}
|
15
|
-
|
16
|
-
function getVersionParts(Version version)
|
17
|
-
external
|
18
|
-
pure
|
19
|
-
returns(
|
20
|
-
VersionPart major,
|
21
|
-
VersionPart minor,
|
22
|
-
VersionPart patch
|
23
|
-
)
|
24
|
-
{
|
25
|
-
return version.toVersionParts();
|
26
|
-
}
|
27
|
-
|
28
|
-
function getMajorPart(Version version) external pure returns(VersionPart major) {
|
29
|
-
return version.toMajorPart();
|
30
|
-
}
|
31
|
-
|
32
|
-
function getZeroVersion() external pure returns(Version) {
|
33
|
-
return VersionLib.zeroVersion();
|
34
|
-
}
|
35
|
-
|
36
|
-
function isSameVersion(Version a, Version b) external pure returns(bool) {
|
37
|
-
return a == b;
|
38
|
-
}
|
39
|
-
|
40
|
-
function isLargerVersion(Version a, Version b) external pure returns(bool) {
|
41
|
-
return a > b;
|
42
|
-
}
|
43
|
-
|
44
|
-
}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Version, VersionLib} from "../../contracts/types/Version.sol";
|
5
|
-
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
6
|
-
|
7
|
-
contract TestVersionable is Versionable {
|
8
|
-
|
9
|
-
function getVersion()
|
10
|
-
public
|
11
|
-
pure
|
12
|
-
virtual override
|
13
|
-
returns(Version)
|
14
|
-
{
|
15
|
-
return VersionLib.toVersion(3,0,0);
|
16
|
-
}
|
17
|
-
}
|
package/contracts/test/Usdc.sol
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
5
|
-
|
6
|
-
contract USDC is ERC20 {
|
7
|
-
|
8
|
-
// https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
|
9
|
-
string public constant NAME = "USDC - DUMMY";
|
10
|
-
string public constant SYMBOL = "USDC";
|
11
|
-
uint8 public constant DECIMALS = 6;
|
12
|
-
uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
|
13
|
-
// decimals == 18 (openzeppelin erc20 default)
|
14
|
-
constructor()
|
15
|
-
ERC20(NAME, SYMBOL)
|
16
|
-
{
|
17
|
-
_mint(
|
18
|
-
_msgSender(),
|
19
|
-
INITIAL_SUPPLY
|
20
|
-
);
|
21
|
-
}
|
22
|
-
|
23
|
-
function decimals() public pure override returns(uint8) {
|
24
|
-
return DECIMALS;
|
25
|
-
}
|
26
|
-
}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
/// @dev bytes5 (uint40) allows for chain ids up to 13 digits
|
5
|
-
type ChainId is bytes5;
|
6
|
-
|
7
|
-
// type bindings
|
8
|
-
using {eqChainId as ==, neChainId as !=, ChainIdLib.toInt} for ChainId global;
|
9
|
-
|
10
|
-
// general pure free functions
|
11
|
-
/// @dev Converts the uint256 to a ChainId.
|
12
|
-
function toChainId(uint256 chainId) pure returns (ChainId) {
|
13
|
-
return ChainId.wrap(bytes5(uint40(chainId)));
|
14
|
-
}
|
15
|
-
|
16
|
-
/// @dev Return the ChainId for the chain the contract is deployed to
|
17
|
-
function thisChainId() view returns (ChainId) {
|
18
|
-
return toChainId(block.chainid);
|
19
|
-
}
|
20
|
-
|
21
|
-
// pure free functions for operators
|
22
|
-
/// @dev Returns true if the values are equal (==).
|
23
|
-
function eqChainId(ChainId a, ChainId b) pure returns (bool isSame) {
|
24
|
-
return ChainId.unwrap(a) == ChainId.unwrap(b);
|
25
|
-
}
|
26
|
-
|
27
|
-
/// @dev Returns true if the values are not equal (!=).
|
28
|
-
function neChainId(ChainId a, ChainId b) pure returns (bool isDifferent) {
|
29
|
-
return ChainId.unwrap(a) != ChainId.unwrap(b);
|
30
|
-
}
|
31
|
-
|
32
|
-
// library functions that operate on user defined type
|
33
|
-
library ChainIdLib {
|
34
|
-
/// @dev Converts the ChainId to a uint256.
|
35
|
-
function toInt(ChainId chainId) internal pure returns (uint256) {
|
36
|
-
return uint256(uint40(ChainId.unwrap(chainId)));
|
37
|
-
}
|
38
|
-
}
|
@@ -1,52 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
// uint32 allows for 4'294'967'296 individual items
|
5
|
-
type NumberId is uint32;
|
6
|
-
|
7
|
-
// type bindings
|
8
|
-
using {
|
9
|
-
eqNumberId as ==,
|
10
|
-
neNumberId as !=,
|
11
|
-
NumberIdLib.eqz,
|
12
|
-
NumberIdLib.gtz,
|
13
|
-
NumberIdLib.toInt
|
14
|
-
} for NumberId global;
|
15
|
-
|
16
|
-
|
17
|
-
// pure free functions for operators
|
18
|
-
function eqNumberId(NumberId a, NumberId b) pure returns (bool isSame) {
|
19
|
-
return NumberId.unwrap(a) == NumberId.unwrap(b);
|
20
|
-
}
|
21
|
-
|
22
|
-
function neNumberId(NumberId a, NumberId b) pure returns (bool isDifferent) {
|
23
|
-
return NumberId.unwrap(a) != NumberId.unwrap(b);
|
24
|
-
}
|
25
|
-
|
26
|
-
// library functions that operate on user defined type
|
27
|
-
library NumberIdLib {
|
28
|
-
/// @dev Converts the NumberId to a uint.
|
29
|
-
function zero() public pure returns (NumberId) {
|
30
|
-
return NumberId.wrap(0);
|
31
|
-
}
|
32
|
-
|
33
|
-
/// @dev Converts an uint into a NumberId.
|
34
|
-
function toNumberId(uint256 a) public pure returns (NumberId) {
|
35
|
-
return NumberId.wrap(uint32(a));
|
36
|
-
}
|
37
|
-
|
38
|
-
/// @dev Converts the NumberId to a uint.
|
39
|
-
function toInt(NumberId a) public pure returns (uint32) {
|
40
|
-
return uint32(NumberId.unwrap(a));
|
41
|
-
}
|
42
|
-
|
43
|
-
/// @dev Returns true if the value is non-zero (> 0).
|
44
|
-
function gtz(NumberId a) public pure returns (bool) {
|
45
|
-
return NumberId.unwrap(a) > 0;
|
46
|
-
}
|
47
|
-
|
48
|
-
/// @dev Returns true if the value is zero (== 0).
|
49
|
-
function eqz(NumberId a) public pure returns (bool) {
|
50
|
-
return NumberId.unwrap(a) == 0;
|
51
|
-
}
|
52
|
-
}
|
File without changes
|
File without changes
|