@etherisc/gif-next 0.0.2-7b86057-523 → 0.0.2-7bdebe2-893

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 (353) hide show
  1. package/README.md +8 -13
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +315 -98
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +668 -141
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +241 -60
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +438 -86
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +489 -163
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +250 -137
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +626 -189
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +427 -178
  18. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  20. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  23. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1562 -814
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +227 -213
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +1119 -785
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +463 -167
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +418 -230
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +439 -379
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +355 -104
  38. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
  40. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +197 -169
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
  46. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
  48. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
  50. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  53. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  58. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1092 -0
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +672 -0
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +527 -338
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +344 -93
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1400 -0
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +760 -0
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1282 -256
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +430 -87
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +619 -0
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +279 -264
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +743 -0
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +800 -159
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +159 -274
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +701 -118
  86. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +71 -160
  88. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +338 -412
  90. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +299 -128
  92. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1062 -198
  94. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +384 -89
  96. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +231 -223
  98. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +298 -95
  100. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  101. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  102. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +34 -2
  104. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +70 -193
  106. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  107. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  108. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  109. package/artifacts/contracts/registry/Registry.sol/Registry.json +47 -15
  110. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
  112. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +182 -232
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +287 -94
  116. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +128 -37
  120. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  121. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  122. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  123. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  124. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
  125. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  126. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  127. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -29
  129. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  130. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  131. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IService.sol/IService.json +71 -160
  133. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +100 -33
  137. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  138. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  139. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  140. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +283 -76
  141. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +115 -58
  143. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  144. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  145. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Service.sol/Service.json +172 -160
  147. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  148. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  149. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  150. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  151. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  153. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  155. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +115 -58
  157. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
  159. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestService.sol/TestService.json +190 -210
  161. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  164. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
  166. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  167. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  168. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  169. package/artifacts/contracts/types/Amount.sol/AmountLib.json +209 -0
  170. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  172. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  174. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +179 -0
  175. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  177. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
  179. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  180. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  181. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  183. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  184. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  185. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  188. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  189. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +209 -0
  190. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
  192. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  194. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  196. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  198. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  200. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
  202. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  204. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  206. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  208. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  209. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  210. package/contracts/components/Component.sol +134 -78
  211. package/contracts/components/Distribution.sol +190 -57
  212. package/contracts/components/IComponent.sol +62 -15
  213. package/contracts/components/IDistributionComponent.sol +39 -15
  214. package/contracts/components/IPoolComponent.sol +84 -31
  215. package/contracts/components/IProductComponent.sol +3 -2
  216. package/contracts/components/Pool.sol +223 -148
  217. package/contracts/components/Product.sol +221 -115
  218. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  219. package/contracts/instance/BundleManager.sol +10 -9
  220. package/contracts/instance/Cloneable.sol +7 -2
  221. package/contracts/instance/IInstance.sol +51 -19
  222. package/contracts/instance/IInstanceService.sol +33 -11
  223. package/contracts/instance/Instance.sol +143 -94
  224. package/contracts/instance/InstanceAccessManager.sol +389 -160
  225. package/contracts/instance/InstanceReader.sol +85 -12
  226. package/contracts/instance/InstanceService.sol +273 -224
  227. package/contracts/instance/InstanceServiceManager.sol +1 -1
  228. package/contracts/instance/ObjectManager.sol +6 -8
  229. package/contracts/instance/base/ComponentService.sol +28 -32
  230. package/contracts/instance/base/KeyValueStore.sol +13 -36
  231. package/contracts/instance/base/Lifecycle.sol +26 -6
  232. package/contracts/instance/module/IAccess.sol +22 -16
  233. package/contracts/instance/module/IBundle.sol +8 -5
  234. package/contracts/instance/module/IComponents.sol +41 -0
  235. package/contracts/instance/module/IDistribution.sol +2 -0
  236. package/contracts/instance/module/IPolicy.sol +41 -9
  237. package/contracts/instance/module/ISetup.sol +7 -20
  238. package/contracts/instance/service/ApplicationService.sol +356 -0
  239. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  240. package/contracts/instance/service/BundleService.sol +224 -132
  241. package/contracts/instance/service/BundleServiceManager.sol +1 -1
  242. package/contracts/instance/service/ClaimService.sol +444 -0
  243. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  244. package/contracts/instance/service/DistributionService.sol +344 -19
  245. package/contracts/instance/service/DistributionServiceManager.sol +1 -1
  246. package/contracts/instance/service/IApplicationService.sol +78 -0
  247. package/contracts/instance/service/IBundleService.sol +93 -22
  248. package/contracts/instance/service/IClaimService.sol +90 -0
  249. package/contracts/instance/service/IDistributionService.sol +87 -0
  250. package/contracts/instance/service/IPolicyService.sol +36 -50
  251. package/contracts/instance/service/IPoolService.sol +106 -3
  252. package/contracts/instance/service/PolicyService.sol +166 -346
  253. package/contracts/instance/service/PolicyServiceManager.sol +2 -2
  254. package/contracts/instance/service/PoolService.sol +312 -19
  255. package/contracts/instance/service/PoolServiceManager.sol +1 -1
  256. package/contracts/instance/service/ProductService.sol +35 -58
  257. package/contracts/instance/service/ProductServiceManager.sol +2 -2
  258. package/contracts/registry/ChainNft.sol +8 -0
  259. package/contracts/registry/IRegistry.sol +5 -2
  260. package/contracts/registry/IRegistryService.sol +12 -11
  261. package/contracts/registry/ITransferInterceptor.sol +1 -0
  262. package/contracts/registry/Registry.sol +43 -28
  263. package/contracts/registry/RegistryService.sol +70 -50
  264. package/contracts/registry/RegistryServiceManager.sol +13 -13
  265. package/contracts/registry/ReleaseManager.sol +32 -40
  266. package/contracts/registry/TokenRegistry.sol +16 -12
  267. package/contracts/shared/ERC165.sol +14 -12
  268. package/contracts/shared/INftOwnable.sol +11 -10
  269. package/contracts/shared/IPolicyHolder.sol +40 -0
  270. package/contracts/shared/IRegisterable.sol +3 -3
  271. package/contracts/shared/IRegistryLinked.sol +11 -0
  272. package/contracts/shared/IService.sol +6 -4
  273. package/contracts/shared/IVersionable.sol +4 -47
  274. package/contracts/shared/NftOwnable.sol +64 -85
  275. package/contracts/shared/PolicyHolder.sol +94 -0
  276. package/contracts/shared/ProxyManager.sol +100 -25
  277. package/contracts/shared/Registerable.sol +16 -27
  278. package/contracts/shared/RegistryLinked.sol +43 -0
  279. package/contracts/shared/Service.sol +32 -20
  280. package/contracts/shared/TokenHandler.sol +11 -5
  281. package/contracts/shared/Versionable.sol +4 -92
  282. package/contracts/test/TestRegisterable.sol +1 -1
  283. package/contracts/test/TestService.sol +1 -1
  284. package/contracts/types/Amount.sol +80 -0
  285. package/contracts/types/Blocknumber.sol +1 -0
  286. package/contracts/types/ClaimId.sol +75 -0
  287. package/contracts/types/DistributorType.sol +2 -2
  288. package/contracts/types/Fee.sol +13 -5
  289. package/contracts/types/NftId.sol +8 -0
  290. package/contracts/types/ObjectType.sol +11 -6
  291. package/contracts/types/PayoutId.sol +82 -0
  292. package/contracts/types/Referral.sol +4 -0
  293. package/contracts/types/RoleId.sol +16 -9
  294. package/contracts/types/Seconds.sol +54 -0
  295. package/contracts/types/StateId.sol +7 -2
  296. package/contracts/types/Timestamp.sol +18 -13
  297. package/contracts/types/UFixed.sol +1 -0
  298. package/contracts/types/Version.sol +1 -0
  299. package/package.json +3 -3
  300. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  301. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  302. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  303. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  304. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  305. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  306. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  307. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  308. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  309. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  310. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  311. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  312. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  313. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  314. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  315. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  316. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  317. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  318. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  319. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  320. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  321. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  322. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  323. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  324. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  325. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  326. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  327. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  328. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  329. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  330. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  331. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  332. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  333. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  334. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  335. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  336. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  337. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  338. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  339. package/contracts/experiment/cloning/Cloner.sol +0 -47
  340. package/contracts/experiment/errors/Require.sol +0 -38
  341. package/contracts/experiment/errors/Revert.sol +0 -44
  342. package/contracts/experiment/inheritance/A.sol +0 -53
  343. package/contracts/experiment/inheritance/B.sol +0 -28
  344. package/contracts/experiment/inheritance/C.sol +0 -34
  345. package/contracts/experiment/inheritance/IA.sol +0 -13
  346. package/contracts/experiment/inheritance/IB.sol +0 -10
  347. package/contracts/experiment/inheritance/IC.sol +0 -12
  348. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  349. package/contracts/experiment/statemachine/ISM.sol +0 -25
  350. package/contracts/experiment/statemachine/SM.sol +0 -57
  351. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  352. package/contracts/experiment/types/TypeA.sol +0 -47
  353. package/contracts/experiment/types/TypeB.sol +0 -29
@@ -45,27 +45,71 @@
45
45
  "inputs": [
46
46
  {
47
47
  "internalType": "address",
48
- "name": "registry",
48
+ "name": "instanceBundleManager",
49
49
  "type": "address"
50
- },
50
+ }
51
+ ],
52
+ "name": "ErrorInstanceBundleManagerAlreadySet",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
51
57
  {
52
- "internalType": "NftId",
53
- "name": "nftId",
54
- "type": "uint96"
58
+ "internalType": "address",
59
+ "name": "instanceAuthority",
60
+ "type": "address"
55
61
  }
56
62
  ],
57
- "name": "ErrorAlreadyLinked",
63
+ "name": "ErrorInstanceBundleManagerAuthorityMismatch",
58
64
  "type": "error"
59
65
  },
60
66
  {
61
67
  "inputs": [
62
68
  {
63
69
  "internalType": "address",
64
- "name": "contractAddress",
70
+ "name": "instance",
71
+ "type": "address"
72
+ }
73
+ ],
74
+ "name": "ErrorInstanceBundleManagerInstanceMismatch",
75
+ "type": "error"
76
+ },
77
+ {
78
+ "inputs": [
79
+ {
80
+ "internalType": "address",
81
+ "name": "instanceAccessManager",
82
+ "type": "address"
83
+ }
84
+ ],
85
+ "name": "ErrorInstanceInstanceAccessManagerAlreadySet",
86
+ "type": "error"
87
+ },
88
+ {
89
+ "inputs": [
90
+ {
91
+ "internalType": "address",
92
+ "name": "instanceAuthority",
93
+ "type": "address"
94
+ }
95
+ ],
96
+ "name": "ErrorInstanceInstanceAccessManagerAuthorityMismatch",
97
+ "type": "error"
98
+ },
99
+ {
100
+ "inputs": [],
101
+ "name": "ErrorInstanceInstanceAccessManagerZero",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [
106
+ {
107
+ "internalType": "address",
108
+ "name": "instanceAuthority",
65
109
  "type": "address"
66
110
  }
67
111
  ],
68
- "name": "ErrorContractNotRegistered",
112
+ "name": "ErrorInstanceInstanceReaderInstanceMismatch",
69
113
  "type": "error"
70
114
  },
71
115
  {
@@ -95,57 +139,63 @@
95
139
  "internalType": "NftId",
96
140
  "name": "nftId",
97
141
  "type": "uint96"
98
- },
99
- {
100
- "internalType": "ObjectType",
101
- "name": "objectType",
102
- "type": "uint8"
103
142
  }
104
143
  ],
105
- "name": "ErrorNoLifecycle",
144
+ "name": "ErrorNftOwnableAlreadyLinked",
106
145
  "type": "error"
107
146
  },
108
147
  {
109
148
  "inputs": [
110
149
  {
111
150
  "internalType": "address",
112
- "name": "account",
151
+ "name": "contractAddress",
113
152
  "type": "address"
114
153
  }
115
154
  ],
116
- "name": "ErrorNotOwner",
155
+ "name": "ErrorNftOwnableContractNotRegistered",
156
+ "type": "error"
157
+ },
158
+ {
159
+ "inputs": [],
160
+ "name": "ErrorNftOwnableInitialOwnerZero",
117
161
  "type": "error"
118
162
  },
119
163
  {
120
164
  "inputs": [
121
165
  {
122
166
  "internalType": "address",
123
- "name": "registryAddress",
167
+ "name": "account",
124
168
  "type": "address"
125
169
  }
126
170
  ],
127
- "name": "ErrorNotRegistry",
171
+ "name": "ErrorNftOwnableNotOwner",
128
172
  "type": "error"
129
173
  },
130
174
  {
131
- "inputs": [],
132
- "name": "ErrorRegistryAddressZero",
175
+ "inputs": [
176
+ {
177
+ "internalType": "NftId",
178
+ "name": "nftId",
179
+ "type": "uint96"
180
+ },
181
+ {
182
+ "internalType": "ObjectType",
183
+ "name": "objectType",
184
+ "type": "uint8"
185
+ }
186
+ ],
187
+ "name": "ErrorNoLifecycle",
133
188
  "type": "error"
134
189
  },
135
190
  {
136
191
  "inputs": [
137
192
  {
138
193
  "internalType": "address",
139
- "name": "registry",
194
+ "name": "registryAddress",
140
195
  "type": "address"
141
196
  }
142
197
  ],
143
- "name": "ErrorRegistryAlreadyInitialized",
144
- "type": "error"
145
- },
146
- {
147
- "inputs": [],
148
- "name": "ErrorRegistryNotInitialized",
198
+ "name": "ErrorNotRegistry",
149
199
  "type": "error"
150
200
  },
151
201
  {
@@ -307,141 +357,7 @@
307
357
  "inputs": [
308
358
  {
309
359
  "internalType": "NftId",
310
- "name": "bundleNftId",
311
- "type": "uint96"
312
- },
313
- {
314
- "components": [
315
- {
316
- "internalType": "NftId",
317
- "name": "poolNftId",
318
- "type": "uint96"
319
- },
320
- {
321
- "components": [
322
- {
323
- "internalType": "UFixed",
324
- "name": "fractionalFee",
325
- "type": "uint256"
326
- },
327
- {
328
- "internalType": "uint256",
329
- "name": "fixedFee",
330
- "type": "uint256"
331
- }
332
- ],
333
- "internalType": "struct Fee",
334
- "name": "fee",
335
- "type": "tuple"
336
- },
337
- {
338
- "internalType": "bytes",
339
- "name": "filter",
340
- "type": "bytes"
341
- },
342
- {
343
- "internalType": "uint256",
344
- "name": "capitalAmount",
345
- "type": "uint256"
346
- },
347
- {
348
- "internalType": "uint256",
349
- "name": "lockedAmount",
350
- "type": "uint256"
351
- },
352
- {
353
- "internalType": "uint256",
354
- "name": "balanceAmount",
355
- "type": "uint256"
356
- },
357
- {
358
- "internalType": "uint256",
359
- "name": "lifetime",
360
- "type": "uint256"
361
- },
362
- {
363
- "internalType": "Timestamp",
364
- "name": "expiredAt",
365
- "type": "uint40"
366
- },
367
- {
368
- "internalType": "Timestamp",
369
- "name": "closedAt",
370
- "type": "uint40"
371
- }
372
- ],
373
- "internalType": "struct IBundle.BundleInfo",
374
- "name": "bundle",
375
- "type": "tuple"
376
- }
377
- ],
378
- "name": "createBundle",
379
- "outputs": [],
380
- "stateMutability": "nonpayable",
381
- "type": "function"
382
- },
383
- {
384
- "inputs": [
385
- {
386
- "internalType": "NftId",
387
- "name": "distributionNftId",
388
- "type": "uint96"
389
- },
390
- {
391
- "components": [
392
- {
393
- "internalType": "NftId",
394
- "name": "productNftId",
395
- "type": "uint96"
396
- },
397
- {
398
- "internalType": "contract TokenHandler",
399
- "name": "tokenHandler",
400
- "type": "address"
401
- },
402
- {
403
- "components": [
404
- {
405
- "internalType": "UFixed",
406
- "name": "fractionalFee",
407
- "type": "uint256"
408
- },
409
- {
410
- "internalType": "uint256",
411
- "name": "fixedFee",
412
- "type": "uint256"
413
- }
414
- ],
415
- "internalType": "struct Fee",
416
- "name": "distributionFee",
417
- "type": "tuple"
418
- },
419
- {
420
- "internalType": "bool",
421
- "name": "isIntercepting",
422
- "type": "bool"
423
- },
424
- {
425
- "internalType": "address",
426
- "name": "wallet",
427
- "type": "address"
428
- }
429
- ],
430
- "internalType": "struct ISetup.DistributionSetupInfo",
431
- "name": "setup",
432
- "type": "tuple"
433
- }
434
- ],
435
- "name": "createDistributionSetup",
436
- "outputs": [],
437
- "stateMutability": "nonpayable",
438
- "type": "function"
439
- },
440
- {
441
- "inputs": [
442
- {
443
- "internalType": "NftId",
444
- "name": "policyNftId",
360
+ "name": "applicationNftId",
445
361
  "type": "uint96"
446
362
  },
447
363
  {
@@ -482,9 +398,9 @@
482
398
  "type": "uint256"
483
399
  },
484
400
  {
485
- "internalType": "uint256",
401
+ "internalType": "Seconds",
486
402
  "name": "lifetime",
487
- "type": "uint256"
403
+ "type": "uint40"
488
404
  },
489
405
  {
490
406
  "internalType": "bytes",
@@ -507,9 +423,14 @@
507
423
  "type": "uint16"
508
424
  },
509
425
  {
510
- "internalType": "uint256",
426
+ "internalType": "Amount",
427
+ "name": "claimAmount",
428
+ "type": "uint96"
429
+ },
430
+ {
431
+ "internalType": "Amount",
511
432
  "name": "payoutAmount",
512
- "type": "uint256"
433
+ "type": "uint96"
513
434
  },
514
435
  {
515
436
  "internalType": "Timestamp",
@@ -532,7 +453,7 @@
532
453
  "type": "tuple"
533
454
  }
534
455
  ],
535
- "name": "createPolicy",
456
+ "name": "createApplication",
536
457
  "outputs": [],
537
458
  "stateMutability": "nonpayable",
538
459
  "type": "function"
@@ -541,26 +462,16 @@
541
462
  "inputs": [
542
463
  {
543
464
  "internalType": "NftId",
544
- "name": "poolNftId",
465
+ "name": "bundleNftId",
545
466
  "type": "uint96"
546
467
  },
547
468
  {
548
469
  "components": [
549
470
  {
550
471
  "internalType": "NftId",
551
- "name": "productNftId",
472
+ "name": "poolNftId",
552
473
  "type": "uint96"
553
474
  },
554
- {
555
- "internalType": "contract TokenHandler",
556
- "name": "tokenHandler",
557
- "type": "address"
558
- },
559
- {
560
- "internalType": "UFixed",
561
- "name": "collateralizationLevel",
562
- "type": "uint256"
563
- },
564
475
  {
565
476
  "components": [
566
477
  {
@@ -575,65 +486,51 @@
575
486
  }
576
487
  ],
577
488
  "internalType": "struct Fee",
578
- "name": "poolFee",
489
+ "name": "fee",
579
490
  "type": "tuple"
580
491
  },
581
492
  {
582
- "components": [
583
- {
584
- "internalType": "UFixed",
585
- "name": "fractionalFee",
586
- "type": "uint256"
587
- },
588
- {
589
- "internalType": "uint256",
590
- "name": "fixedFee",
591
- "type": "uint256"
592
- }
593
- ],
594
- "internalType": "struct Fee",
595
- "name": "stakingFee",
596
- "type": "tuple"
493
+ "internalType": "bytes",
494
+ "name": "filter",
495
+ "type": "bytes"
597
496
  },
598
497
  {
599
- "components": [
600
- {
601
- "internalType": "UFixed",
602
- "name": "fractionalFee",
603
- "type": "uint256"
604
- },
605
- {
606
- "internalType": "uint256",
607
- "name": "fixedFee",
608
- "type": "uint256"
609
- }
610
- ],
611
- "internalType": "struct Fee",
612
- "name": "performanceFee",
613
- "type": "tuple"
498
+ "internalType": "Amount",
499
+ "name": "capitalAmount",
500
+ "type": "uint96"
614
501
  },
615
502
  {
616
- "internalType": "bool",
617
- "name": "isIntercepting",
618
- "type": "bool"
503
+ "internalType": "Amount",
504
+ "name": "lockedAmount",
505
+ "type": "uint96"
619
506
  },
620
507
  {
621
- "internalType": "bool",
622
- "name": "isConfirmingApplication",
623
- "type": "bool"
508
+ "internalType": "Amount",
509
+ "name": "feeAmount",
510
+ "type": "uint96"
624
511
  },
625
512
  {
626
- "internalType": "address",
627
- "name": "wallet",
628
- "type": "address"
513
+ "internalType": "Seconds",
514
+ "name": "lifetime",
515
+ "type": "uint40"
516
+ },
517
+ {
518
+ "internalType": "Timestamp",
519
+ "name": "expiredAt",
520
+ "type": "uint40"
521
+ },
522
+ {
523
+ "internalType": "Timestamp",
524
+ "name": "closedAt",
525
+ "type": "uint40"
629
526
  }
630
527
  ],
631
- "internalType": "struct ISetup.PoolSetupInfo",
632
- "name": "setup",
528
+ "internalType": "struct IBundle.BundleInfo",
529
+ "name": "bundle",
633
530
  "type": "tuple"
634
531
  }
635
532
  ],
636
- "name": "createPoolSetup",
533
+ "name": "createBundle",
637
534
  "outputs": [],
638
535
  "stateMutability": "nonpayable",
639
536
  "type": "function"
@@ -642,98 +539,75 @@
642
539
  "inputs": [
643
540
  {
644
541
  "internalType": "NftId",
645
- "name": "productNftId",
542
+ "name": "policyNftId",
646
543
  "type": "uint96"
647
544
  },
545
+ {
546
+ "internalType": "ClaimId",
547
+ "name": "claimId",
548
+ "type": "uint16"
549
+ },
648
550
  {
649
551
  "components": [
650
552
  {
651
- "internalType": "contract IERC20Metadata",
652
- "name": "token",
653
- "type": "address"
654
- },
655
- {
656
- "internalType": "contract TokenHandler",
657
- "name": "tokenHandler",
658
- "type": "address"
553
+ "internalType": "Amount",
554
+ "name": "claimAmount",
555
+ "type": "uint96"
659
556
  },
660
557
  {
661
- "internalType": "NftId",
662
- "name": "distributionNftId",
558
+ "internalType": "Amount",
559
+ "name": "paidAmount",
663
560
  "type": "uint96"
664
561
  },
665
562
  {
666
- "internalType": "NftId",
667
- "name": "poolNftId",
668
- "type": "uint96"
563
+ "internalType": "uint8",
564
+ "name": "payoutsCount",
565
+ "type": "uint8"
669
566
  },
670
567
  {
671
- "components": [
672
- {
673
- "internalType": "UFixed",
674
- "name": "fractionalFee",
675
- "type": "uint256"
676
- },
677
- {
678
- "internalType": "uint256",
679
- "name": "fixedFee",
680
- "type": "uint256"
681
- }
682
- ],
683
- "internalType": "struct Fee",
684
- "name": "distributionFee",
685
- "type": "tuple"
568
+ "internalType": "uint8",
569
+ "name": "openPayoutsCount",
570
+ "type": "uint8"
686
571
  },
687
572
  {
688
- "components": [
689
- {
690
- "internalType": "UFixed",
691
- "name": "fractionalFee",
692
- "type": "uint256"
693
- },
694
- {
695
- "internalType": "uint256",
696
- "name": "fixedFee",
697
- "type": "uint256"
698
- }
699
- ],
700
- "internalType": "struct Fee",
701
- "name": "productFee",
702
- "type": "tuple"
573
+ "internalType": "bytes",
574
+ "name": "data",
575
+ "type": "bytes"
703
576
  },
704
577
  {
705
- "components": [
706
- {
707
- "internalType": "UFixed",
708
- "name": "fractionalFee",
709
- "type": "uint256"
710
- },
711
- {
712
- "internalType": "uint256",
713
- "name": "fixedFee",
714
- "type": "uint256"
715
- }
716
- ],
717
- "internalType": "struct Fee",
718
- "name": "processingFee",
719
- "type": "tuple"
578
+ "internalType": "Timestamp",
579
+ "name": "closedAt",
580
+ "type": "uint40"
581
+ }
582
+ ],
583
+ "internalType": "struct IPolicy.ClaimInfo",
584
+ "name": "claim",
585
+ "type": "tuple"
586
+ }
587
+ ],
588
+ "name": "createClaim",
589
+ "outputs": [],
590
+ "stateMutability": "nonpayable",
591
+ "type": "function"
592
+ },
593
+ {
594
+ "inputs": [
595
+ {
596
+ "internalType": "NftId",
597
+ "name": "distributionNftId",
598
+ "type": "uint96"
599
+ },
600
+ {
601
+ "components": [
602
+ {
603
+ "internalType": "NftId",
604
+ "name": "productNftId",
605
+ "type": "uint96"
720
606
  },
721
607
  {
722
- "components": [
723
- {
724
- "internalType": "UFixed",
725
- "name": "fractionalFee",
726
- "type": "uint256"
727
- },
728
- {
729
- "internalType": "uint256",
730
- "name": "fixedFee",
731
- "type": "uint256"
732
- }
733
- ],
734
- "internalType": "struct Fee",
735
- "name": "poolFee",
736
- "type": "tuple"
608
+ "internalType": "contract TokenHandler",
609
+ "name": "tokenHandler",
610
+ "type": "address"
737
611
  },
738
612
  {
739
613
  "components": [
@@ -749,7 +623,7 @@
749
623
  }
750
624
  ],
751
625
  "internalType": "struct Fee",
752
- "name": "stakingFee",
626
+ "name": "minDistributionOwnerFee",
753
627
  "type": "tuple"
754
628
  },
755
629
  {
@@ -766,26 +640,26 @@
766
640
  }
767
641
  ],
768
642
  "internalType": "struct Fee",
769
- "name": "performanceFee",
643
+ "name": "distributionFee",
770
644
  "type": "tuple"
771
645
  },
772
- {
773
- "internalType": "bool",
774
- "name": "isIntercepting",
775
- "type": "bool"
776
- },
777
646
  {
778
647
  "internalType": "address",
779
648
  "name": "wallet",
780
649
  "type": "address"
650
+ },
651
+ {
652
+ "internalType": "uint256",
653
+ "name": "sumDistributionOwnerFees",
654
+ "type": "uint256"
781
655
  }
782
656
  ],
783
- "internalType": "struct ISetup.ProductSetupInfo",
657
+ "internalType": "struct ISetup.DistributionSetupInfo",
784
658
  "name": "setup",
785
659
  "type": "tuple"
786
660
  }
787
661
  ],
788
- "name": "createProductSetup",
662
+ "name": "createDistributionSetup",
789
663
  "outputs": [],
790
664
  "stateMutability": "nonpayable",
791
665
  "type": "function"
@@ -793,29 +667,44 @@
793
667
  {
794
668
  "inputs": [
795
669
  {
796
- "internalType": "RiskId",
797
- "name": "riskId",
798
- "type": "bytes8"
670
+ "internalType": "NftId",
671
+ "name": "nftId",
672
+ "type": "uint96"
799
673
  },
800
674
  {
801
675
  "components": [
802
676
  {
803
- "internalType": "NftId",
804
- "name": "productNftId",
805
- "type": "uint96"
677
+ "internalType": "DistributorType",
678
+ "name": "distributorType",
679
+ "type": "bytes8"
680
+ },
681
+ {
682
+ "internalType": "bool",
683
+ "name": "active",
684
+ "type": "bool"
806
685
  },
807
686
  {
808
687
  "internalType": "bytes",
809
688
  "name": "data",
810
689
  "type": "bytes"
690
+ },
691
+ {
692
+ "internalType": "uint256",
693
+ "name": "sumCommisions",
694
+ "type": "uint256"
695
+ },
696
+ {
697
+ "internalType": "uint256",
698
+ "name": "numPoliciesSold",
699
+ "type": "uint256"
811
700
  }
812
701
  ],
813
- "internalType": "struct IRisk.RiskInfo",
814
- "name": "risk",
702
+ "internalType": "struct IDistribution.DistributorInfo",
703
+ "name": "info",
815
704
  "type": "tuple"
816
705
  }
817
706
  ],
818
- "name": "createRisk",
707
+ "name": "createDistributor",
819
708
  "outputs": [],
820
709
  "stateMutability": "nonpayable",
821
710
  "type": "function"
@@ -823,36 +712,370 @@
823
712
  {
824
713
  "inputs": [
825
714
  {
826
- "internalType": "Key32",
827
- "name": "key",
828
- "type": "bytes32"
829
- }
830
- ],
831
- "name": "exists",
832
- "outputs": [
715
+ "internalType": "DistributorType",
716
+ "name": "distributorType",
717
+ "type": "bytes8"
718
+ },
833
719
  {
834
- "internalType": "bool",
835
- "name": "",
836
- "type": "bool"
720
+ "components": [
721
+ {
722
+ "internalType": "string",
723
+ "name": "name",
724
+ "type": "string"
725
+ },
726
+ {
727
+ "internalType": "UFixed",
728
+ "name": "minDiscountPercentage",
729
+ "type": "uint256"
730
+ },
731
+ {
732
+ "internalType": "UFixed",
733
+ "name": "maxDiscountPercentage",
734
+ "type": "uint256"
735
+ },
736
+ {
737
+ "internalType": "UFixed",
738
+ "name": "commissionPercentage",
739
+ "type": "uint256"
740
+ },
741
+ {
742
+ "internalType": "uint32",
743
+ "name": "maxReferralCount",
744
+ "type": "uint32"
745
+ },
746
+ {
747
+ "internalType": "uint32",
748
+ "name": "maxReferralLifetime",
749
+ "type": "uint32"
750
+ },
751
+ {
752
+ "internalType": "bool",
753
+ "name": "allowSelfReferrals",
754
+ "type": "bool"
755
+ },
756
+ {
757
+ "internalType": "bool",
758
+ "name": "allowRenewals",
759
+ "type": "bool"
760
+ },
761
+ {
762
+ "internalType": "bytes",
763
+ "name": "data",
764
+ "type": "bytes"
765
+ }
766
+ ],
767
+ "internalType": "struct IDistribution.DistributorTypeInfo",
768
+ "name": "info",
769
+ "type": "tuple"
837
770
  }
838
771
  ],
839
- "stateMutability": "view",
772
+ "name": "createDistributorType",
773
+ "outputs": [],
774
+ "stateMutability": "nonpayable",
840
775
  "type": "function"
841
776
  },
842
777
  {
843
778
  "inputs": [
844
779
  {
845
- "internalType": "Key32",
846
- "name": "key",
847
- "type": "bytes32"
848
- }
849
- ],
850
- "name": "get",
851
- "outputs": [
780
+ "internalType": "NftId",
781
+ "name": "policyNftId",
782
+ "type": "uint96"
783
+ },
784
+ {
785
+ "internalType": "PayoutId",
786
+ "name": "payoutId",
787
+ "type": "uint24"
788
+ },
852
789
  {
853
790
  "components": [
854
791
  {
855
- "components": [
792
+ "internalType": "ClaimId",
793
+ "name": "claimId",
794
+ "type": "uint16"
795
+ },
796
+ {
797
+ "internalType": "Amount",
798
+ "name": "amount",
799
+ "type": "uint96"
800
+ },
801
+ {
802
+ "internalType": "bytes",
803
+ "name": "data",
804
+ "type": "bytes"
805
+ },
806
+ {
807
+ "internalType": "Timestamp",
808
+ "name": "paidAt",
809
+ "type": "uint40"
810
+ }
811
+ ],
812
+ "internalType": "struct IPolicy.PayoutInfo",
813
+ "name": "claim",
814
+ "type": "tuple"
815
+ }
816
+ ],
817
+ "name": "createPayout",
818
+ "outputs": [],
819
+ "stateMutability": "nonpayable",
820
+ "type": "function"
821
+ },
822
+ {
823
+ "inputs": [
824
+ {
825
+ "internalType": "NftId",
826
+ "name": "poolNftId",
827
+ "type": "uint96"
828
+ },
829
+ {
830
+ "components": [
831
+ {
832
+ "internalType": "string",
833
+ "name": "name",
834
+ "type": "string"
835
+ },
836
+ {
837
+ "internalType": "contract IERC20Metadata",
838
+ "name": "token",
839
+ "type": "address"
840
+ },
841
+ {
842
+ "internalType": "contract TokenHandler",
843
+ "name": "tokenHandler",
844
+ "type": "address"
845
+ },
846
+ {
847
+ "internalType": "address",
848
+ "name": "wallet",
849
+ "type": "address"
850
+ },
851
+ {
852
+ "internalType": "Amount",
853
+ "name": "balanceAmount",
854
+ "type": "uint96"
855
+ },
856
+ {
857
+ "internalType": "Amount",
858
+ "name": "feeAmount",
859
+ "type": "uint96"
860
+ },
861
+ {
862
+ "internalType": "bytes",
863
+ "name": "data",
864
+ "type": "bytes"
865
+ }
866
+ ],
867
+ "internalType": "struct IComponents.ComponentInfo",
868
+ "name": "info",
869
+ "type": "tuple"
870
+ }
871
+ ],
872
+ "name": "createPoolSetup",
873
+ "outputs": [],
874
+ "stateMutability": "nonpayable",
875
+ "type": "function"
876
+ },
877
+ {
878
+ "inputs": [
879
+ {
880
+ "internalType": "NftId",
881
+ "name": "productNftId",
882
+ "type": "uint96"
883
+ },
884
+ {
885
+ "components": [
886
+ {
887
+ "internalType": "contract IERC20Metadata",
888
+ "name": "token",
889
+ "type": "address"
890
+ },
891
+ {
892
+ "internalType": "contract TokenHandler",
893
+ "name": "tokenHandler",
894
+ "type": "address"
895
+ },
896
+ {
897
+ "internalType": "NftId",
898
+ "name": "distributionNftId",
899
+ "type": "uint96"
900
+ },
901
+ {
902
+ "internalType": "NftId",
903
+ "name": "poolNftId",
904
+ "type": "uint96"
905
+ },
906
+ {
907
+ "components": [
908
+ {
909
+ "internalType": "UFixed",
910
+ "name": "fractionalFee",
911
+ "type": "uint256"
912
+ },
913
+ {
914
+ "internalType": "uint256",
915
+ "name": "fixedFee",
916
+ "type": "uint256"
917
+ }
918
+ ],
919
+ "internalType": "struct Fee",
920
+ "name": "productFee",
921
+ "type": "tuple"
922
+ },
923
+ {
924
+ "components": [
925
+ {
926
+ "internalType": "UFixed",
927
+ "name": "fractionalFee",
928
+ "type": "uint256"
929
+ },
930
+ {
931
+ "internalType": "uint256",
932
+ "name": "fixedFee",
933
+ "type": "uint256"
934
+ }
935
+ ],
936
+ "internalType": "struct Fee",
937
+ "name": "processingFee",
938
+ "type": "tuple"
939
+ },
940
+ {
941
+ "internalType": "bool",
942
+ "name": "isIntercepting",
943
+ "type": "bool"
944
+ },
945
+ {
946
+ "internalType": "address",
947
+ "name": "wallet",
948
+ "type": "address"
949
+ }
950
+ ],
951
+ "internalType": "struct ISetup.ProductSetupInfo",
952
+ "name": "setup",
953
+ "type": "tuple"
954
+ }
955
+ ],
956
+ "name": "createProductSetup",
957
+ "outputs": [],
958
+ "stateMutability": "nonpayable",
959
+ "type": "function"
960
+ },
961
+ {
962
+ "inputs": [
963
+ {
964
+ "internalType": "ReferralId",
965
+ "name": "referralId",
966
+ "type": "bytes8"
967
+ },
968
+ {
969
+ "components": [
970
+ {
971
+ "internalType": "NftId",
972
+ "name": "distributorNftId",
973
+ "type": "uint96"
974
+ },
975
+ {
976
+ "internalType": "string",
977
+ "name": "referralCode",
978
+ "type": "string"
979
+ },
980
+ {
981
+ "internalType": "UFixed",
982
+ "name": "discountPercentage",
983
+ "type": "uint256"
984
+ },
985
+ {
986
+ "internalType": "uint32",
987
+ "name": "maxReferrals",
988
+ "type": "uint32"
989
+ },
990
+ {
991
+ "internalType": "uint32",
992
+ "name": "usedReferrals",
993
+ "type": "uint32"
994
+ },
995
+ {
996
+ "internalType": "Timestamp",
997
+ "name": "expiryAt",
998
+ "type": "uint40"
999
+ },
1000
+ {
1001
+ "internalType": "bytes",
1002
+ "name": "data",
1003
+ "type": "bytes"
1004
+ }
1005
+ ],
1006
+ "internalType": "struct IDistribution.ReferralInfo",
1007
+ "name": "referralInfo",
1008
+ "type": "tuple"
1009
+ }
1010
+ ],
1011
+ "name": "createReferral",
1012
+ "outputs": [],
1013
+ "stateMutability": "nonpayable",
1014
+ "type": "function"
1015
+ },
1016
+ {
1017
+ "inputs": [
1018
+ {
1019
+ "internalType": "RiskId",
1020
+ "name": "riskId",
1021
+ "type": "bytes8"
1022
+ },
1023
+ {
1024
+ "components": [
1025
+ {
1026
+ "internalType": "NftId",
1027
+ "name": "productNftId",
1028
+ "type": "uint96"
1029
+ },
1030
+ {
1031
+ "internalType": "bytes",
1032
+ "name": "data",
1033
+ "type": "bytes"
1034
+ }
1035
+ ],
1036
+ "internalType": "struct IRisk.RiskInfo",
1037
+ "name": "risk",
1038
+ "type": "tuple"
1039
+ }
1040
+ ],
1041
+ "name": "createRisk",
1042
+ "outputs": [],
1043
+ "stateMutability": "nonpayable",
1044
+ "type": "function"
1045
+ },
1046
+ {
1047
+ "inputs": [
1048
+ {
1049
+ "internalType": "Key32",
1050
+ "name": "key",
1051
+ "type": "bytes32"
1052
+ }
1053
+ ],
1054
+ "name": "exists",
1055
+ "outputs": [
1056
+ {
1057
+ "internalType": "bool",
1058
+ "name": "",
1059
+ "type": "bool"
1060
+ }
1061
+ ],
1062
+ "stateMutability": "view",
1063
+ "type": "function"
1064
+ },
1065
+ {
1066
+ "inputs": [
1067
+ {
1068
+ "internalType": "Key32",
1069
+ "name": "key",
1070
+ "type": "bytes32"
1071
+ }
1072
+ ],
1073
+ "name": "get",
1074
+ "outputs": [
1075
+ {
1076
+ "components": [
1077
+ {
1078
+ "components": [
856
1079
  {
857
1080
  "internalType": "ObjectType",
858
1081
  "name": "objectType",
@@ -894,369 +1117,872 @@
894
1117
  "type": "tuple"
895
1118
  }
896
1119
  ],
897
- "stateMutability": "view",
1120
+ "stateMutability": "view",
1121
+ "type": "function"
1122
+ },
1123
+ {
1124
+ "inputs": [],
1125
+ "name": "getBundleManager",
1126
+ "outputs": [
1127
+ {
1128
+ "internalType": "contract BundleManager",
1129
+ "name": "",
1130
+ "type": "address"
1131
+ }
1132
+ ],
1133
+ "stateMutability": "view",
1134
+ "type": "function"
1135
+ },
1136
+ {
1137
+ "inputs": [
1138
+ {
1139
+ "internalType": "Key32",
1140
+ "name": "key",
1141
+ "type": "bytes32"
1142
+ }
1143
+ ],
1144
+ "name": "getData",
1145
+ "outputs": [
1146
+ {
1147
+ "internalType": "bytes",
1148
+ "name": "data",
1149
+ "type": "bytes"
1150
+ }
1151
+ ],
1152
+ "stateMutability": "view",
1153
+ "type": "function"
1154
+ },
1155
+ {
1156
+ "inputs": [],
1157
+ "name": "getInitialInfo",
1158
+ "outputs": [
1159
+ {
1160
+ "components": [
1161
+ {
1162
+ "internalType": "NftId",
1163
+ "name": "nftId",
1164
+ "type": "uint96"
1165
+ },
1166
+ {
1167
+ "internalType": "NftId",
1168
+ "name": "parentNftId",
1169
+ "type": "uint96"
1170
+ },
1171
+ {
1172
+ "internalType": "ObjectType",
1173
+ "name": "objectType",
1174
+ "type": "uint8"
1175
+ },
1176
+ {
1177
+ "internalType": "bool",
1178
+ "name": "isInterceptor",
1179
+ "type": "bool"
1180
+ },
1181
+ {
1182
+ "internalType": "address",
1183
+ "name": "objectAddress",
1184
+ "type": "address"
1185
+ },
1186
+ {
1187
+ "internalType": "address",
1188
+ "name": "initialOwner",
1189
+ "type": "address"
1190
+ },
1191
+ {
1192
+ "internalType": "bytes",
1193
+ "name": "data",
1194
+ "type": "bytes"
1195
+ }
1196
+ ],
1197
+ "internalType": "struct IRegistry.ObjectInfo",
1198
+ "name": "",
1199
+ "type": "tuple"
1200
+ }
1201
+ ],
1202
+ "stateMutability": "view",
1203
+ "type": "function"
1204
+ },
1205
+ {
1206
+ "inputs": [
1207
+ {
1208
+ "internalType": "ObjectType",
1209
+ "name": "objectType",
1210
+ "type": "uint8"
1211
+ }
1212
+ ],
1213
+ "name": "getInitialState",
1214
+ "outputs": [
1215
+ {
1216
+ "internalType": "StateId",
1217
+ "name": "",
1218
+ "type": "uint8"
1219
+ }
1220
+ ],
1221
+ "stateMutability": "view",
1222
+ "type": "function"
1223
+ },
1224
+ {
1225
+ "inputs": [],
1226
+ "name": "getInstanceAccessManager",
1227
+ "outputs": [
1228
+ {
1229
+ "internalType": "contract InstanceAccessManager",
1230
+ "name": "",
1231
+ "type": "address"
1232
+ }
1233
+ ],
1234
+ "stateMutability": "view",
1235
+ "type": "function"
1236
+ },
1237
+ {
1238
+ "inputs": [],
1239
+ "name": "getInstanceReader",
1240
+ "outputs": [
1241
+ {
1242
+ "internalType": "contract InstanceReader",
1243
+ "name": "",
1244
+ "type": "address"
1245
+ }
1246
+ ],
1247
+ "stateMutability": "view",
1248
+ "type": "function"
1249
+ },
1250
+ {
1251
+ "inputs": [],
1252
+ "name": "getMajorVersion",
1253
+ "outputs": [
1254
+ {
1255
+ "internalType": "VersionPart",
1256
+ "name": "majorVersion",
1257
+ "type": "uint8"
1258
+ }
1259
+ ],
1260
+ "stateMutability": "pure",
1261
+ "type": "function"
1262
+ },
1263
+ {
1264
+ "inputs": [
1265
+ {
1266
+ "internalType": "Key32",
1267
+ "name": "key",
1268
+ "type": "bytes32"
1269
+ }
1270
+ ],
1271
+ "name": "getMetadata",
1272
+ "outputs": [
1273
+ {
1274
+ "components": [
1275
+ {
1276
+ "internalType": "ObjectType",
1277
+ "name": "objectType",
1278
+ "type": "uint8"
1279
+ },
1280
+ {
1281
+ "internalType": "StateId",
1282
+ "name": "state",
1283
+ "type": "uint8"
1284
+ },
1285
+ {
1286
+ "internalType": "address",
1287
+ "name": "updatedBy",
1288
+ "type": "address"
1289
+ },
1290
+ {
1291
+ "internalType": "Blocknumber",
1292
+ "name": "updatedIn",
1293
+ "type": "uint32"
1294
+ },
1295
+ {
1296
+ "internalType": "Blocknumber",
1297
+ "name": "createdIn",
1298
+ "type": "uint32"
1299
+ }
1300
+ ],
1301
+ "internalType": "struct IKeyValueStore.Metadata",
1302
+ "name": "metadata",
1303
+ "type": "tuple"
1304
+ }
1305
+ ],
1306
+ "stateMutability": "view",
1307
+ "type": "function"
1308
+ },
1309
+ {
1310
+ "inputs": [],
1311
+ "name": "getNftId",
1312
+ "outputs": [
1313
+ {
1314
+ "internalType": "NftId",
1315
+ "name": "",
1316
+ "type": "uint96"
1317
+ }
1318
+ ],
1319
+ "stateMutability": "view",
1320
+ "type": "function"
1321
+ },
1322
+ {
1323
+ "inputs": [],
1324
+ "name": "getOwner",
1325
+ "outputs": [
1326
+ {
1327
+ "internalType": "address",
1328
+ "name": "",
1329
+ "type": "address"
1330
+ }
1331
+ ],
1332
+ "stateMutability": "view",
1333
+ "type": "function"
1334
+ },
1335
+ {
1336
+ "inputs": [],
1337
+ "name": "getRegistry",
1338
+ "outputs": [
1339
+ {
1340
+ "internalType": "contract IRegistry",
1341
+ "name": "",
1342
+ "type": "address"
1343
+ }
1344
+ ],
1345
+ "stateMutability": "view",
1346
+ "type": "function"
1347
+ },
1348
+ {
1349
+ "inputs": [
1350
+ {
1351
+ "internalType": "Key32",
1352
+ "name": "key",
1353
+ "type": "bytes32"
1354
+ }
1355
+ ],
1356
+ "name": "getState",
1357
+ "outputs": [
1358
+ {
1359
+ "internalType": "StateId",
1360
+ "name": "state",
1361
+ "type": "uint8"
1362
+ }
1363
+ ],
1364
+ "stateMutability": "view",
1365
+ "type": "function"
1366
+ },
1367
+ {
1368
+ "inputs": [
1369
+ {
1370
+ "internalType": "ObjectType",
1371
+ "name": "objectType",
1372
+ "type": "uint8"
1373
+ }
1374
+ ],
1375
+ "name": "hasLifecycle",
1376
+ "outputs": [
1377
+ {
1378
+ "internalType": "bool",
1379
+ "name": "",
1380
+ "type": "bool"
1381
+ }
1382
+ ],
1383
+ "stateMutability": "view",
1384
+ "type": "function"
1385
+ },
1386
+ {
1387
+ "inputs": [],
1388
+ "name": "isConsumingScheduledOp",
1389
+ "outputs": [
1390
+ {
1391
+ "internalType": "bytes4",
1392
+ "name": "",
1393
+ "type": "bytes4"
1394
+ }
1395
+ ],
1396
+ "stateMutability": "view",
1397
+ "type": "function"
1398
+ },
1399
+ {
1400
+ "inputs": [
1401
+ {
1402
+ "internalType": "ObjectType",
1403
+ "name": "objectType",
1404
+ "type": "uint8"
1405
+ },
1406
+ {
1407
+ "internalType": "StateId",
1408
+ "name": "fromId",
1409
+ "type": "uint8"
1410
+ },
1411
+ {
1412
+ "internalType": "StateId",
1413
+ "name": "toId",
1414
+ "type": "uint8"
1415
+ }
1416
+ ],
1417
+ "name": "isValidTransition",
1418
+ "outputs": [
1419
+ {
1420
+ "internalType": "bool",
1421
+ "name": "",
1422
+ "type": "bool"
1423
+ }
1424
+ ],
1425
+ "stateMutability": "view",
1426
+ "type": "function"
1427
+ },
1428
+ {
1429
+ "inputs": [],
1430
+ "name": "linkToRegisteredNftId",
1431
+ "outputs": [],
1432
+ "stateMutability": "nonpayable",
1433
+ "type": "function"
1434
+ },
1435
+ {
1436
+ "inputs": [
1437
+ {
1438
+ "internalType": "address",
1439
+ "name": "to",
1440
+ "type": "address"
1441
+ },
1442
+ {
1443
+ "internalType": "uint256",
1444
+ "name": "tokenId",
1445
+ "type": "uint256"
1446
+ }
1447
+ ],
1448
+ "name": "nftMint",
1449
+ "outputs": [],
1450
+ "stateMutability": "nonpayable",
898
1451
  "type": "function"
899
1452
  },
900
1453
  {
901
- "inputs": [],
902
- "name": "getBundleManager",
903
- "outputs": [
1454
+ "inputs": [
904
1455
  {
905
- "internalType": "contract BundleManager",
906
- "name": "",
1456
+ "internalType": "address",
1457
+ "name": "from",
1458
+ "type": "address"
1459
+ },
1460
+ {
1461
+ "internalType": "address",
1462
+ "name": "to",
907
1463
  "type": "address"
1464
+ },
1465
+ {
1466
+ "internalType": "uint256",
1467
+ "name": "tokenId",
1468
+ "type": "uint256"
908
1469
  }
909
1470
  ],
910
- "stateMutability": "view",
1471
+ "name": "nftTransferFrom",
1472
+ "outputs": [],
1473
+ "stateMutability": "nonpayable",
911
1474
  "type": "function"
912
1475
  },
913
1476
  {
914
- "inputs": [],
915
- "name": "getBundleService",
916
- "outputs": [
1477
+ "inputs": [
917
1478
  {
918
- "internalType": "contract IBundleService",
1479
+ "internalType": "address",
919
1480
  "name": "",
920
1481
  "type": "address"
921
1482
  }
922
1483
  ],
923
- "stateMutability": "view",
1484
+ "name": "setAuthority",
1485
+ "outputs": [],
1486
+ "stateMutability": "nonpayable",
924
1487
  "type": "function"
925
1488
  },
926
1489
  {
927
1490
  "inputs": [
928
1491
  {
929
- "internalType": "Key32",
930
- "name": "key",
931
- "type": "bytes32"
1492
+ "internalType": "bytes4",
1493
+ "name": "interfaceId",
1494
+ "type": "bytes4"
932
1495
  }
933
1496
  ],
934
- "name": "getData",
1497
+ "name": "supportsInterface",
935
1498
  "outputs": [
936
1499
  {
937
- "internalType": "bytes",
938
- "name": "data",
939
- "type": "bytes"
1500
+ "internalType": "bool",
1501
+ "name": "",
1502
+ "type": "bool"
940
1503
  }
941
1504
  ],
942
1505
  "stateMutability": "view",
943
1506
  "type": "function"
944
1507
  },
945
1508
  {
946
- "inputs": [],
947
- "name": "getDistributionService",
1509
+ "inputs": [
1510
+ {
1511
+ "internalType": "ObjectType",
1512
+ "name": "objectType",
1513
+ "type": "uint8"
1514
+ },
1515
+ {
1516
+ "internalType": "KeyId",
1517
+ "name": "id",
1518
+ "type": "bytes31"
1519
+ }
1520
+ ],
1521
+ "name": "toKey32",
948
1522
  "outputs": [
949
1523
  {
950
- "internalType": "contract IDistributionService",
1524
+ "internalType": "Key32",
951
1525
  "name": "",
952
- "type": "address"
1526
+ "type": "bytes32"
953
1527
  }
954
1528
  ],
955
- "stateMutability": "view",
1529
+ "stateMutability": "pure",
956
1530
  "type": "function"
957
1531
  },
958
1532
  {
959
- "inputs": [],
960
- "name": "getInitialInfo",
961
- "outputs": [
1533
+ "inputs": [
1534
+ {
1535
+ "internalType": "NftId",
1536
+ "name": "applicationNftId",
1537
+ "type": "uint96"
1538
+ },
962
1539
  {
963
1540
  "components": [
964
1541
  {
965
1542
  "internalType": "NftId",
966
- "name": "nftId",
1543
+ "name": "productNftId",
967
1544
  "type": "uint96"
968
1545
  },
969
1546
  {
970
1547
  "internalType": "NftId",
971
- "name": "parentNftId",
1548
+ "name": "bundleNftId",
972
1549
  "type": "uint96"
973
1550
  },
974
1551
  {
975
- "internalType": "ObjectType",
976
- "name": "objectType",
977
- "type": "uint8"
1552
+ "internalType": "ReferralId",
1553
+ "name": "referralId",
1554
+ "type": "bytes8"
978
1555
  },
979
1556
  {
980
- "internalType": "bool",
981
- "name": "isInterceptor",
982
- "type": "bool"
1557
+ "internalType": "RiskId",
1558
+ "name": "riskId",
1559
+ "type": "bytes8"
983
1560
  },
984
1561
  {
985
- "internalType": "address",
986
- "name": "objectAddress",
987
- "type": "address"
1562
+ "internalType": "uint256",
1563
+ "name": "sumInsuredAmount",
1564
+ "type": "uint256"
988
1565
  },
989
1566
  {
990
- "internalType": "address",
991
- "name": "initialOwner",
992
- "type": "address"
1567
+ "internalType": "uint256",
1568
+ "name": "premiumAmount",
1569
+ "type": "uint256"
1570
+ },
1571
+ {
1572
+ "internalType": "uint256",
1573
+ "name": "premiumPaidAmount",
1574
+ "type": "uint256"
1575
+ },
1576
+ {
1577
+ "internalType": "Seconds",
1578
+ "name": "lifetime",
1579
+ "type": "uint40"
993
1580
  },
994
1581
  {
995
1582
  "internalType": "bytes",
996
- "name": "data",
1583
+ "name": "applicationData",
1584
+ "type": "bytes"
1585
+ },
1586
+ {
1587
+ "internalType": "bytes",
1588
+ "name": "policyData",
997
1589
  "type": "bytes"
1590
+ },
1591
+ {
1592
+ "internalType": "uint16",
1593
+ "name": "claimsCount",
1594
+ "type": "uint16"
1595
+ },
1596
+ {
1597
+ "internalType": "uint16",
1598
+ "name": "openClaimsCount",
1599
+ "type": "uint16"
1600
+ },
1601
+ {
1602
+ "internalType": "Amount",
1603
+ "name": "claimAmount",
1604
+ "type": "uint96"
1605
+ },
1606
+ {
1607
+ "internalType": "Amount",
1608
+ "name": "payoutAmount",
1609
+ "type": "uint96"
1610
+ },
1611
+ {
1612
+ "internalType": "Timestamp",
1613
+ "name": "activatedAt",
1614
+ "type": "uint40"
1615
+ },
1616
+ {
1617
+ "internalType": "Timestamp",
1618
+ "name": "expiredAt",
1619
+ "type": "uint40"
1620
+ },
1621
+ {
1622
+ "internalType": "Timestamp",
1623
+ "name": "closedAt",
1624
+ "type": "uint40"
998
1625
  }
999
1626
  ],
1000
- "internalType": "struct IRegistry.ObjectInfo",
1001
- "name": "",
1627
+ "internalType": "struct IPolicy.PolicyInfo",
1628
+ "name": "policy",
1002
1629
  "type": "tuple"
1630
+ },
1631
+ {
1632
+ "internalType": "StateId",
1633
+ "name": "newState",
1634
+ "type": "uint8"
1003
1635
  }
1004
1636
  ],
1005
- "stateMutability": "view",
1637
+ "name": "updateApplication",
1638
+ "outputs": [],
1639
+ "stateMutability": "nonpayable",
1006
1640
  "type": "function"
1007
1641
  },
1008
1642
  {
1009
1643
  "inputs": [
1010
1644
  {
1011
- "internalType": "ObjectType",
1012
- "name": "objectType",
1013
- "type": "uint8"
1014
- }
1015
- ],
1016
- "name": "getInitialState",
1017
- "outputs": [
1645
+ "internalType": "NftId",
1646
+ "name": "applicationNftId",
1647
+ "type": "uint96"
1648
+ },
1018
1649
  {
1019
1650
  "internalType": "StateId",
1020
- "name": "",
1651
+ "name": "newState",
1021
1652
  "type": "uint8"
1022
1653
  }
1023
1654
  ],
1024
- "stateMutability": "view",
1655
+ "name": "updateApplicationState",
1656
+ "outputs": [],
1657
+ "stateMutability": "nonpayable",
1025
1658
  "type": "function"
1026
1659
  },
1027
1660
  {
1028
- "inputs": [],
1029
- "name": "getInstanceReader",
1030
- "outputs": [
1661
+ "inputs": [
1031
1662
  {
1032
- "internalType": "contract InstanceReader",
1033
- "name": "",
1034
- "type": "address"
1663
+ "internalType": "NftId",
1664
+ "name": "bundleNftId",
1665
+ "type": "uint96"
1666
+ },
1667
+ {
1668
+ "components": [
1669
+ {
1670
+ "internalType": "NftId",
1671
+ "name": "poolNftId",
1672
+ "type": "uint96"
1673
+ },
1674
+ {
1675
+ "components": [
1676
+ {
1677
+ "internalType": "UFixed",
1678
+ "name": "fractionalFee",
1679
+ "type": "uint256"
1680
+ },
1681
+ {
1682
+ "internalType": "uint256",
1683
+ "name": "fixedFee",
1684
+ "type": "uint256"
1685
+ }
1686
+ ],
1687
+ "internalType": "struct Fee",
1688
+ "name": "fee",
1689
+ "type": "tuple"
1690
+ },
1691
+ {
1692
+ "internalType": "bytes",
1693
+ "name": "filter",
1694
+ "type": "bytes"
1695
+ },
1696
+ {
1697
+ "internalType": "Amount",
1698
+ "name": "capitalAmount",
1699
+ "type": "uint96"
1700
+ },
1701
+ {
1702
+ "internalType": "Amount",
1703
+ "name": "lockedAmount",
1704
+ "type": "uint96"
1705
+ },
1706
+ {
1707
+ "internalType": "Amount",
1708
+ "name": "feeAmount",
1709
+ "type": "uint96"
1710
+ },
1711
+ {
1712
+ "internalType": "Seconds",
1713
+ "name": "lifetime",
1714
+ "type": "uint40"
1715
+ },
1716
+ {
1717
+ "internalType": "Timestamp",
1718
+ "name": "expiredAt",
1719
+ "type": "uint40"
1720
+ },
1721
+ {
1722
+ "internalType": "Timestamp",
1723
+ "name": "closedAt",
1724
+ "type": "uint40"
1725
+ }
1726
+ ],
1727
+ "internalType": "struct IBundle.BundleInfo",
1728
+ "name": "bundle",
1729
+ "type": "tuple"
1730
+ },
1731
+ {
1732
+ "internalType": "StateId",
1733
+ "name": "newState",
1734
+ "type": "uint8"
1035
1735
  }
1036
1736
  ],
1037
- "stateMutability": "view",
1737
+ "name": "updateBundle",
1738
+ "outputs": [],
1739
+ "stateMutability": "nonpayable",
1038
1740
  "type": "function"
1039
1741
  },
1040
1742
  {
1041
- "inputs": [],
1042
- "name": "getMajorVersion",
1043
- "outputs": [
1743
+ "inputs": [
1044
1744
  {
1045
- "internalType": "VersionPart",
1046
- "name": "majorVersion",
1745
+ "internalType": "NftId",
1746
+ "name": "bundleNftId",
1747
+ "type": "uint96"
1748
+ },
1749
+ {
1750
+ "internalType": "StateId",
1751
+ "name": "newState",
1047
1752
  "type": "uint8"
1048
1753
  }
1049
1754
  ],
1050
- "stateMutability": "pure",
1755
+ "name": "updateBundleState",
1756
+ "outputs": [],
1757
+ "stateMutability": "nonpayable",
1051
1758
  "type": "function"
1052
1759
  },
1053
1760
  {
1054
1761
  "inputs": [
1055
1762
  {
1056
- "internalType": "Key32",
1057
- "name": "key",
1058
- "type": "bytes32"
1059
- }
1060
- ],
1061
- "name": "getMetadata",
1062
- "outputs": [
1763
+ "internalType": "NftId",
1764
+ "name": "policyNftId",
1765
+ "type": "uint96"
1766
+ },
1767
+ {
1768
+ "internalType": "ClaimId",
1769
+ "name": "claimId",
1770
+ "type": "uint16"
1771
+ },
1063
1772
  {
1064
1773
  "components": [
1065
1774
  {
1066
- "internalType": "ObjectType",
1067
- "name": "objectType",
1068
- "type": "uint8"
1775
+ "internalType": "Amount",
1776
+ "name": "claimAmount",
1777
+ "type": "uint96"
1069
1778
  },
1070
1779
  {
1071
- "internalType": "StateId",
1072
- "name": "state",
1780
+ "internalType": "Amount",
1781
+ "name": "paidAmount",
1782
+ "type": "uint96"
1783
+ },
1784
+ {
1785
+ "internalType": "uint8",
1786
+ "name": "payoutsCount",
1073
1787
  "type": "uint8"
1074
1788
  },
1075
1789
  {
1076
- "internalType": "address",
1077
- "name": "updatedBy",
1078
- "type": "address"
1790
+ "internalType": "uint8",
1791
+ "name": "openPayoutsCount",
1792
+ "type": "uint8"
1079
1793
  },
1080
1794
  {
1081
- "internalType": "Blocknumber",
1082
- "name": "updatedIn",
1083
- "type": "uint32"
1795
+ "internalType": "bytes",
1796
+ "name": "data",
1797
+ "type": "bytes"
1084
1798
  },
1085
1799
  {
1086
- "internalType": "Blocknumber",
1087
- "name": "createdIn",
1088
- "type": "uint32"
1800
+ "internalType": "Timestamp",
1801
+ "name": "closedAt",
1802
+ "type": "uint40"
1089
1803
  }
1090
1804
  ],
1091
- "internalType": "struct IKeyValueStore.Metadata",
1092
- "name": "metadata",
1805
+ "internalType": "struct IPolicy.ClaimInfo",
1806
+ "name": "claim",
1093
1807
  "type": "tuple"
1808
+ },
1809
+ {
1810
+ "internalType": "StateId",
1811
+ "name": "newState",
1812
+ "type": "uint8"
1094
1813
  }
1095
1814
  ],
1096
- "stateMutability": "view",
1815
+ "name": "updateClaim",
1816
+ "outputs": [],
1817
+ "stateMutability": "nonpayable",
1097
1818
  "type": "function"
1098
1819
  },
1099
1820
  {
1100
- "inputs": [],
1101
- "name": "getNftId",
1102
- "outputs": [
1821
+ "inputs": [
1103
1822
  {
1104
1823
  "internalType": "NftId",
1105
- "name": "",
1824
+ "name": "policyNftId",
1106
1825
  "type": "uint96"
1107
- }
1108
- ],
1109
- "stateMutability": "view",
1110
- "type": "function"
1111
- },
1112
- {
1113
- "inputs": [],
1114
- "name": "getOwner",
1115
- "outputs": [
1116
- {
1117
- "internalType": "address",
1118
- "name": "",
1119
- "type": "address"
1120
- }
1121
- ],
1122
- "stateMutability": "view",
1123
- "type": "function"
1124
- },
1125
- {
1126
- "inputs": [],
1127
- "name": "getPolicyService",
1128
- "outputs": [
1129
- {
1130
- "internalType": "contract IPolicyService",
1131
- "name": "",
1132
- "type": "address"
1133
- }
1134
- ],
1135
- "stateMutability": "view",
1136
- "type": "function"
1137
- },
1138
- {
1139
- "inputs": [],
1140
- "name": "getPoolService",
1141
- "outputs": [
1142
- {
1143
- "internalType": "contract IPoolService",
1144
- "name": "",
1145
- "type": "address"
1146
- }
1147
- ],
1148
- "stateMutability": "view",
1149
- "type": "function"
1150
- },
1151
- {
1152
- "inputs": [],
1153
- "name": "getProductService",
1154
- "outputs": [
1826
+ },
1155
1827
  {
1156
- "internalType": "contract IProductService",
1157
- "name": "",
1158
- "type": "address"
1159
- }
1160
- ],
1161
- "stateMutability": "view",
1162
- "type": "function"
1163
- },
1164
- {
1165
- "inputs": [],
1166
- "name": "getRegistry",
1167
- "outputs": [
1828
+ "internalType": "ClaimId",
1829
+ "name": "claimId",
1830
+ "type": "uint16"
1831
+ },
1168
1832
  {
1169
- "internalType": "contract IRegistry",
1170
- "name": "",
1171
- "type": "address"
1833
+ "internalType": "StateId",
1834
+ "name": "newState",
1835
+ "type": "uint8"
1172
1836
  }
1173
1837
  ],
1174
- "stateMutability": "view",
1838
+ "name": "updateClaimState",
1839
+ "outputs": [],
1840
+ "stateMutability": "nonpayable",
1175
1841
  "type": "function"
1176
1842
  },
1177
1843
  {
1178
1844
  "inputs": [
1179
1845
  {
1180
- "internalType": "Key32",
1181
- "name": "key",
1182
- "type": "bytes32"
1183
- }
1184
- ],
1185
- "name": "getState",
1186
- "outputs": [
1846
+ "internalType": "NftId",
1847
+ "name": "distributionNftId",
1848
+ "type": "uint96"
1849
+ },
1850
+ {
1851
+ "components": [
1852
+ {
1853
+ "internalType": "NftId",
1854
+ "name": "productNftId",
1855
+ "type": "uint96"
1856
+ },
1857
+ {
1858
+ "internalType": "contract TokenHandler",
1859
+ "name": "tokenHandler",
1860
+ "type": "address"
1861
+ },
1862
+ {
1863
+ "components": [
1864
+ {
1865
+ "internalType": "UFixed",
1866
+ "name": "fractionalFee",
1867
+ "type": "uint256"
1868
+ },
1869
+ {
1870
+ "internalType": "uint256",
1871
+ "name": "fixedFee",
1872
+ "type": "uint256"
1873
+ }
1874
+ ],
1875
+ "internalType": "struct Fee",
1876
+ "name": "minDistributionOwnerFee",
1877
+ "type": "tuple"
1878
+ },
1879
+ {
1880
+ "components": [
1881
+ {
1882
+ "internalType": "UFixed",
1883
+ "name": "fractionalFee",
1884
+ "type": "uint256"
1885
+ },
1886
+ {
1887
+ "internalType": "uint256",
1888
+ "name": "fixedFee",
1889
+ "type": "uint256"
1890
+ }
1891
+ ],
1892
+ "internalType": "struct Fee",
1893
+ "name": "distributionFee",
1894
+ "type": "tuple"
1895
+ },
1896
+ {
1897
+ "internalType": "address",
1898
+ "name": "wallet",
1899
+ "type": "address"
1900
+ },
1901
+ {
1902
+ "internalType": "uint256",
1903
+ "name": "sumDistributionOwnerFees",
1904
+ "type": "uint256"
1905
+ }
1906
+ ],
1907
+ "internalType": "struct ISetup.DistributionSetupInfo",
1908
+ "name": "setup",
1909
+ "type": "tuple"
1910
+ },
1187
1911
  {
1188
1912
  "internalType": "StateId",
1189
- "name": "state",
1913
+ "name": "newState",
1190
1914
  "type": "uint8"
1191
1915
  }
1192
1916
  ],
1193
- "stateMutability": "view",
1917
+ "name": "updateDistributionSetup",
1918
+ "outputs": [],
1919
+ "stateMutability": "nonpayable",
1194
1920
  "type": "function"
1195
1921
  },
1196
1922
  {
1197
1923
  "inputs": [
1198
1924
  {
1199
- "internalType": "ObjectType",
1200
- "name": "objectType",
1201
- "type": "uint8"
1202
- }
1203
- ],
1204
- "name": "hasLifecycle",
1205
- "outputs": [
1206
- {
1207
- "internalType": "bool",
1208
- "name": "",
1209
- "type": "bool"
1210
- }
1211
- ],
1212
- "stateMutability": "view",
1213
- "type": "function"
1214
- },
1215
- {
1216
- "inputs": [],
1217
- "name": "isConsumingScheduledOp",
1218
- "outputs": [
1925
+ "internalType": "NftId",
1926
+ "name": "distributionNftId",
1927
+ "type": "uint96"
1928
+ },
1219
1929
  {
1220
- "internalType": "bytes4",
1221
- "name": "",
1222
- "type": "bytes4"
1930
+ "internalType": "StateId",
1931
+ "name": "newState",
1932
+ "type": "uint8"
1223
1933
  }
1224
1934
  ],
1225
- "stateMutability": "view",
1935
+ "name": "updateDistributionSetupState",
1936
+ "outputs": [],
1937
+ "stateMutability": "nonpayable",
1226
1938
  "type": "function"
1227
1939
  },
1228
1940
  {
1229
1941
  "inputs": [
1230
1942
  {
1231
- "internalType": "ObjectType",
1232
- "name": "objectType",
1233
- "type": "uint8"
1943
+ "internalType": "NftId",
1944
+ "name": "nftId",
1945
+ "type": "uint96"
1234
1946
  },
1235
1947
  {
1236
- "internalType": "StateId",
1237
- "name": "fromId",
1238
- "type": "uint8"
1948
+ "components": [
1949
+ {
1950
+ "internalType": "DistributorType",
1951
+ "name": "distributorType",
1952
+ "type": "bytes8"
1953
+ },
1954
+ {
1955
+ "internalType": "bool",
1956
+ "name": "active",
1957
+ "type": "bool"
1958
+ },
1959
+ {
1960
+ "internalType": "bytes",
1961
+ "name": "data",
1962
+ "type": "bytes"
1963
+ },
1964
+ {
1965
+ "internalType": "uint256",
1966
+ "name": "sumCommisions",
1967
+ "type": "uint256"
1968
+ },
1969
+ {
1970
+ "internalType": "uint256",
1971
+ "name": "numPoliciesSold",
1972
+ "type": "uint256"
1973
+ }
1974
+ ],
1975
+ "internalType": "struct IDistribution.DistributorInfo",
1976
+ "name": "info",
1977
+ "type": "tuple"
1239
1978
  },
1240
1979
  {
1241
1980
  "internalType": "StateId",
1242
- "name": "toId",
1981
+ "name": "newState",
1243
1982
  "type": "uint8"
1244
1983
  }
1245
1984
  ],
1246
- "name": "isValidTransition",
1247
- "outputs": [
1248
- {
1249
- "internalType": "bool",
1250
- "name": "",
1251
- "type": "bool"
1252
- }
1253
- ],
1254
- "stateMutability": "view",
1255
- "type": "function"
1256
- },
1257
- {
1258
- "inputs": [],
1259
- "name": "linkToRegisteredNftId",
1985
+ "name": "updateDistributor",
1260
1986
  "outputs": [],
1261
1987
  "stateMutability": "nonpayable",
1262
1988
  "type": "function"
@@ -1264,12 +1990,17 @@
1264
1990
  {
1265
1991
  "inputs": [
1266
1992
  {
1267
- "internalType": "address",
1268
- "name": "",
1269
- "type": "address"
1993
+ "internalType": "NftId",
1994
+ "name": "nftId",
1995
+ "type": "uint96"
1996
+ },
1997
+ {
1998
+ "internalType": "StateId",
1999
+ "name": "newState",
2000
+ "type": "uint8"
1270
2001
  }
1271
2002
  ],
1272
- "name": "setAuthority",
2003
+ "name": "updateDistributorState",
1273
2004
  "outputs": [],
1274
2005
  "stateMutability": "nonpayable",
1275
2006
  "type": "function"
@@ -1277,115 +2008,128 @@
1277
2008
  {
1278
2009
  "inputs": [
1279
2010
  {
1280
- "internalType": "bytes4",
1281
- "name": "interfaceId",
1282
- "type": "bytes4"
1283
- }
1284
- ],
1285
- "name": "supportsInterface",
1286
- "outputs": [
2011
+ "internalType": "DistributorType",
2012
+ "name": "distributorType",
2013
+ "type": "bytes8"
2014
+ },
1287
2015
  {
1288
- "internalType": "bool",
1289
- "name": "",
1290
- "type": "bool"
2016
+ "components": [
2017
+ {
2018
+ "internalType": "string",
2019
+ "name": "name",
2020
+ "type": "string"
2021
+ },
2022
+ {
2023
+ "internalType": "UFixed",
2024
+ "name": "minDiscountPercentage",
2025
+ "type": "uint256"
2026
+ },
2027
+ {
2028
+ "internalType": "UFixed",
2029
+ "name": "maxDiscountPercentage",
2030
+ "type": "uint256"
2031
+ },
2032
+ {
2033
+ "internalType": "UFixed",
2034
+ "name": "commissionPercentage",
2035
+ "type": "uint256"
2036
+ },
2037
+ {
2038
+ "internalType": "uint32",
2039
+ "name": "maxReferralCount",
2040
+ "type": "uint32"
2041
+ },
2042
+ {
2043
+ "internalType": "uint32",
2044
+ "name": "maxReferralLifetime",
2045
+ "type": "uint32"
2046
+ },
2047
+ {
2048
+ "internalType": "bool",
2049
+ "name": "allowSelfReferrals",
2050
+ "type": "bool"
2051
+ },
2052
+ {
2053
+ "internalType": "bool",
2054
+ "name": "allowRenewals",
2055
+ "type": "bool"
2056
+ },
2057
+ {
2058
+ "internalType": "bytes",
2059
+ "name": "data",
2060
+ "type": "bytes"
2061
+ }
2062
+ ],
2063
+ "internalType": "struct IDistribution.DistributorTypeInfo",
2064
+ "name": "info",
2065
+ "type": "tuple"
2066
+ },
2067
+ {
2068
+ "internalType": "StateId",
2069
+ "name": "newState",
2070
+ "type": "uint8"
1291
2071
  }
1292
2072
  ],
1293
- "stateMutability": "view",
2073
+ "name": "updateDistributorType",
2074
+ "outputs": [],
2075
+ "stateMutability": "nonpayable",
1294
2076
  "type": "function"
1295
2077
  },
1296
2078
  {
1297
2079
  "inputs": [
1298
2080
  {
1299
- "internalType": "ObjectType",
1300
- "name": "objectType",
1301
- "type": "uint8"
2081
+ "internalType": "DistributorType",
2082
+ "name": "distributorType",
2083
+ "type": "bytes8"
1302
2084
  },
1303
2085
  {
1304
- "internalType": "KeyId",
1305
- "name": "id",
1306
- "type": "bytes31"
1307
- }
1308
- ],
1309
- "name": "toKey32",
1310
- "outputs": [
1311
- {
1312
- "internalType": "Key32",
1313
- "name": "",
1314
- "type": "bytes32"
2086
+ "internalType": "StateId",
2087
+ "name": "newState",
2088
+ "type": "uint8"
1315
2089
  }
1316
2090
  ],
1317
- "stateMutability": "pure",
2091
+ "name": "updateDistributorTypeState",
2092
+ "outputs": [],
2093
+ "stateMutability": "nonpayable",
1318
2094
  "type": "function"
1319
2095
  },
1320
2096
  {
1321
2097
  "inputs": [
1322
2098
  {
1323
2099
  "internalType": "NftId",
1324
- "name": "bundleNftId",
2100
+ "name": "policyNftId",
1325
2101
  "type": "uint96"
1326
2102
  },
2103
+ {
2104
+ "internalType": "PayoutId",
2105
+ "name": "payoutId",
2106
+ "type": "uint24"
2107
+ },
1327
2108
  {
1328
2109
  "components": [
1329
2110
  {
1330
- "internalType": "NftId",
1331
- "name": "poolNftId",
1332
- "type": "uint96"
2111
+ "internalType": "ClaimId",
2112
+ "name": "claimId",
2113
+ "type": "uint16"
1333
2114
  },
1334
2115
  {
1335
- "components": [
1336
- {
1337
- "internalType": "UFixed",
1338
- "name": "fractionalFee",
1339
- "type": "uint256"
1340
- },
1341
- {
1342
- "internalType": "uint256",
1343
- "name": "fixedFee",
1344
- "type": "uint256"
1345
- }
1346
- ],
1347
- "internalType": "struct Fee",
1348
- "name": "fee",
1349
- "type": "tuple"
2116
+ "internalType": "Amount",
2117
+ "name": "amount",
2118
+ "type": "uint96"
1350
2119
  },
1351
2120
  {
1352
2121
  "internalType": "bytes",
1353
- "name": "filter",
2122
+ "name": "data",
1354
2123
  "type": "bytes"
1355
2124
  },
1356
- {
1357
- "internalType": "uint256",
1358
- "name": "capitalAmount",
1359
- "type": "uint256"
1360
- },
1361
- {
1362
- "internalType": "uint256",
1363
- "name": "lockedAmount",
1364
- "type": "uint256"
1365
- },
1366
- {
1367
- "internalType": "uint256",
1368
- "name": "balanceAmount",
1369
- "type": "uint256"
1370
- },
1371
- {
1372
- "internalType": "uint256",
1373
- "name": "lifetime",
1374
- "type": "uint256"
1375
- },
1376
- {
1377
- "internalType": "Timestamp",
1378
- "name": "expiredAt",
1379
- "type": "uint40"
1380
- },
1381
2125
  {
1382
2126
  "internalType": "Timestamp",
1383
- "name": "closedAt",
2127
+ "name": "paidAt",
1384
2128
  "type": "uint40"
1385
2129
  }
1386
2130
  ],
1387
- "internalType": "struct IBundle.BundleInfo",
1388
- "name": "bundle",
2131
+ "internalType": "struct IPolicy.PayoutInfo",
2132
+ "name": "claim",
1389
2133
  "type": "tuple"
1390
2134
  },
1391
2135
  {
@@ -1394,7 +2138,7 @@
1394
2138
  "type": "uint8"
1395
2139
  }
1396
2140
  ],
1397
- "name": "updateBundle",
2141
+ "name": "updatePayout",
1398
2142
  "outputs": [],
1399
2143
  "stateMutability": "nonpayable",
1400
2144
  "type": "function"
@@ -1403,16 +2147,21 @@
1403
2147
  "inputs": [
1404
2148
  {
1405
2149
  "internalType": "NftId",
1406
- "name": "bundleNftId",
2150
+ "name": "policyNftId",
1407
2151
  "type": "uint96"
1408
2152
  },
2153
+ {
2154
+ "internalType": "PayoutId",
2155
+ "name": "payoutId",
2156
+ "type": "uint24"
2157
+ },
1409
2158
  {
1410
2159
  "internalType": "StateId",
1411
2160
  "name": "newState",
1412
2161
  "type": "uint8"
1413
2162
  }
1414
2163
  ],
1415
- "name": "updateBundleState",
2164
+ "name": "updatePayoutState",
1416
2165
  "outputs": [],
1417
2166
  "stateMutability": "nonpayable",
1418
2167
  "type": "function"
@@ -1421,7 +2170,7 @@
1421
2170
  "inputs": [
1422
2171
  {
1423
2172
  "internalType": "NftId",
1424
- "name": "distributionNftId",
2173
+ "name": "policyNftId",
1425
2174
  "type": "uint96"
1426
2175
  },
1427
2176
  {
@@ -1432,40 +2181,88 @@
1432
2181
  "type": "uint96"
1433
2182
  },
1434
2183
  {
1435
- "internalType": "contract TokenHandler",
1436
- "name": "tokenHandler",
1437
- "type": "address"
2184
+ "internalType": "NftId",
2185
+ "name": "bundleNftId",
2186
+ "type": "uint96"
1438
2187
  },
1439
2188
  {
1440
- "components": [
1441
- {
1442
- "internalType": "UFixed",
1443
- "name": "fractionalFee",
1444
- "type": "uint256"
1445
- },
1446
- {
1447
- "internalType": "uint256",
1448
- "name": "fixedFee",
1449
- "type": "uint256"
1450
- }
1451
- ],
1452
- "internalType": "struct Fee",
1453
- "name": "distributionFee",
1454
- "type": "tuple"
2189
+ "internalType": "ReferralId",
2190
+ "name": "referralId",
2191
+ "type": "bytes8"
2192
+ },
2193
+ {
2194
+ "internalType": "RiskId",
2195
+ "name": "riskId",
2196
+ "type": "bytes8"
2197
+ },
2198
+ {
2199
+ "internalType": "uint256",
2200
+ "name": "sumInsuredAmount",
2201
+ "type": "uint256"
2202
+ },
2203
+ {
2204
+ "internalType": "uint256",
2205
+ "name": "premiumAmount",
2206
+ "type": "uint256"
2207
+ },
2208
+ {
2209
+ "internalType": "uint256",
2210
+ "name": "premiumPaidAmount",
2211
+ "type": "uint256"
2212
+ },
2213
+ {
2214
+ "internalType": "Seconds",
2215
+ "name": "lifetime",
2216
+ "type": "uint40"
2217
+ },
2218
+ {
2219
+ "internalType": "bytes",
2220
+ "name": "applicationData",
2221
+ "type": "bytes"
2222
+ },
2223
+ {
2224
+ "internalType": "bytes",
2225
+ "name": "policyData",
2226
+ "type": "bytes"
2227
+ },
2228
+ {
2229
+ "internalType": "uint16",
2230
+ "name": "claimsCount",
2231
+ "type": "uint16"
2232
+ },
2233
+ {
2234
+ "internalType": "uint16",
2235
+ "name": "openClaimsCount",
2236
+ "type": "uint16"
2237
+ },
2238
+ {
2239
+ "internalType": "Amount",
2240
+ "name": "claimAmount",
2241
+ "type": "uint96"
1455
2242
  },
1456
2243
  {
1457
- "internalType": "bool",
1458
- "name": "isIntercepting",
1459
- "type": "bool"
2244
+ "internalType": "Amount",
2245
+ "name": "payoutAmount",
2246
+ "type": "uint96"
1460
2247
  },
1461
2248
  {
1462
- "internalType": "address",
1463
- "name": "wallet",
1464
- "type": "address"
2249
+ "internalType": "Timestamp",
2250
+ "name": "activatedAt",
2251
+ "type": "uint40"
2252
+ },
2253
+ {
2254
+ "internalType": "Timestamp",
2255
+ "name": "expiredAt",
2256
+ "type": "uint40"
2257
+ },
2258
+ {
2259
+ "internalType": "Timestamp",
2260
+ "name": "closedAt",
2261
+ "type": "uint40"
1465
2262
  }
1466
2263
  ],
1467
- "internalType": "struct ISetup.DistributionSetupInfo",
1468
- "name": "setup",
2264
+ "internalType": "struct IPolicy.PolicyInfo",
2265
+ "name": "policy",
1469
2266
  "type": "tuple"
1470
2267
  },
1471
2268
  {
@@ -1474,25 +2271,7 @@
1474
2271
  "type": "uint8"
1475
2272
  }
1476
2273
  ],
1477
- "name": "updateDistributionSetup",
1478
- "outputs": [],
1479
- "stateMutability": "nonpayable",
1480
- "type": "function"
1481
- },
1482
- {
1483
- "inputs": [
1484
- {
1485
- "internalType": "NftId",
1486
- "name": "distributionNftId",
1487
- "type": "uint96"
1488
- },
1489
- {
1490
- "internalType": "StateId",
1491
- "name": "newState",
1492
- "type": "uint8"
1493
- }
1494
- ],
1495
- "name": "updateDistributionSetupState",
2274
+ "name": "updatePolicy",
1496
2275
  "outputs": [],
1497
2276
  "stateMutability": "nonpayable",
1498
2277
  "type": "function"
@@ -1542,9 +2321,9 @@
1542
2321
  "type": "uint256"
1543
2322
  },
1544
2323
  {
1545
- "internalType": "uint256",
2324
+ "internalType": "Seconds",
1546
2325
  "name": "lifetime",
1547
- "type": "uint256"
2326
+ "type": "uint40"
1548
2327
  },
1549
2328
  {
1550
2329
  "internalType": "bytes",
@@ -1567,9 +2346,14 @@
1567
2346
  "type": "uint16"
1568
2347
  },
1569
2348
  {
1570
- "internalType": "uint256",
2349
+ "internalType": "Amount",
2350
+ "name": "claimAmount",
2351
+ "type": "uint96"
2352
+ },
2353
+ {
2354
+ "internalType": "Amount",
1571
2355
  "name": "payoutAmount",
1572
- "type": "uint256"
2356
+ "type": "uint96"
1573
2357
  },
1574
2358
  {
1575
2359
  "internalType": "Timestamp",
@@ -1597,7 +2381,7 @@
1597
2381
  "type": "uint8"
1598
2382
  }
1599
2383
  ],
1600
- "name": "updatePolicy",
2384
+ "name": "updatePolicyClaims",
1601
2385
  "outputs": [],
1602
2386
  "stateMutability": "nonpayable",
1603
2387
  "type": "function"
@@ -1630,89 +2414,43 @@
1630
2414
  {
1631
2415
  "components": [
1632
2416
  {
1633
- "internalType": "NftId",
1634
- "name": "productNftId",
1635
- "type": "uint96"
2417
+ "internalType": "string",
2418
+ "name": "name",
2419
+ "type": "string"
1636
2420
  },
1637
2421
  {
1638
- "internalType": "contract TokenHandler",
1639
- "name": "tokenHandler",
2422
+ "internalType": "contract IERC20Metadata",
2423
+ "name": "token",
1640
2424
  "type": "address"
1641
2425
  },
1642
2426
  {
1643
- "internalType": "UFixed",
1644
- "name": "collateralizationLevel",
1645
- "type": "uint256"
1646
- },
1647
- {
1648
- "components": [
1649
- {
1650
- "internalType": "UFixed",
1651
- "name": "fractionalFee",
1652
- "type": "uint256"
1653
- },
1654
- {
1655
- "internalType": "uint256",
1656
- "name": "fixedFee",
1657
- "type": "uint256"
1658
- }
1659
- ],
1660
- "internalType": "struct Fee",
1661
- "name": "poolFee",
1662
- "type": "tuple"
1663
- },
1664
- {
1665
- "components": [
1666
- {
1667
- "internalType": "UFixed",
1668
- "name": "fractionalFee",
1669
- "type": "uint256"
1670
- },
1671
- {
1672
- "internalType": "uint256",
1673
- "name": "fixedFee",
1674
- "type": "uint256"
1675
- }
1676
- ],
1677
- "internalType": "struct Fee",
1678
- "name": "stakingFee",
1679
- "type": "tuple"
2427
+ "internalType": "contract TokenHandler",
2428
+ "name": "tokenHandler",
2429
+ "type": "address"
1680
2430
  },
1681
2431
  {
1682
- "components": [
1683
- {
1684
- "internalType": "UFixed",
1685
- "name": "fractionalFee",
1686
- "type": "uint256"
1687
- },
1688
- {
1689
- "internalType": "uint256",
1690
- "name": "fixedFee",
1691
- "type": "uint256"
1692
- }
1693
- ],
1694
- "internalType": "struct Fee",
1695
- "name": "performanceFee",
1696
- "type": "tuple"
2432
+ "internalType": "address",
2433
+ "name": "wallet",
2434
+ "type": "address"
1697
2435
  },
1698
2436
  {
1699
- "internalType": "bool",
1700
- "name": "isIntercepting",
1701
- "type": "bool"
2437
+ "internalType": "Amount",
2438
+ "name": "balanceAmount",
2439
+ "type": "uint96"
1702
2440
  },
1703
2441
  {
1704
- "internalType": "bool",
1705
- "name": "isConfirmingApplication",
1706
- "type": "bool"
2442
+ "internalType": "Amount",
2443
+ "name": "feeAmount",
2444
+ "type": "uint96"
1707
2445
  },
1708
2446
  {
1709
- "internalType": "address",
1710
- "name": "wallet",
1711
- "type": "address"
2447
+ "internalType": "bytes",
2448
+ "name": "data",
2449
+ "type": "bytes"
1712
2450
  }
1713
2451
  ],
1714
- "internalType": "struct ISetup.PoolSetupInfo",
1715
- "name": "setup",
2452
+ "internalType": "struct IComponents.ComponentInfo",
2453
+ "name": "info",
1716
2454
  "type": "tuple"
1717
2455
  },
1718
2456
  {
@@ -1773,23 +2511,6 @@
1773
2511
  "name": "poolNftId",
1774
2512
  "type": "uint96"
1775
2513
  },
1776
- {
1777
- "components": [
1778
- {
1779
- "internalType": "UFixed",
1780
- "name": "fractionalFee",
1781
- "type": "uint256"
1782
- },
1783
- {
1784
- "internalType": "uint256",
1785
- "name": "fixedFee",
1786
- "type": "uint256"
1787
- }
1788
- ],
1789
- "internalType": "struct Fee",
1790
- "name": "distributionFee",
1791
- "type": "tuple"
1792
- },
1793
2514
  {
1794
2515
  "components": [
1795
2516
  {
@@ -1824,57 +2545,6 @@
1824
2545
  "name": "processingFee",
1825
2546
  "type": "tuple"
1826
2547
  },
1827
- {
1828
- "components": [
1829
- {
1830
- "internalType": "UFixed",
1831
- "name": "fractionalFee",
1832
- "type": "uint256"
1833
- },
1834
- {
1835
- "internalType": "uint256",
1836
- "name": "fixedFee",
1837
- "type": "uint256"
1838
- }
1839
- ],
1840
- "internalType": "struct Fee",
1841
- "name": "poolFee",
1842
- "type": "tuple"
1843
- },
1844
- {
1845
- "components": [
1846
- {
1847
- "internalType": "UFixed",
1848
- "name": "fractionalFee",
1849
- "type": "uint256"
1850
- },
1851
- {
1852
- "internalType": "uint256",
1853
- "name": "fixedFee",
1854
- "type": "uint256"
1855
- }
1856
- ],
1857
- "internalType": "struct Fee",
1858
- "name": "stakingFee",
1859
- "type": "tuple"
1860
- },
1861
- {
1862
- "components": [
1863
- {
1864
- "internalType": "UFixed",
1865
- "name": "fractionalFee",
1866
- "type": "uint256"
1867
- },
1868
- {
1869
- "internalType": "uint256",
1870
- "name": "fixedFee",
1871
- "type": "uint256"
1872
- }
1873
- ],
1874
- "internalType": "struct Fee",
1875
- "name": "performanceFee",
1876
- "type": "tuple"
1877
- },
1878
2548
  {
1879
2549
  "internalType": "bool",
1880
2550
  "name": "isIntercepting",
@@ -1919,6 +2589,84 @@
1919
2589
  "stateMutability": "nonpayable",
1920
2590
  "type": "function"
1921
2591
  },
2592
+ {
2593
+ "inputs": [
2594
+ {
2595
+ "internalType": "ReferralId",
2596
+ "name": "referralId",
2597
+ "type": "bytes8"
2598
+ },
2599
+ {
2600
+ "components": [
2601
+ {
2602
+ "internalType": "NftId",
2603
+ "name": "distributorNftId",
2604
+ "type": "uint96"
2605
+ },
2606
+ {
2607
+ "internalType": "string",
2608
+ "name": "referralCode",
2609
+ "type": "string"
2610
+ },
2611
+ {
2612
+ "internalType": "UFixed",
2613
+ "name": "discountPercentage",
2614
+ "type": "uint256"
2615
+ },
2616
+ {
2617
+ "internalType": "uint32",
2618
+ "name": "maxReferrals",
2619
+ "type": "uint32"
2620
+ },
2621
+ {
2622
+ "internalType": "uint32",
2623
+ "name": "usedReferrals",
2624
+ "type": "uint32"
2625
+ },
2626
+ {
2627
+ "internalType": "Timestamp",
2628
+ "name": "expiryAt",
2629
+ "type": "uint40"
2630
+ },
2631
+ {
2632
+ "internalType": "bytes",
2633
+ "name": "data",
2634
+ "type": "bytes"
2635
+ }
2636
+ ],
2637
+ "internalType": "struct IDistribution.ReferralInfo",
2638
+ "name": "referralInfo",
2639
+ "type": "tuple"
2640
+ },
2641
+ {
2642
+ "internalType": "StateId",
2643
+ "name": "newState",
2644
+ "type": "uint8"
2645
+ }
2646
+ ],
2647
+ "name": "updateReferral",
2648
+ "outputs": [],
2649
+ "stateMutability": "nonpayable",
2650
+ "type": "function"
2651
+ },
2652
+ {
2653
+ "inputs": [
2654
+ {
2655
+ "internalType": "ReferralId",
2656
+ "name": "referralId",
2657
+ "type": "bytes8"
2658
+ },
2659
+ {
2660
+ "internalType": "StateId",
2661
+ "name": "newState",
2662
+ "type": "uint8"
2663
+ }
2664
+ ],
2665
+ "name": "updateReferralState",
2666
+ "outputs": [],
2667
+ "stateMutability": "nonpayable",
2668
+ "type": "function"
2669
+ },
1922
2670
  {
1923
2671
  "inputs": [
1924
2672
  {