@etherisc/gif-next 0.0.2-7b86057-523 → 0.0.2-7bdebe2-893
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -13
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +315 -98
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +668 -141
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +241 -60
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +438 -86
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +489 -163
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +250 -137
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +626 -189
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +427 -178
- 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 +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1562 -814
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +227 -213
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1119 -785
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +463 -167
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +418 -230
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +439 -379
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +355 -104
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +197 -169
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1092 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +672 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +527 -338
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +344 -93
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1400 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +760 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1282 -256
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +430 -87
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +619 -0
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +279 -264
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +743 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +800 -159
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +159 -274
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +701 -118
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +71 -160
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +338 -412
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +299 -128
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1062 -198
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +384 -89
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +231 -223
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +298 -95
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +34 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +70 -193
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -15
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +182 -232
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +287 -94
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +128 -37
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -29
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -160
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +100 -33
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +283 -76
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +115 -58
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +172 -160
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +115 -58
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +190 -210
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- 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 +8 -190
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +209 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
- 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 +17 -4
- 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/NumberId.sol/NumberIdLib.dbg.json +1 -1
- 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 +209 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- 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/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 +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -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/Component.sol +134 -78
- package/contracts/components/Distribution.sol +190 -57
- package/contracts/components/IComponent.sol +62 -15
- package/contracts/components/IDistributionComponent.sol +39 -15
- package/contracts/components/IPoolComponent.sol +84 -31
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +223 -148
- package/contracts/components/Product.sol +221 -115
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +10 -9
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +51 -19
- package/contracts/instance/IInstanceService.sol +33 -11
- package/contracts/instance/Instance.sol +143 -94
- package/contracts/instance/InstanceAccessManager.sol +389 -160
- package/contracts/instance/InstanceReader.sol +85 -12
- package/contracts/instance/InstanceService.sol +273 -224
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +28 -32
- package/contracts/instance/base/KeyValueStore.sol +13 -36
- package/contracts/instance/base/Lifecycle.sol +26 -6
- package/contracts/instance/module/IAccess.sol +22 -16
- package/contracts/instance/module/IBundle.sol +8 -5
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +41 -9
- package/contracts/instance/module/ISetup.sol +7 -20
- package/contracts/instance/service/ApplicationService.sol +356 -0
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +224 -132
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +444 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +344 -19
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +78 -0
- package/contracts/instance/service/IBundleService.sol +93 -22
- package/contracts/instance/service/IClaimService.sol +90 -0
- package/contracts/instance/service/IDistributionService.sol +87 -0
- package/contracts/instance/service/IPolicyService.sol +36 -50
- package/contracts/instance/service/IPoolService.sol +106 -3
- package/contracts/instance/service/PolicyService.sol +166 -346
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +312 -19
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductService.sol +35 -58
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +5 -2
- package/contracts/registry/IRegistryService.sol +12 -11
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +43 -28
- package/contracts/registry/RegistryService.sol +70 -50
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +32 -40
- package/contracts/registry/TokenRegistry.sol +16 -12
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/INftOwnable.sol +11 -10
- package/contracts/shared/IPolicyHolder.sol +40 -0
- package/contracts/shared/IRegisterable.sol +3 -3
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +6 -4
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +64 -85
- package/contracts/shared/PolicyHolder.sol +94 -0
- package/contracts/shared/ProxyManager.sol +100 -25
- package/contracts/shared/Registerable.sol +16 -27
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +32 -20
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/test/TestRegisterable.sol +1 -1
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Amount.sol +80 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +75 -0
- package/contracts/types/DistributorType.sol +2 -2
- package/contracts/types/Fee.sol +13 -5
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +11 -6
- package/contracts/types/PayoutId.sol +82 -0
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +16 -9
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +7 -2
- package/contracts/types/Timestamp.sol +18 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
@@ -5,11 +5,8 @@ import {NftId} from "../types/NftId.sol";
|
|
5
5
|
import {ObjectType} from "../types/ObjectType.sol";
|
6
6
|
import {RoleId} from "../types/RoleId.sol";
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
|
10
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
11
|
-
import {IComponent} from "../components/IComponent.sol";
|
12
8
|
|
9
|
+
import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
|
13
10
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
14
11
|
import {Instance} from "./Instance.sol";
|
15
12
|
import {InstanceReader} from "./InstanceReader.sol";
|
@@ -17,25 +14,50 @@ import {BundleManager} from "./BundleManager.sol";
|
|
17
14
|
|
18
15
|
interface IInstanceService is IService {
|
19
16
|
|
17
|
+
error ErrorInstanceServiceMasterInstanceAlreadySet();
|
18
|
+
error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
|
19
|
+
error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
|
20
|
+
error ErrorInstanceServiceMasterBundleManagerAlreadySet();
|
21
|
+
error ErrorInstanceServiceInstanceAddressZero();
|
22
|
+
|
23
|
+
error ErrorInstanceServiceMasterInstanceReaderNotSet();
|
24
|
+
error ErrorInstanceServiceInstanceReaderAddressZero();
|
25
|
+
error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
|
26
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch();
|
27
|
+
|
28
|
+
error ErrorInstanceServiceInstanceAccessManagerZero();
|
29
|
+
error ErrorInstanceServiceInstanceReaderZero();
|
30
|
+
error ErrorInstanceServiceBundleManagerZero();
|
31
|
+
|
32
|
+
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
33
|
+
error ErrorInstanceServiceBundleManagerAuthorityMismatch();
|
34
|
+
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
35
|
+
error ErrorInstanceServiceBundleMangerInstanceMismatch();
|
36
|
+
|
20
37
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
21
38
|
error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
|
39
|
+
error ErrorInstanceServiceNotInstance(NftId nftId);
|
22
40
|
error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
|
41
|
+
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
23
42
|
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
24
43
|
|
25
|
-
event LogInstanceCloned(address
|
44
|
+
event LogInstanceCloned(address clonedOzAccessManager, address clonedInstanceAccessManager, address clonedInstance, address clonedBundleManager, address clonedInstanceReader, NftId clonedInstanceNftId);
|
26
45
|
|
27
46
|
function createInstanceClone()
|
28
47
|
external
|
29
48
|
returns (
|
30
|
-
InstanceAccessManager clonedAccessManager,
|
31
49
|
Instance clonedInstance,
|
32
|
-
NftId instanceNftId
|
33
|
-
InstanceReader clonedInstanceReader,
|
34
|
-
BundleManager clonedBundleManager
|
50
|
+
NftId instanceNftId
|
35
51
|
);
|
36
52
|
|
37
|
-
function
|
38
|
-
|
53
|
+
function createGifTarget(
|
54
|
+
NftId instanceNftId,
|
55
|
+
address targetAddress,
|
56
|
+
string memory targetName,
|
57
|
+
bytes4[][] memory selectors,
|
58
|
+
RoleId[] memory roles
|
59
|
+
) external;
|
39
60
|
|
61
|
+
function setComponentLocked(bool locked) external;
|
40
62
|
}
|
41
63
|
|
@@ -3,19 +3,22 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
5
|
|
6
|
-
import {Key32
|
6
|
+
import {Key32} from "../types/Key32.sol";
|
7
7
|
import {NftId} from "../types/NftId.sol";
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
|
16
|
-
import {
|
8
|
+
import {ClaimId} from "../types/ClaimId.sol";
|
9
|
+
import {DistributorType} from "../types/DistributorType.sol";
|
10
|
+
import {PayoutId} from "../types/PayoutId.sol";
|
11
|
+
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, DISTRIBUTOR} from "../types/ObjectType.sol";
|
12
|
+
import {ReferralId} from "../types/Referral.sol";
|
13
|
+
import {RiskId} from "../types/RiskId.sol";
|
14
|
+
import {INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
|
15
|
+
import {StateId} from "../types/StateId.sol";
|
16
|
+
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
17
|
+
|
17
18
|
import {Registerable} from "../shared/Registerable.sol";
|
18
19
|
|
20
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
21
|
+
|
19
22
|
import {IInstance} from "./IInstance.sol";
|
20
23
|
import {InstanceReader} from "./InstanceReader.sol";
|
21
24
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
@@ -23,17 +26,13 @@ import {BundleManager} from "./BundleManager.sol";
|
|
23
26
|
|
24
27
|
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
25
28
|
|
26
|
-
import {IAccess} from "./module/IAccess.sol";
|
27
29
|
import {IBundle} from "./module/IBundle.sol";
|
30
|
+
import {IComponents} from "./module/IComponents.sol";
|
31
|
+
import {IDistribution} from "./module/IDistribution.sol";
|
28
32
|
import {IPolicy} from "./module/IPolicy.sol";
|
29
33
|
import {IRisk} from "./module/IRisk.sol";
|
30
34
|
import {ISetup} from "./module/ISetup.sol";
|
31
35
|
|
32
|
-
import {IDistributionService} from "./service/IDistributionService.sol";
|
33
|
-
import {IPoolService} from "./service/IPoolService.sol";
|
34
|
-
import {IProductService} from "./service/IProductService.sol";
|
35
|
-
import {IPolicyService} from "./service/IPolicyService.sol";
|
36
|
-
import {IBundleService} from "./service/IBundleService.sol";
|
37
36
|
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
38
37
|
|
39
38
|
contract Instance is
|
@@ -57,15 +56,28 @@ contract Instance is
|
|
57
56
|
InstanceReader internal _instanceReader;
|
58
57
|
BundleManager internal _bundleManager;
|
59
58
|
|
60
|
-
|
59
|
+
modifier onlyChainNft() {
|
60
|
+
if(msg.sender != getRegistry().getChainNftAddress()) {
|
61
|
+
revert();
|
62
|
+
}
|
63
|
+
_;
|
64
|
+
}
|
65
|
+
|
66
|
+
function initialize(address authority, address registryAddress, address initialOwner)
|
61
67
|
public
|
62
|
-
initializer
|
68
|
+
initializer()
|
63
69
|
{
|
64
|
-
|
70
|
+
if(authority == address(0)) {
|
71
|
+
revert ErrorInstanceInstanceAccessManagerZero();
|
72
|
+
}
|
73
|
+
|
74
|
+
__AccessManaged_init(authority);
|
65
75
|
|
66
|
-
|
76
|
+
IRegistry registry = IRegistry(registryAddress);
|
77
|
+
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
78
|
+
initializeLifecycle();
|
67
79
|
|
68
|
-
|
80
|
+
registerInterface(type(IInstance).interfaceId);
|
69
81
|
}
|
70
82
|
|
71
83
|
//--- ProductSetup ------------------------------------------------------//
|
@@ -95,68 +107,68 @@ contract Instance is
|
|
95
107
|
}
|
96
108
|
|
97
109
|
//--- PoolSetup ------------------------------------------------------//
|
98
|
-
function createPoolSetup(NftId poolNftId,
|
99
|
-
create(_toNftKey32(poolNftId, POOL()), abi.encode(
|
110
|
+
function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
|
111
|
+
create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
|
100
112
|
}
|
101
113
|
|
102
|
-
function updatePoolSetup(NftId poolNftId,
|
103
|
-
update(_toNftKey32(poolNftId, POOL()), abi.encode(
|
114
|
+
function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
|
115
|
+
update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
|
104
116
|
}
|
105
117
|
|
106
118
|
function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
|
107
119
|
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
108
120
|
}
|
109
121
|
|
110
|
-
//--- DistributorType
|
111
|
-
function createDistributorType(
|
112
|
-
create(
|
122
|
+
//--- DistributorType -------------------------------------------------------//
|
123
|
+
function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
124
|
+
create(distributorType.toKey32(), abi.encode(info));
|
113
125
|
}
|
114
126
|
|
115
|
-
function updateDistributorType(
|
116
|
-
update(
|
127
|
+
function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
128
|
+
update(distributorType.toKey32(), abi.encode(info), newState);
|
117
129
|
}
|
118
130
|
|
119
|
-
function updateDistributorTypeState(
|
120
|
-
updateState(
|
131
|
+
function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
|
132
|
+
updateState(distributorType.toKey32(), newState);
|
121
133
|
}
|
122
134
|
|
123
135
|
//--- Distributor -------------------------------------------------------//
|
124
|
-
function createDistributor(NftId
|
125
|
-
create(
|
136
|
+
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
137
|
+
create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
126
138
|
}
|
127
139
|
|
128
|
-
function updateDistributor(NftId
|
129
|
-
update(
|
140
|
+
function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
141
|
+
update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
|
130
142
|
}
|
131
143
|
|
132
|
-
function updateDistributorState(NftId
|
133
|
-
updateState(
|
144
|
+
function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
|
145
|
+
updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
|
134
146
|
}
|
135
147
|
|
136
148
|
//--- Referral ----------------------------------------------------------//
|
137
|
-
function createReferral(
|
138
|
-
create(
|
149
|
+
function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
150
|
+
create(referralId.toKey32(), abi.encode(referralInfo));
|
139
151
|
}
|
140
152
|
|
141
|
-
function updateReferral(
|
142
|
-
update(
|
153
|
+
function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
|
154
|
+
update(referralId.toKey32(), abi.encode(referralInfo), newState);
|
143
155
|
}
|
144
156
|
|
145
|
-
function updateReferralState(
|
146
|
-
updateState(
|
157
|
+
function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
|
158
|
+
updateState(referralId.toKey32(), newState);
|
147
159
|
}
|
148
160
|
|
149
161
|
//--- Bundle ------------------------------------------------------------//
|
150
162
|
function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
|
151
|
-
create(
|
163
|
+
create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
|
152
164
|
}
|
153
165
|
|
154
166
|
function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
|
155
|
-
update(
|
167
|
+
update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
|
156
168
|
}
|
157
169
|
|
158
170
|
function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
|
159
|
-
updateState(
|
171
|
+
updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
|
160
172
|
}
|
161
173
|
|
162
174
|
//--- Risk --------------------------------------------------------------//
|
@@ -172,98 +184,135 @@ contract Instance is
|
|
172
184
|
updateState(riskId.toKey32(), newState);
|
173
185
|
}
|
174
186
|
|
175
|
-
//--- Policy
|
176
|
-
function
|
177
|
-
create(
|
187
|
+
//--- Application (Policy) ----------------------------------------------//
|
188
|
+
function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
|
189
|
+
create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
|
190
|
+
}
|
191
|
+
|
192
|
+
function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
193
|
+
update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
|
194
|
+
}
|
195
|
+
|
196
|
+
function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
|
197
|
+
updateState(_toNftKey32(applicationNftId, POLICY()), newState);
|
178
198
|
}
|
179
199
|
|
200
|
+
//--- Policy ------------------------------------------------------------//
|
180
201
|
function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
181
|
-
update(
|
202
|
+
update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
203
|
+
}
|
204
|
+
|
205
|
+
function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
|
206
|
+
update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
|
182
207
|
}
|
183
208
|
|
184
209
|
function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
|
185
|
-
updateState(
|
210
|
+
updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
186
211
|
}
|
187
212
|
|
188
213
|
//--- Claim -------------------------------------------------------------//
|
189
|
-
function createClaim(NftId policyNftId,
|
190
|
-
create(
|
214
|
+
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
215
|
+
create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
191
216
|
}
|
192
217
|
|
193
|
-
function updateClaim(NftId policyNftId,
|
194
|
-
update(
|
218
|
+
function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
|
219
|
+
update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
|
195
220
|
}
|
196
221
|
|
197
|
-
function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
|
198
|
-
updateState(
|
222
|
+
function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
|
223
|
+
updateState(_toClaimKey32(policyNftId, claimId), newState);
|
199
224
|
}
|
200
225
|
|
201
226
|
//--- Payout ------------------------------------------------------------//
|
202
|
-
function createPayout(NftId policyNftId,
|
203
|
-
create(
|
227
|
+
function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
228
|
+
create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
|
204
229
|
}
|
205
230
|
|
206
|
-
function
|
207
|
-
update(
|
231
|
+
function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
|
232
|
+
update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
|
208
233
|
}
|
209
234
|
|
210
|
-
function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
|
211
|
-
updateState(
|
235
|
+
function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
|
236
|
+
updateState(_toPayoutKey32(policyNftId, payoutId), newState);
|
212
237
|
}
|
213
238
|
|
214
|
-
//---
|
215
|
-
function
|
216
|
-
|
239
|
+
//--- ITransferInterceptor ------------------------------------------------------------//
|
240
|
+
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
241
|
+
assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
|
242
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
217
243
|
}
|
218
244
|
|
219
|
-
function
|
220
|
-
|
245
|
+
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
246
|
+
assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
|
247
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
221
248
|
}
|
222
249
|
|
223
|
-
|
224
|
-
return policyNftId.toKey32(POLICY());
|
225
|
-
}
|
250
|
+
//--- initial setup functions -------------------------------------------//
|
226
251
|
|
227
|
-
function
|
228
|
-
|
252
|
+
function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
|
253
|
+
if(address(_accessManager) != address(0)) {
|
254
|
+
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
255
|
+
}
|
256
|
+
|
257
|
+
if(accessManager.authority() != authority()) {
|
258
|
+
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
259
|
+
}
|
260
|
+
|
261
|
+
_accessManager = accessManager;
|
229
262
|
}
|
230
263
|
|
231
|
-
function
|
232
|
-
|
264
|
+
function setBundleManager(BundleManager bundleManager) external restricted() {
|
265
|
+
if(address(_bundleManager) != address(0)) {
|
266
|
+
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
267
|
+
}
|
268
|
+
|
269
|
+
if(bundleManager.getInstance() != Instance(this)) {
|
270
|
+
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
271
|
+
}
|
272
|
+
|
273
|
+
if(bundleManager.authority() != authority()) {
|
274
|
+
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
275
|
+
}
|
276
|
+
|
277
|
+
_bundleManager = bundleManager;
|
233
278
|
}
|
234
279
|
|
235
|
-
function
|
236
|
-
|
280
|
+
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
281
|
+
if(instanceReader.getInstance() != Instance(this)) {
|
282
|
+
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
283
|
+
}
|
284
|
+
|
285
|
+
_instanceReader = instanceReader;
|
237
286
|
}
|
238
287
|
|
239
|
-
|
240
|
-
|
288
|
+
//--- external view functions -------------------------------------------//
|
289
|
+
|
290
|
+
function getInstanceReader() external view returns (InstanceReader) {
|
291
|
+
return _instanceReader;
|
241
292
|
}
|
242
293
|
|
243
|
-
function
|
244
|
-
return
|
294
|
+
function getBundleManager() external view returns (BundleManager) {
|
295
|
+
return _bundleManager;
|
245
296
|
}
|
246
297
|
|
247
|
-
function
|
248
|
-
|
249
|
-
_instanceReader = instanceReader;
|
298
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
299
|
+
return _accessManager;
|
250
300
|
}
|
251
301
|
|
252
302
|
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
253
303
|
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
254
304
|
}
|
255
305
|
|
256
|
-
|
257
|
-
|
306
|
+
//--- internal view/pure functions --------------------------------------//
|
307
|
+
function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
|
308
|
+
return nftId.toKey32(objectType);
|
258
309
|
}
|
259
|
-
|
260
|
-
function
|
261
|
-
|
262
|
-
require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
|
263
|
-
_bundleManager = bundleManager;
|
310
|
+
|
311
|
+
function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
|
312
|
+
return claimId.toKey32(policyNftId);
|
264
313
|
}
|
265
314
|
|
266
|
-
function
|
267
|
-
return
|
315
|
+
function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
|
316
|
+
return payoutId.toKey32(policyNftId);
|
268
317
|
}
|
269
318
|
}
|