@etherisc/gif-next 0.0.2-fca9315-260 → 0.0.2-fd4931b-974
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 +1410 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +366 -367
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +267 -1594
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +285 -211
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +412 -2526
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +480 -166
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +610 -421
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +438 -399
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +348 -106
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -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 +6 -1
- 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/{ISetup.sol/ISetup.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/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +257 -288
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +565 -186
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +211 -212
- 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 +237 -302
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +530 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +351 -311
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +112 -172
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +857 -214
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -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 +158 -13
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +337 -225
- 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 +277 -30
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +74 -61
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +465 -267
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +334 -93
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +634 -69
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +448 -50
- 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/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +321 -280
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -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} +215 -226
- 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/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +205 -228
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +203 -160
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
- 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 +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -29
- 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 -160
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -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 +314 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +102 -35
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -74
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -60
- 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 +172 -160
- 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 +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1770 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → staking/IStakingService.sol/IStakingService.json} +261 -238
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2500 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +844 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +960 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +694 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +308 -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 +16 -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 +185 -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 +148 -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 +263 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +15 -12
- 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 +49 -44
- package/contracts/instance/IInstanceService.sol +57 -15
- package/contracts/instance/Instance.sol +138 -179
- package/contracts/instance/InstanceAccessManager.sol +406 -161
- package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
- package/contracts/instance/InstanceReader.sol +135 -62
- package/contracts/instance/InstanceService.sol +240 -305
- package/contracts/instance/InstanceServiceManager.sol +12 -22
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
- package/contracts/instance/module/IAccess.sol +24 -18
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- 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/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 +147 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +424 -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 +437 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -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 +473 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -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 +15 -1
- package/contracts/registry/IRegistry.sol +38 -18
- package/contracts/registry/IRegistryService.sol +41 -38
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +193 -82
- package/contracts/registry/RegistryAccessManager.sol +72 -121
- package/contracts/registry/RegistryService.sol +164 -98
- package/contracts/registry/RegistryServiceManager.sol +28 -18
- package/contracts/registry/ReleaseManager.sol +390 -192
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +263 -56
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +286 -0
- package/contracts/shared/ComponentService.sol +595 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InstanceLinkedComponent.sol +145 -0
- package/contracts/shared/KeyValueStore.sol +130 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +69 -0
- package/contracts/shared/NftOwnable.sol +64 -85
- package/contracts/shared/PolicyHolder.sol +101 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +19 -30
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +37 -20
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +113 -0
- package/contracts/staking/IStakingService.sol +122 -0
- package/contracts/staking/Staking.sol +348 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +92 -0
- package/contracts/staking/StakingService.sol +294 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/TargetManagerLib.sol +141 -0
- package/contracts/type/Amount.sol +114 -0
- package/contracts/{types → type}/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +32 -22
- package/contracts/{types → type}/NftId.sol +17 -11
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +63 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- 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/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/IComponent.sol/IComponent.json +0 -455
- 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/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/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/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
- 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 -1227
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
- 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 -313
- 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 -608
- 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/Component.sol +0 -216
- package/contracts/components/Distribution.sol +0 -150
- package/contracts/components/IComponent.sol +0 -43
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -60
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -227
- package/contracts/components/Product.sol +0 -265
- 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/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -293
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -106
- package/contracts/instance/service/IBundleService.sol +0 -44
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -538
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -110
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -234
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- 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/RoleId.sol +0 -90
- /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,34 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {ISharedA} from "./IA.sol";
|
5
|
-
import {IB} from "./IB.sol";
|
6
|
-
import {IC} from "./IC.sol";
|
7
|
-
|
8
|
-
abstract contract C is ISharedA, IC {
|
9
|
-
uint256 private _x;
|
10
|
-
|
11
|
-
constructor() {
|
12
|
-
_x = 2;
|
13
|
-
}
|
14
|
-
|
15
|
-
// access own state
|
16
|
-
function getC() external view override returns (uint256) {
|
17
|
-
return _x;
|
18
|
-
}
|
19
|
-
|
20
|
-
function setC(uint256 newC) external override {
|
21
|
-
_x = newC;
|
22
|
-
}
|
23
|
-
|
24
|
-
// access state from parent contract A
|
25
|
-
function getAfromC() external view override returns (uint256) {
|
26
|
-
return this.getA();
|
27
|
-
}
|
28
|
-
|
29
|
-
// access state from other module B
|
30
|
-
function getBfromC() external view override returns (uint256) {
|
31
|
-
IB b = IB(address(this));
|
32
|
-
return b.getB();
|
33
|
-
}
|
34
|
-
}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IB} from "./IB.sol";
|
5
|
-
import {IC} from "./IC.sol";
|
6
|
-
|
7
|
-
interface ISharedA {
|
8
|
-
function getA() external view returns (uint256);
|
9
|
-
|
10
|
-
function setA(uint256 newA) external;
|
11
|
-
}
|
12
|
-
|
13
|
-
interface IA is ISharedA, IB, IC {}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
interface IC {
|
5
|
-
function getAfromC() external view returns (uint256);
|
6
|
-
|
7
|
-
function getBfromC() external view returns (uint256);
|
8
|
-
|
9
|
-
function getC() external view returns (uint256);
|
10
|
-
|
11
|
-
function setC(uint256 newA) external;
|
12
|
-
}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {ObjectType} from "../../types/ObjectType.sol";
|
5
|
-
import {StateId, toStateId, zeroStateId} from "../../types/StateId.sol";
|
6
|
-
|
7
|
-
contract LifeCycleModule {
|
8
|
-
mapping(ObjectType objectType => StateId initialState)
|
9
|
-
private _initialState;
|
10
|
-
|
11
|
-
mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
|
12
|
-
private _isValidTransition;
|
13
|
-
|
14
|
-
function getInitialState(
|
15
|
-
ObjectType objectType
|
16
|
-
) external view returns (StateId) {
|
17
|
-
return _initialState[objectType];
|
18
|
-
}
|
19
|
-
|
20
|
-
function isValidTransition(
|
21
|
-
ObjectType objectType,
|
22
|
-
StateId fromId,
|
23
|
-
StateId toId
|
24
|
-
) external view returns (bool) {
|
25
|
-
return _isValidTransition[objectType][fromId][toId];
|
26
|
-
}
|
27
|
-
}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {StateId} from "../../types/StateId.sol";
|
5
|
-
|
6
|
-
interface ISMEE {
|
7
|
-
error ErrorInitialStateUndefined();
|
8
|
-
error ErrorStartStateUndefined();
|
9
|
-
error ErrorNextStateUndefined();
|
10
|
-
error ErrorStateChangeInvalid(StateId currentStateId, StateId newStateId);
|
11
|
-
|
12
|
-
event LogInitialStateSet(StateId initialStateId);
|
13
|
-
event LogStateChanged(StateId oldStateId, StateId newStateId);
|
14
|
-
}
|
15
|
-
|
16
|
-
interface ISM is ISMEE {
|
17
|
-
function changeToState(StateId newStateId) external;
|
18
|
-
|
19
|
-
function isValidTransition(
|
20
|
-
StateId currentStateId,
|
21
|
-
StateId newStateId
|
22
|
-
) external view returns (bool isValid);
|
23
|
-
|
24
|
-
function getState() external view returns (StateId currentStateId);
|
25
|
-
}
|
@@ -1,57 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {StateId, toStateId, zeroStateId} from "../../types/StateId.sol";
|
5
|
-
import {ISM} from "./ISM.sol";
|
6
|
-
|
7
|
-
contract SM is ISM {
|
8
|
-
mapping(StateId currentState => mapping(StateId newState => bool isValid))
|
9
|
-
private _isValidTransition;
|
10
|
-
|
11
|
-
StateId internal _state;
|
12
|
-
|
13
|
-
function setInitialState(StateId initialStateId) internal {
|
14
|
-
if (initialStateId == zeroStateId()) {
|
15
|
-
revert ErrorInitialStateUndefined();
|
16
|
-
}
|
17
|
-
|
18
|
-
_state = initialStateId;
|
19
|
-
}
|
20
|
-
|
21
|
-
function addTransition(
|
22
|
-
StateId currentStateId,
|
23
|
-
StateId nextStateId
|
24
|
-
) internal {
|
25
|
-
if (currentStateId == zeroStateId()) {
|
26
|
-
revert ErrorStartStateUndefined();
|
27
|
-
}
|
28
|
-
|
29
|
-
if (nextStateId == zeroStateId()) {
|
30
|
-
revert ErrorNextStateUndefined();
|
31
|
-
}
|
32
|
-
|
33
|
-
_isValidTransition[currentStateId][nextStateId] = true;
|
34
|
-
}
|
35
|
-
|
36
|
-
function changeToState(StateId newStateId) external override {
|
37
|
-
if (!_isValidTransition[_state][newStateId]) {
|
38
|
-
revert ErrorStateChangeInvalid(_state, newStateId);
|
39
|
-
}
|
40
|
-
|
41
|
-
StateId stateOld = _state;
|
42
|
-
_state = newStateId;
|
43
|
-
|
44
|
-
emit LogStateChanged(stateOld, _state);
|
45
|
-
}
|
46
|
-
|
47
|
-
function isValidTransition(
|
48
|
-
StateId currentStateId,
|
49
|
-
StateId newStateId
|
50
|
-
) external view override returns (bool isValid) {
|
51
|
-
return _isValidTransition[currentStateId][newStateId];
|
52
|
-
}
|
53
|
-
|
54
|
-
function getState() external view override returns (StateId state) {
|
55
|
-
return _state;
|
56
|
-
}
|
57
|
-
}
|
@@ -1,31 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {StateId, toStateId} from "../../types/StateId.sol";
|
5
|
-
import {SM} from "./SM.sol";
|
6
|
-
|
7
|
-
contract SimpleStateMachine is SM {
|
8
|
-
uint8 public constant STATE_ACTIVE = 10;
|
9
|
-
uint8 public constant STATE_PAUSED = 20;
|
10
|
-
uint8 public constant STATE_ARCHIVED = 30;
|
11
|
-
|
12
|
-
constructor() {
|
13
|
-
addTransition(ACTIVE(), PAUSED());
|
14
|
-
addTransition(PAUSED(), ACTIVE());
|
15
|
-
addTransition(PAUSED(), ARCHIVED());
|
16
|
-
|
17
|
-
setInitialState(ACTIVE());
|
18
|
-
}
|
19
|
-
|
20
|
-
function ACTIVE() public pure returns (StateId stateId) {
|
21
|
-
return toStateId(STATE_ACTIVE);
|
22
|
-
}
|
23
|
-
|
24
|
-
function PAUSED() public pure returns (StateId stateId) {
|
25
|
-
return toStateId(STATE_PAUSED);
|
26
|
-
}
|
27
|
-
|
28
|
-
function ARCHIVED() public pure returns (StateId stateId) {
|
29
|
-
return toStateId(STATE_ARCHIVED);
|
30
|
-
}
|
31
|
-
}
|
@@ -1,47 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
/*
|
5
|
-
# chisel session for user defined types
|
6
|
-
|
7
|
-
import {TypeA, toTypeA} from "./contracts/experiment/types/TypeA.sol";
|
8
|
-
TypeA a = toTypeA(1);
|
9
|
-
TypeA b = toTypeA(2);
|
10
|
-
uint(a.toInt())
|
11
|
-
uint(b.toInt())
|
12
|
-
a == b
|
13
|
-
a != b
|
14
|
-
|
15
|
-
import {TypeB, toTypeB} from "./contracts/experiment/types/TypeB.sol";
|
16
|
-
TypeB x = toTypeB(33);
|
17
|
-
uint(x.toInt())
|
18
|
-
a == x; // -> error
|
19
|
-
a.toInt() == x.toInt() // -> no error
|
20
|
-
*/
|
21
|
-
|
22
|
-
// bytes5 allows for chain ids up to 13 digits
|
23
|
-
type TypeA is uint248;
|
24
|
-
|
25
|
-
// type bindings
|
26
|
-
using {eqTypeA as ==, neTypeA as !=, TypeALib.toInt} for TypeA global;
|
27
|
-
|
28
|
-
// general pure free functions
|
29
|
-
function toTypeA(uint256 typeA) pure returns (TypeA) {
|
30
|
-
return TypeA.wrap(uint248(typeA));
|
31
|
-
}
|
32
|
-
|
33
|
-
// pure free functions for operators
|
34
|
-
function eqTypeA(TypeA a, TypeA b) pure returns (bool isSame) {
|
35
|
-
return TypeA.unwrap(a) == TypeA.unwrap(b);
|
36
|
-
}
|
37
|
-
|
38
|
-
function neTypeA(TypeA a, TypeA b) pure returns (bool isDifferent) {
|
39
|
-
return TypeA.unwrap(a) != TypeA.unwrap(b);
|
40
|
-
}
|
41
|
-
|
42
|
-
// library functions that operate on user defined type
|
43
|
-
library TypeALib {
|
44
|
-
function toInt(TypeA typeA) internal pure returns (uint256) {
|
45
|
-
return uint256(TypeA.unwrap(typeA));
|
46
|
-
}
|
47
|
-
}
|
@@ -1,29 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
// bytes5 allows for chain ids up to 13 digits
|
5
|
-
type TypeB is uint248;
|
6
|
-
|
7
|
-
// type bindings
|
8
|
-
using {eqTypeB as ==, addTypeB as +, TypeBLib.toInt} for TypeB global;
|
9
|
-
|
10
|
-
// general pure free functions
|
11
|
-
function toTypeB(uint256 x) pure returns (TypeB) {
|
12
|
-
return TypeB.wrap(uint248(x));
|
13
|
-
}
|
14
|
-
|
15
|
-
// pure free functions for operators
|
16
|
-
function eqTypeB(TypeB a, TypeB b) pure returns (bool isSame) {
|
17
|
-
return TypeB.unwrap(a) == TypeB.unwrap(b);
|
18
|
-
}
|
19
|
-
|
20
|
-
function addTypeB(TypeB a, TypeB b) pure returns (TypeB sum) {
|
21
|
-
return TypeB.wrap(TypeB.unwrap(a) + TypeB.unwrap(b));
|
22
|
-
}
|
23
|
-
|
24
|
-
// library functions that operate on user defined type
|
25
|
-
library TypeBLib {
|
26
|
-
function toInt(TypeB b) internal pure returns (uint256) {
|
27
|
-
return uint256(TypeB.unwrap(b));
|
28
|
-
}
|
29
|
-
}
|
@@ -1,134 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IComponent} from "../../components/IComponent.sol";
|
5
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
6
|
-
import {IRegistryService} from "../../registry/IRegistryService.sol";
|
7
|
-
import {IInstance} from "../../instance/IInstance.sol";
|
8
|
-
import {IAccess} from "../module/IAccess.sol";
|
9
|
-
import {ObjectType, INSTANCE, REGISTRY} from "../../types/ObjectType.sol";
|
10
|
-
import {NftId} from "../../types/NftId.sol";
|
11
|
-
import {RoleId} from "../../types/RoleId.sol";
|
12
|
-
|
13
|
-
import {Service} from "../../shared/Service.sol";
|
14
|
-
import {InstanceService} from "../InstanceService.sol";
|
15
|
-
import {InstanceAccessManager} from "../InstanceAccessManager.sol";
|
16
|
-
|
17
|
-
abstract contract ComponentService is Service {
|
18
|
-
|
19
|
-
error ErrorComponentServiceAlreadyRegistered(address component, NftId nftId);
|
20
|
-
error ErrorComponentServiceNotComponent(address component);
|
21
|
-
error ErrorComponentServiceInvalidType(address component, ObjectType requiredType, ObjectType componentType);
|
22
|
-
error ErrorComponentServiceSenderNotOwner(address component, address initialOwner, address sender);
|
23
|
-
error ErrorComponentServiceExpectedRoleMissing(NftId instanceNftId, RoleId requiredRole, address sender);
|
24
|
-
error ErrorComponentServiceComponentLocked(address component);
|
25
|
-
|
26
|
-
/// @dev modifier to check if caller is a registered service
|
27
|
-
modifier onlyService() {
|
28
|
-
address caller = msg.sender;
|
29
|
-
require(getRegistry().isRegisteredService(caller), "ERROR_NOT_SERVICE");
|
30
|
-
_;
|
31
|
-
}
|
32
|
-
|
33
|
-
// view functions
|
34
|
-
|
35
|
-
function getRegistryService() public view virtual returns (IRegistryService) {
|
36
|
-
address service = getRegistry().getServiceAddress(REGISTRY(), getMajorVersion());
|
37
|
-
return IRegistryService(service);
|
38
|
-
}
|
39
|
-
|
40
|
-
function getInstanceService() public view returns (InstanceService) {
|
41
|
-
address service = getRegistry().getServiceAddress(INSTANCE(), getMajorVersion());
|
42
|
-
return InstanceService(service);
|
43
|
-
}
|
44
|
-
|
45
|
-
// internal functions
|
46
|
-
function _checkComponentForRegistration(
|
47
|
-
address componentAddress,
|
48
|
-
ObjectType requiredType,
|
49
|
-
RoleId requiredRole
|
50
|
-
)
|
51
|
-
internal
|
52
|
-
view
|
53
|
-
returns (
|
54
|
-
IComponent component,
|
55
|
-
address owner,
|
56
|
-
IInstance instance,
|
57
|
-
NftId instanceNftId
|
58
|
-
)
|
59
|
-
{
|
60
|
-
// component may only be registerd by initial owner of component
|
61
|
-
owner = msg.sender;
|
62
|
-
|
63
|
-
// check component has not already been registerd
|
64
|
-
NftId compoentNftId = _registry.getNftId(componentAddress);
|
65
|
-
if(compoentNftId.gtz()) {
|
66
|
-
revert ErrorComponentServiceAlreadyRegistered(componentAddress, compoentNftId);
|
67
|
-
}
|
68
|
-
|
69
|
-
// check this is a component
|
70
|
-
component = IComponent(componentAddress);
|
71
|
-
if(!component.supportsInterface(type(IComponent).interfaceId)) {
|
72
|
-
revert ErrorComponentServiceNotComponent(componentAddress);
|
73
|
-
}
|
74
|
-
|
75
|
-
// check component is of required type
|
76
|
-
IRegistry.ObjectInfo memory componentInfo = component.getInitialInfo();
|
77
|
-
if(componentInfo.objectType != requiredType) {
|
78
|
-
revert ErrorComponentServiceInvalidType(componentAddress, requiredType, componentInfo.objectType);
|
79
|
-
}
|
80
|
-
|
81
|
-
// check msg.sender is component owner
|
82
|
-
address initialOwner = componentInfo.initialOwner;
|
83
|
-
if(owner != initialOwner) {
|
84
|
-
revert ErrorComponentServiceSenderNotOwner(componentAddress, componentInfo.initialOwner, owner);
|
85
|
-
}
|
86
|
-
|
87
|
-
// check instance has assigned required role to owner
|
88
|
-
instanceNftId = componentInfo.parentNftId;
|
89
|
-
instance = _getInstance(instanceNftId);
|
90
|
-
bool hasRole = getInstanceService().hasRole(
|
91
|
-
owner,
|
92
|
-
requiredRole,
|
93
|
-
address(instance));
|
94
|
-
|
95
|
-
if(!hasRole) {
|
96
|
-
revert ErrorComponentServiceExpectedRoleMissing(instanceNftId, requiredRole, owner);
|
97
|
-
}
|
98
|
-
}
|
99
|
-
|
100
|
-
// internal view functions
|
101
|
-
|
102
|
-
function _getInstance(NftId instanceNftId) internal view returns (IInstance) {
|
103
|
-
IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
|
104
|
-
return IInstance(instanceInfo.objectAddress);
|
105
|
-
}
|
106
|
-
|
107
|
-
function _getAndVerifyComponentInfoAndInstance(
|
108
|
-
//address component,
|
109
|
-
ObjectType expectedType
|
110
|
-
)
|
111
|
-
internal
|
112
|
-
view
|
113
|
-
returns(
|
114
|
-
IRegistry.ObjectInfo memory info,
|
115
|
-
IInstance instance
|
116
|
-
)
|
117
|
-
{
|
118
|
-
IRegistry registry = getRegistry();
|
119
|
-
//TODO redundant check -> just check type
|
120
|
-
//NftId componentNftId = registry.getNftId(component);
|
121
|
-
//require(componentNftId.gtz(), "ERROR_COMPONENT_UNKNOWN");
|
122
|
-
|
123
|
-
info = registry.getObjectInfo(msg.sender);
|
124
|
-
require(info.objectType == expectedType, "OBJECT_TYPE_INVALID");
|
125
|
-
|
126
|
-
address instanceAddress = registry.getObjectInfo(info.parentNftId).objectAddress;
|
127
|
-
instance = IInstance(instanceAddress);
|
128
|
-
|
129
|
-
InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
|
130
|
-
if (accessManager.isTargetLocked(info.objectAddress)) {
|
131
|
-
revert IAccess.ErrorIAccessTargetLocked(info.objectAddress);
|
132
|
-
}
|
133
|
-
}
|
134
|
-
}
|
@@ -1,172 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../types/Blocknumber.sol";
|
5
|
-
import {Key32, KeyId, Key32Lib} from "../../types/Key32.sol";
|
6
|
-
import {NftId} from "../../types/NftId.sol";
|
7
|
-
import {ObjectType} from "../../types/ObjectType.sol";
|
8
|
-
import {StateId, ACTIVE} from "../../types/StateId.sol";
|
9
|
-
import {Timestamp, TimestampLib} from "../../types/Timestamp.sol";
|
10
|
-
|
11
|
-
import {Lifecycle} from "./Lifecycle.sol";
|
12
|
-
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
13
|
-
|
14
|
-
contract KeyValueStore is Lifecycle, IKeyValueStore {
|
15
|
-
|
16
|
-
mapping(Key32 key32 => Value value) private _value;
|
17
|
-
|
18
|
-
function create(
|
19
|
-
Key32 key32,
|
20
|
-
bytes memory data
|
21
|
-
)
|
22
|
-
internal
|
23
|
-
{
|
24
|
-
_create(key32, data);
|
25
|
-
}
|
26
|
-
|
27
|
-
function _create(
|
28
|
-
Key32 key32,
|
29
|
-
bytes memory data
|
30
|
-
)
|
31
|
-
internal
|
32
|
-
{
|
33
|
-
ObjectType objectType = key32.toObjectType();
|
34
|
-
require(objectType.gtz(), "ERROR:KVS-010:TYPE_UNDEFINED");
|
35
|
-
|
36
|
-
Metadata storage metadata = _value[key32].metadata;
|
37
|
-
require(metadata.state.eqz(), "ERROR:KVS-012:ALREADY_CREATED");
|
38
|
-
|
39
|
-
address createdBy = msg.sender;
|
40
|
-
Blocknumber blocknumber = blockBlocknumber();
|
41
|
-
StateId initialState = hasLifecycle(objectType) ? getInitialState(objectType) : ACTIVE();
|
42
|
-
|
43
|
-
// set metadata
|
44
|
-
metadata.objectType = objectType;
|
45
|
-
metadata.state = initialState;
|
46
|
-
metadata.updatedBy = createdBy;
|
47
|
-
metadata.updatedIn = blocknumber;
|
48
|
-
metadata.createdIn = blocknumber;
|
49
|
-
|
50
|
-
// set data
|
51
|
-
_value[key32].data = data;
|
52
|
-
|
53
|
-
// solhint-disable-next-line avoid-tx-origin
|
54
|
-
emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, createdBy, tx.origin);
|
55
|
-
}
|
56
|
-
|
57
|
-
function update(
|
58
|
-
Key32 key32,
|
59
|
-
bytes memory data,
|
60
|
-
StateId state
|
61
|
-
)
|
62
|
-
internal
|
63
|
-
{
|
64
|
-
_update(key32, data, state);
|
65
|
-
}
|
66
|
-
|
67
|
-
function _update(
|
68
|
-
Key32 key32,
|
69
|
-
bytes memory data,
|
70
|
-
StateId state
|
71
|
-
)
|
72
|
-
internal
|
73
|
-
{
|
74
|
-
require(state.gtz(), "ERROR:KVS-020:STATE_UNDEFINED");
|
75
|
-
Metadata storage metadata = _value[key32].metadata;
|
76
|
-
StateId stateOld = metadata.state;
|
77
|
-
require(stateOld.gtz(), "ERROR:KVS-021:NOT_EXISTING");
|
78
|
-
|
79
|
-
// update data
|
80
|
-
_value[key32].data = data;
|
81
|
-
|
82
|
-
// update metadata (and state)
|
83
|
-
address updatedBy = msg.sender;
|
84
|
-
Blocknumber lastUpdatedIn = metadata.updatedIn;
|
85
|
-
metadata.state = state;
|
86
|
-
metadata.updatedBy = updatedBy;
|
87
|
-
metadata.updatedIn = blockBlocknumber();
|
88
|
-
|
89
|
-
// create log entries
|
90
|
-
// solhint-disable avoid-tx-origin
|
91
|
-
emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), state, stateOld, updatedBy, tx.origin, lastUpdatedIn);
|
92
|
-
emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, updatedBy, tx.origin, lastUpdatedIn);
|
93
|
-
// solhing-enable
|
94
|
-
}
|
95
|
-
|
96
|
-
function updateData(Key32 key32, bytes memory data)
|
97
|
-
internal
|
98
|
-
{
|
99
|
-
_updateData(key32, data);
|
100
|
-
}
|
101
|
-
|
102
|
-
function _updateData(Key32 key32, bytes memory data)
|
103
|
-
internal
|
104
|
-
{
|
105
|
-
Metadata storage metadata = _value[key32].metadata;
|
106
|
-
StateId state = metadata.state;
|
107
|
-
require(state.gtz(), "ERROR:KVS-030:NOT_EXISTING");
|
108
|
-
|
109
|
-
// update data
|
110
|
-
_value[key32].data = data;
|
111
|
-
|
112
|
-
// update metadata
|
113
|
-
address updatedBy = msg.sender;
|
114
|
-
Blocknumber lastUpdatedIn = metadata.updatedIn;
|
115
|
-
metadata.updatedBy = updatedBy;
|
116
|
-
metadata.updatedIn = blockBlocknumber();
|
117
|
-
|
118
|
-
// create log entry
|
119
|
-
// solhint-disable-next-line avoid-tx-origin
|
120
|
-
emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, updatedBy, tx.origin, lastUpdatedIn);
|
121
|
-
}
|
122
|
-
|
123
|
-
function updateState(Key32 key32, StateId state)
|
124
|
-
internal
|
125
|
-
{
|
126
|
-
_updateState(key32, state);
|
127
|
-
}
|
128
|
-
|
129
|
-
function _updateState(Key32 key32, StateId state)
|
130
|
-
internal
|
131
|
-
{
|
132
|
-
require(state.gtz(), "ERROR:KVS-040:STATE_UNDEFINED");
|
133
|
-
Metadata storage metadata = _value[key32].metadata;
|
134
|
-
StateId stateOld = metadata.state;
|
135
|
-
require(stateOld.gtz(), "ERROR:KVS-041:NOT_EXISTING");
|
136
|
-
|
137
|
-
// update metadata (and state)
|
138
|
-
address updatedBy = msg.sender;
|
139
|
-
Blocknumber lastUpdatedIn = metadata.updatedIn;
|
140
|
-
metadata.state = state;
|
141
|
-
metadata.updatedBy = updatedBy;
|
142
|
-
metadata.updatedIn = blockBlocknumber();
|
143
|
-
|
144
|
-
// create log entry
|
145
|
-
// solhint-disable-next-line avoid-tx-origin
|
146
|
-
emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), state, stateOld, updatedBy, tx.origin, lastUpdatedIn);
|
147
|
-
}
|
148
|
-
|
149
|
-
function exists(Key32 key32) public view returns (bool) {
|
150
|
-
return _value[key32].metadata.state.gtz();
|
151
|
-
}
|
152
|
-
|
153
|
-
function get(Key32 key32) public view returns (Value memory value) {
|
154
|
-
return _value[key32];
|
155
|
-
}
|
156
|
-
|
157
|
-
function getMetadata(Key32 key32) public view returns (Metadata memory metadata) {
|
158
|
-
return _value[key32].metadata;
|
159
|
-
}
|
160
|
-
|
161
|
-
function getData(Key32 key32) public view returns (bytes memory data) {
|
162
|
-
return _value[key32].data;
|
163
|
-
}
|
164
|
-
|
165
|
-
function getState(Key32 key32) public view returns (StateId state) {
|
166
|
-
return _value[key32].metadata.state;
|
167
|
-
}
|
168
|
-
|
169
|
-
function toKey32(ObjectType objectType, KeyId id) external pure override returns(Key32) {
|
170
|
-
return Key32Lib.toKey32(objectType, id);
|
171
|
-
}
|
172
|
-
}
|
@@ -1,46 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {Fee} from "../../types/Fee.sol";
|
7
|
-
import {NftId} from "../../types/NftId.sol";
|
8
|
-
import {UFixed} from "../../types/UFixed.sol";
|
9
|
-
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
10
|
-
|
11
|
-
interface ISetup {
|
12
|
-
struct ProductSetupInfo {
|
13
|
-
IERC20Metadata token;
|
14
|
-
TokenHandler tokenHandler;
|
15
|
-
NftId distributionNftId;
|
16
|
-
NftId poolNftId;
|
17
|
-
Fee distributionFee; // default distribution fee (no referral id)
|
18
|
-
Fee productFee; // product fee on net premium
|
19
|
-
Fee processingFee; // product fee on payout amounts
|
20
|
-
Fee poolFee; // pool fee on net premium
|
21
|
-
Fee stakingFee; // pool fee on staked capital from investor
|
22
|
-
Fee performanceFee; // pool fee on profits from capital investors
|
23
|
-
bool isIntercepting; // intercepts nft transfers (for products)
|
24
|
-
address wallet;
|
25
|
-
}
|
26
|
-
|
27
|
-
struct DistributionSetupInfo {
|
28
|
-
NftId productNftId;
|
29
|
-
TokenHandler tokenHandler;
|
30
|
-
Fee distributionFee; // default distribution fee (no referral id)
|
31
|
-
bool isIntercepting; // intercepts nft transfers (for distributors)
|
32
|
-
address wallet;
|
33
|
-
}
|
34
|
-
|
35
|
-
struct PoolSetupInfo {
|
36
|
-
NftId productNftId;
|
37
|
-
TokenHandler tokenHandler;
|
38
|
-
UFixed collateralizationLevel;
|
39
|
-
Fee poolFee; // pool fee on net premium
|
40
|
-
Fee stakingFee; // pool fee on staked capital from investor
|
41
|
-
Fee performanceFee; // pool fee on profits from capital investors
|
42
|
-
bool isIntercepting; // intercepts nft transfers (for bundles)
|
43
|
-
bool isConfirmingApplication; // confirms applications before they are underwritten
|
44
|
-
address wallet;
|
45
|
-
}
|
46
|
-
}
|
@@ -1,23 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
-
|
6
|
-
import {Fee} from "../../types/Fee.sol";
|
7
|
-
import {NftId} from "../../types/NftId.sol";
|
8
|
-
import {TokenHandler} from "../../shared/TokenHandler.sol";
|
9
|
-
|
10
|
-
interface ITreasury {
|
11
|
-
struct TreasuryInfo {
|
12
|
-
IERC20Metadata token;
|
13
|
-
TokenHandler tokenHandler;
|
14
|
-
NftId distributionNftId;
|
15
|
-
NftId poolNftId;
|
16
|
-
Fee distributionFee; // default distribution fee (no referral id)
|
17
|
-
Fee productFee; // product fee on net premium
|
18
|
-
Fee processingFee; // product fee on payout amounts
|
19
|
-
Fee poolFee; // pool fee on net premium
|
20
|
-
Fee stakingFee; // pool fee on staked capital from investor
|
21
|
-
Fee performanceFee; // pool fee on profits from capital investors
|
22
|
-
}
|
23
|
-
}
|