@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-fb87f3a-607

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 (507) hide show
  1. package/README.md +10 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +115 -113
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +46 -91
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +84 -20
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +10 -20
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +42 -18
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +75 -126
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +65 -41
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -72
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +224 -198
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +117 -71
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +104 -166
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +138 -200
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  53. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  67. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +102 -159
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +106 -163
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +114 -171
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  87. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +54 -49
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -78
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -83
  97. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  98. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +136 -138
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  113. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  114. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +58 -53
  115. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  117. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  127. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  132. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  137. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -94
  140. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  142. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  148. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +129 -176
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +44 -71
  158. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +98 -94
  162. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  163. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +177 -233
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  174. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  177. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  179. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +76 -82
  188. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  189. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  191. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  192. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  193. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  195. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +139 -173
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  197. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  201. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  204. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  205. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  207. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +62 -155
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  216. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  217. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  218. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  219. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/Registry.sol/Registry.json +102 -314
  221. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  222. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
  223. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  224. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  225. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  226. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  227. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  228. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  229. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  230. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
  231. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  233. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  234. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +187 -135
  235. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  236. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  237. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  238. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  239. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  241. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +345 -164
  243. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  244. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  245. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  246. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  247. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  250. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  252. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  254. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  256. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +251 -82
  258. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  260. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  263. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  265. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  267. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  269. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  270. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  271. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  272. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  273. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
  274. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  277. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  278. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  279. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  280. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  281. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  283. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  284. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  285. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  291. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  293. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  294. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +81 -101
  295. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  296. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +48 -75
  297. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  298. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  299. package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -170
  300. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
  302. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  304. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  306. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +77 -132
  308. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  310. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  312. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  313. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
  314. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  315. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  316. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  321. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  323. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  325. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  328. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  329. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  330. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  332. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  333. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  334. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  336. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  338. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  340. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  342. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  343. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  344. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  346. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  348. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  350. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  355. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  356. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  357. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  358. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  360. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  362. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  364. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  365. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  366. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  367. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  368. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  369. package/contracts/accounting/AccountingService.sol +22 -33
  370. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  371. package/contracts/accounting/IAccountingService.sol +7 -8
  372. package/contracts/authorization/AccessAdmin.sol +24 -47
  373. package/contracts/authorization/AccessAdminLib.sol +29 -15
  374. package/contracts/authorization/AccessManagerCloneable.sol +51 -24
  375. package/contracts/authorization/Authorization.sol +2 -2
  376. package/contracts/authorization/IAccessAdmin.sol +3 -3
  377. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  378. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  379. package/contracts/distribution/BasicDistribution.sol +2 -0
  380. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  381. package/contracts/distribution/Distribution.sol +2 -0
  382. package/contracts/distribution/DistributionService.sol +25 -27
  383. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  384. package/contracts/distribution/IDistributionService.sol +4 -3
  385. package/contracts/examples/fire/FirePool.sol +4 -0
  386. package/contracts/examples/fire/FireProduct.sol +4 -0
  387. package/contracts/examples/flight/FlightLib.sol +337 -0
  388. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  389. package/contracts/examples/flight/FlightNft.sol +234 -0
  390. package/contracts/examples/flight/FlightOracle.sol +226 -0
  391. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  392. package/contracts/examples/flight/FlightPool.sol +89 -0
  393. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  394. package/contracts/examples/flight/FlightProduct.sol +687 -0
  395. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  396. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  397. package/contracts/examples/flight/FlightUSD.sol +28 -0
  398. package/contracts/examples/flight/originalV1.sol +396 -0
  399. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  400. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  401. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  402. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  403. package/contracts/instance/BaseStore.sol +4 -0
  404. package/contracts/instance/IBaseStore.sol +8 -0
  405. package/contracts/instance/IInstance.sol +1 -1
  406. package/contracts/instance/IInstanceService.sol +2 -0
  407. package/contracts/instance/Instance.sol +12 -8
  408. package/contracts/instance/InstanceAdmin.sol +17 -11
  409. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  410. package/contracts/instance/InstanceReader.sol +56 -22
  411. package/contracts/instance/InstanceService.sol +24 -18
  412. package/contracts/instance/InstanceServiceManager.sol +6 -4
  413. package/contracts/instance/base/Cloneable.sol +10 -4
  414. package/contracts/instance/base/ObjectSet.sol +2 -2
  415. package/contracts/oracle/BasicOracle.sol +3 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  417. package/contracts/oracle/IOracleService.sol +16 -12
  418. package/contracts/oracle/Oracle.sol +6 -5
  419. package/contracts/oracle/OracleService.sol +67 -37
  420. package/contracts/oracle/OracleServiceManager.sol +6 -4
  421. package/contracts/pool/BasicPool.sol +4 -2
  422. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  423. package/contracts/pool/BundleService.sol +20 -26
  424. package/contracts/pool/BundleServiceManager.sol +7 -5
  425. package/contracts/pool/IBundleService.sol +1 -1
  426. package/contracts/pool/IPoolService.sol +6 -5
  427. package/contracts/pool/Pool.sol +3 -1
  428. package/contracts/pool/PoolLib.sol +102 -5
  429. package/contracts/pool/PoolService.sol +101 -67
  430. package/contracts/pool/PoolServiceManager.sol +6 -4
  431. package/contracts/product/ApplicationService.sol +34 -13
  432. package/contracts/product/ApplicationServiceManager.sol +6 -4
  433. package/contracts/product/BasicProduct.sol +2 -0
  434. package/contracts/product/BasicProductAuthorization.sol +7 -7
  435. package/contracts/product/ClaimService.sol +34 -10
  436. package/contracts/product/ClaimServiceManager.sol +7 -5
  437. package/contracts/product/IPolicyService.sol +2 -1
  438. package/contracts/product/PolicyService.sol +58 -45
  439. package/contracts/product/PolicyServiceLib.sol +5 -3
  440. package/contracts/product/PolicyServiceManager.sol +6 -4
  441. package/contracts/product/PricingService.sol +8 -7
  442. package/contracts/product/PricingServiceManager.sol +6 -4
  443. package/contracts/product/Product.sol +2 -0
  444. package/contracts/product/RiskService.sol +40 -8
  445. package/contracts/product/RiskServiceManager.sol +6 -4
  446. package/contracts/registry/ChainNft.sol +1 -1
  447. package/contracts/registry/IRegistry.sol +14 -20
  448. package/contracts/registry/IRegistryService.sol +14 -10
  449. package/contracts/registry/IRelease.sol +3 -0
  450. package/contracts/registry/Registry.sol +78 -124
  451. package/contracts/registry/RegistryAdmin.sol +29 -12
  452. package/contracts/registry/RegistryAuthorization.sol +3 -4
  453. package/contracts/registry/RegistryService.sol +82 -99
  454. package/contracts/registry/RegistryServiceManager.sol +11 -4
  455. package/contracts/registry/ReleaseAdmin.sol +23 -9
  456. package/contracts/registry/ReleaseRegistry.sol +74 -64
  457. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  458. package/contracts/registry/TokenRegistry.sol +15 -6
  459. package/contracts/shared/Component.sol +22 -27
  460. package/contracts/shared/ComponentService.sol +135 -45
  461. package/contracts/shared/ComponentServiceManager.sol +7 -5
  462. package/contracts/shared/ContractLib.sol +93 -359
  463. package/contracts/shared/EcdsaChecker.sol +5 -0
  464. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  465. package/contracts/shared/IComponent.sol +3 -5
  466. package/contracts/shared/IComponentService.sol +15 -0
  467. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  468. package/contracts/shared/INftOwnable.sol +2 -0
  469. package/contracts/shared/IRegisterable.sol +3 -14
  470. package/contracts/shared/IRegistryLinked.sol +3 -1
  471. package/contracts/shared/IService.sol +2 -2
  472. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  473. package/contracts/shared/NftOwnable.sol +22 -9
  474. package/contracts/shared/PolicyHolder.sol +4 -2
  475. package/contracts/shared/Registerable.sol +20 -37
  476. package/contracts/shared/RegistryLinked.sol +23 -4
  477. package/contracts/shared/Service.sol +9 -8
  478. package/contracts/shared/TokenHandler.sol +1 -4
  479. package/contracts/staking/IStaking.sol +4 -2
  480. package/contracts/staking/IStakingService.sol +1 -1
  481. package/contracts/staking/Staking.sol +34 -28
  482. package/contracts/staking/StakingLib.sol +1 -3
  483. package/contracts/staking/StakingManager.sol +6 -3
  484. package/contracts/staking/StakingReader.sol +17 -9
  485. package/contracts/staking/StakingService.sol +14 -17
  486. package/contracts/staking/StakingServiceManager.sol +8 -4
  487. package/contracts/staking/StakingStore.sol +8 -8
  488. package/contracts/staking/TargetHandler.sol +5 -4
  489. package/contracts/type/ObjectType.sol +2 -31
  490. package/contracts/type/Referral.sol +6 -0
  491. package/contracts/type/RequestIdSet.sol +62 -0
  492. package/contracts/type/Seconds.sol +4 -0
  493. package/contracts/type/String.sol +30 -0
  494. package/contracts/type/Timestamp.sol +10 -1
  495. package/contracts/type/Version.sol +16 -15
  496. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  497. package/contracts/upgradeability/ProxyManager.sol +54 -46
  498. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  499. package/package.json +2 -1
  500. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  501. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  502. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  503. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  504. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  505. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  506. package/contracts/shared/IVersionable.sol +0 -19
  507. package/contracts/shared/Versionable.sol +0 -47
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {RiskService} from "./RiskService.sol";
7
7
 
@@ -12,17 +12,19 @@ contract RiskServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with product service implementation
13
13
  constructor(
14
14
  address authority,
15
+ address registry,
15
16
  bytes32 salt
16
17
  )
17
18
  {
18
19
  RiskService svc = new RiskService{salt: salt}();
19
- bytes memory data = abi.encode(authority);
20
- IUpgradeable upgradeable = initialize(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
21
23
  address(svc),
22
24
  data,
23
25
  salt);
24
26
 
25
- _riskService = RiskService(address(upgradeable));
27
+ _riskService = RiskService(address(versionable));
26
28
  }
27
29
 
28
30
  //--- view functions ----------------------------------------------------//
@@ -11,7 +11,7 @@ contract ChainNft is ERC721Enumerable {
11
11
  event LogTokenInterceptorAddress(uint256 tokenId, address interceptor);
12
12
 
13
13
  // constants
14
- string public constant NAME = "Dezentralized Insurance Protocol NFT";
14
+ string public constant NAME = "Decentralized Insurance Protocol NFT";
15
15
  string public constant SYMBOL = "DIPNFT";
16
16
 
17
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;
@@ -19,8 +19,8 @@ interface IRegistry is
19
19
  IERC165
20
20
  {
21
21
 
22
- event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, VersionPart objectVersion, bool isInterceptor, address objectAddress, address initialOwner);
23
- event LogRegistryServiceRegistered(VersionPart release, ObjectType domain);
22
+ event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
+ event LogRegistryServiceRegistered(NftId nftId, VersionPart majorVersion, ObjectType domain);
24
24
  event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
25
25
 
26
26
  // initialize
@@ -49,7 +49,6 @@ interface IRegistry is
49
49
  error ErrorRegistryCoreTypeRegistration();
50
50
 
51
51
  // _register()
52
- error ErrorRegistryReleaseMismatch(VersionPart objectrelease, VersionPart parentRelease, VersionPart senderRelease);
53
52
  error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
54
53
  error ErrorRegistryTypeCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
55
54
  error ErrorRegistryContractAlreadyRegistered(address objectAddress);
@@ -59,10 +58,13 @@ interface IRegistry is
59
58
  NftId nftId;
60
59
  NftId parentNftId;
61
60
  ObjectType objectType;
62
- VersionPart release;
63
61
  bool isInterceptor;
64
62
  // slot 1
65
63
  address objectAddress;
64
+ // slot 2
65
+ address initialOwner;
66
+ // slot 3
67
+ bytes data;
66
68
  }
67
69
 
68
70
  /// @dev Registers a registry contract for a specified chain.
@@ -70,30 +72,28 @@ interface IRegistry is
70
72
  function registerRegistry(
71
73
  NftId nftId,
72
74
  uint256 chainId,
73
- address chainRegistryAddress,
74
- VersionPart release
75
+ address chainRegistryAddress
75
76
  ) external;
76
77
 
77
78
  /// @dev Register a service with using the provided domain and version.
78
79
  /// The function returns a newly minted service NFT ID.
79
80
  /// May only be used to register services.
80
81
  function registerService(
81
- ObjectInfo memory info,
82
- address initialOwner,
83
- ObjectType domain,
84
- bytes memory data
82
+ ObjectInfo memory serviceInfo,
83
+ VersionPart serviceVersion,
84
+ ObjectType serviceDomain
85
85
  ) external returns(NftId nftId);
86
86
 
87
87
  /// @dev Register an object with a known core type.
88
88
  /// The function returns a newly minted object NFT ID.
89
89
  /// May not be used to register services.
90
- function register(ObjectInfo memory info, address initialOwner, bytes memory data) external returns (NftId nftId);
90
+ function register(ObjectInfo memory info) external returns (NftId nftId);
91
91
 
92
92
  /// @dev Register an object with a custom type.
93
93
  /// The function returns a newly minted object NFT ID.
94
94
  /// This function is reserved for GIF releases > 3.
95
95
  /// May not be used to register known core types.
96
- function registerWithCustomType(ObjectInfo memory info, address initialOwner, bytes memory data) external returns (NftId nftId);
96
+ function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
97
97
 
98
98
  function getInitialRelease() external view returns (VersionPart);
99
99
 
@@ -126,15 +126,9 @@ interface IRegistry is
126
126
 
127
127
  function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
128
128
 
129
- function getObjectData(NftId nftId) external view returns (bytes memory data);
129
+ function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
130
130
 
131
- function getObjectData(address objectAddress) external view returns (bytes memory data);
132
-
133
- function isObjectType(NftId nftId, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
134
-
135
- function isObjectType(address contractAddress, ObjectType expectedObjectType, VersionPart expectedRelease) external view returns (bool);
136
-
137
- function getObjectRelease(NftId nftId) external view returns (VersionPart release);
131
+ function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
138
132
 
139
133
  function getObjectAddress(NftId nftId) external view returns (address objectAddress);
140
134
 
@@ -19,12 +19,13 @@ interface IRegistryService is
19
19
  {
20
20
  error ErrorRegistryServiceNotRegistryOwner();
21
21
 
22
- // _checkInterface()
23
- error ErrorRegistryServiceNotContract(address notContract);
24
- error ErrorRegistryServiceInterfaceNotSupported(address registerable, bytes4 interfaceId);
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);
25
27
 
26
28
  error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
27
- error ErrorRegistryServiceRegisterableParentInvalid(IRegisterable registerable, NftId expected, NftId found);
28
29
  error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
29
30
  error ErrorRegistryServiceRegisterableOwnerInvalid(IRegisterable registerable, address expected, address found);
30
31
  error ErrorRegistryServiceRegisterableOwnerZero(IRegisterable registerable);
@@ -39,20 +40,23 @@ interface IRegistryService is
39
40
  error ErrorRegistryServiceInvalidInitialOwner(address initialOwner);
40
41
  error ErrorRegistryServiceInvalidAddress(address registerableAddress);
41
42
 
42
- function registerStake(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data)
43
+ function registerStake(IRegistry.ObjectInfo memory info)
43
44
  external returns(NftId nftId);
44
45
 
45
- function registerInstance(IRegisterable instance, address initialOwner)
46
+ function registerInstance(IRegisterable instance, address owner)
46
47
  external returns(IRegistry.ObjectInfo memory info);
47
48
 
48
- function registerComponent(IRegisterable component, NftId parenNftId, ObjectType componentType, address initialOwner)
49
+ function registerProduct(IComponent product, address owner)
49
50
  external returns(IRegistry.ObjectInfo memory info);
50
51
 
51
- function registerDistributor(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data) external returns(NftId nftId);
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);
52
56
 
53
- function registerPolicy(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data) external returns(NftId nftId);
57
+ function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
54
58
 
55
- function registerBundle(IRegistry.ObjectInfo memory info, address initialOwner, bytes memory data) external returns(NftId nftId);
59
+ function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
56
60
 
57
61
  }
58
62
 
@@ -23,4 +23,7 @@ interface IRelease {
23
23
  bytes32 salt;
24
24
  }
25
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);
26
29
  }
@@ -18,8 +18,6 @@ import {IStaking} from "../staking/IStaking.sol";
18
18
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
19
19
  import {TokenRegistry} from "./TokenRegistry.sol";
20
20
  import {RegistryAdmin} from "./RegistryAdmin.sol";
21
- import {Versionable} from "../shared/Versionable.sol";
22
- import {VersionLib, Version} from "../type/Version.sol";
23
21
 
24
22
  /// @dev IMPORTANT
25
23
  // Each NFT minted by registry is accosiated with:
@@ -33,27 +31,20 @@ import {VersionLib, Version} from "../type/Version.sol";
33
31
  // 5) registerRegistry() -> registers IRegistry address (from different chain) by GifAdmin. Works ONLY on mainnet.
34
32
  // Note: getters by address MUST not be used with this address (will return 0 or data related to different object or even revert)
35
33
 
36
-
37
- function GIF_INITIAL_RELEASE() pure returns (VersionPart) {
38
- return VersionPartLib.toVersionPart(3);
39
- }
40
-
41
-
42
34
  /// @dev Chain Registry contract implementing IRegistry.
43
35
  /// IRegistry for method details.
44
36
  contract Registry is
45
37
  Initializable,
46
38
  AccessManaged,
47
- Versionable,
48
39
  IRegistry
49
40
  {
50
41
  /// @dev Protocol NFT ID
51
42
  NftId public immutable PROTOCOL_NFT_ID;
52
43
 
53
- /// @dev Global registry NFT ID
44
+ /// @dev Gobal registry NFT ID
54
45
  NftId public immutable GLOBAL_REGISTRY_NFT_ID;
55
46
 
56
- /// @dev Global registry address on mainnet.
47
+ /// @dev Gobal registry address on mainnet.
57
48
  address public immutable GLOBAL_REGISTRY_ADDRESS;
58
49
 
59
50
  /// @dev Registry NFT ID
@@ -77,9 +68,8 @@ contract Registry is
77
68
  mapping(uint256 chainId => NftId registryNftId) private _registryNftIdByChainId;
78
69
  uint256[] private _chainId;
79
70
 
80
- /// @dev keep track of object info, data and address reverse lookup
71
+ /// @dev keep track of object info and address reverse lookup
81
72
  mapping(NftId nftId => ObjectInfo info) private _info;
82
- mapping(NftId nftId => bytes data) private _data;
83
73
  mapping(address object => NftId nftId) private _nftIdByAddress;
84
74
 
85
75
  /// @dev keep track of service addresses by version and domain
@@ -156,8 +146,7 @@ contract Registry is
156
146
  function registerRegistry(
157
147
  NftId nftId,
158
148
  uint256 chainId,
159
- address registryAddress,
160
- VersionPart release
149
+ address registryAddress
161
150
  )
162
151
  external
163
152
  restricted()
@@ -191,19 +180,20 @@ contract Registry is
191
180
  nftId: nftId,
192
181
  parentNftId: REGISTRY_NFT_ID,
193
182
  objectType: REGISTRY(),
194
- release: release,
195
183
  isInterceptor: false,
196
- objectAddress: registryAddress}),
184
+ objectAddress: registryAddress,
185
+ initialOwner: NFT_LOCK_ADDRESS,
186
+ data: ""
187
+ }),
197
188
  false); // do not update address lookup for objects on a different chain
198
189
  }
199
190
 
200
191
  // TODO limit service owner to registry admin?
201
192
  /// @inheritdoc IRegistry
202
193
  function registerService(
203
- ObjectInfo memory info,
204
- address initialOwner,
205
- ObjectType domain,
206
- bytes memory data
194
+ ObjectInfo memory info,
195
+ VersionPart version,
196
+ ObjectType domain
207
197
  )
208
198
  external
209
199
  restricted()
@@ -216,13 +206,12 @@ contract Registry is
216
206
  }
217
207
 
218
208
  // version is defined
219
- VersionPart release = info.release;
220
- if(release.eqz()) {
209
+ if(version.eqz()) {
221
210
  revert ErrorRegistryServiceVersionZero(service);
222
211
  }
223
212
  // service domain is defined
224
213
  if(domain.eqz()) {
225
- revert ErrorRegistryServiceDomainZero(service, release);
214
+ revert ErrorRegistryServiceDomainZero(service, version);
226
215
  }
227
216
 
228
217
  // service has proper type
@@ -232,31 +221,30 @@ contract Registry is
232
221
 
233
222
  // service parent has registry type
234
223
  if(info.parentNftId != REGISTRY_NFT_ID) {
235
- revert ErrorRegistryServiceParentNotRegistry(service, release, info.parentNftId);
224
+ revert ErrorRegistryServiceParentNotRegistry(service, version, info.parentNftId);
236
225
  }
237
226
 
238
227
  // service has not already been registered
239
- if(_service[release][domain] != address(0)) {
240
- revert ErrorRegistryServiceDomainAlreadyRegistered(service, release, domain);
228
+ if(_service[version][domain] != address(0)) {
229
+ revert ErrorRegistryServiceDomainAlreadyRegistered(service, version, domain);
241
230
  }
242
231
 
243
- _service[release][domain] = service;
232
+ _service[version][domain] = service;
244
233
 
245
- emit LogRegistryServiceRegistered(release, domain);
234
+ emit LogRegistryServiceRegistered(info.nftId,version, domain);
246
235
 
247
- nftId = _register(info, initialOwner, data);
236
+ nftId = _register(info);
248
237
  }
249
238
 
250
239
 
251
240
  /// @inheritdoc IRegistry
252
- function register(ObjectInfo memory info, address initialOwner, bytes memory data)
241
+ function register(ObjectInfo memory info)
253
242
  external
254
243
  restricted()
255
244
  returns(NftId nftId)
256
245
  {
257
246
  address objectAddress = info.objectAddress;
258
247
  ObjectType objectType = info.objectType;
259
- VersionPart parentRelease = _info[info.parentNftId].release;
260
248
 
261
249
  // specialized functions have to be used to register registries and services
262
250
  if(objectType == REGISTRY() || objectType == STAKING() || objectType == SERVICE()) {
@@ -280,21 +268,18 @@ contract Registry is
280
268
  }
281
269
  }
282
270
 
283
- _checkRelease(info.release, parentRelease, parentType);
284
-
285
- nftId = _register(info, initialOwner, data);
271
+ nftId = _register(info);
286
272
  }
287
273
 
288
274
 
289
275
  /// @inheritdoc IRegistry
290
- function registerWithCustomType(ObjectInfo memory info, address initialOwner, bytes memory data)
276
+ function registerWithCustomType(ObjectInfo memory info)
291
277
  external
292
278
  restricted()
293
279
  returns(NftId nftId)
294
280
  {
295
281
  ObjectType objectType = info.objectType;
296
282
  ObjectType parentType = _info[info.parentNftId].objectType;
297
- VersionPart parentRelease = _info[info.parentNftId].release;
298
283
 
299
284
  if(_coreTypes[objectType]) {
300
285
  revert ErrorRegistryCoreTypeRegistration();
@@ -310,36 +295,13 @@ contract Registry is
310
295
  revert ErrorRegistryTypeCombinationInvalid(info.objectAddress, objectType, parentType);
311
296
  }
312
297
 
313
- _checkRelease(info.release, parentRelease, parentType);
314
-
315
- nftId = _register(info, initialOwner, data);
298
+ nftId = _register(info);
316
299
  }
317
300
 
318
- function _checkRelease(
319
- VersionPart objectRelease,
320
- VersionPart parentRelease,
321
- ObjectType parentType
322
- ) internal view
323
- {
324
- VersionPart senderRelease = _info[_nftIdByAddress[msg.sender]].release;
325
-
326
- // assume:
327
- // 1) only address with role can reach this function -> caller is registered registry service
328
- // 2) locked registry service can not call registry -> no "caller is locked" check is needed
329
- if(parentType == PROTOCOL()) {
330
- // STAKING for PROTOCOL, parent release is 0
331
- if(senderRelease != objectRelease) {
332
- revert ErrorRegistryReleaseMismatch(objectRelease, parentRelease, senderRelease);
333
- }
334
- }
335
- else if(senderRelease != objectRelease || senderRelease != parentRelease) {
336
- revert ErrorRegistryReleaseMismatch(objectRelease, parentRelease, senderRelease);
337
- }
338
- }
339
301
 
340
302
  /// @dev earliest GIF major version
341
303
  function getInitialRelease() external view returns (VersionPart) {
342
- return GIF_INITIAL_RELEASE();
304
+ return VersionPartLib.toVersionPart(_releaseRegistry.INITIAL_GIF_VERSION());
343
305
  }
344
306
 
345
307
  /// @dev next GIF release version to be released
@@ -404,20 +366,13 @@ contract Registry is
404
366
  return _info[nftId].parentNftId;
405
367
  }
406
368
 
407
- function isObjectType(address contractAddress, ObjectType expectedObjectType, VersionPart release) external view returns (bool) {
369
+ function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
408
370
  NftId nftId = _nftIdByAddress[contractAddress];
409
- return isObjectType(nftId, expectedObjectType, release);
371
+ return isObjectType(nftId, expectedObjectType);
410
372
  }
411
373
 
412
- function isObjectType(NftId nftId, ObjectType expectedObjectType, VersionPart release) public view returns (bool) {
413
- return (
414
- _info[nftId].objectType == expectedObjectType &&
415
- _info[nftId].release == release
416
- );
417
- }
418
-
419
- function getObjectRelease(NftId nftId) external view returns (VersionPart release) {
420
- return _info[nftId].release;
374
+ function isObjectType(NftId nftId, ObjectType expectedObjectType) public view returns (bool) {
375
+ return _info[nftId].objectType == expectedObjectType;
421
376
  }
422
377
 
423
378
  function getObjectAddress(NftId nftId) external view returns (address) {
@@ -428,14 +383,6 @@ contract Registry is
428
383
  return _info[_nftIdByAddress[object]];
429
384
  }
430
385
 
431
- function getObjectData(NftId nftId) external view returns (bytes memory data) {
432
- return _data[nftId];
433
- }
434
-
435
- function getObjectData(address objectAddress) external view returns (bytes memory data) {
436
- return _data[_nftIdByAddress[objectAddress]];
437
- }
438
-
439
386
  function isRegistered(NftId nftId) public view returns (bool) {
440
387
  return _info[nftId].objectType.gtz();
441
388
  }
@@ -494,12 +441,6 @@ contract Registry is
494
441
  return ownerOf(address(this));
495
442
  }
496
443
 
497
- // Versionable
498
-
499
- function getVersion() public pure override returns (Version) {
500
- return VersionLib.toVersion(GIF_INITIAL_RELEASE().toInt(), 0 , 0);
501
- }
502
-
503
444
  // IERC165
504
445
 
505
446
  function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
@@ -513,49 +454,62 @@ contract Registry is
513
454
  // Internals
514
455
 
515
456
  /// @dev registry protects only against tampering existing records, registering with invalid types pairs and 0 parent address
516
- function _register(ObjectInfo memory info, address initialOwner, bytes memory data)
457
+ function _register(ObjectInfo memory info)
517
458
  internal
518
459
  returns(NftId nftId)
519
460
  {
461
+ ObjectType objectType = info.objectType; // do not care here, never PROTOCOL(), REGISTRY()
462
+ bool isInterceptor = info.isInterceptor;
463
+ address objectAddress = info.objectAddress; // do not care here, can be 0
464
+ address owner = info.initialOwner; // do not care here, can be 0, can be equal info.objectAddress
465
+
520
466
  NftId parentNftId = info.parentNftId; // do not care here, can not be 0
521
467
  ObjectInfo memory parentInfo = _info[parentNftId];
468
+ address parentAddress = parentInfo.objectAddress; // can be 0
469
+
470
+ // parent is contract -> need to check? -> check before minting
471
+ // special case: staking: to protocol possible as well
472
+ // NO LONGER TRUE: special case: global registry nft as parent when not on mainnet -> global registry address is 0
473
+ // special case: when parentNftId == CHAIN_NFT.mint(), check for zero parent address before mint
474
+ // special case: when parentNftId == CHAIN_NFT.mint() && objectAddress == initialOwner
475
+ // Parent can have 0 address in case of STAKE for PROTOCOL / CUSTOM_TYPE for POLICY
476
+ // But it MUST be registered -> parentType != 0 && parentNftId != 0
477
+ /*if(objectType != STAKE()) {
478
+ if(parentAddress == address(0)) {
479
+ revert ErrorRegistryParentAddressZero();
480
+ }
481
+ }*/
522
482
 
523
483
  // global registry is never parent when not on mainnet
524
484
  if(block.chainid != 1) {
525
485
  if(parentNftId == GLOBAL_REGISTRY_NFT_ID) {
526
- revert ErrorRegistryGlobalRegistryAsParent(info.objectAddress, info.objectType);
486
+ revert ErrorRegistryGlobalRegistryAsParent(objectAddress, objectType);
527
487
  }
528
488
  }
529
489
 
530
490
  address interceptorAddress = _getInterceptor(
531
- info.isInterceptor,
532
- info.objectType,
533
- info.objectAddress,
491
+ isInterceptor,
492
+ objectType,
493
+ objectAddress,
534
494
  parentInfo.isInterceptor,
535
- parentInfo.objectAddress);
536
-
537
- uint256 tokenId = CHAIN_NFT.mint(
538
- initialOwner,
539
- interceptorAddress,
540
- EMPTY_URI);
495
+ parentAddress);
541
496
 
497
+ uint256 tokenId = CHAIN_NFT.getNextTokenId();
542
498
  nftId = NftIdLib.toNftId(tokenId);
543
499
  info.nftId = nftId;
544
500
 
545
501
  _info[nftId] = info;
546
- if(data.length > 0) {
547
- _data[nftId] = data;
548
- }
549
- _setAddressForNftId(nftId, info.objectAddress);
502
+ _setAddressForNftId(nftId, objectAddress);
503
+
504
+ emit LogRegistryObjectRegistered(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
550
505
 
551
- emit LogRegistryObjectRegistered(
552
- nftId,
553
- parentNftId,
554
- info.objectType,
555
- info.release,
556
- info.isInterceptor,
557
- info.objectAddress,
558
- initialOwner);
506
+ // calls nft receiver(1) and interceptor(2)
507
+ uint256 mintedTokenId = CHAIN_NFT.mint(
508
+ owner,
509
+ interceptorAddress,
510
+ EMPTY_URI);
511
+
512
+ assert(mintedTokenId == tokenId);
559
513
  }
560
514
 
561
515
  /// @dev obtain interceptor address for this nft if applicable, address(0) otherwise
@@ -607,10 +561,10 @@ contract Registry is
607
561
  nftId: protocolNftId,
608
562
  parentNftId: NftIdLib.zero(),
609
563
  objectType: PROTOCOL(),
610
- release: VersionPartLib.toVersionPart(0),
611
564
  isInterceptor: false,
612
- objectAddress: address(0)}),
613
- NFT_LOCK_ADDRESS, // initial owner of protocol
565
+ objectAddress: address(0),
566
+ initialOwner: NFT_LOCK_ADDRESS,
567
+ data: ""}),
614
568
  true);
615
569
  }
616
570
 
@@ -630,9 +584,10 @@ contract Registry is
630
584
  nftId: GLOBAL_REGISTRY_NFT_ID,
631
585
  parentNftId: PROTOCOL_NFT_ID,
632
586
  objectType: REGISTRY(),
633
- release: getRelease(),
634
587
  isInterceptor: false,
635
- objectAddress: GLOBAL_REGISTRY_ADDRESS}),
588
+ objectAddress: GLOBAL_REGISTRY_ADDRESS,
589
+ initialOwner: NFT_LOCK_ADDRESS,
590
+ data: ""}),
636
591
  block.chainid == 1);// update address lookup for global registry only on mainnet
637
592
 
638
593
  // if not on mainnet: register this registry with global registry as parent
@@ -648,9 +603,10 @@ contract Registry is
648
603
  nftId: registryNftId,
649
604
  parentNftId: GLOBAL_REGISTRY_NFT_ID,
650
605
  objectType: REGISTRY(),
651
- release: getRelease(),
652
606
  isInterceptor: false,
653
- objectAddress: address(this)}),
607
+ objectAddress: address(this),
608
+ initialOwner: NFT_LOCK_ADDRESS,
609
+ data: ""}),
654
610
  true);
655
611
  }
656
612
  }
@@ -674,7 +630,6 @@ contract Registry is
674
630
  // register the registry info
675
631
  _registerForNft(
676
632
  info,
677
- NFT_LOCK_ADDRESS, // initial owner of any registry
678
633
  updateAddressLookup);
679
634
  }
680
635
 
@@ -692,10 +647,10 @@ contract Registry is
692
647
  nftId: stakingNftId,
693
648
  parentNftId: REGISTRY_NFT_ID,
694
649
  objectType: STAKING(),
695
- release: VersionPartLib.toVersionPart(3),
696
650
  isInterceptor: false,
697
- objectAddress: _stakingAddress}),
698
- stakingOwner,
651
+ objectAddress: _stakingAddress,
652
+ initialOwner: stakingOwner,
653
+ data: ""}),
699
654
  true);
700
655
 
701
656
  IStaking(_stakingAddress).initializeTokenHandler();
@@ -703,8 +658,7 @@ contract Registry is
703
658
 
704
659
  /// @dev Register the provided object info for the specified NFT ID.
705
660
  function _registerForNft(
706
- ObjectInfo memory info,
707
- address initialOwner,
661
+ ObjectInfo memory info,
708
662
  bool updateAddressLookup
709
663
  )
710
664
  internal
@@ -716,7 +670,7 @@ contract Registry is
716
670
  }
717
671
 
718
672
  // calls nft receiver
719
- CHAIN_NFT.mint(initialOwner, info.nftId.toInt());
673
+ CHAIN_NFT.mint(info.initialOwner, info.nftId.toInt());
720
674
  }
721
675
 
722
676
  function _setAddressForNftId(NftId nftId, address objectAddress)