@etherisc/gif-next 0.0.2-9b434da-265 → 0.0.2-9bfd86b-310

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.
Files changed (563) hide show
  1. package/README.md +179 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +665 -0
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +445 -3000
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1134 -31
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +145 -166
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +401 -59
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +557 -179
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  120. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +558 -169
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +698 -259
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +368 -123
  130. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1218 -0
  132. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  138. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  140. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  142. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  150. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  151. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  152. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  154. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  156. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  158. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  160. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  166. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  168. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -88
  174. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  176. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  178. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  180. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  182. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  183. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  184. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  185. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/IService.sol/IService.json} +134 -29
  186. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  188. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  196. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  202. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  204. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  206. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  208. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +203 -164
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  212. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  214. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  253. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  274. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  282. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  286. package/contracts/distribution/Distribution.sol +261 -0
  287. package/contracts/distribution/DistributionService.sol +297 -0
  288. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  289. package/contracts/distribution/IDistributionComponent.sol +66 -0
  290. package/contracts/distribution/IDistributionService.sol +81 -0
  291. package/contracts/instance/BundleManager.sol +126 -0
  292. package/contracts/instance/IInstance.sol +87 -0
  293. package/contracts/instance/IInstanceService.sol +97 -0
  294. package/contracts/instance/Instance.sol +189 -316
  295. package/contracts/instance/InstanceAdmin.sol +331 -0
  296. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  297. package/contracts/instance/InstanceReader.sol +392 -0
  298. package/contracts/instance/InstanceService.sol +417 -23
  299. package/contracts/instance/InstanceServiceManager.sol +44 -0
  300. package/contracts/instance/InstanceStore.sol +269 -0
  301. package/contracts/instance/base/BalanceStore.sol +123 -0
  302. package/contracts/instance/base/Cloneable.sol +28 -0
  303. package/contracts/instance/base/ObjectCounter.sol +21 -0
  304. package/contracts/instance/base/ObjectManager.sol +80 -0
  305. package/contracts/instance/module/IAccess.sol +30 -22
  306. package/contracts/instance/module/IBundle.sol +8 -7
  307. package/contracts/instance/module/IComponents.sol +52 -0
  308. package/contracts/instance/module/IDistribution.sol +7 -4
  309. package/contracts/instance/module/IPolicy.sol +56 -17
  310. package/contracts/instance/module/IRisk.sol +1 -1
  311. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  312. package/contracts/oracle/IOracle.sol +20 -0
  313. package/contracts/oracle/IOracleComponent.sol +32 -0
  314. package/contracts/oracle/IOracleService.sol +65 -0
  315. package/contracts/oracle/Oracle.sol +145 -0
  316. package/contracts/oracle/OracleService.sol +278 -0
  317. package/contracts/oracle/OracleServiceManager.sol +42 -0
  318. package/contracts/pool/BundleService.sol +296 -0
  319. package/contracts/pool/BundleServiceManager.sol +42 -0
  320. package/contracts/pool/IBundleService.sol +106 -0
  321. package/contracts/pool/IPoolComponent.sol +112 -0
  322. package/contracts/pool/IPoolService.sol +150 -0
  323. package/contracts/pool/Pool.sol +299 -0
  324. package/contracts/pool/PoolService.sol +452 -0
  325. package/contracts/pool/PoolServiceManager.sol +42 -0
  326. package/contracts/product/ApplicationService.sol +254 -0
  327. package/contracts/product/ApplicationServiceManager.sol +38 -0
  328. package/contracts/product/ClaimService.sol +442 -0
  329. package/contracts/product/ClaimServiceManager.sol +38 -0
  330. package/contracts/product/IApplicationService.sol +62 -0
  331. package/contracts/product/IClaimService.sol +99 -0
  332. package/contracts/product/IPolicyService.sol +78 -0
  333. package/contracts/product/IPricingService.sol +39 -0
  334. package/contracts/product/IProductComponent.sol +42 -0
  335. package/contracts/product/IProductService.sol +33 -0
  336. package/contracts/product/PolicyService.sol +475 -0
  337. package/contracts/product/PolicyServiceManager.sol +42 -0
  338. package/contracts/product/PricingService.sol +300 -0
  339. package/contracts/product/PricingServiceManager.sol +42 -0
  340. package/contracts/product/Product.sol +377 -0
  341. package/contracts/product/ProductService.sol +124 -0
  342. package/contracts/product/ProductServiceManager.sol +42 -0
  343. package/contracts/registry/ChainNft.sol +55 -25
  344. package/contracts/registry/IRegistry.sol +80 -29
  345. package/contracts/registry/IRegistryService.sol +56 -16
  346. package/contracts/registry/IServiceAuthorization.sol +35 -0
  347. package/contracts/registry/ITransferInterceptor.sol +1 -0
  348. package/contracts/registry/Registry.sol +416 -325
  349. package/contracts/registry/RegistryAdmin.sol +333 -0
  350. package/contracts/registry/RegistryService.sol +162 -265
  351. package/contracts/registry/RegistryServiceManager.sol +27 -17
  352. package/contracts/registry/ReleaseManager.sol +527 -0
  353. package/contracts/registry/ServiceAuthorization.sol +86 -0
  354. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  355. package/contracts/registry/TokenRegistry.sol +315 -0
  356. package/contracts/shared/AccessAdmin.sol +759 -0
  357. package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +283 -224
  358. package/contracts/shared/AccessManagerExtended.sol +481 -0
  359. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  360. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  361. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  362. package/contracts/shared/Component.sol +281 -0
  363. package/contracts/shared/ComponentService.sol +617 -0
  364. package/contracts/shared/ComponentServiceManager.sol +35 -0
  365. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  366. package/contracts/shared/ERC165.sol +16 -10
  367. package/contracts/shared/IAccessAdmin.sol +168 -0
  368. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  369. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  370. package/contracts/shared/IComponent.sol +70 -0
  371. package/contracts/shared/IComponentService.sol +102 -0
  372. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  373. package/contracts/{instance/base → shared}/IKeyValueStore.sol +19 -14
  374. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  375. package/contracts/shared/INftOwnable.sol +13 -12
  376. package/contracts/shared/IPolicyHolder.sol +45 -0
  377. package/contracts/shared/IRegisterable.sol +4 -6
  378. package/contracts/shared/IRegistryLinked.sol +11 -0
  379. package/contracts/shared/IService.sol +25 -0
  380. package/contracts/shared/IVersionable.sol +5 -48
  381. package/contracts/shared/InitializableCustom.sol +177 -0
  382. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  383. package/contracts/shared/KeyValueStore.sol +127 -0
  384. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  385. package/contracts/shared/NftIdSetManager.sol +65 -0
  386. package/contracts/shared/NftOwnable.sol +60 -89
  387. package/contracts/shared/PolicyHolder.sol +102 -0
  388. package/contracts/shared/ProxyManager.sol +132 -27
  389. package/contracts/shared/Registerable.sol +27 -41
  390. package/contracts/shared/RegistryLinked.sol +43 -0
  391. package/contracts/shared/Service.sol +83 -0
  392. package/contracts/shared/TokenHandler.sol +39 -8
  393. package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
  394. package/contracts/shared/Versionable.sol +5 -93
  395. package/contracts/staking/IStaking.sol +168 -0
  396. package/contracts/staking/IStakingService.sol +153 -0
  397. package/contracts/staking/StakeManagerLib.sol +231 -0
  398. package/contracts/staking/Staking.sol +513 -0
  399. package/contracts/staking/StakingManager.sol +54 -0
  400. package/contracts/staking/StakingReader.sol +187 -0
  401. package/contracts/staking/StakingService.sol +411 -0
  402. package/contracts/staking/StakingServiceManager.sol +44 -0
  403. package/contracts/staking/StakingStore.sol +613 -0
  404. package/contracts/staking/TargetManagerLib.sol +207 -0
  405. package/contracts/{types → type}/AddressSet.sol +1 -1
  406. package/contracts/type/Amount.sol +128 -0
  407. package/contracts/{types → type}/Blocknumber.sol +21 -3
  408. package/contracts/type/ClaimId.sol +75 -0
  409. package/contracts/{types → type}/DistributorType.sol +2 -2
  410. package/contracts/type/Fee.sol +66 -0
  411. package/contracts/{types → type}/NftId.sol +21 -15
  412. package/contracts/type/NftIdSet.sol +62 -0
  413. package/contracts/type/ObjectType.sol +241 -0
  414. package/contracts/type/PayoutId.sol +82 -0
  415. package/contracts/{types → type}/Referral.sol +5 -1
  416. package/contracts/type/RequestId.sol +75 -0
  417. package/contracts/{types → type}/RiskId.sol +1 -1
  418. package/contracts/type/RoleId.sol +201 -0
  419. package/contracts/type/Seconds.sol +81 -0
  420. package/contracts/type/Selector.sol +102 -0
  421. package/contracts/{types → type}/StateId.sol +38 -4
  422. package/contracts/type/String.sol +53 -0
  423. package/contracts/{types → type}/Timestamp.sol +23 -14
  424. package/contracts/{types → type}/UFixed.sol +129 -12
  425. package/contracts/{types → type}/Version.sol +6 -2
  426. package/package.json +8 -7
  427. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  430. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  432. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  434. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  436. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  438. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  442. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  445. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  447. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  451. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  453. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  455. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  457. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  459. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  461. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  462. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  463. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  464. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  466. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  467. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -736
  472. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  474. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  475. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  476. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  477. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  478. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  479. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  480. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  481. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  482. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  483. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  484. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  485. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  486. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -10
  487. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  488. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  489. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  490. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  491. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  492. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  493. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  494. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  495. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  496. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  497. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  498. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  499. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  500. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  501. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  502. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  503. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  504. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  505. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  507. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  508. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  509. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  511. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  512. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  513. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  514. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  515. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  516. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  518. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  519. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  520. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  521. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  523. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  525. package/contracts/components/IBaseComponent.sol +0 -19
  526. package/contracts/experiment/errors/Require.sol +0 -38
  527. package/contracts/experiment/errors/Revert.sol +0 -44
  528. package/contracts/experiment/inheritance/A.sol +0 -53
  529. package/contracts/experiment/inheritance/B.sol +0 -28
  530. package/contracts/experiment/inheritance/C.sol +0 -34
  531. package/contracts/experiment/inheritance/IA.sol +0 -13
  532. package/contracts/experiment/inheritance/IB.sol +0 -10
  533. package/contracts/experiment/inheritance/IC.sol +0 -12
  534. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  535. package/contracts/experiment/statemachine/ISM.sol +0 -25
  536. package/contracts/experiment/statemachine/SM.sol +0 -57
  537. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  538. package/contracts/experiment/types/TypeA.sol +0 -47
  539. package/contracts/experiment/types/TypeB.sol +0 -29
  540. package/contracts/instance/AccessManagedSimple.sol +0 -114
  541. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  542. package/contracts/instance/InstanceAccessManager.sol +0 -288
  543. package/contracts/instance/base/IService.sol +0 -15
  544. package/contracts/instance/base/KeyValueStore.sol +0 -188
  545. package/contracts/instance/base/ServiceBase.sol +0 -44
  546. package/contracts/instance/module/ISetup.sol +0 -41
  547. package/contracts/instance/module/ITreasury.sol +0 -23
  548. package/contracts/registry/IChainNft.sol +0 -22
  549. package/contracts/shared/ContractDeployerLib.sol +0 -72
  550. package/contracts/test/TestFee.sol +0 -25
  551. package/contracts/test/TestRegisterable.sol +0 -18
  552. package/contracts/test/TestRoleId.sol +0 -14
  553. package/contracts/test/TestService.sol +0 -26
  554. package/contracts/test/TestVersion.sol +0 -44
  555. package/contracts/test/TestVersionable.sol +0 -17
  556. package/contracts/test/Usdc.sol +0 -26
  557. package/contracts/types/ChainId.sol +0 -38
  558. package/contracts/types/Fee.sol +0 -56
  559. package/contracts/types/NftIdSet.sol +0 -60
  560. package/contracts/types/NumberId.sol +0 -52
  561. package/contracts/types/ObjectType.sol +0 -152
  562. package/contracts/types/RoleId.sol +0 -75
  563. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,19 +1,34 @@
1
- // SPDX-License-Identifier: Apache-2.0
1
+ // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Context} from "@openzeppelin5/contracts/utils/Context.sol";
5
- import {IAccessManaged} from "@openzeppelin5/contracts/access/manager/IAccessManaged.sol";
4
+ import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
5
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
7
+ import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
8
+ import {MulticallUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol";
9
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
10
+ import {Time} from "@openzeppelin/contracts/utils/types/Time.sol";
11
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
12
+
13
+ /*
14
+ * copy of @openzeppelin/contract-upgradeable/access/manager/AccessManagerUpgradeable.sol" except:
15
+ 1. abstract
16
+ 2. renamed to AccessManagerCustom
17
+ 2. _getAdminRestrictions() private view -> internal virtual view
18
+ 3. _checkSelector() private pure -> internal pure
19
+ */
20
+ abstract contract AccessManagerCustom is
21
+ Initializable,
22
+ ContextUpgradeable,
23
+ MulticallUpgradeable,
24
+ IAccessManager
25
+ {
26
+ using Time for *;
6
27
 
7
- import {IAccessManagerSimple} from "./IAccessManagerSimple.sol";
8
-
9
- type Delay is uint112;
10
-
11
- // @dev as oz5 AccessManager but without multicall and without timing logic
12
- contract AccessManagerSimple is Context, IAccessManagerSimple {
13
28
  // Structure that stores the details for a target contract.
14
29
  struct TargetConfig {
15
30
  mapping(bytes4 selector => uint64 roleId) allowedRoles;
16
- uint112 adminDelay;
31
+ Time.Delay adminDelay;
17
32
  bool closed;
18
33
  }
19
34
 
@@ -23,7 +38,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
23
38
  // If this is either 0 or in the future, then the role permission is not available.
24
39
  uint48 since;
25
40
  // Delay for execution. Only applies to restricted() / execute() calls.
26
- Delay delay;
41
+ Time.Delay delay;
27
42
  }
28
43
 
29
44
  // Structure that stores the details of a role.
@@ -35,7 +50,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
35
50
  // Guardian who can cancel operations targeting functions that need this role.
36
51
  uint64 guardian;
37
52
  // Delay in which the role takes effect after being granted.
38
- Delay grantDelay;
53
+ Time.Delay grantDelay;
39
54
  }
40
55
 
41
56
  // Structure that stores the details for a scheduled operation. This structure fits into a single slot.
@@ -49,13 +64,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
49
64
  uint64 public constant ADMIN_ROLE = type(uint64).min; // 0
50
65
  uint64 public constant PUBLIC_ROLE = type(uint64).max; // 2**64-1
51
66
 
52
- mapping(address target => TargetConfig mode) private _targets;
53
- mapping(uint64 roleId => Role) private _roles;
54
- mapping(bytes32 operationId => Schedule) private _schedules;
67
+ /// @custom:storage-location erc7201:openzeppelin.storage.AccessManagerCustom
68
+ struct AccessManagerStorage {
69
+ mapping(address target => TargetConfig mode) _targets;
70
+ mapping(uint64 roleId => Role) _roles;
71
+ mapping(bytes32 operationId => Schedule) _schedules;
72
+
73
+ // Used to identify operations that are currently being executed via {execute}.
74
+ // This should be transient storage when supported by the EVM.
75
+ bytes32 _executionId;
76
+ }
77
+
78
+ // TODO compute address
79
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerCustom")) - 1)) & ~bytes32(uint256(0xff))
80
+ bytes32 private constant AccessManagerCustomStorageLocation = 0x77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf00;
55
81
 
56
- // Used to identify operations that are currently being executed via {execute}.
57
- // This should be transient storage when supported by the EVM.
58
- bytes32 private _executionId;
82
+ function _getAccessManagerCustomStorage() private pure returns (AccessManagerStorage storage $) {
83
+ assembly {
84
+ $.slot := AccessManagerCustomStorageLocation
85
+ }
86
+ }
59
87
 
60
88
  /**
61
89
  * @dev Check that the caller is authorized to perform the operation, following the restrictions encoded in
@@ -66,7 +94,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
66
94
  _;
67
95
  }
68
96
 
69
- constructor(address initialAdmin) {
97
+ function __AccessManagerCustom_init(address initialAdmin) internal onlyInitializing {
98
+ __AccessManagerCustom_init_unchained(initialAdmin);
99
+ }
100
+
101
+ function __AccessManagerCustom_init_unchained(address initialAdmin) internal onlyInitializing {
70
102
  if (initialAdmin == address(0)) {
71
103
  revert AccessManagerInvalidInitialAdmin(address(0));
72
104
  }
@@ -76,7 +108,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
76
108
  }
77
109
 
78
110
  // =================================================== GETTERS ====================================================
79
- /// @inheritdoc IAccessManagerSimple
111
+ /// @inheritdoc IAccessManager
80
112
  function canCall(
81
113
  address caller,
82
114
  address target,
@@ -84,10 +116,10 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
84
116
  ) public view virtual returns (bool immediate, uint32 delay) {
85
117
  if (isTargetClosed(target)) {
86
118
  return (false, 0);
87
- // } else if (caller == address(this)) {
88
- // // Caller is AccessManager, this means the call was sent through {execute} and it already checked
89
- // // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
90
- // return (_isExecuting(target, selector), 0);
119
+ } else if (caller == address(this)) {
120
+ // Caller is AccessManager, this means the call was sent through {execute} and it already checked
121
+ // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
122
+ return (_isExecuting(target, selector), 0);
91
123
  } else {
92
124
  uint64 roleId = getTargetFunctionRole(target, selector);
93
125
  (bool isMember, uint32 currentDelay) = hasRole(roleId, caller);
@@ -95,60 +127,67 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
95
127
  }
96
128
  }
97
129
 
98
- /// @inheritdoc IAccessManagerSimple
130
+ /// @inheritdoc IAccessManager
99
131
  function expiration() public view virtual returns (uint32) {
100
132
  return 1 weeks;
101
133
  }
102
134
 
103
- /// @inheritdoc IAccessManagerSimple
135
+ /// @inheritdoc IAccessManager
104
136
  function minSetback() public view virtual returns (uint32) {
105
137
  return 5 days;
106
138
  }
107
139
 
108
- /// @inheritdoc IAccessManagerSimple
140
+ /// @inheritdoc IAccessManager
109
141
  function isTargetClosed(address target) public view virtual returns (bool) {
110
- return _targets[target].closed;
142
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
143
+ return $._targets[target].closed;
111
144
  }
112
145
 
113
- /// @inheritdoc IAccessManagerSimple
146
+ /// @inheritdoc IAccessManager
114
147
  function getTargetFunctionRole(address target, bytes4 selector) public view virtual returns (uint64) {
115
- return _targets[target].allowedRoles[selector];
148
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
149
+ return $._targets[target].allowedRoles[selector];
116
150
  }
117
151
 
118
- /// @inheritdoc IAccessManagerSimple
152
+ /// @inheritdoc IAccessManager
119
153
  function getTargetAdminDelay(address target) public view virtual returns (uint32) {
120
- // return _targets[target].adminDelay.get();
154
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
155
+ return $._targets[target].adminDelay.get();
121
156
  }
122
157
 
123
- /// @inheritdoc IAccessManagerSimple
158
+ /// @inheritdoc IAccessManager
124
159
  function getRoleAdmin(uint64 roleId) public view virtual returns (uint64) {
125
- return _roles[roleId].admin;
160
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
161
+ return $._roles[roleId].admin;
126
162
  }
127
163
 
128
- /// @inheritdoc IAccessManagerSimple
164
+ /// @inheritdoc IAccessManager
129
165
  function getRoleGuardian(uint64 roleId) public view virtual returns (uint64) {
130
- return _roles[roleId].guardian;
166
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
167
+ return $._roles[roleId].guardian;
131
168
  }
132
169
 
133
- /// @inheritdoc IAccessManagerSimple
170
+ /// @inheritdoc IAccessManager
134
171
  function getRoleGrantDelay(uint64 roleId) public view virtual returns (uint32) {
135
- // return _roles[roleId].grantDelay.get();
172
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
173
+ return $._roles[roleId].grantDelay.get();
136
174
  }
137
175
 
138
- /// @inheritdoc IAccessManagerSimple
176
+ /// @inheritdoc IAccessManager
139
177
  function getAccess(
140
178
  uint64 roleId,
141
179
  address account
142
180
  ) public view virtual returns (uint48 since, uint32 currentDelay, uint32 pendingDelay, uint48 effect) {
143
- Access storage access = _roles[roleId].members[account];
181
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
182
+ Access storage access = $._roles[roleId].members[account];
144
183
 
145
184
  since = access.since;
146
- // (currentDelay, pendingDelay, effect) = access.delay.getFull();
185
+ (currentDelay, pendingDelay, effect) = access.delay.getFull();
147
186
 
148
187
  return (since, currentDelay, pendingDelay, effect);
149
188
  }
150
189
 
151
- /// @inheritdoc IAccessManagerSimple
190
+ /// @inheritdoc IAccessManager
152
191
  function hasRole(
153
192
  uint64 roleId,
154
193
  address account
@@ -157,13 +196,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
157
196
  return (true, 0);
158
197
  } else {
159
198
  (uint48 hasRoleSince, uint32 currentDelay, , ) = getAccess(roleId, account);
160
- // return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
161
- return (hasRoleSince != 0 && hasRoleSince <= uint48(block.timestamp), currentDelay);
199
+ return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
162
200
  }
163
201
  }
164
202
 
165
203
  // =============================================== ROLE MANAGEMENT ===============================================
166
- /// @inheritdoc IAccessManagerSimple
204
+ /// @inheritdoc IAccessManager
167
205
  function labelRole(uint64 roleId, string calldata label) public virtual onlyAuthorized {
168
206
  if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
169
207
  revert AccessManagerLockedRole(roleId);
@@ -171,17 +209,17 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
171
209
  emit RoleLabel(roleId, label);
172
210
  }
173
211
 
174
- /// @inheritdoc IAccessManagerSimple
212
+ /// @inheritdoc IAccessManager
175
213
  function grantRole(uint64 roleId, address account, uint32 executionDelay) public virtual onlyAuthorized {
176
214
  _grantRole(roleId, account, getRoleGrantDelay(roleId), executionDelay);
177
215
  }
178
216
 
179
- /// @inheritdoc IAccessManagerSimple
217
+ /// @inheritdoc IAccessManager
180
218
  function revokeRole(uint64 roleId, address account) public virtual onlyAuthorized {
181
219
  _revokeRole(roleId, account);
182
220
  }
183
221
 
184
- /// @inheritdoc IAccessManagerSimple
222
+ /// @inheritdoc IAccessManager
185
223
  function renounceRole(uint64 roleId, address callerConfirmation) public virtual {
186
224
  if (callerConfirmation != _msgSender()) {
187
225
  revert AccessManagerBadConfirmation();
@@ -189,19 +227,19 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
189
227
  _revokeRole(roleId, callerConfirmation);
190
228
  }
191
229
 
192
- /// @inheritdoc IAccessManagerSimple
230
+ /// @inheritdoc IAccessManager
193
231
  function setRoleAdmin(uint64 roleId, uint64 admin) public virtual onlyAuthorized {
194
232
  _setRoleAdmin(roleId, admin);
195
233
  }
196
234
 
197
- /// @inheritdoc IAccessManagerSimple
235
+ /// @inheritdoc IAccessManager
198
236
  function setRoleGuardian(uint64 roleId, uint64 guardian) public virtual onlyAuthorized {
199
237
  _setRoleGuardian(roleId, guardian);
200
238
  }
201
239
 
202
- /// @inheritdoc IAccessManagerSimple
240
+ /// @inheritdoc IAccessManager
203
241
  function setGrantDelay(uint64 roleId, uint32 newDelay) public virtual onlyAuthorized {
204
- // _setGrantDelay(roleId, newDelay);
242
+ _setGrantDelay(roleId, newDelay);
205
243
  }
206
244
 
207
245
  /**
@@ -215,25 +253,25 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
215
253
  uint32 grantDelay,
216
254
  uint32 executionDelay
217
255
  ) internal virtual returns (bool) {
256
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
218
257
  if (roleId == PUBLIC_ROLE) {
219
258
  revert AccessManagerLockedRole(roleId);
220
259
  }
221
260
 
222
- bool newMember = _roles[roleId].members[account].since == 0;
261
+ bool newMember = $._roles[roleId].members[account].since == 0;
223
262
  uint48 since;
224
263
 
225
264
  if (newMember) {
226
- since = uint48(block.timestamp); // Time.timestamp() + grantDelay;
227
- _roles[roleId].members[account] = Access({since: since, delay: Delay.wrap(0)});
228
- }
229
- // else {
230
- // // No setback here. Value can be reset by doing revoke + grant, effectively allowing the admin to perform
231
- // // any change to the execution delay within the duration of the role admin delay.
232
- // (_roles[roleId].members[account].delay, since) = _roles[roleId].members[account].delay.withUpdate(
233
- // executionDelay,
234
- // 0
235
- // );
236
- // }
265
+ since = Time.timestamp() + grantDelay;
266
+ $._roles[roleId].members[account] = Access({since: since, delay: executionDelay.toDelay()});
267
+ } else {
268
+ // No setback here. Value can be reset by doing revoke + grant, effectively allowing the admin to perform
269
+ // any change to the execution delay within the duration of the role admin delay.
270
+ ($._roles[roleId].members[account].delay, since) = $._roles[roleId].members[account].delay.withUpdate(
271
+ executionDelay,
272
+ 0
273
+ );
274
+ }
237
275
 
238
276
  emit RoleGranted(roleId, account, executionDelay, since, newMember);
239
277
  return newMember;
@@ -246,15 +284,16 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
246
284
  * Emits a {RoleRevoked} event if the account had the role.
247
285
  */
248
286
  function _revokeRole(uint64 roleId, address account) internal virtual returns (bool) {
287
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
249
288
  if (roleId == PUBLIC_ROLE) {
250
289
  revert AccessManagerLockedRole(roleId);
251
290
  }
252
291
 
253
- if (_roles[roleId].members[account].since == 0) {
292
+ if ($._roles[roleId].members[account].since == 0) {
254
293
  return false;
255
294
  }
256
295
 
257
- delete _roles[roleId].members[account];
296
+ delete $._roles[roleId].members[account];
258
297
 
259
298
  emit RoleRevoked(roleId, account);
260
299
  return true;
@@ -269,11 +308,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
269
308
  * anyone to set grant or revoke such role.
270
309
  */
271
310
  function _setRoleAdmin(uint64 roleId, uint64 admin) internal virtual {
311
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
272
312
  if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
273
313
  revert AccessManagerLockedRole(roleId);
274
314
  }
275
315
 
276
- _roles[roleId].admin = admin;
316
+ $._roles[roleId].admin = admin;
277
317
 
278
318
  emit RoleAdminChanged(roleId, admin);
279
319
  }
@@ -287,11 +327,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
287
327
  * anyone to cancel any scheduled operation for such role.
288
328
  */
289
329
  function _setRoleGuardian(uint64 roleId, uint64 guardian) internal virtual {
330
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
290
331
  if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
291
332
  revert AccessManagerLockedRole(roleId);
292
333
  }
293
334
 
294
- _roles[roleId].guardian = guardian;
335
+ $._roles[roleId].guardian = guardian;
295
336
 
296
337
  emit RoleGuardianChanged(roleId, guardian);
297
338
  }
@@ -301,19 +342,20 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
301
342
  *
302
343
  * Emits a {RoleGrantDelayChanged} event.
303
344
  */
304
- // function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
305
- // if (roleId == PUBLIC_ROLE) {
306
- // revert AccessManagerLockedRole(roleId);
307
- // }
345
+ function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
346
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
347
+ if (roleId == PUBLIC_ROLE) {
348
+ revert AccessManagerLockedRole(roleId);
349
+ }
308
350
 
309
- // uint48 effect;
310
- // (_roles[roleId].grantDelay, effect) = _roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
351
+ uint48 effect;
352
+ ($._roles[roleId].grantDelay, effect) = $._roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
311
353
 
312
- // emit RoleGrantDelayChanged(roleId, newDelay, effect);
313
- // }
354
+ emit RoleGrantDelayChanged(roleId, newDelay, effect);
355
+ }
314
356
 
315
357
  // ============================================= FUNCTION MANAGEMENT ==============================================
316
- /// @inheritdoc IAccessManagerSimple
358
+ /// @inheritdoc IAccessManager
317
359
  function setTargetFunctionRole(
318
360
  address target,
319
361
  bytes4[] calldata selectors,
@@ -330,13 +372,14 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
330
372
  * Emits a {TargetFunctionRoleUpdated} event.
331
373
  */
332
374
  function _setTargetFunctionRole(address target, bytes4 selector, uint64 roleId) internal virtual {
333
- _targets[target].allowedRoles[selector] = roleId;
375
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
376
+ $._targets[target].allowedRoles[selector] = roleId;
334
377
  emit TargetFunctionRoleUpdated(target, selector, roleId);
335
378
  }
336
379
 
337
- /// @inheritdoc IAccessManagerSimple
380
+ /// @inheritdoc IAccessManager
338
381
  function setTargetAdminDelay(address target, uint32 newDelay) public virtual onlyAuthorized {
339
- // _setTargetAdminDelay(target, newDelay);
382
+ _setTargetAdminDelay(target, newDelay);
340
383
  }
341
384
 
342
385
  /**
@@ -344,15 +387,15 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
344
387
  *
345
388
  * Emits a {TargetAdminDelayUpdated} event.
346
389
  */
347
- // function _setTargetAdminDelay(address target, uint32 newDelay) internal virtual {
348
- // uint48 effect;
349
- // (_targets[target].adminDelay, effect) = _targets[target].adminDelay.withUpdate(newDelay, minSetback());
350
-
351
- // emit TargetAdminDelayUpdated(target, newDelay, effect);
352
- // }
390
+ function _setTargetAdminDelay(address target, uint32 newDelay) internal virtual {
391
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
392
+ uint48 effect;
393
+ ($._targets[target].adminDelay, effect) = $._targets[target].adminDelay.withUpdate(newDelay, minSetback());
394
+ emit TargetAdminDelayUpdated(target, newDelay, effect);
395
+ }
353
396
 
354
397
  // =============================================== MODE MANAGEMENT ================================================
355
- /// @inheritdoc IAccessManagerSimple
398
+ /// @inheritdoc IAccessManager
356
399
  function setTargetClosed(address target, bool closed) public virtual onlyAuthorized {
357
400
  _setTargetClosed(target, closed);
358
401
  }
@@ -363,173 +406,181 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
363
406
  * Emits a {TargetClosed} event.
364
407
  */
365
408
  function _setTargetClosed(address target, bool closed) internal virtual {
409
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
366
410
  if (target == address(this)) {
367
411
  revert AccessManagerLockedAccount(target);
368
412
  }
369
- _targets[target].closed = closed;
413
+ $._targets[target].closed = closed;
370
414
  emit TargetClosed(target, closed);
371
415
  }
372
416
 
373
417
  // ============================================== DELAYED OPERATIONS ==============================================
374
- /// @inheritdoc IAccessManagerSimple
418
+ /// @inheritdoc IAccessManager
375
419
  function getSchedule(bytes32 id) public view virtual returns (uint48) {
376
- // uint48 timepoint = _schedules[id].timepoint;
377
- // return _isExpired(timepoint) ? 0 : timepoint;
420
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
421
+ uint48 timepoint = $._schedules[id].timepoint;
422
+ return _isExpired(timepoint) ? 0 : timepoint;
378
423
  }
379
424
 
380
- /// @inheritdoc IAccessManagerSimple
425
+ /// @inheritdoc IAccessManager
381
426
  function getNonce(bytes32 id) public view virtual returns (uint32) {
382
- // return _schedules[id].nonce;
427
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
428
+ return $._schedules[id].nonce;
383
429
  }
384
430
 
385
- /// @inheritdoc IAccessManagerSimple
431
+ /// @inheritdoc IAccessManager
386
432
  function schedule(
387
433
  address target,
388
434
  bytes calldata data,
389
435
  uint48 when
390
436
  ) public virtual returns (bytes32 operationId, uint32 nonce) {
391
- // address caller = _msgSender();
437
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
438
+ address caller = _msgSender();
392
439
 
393
- // // Fetch restrictions that apply to the caller on the targeted function
394
- // (, uint32 setback) = _canCallExtended(caller, target, data);
440
+ // Fetch restrictions that apply to the caller on the targeted function
441
+ (, uint32 setback) = _canCallExtended(caller, target, data);
395
442
 
396
- // uint48 minWhen = Time.timestamp() + setback;
443
+ uint48 minWhen = Time.timestamp() + setback;
397
444
 
398
- // // if call with delay is not authorized, or if requested timing is too soon
399
- // if (setback == 0 || (when > 0 && when < minWhen)) {
400
- // revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
401
- // }
445
+ // if call with delay is not authorized, or if requested timing is too soon
446
+ if (setback == 0 || (when > 0 && when < minWhen)) {
447
+ revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
448
+ }
402
449
 
403
- // // Reuse variable due to stack too deep
404
- // when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
450
+ // Reuse variable due to stack too deep
451
+ when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
405
452
 
406
- // // If caller is authorised, schedule operation
407
- // operationId = hashOperation(caller, target, data);
453
+ // If caller is authorised, schedule operation
454
+ operationId = hashOperation(caller, target, data);
408
455
 
409
- // _checkNotScheduled(operationId);
456
+ _checkNotScheduled(operationId);
410
457
 
411
- // unchecked {
412
- // // It's not feasible to overflow the nonce in less than 1000 years
413
- // nonce = _schedules[operationId].nonce + 1;
414
- // }
415
- // _schedules[operationId].timepoint = when;
416
- // _schedules[operationId].nonce = nonce;
417
- // emit OperationScheduled(operationId, nonce, when, caller, target, data);
458
+ unchecked {
459
+ // It's not feasible to overflow the nonce in less than 1000 years
460
+ nonce = $._schedules[operationId].nonce + 1;
461
+ }
462
+ $._schedules[operationId].timepoint = when;
463
+ $._schedules[operationId].nonce = nonce;
464
+ emit OperationScheduled(operationId, nonce, when, caller, target, data);
418
465
 
419
- // // Using named return values because otherwise we get stack too deep
466
+ // Using named return values because otherwise we get stack too deep
420
467
  }
421
468
 
422
469
  /**
423
470
  * @dev Reverts if the operation is currently scheduled and has not expired.
424
471
  * (Note: This function was introduced due to stack too deep errors in schedule.)
425
472
  */
426
- // function _checkNotScheduled(bytes32 operationId) private view {
427
- // uint48 prevTimepoint = _schedules[operationId].timepoint;
428
- // if (prevTimepoint != 0 && !_isExpired(prevTimepoint)) {
429
- // revert AccessManagerAlreadyScheduled(operationId);
430
- // }
431
- // }
432
-
433
- /// @inheritdoc IAccessManagerSimple
473
+ function _checkNotScheduled(bytes32 operationId) private view {
474
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
475
+ uint48 prevTimepoint = $._schedules[operationId].timepoint;
476
+ if (prevTimepoint != 0 && !_isExpired(prevTimepoint)) {
477
+ revert AccessManagerAlreadyScheduled(operationId);
478
+ }
479
+ }
480
+
481
+ /// @inheritdoc IAccessManager
434
482
  // Reentrancy is not an issue because permissions are checked on msg.sender. Additionally,
435
483
  // _consumeScheduledOp guarantees a scheduled operation is only executed once.
436
484
  // slither-disable-next-line reentrancy-no-eth
437
485
  function execute(address target, bytes calldata data) public payable virtual returns (uint32) {
438
- // address caller = _msgSender();
486
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
487
+ address caller = _msgSender();
439
488
 
440
- // // Fetch restrictions that apply to the caller on the targeted function
441
- // (bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
489
+ // Fetch restrictions that apply to the caller on the targeted function
490
+ (bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
442
491
 
443
- // // If caller is not authorised, revert
444
- // if (!immediate && setback == 0) {
445
- // revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
446
- // }
492
+ // If caller is not authorised, revert
493
+ if (!immediate && setback == 0) {
494
+ revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
495
+ }
447
496
 
448
- // bytes32 operationId = hashOperation(caller, target, data);
449
- // uint32 nonce;
497
+ bytes32 operationId = hashOperation(caller, target, data);
498
+ uint32 nonce;
450
499
 
451
- // // If caller is authorised, check operation was scheduled early enough
452
- // // Consume an available schedule even if there is no currently enforced delay
453
- // if (setback != 0 || getSchedule(operationId) != 0) {
454
- // nonce = _consumeScheduledOp(operationId);
455
- // }
500
+ // If caller is authorised, check operation was scheduled early enough
501
+ // Consume an available schedule even if there is no currently enforced delay
502
+ if (setback != 0 || getSchedule(operationId) != 0) {
503
+ nonce = _consumeScheduledOp(operationId);
504
+ }
456
505
 
457
- // // Mark the target and selector as authorised
458
- // bytes32 executionIdBefore = _executionId;
459
- // _executionId = _hashExecutionId(target, _checkSelector(data));
506
+ // Mark the target and selector as authorised
507
+ bytes32 executionIdBefore = $._executionId;
508
+ $._executionId = _hashExecutionId(target, _checkSelector(data));
460
509
 
461
- // // Perform call
462
- // Address.functionCallWithValue(target, data, msg.value);
510
+ // Perform call
511
+ Address.functionCallWithValue(target, data, msg.value);
463
512
 
464
- // // Reset execute identifier
465
- // _executionId = executionIdBefore;
513
+ // Reset execute identifier
514
+ $._executionId = executionIdBefore;
466
515
 
467
- // return nonce;
516
+ return nonce;
468
517
  }
469
518
 
470
- /// @inheritdoc IAccessManagerSimple
519
+ /// @inheritdoc IAccessManager
471
520
  function cancel(address caller, address target, bytes calldata data) public virtual returns (uint32) {
472
- // address msgsender = _msgSender();
473
- // bytes4 selector = _checkSelector(data);
521
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
522
+ address msgsender = _msgSender();
523
+ bytes4 selector = _checkSelector(data);
474
524
 
475
- // bytes32 operationId = hashOperation(caller, target, data);
476
- // if (_schedules[operationId].timepoint == 0) {
477
- // revert AccessManagerNotScheduled(operationId);
478
- // } else if (caller != msgsender) {
479
- // // calls can only be canceled by the account that scheduled them, a global admin, or by a guardian of the required role.
480
- // (bool isAdmin, ) = hasRole(ADMIN_ROLE, msgsender);
481
- // (bool isGuardian, ) = hasRole(getRoleGuardian(getTargetFunctionRole(target, selector)), msgsender);
482
- // if (!isAdmin && !isGuardian) {
483
- // revert AccessManagerUnauthorizedCancel(msgsender, caller, target, selector);
484
- // }
485
- // }
525
+ bytes32 operationId = hashOperation(caller, target, data);
526
+ if ($._schedules[operationId].timepoint == 0) {
527
+ revert AccessManagerNotScheduled(operationId);
528
+ } else if (caller != msgsender) {
529
+ // calls can only be canceled by the account that scheduled them, a global admin, or by a guardian of the required role.
530
+ (bool isAdmin, ) = hasRole(ADMIN_ROLE, msgsender);
531
+ (bool isGuardian, ) = hasRole(getRoleGuardian(getTargetFunctionRole(target, selector)), msgsender);
532
+ if (!isAdmin && !isGuardian) {
533
+ revert AccessManagerUnauthorizedCancel(msgsender, caller, target, selector);
534
+ }
535
+ }
486
536
 
487
- // delete _schedules[operationId].timepoint; // reset the timepoint, keep the nonce
488
- // uint32 nonce = _schedules[operationId].nonce;
489
- // emit OperationCanceled(operationId, nonce);
537
+ delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
538
+ uint32 nonce = $._schedules[operationId].nonce;
539
+ emit OperationCanceled(operationId, nonce);
490
540
 
491
- // return nonce;
541
+ return nonce;
492
542
  }
493
543
 
494
- /// @inheritdoc IAccessManagerSimple
544
+ /// @inheritdoc IAccessManager
495
545
  function consumeScheduledOp(address caller, bytes calldata data) public virtual {
496
- // address target = _msgSender();
497
- // if (IAccessManaged(target).isConsumingScheduledOp() != IAccessManaged.isConsumingScheduledOp.selector) {
498
- // revert AccessManagerUnauthorizedConsume(target);
499
- // }
500
- // _consumeScheduledOp(hashOperation(caller, target, data));
501
- }
502
-
503
- // /**
504
- // * @dev Internal variant of {consumeScheduledOp} that operates on bytes32 operationId.
505
- // *
506
- // * Returns the nonce of the scheduled operation that is consumed.
507
- // */
508
- // function _consumeScheduledOp(bytes32 operationId) internal virtual returns (uint32) {
509
- // uint48 timepoint = _schedules[operationId].timepoint;
510
- // uint32 nonce = _schedules[operationId].nonce;
511
-
512
- // if (timepoint == 0) {
513
- // revert AccessManagerNotScheduled(operationId);
514
- // } else if (timepoint > Time.timestamp()) {
515
- // revert AccessManagerNotReady(operationId);
516
- // } else if (_isExpired(timepoint)) {
517
- // revert AccessManagerExpired(operationId);
518
- // }
519
-
520
- // delete _schedules[operationId].timepoint; // reset the timepoint, keep the nonce
521
- // emit OperationExecuted(operationId, nonce);
522
-
523
- // return nonce;
524
- // }
525
-
526
- /// @inheritdoc IAccessManagerSimple
546
+ address target = _msgSender();
547
+ if (IAccessManaged(target).isConsumingScheduledOp() != IAccessManaged.isConsumingScheduledOp.selector) {
548
+ revert AccessManagerUnauthorizedConsume(target);
549
+ }
550
+ _consumeScheduledOp(hashOperation(caller, target, data));
551
+ }
552
+
553
+ /**
554
+ * @dev Internal variant of {consumeScheduledOp} that operates on bytes32 operationId.
555
+ *
556
+ * Returns the nonce of the scheduled operation that is consumed.
557
+ */
558
+ function _consumeScheduledOp(bytes32 operationId) internal virtual returns (uint32) {
559
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
560
+ uint48 timepoint = $._schedules[operationId].timepoint;
561
+ uint32 nonce = $._schedules[operationId].nonce;
562
+
563
+ if (timepoint == 0) {
564
+ revert AccessManagerNotScheduled(operationId);
565
+ } else if (timepoint > Time.timestamp()) {
566
+ revert AccessManagerNotReady(operationId);
567
+ } else if (_isExpired(timepoint)) {
568
+ revert AccessManagerExpired(operationId);
569
+ }
570
+
571
+ delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
572
+ emit OperationExecuted(operationId, nonce);
573
+
574
+ return nonce;
575
+ }
576
+
577
+ /// @inheritdoc IAccessManager
527
578
  function hashOperation(address caller, address target, bytes calldata data) public view virtual returns (bytes32) {
528
579
  return keccak256(abi.encode(caller, target, data));
529
580
  }
530
581
 
531
582
  // ==================================================== OTHERS ====================================================
532
- /// @inheritdoc IAccessManagerSimple
583
+ /// @inheritdoc IAccessManager
533
584
  function updateAuthority(address target, address newAuthority) public virtual onlyAuthorized {
534
585
  IAccessManaged(target).setAuthority(newAuthority);
535
586
  }
@@ -539,19 +590,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
539
590
  * @dev Check if the current call is authorized according to admin logic.
540
591
  */
541
592
  function _checkAuthorized() private {
542
- address caller = _msgSender();
593
+ address caller = msg.sender;//_msgSender();
543
594
  (bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
544
595
  if (!immediate) {
545
596
  if (delay == 0) {
546
597
  (, uint64 requiredRole, ) = _getAdminRestrictions(_msgData());
547
598
  revert AccessManagerUnauthorizedAccount(caller, requiredRole);
599
+ } else {
600
+ _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
548
601
  }
549
- // else {
550
- // _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
551
- // }
552
602
  }
553
603
  }
554
604
 
605
+ /**
606
+ * @dev Get the admin restrictions of a given function call based on the function and arguments involved.
607
+ *
608
+ * Returns:
609
+ * - bool restricted: does this data match a restricted operation
610
+ * - uint64: which role is this operation restricted to
611
+ * - uint32: minimum delay to enforce for that operation (max between operation's delay and admin's execution delay)
612
+ */
555
613
  /**
556
614
  * @dev Get the admin restrictions of a given function call based on the function and arguments involved.
557
615
  *
@@ -562,7 +620,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
562
620
  */
563
621
  function _getAdminRestrictions(
564
622
  bytes calldata data
565
- ) private view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
623
+ ) internal virtual view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
566
624
  if (data.length < 4) {
567
625
  return (false, 0, 0);
568
626
  }
@@ -587,7 +645,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
587
645
  selector == this.setTargetFunctionRole.selector
588
646
  ) {
589
647
  // First argument is a target.
590
- address target = abi.decode(data[0x04:0x24], (address));
648
+ address target = abi.decode(data[0x04:0x24], (address));// who is target???
591
649
  uint32 delay = getTargetAdminDelay(target);
592
650
  return (true, ADMIN_ROLE, delay);
593
651
  }
@@ -631,11 +689,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
631
689
  return (false, 0);
632
690
  }
633
691
 
634
- // if (caller == address(this)) {
635
- // // Caller is AccessManager, this means the call was sent through {execute} and it already checked
636
- // // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
637
- // return (_isExecuting(address(this), _checkSelector(data)), 0);
638
- // }
692
+ if (caller == address(this)) {
693
+ // Caller is AccessManager, this means the call was sent through {execute} and it already checked
694
+ // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
695
+ return (_isExecuting(address(this), _checkSelector(data)), 0);
696
+ }
639
697
 
640
698
  (bool enabled, uint64 roleId, uint32 operationDelay) = _getAdminRestrictions(data);
641
699
  if (!enabled) {
@@ -648,35 +706,36 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
648
706
  }
649
707
 
650
708
  // downcast is safe because both options are uint32
651
- delay = 0; // uint32(Math.max(operationDelay, executionDelay));
709
+ delay = uint32(Math.max(operationDelay, executionDelay));
652
710
  return (delay == 0, delay);
653
711
  }
654
712
 
655
- // /**
656
- // * @dev Returns true if a call with `target` and `selector` is being executed via {executed}.
657
- // */
658
- // function _isExecuting(address target, bytes4 selector) private view returns (bool) {
659
- // return _executionId == _hashExecutionId(target, selector);
660
- // }
713
+ /**
714
+ * @dev Returns true if a call with `target` and `selector` is being executed via {executed}.
715
+ */
716
+ function _isExecuting(address target, bytes4 selector) private view returns (bool) {
717
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
718
+ return $._executionId == _hashExecutionId(target, selector);
719
+ }
661
720
 
662
- // /**
663
- // * @dev Returns true if a schedule timepoint is past its expiration deadline.
664
- // */
665
- // function _isExpired(uint48 timepoint) private view returns (bool) {
666
- // return timepoint + expiration() <= Time.timestamp();
667
- // }
721
+ /**
722
+ * @dev Returns true if a schedule timepoint is past its expiration deadline.
723
+ */
724
+ function _isExpired(uint48 timepoint) private view returns (bool) {
725
+ return timepoint + expiration() <= Time.timestamp();
726
+ }
668
727
 
669
728
  /**
670
729
  * @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
671
730
  */
672
- function _checkSelector(bytes calldata data) private pure returns (bytes4) {
731
+ function _checkSelector(bytes calldata data) internal pure returns (bytes4) {
673
732
  return bytes4(data[0:4]);
674
733
  }
675
734
 
676
735
  /**
677
736
  * @dev Hashing function for execute protection
678
737
  */
679
- // function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
680
- // return keccak256(abi.encode(target, selector));
681
- // }
738
+ function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
739
+ return keccak256(abi.encode(target, selector));
740
+ }
682
741
  }