@etherisc/gif-next 0.0.2-fd275d2-234 → 0.0.2-fd4931b-974
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -14
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +969 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -104
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +299 -1344
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +356 -181
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +453 -3116
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +612 -181
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +485 -337
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +493 -400
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +330 -127
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +284 -360
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1148 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +231 -204
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +701 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +244 -383
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +989 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +140 -86
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1391 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +345 -121
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +368 -222
- 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 +434 -197
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +298 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +438 -333
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +324 -136
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1112 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +449 -67
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +890 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +196 -216
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +344 -165
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +699 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
- 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 +84 -178
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +314 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -53
- 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 +185 -165
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1770 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +626 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2500 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +844 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +960 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +694 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +308 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +16 -3
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +148 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +263 -0
- package/contracts/distribution/DistributionService.sol +298 -0
- package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +20 -20
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +24 -50
- package/contracts/instance/IInstance.sol +57 -36
- package/contracts/instance/IInstanceService.sol +65 -14
- package/contracts/instance/Instance.sol +147 -373
- package/contracts/instance/InstanceAccessManager.sol +432 -177
- package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
- package/contracts/instance/InstanceReader.sol +136 -85
- package/contracts/instance/InstanceService.sol +304 -169
- package/contracts/instance/InstanceServiceManager.sol +12 -25
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +17 -30
- package/contracts/instance/module/IAccess.sol +37 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +147 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +424 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +437 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +93 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +473 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +14 -0
- package/contracts/registry/IRegistry.sol +65 -28
- package/contracts/registry/IRegistryService.sol +46 -28
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +353 -238
- package/contracts/registry/RegistryAccessManager.sol +167 -0
- package/contracts/registry/RegistryService.sol +165 -195
- package/contracts/registry/RegistryServiceManager.sol +34 -42
- package/contracts/registry/ReleaseManager.sol +530 -0
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -53
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/shared/Component.sol +286 -0
- package/contracts/shared/ComponentService.sol +595 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +111 -0
- package/contracts/shared/ERC165.sol +14 -12
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +91 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +12 -11
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +7 -4
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InstanceLinkedComponent.sol +145 -0
- package/contracts/shared/KeyValueStore.sol +130 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
- package/contracts/shared/NftIdSetManager.sol +69 -0
- package/contracts/shared/NftOwnable.sol +64 -80
- package/contracts/shared/PolicyHolder.sol +101 -0
- package/contracts/shared/ProxyManager.sol +126 -25
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +45 -23
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +113 -0
- package/contracts/staking/IStakingService.sol +122 -0
- package/contracts/staking/Staking.sol +348 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +92 -0
- package/contracts/staking/StakingService.sol +294 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/TargetManagerLib.sol +141 -0
- package/contracts/type/Amount.sol +114 -0
- package/contracts/{types → type}/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +32 -22
- package/contracts/{types → type}/NftId.sol +17 -11
- package/contracts/{types → type}/NftIdSet.sol +1 -1
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +4 -0
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +63 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +1 -0
- package/package.json +3 -3
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -729
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -91
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -247
- package/contracts/components/Product.sol +0 -289
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/AccessManagerSimple.sol +0 -692
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/base/ComponentServiceBase.sol +0 -134
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -88
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -43
- package/contracts/instance/service/IProductService.sol +0 -110
- package/contracts/instance/service/PoolService.sol +0 -206
- package/contracts/instance/service/PoolServiceManager.sol +0 -54
- package/contracts/instance/service/ProductService.sol +0 -561
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/AddressSet.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -0,0 +1,173 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {
|
5
|
+
RoleId,
|
6
|
+
PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE,
|
7
|
+
APPLICATION_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, COMPONENT_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, INSTANCE_SERVICE_ROLE, POLICY_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, STAKING_SERVICE_ROLE
|
8
|
+
} from "../../contracts/type/RoleId.sol";
|
9
|
+
|
10
|
+
import {
|
11
|
+
ObjectType,
|
12
|
+
REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE
|
13
|
+
} from "../../contracts/type/ObjectType.sol";
|
14
|
+
|
15
|
+
import {ComponentService} from "../shared/ComponentService.sol";
|
16
|
+
import {InstanceService} from "../instance/InstanceService.sol";
|
17
|
+
import {RegistryService} from "./RegistryService.sol";
|
18
|
+
|
19
|
+
library ServiceAuthorizationsLib {
|
20
|
+
|
21
|
+
struct ServiceAuthorization {
|
22
|
+
RoleId[] authorizedRole;
|
23
|
+
bytes4[][] authorizedSelectors;
|
24
|
+
}
|
25
|
+
|
26
|
+
/// @dev returns the full list of gif service domains for this release.
|
27
|
+
/// services need to be registered for the release in revers order of this list.
|
28
|
+
function getDomains()
|
29
|
+
external
|
30
|
+
pure
|
31
|
+
returns(
|
32
|
+
ObjectType[] memory domain
|
33
|
+
)
|
34
|
+
{
|
35
|
+
domain = new ObjectType[](11);
|
36
|
+
domain[0] = POLICY();
|
37
|
+
domain[1] = APPLICATION();
|
38
|
+
domain[2] = CLAIM();
|
39
|
+
domain[3] = PRODUCT();
|
40
|
+
domain[4] = POOL();
|
41
|
+
domain[5] = BUNDLE();
|
42
|
+
domain[6] = PRICE();
|
43
|
+
domain[7] = DISTRIBUTION();
|
44
|
+
domain[8] = COMPONENT();
|
45
|
+
domain[9] = INSTANCE();
|
46
|
+
domain[10] = STAKING();
|
47
|
+
}
|
48
|
+
|
49
|
+
|
50
|
+
/// @dev given the target domain this function returns the list of authorized function signatures per authorized domain.
|
51
|
+
function getAuthorizations(ObjectType domain)
|
52
|
+
external
|
53
|
+
pure
|
54
|
+
returns(
|
55
|
+
ServiceAuthorization memory authorizations
|
56
|
+
)
|
57
|
+
{
|
58
|
+
if(domain == REGISTRY()) { return _getRegistryServiceAuthorization(); }
|
59
|
+
if(domain == INSTANCE()) { return _getInstanceServiceAuthorization(); }
|
60
|
+
if(domain == COMPONENT()) { return _getComponentServiceAuthorization(); }
|
61
|
+
|
62
|
+
// disallows access to all functions with a restricted modifier
|
63
|
+
return _getDefaultAuthorizations();
|
64
|
+
}
|
65
|
+
|
66
|
+
|
67
|
+
/// @dev registry service authorization.
|
68
|
+
/// returns all authorized function signatures per authorized domain.
|
69
|
+
/// all listed functions MUST be implemented with a restricted modifier
|
70
|
+
function _getRegistryServiceAuthorization()
|
71
|
+
internal
|
72
|
+
pure
|
73
|
+
returns (ServiceAuthorization memory authz)
|
74
|
+
{
|
75
|
+
uint8 authorizedRoles = 8;
|
76
|
+
authz.authorizedRole = new RoleId[](authorizedRoles);
|
77
|
+
authz.authorizedSelectors = new bytes4[][](authorizedRoles);
|
78
|
+
|
79
|
+
// TODO role ids need to have a stable setup, this is not the case currently
|
80
|
+
authz.authorizedRole[0] = APPLICATION_SERVICE_ROLE();
|
81
|
+
authz.authorizedSelectors[0] = new bytes4[](1);
|
82
|
+
authz.authorizedSelectors[0][0] = RegistryService.registerPolicy.selector;
|
83
|
+
|
84
|
+
authz.authorizedRole[1] = POOL_SERVICE_ROLE();
|
85
|
+
authz.authorizedSelectors[1] = new bytes4[](1);
|
86
|
+
authz.authorizedSelectors[1][0] = RegistryService.registerPool.selector;
|
87
|
+
|
88
|
+
authz.authorizedRole[2] = BUNDLE_SERVICE_ROLE();
|
89
|
+
authz.authorizedSelectors[2] = new bytes4[](1);
|
90
|
+
authz.authorizedSelectors[2][0] = RegistryService.registerBundle.selector;
|
91
|
+
|
92
|
+
authz.authorizedRole[3] = DISTRIBUTION_SERVICE_ROLE();
|
93
|
+
authz.authorizedSelectors[3] = new bytes4[](2);
|
94
|
+
authz.authorizedSelectors[3][0] = RegistryService.registerDistribution.selector;
|
95
|
+
authz.authorizedSelectors[3][1] = RegistryService.registerDistributor.selector;
|
96
|
+
|
97
|
+
authz.authorizedRole[4] = COMPONENT_SERVICE_ROLE();
|
98
|
+
authz.authorizedSelectors[4] = new bytes4[](1);
|
99
|
+
authz.authorizedSelectors[4][0] = RegistryService.registerComponent.selector;
|
100
|
+
|
101
|
+
authz.authorizedRole[5] = INSTANCE_SERVICE_ROLE();
|
102
|
+
authz.authorizedSelectors[5] = new bytes4[](1);
|
103
|
+
authz.authorizedSelectors[5][0] = RegistryService.registerInstance.selector;
|
104
|
+
|
105
|
+
authz.authorizedRole[6] = STAKING_SERVICE_ROLE();
|
106
|
+
authz.authorizedSelectors[6] = new bytes4[](1);
|
107
|
+
authz.authorizedSelectors[6][0] = RegistryService.registerStaking.selector;
|
108
|
+
|
109
|
+
authz.authorizedRole[7] = PRODUCT_SERVICE_ROLE();
|
110
|
+
authz.authorizedSelectors[7] = new bytes4[](1);
|
111
|
+
authz.authorizedSelectors[7][0] = RegistryService.registerProduct.selector;
|
112
|
+
}
|
113
|
+
|
114
|
+
|
115
|
+
/// @dev instance service authorization.
|
116
|
+
/// returns all authorized function signatures per authorized domain.
|
117
|
+
/// all listed functions MUST be implemented with a restricted modifier
|
118
|
+
function _getInstanceServiceAuthorization()
|
119
|
+
internal
|
120
|
+
pure
|
121
|
+
returns (ServiceAuthorization memory authz)
|
122
|
+
{
|
123
|
+
uint8 authorizedRoles = 1;
|
124
|
+
authz.authorizedRole = new RoleId[](authorizedRoles);
|
125
|
+
authz.authorizedSelectors = new bytes4[][](authorizedRoles);
|
126
|
+
|
127
|
+
authz.authorizedRole[0] = COMPONENT_SERVICE_ROLE();
|
128
|
+
authz.authorizedSelectors[0] = new bytes4[](1);
|
129
|
+
authz.authorizedSelectors[0][0] = InstanceService.createComponentTarget.selector;
|
130
|
+
}
|
131
|
+
|
132
|
+
|
133
|
+
/// @dev component service authorization.
|
134
|
+
/// returns all authorized function signatures per authorized domain.
|
135
|
+
/// all listed functions MUST be implemented with a restricted modifier
|
136
|
+
function _getComponentServiceAuthorization()
|
137
|
+
internal
|
138
|
+
pure
|
139
|
+
returns (ServiceAuthorization memory authz)
|
140
|
+
{
|
141
|
+
uint8 authorizedRoles = 4;
|
142
|
+
authz.authorizedRole = new RoleId[](authorizedRoles);
|
143
|
+
authz.authorizedSelectors = new bytes4[][](authorizedRoles);
|
144
|
+
|
145
|
+
authz.authorizedRole[0] = POLICY_SERVICE_ROLE();
|
146
|
+
authz.authorizedSelectors[0] = new bytes4[](1);
|
147
|
+
authz.authorizedSelectors[0][0] = ComponentService.increaseProductFees.selector;
|
148
|
+
|
149
|
+
authz.authorizedRole[1] = DISTRIBUTION_SERVICE_ROLE();
|
150
|
+
authz.authorizedSelectors[1] = new bytes4[](1);
|
151
|
+
authz.authorizedSelectors[1][0] = ComponentService.increaseDistributionBalance.selector;
|
152
|
+
|
153
|
+
authz.authorizedRole[2] = POOL_SERVICE_ROLE();
|
154
|
+
authz.authorizedSelectors[2] = new bytes4[](1);
|
155
|
+
authz.authorizedSelectors[2][0] = ComponentService.increasePoolBalance.selector;
|
156
|
+
|
157
|
+
authz.authorizedRole[3] = BUNDLE_SERVICE_ROLE();
|
158
|
+
authz.authorizedSelectors[3] = new bytes4[](1);
|
159
|
+
authz.authorizedSelectors[3][0] = ComponentService.increaseBundleBalance.selector;
|
160
|
+
}
|
161
|
+
|
162
|
+
|
163
|
+
function _getDefaultAuthorizations()
|
164
|
+
internal
|
165
|
+
pure
|
166
|
+
returns (ServiceAuthorization memory authz)
|
167
|
+
{
|
168
|
+
uint8 authorizedRoles = 0;
|
169
|
+
authz.authorizedRole = new RoleId[](authorizedRoles);
|
170
|
+
authz.authorizedSelectors = new bytes4[][](authorizedRoles);
|
171
|
+
}
|
172
|
+
}
|
173
|
+
|
@@ -6,106 +6,314 @@ import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165C
|
|
6
6
|
|
7
7
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
8
8
|
import {IRegistry} from "./IRegistry.sol";
|
9
|
-
import {Version, VersionPart, VersionLib, VersionPartLib} from "../types/Version.sol";
|
10
9
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
10
|
+
import {ReleaseManager} from "./ReleaseManager.sol";
|
11
|
+
import {REGISTRY} from "../type/ObjectType.sol";
|
12
|
+
import {VersionPart} from "../type/Version.sol";
|
11
13
|
|
12
14
|
/// @title contract to register token per GIF major release.
|
13
15
|
contract TokenRegistry is
|
14
16
|
NftOwnable
|
15
17
|
{
|
18
|
+
event LogTokenRegistryTokenRegistered(uint256 chainId, address token, uint256 decimals, string symbol);
|
19
|
+
event LogTokenRegistryTokenGlobalStateSet(uint256 chainId, address token, bool active);
|
20
|
+
event LogTokenRegistryTokenStateSet(uint256 chainId, address token, VersionPart majorVersion, bool active);
|
16
21
|
|
17
|
-
|
22
|
+
error ErrorTokenRegistryChainIdZero();
|
23
|
+
error ErrorTokenRegistryTokenAddressZero();
|
18
24
|
|
19
|
-
|
20
|
-
|
25
|
+
error ErrorTokenRegistryNotRemoteToken(uint256 chainId, address token);
|
26
|
+
error ErrorTokenRegistryTokenAlreadyRegistered(uint256 chainId, address token);
|
27
|
+
error ErrorTokenRegistryTokenNotContract(uint256 chainId, address token);
|
28
|
+
error ErrorTokenRegistryTokenNotErc20(uint256 chainId, address token);
|
21
29
|
|
22
|
-
error
|
23
|
-
error
|
24
|
-
error TokenDecimalsZero();
|
25
|
-
error TokenMajorVersionInvalid(VersionPart majorVersion);
|
30
|
+
error ErrorTokenRegistryTokenNotRegistered(uint256 chainId, address token);
|
31
|
+
error ErrorTokenRegistryMajorVersionInvalid(VersionPart majorVersion);
|
26
32
|
|
27
|
-
|
28
|
-
|
29
|
-
|
33
|
+
struct TokenInfo {
|
34
|
+
uint256 chainId;
|
35
|
+
address token;
|
36
|
+
uint8 decimals;
|
37
|
+
string symbol;
|
38
|
+
bool active;
|
39
|
+
}
|
40
|
+
|
41
|
+
mapping(uint256 chainId => mapping(address token => TokenInfo info)) internal _tokenInfo;
|
42
|
+
mapping(uint256 chainId => mapping(address token => mapping(VersionPart majorVersion => bool isActive))) internal _active;
|
43
|
+
TokenInfo [] internal _token;
|
44
|
+
|
45
|
+
ReleaseManager internal _releaseManager;
|
46
|
+
IERC20Metadata internal _dipToken;
|
47
|
+
|
48
|
+
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
49
|
+
modifier onlyRegisteredToken(uint256 chainId, address token) {
|
50
|
+
if (!isRegistered(chainId, token)) {
|
51
|
+
revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
|
52
|
+
}
|
53
|
+
_;
|
54
|
+
}
|
55
|
+
|
56
|
+
constructor(
|
57
|
+
address registry,
|
58
|
+
address dipToken
|
59
|
+
)
|
60
|
+
{
|
61
|
+
initialize(registry, dipToken);
|
62
|
+
}
|
30
63
|
|
31
|
-
|
32
|
-
|
33
|
-
|
64
|
+
function initialize(
|
65
|
+
address registry,
|
66
|
+
address dipToken
|
67
|
+
)
|
68
|
+
public
|
69
|
+
initializer()
|
70
|
+
{
|
71
|
+
initializeNftOwnable(msg.sender, registry);
|
72
|
+
|
73
|
+
// initialize release manager
|
74
|
+
_releaseManager = ReleaseManager(msg.sender);
|
75
|
+
|
76
|
+
// set dip token
|
77
|
+
_dipToken = IERC20Metadata(dipToken);
|
78
|
+
|
79
|
+
// register dip token
|
80
|
+
uint256 chainId = block.chainid;
|
81
|
+
_registerToken(
|
82
|
+
chainId,
|
83
|
+
dipToken,
|
84
|
+
_dipToken.decimals(),
|
85
|
+
_dipToken.symbol());
|
86
|
+
|
87
|
+
// activation of dip token needs to take place outside of the
|
88
|
+
// token registry constructor call
|
89
|
+
}
|
34
90
|
|
35
91
|
|
36
|
-
/// @dev link
|
37
|
-
function
|
92
|
+
/// @dev link token registry ownership to nft owner of registry service and register dip token.
|
93
|
+
function linkToRegistryService()
|
38
94
|
external
|
39
|
-
onlyOwner
|
40
95
|
{
|
41
|
-
|
42
|
-
address
|
96
|
+
// link token registry ownership to registry service
|
97
|
+
address registryService = getRegistry().getServiceAddress(
|
98
|
+
REGISTRY(),
|
99
|
+
_releaseManager.getInitialVersion());
|
100
|
+
_linkToNftOwnable(registryService);
|
101
|
+
|
102
|
+
// activate dip for initial gif version
|
103
|
+
// as token registry is created in constructor of release manager
|
104
|
+
// release manager can not yet be called in constructor of token registry
|
105
|
+
uint256 chainId = block.chainid;
|
106
|
+
address dipToken = address(_dipToken);
|
107
|
+
VersionPart majorVersion = _releaseManager.getInitialVersion();
|
108
|
+
bool active = true;
|
109
|
+
_active[chainId][dipToken][majorVersion] = active;
|
43
110
|
|
44
|
-
|
111
|
+
emit LogTokenRegistryTokenStateSet(chainId, dipToken, majorVersion, active);
|
45
112
|
}
|
46
113
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
114
|
+
|
115
|
+
/// @dev register an onchain token.
|
116
|
+
/// this function verifies that the provided token address is a contract that implements
|
117
|
+
/// the non optional erc20 view functions.
|
118
|
+
function registerToken(address tokenAddress)
|
119
|
+
external
|
120
|
+
onlyOwner
|
121
|
+
{
|
122
|
+
IERC20Metadata token = _verifyOnchainToken(tokenAddress);
|
123
|
+
_registerToken(block.chainid, tokenAddress, token.decimals(), token.symbol());
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
/// @dev register the remote token with the provided attributes.
|
128
|
+
/// this function may not be used for tokens when chainId == block.chainid.
|
129
|
+
function registerRemoteToken(
|
130
|
+
uint256 chainId,
|
131
|
+
address token,
|
132
|
+
uint8 decimals,
|
133
|
+
string memory symbol
|
134
|
+
)
|
51
135
|
external
|
52
136
|
onlyOwner
|
53
137
|
{
|
54
|
-
|
55
|
-
|
56
|
-
_registerToken(token);
|
138
|
+
if (chainId == block.chainid) {
|
139
|
+
revert ErrorTokenRegistryNotRemoteToken(chainId, token);
|
57
140
|
}
|
58
141
|
|
142
|
+
_registerToken(chainId, token, decimals, symbol);
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
/// @dev set active flag on token itself.
|
147
|
+
/// when setting a token to active=false isActive will return false
|
148
|
+
/// regardless of release specific active value.
|
149
|
+
function setActive(
|
150
|
+
uint256 chainId,
|
151
|
+
address token,
|
152
|
+
bool active
|
153
|
+
)
|
154
|
+
external
|
155
|
+
onlyOwner
|
156
|
+
onlyRegisteredToken(chainId, token)
|
157
|
+
{
|
158
|
+
_tokenInfo[chainId][token].active = active;
|
159
|
+
emit LogTokenRegistryTokenGlobalStateSet(chainId, token, active);
|
160
|
+
}
|
161
|
+
|
162
|
+
|
163
|
+
/// @dev sets active state for specified token and major version.
|
164
|
+
/// internally calls setActiveWithVersionCheck() with enforcing version check.
|
165
|
+
/// token state is informative, registry have no clue about used tokens
|
166
|
+
/// component owner is responsible for token selection and operations
|
167
|
+
/// service MUST deny registration of component with inactive token.
|
168
|
+
function setActiveForVersion(
|
169
|
+
uint256 chainId,
|
170
|
+
address token,
|
171
|
+
VersionPart majorVersion,
|
172
|
+
bool active
|
173
|
+
)
|
174
|
+
public
|
175
|
+
{
|
176
|
+
setActiveWithVersionCheck(chainId, token, majorVersion, active, true);
|
177
|
+
}
|
178
|
+
|
179
|
+
|
180
|
+
/// @dev as setActiveForVersion() with the option to skip the version check.
|
181
|
+
/// enforcing the version check checks if the provided major version with the release manager.
|
182
|
+
/// the function reverts if the provided majorVersion is unknown to the release manager.
|
183
|
+
function setActiveWithVersionCheck(
|
184
|
+
uint256 chainId,
|
185
|
+
address token,
|
186
|
+
VersionPart majorVersion,
|
187
|
+
bool active,
|
188
|
+
bool enforceVersionCheck
|
189
|
+
)
|
190
|
+
public
|
191
|
+
onlyOwner
|
192
|
+
onlyRegisteredToken(chainId, token)
|
193
|
+
{
|
59
194
|
// verify valid major version
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
195
|
+
if(enforceVersionCheck) {
|
196
|
+
uint256 version = majorVersion.toInt();
|
197
|
+
if (!getRegistry().isValidRelease(majorVersion)) {
|
198
|
+
revert ErrorTokenRegistryMajorVersionInvalid(majorVersion);
|
199
|
+
}
|
64
200
|
}
|
65
201
|
|
66
|
-
_active[token][majorVersion] = active;
|
202
|
+
_active[chainId][token][majorVersion] = active;
|
203
|
+
|
204
|
+
emit LogTokenRegistryTokenStateSet(chainId, token, majorVersion, active);
|
205
|
+
}
|
67
206
|
|
68
|
-
|
207
|
+
/// @dev returns the dip token for this chain
|
208
|
+
function getDipToken() external view returns (IERC20Metadata dipToken) {
|
209
|
+
return _dipToken;
|
69
210
|
}
|
70
211
|
|
212
|
+
/// @dev returns the number of registered tokens
|
71
213
|
function tokens() external view returns (uint256) {
|
72
214
|
return _token.length;
|
73
215
|
}
|
74
216
|
|
75
|
-
|
76
|
-
|
217
|
+
/// @dev returns the token info for the specified index position [0 .. tokens() - 1].
|
218
|
+
function getTokenInfo(uint256 idx) external view returns (TokenInfo memory tokenInfo) {
|
219
|
+
return _token[idx];
|
220
|
+
}
|
221
|
+
|
222
|
+
/// @dev returns the token info for the specified token coordinates.
|
223
|
+
function getTokenInfo(uint256 chainId, address token) external view returns (TokenInfo memory tokenInfo) {
|
224
|
+
return _tokenInfo[chainId][token];
|
77
225
|
}
|
78
226
|
|
79
|
-
|
80
|
-
|
227
|
+
/// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
|
228
|
+
function isRegistered(uint256 chainId, address token) public view returns (bool) {
|
229
|
+
return _tokenInfo[chainId][token].chainId > 0;
|
81
230
|
}
|
82
231
|
|
83
|
-
|
84
|
-
|
232
|
+
/// @dev returns true iff both the token is active for the specfied version and the global token state is active
|
233
|
+
function isActive(uint256 chainId, address token, VersionPart majorVersion) external view returns (bool) {
|
234
|
+
if(!_tokenInfo[chainId][token].active) {
|
235
|
+
return false;
|
236
|
+
}
|
237
|
+
|
238
|
+
return _active[chainId][token][majorVersion];
|
85
239
|
}
|
86
240
|
|
87
|
-
|
88
|
-
|
241
|
+
|
242
|
+
/// @dev checks if provided token address refers to a smart contract that implements
|
243
|
+
/// erc20 functionality (via its non-optional functions)
|
244
|
+
function _verifyOnchainToken(address tokenAddress)
|
245
|
+
internal
|
246
|
+
virtual
|
247
|
+
view
|
248
|
+
returns (IERC20Metadata token)
|
249
|
+
{
|
250
|
+
token = IERC20Metadata(tokenAddress);
|
251
|
+
uint256 chainId = block.chainid;
|
89
252
|
|
90
253
|
// MUST be contract
|
91
|
-
if(
|
92
|
-
revert
|
254
|
+
if(tokenAddress.code.length == 0) {
|
255
|
+
revert ErrorTokenRegistryTokenNotContract(chainId, tokenAddress);
|
93
256
|
}
|
94
257
|
|
95
|
-
// MUST
|
96
|
-
if(
|
97
|
-
revert
|
258
|
+
// MUST implement required erc20 view functions
|
259
|
+
if(!_implementsErc20Functions(token)) {
|
260
|
+
revert ErrorTokenRegistryTokenNotErc20(chainId, tokenAddress);
|
98
261
|
}
|
262
|
+
}
|
99
263
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
264
|
+
|
265
|
+
/// @dev checks availability of non-optional view functions
|
266
|
+
/// https://eips.ethereum.org/EIPS/eip-20#methods
|
267
|
+
function _implementsErc20Functions(IERC20Metadata token) internal view returns (bool implementsErc20Functions) {
|
268
|
+
try token.totalSupply() returns (uint256) {
|
269
|
+
// so far so goood
|
270
|
+
} catch {
|
271
|
+
return false;
|
272
|
+
}
|
273
|
+
|
274
|
+
try token.balanceOf(address(1)) returns (uint256) {
|
275
|
+
// so far so goood
|
276
|
+
} catch {
|
277
|
+
return false;
|
278
|
+
}
|
279
|
+
|
280
|
+
try token.allowance(address(1), address(2)) returns (uint256) {
|
281
|
+
// so far so goood
|
282
|
+
} catch {
|
283
|
+
return false;
|
104
284
|
}
|
105
285
|
|
106
|
-
|
107
|
-
|
286
|
+
return true;
|
287
|
+
}
|
288
|
+
|
289
|
+
/// @dev some sanity checks to prevent unintended registration:
|
290
|
+
/// - token not yet registered
|
291
|
+
/// - chainId not zero
|
292
|
+
/// - token address not zero
|
293
|
+
function _registerToken(uint256 chainId, address token, uint8 decimals, string memory symbol) internal {
|
294
|
+
|
295
|
+
if (isRegistered(chainId, token)) {
|
296
|
+
revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
|
297
|
+
}
|
298
|
+
|
299
|
+
if(chainId == 0) {
|
300
|
+
revert ErrorTokenRegistryChainIdZero();
|
301
|
+
}
|
302
|
+
|
303
|
+
if(token == address(0)) {
|
304
|
+
revert ErrorTokenRegistryTokenAddressZero();
|
305
|
+
}
|
306
|
+
|
307
|
+
TokenInfo memory tokenInfo = TokenInfo({
|
308
|
+
chainId: chainId,
|
309
|
+
token: token,
|
310
|
+
decimals: decimals,
|
311
|
+
symbol: symbol,
|
312
|
+
active: true});
|
313
|
+
|
314
|
+
_tokenInfo[chainId][token] = tokenInfo;
|
315
|
+
_token.push(tokenInfo);
|
108
316
|
|
109
|
-
emit
|
317
|
+
emit LogTokenRegistryTokenRegistered(chainId, token, decimals, symbol);
|
110
318
|
}
|
111
319
|
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
|
5
|
+
|
6
|
+
|
7
|
+
contract AccessManagerUpgradeableInitializeable is AccessManagerUpgradeable {
|
8
|
+
|
9
|
+
function initialize(address initialAdmin) initializer public {
|
10
|
+
__AccessManager_init(initialAdmin);
|
11
|
+
}
|
12
|
+
|
13
|
+
}
|