@etherisc/gif-next 0.0.2-92c50c2-136 → 0.0.2-9306579-093

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 (501) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +94 -270
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1363 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +64 -447
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +260 -233
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +109 -157
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -47
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1512 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1999 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1432 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1192 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1566 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2001 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +28 -178
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1186 -271
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +489 -147
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +57 -224
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -105
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +245 -235
  76. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  78. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1000 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +58 -31
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +55 -309
  104. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
  106. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
  108. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1297 -0
  110. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  112. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +458 -161
  114. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +154 -86
  116. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +229 -1
  118. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +79 -275
  120. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +360 -171
  122. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/Pool.sol/Pool.json +79 -561
  124. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +492 -333
  126. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -82
  128. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
  130. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
  132. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1119 -0
  134. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  136. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +263 -181
  138. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +104 -100
  140. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  142. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +147 -6
  144. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +295 -119
  146. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  148. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +75 -99
  150. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  151. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  152. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +406 -321
  154. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +104 -100
  156. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
  158. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
  160. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  161. package/artifacts/contracts/product/Product.sol/Product.json +75 -395
  162. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  164. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  166. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  168. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +265 -42
  170. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  172. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  173. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  174. package/artifacts/contracts/registry/Registry.sol/Registry.json +483 -99
  175. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  176. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +337 -380
  177. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  178. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
  179. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
  181. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  183. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  185. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
  187. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  189. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  190. package/artifacts/contracts/shared/Component.sol/Component.json +15 -205
  191. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -185
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -107
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
  197. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  199. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +15 -20
  201. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  203. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +47 -31
  205. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  208. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  210. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  214. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  215. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +47 -269
  217. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  219. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  220. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  221. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  222. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  223. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  224. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  225. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  227. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  229. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
  231. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  233. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  234. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  235. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +42 -21
  237. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  239. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  240. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  241. package/artifacts/contracts/staking/Staking.sol/Staking.json +100 -256
  242. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  243. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  244. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  245. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
  246. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  248. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  249. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
  250. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  251. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
  252. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  253. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +92 -87
  254. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  255. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  256. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  291. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  302. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  303. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  304. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  306. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  307. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  308. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  309. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  310. package/contracts/{shared → authorization}/AccessAdmin.sol +158 -325
  311. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  312. package/contracts/authorization/Authorization.sol +221 -0
  313. package/contracts/authorization/IAccess.sol +48 -0
  314. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -55
  315. package/contracts/authorization/IAuthorization.sol +54 -0
  316. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  317. package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
  318. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  319. package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
  320. package/contracts/distribution/BasicDistribution.sol +138 -0
  321. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  322. package/contracts/distribution/Distribution.sol +145 -111
  323. package/contracts/distribution/DistributionService.sol +86 -47
  324. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  325. package/contracts/distribution/IDistributionComponent.sol +25 -39
  326. package/contracts/distribution/IDistributionService.sol +23 -3
  327. package/contracts/examples/fire/DamageLevel.sol +59 -0
  328. package/contracts/examples/fire/FirePool.sol +75 -0
  329. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  330. package/contracts/examples/fire/FireProduct.sol +412 -0
  331. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  332. package/contracts/examples/fire/FireUSD.sol +26 -0
  333. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  334. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  335. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  336. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  337. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  338. package/contracts/instance/IInstance.sol +14 -38
  339. package/contracts/instance/IInstanceService.sol +13 -18
  340. package/contracts/instance/Instance.sol +68 -102
  341. package/contracts/instance/InstanceAdmin.sol +224 -267
  342. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  343. package/contracts/instance/InstanceReader.sol +137 -34
  344. package/contracts/instance/InstanceService.sol +115 -89
  345. package/contracts/instance/InstanceServiceManager.sol +8 -13
  346. package/contracts/instance/InstanceStore.sol +17 -2
  347. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  348. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
  349. package/contracts/instance/module/IBundle.sol +1 -1
  350. package/contracts/instance/module/IComponents.sol +4 -8
  351. package/contracts/instance/module/IDistribution.sol +0 -1
  352. package/contracts/instance/module/IPolicy.sol +24 -24
  353. package/contracts/mock/Dip.sol +1 -1
  354. package/contracts/oracle/BasicOracle.sol +48 -0
  355. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  356. package/contracts/oracle/IOracle.sol +16 -0
  357. package/contracts/oracle/IOracleComponent.sol +2 -1
  358. package/contracts/oracle/Oracle.sol +73 -51
  359. package/contracts/oracle/OracleService.sol +11 -8
  360. package/contracts/oracle/OracleServiceManager.sol +8 -11
  361. package/contracts/pool/BasicPool.sol +166 -0
  362. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  363. package/contracts/pool/BundleService.sol +221 -56
  364. package/contracts/pool/BundleServiceManager.sol +8 -11
  365. package/contracts/pool/IBundleService.sol +42 -5
  366. package/contracts/pool/IPoolComponent.sol +24 -68
  367. package/contracts/pool/IPoolService.sol +57 -36
  368. package/contracts/pool/Pool.sol +192 -138
  369. package/contracts/pool/PoolService.sol +241 -130
  370. package/contracts/pool/PoolServiceManager.sol +6 -9
  371. package/contracts/product/ApplicationService.sol +62 -65
  372. package/contracts/product/ApplicationServiceManager.sol +6 -6
  373. package/contracts/product/BasicProduct.sol +53 -0
  374. package/contracts/product/BasicProductAuthorization.sol +43 -0
  375. package/contracts/product/ClaimService.sol +254 -115
  376. package/contracts/product/ClaimServiceManager.sol +6 -6
  377. package/contracts/product/IApplicationService.sol +1 -0
  378. package/contracts/product/IClaimService.sol +31 -7
  379. package/contracts/product/IPolicyService.sol +34 -32
  380. package/contracts/product/IPricingService.sol +7 -7
  381. package/contracts/product/IProductComponent.sol +20 -9
  382. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  383. package/contracts/product/PolicyService.sol +404 -193
  384. package/contracts/product/PolicyServiceManager.sol +6 -9
  385. package/contracts/product/PricingService.sol +46 -46
  386. package/contracts/product/PricingServiceManager.sol +5 -8
  387. package/contracts/product/Product.sol +170 -115
  388. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  389. package/contracts/product/RiskServiceManager.sol +39 -0
  390. package/contracts/registry/ChainNft.sol +65 -32
  391. package/contracts/registry/IRegistry.sol +65 -19
  392. package/contracts/registry/IRegistryService.sol +0 -9
  393. package/contracts/registry/Registry.sol +340 -215
  394. package/contracts/registry/RegistryAdmin.sol +260 -131
  395. package/contracts/registry/RegistryService.sol +59 -66
  396. package/contracts/registry/RegistryServiceManager.sol +4 -4
  397. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +107 -119
  398. package/contracts/registry/ServiceAuthorizationV3.sol +20 -22
  399. package/contracts/registry/TokenRegistry.sol +2 -2
  400. package/contracts/shared/Component.sol +38 -43
  401. package/contracts/shared/ComponentService.sol +103 -82
  402. package/contracts/shared/ComponentServiceManager.sol +10 -7
  403. package/contracts/shared/ComponentVerifyingService.sol +3 -4
  404. package/contracts/shared/ContractLib.sol +38 -0
  405. package/contracts/shared/IComponent.sol +7 -4
  406. package/contracts/shared/IComponentService.sol +15 -9
  407. package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
  408. package/contracts/shared/IPolicyHolder.sol +12 -22
  409. package/contracts/shared/IService.sol +1 -1
  410. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  411. package/contracts/shared/InstanceLinkedComponent.sol +52 -25
  412. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  413. package/contracts/shared/NftOwnable.sol +7 -7
  414. package/contracts/shared/PolicyHolder.sol +17 -57
  415. package/contracts/shared/Registerable.sol +4 -4
  416. package/contracts/shared/RegistryLinked.sol +3 -2
  417. package/contracts/shared/Service.sol +19 -15
  418. package/contracts/shared/TokenHandler.sol +100 -19
  419. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  420. package/contracts/staking/IStaking.sol +3 -3
  421. package/contracts/staking/IStakingService.sol +12 -5
  422. package/contracts/staking/StakeManagerLib.sol +18 -25
  423. package/contracts/staking/Staking.sol +27 -42
  424. package/contracts/staking/StakingManager.sol +10 -12
  425. package/contracts/staking/StakingReader.sol +23 -20
  426. package/contracts/staking/StakingService.sol +10 -14
  427. package/contracts/staking/StakingServiceManager.sol +4 -4
  428. package/contracts/staking/StakingStore.sol +12 -22
  429. package/contracts/staking/TargetManagerLib.sol +7 -3
  430. package/contracts/type/Amount.sol +27 -5
  431. package/contracts/type/Blocknumber.sol +7 -1
  432. package/contracts/type/ClaimId.sol +6 -1
  433. package/contracts/type/NftId.sol +1 -0
  434. package/contracts/type/ObjectType.sol +53 -18
  435. package/contracts/type/PayoutId.sol +10 -10
  436. package/contracts/type/Referral.sol +1 -0
  437. package/contracts/type/RiskId.sol +15 -1
  438. package/contracts/type/RoleId.sol +55 -82
  439. package/contracts/type/Seconds.sol +21 -1
  440. package/contracts/type/StateId.sol +1 -0
  441. package/contracts/type/Timestamp.sol +11 -1
  442. package/contracts/type/UFixed.sol +38 -9
  443. package/contracts/type/Version.sol +3 -1
  444. package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
  445. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  446. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  447. package/package.json +3 -3
  448. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  449. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  450. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  451. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  452. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  453. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  454. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  455. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  456. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  457. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  458. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  459. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  460. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  461. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1177
  462. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  463. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
  464. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  465. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  466. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  467. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  468. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  469. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  470. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  471. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  472. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  473. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  474. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  475. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  476. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  477. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  478. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  479. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  480. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  481. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  482. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  483. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  484. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  485. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  486. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  487. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  488. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  489. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  490. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  491. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  492. package/contracts/product/ProductServiceManager.sol +0 -42
  493. package/contracts/shared/AccessManagerCustom.sol +0 -741
  494. package/contracts/shared/AccessManagerExtended.sol +0 -481
  495. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  496. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  497. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  498. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  499. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  500. package/contracts/shared/InitializableCustom.sol +0 -177
  501. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -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";
@@ -15,12 +17,11 @@ contract ChainNft is ERC721Enumerable {
15
17
  uint256 public constant PROTOCOL_NFT_ID = 1101;
16
18
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
17
19
 
18
- // TODO rename errors to error pattern: CallerNotRegistry -> ErrorCallerNotRegistry etc.
19
20
  // custom errors
20
- error CallerNotRegistry(address caller);
21
- error RegistryAddressZero();
22
- error NftUriEmpty();
23
- error NftUriAlreadySet();
21
+ error ErrorChainNftCallerNotRegistry(address caller);
22
+ error ErrorChainNftRegistryAddressZero();
23
+ error ErrorChainNftUriEmpty();
24
+ error ErrorChainNftUriAlreadySet();
24
25
 
25
26
  // contract state
26
27
 
@@ -34,31 +35,25 @@ contract ChainNft is ERC721Enumerable {
34
35
  address private _registry;
35
36
 
36
37
  // only used for _getNextTokenId
37
- uint256 internal _chainIdInt;
38
38
  uint256 internal _chainIdDigits;
39
39
  uint256 internal _chainIdMultiplier;
40
40
  uint256 internal _idNext;
41
41
  uint256 internal _totalMinted;
42
42
 
43
43
  modifier onlyRegistry() {
44
- if (msg.sender != _registry) { revert CallerNotRegistry(msg.sender); }
44
+ if (msg.sender != _registry) { revert ErrorChainNftCallerNotRegistry(msg.sender); }
45
45
  _;
46
46
  }
47
47
 
48
- constructor(address registry) ERC721(NAME, SYMBOL) {
49
- if (registry == address(0)) { revert RegistryAddressZero(); }
48
+ constructor(address registry)
49
+ ERC721(NAME, SYMBOL)
50
+ {
51
+ if (registry == address(0)) { revert ErrorChainNftRegistryAddressZero(); }
50
52
 
53
+ // NFT contract is deployed by the registry
51
54
  _registry = registry;
52
- _chainIdInt = block.chainid;
53
- _chainIdDigits = 0;
54
-
55
- // count digis
56
- uint256 num = _chainIdInt;
57
- while (num != 0) {
58
- _chainIdDigits++;
59
- num /= 10;
60
- }
61
55
 
56
+ _chainIdDigits = _calculateChainIdDigits(block.chainid);
62
57
  _chainIdMultiplier = 10 ** _chainIdDigits;
63
58
 
64
59
  // the first object registered through normal registration starts with id 4
@@ -74,12 +69,16 @@ contract ChainNft is ERC721Enumerable {
74
69
  * not part of the IRegistry interface only needed for
75
70
  * initial registry setup (protocol and global registry objects)
76
71
  */
77
- function mint(address to, uint256 tokenId) external onlyRegistry {
78
- _totalMinted++;
79
- _safeMint(to, tokenId);
72
+ function mint(
73
+ address to,
74
+ uint256 tokenId
75
+ )
76
+ external
77
+ onlyRegistry()
78
+ {
79
+ _safeMintWithInterceptorAddress(to, tokenId, address(0));
80
80
  }
81
81
 
82
-
83
82
  /**
84
83
  * @dev mints the next token to register new objects
85
84
  * non-zero transferInterceptors are recorded and called during nft token transfers.
@@ -89,7 +88,11 @@ contract ChainNft is ERC721Enumerable {
89
88
  address to,
90
89
  address interceptor,
91
90
  string memory uri
92
- ) public onlyRegistry returns (uint256 tokenId) {
91
+ )
92
+ public
93
+ onlyRegistry()
94
+ returns (uint256 tokenId)
95
+ {
93
96
  tokenId = _getNextTokenId();
94
97
 
95
98
  if (interceptor != address(0)) {
@@ -100,8 +103,7 @@ contract ChainNft is ERC721Enumerable {
100
103
  _uri[tokenId] = uri;
101
104
  }
102
105
 
103
- _totalMinted++;
104
- _safeMint(to, tokenId);
106
+ _safeMintWithInterceptorAddress(to, tokenId, interceptor);
105
107
 
106
108
  if(interceptor != address(0)) {
107
109
  ITransferInterceptor(interceptor).nftMint(to, tokenId);
@@ -132,8 +134,8 @@ contract ChainNft is ERC721Enumerable {
132
134
  uint256 tokenId,
133
135
  string memory uri
134
136
  ) external onlyRegistry {
135
- if (bytes(uri).length == 0) { revert NftUriEmpty(); }
136
- if (bytes(_uri[tokenId]).length > 0) { revert NftUriAlreadySet(); }
137
+ if (bytes(uri).length == 0) { revert ErrorChainNftUriEmpty(); }
138
+ if (bytes(_uri[tokenId]).length > 0) { revert ErrorChainNftUriAlreadySet(); }
137
139
 
138
140
  _requireOwned(tokenId);
139
141
  _uri[tokenId] = uri;
@@ -199,19 +201,50 @@ contract ChainNft is ERC721Enumerable {
199
201
  * (42 * 10 ** 10 + 9876543210) * 100 + 10
200
202
  * (index * 10 ** digits + chainid) * 100 + digits (1 < digits < 100)
201
203
  */
202
- function calculateTokenId(uint256 idIndex) public view returns (uint256 id) {
203
- id =
204
- (idIndex * _chainIdMultiplier + _chainIdInt) *
205
- 100 +
206
- _chainIdDigits;
204
+ function calculateTokenId(uint256 idIndex, uint256 chainId) public view returns (uint256 id) {
205
+ if(chainId == block.chainid) {
206
+ return 100 * (idIndex * _chainIdMultiplier + chainId) + _chainIdDigits;
207
+ } else {
208
+ uint256 chainIdDigits = _calculateChainIdDigits(chainId);
209
+ return 100 * (idIndex * (10 ** chainIdDigits) + chainId) + chainIdDigits;
210
+ }
211
+ }
212
+
213
+ function calculateTokenId(uint256 idIndex) public view returns (uint256) {
214
+ return 100 * (idIndex * _chainIdMultiplier + block.chainid) + _chainIdDigits;
207
215
  }
208
216
 
209
217
  function getNextTokenId() external view returns (uint256) {
210
218
  return calculateTokenId(_idNext);
211
219
  }
212
220
 
221
+ // ---------------- private functions ----------------- //
222
+
213
223
  function _getNextTokenId() private returns (uint256 id) {
214
224
  id = calculateTokenId(_idNext);
215
225
  _idNext++;
216
226
  }
227
+
228
+ function _calculateChainIdDigits(uint256 chainId) private pure returns (uint256) {
229
+ uint256 num = chainId;
230
+ uint256 digits = 0;
231
+ while (num != 0) {
232
+ digits++;
233
+ num /= 10;
234
+ }
235
+ return digits;
236
+ }
237
+
238
+ function _safeMintWithInterceptorAddress(
239
+ address to,
240
+ uint256 tokenId,
241
+ address interceptor
242
+ )
243
+ private
244
+ {
245
+ emit LogTokenInterceptorAddress(tokenId, interceptor);
246
+
247
+ _totalMinted++;
248
+ _safeMint(to, tokenId);
249
+ }
217
250
  }
@@ -7,27 +7,48 @@ import {NftId} from "../type/NftId.sol";
7
7
  import {ObjectType} from "../type/ObjectType.sol";
8
8
  import {VersionPart} from "../type/Version.sol";
9
9
  import {Timestamp} from "../type/Timestamp.sol";
10
- import {RoleId} from "../type/RoleId.sol";
10
+ import {StateId} from "../type/StateId.sol";
11
11
 
12
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
13
+
14
+ /// @title Chain Registry interface.
15
+ /// A chain registry holds all protocol relevant objects with basic metadata.
16
+ /// Registered objects include services, instances, products, pools, policies, bundles, stakes and more.
17
+ /// Registered objects are represented by NFTs.
18
+ /// When on mainnet registry is global and keeps arbitrary number of chain registries residing on different chain ids.
19
+ /// When not on mainnet registry keeps the only object residing on different chain id (on mainnet) - global registry.
12
20
  interface IRegistry is IERC165 {
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);
16
25
 
17
- // registerService()
18
- error ErrorRegistryCallerNotReleaseManager();
19
- error ErrorRegistryDomainZero(address service);
20
- error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
26
+ // initialize
27
+ error ErrorRegistryCallerNotDeployer();
21
28
 
22
- // register()
23
- error ErrorRegistryCallerNotRegistryService();
29
+ // registerRegistry()
30
+ error ErrorRegistryNotOnMainnet(uint256 chainId);
31
+ error ErrorRegistryChainRegistryChainIdZero(NftId nftId);
32
+ error ErrorRegistryChainRegistryAddressZero(NftId nftId, uint256 chainId);
33
+ error ErrorRegistryChainRegistryNftIdInvalid(NftId nftId, uint256 chainId);
34
+ error ErrorRegistryChainRegistryAlreadyRegistered(NftId nftId, uint256 chainId);
35
+
36
+ // registerService()
37
+ error ErrorRegistryServiceAddressZero();
38
+ error ErrorRegistryServiceVersionZero(address service);
39
+ //error ErrorRegistryServiceVersionMismatch(address service, VersionPart serviceVersion, VersionPart releaseVersion);
40
+ //error ErrorRegistryServiceVersionNotDeploying(address service, VersionPart version);
41
+ error ErrorRegistryServiceDomainZero(address service, VersionPart version);
42
+ error ErrorRegistryNotService(address service, ObjectType objectType);
43
+ error ErrorRegistryServiceParentNotRegistry(address service, VersionPart version, NftId parentNftId);
44
+ error ErrorRegistryServiceDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
24
45
 
25
46
  // registerWithCustomTypes()
26
47
  error ErrorRegistryCoreTypeRegistration();
27
48
 
28
49
  // _register()
29
- error ErrorRegistryParentAddressZero();
30
- error ErrorRegistryTypesCombinationInvalid(ObjectType objectType, ObjectType parentType);
50
+ error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
51
+ error ErrorRegistryTypesCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
31
52
  error ErrorRegistryContractAlreadyRegistered(address objectAddress);
32
53
 
33
54
  struct ObjectInfo {
@@ -40,30 +61,44 @@ interface IRegistry is IERC165 {
40
61
  bytes data;
41
62
  }
42
63
 
43
-
44
64
  struct ReleaseInfo {
65
+ StateId state;
45
66
  VersionPart version;
46
67
  bytes32 salt;
47
68
  address[] addresses;
48
69
  string[] names;
49
- RoleId[][] serviceRoles;
50
- string[][] serviceRoleNames;
51
- RoleId[][] functionRoles;
52
- string[][] functionRoleNames;
53
- bytes4[][][] selectors;
54
70
  ObjectType[] domains;
71
+ IServiceAuthorization auth;
55
72
  Timestamp activatedAt;
56
73
  Timestamp disabledAt;
57
74
  }
58
75
 
76
+ /// @dev Registers a registry contract for a specified chain.
77
+ /// Only one chain registry may be registered per chain
78
+ function registerRegistry(
79
+ NftId nftId,
80
+ uint256 chainId,
81
+ address chainRegistryAddress
82
+ ) external;
83
+
84
+ /// @dev Register a service with using the provided domain and version.
85
+ /// The function returns a newly minted service NFT ID.
86
+ /// May only be used to register services.
59
87
  function registerService(
60
88
  ObjectInfo memory serviceInfo,
61
89
  VersionPart serviceVersion,
62
90
  ObjectType serviceDomain
63
91
  ) external returns(NftId nftId);
64
92
 
93
+ /// @dev Register an object with a known core type.
94
+ /// The function returns a newly minted object NFT ID.
95
+ /// May not be used to register services.
65
96
  function register(ObjectInfo memory info) external returns (NftId nftId);
66
97
 
98
+ /// @dev Register an object with a custom type.
99
+ /// The function returns a newly minted object NFT ID.
100
+ /// This function is reserved for GIF releases > 3.
101
+ /// May not be used to register known core types.
67
102
  function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
68
103
 
69
104
  function getInitialVersion() external view returns (VersionPart);
@@ -74,9 +109,18 @@ interface IRegistry is IERC165 {
74
109
 
75
110
  function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory);
76
111
 
112
+ /// @dev Returns the number of supported chains.
113
+ function chainIds() external view returns (uint256);
114
+
115
+ /// @dev Returns the chain id at the specified index.
116
+ function getChainId(uint256 idx) external view returns (uint256);
117
+
118
+ /// @dev Returns the NFT ID of the registry for the specified chain.
119
+ function getRegistryNftId(uint256 chainId) external returns (NftId nftId);
120
+
77
121
  function getObjectCount() external view returns (uint256);
78
122
 
79
- function getNftId(address objectAddress) external view returns (NftId nftId);
123
+ function getNftIdForAddress(address objectAddress) external view returns (NftId nftId);
80
124
 
81
125
  function ownerOf(NftId nftId) external view returns (address);
82
126
 
@@ -84,6 +128,10 @@ interface IRegistry is IERC165 {
84
128
 
85
129
  function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
86
130
 
131
+ function getObjectAddress(NftId nftId) external view returns (address objectAddress);
132
+
133
+ /// @dev Returns the object info for the specified object address.
134
+ // MUST not be used with chain registry address (resides on different chan id)
87
135
  function getObjectInfo(address object) external view returns (ObjectInfo memory info);
88
136
 
89
137
  function isRegistered(NftId nftId) external view returns (bool);
@@ -110,9 +158,7 @@ interface IRegistry is IERC165 {
110
158
  // TODO refactor the address getters below to contract getters
111
159
  function getChainNftAddress() external view returns (address);
112
160
 
113
- function getReleaseManagerAddress() external view returns (address);
114
-
115
- function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
161
+ function getReleaseRegistryAddress() external view returns (address);
116
162
 
117
163
  function getStakingAddress() external view returns (address);
118
164
 
@@ -50,15 +50,6 @@ interface IRegistryService is
50
50
  function registerComponent(IComponent component, ObjectType objectType, address owner)
51
51
  external returns(IRegistry.ObjectInfo memory info);
52
52
 
53
- function registerProduct(IComponent product, address owner)
54
- external returns(IRegistry.ObjectInfo memory info);
55
-
56
- function registerPool(IComponent pool, address owner)
57
- external returns(IRegistry.ObjectInfo memory info);
58
-
59
- function registerDistribution(IComponent distribution, address owner)
60
- external returns(IRegistry.ObjectInfo memory info);
61
-
62
53
  function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
63
54
 
64
55
  function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);