@etherisc/gif-next 0.0.2-2a59cd5-352 → 0.0.2-2aa1035-611
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 +6 -83
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +90 -145
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +145 -233
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +158 -73
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +169 -150
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +350 -180
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +162 -145
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +298 -288
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +95 -218
- 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 +274 -2000
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +183 -203
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +398 -2776
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +491 -127
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +253 -236
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +216 -451
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +184 -121
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2663 -0
- 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 +100 -215
- 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 +56 -73
- 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 +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +164 -379
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +649 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +433 -425
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +244 -105
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1072 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +657 -318
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +270 -115
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +99 -236
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +235 -319
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +373 -158
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +417 -232
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +568 -120
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +518 -0
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +64 -163
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +563 -366
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +220 -121
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +771 -247
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +237 -102
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +988 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +689 -0
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +136 -271
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +186 -107
- 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 +19 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +4 -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 +31 -12
- 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 +28 -277
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +182 -113
- 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 +34 -67
- 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 +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +4 -30
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +4 -30
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -21
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +64 -163
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -150
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +10 -62
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -23
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +171 -88
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +11 -74
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -23
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +72 -203
- 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 +0 -150
- 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 +11 -74
- 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 +90 -253
- 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 +6 -188
- 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 +100 -83
- package/contracts/components/Distribution.sol +22 -46
- package/contracts/components/IComponent.sol +43 -17
- package/contracts/components/IDistributionComponent.sol +1 -30
- package/contracts/components/IPoolComponent.sol +73 -47
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +178 -130
- package/contracts/components/Product.sol +172 -76
- 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 +43 -49
- package/contracts/instance/IInstanceService.sol +32 -12
- package/contracts/instance/Instance.sol +129 -173
- package/contracts/instance/InstanceAccessManager.sol +404 -160
- package/contracts/instance/InstanceAuthorizationsLib.sol +300 -0
- package/contracts/instance/InstanceReader.sol +43 -16
- package/contracts/instance/InstanceService.sol +160 -293
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +208 -0
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +53 -39
- package/contracts/instance/base/KeyValueStore.sol +13 -5
- package/contracts/instance/base/Lifecycle.sol +23 -6
- package/contracts/instance/module/IAccess.sol +21 -14
- 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 -21
- package/contracts/instance/service/ApplicationService.sol +75 -158
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +230 -88
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +239 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +156 -96
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +9 -30
- package/contracts/instance/service/IBundleService.sol +74 -26
- package/contracts/instance/service/IClaimService.sol +92 -0
- package/contracts/instance/service/IDistributionService.sol +26 -6
- package/contracts/instance/service/IPolicyService.sol +89 -38
- package/contracts/instance/service/IPoolService.sol +85 -3
- package/contracts/instance/service/IPricingService.sol +36 -0
- package/contracts/instance/service/PolicyService.sol +358 -305
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolService.sol +246 -19
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/PricingService.sol +275 -0
- package/contracts/instance/service/PricingServiceManager.sol +51 -0
- package/contracts/instance/service/ProductService.sol +37 -60
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/IRegistryService.sol +11 -10
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +23 -20
- package/contracts/registry/RegistryService.sol +56 -47
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +26 -33
- package/contracts/registry/TokenRegistry.sol +13 -10
- package/contracts/shared/ERC165.sol +2 -1
- package/contracts/shared/INftOwnable.sol +4 -9
- package/contracts/shared/IRegistryLinked.sol +0 -3
- package/contracts/shared/IService.sol +4 -4
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +10 -80
- package/contracts/shared/ProxyManager.sol +98 -24
- package/contracts/shared/Registerable.sol +3 -10
- package/contracts/shared/RegistryLinked.sol +10 -26
- package/contracts/shared/Service.sol +29 -17
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/shared/Versionable.sol +1 -90
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Amount.sol +70 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +75 -0
- package/contracts/types/Fee.sol +13 -5
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +12 -7
- 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 +1 -1
- 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/IA.sol/ISharedA.json +0 -37
- 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,19 +5,18 @@ 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";
|
|
16
13
|
import {BundleManager} from "./BundleManager.sol";
|
|
14
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
|
17
15
|
|
|
18
16
|
interface IInstanceService is IService {
|
|
19
17
|
|
|
20
18
|
error ErrorInstanceServiceMasterInstanceAlreadySet();
|
|
19
|
+
error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
|
|
21
20
|
error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
|
|
22
21
|
error ErrorInstanceServiceMasterBundleManagerAlreadySet();
|
|
23
22
|
error ErrorInstanceServiceInstanceAddressZero();
|
|
@@ -27,33 +26,54 @@ interface IInstanceService is IService {
|
|
|
27
26
|
error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
|
|
28
27
|
error ErrorInstanceServiceInstanceReaderInstanceMismatch();
|
|
29
28
|
|
|
30
|
-
error
|
|
29
|
+
error ErrorInstanceServiceOzAccessManagerZero();
|
|
30
|
+
error ErrorInstanceServiceInstanceAccessManagerZero();
|
|
31
31
|
error ErrorInstanceServiceInstanceReaderZero();
|
|
32
32
|
error ErrorInstanceServiceBundleManagerZero();
|
|
33
|
+
error ErrorInstanceServiceInstanceStoreZero();
|
|
33
34
|
|
|
34
35
|
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
|
36
|
+
error ErrorInstanceServiceBundleManagerAuthorityMismatch();
|
|
35
37
|
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
|
36
38
|
error ErrorInstanceServiceBundleMangerInstanceMismatch();
|
|
39
|
+
error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
|
|
37
40
|
|
|
38
41
|
error ErrorInstanceServiceRequestUnauhorized(address caller);
|
|
39
42
|
error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
|
|
43
|
+
error ErrorInstanceServiceNotInstance(NftId nftId);
|
|
40
44
|
error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
|
|
45
|
+
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
|
41
46
|
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
|
42
47
|
|
|
43
|
-
event LogInstanceCloned(
|
|
48
|
+
event LogInstanceCloned(
|
|
49
|
+
address clonedOzAccessManager,
|
|
50
|
+
address clonedInstanceAccessManager,
|
|
51
|
+
address clonedInstance,
|
|
52
|
+
address clonedInstanceStore,
|
|
53
|
+
address clonedBundleManager,
|
|
54
|
+
address clonedInstanceReader,
|
|
55
|
+
NftId clonedInstanceNftId
|
|
56
|
+
);
|
|
44
57
|
|
|
45
58
|
function createInstanceClone()
|
|
46
59
|
external
|
|
47
60
|
returns (
|
|
48
|
-
|
|
61
|
+
AccessManagerUpgradeableInitializeable clonedOzAccessManager,
|
|
62
|
+
InstanceAccessManager clonedInstanceAccessManager,
|
|
49
63
|
Instance clonedInstance,
|
|
50
64
|
NftId instanceNftId,
|
|
51
65
|
InstanceReader clonedInstanceReader,
|
|
52
|
-
BundleManager clonedBundleManager
|
|
66
|
+
BundleManager clonedBundleManager,
|
|
67
|
+
InstanceStore clonedInstanceStore
|
|
53
68
|
);
|
|
54
69
|
|
|
55
|
-
function
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
70
|
+
function createGifTarget(
|
|
71
|
+
NftId instanceNftId,
|
|
72
|
+
address targetAddress,
|
|
73
|
+
string memory targetName,
|
|
74
|
+
bytes4[][] memory selectors,
|
|
75
|
+
RoleId[] memory roles
|
|
76
|
+
) external;
|
|
59
77
|
|
|
78
|
+
function setComponentLocked(bool locked) external;
|
|
79
|
+
}
|
|
@@ -3,28 +3,32 @@ 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 {
|
|
8
|
+
import {RiskId} from "../types/RiskId.sol";
|
|
9
9
|
import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
10
|
+
import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
|
|
11
|
+
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
|
12
|
+
import {ClaimId} from "../types/ClaimId.sol";
|
|
13
|
+
import {ReferralId} from "../types/Referral.sol";
|
|
14
|
+
import {PayoutId} from "../types/PayoutId.sol";
|
|
15
|
+
import {DistributorType} from "../types/DistributorType.sol";
|
|
15
16
|
|
|
16
|
-
import {ERC165} from "../shared/ERC165.sol";
|
|
17
17
|
import {Registerable} from "../shared/Registerable.sol";
|
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
19
|
+
|
|
20
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
|
18
21
|
|
|
19
22
|
import {IInstance} from "./IInstance.sol";
|
|
20
23
|
import {InstanceReader} from "./InstanceReader.sol";
|
|
21
24
|
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
|
22
25
|
import {BundleManager} from "./BundleManager.sol";
|
|
26
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
|
23
27
|
|
|
24
28
|
import {KeyValueStore} from "./base/KeyValueStore.sol";
|
|
25
29
|
|
|
26
|
-
import {IAccess} from "./module/IAccess.sol";
|
|
27
30
|
import {IBundle} from "./module/IBundle.sol";
|
|
31
|
+
import {IComponents} from "./module/IComponents.sol";
|
|
28
32
|
import {IDistribution} from "./module/IDistribution.sol";
|
|
29
33
|
import {IPolicy} from "./module/IPolicy.sol";
|
|
30
34
|
import {IRisk} from "./module/IRisk.sol";
|
|
@@ -35,207 +39,180 @@ import {IPoolService} from "./service/IPoolService.sol";
|
|
|
35
39
|
import {IProductService} from "./service/IProductService.sol";
|
|
36
40
|
import {IPolicyService} from "./service/IPolicyService.sol";
|
|
37
41
|
import {IBundleService} from "./service/IBundleService.sol";
|
|
38
|
-
import {VersionPart, VersionPartLib} from "../types/Version.sol";
|
|
39
42
|
|
|
40
43
|
contract Instance is
|
|
41
44
|
IInstance,
|
|
42
45
|
AccessManagedUpgradeable,
|
|
43
|
-
Registerable
|
|
44
|
-
KeyValueStore
|
|
46
|
+
Registerable
|
|
45
47
|
{
|
|
48
|
+
/* error ErrorInstanceInstanceReaderInstanceMismatch(address expectedInstance, address foundInstance);
|
|
46
49
|
|
|
47
|
-
|
|
50
|
+
error InstanceErrorBundleManagerAlreadySet();
|
|
51
|
+
error InstanceErrorBundleManagerAuthorityMismatch();
|
|
52
|
+
error InstanceErrorBundleManagerInstanceMismatch(address expectedInstance, address foundInstance);
|
|
53
|
+
|
|
54
|
+
error InstanceErrorAccessManagerAlreadySet();
|
|
55
|
+
error InstanceErrorAccessManagerAuthorityMismatch();
|
|
48
56
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
|
57
|
+
error InstanceErrorInstanceStoreAlreadySet();
|
|
58
|
+
error InstanceErrorInstanceStoreAuthorityMismatch();*/
|
|
52
59
|
|
|
53
|
-
|
|
60
|
+
uint256 public constant GIF_MAJOR_VERSION = 3;
|
|
54
61
|
|
|
55
62
|
bool private _initialized;
|
|
56
63
|
|
|
57
64
|
InstanceAccessManager internal _accessManager;
|
|
58
65
|
InstanceReader internal _instanceReader;
|
|
59
66
|
BundleManager internal _bundleManager;
|
|
67
|
+
InstanceStore internal _instanceStore;
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
modifier onlyChainNft() {
|
|
70
|
+
if(msg.sender != getRegistry().getChainNftAddress()) {
|
|
71
|
+
revert();
|
|
72
|
+
}
|
|
73
|
+
_;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function initialize(address authority, address registryAddress, address initialOwner)
|
|
77
|
+
external
|
|
63
78
|
initializer()
|
|
64
79
|
{
|
|
65
|
-
__AccessManaged_init(
|
|
80
|
+
__AccessManaged_init(authority);
|
|
66
81
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
//--- ProductSetup ------------------------------------------------------//
|
|
72
|
-
function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
|
|
73
|
-
create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
|
|
77
|
-
update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
|
|
81
|
-
updateState(_toNftKey32(productNftId, PRODUCT()), newState);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
//--- DistributionSetup ------------------------------------------------------//
|
|
85
|
-
function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
|
|
86
|
-
create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
|
|
90
|
-
update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
|
|
94
|
-
updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
|
|
95
|
-
}
|
|
82
|
+
IRegistry registry = IRegistry(registryAddress);
|
|
83
|
+
initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
|
|
96
84
|
|
|
97
|
-
|
|
98
|
-
function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
|
|
99
|
-
create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
|
|
103
|
-
update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
|
|
107
|
-
updateState(_toNftKey32(poolNftId, POOL()), newState);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
//--- DistributorType -------------------------------------------------------//
|
|
111
|
-
function createDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info) external restricted() {
|
|
112
|
-
create(distributorKey, abi.encode(info));
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function updateDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
|
|
116
|
-
update(distributorKey, abi.encode(info), newState);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function updateDistributorTypeState(Key32 distributorKey, StateId newState) external restricted() {
|
|
120
|
-
updateState(distributorKey, newState);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
//--- Distributor -------------------------------------------------------//
|
|
124
|
-
function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external restricted() {
|
|
125
|
-
create(toDistributorKey32(nftId), abi.encode(info));
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
|
|
129
|
-
update(toDistributorKey32(nftId), abi.encode(info), newState);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function updateDistributorState(NftId nftId, StateId newState) external restricted() {
|
|
133
|
-
updateState(toDistributorKey32(nftId), newState);
|
|
85
|
+
registerInterface(type(IInstance).interfaceId);
|
|
134
86
|
}
|
|
135
87
|
|
|
136
|
-
//---
|
|
137
|
-
function createReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo) external restricted() {
|
|
138
|
-
create(referralKey, abi.encode(referralInfo));
|
|
139
|
-
}
|
|
88
|
+
//--- Roles ------------------------------------------------------------//
|
|
140
89
|
|
|
141
|
-
function
|
|
142
|
-
|
|
90
|
+
function createRole(string memory roleName, string memory adminName)
|
|
91
|
+
external
|
|
92
|
+
restricted // INSTANCE_OWNER_ROLE
|
|
93
|
+
returns (RoleId roleId, RoleId admin)
|
|
94
|
+
{
|
|
95
|
+
(roleId, admin) = _accessManager.createRole(roleName, adminName);
|
|
143
96
|
}
|
|
144
97
|
|
|
145
|
-
function
|
|
146
|
-
|
|
98
|
+
function grantRole(RoleId roleId, address account)
|
|
99
|
+
external
|
|
100
|
+
restricted // INSTANCE_OWNER_ROLE
|
|
101
|
+
{
|
|
102
|
+
_accessManager.grantRole(roleId, account);
|
|
147
103
|
}
|
|
148
104
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
105
|
+
function revokeRole(RoleId roleId, address account)
|
|
106
|
+
external
|
|
107
|
+
restricted // INSTANCE_OWNER_ROLE
|
|
108
|
+
{
|
|
109
|
+
_accessManager.revokeRole(roleId, account);
|
|
152
110
|
}
|
|
153
111
|
|
|
154
|
-
|
|
155
|
-
update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
|
|
156
|
-
}
|
|
112
|
+
//--- Targets ------------------------------------------------------------//
|
|
157
113
|
|
|
158
|
-
function
|
|
159
|
-
|
|
114
|
+
function createTarget(address target, string memory name)
|
|
115
|
+
external
|
|
116
|
+
restricted // INSTANCE_OWNER_ROLE
|
|
117
|
+
{
|
|
118
|
+
_accessManager.createTarget(target, name);
|
|
160
119
|
}
|
|
161
120
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
121
|
+
function setTargetFunctionRole(
|
|
122
|
+
string memory targetName,
|
|
123
|
+
bytes4[] calldata selectors,
|
|
124
|
+
RoleId roleId
|
|
125
|
+
)
|
|
126
|
+
external
|
|
127
|
+
restricted // INSTANCE_OWNER_ROLE
|
|
128
|
+
{
|
|
129
|
+
_accessManager.setTargetFunctionRole(targetName, selectors, roleId);
|
|
165
130
|
}
|
|
166
131
|
|
|
167
|
-
function
|
|
168
|
-
|
|
132
|
+
function setTargetLocked(address target, bool locked)
|
|
133
|
+
external
|
|
134
|
+
restricted // INSTANCE_OWNER_ROLE
|
|
135
|
+
{
|
|
136
|
+
_accessManager.setTargetLockedByInstance(target, locked);
|
|
169
137
|
}
|
|
170
138
|
|
|
171
|
-
|
|
172
|
-
updateState(riskId.toKey32(), newState);
|
|
173
|
-
}
|
|
139
|
+
//--- ITransferInterceptor ------------------------------------------------------------//
|
|
174
140
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
141
|
+
function nftMint(address to, uint256 tokenId) external onlyChainNft {
|
|
142
|
+
assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
|
|
143
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
|
178
144
|
}
|
|
179
145
|
|
|
180
|
-
function
|
|
181
|
-
|
|
146
|
+
function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
|
|
147
|
+
assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
|
|
148
|
+
assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
|
|
182
149
|
}
|
|
183
150
|
|
|
184
|
-
|
|
185
|
-
updateState(toPolicyKey32(policyNftId), newState);
|
|
186
|
-
}
|
|
151
|
+
//--- initial setup functions -------------------------------------------//
|
|
187
152
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
153
|
+
function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
|
|
154
|
+
if(address(_accessManager) != address(0)) {
|
|
155
|
+
revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
|
|
156
|
+
}
|
|
157
|
+
if(accessManager.authority() != authority()) {
|
|
158
|
+
revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
|
|
159
|
+
}
|
|
160
|
+
_accessManager = accessManager;
|
|
191
161
|
}
|
|
192
|
-
|
|
193
|
-
function
|
|
194
|
-
|
|
162
|
+
|
|
163
|
+
function setBundleManager(BundleManager bundleManager) external restricted() {
|
|
164
|
+
if(address(_bundleManager) != address(0)) {
|
|
165
|
+
revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
|
|
166
|
+
}
|
|
167
|
+
if(bundleManager.getInstance() != Instance(this)) {
|
|
168
|
+
revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
|
|
169
|
+
}
|
|
170
|
+
if(bundleManager.authority() != authority()) {
|
|
171
|
+
revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
|
|
172
|
+
}
|
|
173
|
+
_bundleManager = bundleManager;
|
|
195
174
|
}
|
|
196
175
|
|
|
197
|
-
function
|
|
198
|
-
|
|
199
|
-
|
|
176
|
+
function setInstanceReader(InstanceReader instanceReader) external restricted() {
|
|
177
|
+
if(instanceReader.getInstance() != Instance(this)) {
|
|
178
|
+
revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
|
|
179
|
+
}
|
|
200
180
|
|
|
201
|
-
|
|
202
|
-
function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
|
|
203
|
-
create(toPolicyKey32(policyNftId), abi.encode(payout));
|
|
181
|
+
_instanceReader = instanceReader;
|
|
204
182
|
}
|
|
205
183
|
|
|
206
|
-
|
|
207
|
-
update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
|
|
208
|
-
}
|
|
184
|
+
//--- external view functions -------------------------------------------//
|
|
209
185
|
|
|
210
|
-
function
|
|
211
|
-
|
|
186
|
+
function getInstanceReader() external view returns (InstanceReader) {
|
|
187
|
+
return _instanceReader;
|
|
212
188
|
}
|
|
213
189
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
return nftId.toKey32(objectType);
|
|
190
|
+
function getBundleManager() external view returns (BundleManager) {
|
|
191
|
+
return _bundleManager;
|
|
217
192
|
}
|
|
218
193
|
|
|
219
|
-
function
|
|
220
|
-
return
|
|
194
|
+
function getInstanceAccessManager() external view returns (InstanceAccessManager) {
|
|
195
|
+
return _accessManager;
|
|
221
196
|
}
|
|
222
197
|
|
|
223
|
-
function
|
|
224
|
-
|
|
198
|
+
function setInstanceStore(InstanceStore instanceStore) external restricted {
|
|
199
|
+
if(address(_instanceStore) != address(0)) {
|
|
200
|
+
revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
|
|
201
|
+
}
|
|
202
|
+
if(instanceStore.authority() != authority()) {
|
|
203
|
+
revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
|
|
204
|
+
}
|
|
205
|
+
_instanceStore = instanceStore;
|
|
225
206
|
}
|
|
226
207
|
|
|
227
|
-
function
|
|
228
|
-
return
|
|
208
|
+
function getInstanceStore() external view returns (InstanceStore) {
|
|
209
|
+
return _instanceStore;
|
|
229
210
|
}
|
|
230
211
|
|
|
231
|
-
function
|
|
232
|
-
return
|
|
212
|
+
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
|
213
|
+
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
|
233
214
|
}
|
|
234
215
|
|
|
235
|
-
function toDistributorKey32(NftId distNftId) public pure returns (Key32) {
|
|
236
|
-
return distNftId.toKey32(DISTRIBUTOR());
|
|
237
|
-
}
|
|
238
|
-
|
|
239
216
|
function getDistributionService() external view returns (IDistributionService) {
|
|
240
217
|
return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
|
|
241
218
|
}
|
|
@@ -256,26 +233,5 @@ contract Instance is
|
|
|
256
233
|
return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
|
|
257
234
|
}
|
|
258
235
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
_instanceReader = instanceReader;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
function getMajorVersion() external pure returns (VersionPart majorVersion) {
|
|
265
|
-
return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
function getInstanceReader() external view returns (InstanceReader) {
|
|
269
|
-
return _instanceReader;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
function setBundleManager(BundleManager bundleManager) external restricted() {
|
|
273
|
-
require(address(_bundleManager) == address(0), "BundleManager is set");
|
|
274
|
-
require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
|
|
275
|
-
_bundleManager = bundleManager;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
function getBundleManager() external view returns (BundleManager) {
|
|
279
|
-
return _bundleManager;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
236
|
+
//--- internal view/pure functions --------------------------------------//
|
|
237
|
+
}
|