@etherisc/gif-next 0.0.2-de220d6-949 → 0.0.2-e1e92ab-754
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 +82 -0
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -39
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +557 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +119 -39
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +177 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +108 -156
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +67 -139
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +417 -88
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +360 -51
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -34
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +762 -698
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +945 -817
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +224 -43
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +51 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.json +174 -53
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +263 -45
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +220 -52
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +53 -53
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +53 -53
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +29 -14
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -13
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +326 -221
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +326 -221
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +374 -70
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +630 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +176 -74
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +235 -50
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +325 -51
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +335 -53
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +468 -73
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +190 -51
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +872 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +380 -139
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1245 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +490 -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 +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
- 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 +78 -14
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +557 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +417 -88
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +407 -56
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +267 -62
- 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 +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +89 -25
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +52 -13
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- 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/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -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 +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- 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/{UFixedMathLib.json → UFixedLib.json} +3 -3
- 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 +2 -2
- package/contracts/components/BaseComponent.sol +11 -20
- package/contracts/components/Distribution.sol +155 -0
- package/contracts/components/IBaseComponent.sol +1 -1
- package/contracts/components/IDistributionComponent.sol +46 -0
- package/contracts/components/IPoolComponent.sol +15 -8
- package/contracts/components/IProductComponent.sol +26 -8
- package/contracts/components/Pool.sol +99 -27
- package/contracts/components/Product.sol +204 -22
- package/contracts/experiment/errors/Revert.sol +4 -13
- package/contracts/instance/IInstance.sol +11 -11
- package/contracts/instance/Instance.sol +28 -13
- package/contracts/instance/base/ComponentServiceBase.sol +13 -6
- package/contracts/instance/base/IInstanceBase.sol +11 -2
- package/contracts/instance/base/IKeyValueStore.sol +4 -3
- package/contracts/instance/base/InstanceBase.sol +19 -10
- package/contracts/instance/base/KeyValueStore.sol +12 -7
- package/contracts/instance/base/Lifecycle.sol +15 -10
- package/contracts/instance/base/ModuleBase.sol +22 -17
- package/contracts/instance/base/ServiceBase.sol +20 -13
- package/contracts/instance/module/bundle/BundleModule.sol +10 -12
- package/contracts/instance/module/bundle/IBundle.sol +6 -11
- package/contracts/instance/module/component/ComponentModule.sol +33 -57
- package/contracts/instance/module/component/IComponent.sol +6 -31
- package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
- package/contracts/instance/module/distribution/IDistribution.sol +10 -0
- package/contracts/instance/module/policy/IPolicy.sol +11 -9
- package/contracts/instance/module/policy/PolicyModule.sol +33 -19
- package/contracts/instance/module/pool/IPoolModule.sol +4 -4
- package/contracts/instance/module/pool/PoolModule.sol +23 -15
- package/contracts/instance/module/risk/IRisk.sol +18 -2
- package/contracts/instance/module/risk/RiskModule.sol +56 -2
- package/contracts/instance/module/treasury/ITreasury.sol +31 -50
- package/contracts/instance/module/treasury/TokenHandler.sol +1 -1
- package/contracts/instance/module/treasury/TreasuryModule.sol +70 -91
- package/contracts/instance/service/ComponentOwnerService.sol +238 -93
- package/contracts/instance/service/DistributionService.sol +54 -0
- package/contracts/instance/service/IComponentOwnerService.sol +0 -2
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +7 -0
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/instance/service/PoolService.sol +49 -23
- package/contracts/instance/service/ProductService.sol +249 -93
- package/contracts/registry/ChainNft.sol +42 -14
- package/contracts/registry/IChainNft.sol +2 -1
- package/contracts/registry/IRegistry.sol +27 -27
- package/contracts/registry/IRegistryService.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +313 -268
- package/contracts/registry/RegistryService.sol +441 -0
- package/contracts/registry/RegistryServiceManager.sol +63 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/INftOwnable.sol +22 -0
- package/contracts/shared/IRegisterable.sol +8 -15
- package/contracts/shared/IVersionable.sol +55 -11
- package/contracts/shared/NftOwnable.sol +136 -0
- package/contracts/shared/ProxyManager.sol +94 -0
- package/contracts/shared/Registerable.sol +62 -59
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +112 -54
- package/contracts/test/TestDistribution.sol +22 -0
- package/contracts/test/TestFee.sol +2 -2
- package/contracts/test/TestPool.sol +7 -2
- package/contracts/test/TestProduct.sol +37 -7
- package/contracts/test/TestRegisterable.sol +5 -6
- package/contracts/test/TestService.sol +5 -11
- package/contracts/types/Fee.sol +10 -5
- package/contracts/types/ObjectType.sol +24 -8
- package/contracts/types/ReferralId.sol +48 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +9 -2
- package/contracts/types/UFixed.sol +128 -12
- package/contracts/types/Version.sol +9 -0
- package/package.json +4 -3
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.json +0 -27
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.json +0 -83
- package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.json +0 -75
- 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/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/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
- 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/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/contracts/experiment/errors/IncrementRevert.sol +0 -43
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
@@ -1,8 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
|
5
|
+
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
|
6
|
+
|
5
7
|
import {IChainNft} from "./IChainNft.sol";
|
8
|
+
import {ITransferInterceptor} from "./ITransferInterceptor.sol";
|
6
9
|
|
7
10
|
contract ChainNft is ERC721Enumerable, IChainNft {
|
8
11
|
string public constant NAME = "Dezentralized Insurance Protocol Registry";
|
@@ -11,6 +14,9 @@ contract ChainNft is ERC721Enumerable, IChainNft {
|
|
11
14
|
uint256 public constant PROTOCOL_NFT_ID = 1101;
|
12
15
|
uint256 public constant GLOBAL_REGISTRY_ID = 2101;
|
13
16
|
|
17
|
+
// remember interceptors
|
18
|
+
mapping(uint256 tokenId => address interceptor) private _interceptor;
|
19
|
+
|
14
20
|
// remember token uri
|
15
21
|
mapping(uint256 tokenId => string uri) private _uri;
|
16
22
|
|
@@ -37,18 +43,36 @@ contract ChainNft is ERC721Enumerable, IChainNft {
|
|
37
43
|
_chainIdInt = block.chainid;
|
38
44
|
_chainIdDigits = _countDigits(_chainIdInt);
|
39
45
|
_chainIdMultiplier = 10 ** _chainIdDigits;
|
40
|
-
_idNext =
|
46
|
+
_idNext = 4;
|
41
47
|
}
|
42
48
|
|
49
|
+
/**
|
50
|
+
* @dev mints a token for a specified token id
|
51
|
+
* not part of the IRegistry interface only needed for
|
52
|
+
* initial registry setup (protocol and global registry objects)
|
53
|
+
*/
|
54
|
+
function mint(address to, uint256 tokenId) external onlyRegistry {
|
55
|
+
_totalMinted++;
|
56
|
+
_safeMint(to, tokenId);
|
57
|
+
}
|
58
|
+
|
59
|
+
|
43
60
|
/**
|
44
61
|
* @dev mints the next token to register new objects
|
62
|
+
* non-zero transferInterceptors are recorded and called during nft token transfers.
|
63
|
+
* the contract receiving such a notification may decides to revert or record the transfer
|
45
64
|
*/
|
46
65
|
function mint(
|
47
66
|
address to,
|
67
|
+
address interceptor,
|
48
68
|
string memory uri
|
49
|
-
)
|
69
|
+
) public onlyRegistry returns (uint256 tokenId) {
|
50
70
|
tokenId = _getNextTokenId();
|
51
71
|
|
72
|
+
if (interceptor != address(0)) {
|
73
|
+
_interceptor[tokenId] = interceptor;
|
74
|
+
}
|
75
|
+
|
52
76
|
if (bytes(uri).length > 0) {
|
53
77
|
_uri[tokenId] = uri;
|
54
78
|
}
|
@@ -57,18 +81,22 @@ contract ChainNft is ERC721Enumerable, IChainNft {
|
|
57
81
|
_totalMinted++;
|
58
82
|
}
|
59
83
|
|
84
|
+
|
60
85
|
/**
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
86
|
+
* @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
|
87
|
+
* this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
|
88
|
+
*/
|
89
|
+
function transferFrom(address from, address to, uint256 tokenId) public override (ERC721, IERC721) {
|
90
|
+
super.transferFrom(from, to, tokenId);
|
91
|
+
|
92
|
+
if (_interceptor[tokenId] != address(0)) {
|
93
|
+
ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId);
|
94
|
+
}
|
68
95
|
}
|
69
96
|
|
97
|
+
|
70
98
|
function burn(uint256 tokenId) external override onlyRegistry {
|
71
|
-
|
99
|
+
_requireOwned(tokenId);
|
72
100
|
_burn(tokenId);
|
73
101
|
delete _uri[tokenId];
|
74
102
|
}
|
@@ -79,18 +107,18 @@ contract ChainNft is ERC721Enumerable, IChainNft {
|
|
79
107
|
) external override onlyRegistry {
|
80
108
|
require(bytes(uri).length > 0, "ERROR:CRG-011:URI_EMPTY");
|
81
109
|
|
82
|
-
|
110
|
+
_requireOwned(tokenId);
|
83
111
|
_uri[tokenId] = uri;
|
84
112
|
}
|
85
113
|
|
86
114
|
function exists(uint256 tokenId) external view override returns (bool) {
|
87
|
-
return
|
115
|
+
return _ownerOf(tokenId) != address(0);
|
88
116
|
}
|
89
117
|
|
90
118
|
function tokenURI(
|
91
119
|
uint256 tokenId
|
92
120
|
) public view override returns (string memory) {
|
93
|
-
|
121
|
+
_requireOwned(tokenId);
|
94
122
|
return _uri[tokenId];
|
95
123
|
}
|
96
124
|
|
@@ -1,11 +1,12 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
|
5
5
|
|
6
6
|
interface IChainNft is IERC721Enumerable {
|
7
7
|
function mint(
|
8
8
|
address to,
|
9
|
+
address interceptor,
|
9
10
|
string memory uri
|
10
11
|
) external returns (uint256 tokenId);
|
11
12
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
5
|
|
@@ -9,49 +9,49 @@ import {VersionPart} from "../types/Version.sol";
|
|
9
9
|
import {IChainNft} from "./IChainNft.sol";
|
10
10
|
|
11
11
|
interface IRegistry is IERC165 {
|
12
|
+
|
13
|
+
event LogRegistration(ObjectInfo info);
|
14
|
+
|
15
|
+
event LogServiceNameRegistration(string serviceName, VersionPart majorVersion);
|
16
|
+
|
17
|
+
|
12
18
|
struct ObjectInfo {
|
13
19
|
NftId nftId;
|
14
20
|
NftId parentNftId;
|
15
21
|
ObjectType objectType;
|
22
|
+
bool isInterceptor;
|
16
23
|
address objectAddress;
|
17
24
|
address initialOwner;
|
18
25
|
bytes data;
|
19
|
-
}
|
20
|
-
|
21
|
-
function register(address objectAddress) external returns (NftId nftId);
|
26
|
+
}// TODO delete nftId and initialOwner(if not used) from struct
|
22
27
|
|
23
|
-
function
|
24
|
-
|
25
|
-
ObjectType objectType,
|
26
|
-
address initialOwner,
|
27
|
-
bytes memory data
|
28
|
-
) external returns (NftId nftId);
|
29
|
-
|
30
|
-
function getServiceAddress(string memory serviceName, VersionPart majorVersion) external view returns (address serviceAddress);
|
28
|
+
function register(ObjectInfo memory info) external returns (NftId nftId);
|
29
|
+
|
31
30
|
|
32
31
|
function getObjectCount() external view returns (uint256);
|
33
32
|
|
34
|
-
function getNftId() external view returns (NftId nftId);
|
35
|
-
|
36
|
-
function getNftId(
|
37
|
-
address objectAddress
|
38
|
-
) external view returns (NftId nftId);
|
33
|
+
function getNftId(address objectAddress) external view returns (NftId nftId);
|
39
34
|
|
40
|
-
function
|
41
|
-
NftId nftId
|
42
|
-
) external view returns (ObjectInfo memory info);
|
35
|
+
function ownerOf(NftId nftId) external view returns (address);
|
43
36
|
|
44
|
-
function
|
45
|
-
NftId nftId
|
46
|
-
) external view returns (string memory name);
|
37
|
+
function ownerOf(address contractAddress) external view returns (address);
|
47
38
|
|
48
|
-
function
|
39
|
+
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
|
49
40
|
|
50
|
-
function
|
41
|
+
function getObjectInfo(address object) external view returns (ObjectInfo memory info);
|
51
42
|
|
52
43
|
function isRegistered(NftId nftId) external view returns (bool);
|
53
44
|
|
54
|
-
function isRegistered(address
|
45
|
+
function isRegistered(address contractAddress) external view returns (bool);
|
46
|
+
|
47
|
+
function getServiceName(NftId nftId) external view returns (string memory name);
|
48
|
+
|
49
|
+
function getServiceAddress(
|
50
|
+
string memory serviceName,
|
51
|
+
VersionPart majorVersion
|
52
|
+
) external view returns (address serviceAddress);
|
55
53
|
|
56
54
|
function getChainNft() external view returns (IChainNft);
|
57
|
-
|
55
|
+
|
56
|
+
function getOwner() external view returns (address);
|
57
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {NftId} from "../../contracts/types/NftId.sol";
|
5
|
+
import {ObjectType} from "../../contracts/types/ObjectType.sol";
|
6
|
+
import {RoleId} from "../../contracts/types/RoleId.sol";
|
7
|
+
import {IService} from "../../contracts/instance/base/IService.sol";
|
8
|
+
import {IRegistry} from "../../contracts/registry/IRegistry.sol";
|
9
|
+
|
10
|
+
import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
11
|
+
import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
|
12
|
+
|
13
|
+
interface IRegistryService is IService {
|
14
|
+
|
15
|
+
function registerToken(address tokenAddress) external returns(NftId nftId);
|
16
|
+
|
17
|
+
function registerService(IService service) external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
18
|
+
|
19
|
+
function registerInstance(IRegisterable instance)
|
20
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
21
|
+
|
22
|
+
function registerProduct(IBaseComponent product, address owner)
|
23
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
24
|
+
|
25
|
+
function registerPool(IBaseComponent pool, address owner)
|
26
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
27
|
+
|
28
|
+
function registerDistribution(IBaseComponent distribution, address owner)
|
29
|
+
external returns(IRegistry.ObjectInfo memory info, bytes memory data);
|
30
|
+
|
31
|
+
function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId); // -> easy to upgrade
|
32
|
+
|
33
|
+
function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
34
|
+
}
|
35
|
+
|