@etherisc/gif-next 0.0.2-c576a00-897 → 0.0.2-c5c9395-682
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +262 -20
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/components/Component.sol/Component.json +842 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +1329 -0
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +605 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +969 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +823 -115
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +608 -57
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +1132 -143
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +967 -105
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +190 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1501 -1151
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +633 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2094 -1242
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1330 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1289 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1179 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +741 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +607 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +532 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/{experiment/kvstore → instance/module}/IBundle.sol/IBundle.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{bundle/IBundle.sol/IBundle.json → ISetup.sol/ISetup.json} +2 -2
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1039 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +673 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1231 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +721 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +817 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +641 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1798 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +805 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +622 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +659 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +475 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +1090 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +606 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +577 -109
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +186 -213
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1092 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +697 -0
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +965 -199
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +661 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +460 -293
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +485 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +866 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +487 -101
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1158 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +670 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
- 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/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +38 -74
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +100 -33
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +164 -142
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +251 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +582 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +256 -25
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +261 -217
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +10 -10
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +272 -26
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +44 -10
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +347 -130
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +12 -12
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +38 -140
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
- package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +161 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -40
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +84 -14
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +78 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
- package/contracts/components/Component.sol +253 -0
- package/contracts/components/Distribution.sol +280 -0
- package/contracts/components/IComponent.sol +76 -0
- package/contracts/components/IDistributionComponent.sol +71 -0
- package/contracts/components/IPoolComponent.sol +98 -42
- package/contracts/components/IProductComponent.sol +30 -9
- package/contracts/components/Pool.sol +238 -109
- package/contracts/components/Product.sol +218 -42
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +127 -0
- package/contracts/instance/Cloneable.sol +51 -0
- package/contracts/instance/IInstance.sol +87 -42
- package/contracts/instance/IInstanceService.sol +72 -0
- package/contracts/instance/Instance.sol +311 -50
- package/contracts/instance/InstanceAccessManager.sol +527 -0
- package/contracts/instance/InstanceReader.sol +291 -0
- package/contracts/instance/InstanceService.sol +495 -0
- package/contracts/instance/InstanceServiceManager.sol +54 -0
- package/contracts/instance/ObjectManager.sol +82 -0
- package/contracts/instance/base/ComponentService.sol +121 -0
- package/contracts/instance/base/IKeyValueStore.sol +49 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/base/KeyValueStore.sol +180 -0
- package/contracts/instance/base/Lifecycle.sol +109 -0
- package/contracts/instance/module/IAccess.sol +54 -0
- package/contracts/instance/module/IBundle.sol +23 -0
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +41 -0
- package/contracts/instance/module/IPolicy.sol +72 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/instance/module/ISetup.sol +33 -0
- package/contracts/instance/module/ITreasury.sol +23 -0
- package/contracts/instance/service/ApplicationService.sol +350 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +431 -0
- package/contracts/instance/service/BundleServiceManager.sol +51 -0
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +435 -0
- package/contracts/instance/service/DistributionServiceManager.sol +51 -0
- package/contracts/instance/service/IApplicationService.sol +82 -0
- package/contracts/instance/service/IBundleService.sol +93 -0
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +99 -0
- package/contracts/instance/service/IPolicyService.sol +72 -0
- package/contracts/instance/service/IPoolService.sol +81 -12
- package/contracts/instance/service/IProductService.sol +21 -39
- package/contracts/instance/service/PolicyService.sol +362 -0
- package/contracts/instance/service/PolicyServiceManager.sol +54 -0
- package/contracts/instance/service/PoolService.sol +249 -69
- package/contracts/instance/service/PoolServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +147 -292
- package/contracts/instance/service/ProductServiceManager.sol +54 -0
- package/contracts/registry/ChainNft.sol +87 -36
- package/contracts/registry/IRegistry.sol +68 -24
- package/contracts/registry/IRegistryService.sol +68 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +372 -286
- package/contracts/registry/RegistryAccessManager.sol +216 -0
- package/contracts/registry/RegistryService.sol +282 -0
- package/contracts/registry/RegistryServiceManager.sol +62 -0
- package/contracts/registry/ReleaseManager.sol +324 -0
- package/contracts/registry/TokenRegistry.sol +116 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/ERC165.sol +14 -8
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +26 -0
- package/contracts/shared/IRegisterable.sol +10 -19
- package/contracts/shared/IRegistryLinked.sol +12 -0
- package/contracts/shared/IService.sol +16 -0
- package/contracts/shared/IVersionable.sol +38 -37
- package/contracts/shared/NftOwnable.sol +120 -0
- package/contracts/shared/PolicyHolder.sol +81 -0
- package/contracts/shared/ProxyManager.sol +169 -0
- package/contracts/shared/Registerable.sol +54 -66
- package/contracts/shared/RegistryLinked.sol +48 -0
- package/contracts/shared/Service.sol +72 -0
- package/contracts/shared/TokenHandler.sol +33 -0
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +38 -68
- package/contracts/test/TestFee.sol +2 -2
- package/contracts/test/TestRegisterable.sol +5 -6
- package/contracts/test/TestRoleId.sol +2 -2
- package/contracts/test/TestService.sol +7 -14
- package/contracts/test/Usdc.sol +26 -0
- package/contracts/types/Amount.sol +60 -0
- package/contracts/types/Blocknumber.sol +1 -16
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/DistributorType.sol +55 -0
- package/contracts/types/Fee.sol +22 -9
- package/contracts/types/Key32.sol +50 -0
- package/contracts/types/NftId.sol +24 -1
- package/contracts/types/NftIdSet.sol +26 -24
- package/contracts/types/NumberId.sol +52 -0
- package/contracts/types/ObjectType.sol +53 -15
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/Referral.sol +89 -0
- package/contracts/types/RiskId.sol +24 -7
- package/contracts/types/RoleId.sol +72 -11
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +13 -2
- package/contracts/types/Timestamp.sol +17 -13
- package/contracts/types/UFixed.sol +145 -25
- package/contracts/types/Version.sol +14 -1
- package/package.json +9 -5
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.dbg.json +0 -4
- package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.json +0 -543
- package/artifacts/contracts/experiment/kvstore/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.dbg.json +0 -4
- package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.json +0 -185
- package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.json +0 -383
- package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.dbg.json +0 -4
- package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.json +0 -1064
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -276
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -276
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -167
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -185
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -491
- package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
- package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IService.sol/IService.json +0 -300
- package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.json +0 -300
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
- package/contracts/components/BaseComponent.sol +0 -89
- package/contracts/components/IBaseComponent.sol +0 -19
- 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/kvstore/BundleModuleStore.sol +0 -93
- package/contracts/experiment/kvstore/IBundle.sol +0 -22
- package/contracts/experiment/kvstore/KeyMapper.sol +0 -40
- package/contracts/experiment/kvstore/KeyValueStore.sol +0 -156
- package/contracts/experiment/kvstore/KvStore.sol +0 -195
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/IInstanceLinked.sol +0 -8
- package/contracts/instance/IServiceLinked.sol +0 -12
- package/contracts/instance/InstanceBase.sol +0 -71
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/bundle/BundleModule.sol +0 -228
- package/contracts/instance/module/bundle/IBundle.sol +0 -53
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/instance/module/component/ComponentModule.sol +0 -103
- package/contracts/instance/module/component/IComponent.sol +0 -53
- package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
- package/contracts/instance/module/lifecycle/LifecycleModule.sol +0 -89
- package/contracts/instance/module/policy/IPolicy.sol +0 -60
- package/contracts/instance/module/policy/PolicyModule.sol +0 -84
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -87
- package/contracts/instance/module/risk/IRisk.sol +0 -39
- package/contracts/instance/module/risk/RiskModule.sol +0 -55
- package/contracts/instance/module/treasury/ITreasury.sol +0 -103
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
- package/contracts/instance/service/ComponentOwnerService.sol +0 -171
- package/contracts/instance/service/ComponentServiceBase.sol +0 -41
- package/contracts/instance/service/IComponentOwnerService.sol +0 -22
- package/contracts/instance/service/IService.sol +0 -15
- package/contracts/instance/service/ServiceBase.sol +0 -39
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/test/TestPool.sol +0 -22
- package/contracts/test/TestProduct.sol +0 -44
@@ -1,53 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IA, ISharedA} from "./IA.sol";
|
5
|
-
import {B} from "./B.sol";
|
6
|
-
import {C} from "./C.sol";
|
7
|
-
|
8
|
-
/*
|
9
|
-
|
10
|
-
# dependency graph
|
11
|
-
|
12
|
-
B <...+
|
13
|
-
^ |
|
14
|
-
| |
|
15
|
-
A --> C
|
16
|
-
|
17
|
-
- A is the main contract
|
18
|
-
- A provides functionality implemented by modules B and C
|
19
|
-
- B and C rely on functionality shared by A
|
20
|
-
- C accesses functionality of module B
|
21
|
-
|
22
|
-
# chisel session
|
23
|
-
|
24
|
-
import {A} from "./contracts/experiment/A.sol";
|
25
|
-
A a = new A();
|
26
|
-
uint(a.getA())
|
27
|
-
uint(a.getB()))
|
28
|
-
uint(a.getC())
|
29
|
-
uint(a.getAfromB())
|
30
|
-
uint(a.getAfromC())
|
31
|
-
uint(a.getBfromC())
|
32
|
-
a.setA(100);
|
33
|
-
a.setB(10);
|
34
|
-
a.setC(20);
|
35
|
-
*/
|
36
|
-
|
37
|
-
contract AShared is ISharedA {
|
38
|
-
uint256 private _x;
|
39
|
-
|
40
|
-
constructor() {
|
41
|
-
_x = 42;
|
42
|
-
}
|
43
|
-
|
44
|
-
function getA() external view override returns (uint256) {
|
45
|
-
return _x;
|
46
|
-
}
|
47
|
-
|
48
|
-
function setA(uint256 newA) external override {
|
49
|
-
_x = newA;
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
contract A is AShared, B, C, IA {}
|
@@ -1,28 +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
|
-
|
7
|
-
abstract contract B is ISharedA, IB {
|
8
|
-
// names of private variables can be re-used in inheritance
|
9
|
-
uint256 private _x;
|
10
|
-
|
11
|
-
constructor() {
|
12
|
-
_x = 1;
|
13
|
-
}
|
14
|
-
|
15
|
-
// access own state
|
16
|
-
function getB() external view override returns (uint256) {
|
17
|
-
return _x;
|
18
|
-
}
|
19
|
-
|
20
|
-
function setB(uint256 newB) external override {
|
21
|
-
_x = newB;
|
22
|
-
}
|
23
|
-
|
24
|
-
// access state from parent contract A
|
25
|
-
function getAfromB() external view override returns (uint256) {
|
26
|
-
return this.getA();
|
27
|
-
}
|
28
|
-
}
|
@@ -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,93 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
/*
|
5
|
-
|
6
|
-
from test_brownie.util import contract_from_address
|
7
|
-
fa = {'from': accounts[0]}
|
8
|
-
nl = NftIdLib.deploy(fa)
|
9
|
-
tl = TimestampLib.deploy(fa)
|
10
|
-
bm = BundleModuleStore.deploy(fa)
|
11
|
-
kv = contract_from_address(KeyValueStore, bm.getStore())
|
12
|
-
|
13
|
-
bi = bm.createBundleInfo(123456, 10**(5+6), kv.s2b('some filter')) # gas: 362979
|
14
|
-
tx1 = bm.createBundleInfo(bi, fa)
|
15
|
-
|
16
|
-
bi.dict()['lockedAmount'] = 42
|
17
|
-
tx2 = bm.updateBundleInfo(bi, {'from': accounts[1]})
|
18
|
-
|
19
|
-
bik32 = tx1.return_value
|
20
|
-
bik = bm.toKey(bik32)
|
21
|
-
|
22
|
-
tx1.info()
|
23
|
-
tx2.info()
|
24
|
-
|
25
|
-
*/
|
26
|
-
|
27
|
-
import {NftId, toNftId} from "../../types/NftId.sol";
|
28
|
-
import {ObjectType, BUNDLE} from "../../types/ObjectType.sol";
|
29
|
-
import {StateId, ACTIVE} from "../../types/StateId.sol";
|
30
|
-
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../types/Timestamp.sol";
|
31
|
-
|
32
|
-
import {IBundle} from "./IBundle.sol";
|
33
|
-
import {KeyId, KeyMapper} from "./KeyMapper.sol";
|
34
|
-
import {KeyValueStore} from "./KeyValueStore.sol";
|
35
|
-
|
36
|
-
contract BundleModuleStore is KeyMapper, IBundle {
|
37
|
-
|
38
|
-
KeyValueStore private _store;
|
39
|
-
|
40
|
-
constructor() {
|
41
|
-
_store = new KeyValueStore();
|
42
|
-
}
|
43
|
-
|
44
|
-
function createBundleInfo(IBundle.BundleInfo memory info) public returns (bytes32 key) {
|
45
|
-
key = toBundleKey32(info.nftId);
|
46
|
-
_store.create(key, BUNDLE(), abi.encode(info));
|
47
|
-
}
|
48
|
-
|
49
|
-
function updateBundleInfo(IBundle.BundleInfo memory info) public {
|
50
|
-
bytes32 key = toBundleKey32(info.nftId);
|
51
|
-
_store.update(key, abi.encode(info));
|
52
|
-
}
|
53
|
-
|
54
|
-
function getBundleInfo(bytes32 key) public view returns (IBundle.BundleInfo memory) {
|
55
|
-
bytes memory data = _store.getData(key);
|
56
|
-
return abi.decode(data, (IBundle.BundleInfo));
|
57
|
-
}
|
58
|
-
|
59
|
-
function toBundleKey32(NftId bundleNftId) public pure returns (bytes32 key) {
|
60
|
-
return toKey32(BUNDLE(), toKeyId(bundleNftId));
|
61
|
-
}
|
62
|
-
|
63
|
-
function toKeyId(NftId nftId) public pure returns (KeyId keyId) {
|
64
|
-
uint248 intNftId = nftId.toInt();
|
65
|
-
keyId = KeyId.wrap(bytes31(intNftId));
|
66
|
-
}
|
67
|
-
|
68
|
-
function createBundleInfo(
|
69
|
-
uint256 bundleId,
|
70
|
-
uint256 amount,
|
71
|
-
bytes calldata filter
|
72
|
-
)
|
73
|
-
public
|
74
|
-
view
|
75
|
-
returns(IBundle.BundleInfo memory info)
|
76
|
-
{
|
77
|
-
uint256 lifetime = 30 * 24 * 3600;
|
78
|
-
return IBundle.BundleInfo(
|
79
|
-
toNftId(bundleId),
|
80
|
-
toNftId(123456),
|
81
|
-
ACTIVE(),
|
82
|
-
filter,
|
83
|
-
amount, // capital amount
|
84
|
-
0, // locked amount
|
85
|
-
amount, // balance
|
86
|
-
blockTimestamp().addSeconds(lifetime), // expiredAt
|
87
|
-
zeroTimestamp()); // closedAt
|
88
|
-
}
|
89
|
-
|
90
|
-
function getStore() public view returns (KeyValueStore) {
|
91
|
-
return _store;
|
92
|
-
}
|
93
|
-
}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {NftId} from "../../types/NftId.sol";
|
5
|
-
import {StateId} from "../../types/StateId.sol";
|
6
|
-
import {Timestamp} from "../../types/Timestamp.sol";
|
7
|
-
import {Blocknumber} from "../../types/Blocknumber.sol";
|
8
|
-
|
9
|
-
interface IBundle {
|
10
|
-
|
11
|
-
struct BundleInfo {
|
12
|
-
NftId nftId;
|
13
|
-
NftId poolNftId;
|
14
|
-
StateId state; // active, paused, closed (expriy only implicit)
|
15
|
-
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
16
|
-
uint256 capitalAmount; // net investment capital amount (<= balance)
|
17
|
-
uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
|
18
|
-
uint256 balanceAmount; // total amount of funds: net investment capital + net premiums - payouts
|
19
|
-
Timestamp expiredAt; // no new policies
|
20
|
-
Timestamp closedAt;
|
21
|
-
}
|
22
|
-
}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {ObjectType, BUNDLE, RISK} from "../../types/ObjectType.sol";
|
5
|
-
|
6
|
-
type KeyId is bytes31;
|
7
|
-
|
8
|
-
contract KeyMapper {
|
9
|
-
|
10
|
-
uint8 public constant TYPE_SHIFT = 31 * 8;
|
11
|
-
uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
|
12
|
-
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
|
13
|
-
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
|
14
|
-
|
15
|
-
struct Key {
|
16
|
-
ObjectType objectType;
|
17
|
-
KeyId id;
|
18
|
-
}
|
19
|
-
|
20
|
-
function toKey(ObjectType objectType, KeyId id) public pure returns(Key memory) {
|
21
|
-
return Key(objectType, id);
|
22
|
-
}
|
23
|
-
|
24
|
-
function toKey(bytes32 key) public pure returns (Key memory) {
|
25
|
-
ObjectType objectType = ObjectType.wrap(uint8(uint256(key & TYPE_MASK) >> TYPE_SHIFT));
|
26
|
-
KeyId id = KeyId.wrap(bytes31((key & ID_MASK) << ID_SHIFT));
|
27
|
-
return Key(objectType, id);
|
28
|
-
}
|
29
|
-
|
30
|
-
function toKey32(Key memory key) public pure returns(bytes32) {
|
31
|
-
return toKey32(key.objectType, key.id);
|
32
|
-
}
|
33
|
-
|
34
|
-
function toKey32(ObjectType objectType, KeyId id) public pure returns(bytes32) {
|
35
|
-
uint256 uintObjectType = ObjectType.unwrap(objectType);
|
36
|
-
uint256 uintId = uint248(KeyId.unwrap(id));
|
37
|
-
uint256 uintKey = (uintObjectType << TYPE_SHIFT) + uintId;
|
38
|
-
return bytes32(uintKey);
|
39
|
-
}
|
40
|
-
}
|
@@ -1,156 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
/*
|
5
|
-
|
6
|
-
fa = {'from': accounts[0]}
|
7
|
-
tl = TimestampLib.deploy(fa)
|
8
|
-
kv = KeyValueStore.deploy(fa)
|
9
|
-
|
10
|
-
pk = kv.s2k('policy key 1')
|
11
|
-
pd = kv.s2b('policy info data 1.a')
|
12
|
-
|
13
|
-
rk = kv.s2k('risk key 1')
|
14
|
-
rd = kv.s2b('risk info data 1.a')
|
15
|
-
|
16
|
-
kv.exists(pk)
|
17
|
-
ptx = kv.create(pk, kv.policy(), pd)
|
18
|
-
rtx = kv.create(rk, kv.policy(), rd)
|
19
|
-
kv.exists(pk)
|
20
|
-
kv.get(pk)
|
21
|
-
|
22
|
-
kv.b2s(kv.getData(pk))
|
23
|
-
|
24
|
-
pd1b = kv.s2b('b')
|
25
|
-
ptxb = kv.update(pk, pd1b, True, True) # gas: 48019, 46428
|
26
|
-
|
27
|
-
pd1c = kv.s2b('c')
|
28
|
-
ptxc = kv.update(pk, pd1c, True, True) # gas: 43819, 42228
|
29
|
-
|
30
|
-
pd1d = kv.s2b('d')
|
31
|
-
ptxd = kv.update(pk, pd1d, True, False) # gas: 32655, 32699
|
32
|
-
|
33
|
-
pd1e = kv.s2b('e')
|
34
|
-
ptxe = kv.update(pk, pd1e, False, True) # gas: 34525, 34575
|
35
|
-
|
36
|
-
pd1f = kv.s2b('f')
|
37
|
-
ptxf = kv.update(pk, pd1f, False, False) # gas: 32638, 32682
|
38
|
-
|
39
|
-
pd1g = kv.s2b('g')
|
40
|
-
ptxg = kv.update(pk, pd1f, True, True, True, False) # gas:
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
*/
|
45
|
-
|
46
|
-
type KeyId is bytes32;
|
47
|
-
|
48
|
-
import {ObjectType, RISK, POLICY} from "../../types/ObjectType.sol";
|
49
|
-
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../types/Timestamp.sol";
|
50
|
-
import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../types/Blocknumber.sol";
|
51
|
-
|
52
|
-
contract KeyValueStore {
|
53
|
-
|
54
|
-
event LogInfoCreated(bytes32 key, ObjectType objectType, address createdBy);
|
55
|
-
event LogInfoUpdated(bytes32 key, ObjectType objectType, address updatedBy, Blocknumber lastUpdateIn);
|
56
|
-
|
57
|
-
struct Metadata {
|
58
|
-
ObjectType objectType;
|
59
|
-
address updatedBy;
|
60
|
-
Blocknumber updatedIn;
|
61
|
-
Blocknumber createdIn;
|
62
|
-
}
|
63
|
-
|
64
|
-
struct Value {
|
65
|
-
Metadata metadata;
|
66
|
-
bytes data;
|
67
|
-
}
|
68
|
-
|
69
|
-
mapping(bytes32 key => Value value) private _value;
|
70
|
-
bytes32[] private _keys;
|
71
|
-
|
72
|
-
// key store functions
|
73
|
-
function create(bytes32 key, ObjectType objectType, bytes memory data) public {
|
74
|
-
Metadata storage metadata = _value[key].metadata;
|
75
|
-
require(metadata.updatedBy == address(0), "ERROR_ALREADY_CREATED");
|
76
|
-
|
77
|
-
address createdBy = msg.sender;
|
78
|
-
Blocknumber blocknumber = blockBlocknumber();
|
79
|
-
metadata.objectType = objectType;
|
80
|
-
metadata.updatedBy = createdBy;
|
81
|
-
metadata.updatedIn = blocknumber;
|
82
|
-
metadata.createdIn = blocknumber;
|
83
|
-
|
84
|
-
_value[key].data = data;
|
85
|
-
_keys.push(key);
|
86
|
-
|
87
|
-
emit LogInfoCreated(key, objectType, createdBy);
|
88
|
-
}
|
89
|
-
|
90
|
-
function update(bytes32 key, bytes memory data) public {
|
91
|
-
update(key, data, true, true);
|
92
|
-
}
|
93
|
-
|
94
|
-
function update(bytes32 key, bytes memory data, bool updateMetadata, bool log) public {
|
95
|
-
_value[key].data = data;
|
96
|
-
Blocknumber blocknumber = blockBlocknumber();
|
97
|
-
|
98
|
-
if(updateMetadata && log) {
|
99
|
-
Metadata storage metadata = _value[key].metadata;
|
100
|
-
require(metadata.updatedBy != address(0), "ERROR_NOT_EXISTING");
|
101
|
-
|
102
|
-
if (log) {
|
103
|
-
emit LogInfoUpdated(key, metadata.objectType, msg.sender, metadata.updatedIn);
|
104
|
-
}
|
105
|
-
|
106
|
-
metadata.updatedBy = msg.sender;
|
107
|
-
metadata.updatedIn = blocknumber;
|
108
|
-
} else if (log) {
|
109
|
-
emit LogInfoUpdated(key, POLICY(), msg.sender, blocknumber);
|
110
|
-
}
|
111
|
-
}
|
112
|
-
|
113
|
-
function exists(bytes32 key) public view returns (bool) {
|
114
|
-
return _value[key].metadata.updatedBy != address(0);
|
115
|
-
}
|
116
|
-
|
117
|
-
function get(bytes32 key) public view returns (Value memory value) {
|
118
|
-
return _value[key];
|
119
|
-
}
|
120
|
-
|
121
|
-
function getMetadata(bytes32 key) public view returns (Metadata memory metadata) {
|
122
|
-
return _value[key].metadata;
|
123
|
-
}
|
124
|
-
|
125
|
-
function getData(bytes32 key) public view returns (bytes memory data) {
|
126
|
-
return _value[key].data;
|
127
|
-
}
|
128
|
-
|
129
|
-
function getKeyCount() public view returns (uint256 keyCount) {
|
130
|
-
return _keys.length;
|
131
|
-
}
|
132
|
-
|
133
|
-
function getKey(uint256 index) public view returns (bytes32 key) {
|
134
|
-
return _keys[index];
|
135
|
-
}
|
136
|
-
|
137
|
-
function policy() public pure returns (ObjectType) {
|
138
|
-
return POLICY();
|
139
|
-
}
|
140
|
-
|
141
|
-
function risk() public pure returns (ObjectType) {
|
142
|
-
return RISK();
|
143
|
-
}
|
144
|
-
|
145
|
-
function s2k(string memory s) public pure returns (bytes32 k) {
|
146
|
-
return keccak256(abi.encodePacked(s));
|
147
|
-
}
|
148
|
-
|
149
|
-
function s2b(string memory s) public pure returns (bytes memory b) {
|
150
|
-
return abi.encode(s);
|
151
|
-
}
|
152
|
-
|
153
|
-
function b2s(bytes memory b) public pure returns (string memory s) {
|
154
|
-
return abi.decode(b, (string));
|
155
|
-
}
|
156
|
-
}
|
@@ -1,195 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
/*
|
5
|
-
fa = {'from': accounts[0]}
|
6
|
-
tl = TimestampLib.deploy(fa)
|
7
|
-
kv = KvStore.deploy(fa)
|
8
|
-
r1 = kv.createRiskInfo(kv.s2b('risk spec 1'))
|
9
|
-
b1 = kv.createBundleInfo(123456, 10000000, kv.s2b('bundle filter 1'))
|
10
|
-
|
11
|
-
(r1k, r1v) = kv.riskInfoToKeyValue(3, r1)
|
12
|
-
|
13
|
-
kv.toKey(r1k)
|
14
|
-
|
15
|
-
*/
|
16
|
-
|
17
|
-
import {NftId, toNftId} from "../../types/NftId.sol";
|
18
|
-
import {RiskId, toRiskId} from "../../types/RiskId.sol";
|
19
|
-
import {ObjectType, BUNDLE, RISK} from "../../types/ObjectType.sol";
|
20
|
-
import {VersionPart} from "../../types/Version.sol";
|
21
|
-
import {StateId, ACTIVE} from "../../types/StateId.sol";
|
22
|
-
import {Timestamp, blockTimestamp, zeroTimestamp} from "../../types/Timestamp.sol";
|
23
|
-
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
24
|
-
import {IBundle} from "./IBundle.sol";
|
25
|
-
import {IRisk} from "../../instance/module/risk/IRisk.sol";
|
26
|
-
|
27
|
-
type KeyId is bytes31;
|
28
|
-
|
29
|
-
contract KvStore {
|
30
|
-
|
31
|
-
uint8 public constant TYPE_SHIFT = 31 * 8;
|
32
|
-
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
|
33
|
-
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
|
34
|
-
|
35
|
-
struct Key {
|
36
|
-
ObjectType objectType;
|
37
|
-
KeyId id;
|
38
|
-
}
|
39
|
-
|
40
|
-
struct Value {
|
41
|
-
VersionPart majorVersion;
|
42
|
-
bytes data;
|
43
|
-
}
|
44
|
-
|
45
|
-
mapping(bytes32 key => Value value) private _store;
|
46
|
-
bytes32[] private _keys;
|
47
|
-
|
48
|
-
function toKey32(RiskId riskId) public pure returns (bytes32 key) {
|
49
|
-
uint256 objectType = uint256(ObjectType.unwrap(RISK()));
|
50
|
-
uint256 id = uint96(RiskId.unwrap(riskId));
|
51
|
-
return bytes32(objectType << TYPE_SHIFT + id);
|
52
|
-
}
|
53
|
-
|
54
|
-
function toKey(bytes32 key32) public pure returns (Key memory key) {
|
55
|
-
ObjectType objectType = ObjectType.wrap(uint8(uint256(key32 & TYPE_MASK) >> TYPE_SHIFT));
|
56
|
-
KeyId id = KeyId.wrap(bytes31(key32 & ID_MASK));
|
57
|
-
return Key(objectType, id);
|
58
|
-
}
|
59
|
-
|
60
|
-
function toBytes32(uint256 value) public pure returns(bytes32) { return bytes32(value); }
|
61
|
-
|
62
|
-
// key store functions
|
63
|
-
function create(bytes32 key, Value memory value) public {
|
64
|
-
// add only store
|
65
|
-
require(VersionPart.unwrap(_store[key].majorVersion) == 0, "ERROR_KEY_USED");
|
66
|
-
_store[key] = value;
|
67
|
-
_keys.push(key);
|
68
|
-
}
|
69
|
-
|
70
|
-
function update(bytes32 key, Value memory value) public {
|
71
|
-
// add only store
|
72
|
-
require(VersionPart.unwrap(_store[key].majorVersion) > 0, "ERROR_KEY_UNKNOWN");
|
73
|
-
_store[key] = value;
|
74
|
-
}
|
75
|
-
|
76
|
-
function getIdMask() public pure returns (bytes32) { return ID_MASK; }
|
77
|
-
function getTypeMask() public pure returns (bytes32) { return TYPE_MASK; }
|
78
|
-
|
79
|
-
function get(bytes32 key) public view returns (Value memory value) {
|
80
|
-
return _store[key];
|
81
|
-
}
|
82
|
-
|
83
|
-
function exists(bytes32 key) public view returns (bool) {
|
84
|
-
return VersionPart.unwrap(_store[key].majorVersion) > 0;
|
85
|
-
}
|
86
|
-
|
87
|
-
function getKeyCount() public view returns (uint256 keyCount) {
|
88
|
-
return _keys.length;
|
89
|
-
}
|
90
|
-
|
91
|
-
function getKey(uint256 index) public view returns (bytes32 key) {
|
92
|
-
return _keys[index];
|
93
|
-
}
|
94
|
-
|
95
|
-
function s2b(string memory s) public pure returns (bytes memory b) {
|
96
|
-
return abi.encodePacked(s);
|
97
|
-
}
|
98
|
-
|
99
|
-
function b2s(bytes memory b) public pure returns (string memory s) {
|
100
|
-
return abi.decode(b, (string));
|
101
|
-
}
|
102
|
-
|
103
|
-
// risk related functions
|
104
|
-
|
105
|
-
function keyToRiskId(Key memory key) public pure returns (RiskId id) {
|
106
|
-
require(key.objectType == RISK(), "ERROR_NOT_RISK_KEY");
|
107
|
-
return RiskId.wrap(bytes12(KeyId.unwrap(key.id)));
|
108
|
-
}
|
109
|
-
|
110
|
-
function createRiskInfo(
|
111
|
-
bytes memory specification
|
112
|
-
)
|
113
|
-
public
|
114
|
-
view
|
115
|
-
returns(IRisk.RiskInfo memory info)
|
116
|
-
{
|
117
|
-
RiskId riskId = toRiskId(specification);
|
118
|
-
return IRisk.RiskInfo(
|
119
|
-
riskId,
|
120
|
-
ACTIVE(),
|
121
|
-
specification,
|
122
|
-
blockTimestamp(), // createdAt
|
123
|
-
blockNumber()); // updatedIn
|
124
|
-
}
|
125
|
-
|
126
|
-
function riskIdToKey(RiskId riskId) public pure returns(bytes32 key) {
|
127
|
-
return keccak256(abi.encode(RISK(), riskId));
|
128
|
-
}
|
129
|
-
|
130
|
-
function encodeRiskInfo(IRisk.RiskInfo memory info) public pure returns (bytes memory data) {
|
131
|
-
return abi.encode(info);
|
132
|
-
}
|
133
|
-
|
134
|
-
function decodeRiskInfo(bytes memory data) public pure returns (IRisk.RiskInfo memory info) {
|
135
|
-
return abi.decode(data, (IRisk.RiskInfo));
|
136
|
-
}
|
137
|
-
|
138
|
-
function riskInfoToKeyValue(VersionPart majorVersion, IRisk.RiskInfo memory info) public pure returns (bytes32 key, Value memory value) {
|
139
|
-
return (
|
140
|
-
toKey32(info.id),
|
141
|
-
Value(majorVersion, abi.encode(info))
|
142
|
-
);
|
143
|
-
}
|
144
|
-
|
145
|
-
function valueToRiskInfo(Value memory value) public pure returns (IRisk.RiskInfo memory info) {
|
146
|
-
return abi.decode(value.data, (IRisk.RiskInfo));
|
147
|
-
}
|
148
|
-
|
149
|
-
// bundle related functions
|
150
|
-
function createBundleInfo(
|
151
|
-
NftId bundleNftId,
|
152
|
-
uint256 amount,
|
153
|
-
bytes calldata filter
|
154
|
-
)
|
155
|
-
public
|
156
|
-
view
|
157
|
-
returns(IBundle.BundleInfo memory info)
|
158
|
-
{
|
159
|
-
uint256 lifetime = 30 * 24 * 3600;
|
160
|
-
return IBundle.BundleInfo(
|
161
|
-
bundleNftId,
|
162
|
-
toNftId(123456),
|
163
|
-
ACTIVE(),
|
164
|
-
filter,
|
165
|
-
amount,
|
166
|
-
0,
|
167
|
-
amount,
|
168
|
-
blockTimestamp().addSeconds(lifetime), // expiredAt
|
169
|
-
zeroTimestamp()); // closedAt
|
170
|
-
}
|
171
|
-
|
172
|
-
function nftIdToKey(NftId nftId) public pure returns(bytes32 key) {
|
173
|
-
return keccak256(abi.encode(BUNDLE(), nftId));
|
174
|
-
}
|
175
|
-
|
176
|
-
function nftIdToKeyPacked(NftId nftId) public pure returns(bytes32 key) {
|
177
|
-
return keccak256(abi.encodePacked(BUNDLE(), nftId));
|
178
|
-
}
|
179
|
-
|
180
|
-
function bundleInfoToValue(VersionPart majorVersion, IBundle.BundleInfo memory info) public pure returns (Value memory value) {
|
181
|
-
return Value(majorVersion, abi.encode(info));
|
182
|
-
}
|
183
|
-
|
184
|
-
function valueToBundleInfo(Value memory value) public pure returns (IBundle.BundleInfo memory info) {
|
185
|
-
return abi.decode(value.data, (IBundle.BundleInfo));
|
186
|
-
}
|
187
|
-
|
188
|
-
function encodeBundleInfo(IBundle.BundleInfo memory info) public pure returns (bytes memory data) {
|
189
|
-
return abi.encode(info);
|
190
|
-
}
|
191
|
-
|
192
|
-
function decodeBundleInfo(bytes memory data) public pure returns (IBundle.BundleInfo memory info) {
|
193
|
-
return abi.decode(data, (IBundle.BundleInfo));
|
194
|
-
}
|
195
|
-
}
|
@@ -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
|
-
}
|