@etherisc/gif-next 0.0.2-e545d2c-624 → 0.0.2-e586bbf-616

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 (782) hide show
  1. package/README.md +138 -23
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +824 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +930 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1831 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +931 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1266 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2026 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2452 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -1254
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +604 -174
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +663 -2398
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1963 -739
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +637 -354
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -93
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3784 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +384 -361
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1023 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +791 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1435 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +851 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1022 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +391 -347
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1430 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1814 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +847 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1017 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +771 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1533 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +875 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +313 -299
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1085 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1017 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +328 -231
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +527 -305
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +192 -168
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1385 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +835 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +913 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +795 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +698 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +605 -28
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +299 -222
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +1031 -71
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +358 -274
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +381 -78
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -97
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +264 -253
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1497 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +835 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +264 -135
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1137 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +133 -145
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +154 -159
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1627 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1177 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +2035 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +823 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1406 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +763 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +780 -0
  360. package/contracts/authorization/AccessAdminLib.sol +396 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +169 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +144 -0
  365. package/contracts/authorization/IAuthorization.sol +27 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +247 -0
  371. package/contracts/distribution/DistributionService.sol +448 -0
  372. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  373. package/contracts/distribution/IDistributionComponent.sol +45 -0
  374. package/contracts/distribution/IDistributionService.sol +115 -0
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +136 -53
  390. package/contracts/instance/IInstanceService.sol +95 -22
  391. package/contracts/instance/Instance.sol +256 -182
  392. package/contracts/instance/InstanceAdmin.sol +383 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  394. package/contracts/instance/InstanceReader.sol +525 -208
  395. package/contracts/instance/InstanceService.sol +425 -258
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +298 -0
  398. package/contracts/instance/RiskSet.sol +118 -0
  399. package/contracts/instance/base/BalanceStore.sol +121 -0
  400. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  402. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +10 -9
  406. package/contracts/instance/module/IComponents.sol +62 -0
  407. package/contracts/instance/module/IDistribution.sol +25 -10
  408. package/contracts/instance/module/IPolicy.sol +81 -21
  409. package/contracts/instance/module/IRisk.sol +6 -1
  410. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +173 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  421. package/contracts/pool/BundleService.sol +406 -0
  422. package/contracts/pool/BundleServiceManager.sol +39 -0
  423. package/contracts/pool/IBundleService.sol +121 -0
  424. package/contracts/pool/IPoolComponent.sol +62 -0
  425. package/contracts/pool/IPoolService.sol +170 -0
  426. package/contracts/pool/Pool.sol +343 -0
  427. package/contracts/pool/PoolLib.sol +359 -0
  428. package/contracts/pool/PoolService.sol +614 -0
  429. package/contracts/pool/PoolServiceManager.sol +39 -0
  430. package/contracts/product/ApplicationService.sol +327 -0
  431. package/contracts/product/ApplicationServiceManager.sol +38 -0
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +63 -0
  434. package/contracts/product/ClaimService.sol +639 -0
  435. package/contracts/product/ClaimServiceManager.sol +38 -0
  436. package/contracts/product/IApplicationService.sol +88 -0
  437. package/contracts/product/IClaimService.sol +135 -0
  438. package/contracts/product/IPolicyService.sol +102 -0
  439. package/contracts/product/IPricingService.sol +40 -0
  440. package/contracts/product/IProductComponent.sol +62 -0
  441. package/contracts/product/IRiskService.sol +33 -0
  442. package/contracts/product/PolicyService.sol +645 -0
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +39 -0
  445. package/contracts/product/PricingService.sol +306 -0
  446. package/contracts/product/PricingServiceManager.sol +39 -0
  447. package/contracts/product/Product.sol +472 -0
  448. package/contracts/product/RiskService.sol +157 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +83 -36
  451. package/contracts/registry/IRegistry.sol +113 -29
  452. package/contracts/registry/IRegistryService.sol +38 -34
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -1
  455. package/contracts/registry/Registry.sol +550 -210
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +284 -0
  458. package/contracts/registry/RegistryService.sol +119 -198
  459. package/contracts/registry/RegistryServiceManager.sol +24 -33
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +520 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  464. package/contracts/registry/TokenRegistry.sol +265 -61
  465. package/contracts/shared/Component.sol +210 -0
  466. package/contracts/shared/ComponentService.sol +678 -0
  467. package/contracts/shared/ComponentServiceManager.sol +38 -0
  468. package/contracts/shared/ContractLib.sol +311 -0
  469. package/contracts/shared/IComponent.sol +58 -0
  470. package/contracts/shared/IComponentService.sol +110 -0
  471. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  472. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  473. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  474. package/contracts/shared/INftOwnable.sol +15 -12
  475. package/contracts/shared/IPolicyHolder.sol +35 -0
  476. package/contracts/shared/IRegisterable.sol +24 -5
  477. package/contracts/shared/IRegistryLinked.sol +11 -0
  478. package/contracts/shared/IService.sol +12 -5
  479. package/contracts/shared/InitializableERC165.sol +35 -0
  480. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  481. package/contracts/shared/KeyValueStore.sol +131 -0
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +75 -82
  485. package/contracts/shared/PolicyHolder.sol +63 -0
  486. package/contracts/shared/Registerable.sol +54 -38
  487. package/contracts/shared/RegistryLinked.sol +38 -0
  488. package/contracts/shared/Service.sol +44 -35
  489. package/contracts/shared/TokenHandler.sol +327 -12
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +195 -0
  492. package/contracts/staking/IStakingService.sol +170 -0
  493. package/contracts/staking/Staking.sol +605 -0
  494. package/contracts/staking/StakingLib.sol +281 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +52 -0
  497. package/contracts/staking/StakingReader.sol +199 -0
  498. package/contracts/staking/StakingService.sol +468 -0
  499. package/contracts/staking/StakingServiceManager.sol +45 -0
  500. package/contracts/staking/StakingStore.sol +606 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/{types → type}/AddressSet.sol +1 -1
  503. package/contracts/type/Amount.sol +150 -0
  504. package/contracts/{types → type}/Blocknumber.sol +27 -3
  505. package/contracts/type/ClaimId.sol +80 -0
  506. package/contracts/{types → type}/DistributorType.sol +2 -2
  507. package/contracts/type/Fee.sol +66 -0
  508. package/contracts/{types → type}/Key32.sol +2 -2
  509. package/contracts/type/Key32Set.sol +62 -0
  510. package/contracts/{types → type}/NftId.sol +28 -15
  511. package/contracts/{types → type}/NftIdSet.sol +2 -2
  512. package/contracts/type/ObjectType.sol +307 -0
  513. package/contracts/type/PayoutId.sol +82 -0
  514. package/contracts/{types → type}/Referral.sol +6 -1
  515. package/contracts/type/RequestId.sol +75 -0
  516. package/contracts/type/RiskId.sol +75 -0
  517. package/contracts/type/RoleId.sol +180 -0
  518. package/contracts/type/Seconds.sol +105 -0
  519. package/contracts/type/Selector.sol +107 -0
  520. package/contracts/{types → type}/StateId.sol +48 -4
  521. package/contracts/type/String.sol +65 -0
  522. package/contracts/{types → type}/Timestamp.sol +33 -19
  523. package/contracts/type/UFixed.sol +262 -0
  524. package/contracts/{types → type}/Version.sol +59 -7
  525. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  526. package/contracts/upgradeability/ProxyManager.sol +246 -0
  527. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  528. package/contracts/upgradeability/Versionable.sol +62 -0
  529. package/package.json +12 -8
  530. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  532. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -397
  534. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  536. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  540. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  541. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  544. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  545. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  548. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  550. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  552. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  554. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  556. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  558. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  560. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  562. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  565. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  567. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  569. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  571. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  573. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  575. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  581. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  582. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  583. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  585. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  586. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  587. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  589. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  590. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  591. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  593. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -532
  595. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  597. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  600. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  601. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  602. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  603. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  604. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  605. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  606. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1031
  609. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  611. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
  613. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
  615. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
  617. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  621. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
  624. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1156
  627. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  629. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  630. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  631. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  632. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
  633. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  634. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  635. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  636. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  637. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  638. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  639. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  640. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -530
  641. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  642. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  643. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  644. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  645. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  646. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  647. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  648. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  649. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  650. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  651. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  652. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  653. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  654. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  655. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  656. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  657. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  658. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  659. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  660. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  661. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  662. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  663. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  664. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  665. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  666. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  667. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  668. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  669. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  670. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  671. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  672. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  673. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  675. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  677. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  679. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  681. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  682. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  683. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  685. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  686. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  687. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  689. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  691. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  693. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  695. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  697. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  699. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  701. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  703. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  705. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  707. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  709. package/contracts/components/BaseComponent.sol +0 -159
  710. package/contracts/components/Distribution.sol +0 -164
  711. package/contracts/components/IBaseComponent.sol +0 -34
  712. package/contracts/components/IDistributionComponent.sol +0 -44
  713. package/contracts/components/IPoolComponent.sol +0 -66
  714. package/contracts/components/IProductComponent.sol +0 -35
  715. package/contracts/components/Pool.sol +0 -272
  716. package/contracts/components/Product.sol +0 -301
  717. package/contracts/experiment/cloning/Cloner.sol +0 -47
  718. package/contracts/experiment/errors/Require.sol +0 -38
  719. package/contracts/experiment/errors/Revert.sol +0 -44
  720. package/contracts/experiment/inheritance/A.sol +0 -53
  721. package/contracts/experiment/inheritance/B.sol +0 -28
  722. package/contracts/experiment/inheritance/C.sol +0 -34
  723. package/contracts/experiment/inheritance/IA.sol +0 -13
  724. package/contracts/experiment/inheritance/IB.sol +0 -10
  725. package/contracts/experiment/inheritance/IC.sol +0 -12
  726. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  727. package/contracts/experiment/statemachine/ISM.sol +0 -25
  728. package/contracts/experiment/statemachine/SM.sol +0 -57
  729. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  730. package/contracts/experiment/types/TypeA.sol +0 -47
  731. package/contracts/experiment/types/TypeB.sol +0 -29
  732. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  733. package/contracts/instance/BundleManager.sol +0 -129
  734. package/contracts/instance/IInstanceBase.sol +0 -26
  735. package/contracts/instance/InstanceAccessManager.sol +0 -303
  736. package/contracts/instance/InstanceBase.sol +0 -41
  737. package/contracts/instance/ObjectManager.sol +0 -101
  738. package/contracts/instance/base/ComponentServiceBase.sol +0 -76
  739. package/contracts/instance/base/IInstanceBase.sol +0 -23
  740. package/contracts/instance/base/KeyValueStore.sol +0 -172
  741. package/contracts/instance/base/Lifecycle.sol +0 -100
  742. package/contracts/instance/module/IAccess.sol +0 -48
  743. package/contracts/instance/module/ISetup.sol +0 -46
  744. package/contracts/instance/module/ITreasury.sol +0 -23
  745. package/contracts/instance/service/BundleService.sol +0 -294
  746. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  747. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  748. package/contracts/instance/service/DistributionService.sol +0 -120
  749. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  750. package/contracts/instance/service/IBundleService.sol +0 -44
  751. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  752. package/contracts/instance/service/IDistributionService.sol +0 -12
  753. package/contracts/instance/service/IPolicyService.sol +0 -94
  754. package/contracts/instance/service/IPoolService.sol +0 -20
  755. package/contracts/instance/service/IProductService.sol +0 -40
  756. package/contracts/instance/service/PolicyService.sol +0 -539
  757. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  758. package/contracts/instance/service/PoolService.sol +0 -145
  759. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  760. package/contracts/instance/service/ProductService.sol +0 -213
  761. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  762. package/contracts/registry/RegistryAccessManager.sol +0 -210
  763. package/contracts/registry/ReleaseManager.sol +0 -342
  764. package/contracts/shared/ContractDeployerLib.sol +0 -72
  765. package/contracts/shared/ERC165.sol +0 -25
  766. package/contracts/shared/ProxyManager.sol +0 -94
  767. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  768. package/contracts/shared/Versionable.sol +0 -147
  769. package/contracts/test/TestFee.sol +0 -25
  770. package/contracts/test/TestRegisterable.sol +0 -18
  771. package/contracts/test/TestRoleId.sol +0 -14
  772. package/contracts/test/TestService.sol +0 -25
  773. package/contracts/test/TestToken.sol +0 -26
  774. package/contracts/test/TestVersion.sol +0 -44
  775. package/contracts/test/TestVersionable.sol +0 -17
  776. package/contracts/types/ChainId.sol +0 -38
  777. package/contracts/types/Fee.sol +0 -56
  778. package/contracts/types/NumberId.sol +0 -52
  779. package/contracts/types/ObjectType.sol +0 -152
  780. package/contracts/types/RiskId.sol +0 -43
  781. package/contracts/types/RoleId.sol +0 -90
  782. package/contracts/types/UFixed.sol +0 -325
@@ -8,6 +8,8 @@ import {ITransferInterceptor} from "./ITransferInterceptor.sol";
8
8
 
9
9
  contract ChainNft is ERC721Enumerable {
10
10
 
11
+ event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
12
+
11
13
  // constants
12
14
  string public constant NAME = "Dezentralized Insurance Protocol NFT";
13
15
  string public constant SYMBOL = "DIPNFT";
@@ -16,10 +18,10 @@ contract ChainNft is ERC721Enumerable {
16
18
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
17
19
 
18
20
  // custom errors
19
- error CallerNotRegistry(address caller);
20
- error RegistryAddressZero();
21
- error NftUriEmpty();
22
- error NftUriAlreadySet();
21
+ error ErrorChainNftCallerNotRegistry(address caller);
22
+ error ErrorChainNftRegistryAddressZero();
23
+ error ErrorChainNftUriEmpty();
24
+ error ErrorChainNftUriAlreadySet();
23
25
 
24
26
  // contract state
25
27
 
@@ -33,33 +35,34 @@ contract ChainNft is ERC721Enumerable {
33
35
  address private _registry;
34
36
 
35
37
  // only used for _getNextTokenId
36
- uint256 internal _chainIdInt;
37
38
  uint256 internal _chainIdDigits;
38
39
  uint256 internal _chainIdMultiplier;
39
40
  uint256 internal _idNext;
40
41
  uint256 internal _totalMinted;
41
42
 
42
43
  modifier onlyRegistry() {
43
- if (msg.sender != _registry) { revert CallerNotRegistry(msg.sender); }
44
+ if (msg.sender != _registry) { revert ErrorChainNftCallerNotRegistry(msg.sender); }
44
45
  _;
45
46
  }
46
47
 
47
- constructor(address registry) ERC721(NAME, SYMBOL) {
48
- if (registry == address(0)) { revert RegistryAddressZero(); }
48
+ constructor(address registry)
49
+ ERC721(NAME, SYMBOL)
50
+ {
51
+ if (registry == address(0)) { revert ErrorChainNftRegistryAddressZero(); }
49
52
 
53
+ // NFT contract is deployed by the registry
50
54
  _registry = registry;
51
- _chainIdInt = block.chainid;
52
- _chainIdDigits = 0;
53
-
54
- // count digis
55
- uint256 num = _chainIdInt;
56
- while (num != 0) {
57
- _chainIdDigits++;
58
- num /= 10;
59
- }
60
55
 
56
+ _chainIdDigits = _calculateChainIdDigits(block.chainid);
61
57
  _chainIdMultiplier = 10 ** _chainIdDigits;
62
- _idNext = 3;
58
+
59
+ // the first object registered through normal registration starts with id 4
60
+ // 1 -> protocol
61
+ // 2 -> registry
62
+ // 3 -> staking
63
+ // >= 4 -> all other objects
64
+ _idNext = 4;
65
+ _totalMinted = 0;
63
66
  }
64
67
 
65
68
  /**
@@ -67,12 +70,16 @@ contract ChainNft is ERC721Enumerable {
67
70
  * not part of the IRegistry interface only needed for
68
71
  * initial registry setup (protocol and global registry objects)
69
72
  */
70
- function mint(address to, uint256 tokenId) external onlyRegistry {
71
- _totalMinted++;
72
- _safeMint(to, tokenId);
73
+ function mint(
74
+ address to,
75
+ uint256 tokenId
76
+ )
77
+ external
78
+ onlyRegistry()
79
+ {
80
+ _safeMintWithInterceptorAddress(to, tokenId, address(0));
73
81
  }
74
82
 
75
-
76
83
  /**
77
84
  * @dev mints the next token to register new objects
78
85
  * non-zero transferInterceptors are recorded and called during nft token transfers.
@@ -82,7 +89,11 @@ contract ChainNft is ERC721Enumerable {
82
89
  address to,
83
90
  address interceptor,
84
91
  string memory uri
85
- ) public onlyRegistry returns (uint256 tokenId) {
92
+ )
93
+ public
94
+ onlyRegistry()
95
+ returns (uint256 tokenId)
96
+ {
86
97
  tokenId = _getNextTokenId();
87
98
 
88
99
  if (interceptor != address(0)) {
@@ -93,20 +104,21 @@ contract ChainNft is ERC721Enumerable {
93
104
  _uri[tokenId] = uri;
94
105
  }
95
106
 
96
- _totalMinted++;
97
- _safeMint(to, tokenId);
107
+ _safeMintWithInterceptorAddress(to, tokenId, interceptor);
98
108
  }
99
109
 
100
110
 
101
111
  /**
102
- * @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
103
- * this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
112
+ * @dev Amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id.
113
+ * This allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
104
114
  */
105
- function transferFrom(address from, address to, uint256 tokenId) public override (ERC721, IERC721) {
115
+ function transferFrom(address from, address to, uint256 tokenId) public override (IERC721, ERC721) {
116
+ // default open zeppelin implementation of transferFrom
106
117
  super.transferFrom(from, to, tokenId);
107
118
 
108
119
  if (_interceptor[tokenId] != address(0)) {
109
- ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId);
120
+ address operator = msg.sender;
121
+ ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId, operator);
110
122
  }
111
123
  }
112
124
 
@@ -121,8 +133,8 @@ contract ChainNft is ERC721Enumerable {
121
133
  uint256 tokenId,
122
134
  string memory uri
123
135
  ) external onlyRegistry {
124
- if (bytes(uri).length == 0) { revert NftUriEmpty(); }
125
- if (bytes(_uri[tokenId]).length > 0) { revert NftUriAlreadySet(); }
136
+ if (bytes(uri).length == 0) { revert ErrorChainNftUriEmpty(); }
137
+ if (bytes(_uri[tokenId]).length > 0) { revert ErrorChainNftUriAlreadySet(); }
126
138
 
127
139
  _requireOwned(tokenId);
128
140
  _uri[tokenId] = uri;
@@ -188,15 +200,50 @@ contract ChainNft is ERC721Enumerable {
188
200
  * (42 * 10 ** 10 + 9876543210) * 100 + 10
189
201
  * (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
190
202
  */
191
- function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
192
- id =
193
- (idIndex * _chainIdMultiplier + _chainIdInt) *
194
- 100 +
195
- _chainIdDigits;
203
+ function calculateTokenId(uint256 idIndex, uint256 chainId) public view returns (uint256 id) {
204
+ if(chainId == block.chainid) {
205
+ return 100 * (idIndex * _chainIdMultiplier + chainId) + _chainIdDigits;
206
+ } else {
207
+ uint256 chainIdDigits = _calculateChainIdDigits(chainId);
208
+ return 100 * (idIndex * (10 ** chainIdDigits) + chainId) + chainIdDigits;
209
+ }
210
+ }
211
+
212
+ function calculateTokenId(uint256 idIndex) public view returns (uint256) {
213
+ return 100 * (idIndex * _chainIdMultiplier + block.chainid) + _chainIdDigits;
196
214
  }
197
215
 
216
+ function getNextTokenId() external view returns (uint256) {
217
+ return calculateTokenId(_idNext);
218
+ }
219
+
220
+ // ---------------- private functions ----------------- //
221
+
198
222
  function _getNextTokenId() private returns (uint256 id) {
199
223
  id = calculateTokenId(_idNext);
200
224
  _idNext++;
201
225
  }
226
+
227
+ function _calculateChainIdDigits(uint256 chainId) private pure returns (uint256) {
228
+ uint256 num = chainId;
229
+ uint256 digits = 0;
230
+ while (num != 0) {
231
+ digits++;
232
+ num /= 10;
233
+ }
234
+ return digits;
235
+ }
236
+
237
+ function _safeMintWithInterceptorAddress(
238
+ address to,
239
+ uint256 tokenId,
240
+ address interceptor
241
+ )
242
+ private
243
+ {
244
+ _totalMinted++;
245
+ _safeMint(to, tokenId);
246
+
247
+ emit LogTokenInterceptorAddress(tokenId, interceptor);
248
+ }
202
249
  }
@@ -3,75 +3,140 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
 
6
- import {ChainNft} from "./ChainNft.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ObjectType} from "../types/ObjectType.sol";
9
- import {VersionPart} from "../types/Version.sol";
10
- import {Timestamp} from "../types/Timestamp.sol";
11
-
12
- interface IRegistry is IERC165 {
6
+ import {IRelease} from "./IRelease.sol";
7
+
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {VersionPart} from "../type/Version.sol";
11
+
12
+ /// @title Chain Registry interface.
13
+ /// A chain registry holds all protocol relevant objects with basic metadata.
14
+ /// Registered objects include services, instances, products, pools, policies, bundles, stakes and more.
15
+ /// Registered objects are represented by NFTs.
16
+ /// When on mainnet registry is global and keeps arbitrary number of chain registries residing on different chain ids.
17
+ /// When not on mainnet registry keeps the only object residing on different chain id (on mainnet) - global registry.
18
+ interface IRegistry is
19
+ IERC165
20
+ {
13
21
 
14
22
  event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
15
23
  event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
24
+ event LogChainRegistryRegistration(NftId nftId, uint256 chainId, address chainRegistryAddress);
25
+
26
+ // initialize
27
+ error ErrorRegistryCallerNotDeployer();
16
28
 
17
29
  // register()
18
- error CallerNotRegistryService();
19
- error ServiceRegistration();
30
+ error ErrorRegistryObjectTypeNotSupported(ObjectType objectType);
31
+
32
+ // registerRegistry()
33
+ error ErrorRegistryNotOnMainnet(uint256 chainId);
34
+ error ErrorRegistryChainRegistryChainIdZero(NftId nftId);
35
+ error ErrorRegistryChainRegistryAddressZero(NftId nftId, uint256 chainId);
36
+ error ErrorRegistryChainRegistryNftIdInvalid(NftId nftId, uint256 chainId);
37
+ error ErrorRegistryChainRegistryAlreadyRegistered(NftId nftId, uint256 chainId);
20
38
 
21
39
  // registerService()
22
- error CallerNotReleaseManager();
23
- error ServiceAlreadyRegistered(address service);
40
+ error ErrorRegistryServiceAddressZero();
41
+ error ErrorRegistryServiceVersionZero(address service);
42
+
43
+ // TODO cleanup
44
+ //error ErrorRegistryServiceVersionMismatch(address service, VersionPart serviceVersion, VersionPart releaseVersion);
45
+ //error ErrorRegistryServiceVersionNotDeploying(address service, VersionPart version);
46
+ error ErrorRegistryServiceDomainZero(address service, VersionPart version);
47
+ error ErrorRegistryNotService(address service, ObjectType objectType);
48
+ error ErrorRegistryServiceParentNotRegistry(address service, VersionPart version, NftId parentNftId);
49
+ error ErrorRegistryServiceDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
50
+
51
+ // registerWithCustomTypes()
52
+ error ErrorRegistryCoreTypeRegistration();
24
53
 
25
54
  // _register()
26
- error ZeroParentAddress();
27
- error InvalidTypesCombination(ObjectType objectType, ObjectType parentType);
28
- error ContractAlreadyRegistered(address objectAddress);
55
+ error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
56
+ error ErrorRegistryTypeCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
57
+ error ErrorRegistryContractAlreadyRegistered(address objectAddress);
29
58
 
30
59
  struct ObjectInfo {
60
+ // slot 0
31
61
  NftId nftId;
32
62
  NftId parentNftId;
33
63
  ObjectType objectType;
34
64
  bool isInterceptor;
65
+ // slot 1
35
66
  address objectAddress;
67
+ // slot 2
36
68
  address initialOwner;
69
+ // slot 3
37
70
  bytes data;
38
- }// TODO delete nftId and initialOwner(if not used) from struct
39
- // TODO strong disagree, keep nftId there (lets keep get object info return object consistent)
40
-
41
- struct ReleaseInfo {
42
- ObjectType[] domains;
43
- Timestamp createdAt;
44
- //Timestamp updatedAt;
45
71
  }
46
72
 
73
+ /// @dev Registers a registry contract for a specified chain.
74
+ /// Only one chain registry may be registered per chain
75
+ function registerRegistry(
76
+ NftId nftId,
77
+ uint256 chainId,
78
+ address chainRegistryAddress
79
+ ) external;
80
+
81
+ /// @dev Register a service with using the provided domain and version.
82
+ /// The function returns a newly minted service NFT ID.
83
+ /// May only be used to register services.
47
84
  function registerService(
48
85
  ObjectInfo memory serviceInfo,
49
86
  VersionPart serviceVersion,
50
87
  ObjectType serviceDomain
51
88
  ) external returns(NftId nftId);
52
89
 
90
+ /// @dev Register an object with a known core type.
91
+ /// The function returns a newly minted object NFT ID.
92
+ /// May not be used to register services.
53
93
  function register(ObjectInfo memory info) external returns (NftId nftId);
54
94
 
55
- function getMajorVersionMin() external view returns (VersionPart);
95
+ /// @dev Register an object with a custom type.
96
+ /// The function returns a newly minted object NFT ID.
97
+ /// This function is reserved for GIF releases > 3.
98
+ /// May not be used to register known core types.
99
+ function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
56
100
 
57
- function getMajorVersionMax() external view returns (VersionPart);
101
+ function getInitialVersion() external view returns (VersionPart);
58
102
 
59
- function getMajorVersion() external view returns (VersionPart);
103
+ function getNextVersion() external view returns (VersionPart);
60
104
 
61
- function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory);
105
+ function getLatestVersion() external view returns (VersionPart);
62
106
 
63
- function getObjectCount() external view returns (uint256);
107
+ function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory);
64
108
 
65
- function getNftId() external view returns (NftId nftId);
109
+ /// @dev Returns the number of supported chains.
110
+ function chainIds() external view returns (uint256);
111
+
112
+ /// @dev Returns the chain id at the specified index.
113
+ function getChainId(uint256 idx) external view returns (uint256);
66
114
 
67
- function getNftId(address objectAddress) external view returns (NftId nftId);
115
+ /// @dev Returns the NFT ID of the registry for the specified chain.
116
+ function getRegistryNftId(uint256 chainId) external returns (NftId nftId);
117
+
118
+ function getObjectCount() external view returns (uint256);
119
+
120
+ function getNftIdForAddress(address objectAddress) external view returns (NftId nftId);
68
121
 
69
122
  function ownerOf(NftId nftId) external view returns (address);
70
123
 
124
+ function isOwnerOf(NftId nftId, address expectedOwner) external view returns (bool);
125
+
71
126
  function ownerOf(address contractAddress) external view returns (address);
72
127
 
73
128
  function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
74
129
 
130
+ function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
131
+
132
+ function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
133
+
134
+ function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
135
+
136
+ function getObjectAddress(NftId nftId) external view returns (address objectAddress);
137
+
138
+ /// @dev Returns the object info for the specified object address.
139
+ // MUST not be used with chain registry address (resides on different chan id)
75
140
  function getObjectInfo(address object) external view returns (ObjectInfo memory info);
76
141
 
77
142
  function isRegistered(NftId nftId) external view returns (bool);
@@ -80,12 +145,31 @@ interface IRegistry is IERC165 {
80
145
 
81
146
  function isRegisteredService(address contractAddress) external view returns (bool);
82
147
 
148
+ function isRegisteredComponent(address object) external view returns (bool);
149
+
150
+ function isActiveRelease(VersionPart version) external view returns (bool);
151
+
83
152
  function getServiceAddress(
84
153
  ObjectType serviceDomain,
85
154
  VersionPart releaseVersion
86
155
  ) external view returns (address serviceAddress);
87
156
 
88
- function getChainNft() external view returns (ChainNft);
157
+ function getProtocolNftId() external view returns (NftId protocolNftId);
158
+
159
+ function getNftId() external view returns (NftId nftId);
89
160
 
90
161
  function getOwner() external view returns (address);
162
+
163
+ // TODO refactor the address getters below to contract getters
164
+ function getChainNftAddress() external view returns (address);
165
+
166
+ function getReleaseRegistryAddress() external view returns (address);
167
+
168
+ function getStakingAddress() external view returns (address);
169
+
170
+ function getTokenRegistryAddress() external view returns (address);
171
+
172
+ function getRegistryAdminAddress() external view returns (address);
173
+
174
+ function getAuthority() external view returns (address);
91
175
  }
@@ -1,58 +1,62 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
4
+ // import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
- import {NftId} from "../types/NftId.sol";
7
- import {ObjectType} from "../types/ObjectType.sol";
8
- import {RoleId} from "../types/RoleId.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {RoleId} from "../type/RoleId.sol";
9
9
  import {IService} from "../shared/IService.sol";
10
10
  import {IRegistry} from "./IRegistry.sol";
11
11
 
12
12
  import {IRegisterable} from "../shared/IRegisterable.sol";
13
- import {IBaseComponent} from "../components/IBaseComponent.sol";
13
+ import {IComponent} from "../shared/IComponent.sol";
14
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
15
+
14
16
 
15
17
  interface IRegistryService is
16
- IService,
17
- IAccessManaged
18
+ IService
18
19
  {
19
- error SelfRegistration();
20
- error NotRegistryOwner();
20
+ error ErrorRegistryServiceNotRegistryOwner();
21
+
22
+ error ErrorRegistryServiceNotService(address notService);
23
+ error ErrorRegistryServiceNotInstance(address notInstance);
24
+ error ErrorRegistryServiceNotProduct(address notProduct);
25
+ error ErrorRegistryServiceNotComponent(address notComponent);
26
+ error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
21
27
 
22
- error NotService();
23
- error NotInstance();
24
- error NotProduct();
25
- error NotPool();
26
- error NotDistribution();
28
+ error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
29
+ error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
30
+ error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
31
+ error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
32
+ error ErrorRegistryServiceRegisterableOwnerRegistered(IRegisterable registerable, address owner);
33
+ error ErrorRegistryServiceRegisterableSelfRegistration(IRegisterable registerable);
27
34
 
28
- error UnexpectedRegisterableType(ObjectType expected, ObjectType found);
29
- error NotRegisterableOwner(address expectedOwner);
30
- error RegisterableOwnerIsZero();
31
- error RegisterableOwnerIsRegistered();
32
- error InvalidInitialOwner(address initialOwner);
33
- error InvalidAddress(address registerableAddress);
35
+ error ErrorRegistryServiceObjectAddressNotZero(ObjectType objectType);
36
+ error ErrorRegistryServiceObjectTypeInvalid(ObjectType expected, ObjectType found);
37
+ error ErrorRegistryServiceObjectOwnerRegistered(ObjectType objectType, address owner);
38
+ error ErrorRegistryServiceObjectOwnerZero(ObjectType objectType);
34
39
 
35
- struct FunctionConfig
36
- {
37
- ObjectType serviceDomain;
38
- bytes4 selector;
39
- }
40
+ error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
41
+ error ErrorRegistryServiceInvalidAddress(address registerableAddress);
40
42
 
41
- // TODO used by service -> add owner arg
42
- function registerInstance(IRegisterable instance)
43
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
43
+ function registerStake(IRegistry.ObjectInfo memory info)
44
+ external returns(NftId nftId);
44
45
 
45
- function registerProduct(IBaseComponent product, address owner)
46
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
46
+ function registerInstance(IRegisterable instance, address owner)
47
+ external returns(IRegistry.ObjectInfo memory info);
47
48
 
48
- function registerPool(IBaseComponent pool, address owner)
49
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
49
+ function registerProduct(IComponent product, address owner)
50
+ external returns(IRegistry.ObjectInfo memory info);
50
51
 
51
- function registerDistribution(IBaseComponent distribution, address owner)
52
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
52
+ function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
53
+ external returns(IRegistry.ObjectInfo memory info);
54
+
55
+ function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
53
56
 
54
57
  function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
55
58
 
56
59
  function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
60
+
57
61
  }
58
62
 
@@ -0,0 +1,29 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
5
+
6
+ import {StateId} from "../type/StateId.sol";
7
+ import {Timestamp} from "../type/Timestamp.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+
10
+ /// @title Marks contracts that are linked to a specific GIF release version.
11
+ interface IRelease {
12
+
13
+ struct ReleaseInfo {
14
+ // slot 0
15
+ address releaseAdmin;
16
+ StateId state;
17
+ VersionPart version;
18
+ Timestamp activatedAt;
19
+ Timestamp disabledAt;
20
+ // slot 1
21
+ IServiceAuthorization auth;
22
+ // slot 2
23
+ bytes32 salt;
24
+ }
25
+
26
+ /// @dev Registers a registry contract for a specified chain.
27
+ /// Only one chain registry may be registered per chain
28
+ function getRelease() external view returns (VersionPart release);
29
+ }
@@ -2,5 +2,5 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  interface ITransferInterceptor {
5
- function nftTransferFrom(address from, address to, uint256 tokenId) external;
5
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external;
6
6
  }