@etherisc/gif-next 0.0.2-d3543ee-217 → 0.0.2-d408403-475

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. package/README.md +125 -6
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
  3. package/artifacts/contracts/components/{Component.sol/Component.json → BaseComponent.sol/BaseComponent.json} +26 -57
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +405 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/component/IComponent.sol/IComponentContract.json → components/IBaseComponent.sol/IBaseComponent.json} +26 -57
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → IDistributionComponent.sol/IDistributionComponent.json} +162 -77
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +487 -0
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +370 -0
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +290 -40
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +167 -69
  18. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
  20. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
  22. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  24. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  26. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  34. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  38. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  40. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  44. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  45. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1148 -620
  46. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{component/IComponent.sol → IInstanceLinked.sol}/IInstanceLinked.json +1 -1
  48. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  49. package/artifacts/contracts/instance/Instance.sol/Instance.json +1457 -797
  50. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  51. package/artifacts/contracts/instance/{component/ComponentModule.sol/ComponentModule.json → base/ComponentServiceBase.sol/ComponentServiceBase.json} +133 -132
  52. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  53. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
  54. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +560 -0
  56. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  57. package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  58. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/base/IService.sol/IService.json +300 -0
  60. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +376 -0
  62. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +710 -0
  64. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  66. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.json +10 -0
  68. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +300 -0
  70. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +4 -0
  71. package/artifacts/contracts/instance/{access → module/access}/Access.sol/AccessModule.json +85 -152
  72. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +4 -0
  73. package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccess.json +1 -1
  74. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +4 -0
  75. package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccessModule.json +96 -99
  76. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +297 -0
  78. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.json +10 -0
  80. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +4 -0
  81. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +297 -0
  82. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +117 -0
  84. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{component → module/component}/IComponent.sol/IComponent.json +1 -1
  86. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{product/IProductService.sol/IProductService.json → module/component/IComponent.sol/IComponentModule.json} +51 -61
  88. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
  90. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.json +10 -0
  92. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +10 -0
  94. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +4 -0
  95. package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicy.json +1 -1
  96. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicyModule.json +147 -117
  98. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
  99. package/artifacts/contracts/instance/{policy → module/policy}/PolicyModule.sol/PolicyModule.json +148 -118
  100. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPool.json +1 -1
  102. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPoolModule.json +67 -52
  104. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
  105. package/artifacts/contracts/instance/{pool → module/pool}/PoolModule.sol/PoolModule.json +51 -62
  106. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.json +10 -0
  108. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +113 -0
  110. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +131 -0
  112. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +4 -0
  113. package/artifacts/contracts/instance/{treasury → module/treasury}/ITreasury.sol/ITreasury.json +1 -1
  114. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +4 -0
  115. package/artifacts/contracts/instance/{treasury → module/treasury}/ITreasury.sol/ITreasuryModule.json +278 -257
  116. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  117. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +76 -0
  118. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +4 -0
  119. package/artifacts/contracts/instance/{treasury → module/treasury}/TreasuryModule.sol/TreasuryModule.json +278 -257
  120. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
  121. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +531 -0
  122. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  123. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +420 -0
  124. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
  125. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +364 -0
  126. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  127. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +325 -0
  128. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  129. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +440 -0
  130. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  131. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +630 -0
  132. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  133. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +543 -0
  134. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  135. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +858 -0
  136. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  137. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +65 -2
  138. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  139. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  140. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +147 -30
  141. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  142. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +24 -0
  143. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  144. package/artifacts/contracts/registry/Registry.sol/Registry.json +241 -25
  145. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  146. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
  147. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +4 -0
  148. package/artifacts/contracts/{registry/IRegistry.sol → shared/IOwnable.sol}/IOwnable.json +1 -1
  149. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  150. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegisterable.sol}/IRegisterable.json +16 -61
  151. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +164 -0
  153. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  154. package/artifacts/contracts/{registry/Registry.sol → shared/Registerable.sol}/Registerable.json +16 -61
  155. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  156. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +164 -0
  157. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
  158. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +405 -0
  159. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  160. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  161. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +4 -0
  162. package/artifacts/contracts/test/TestPool.sol/TestPool.json +578 -0
  163. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +4 -0
  164. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +575 -0
  165. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  166. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +137 -0
  167. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  168. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  169. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  170. package/artifacts/contracts/test/TestService.sol/TestService.json +379 -0
  171. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  172. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +338 -0
  173. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  174. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  175. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  176. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +206 -0
  177. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  178. package/artifacts/contracts/test/Usdc.sol/USDC.json +338 -0
  179. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  180. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  181. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  183. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  185. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  186. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  187. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  188. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
  189. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
  191. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  192. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +10 -0
  193. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  195. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
  196. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
  197. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  198. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  199. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  200. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
  201. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  202. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  203. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  204. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +64 -2
  205. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  206. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +88 -62
  207. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  208. package/artifacts/contracts/types/Version.sol/VersionLib.json +139 -0
  209. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  210. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +30 -0
  211. package/contracts/components/BaseComponent.sol +94 -0
  212. package/contracts/components/Distribution.sol +132 -0
  213. package/contracts/components/IBaseComponent.sol +19 -0
  214. package/contracts/components/IDistributionComponent.sol +48 -0
  215. package/contracts/components/IPoolComponent.sol +71 -0
  216. package/contracts/components/IProductComponent.sol +38 -0
  217. package/contracts/components/Pool.sol +199 -16
  218. package/contracts/components/Product.sol +169 -31
  219. package/contracts/instance/IInstance.sol +39 -11
  220. package/contracts/instance/IInstanceLinked.sol +8 -0
  221. package/contracts/instance/Instance.sol +51 -49
  222. package/contracts/instance/base/ComponentServiceBase.sol +42 -0
  223. package/contracts/instance/base/IInstanceBase.sol +22 -0
  224. package/contracts/instance/base/IKeyValueStore.sol +50 -0
  225. package/contracts/instance/{lifecycle → base}/ILifecycle.sol +4 -21
  226. package/contracts/instance/base/IService.sol +15 -0
  227. package/contracts/instance/base/InstanceBase.sol +91 -0
  228. package/contracts/instance/base/KeyValueStore.sol +161 -0
  229. package/contracts/instance/base/Lifecycle.sol +100 -0
  230. package/contracts/instance/base/ModuleBase.sol +57 -0
  231. package/contracts/instance/base/ServiceBase.sol +37 -0
  232. package/contracts/instance/module/access/Access.sol +149 -0
  233. package/contracts/instance/module/access/IAccess.sol +53 -0
  234. package/contracts/instance/module/bundle/BundleModule.sol +134 -0
  235. package/contracts/instance/module/bundle/IBundle.sol +53 -0
  236. package/contracts/instance/module/component/ComponentModule.sol +70 -0
  237. package/contracts/instance/module/component/IComponent.sol +28 -0
  238. package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
  239. package/contracts/instance/module/distribution/IDistribution.sol +10 -0
  240. package/contracts/instance/module/policy/IPolicy.sol +63 -0
  241. package/contracts/instance/module/policy/PolicyModule.sol +91 -0
  242. package/contracts/instance/module/pool/IPoolModule.sol +40 -0
  243. package/contracts/instance/module/pool/PoolModule.sol +90 -0
  244. package/contracts/instance/module/risk/IRisk.sol +26 -0
  245. package/contracts/instance/module/risk/RiskModule.sol +62 -0
  246. package/contracts/instance/module/treasury/ITreasury.sol +82 -0
  247. package/contracts/instance/module/treasury/TokenHandler.sol +48 -0
  248. package/contracts/instance/module/treasury/TreasuryModule.sol +138 -0
  249. package/contracts/instance/service/ComponentOwnerService.sol +157 -0
  250. package/contracts/instance/service/DistributionService.sol +59 -0
  251. package/contracts/instance/service/IComponentOwnerService.sol +22 -0
  252. package/contracts/instance/service/IDistributionService.sol +12 -0
  253. package/contracts/instance/service/IPoolService.sol +37 -0
  254. package/contracts/instance/service/IProductService.sol +107 -0
  255. package/contracts/instance/service/PoolService.sol +149 -0
  256. package/contracts/instance/service/ProductService.sol +509 -0
  257. package/contracts/registry/ChainNft.sol +61 -37
  258. package/contracts/registry/IRegistry.sol +24 -34
  259. package/contracts/registry/IRegistryLinked.sol +8 -0
  260. package/contracts/registry/Registry.sol +285 -85
  261. package/contracts/shared/ERC165.sol +21 -0
  262. package/contracts/shared/IOwnable.sol +6 -0
  263. package/contracts/shared/IRegisterable.sol +24 -0
  264. package/contracts/shared/IVersionable.sol +52 -0
  265. package/contracts/shared/Registerable.sol +86 -0
  266. package/contracts/shared/Versionable.sol +89 -0
  267. package/contracts/test/TestDistribution.sol +21 -0
  268. package/contracts/test/TestFee.sol +25 -0
  269. package/contracts/test/TestPool.sol +25 -0
  270. package/contracts/test/TestProduct.sol +72 -0
  271. package/contracts/test/TestRegisterable.sol +19 -0
  272. package/contracts/test/TestRoleId.sol +14 -0
  273. package/contracts/test/TestService.sol +32 -0
  274. package/contracts/test/TestToken.sol +26 -0
  275. package/contracts/test/TestVersion.sol +44 -0
  276. package/contracts/test/TestVersionable.sol +17 -0
  277. package/contracts/test/Usdc.sol +26 -0
  278. package/contracts/types/AddressSet.sol +58 -0
  279. package/contracts/types/Fee.sol +44 -20
  280. package/contracts/types/Key32.sol +45 -0
  281. package/contracts/types/NftId.sol +22 -1
  282. package/contracts/types/NftIdSet.sol +60 -0
  283. package/contracts/types/ObjectType.sol +37 -13
  284. package/contracts/types/ReferralId.sol +48 -0
  285. package/contracts/types/RiskId.sol +43 -0
  286. package/contracts/types/RoleId.sol +38 -0
  287. package/contracts/types/StateId.sol +13 -3
  288. package/contracts/types/Timestamp.sol +22 -1
  289. package/contracts/types/UFixed.sol +26 -23
  290. package/contracts/types/Version.sol +95 -0
  291. package/package.json +12 -4
  292. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  293. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  294. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  295. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  296. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  297. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  298. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  299. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  300. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  301. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  302. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  303. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  304. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  305. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  306. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  307. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  308. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  309. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  310. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  311. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  312. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  313. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  314. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  315. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  316. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  317. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  318. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  319. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  320. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  321. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  322. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  323. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  324. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  325. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  326. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  327. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  328. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  329. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  330. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  331. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  332. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  333. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  334. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  335. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  336. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  337. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  338. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  339. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  340. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  341. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  342. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  343. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  344. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  345. package/contracts/components/Component.sol +0 -77
  346. package/contracts/components/IPool.sol +0 -15
  347. package/contracts/components/IProduct.sol +0 -16
  348. package/contracts/instance/access/Access.sol +0 -165
  349. package/contracts/instance/access/IAccess.sol +0 -63
  350. package/contracts/instance/component/ComponentModule.sol +0 -274
  351. package/contracts/instance/component/IComponent.sol +0 -74
  352. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  353. package/contracts/instance/policy/IPolicy.sol +0 -50
  354. package/contracts/instance/policy/PolicyModule.sol +0 -114
  355. package/contracts/instance/pool/IPoolModule.sol +0 -23
  356. package/contracts/instance/pool/PoolModule.sol +0 -81
  357. package/contracts/instance/product/IProductService.sol +0 -36
  358. package/contracts/instance/product/ProductService.sol +0 -136
  359. package/contracts/instance/treasury/ITreasury.sol +0 -91
  360. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  361. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
@@ -3,71 +3,23 @@
3
3
  "contractName": "IInstance",
4
4
  "sourceName": "contracts/instance/IInstance.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "NftId",
10
- "name": "nftId",
11
- "type": "uint96"
12
- },
13
- {
14
- "internalType": "ObjectType",
15
- "name": "objectType",
16
- "type": "uint8"
17
- },
18
- {
19
- "internalType": "StateId",
20
- "name": "fromStateId",
21
- "type": "uint8"
22
- },
23
- {
24
- "internalType": "StateId",
25
- "name": "toStateId",
26
- "type": "uint8"
27
- }
28
- ],
29
- "name": "ErrorInvalidStateTransition",
30
- "type": "error"
31
- },
32
- {
33
- "inputs": [
34
- {
35
- "internalType": "NftId",
36
- "name": "nftId",
37
- "type": "uint96"
38
- },
39
- {
40
- "internalType": "ObjectType",
41
- "name": "objectType",
42
- "type": "uint8"
43
- }
44
- ],
45
- "name": "ErrorNoLifecycle",
46
- "type": "error"
47
- },
48
6
  {
49
7
  "anonymous": false,
50
8
  "inputs": [
51
9
  {
52
10
  "indexed": false,
53
- "internalType": "NftId",
54
- "name": "nftId",
55
- "type": "uint96"
56
- },
57
- {
58
- "indexed": false,
59
- "internalType": "StateId",
60
- "name": "fromStateId",
61
- "type": "uint8"
11
+ "internalType": "RoleId",
12
+ "name": "role",
13
+ "type": "bytes8"
62
14
  },
63
15
  {
64
16
  "indexed": false,
65
- "internalType": "StateId",
66
- "name": "toStateId",
67
- "type": "uint8"
17
+ "internalType": "string",
18
+ "name": "roleName",
19
+ "type": "string"
68
20
  }
69
21
  ],
70
- "name": "LogBundleStateChanged",
22
+ "name": "LogAccessRoleCreated",
71
23
  "type": "event"
72
24
  },
73
25
  {
@@ -75,30 +27,24 @@
75
27
  "inputs": [
76
28
  {
77
29
  "indexed": false,
78
- "internalType": "NftId",
79
- "name": "nftId",
80
- "type": "uint96"
81
- },
82
- {
83
- "indexed": false,
84
- "internalType": "ObjectType",
85
- "name": "objectType",
86
- "type": "uint8"
30
+ "internalType": "RoleId",
31
+ "name": "role",
32
+ "type": "bytes8"
87
33
  },
88
34
  {
89
35
  "indexed": false,
90
- "internalType": "StateId",
91
- "name": "fromStateId",
92
- "type": "uint8"
36
+ "internalType": "address",
37
+ "name": "member",
38
+ "type": "address"
93
39
  },
94
40
  {
95
41
  "indexed": false,
96
- "internalType": "StateId",
97
- "name": "toStateId",
98
- "type": "uint8"
42
+ "internalType": "bool",
43
+ "name": "isMember",
44
+ "type": "bool"
99
45
  }
100
46
  ],
101
- "name": "LogComponentStateChanged",
47
+ "name": "LogAccessRoleGranted",
102
48
  "type": "event"
103
49
  },
104
50
  {
@@ -106,24 +52,18 @@
106
52
  "inputs": [
107
53
  {
108
54
  "indexed": false,
109
- "internalType": "uint256",
110
- "name": "idx",
111
- "type": "uint256"
112
- },
113
- {
114
- "indexed": false,
115
- "internalType": "address",
116
- "name": "module",
117
- "type": "address"
55
+ "internalType": "RoleId",
56
+ "name": "role",
57
+ "type": "bytes8"
118
58
  },
119
59
  {
120
60
  "indexed": false,
121
- "internalType": "string",
122
- "name": "comment",
123
- "type": "string"
61
+ "internalType": "bool",
62
+ "name": "active",
63
+ "type": "bool"
124
64
  }
125
65
  ],
126
- "name": "LogDebug",
66
+ "name": "LogAccessRoleStateSet",
127
67
  "type": "event"
128
68
  },
129
69
  {
@@ -131,74 +71,63 @@
131
71
  "inputs": [
132
72
  {
133
73
  "indexed": false,
134
- "internalType": "NftId",
135
- "name": "nftId",
136
- "type": "uint96"
74
+ "internalType": "Version",
75
+ "name": "version",
76
+ "type": "uint24"
137
77
  },
138
78
  {
139
79
  "indexed": false,
140
- "internalType": "StateId",
141
- "name": "fromStateId",
142
- "type": "uint8"
80
+ "internalType": "address",
81
+ "name": "implementation",
82
+ "type": "address"
143
83
  },
144
84
  {
145
85
  "indexed": false,
146
- "internalType": "StateId",
147
- "name": "toStateId",
148
- "type": "uint8"
86
+ "internalType": "address",
87
+ "name": "activatedBy",
88
+ "type": "address"
149
89
  }
150
90
  ],
151
- "name": "LogPolicyStateChanged",
91
+ "name": "LogVersionableActivated",
152
92
  "type": "event"
153
93
  },
154
94
  {
155
- "inputs": [],
156
- "name": "ORACLE_OWNER_ROLE",
157
- "outputs": [
158
- {
159
- "internalType": "bytes32",
160
- "name": "role",
161
- "type": "bytes32"
162
- }
163
- ],
164
- "stateMutability": "view",
165
- "type": "function"
166
- },
167
- {
168
- "inputs": [],
169
- "name": "POOL_OWNER_ROLE",
170
- "outputs": [
95
+ "inputs": [
171
96
  {
172
- "internalType": "bytes32",
173
- "name": "role",
174
- "type": "bytes32"
175
- }
176
- ],
177
- "stateMutability": "view",
178
- "type": "function"
179
- },
180
- {
181
- "inputs": [],
182
- "name": "PRODUCT_OWNER_ROLE",
183
- "outputs": [
97
+ "internalType": "address",
98
+ "name": "implementation",
99
+ "type": "address"
100
+ },
184
101
  {
185
- "internalType": "bytes32",
186
- "name": "role",
187
- "type": "bytes32"
102
+ "internalType": "address",
103
+ "name": "activatedBy",
104
+ "type": "address"
188
105
  }
189
106
  ],
190
- "stateMutability": "view",
107
+ "name": "activate",
108
+ "outputs": [],
109
+ "stateMutability": "nonpayable",
191
110
  "type": "function"
192
111
  },
193
112
  {
194
113
  "inputs": [
195
114
  {
196
115
  "internalType": "NftId",
197
- "name": "nftId",
116
+ "name": "bundleNftId",
117
+ "type": "uint96"
118
+ },
119
+ {
120
+ "internalType": "NftId",
121
+ "name": "poolNftId",
198
122
  "type": "uint96"
123
+ },
124
+ {
125
+ "internalType": "uint256",
126
+ "name": "amount",
127
+ "type": "uint256"
199
128
  }
200
129
  ],
201
- "name": "activate",
130
+ "name": "addBundleToPool",
202
131
  "outputs": [],
203
132
  "stateMutability": "nonpayable",
204
133
  "type": "function"
@@ -245,56 +174,99 @@
245
174
  "type": "function"
246
175
  },
247
176
  {
248
- "inputs": [],
249
- "name": "components",
250
- "outputs": [
177
+ "inputs": [
178
+ {
179
+ "internalType": "NftId",
180
+ "name": "bundleNftId",
181
+ "type": "uint96"
182
+ },
183
+ {
184
+ "internalType": "NftId",
185
+ "name": "policyNftId",
186
+ "type": "uint96"
187
+ },
251
188
  {
252
189
  "internalType": "uint256",
253
- "name": "numberOfCompnents",
190
+ "name": "amount",
254
191
  "type": "uint256"
255
192
  }
256
193
  ],
257
- "stateMutability": "view",
194
+ "name": "collateralizePolicy",
195
+ "outputs": [],
196
+ "stateMutability": "nonpayable",
258
197
  "type": "function"
259
198
  },
260
199
  {
261
200
  "inputs": [
201
+ {
202
+ "internalType": "NftId",
203
+ "name": "bundleNftId",
204
+ "type": "uint96"
205
+ },
206
+ {
207
+ "internalType": "NftId",
208
+ "name": "poolNftId",
209
+ "type": "uint96"
210
+ },
262
211
  {
263
212
  "components": [
264
213
  {
265
- "internalType": "NftId",
266
- "name": "nftId",
267
- "type": "uint96"
268
- },
269
- {
270
- "internalType": "NftId",
271
- "name": "parentNftId",
272
- "type": "uint96"
273
- },
274
- {
275
- "internalType": "ObjectType",
276
- "name": "objectType",
277
- "type": "uint8"
278
- },
279
- {
280
- "internalType": "address",
281
- "name": "objectAddress",
282
- "type": "address"
214
+ "internalType": "UFixed",
215
+ "name": "fractionalFee",
216
+ "type": "uint256"
283
217
  },
284
218
  {
285
- "internalType": "address",
286
- "name": "initialOwner",
287
- "type": "address"
219
+ "internalType": "uint256",
220
+ "name": "fixedFee",
221
+ "type": "uint256"
288
222
  }
289
223
  ],
290
- "internalType": "struct IRegistry.RegistryInfo",
291
- "name": "productInfo",
224
+ "internalType": "struct Fee",
225
+ "name": "fee",
292
226
  "type": "tuple"
293
227
  },
294
228
  {
295
- "internalType": "address",
296
- "name": "applicationOwner",
297
- "type": "address"
229
+ "internalType": "uint256",
230
+ "name": "amount",
231
+ "type": "uint256"
232
+ },
233
+ {
234
+ "internalType": "uint256",
235
+ "name": "lifetime",
236
+ "type": "uint256"
237
+ },
238
+ {
239
+ "internalType": "bytes",
240
+ "name": "filter",
241
+ "type": "bytes"
242
+ }
243
+ ],
244
+ "name": "createBundleInfo",
245
+ "outputs": [],
246
+ "stateMutability": "nonpayable",
247
+ "type": "function"
248
+ },
249
+ {
250
+ "inputs": [
251
+ {
252
+ "internalType": "NftId",
253
+ "name": "policyNftId",
254
+ "type": "uint96"
255
+ },
256
+ {
257
+ "internalType": "NftId",
258
+ "name": "productNftId",
259
+ "type": "uint96"
260
+ },
261
+ {
262
+ "internalType": "ReferralId",
263
+ "name": "referralId",
264
+ "type": "bytes8"
265
+ },
266
+ {
267
+ "internalType": "RiskId",
268
+ "name": "riskId",
269
+ "type": "bytes8"
298
270
  },
299
271
  {
300
272
  "internalType": "uint256",
@@ -317,14 +289,31 @@
317
289
  "type": "uint96"
318
290
  }
319
291
  ],
320
- "name": "createApplication",
321
- "outputs": [
292
+ "name": "createPolicyInfo",
293
+ "outputs": [],
294
+ "stateMutability": "nonpayable",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [
299
+ {
300
+ "internalType": "RiskId",
301
+ "name": "riskId",
302
+ "type": "bytes8"
303
+ },
322
304
  {
323
305
  "internalType": "NftId",
324
- "name": "nftId",
306
+ "name": "productNftId",
325
307
  "type": "uint96"
308
+ },
309
+ {
310
+ "internalType": "bytes",
311
+ "name": "data",
312
+ "type": "bytes"
326
313
  }
327
314
  ],
315
+ "name": "createRisk",
316
+ "outputs": [],
328
317
  "stateMutability": "nonpayable",
329
318
  "type": "function"
330
319
  },
@@ -339,9 +328,9 @@
339
328
  "name": "createRole",
340
329
  "outputs": [
341
330
  {
342
- "internalType": "bytes32",
331
+ "internalType": "RoleId",
343
332
  "name": "role",
344
- "type": "bytes32"
333
+ "type": "bytes8"
345
334
  }
346
335
  ],
347
336
  "stateMutability": "nonpayable",
@@ -350,27 +339,20 @@
350
339
  {
351
340
  "inputs": [
352
341
  {
353
- "internalType": "bytes32",
354
- "name": "role",
355
- "type": "bytes32"
342
+ "internalType": "NftId",
343
+ "name": "poolNftId",
344
+ "type": "uint96"
356
345
  }
357
346
  ],
358
- "name": "disableRole",
359
- "outputs": [],
360
- "stateMutability": "nonpayable",
361
- "type": "function"
362
- },
363
- {
364
- "inputs": [
347
+ "name": "getBundleCount",
348
+ "outputs": [
365
349
  {
366
- "internalType": "bytes32",
367
- "name": "role",
368
- "type": "bytes32"
350
+ "internalType": "uint256",
351
+ "name": "bundleCount",
352
+ "type": "uint256"
369
353
  }
370
354
  ],
371
- "name": "enableRole",
372
- "outputs": [],
373
- "stateMutability": "nonpayable",
355
+ "stateMutability": "view",
374
356
  "type": "function"
375
357
  },
376
358
  {
@@ -381,12 +363,66 @@
381
363
  "type": "uint96"
382
364
  }
383
365
  ],
384
- "name": "getBundleNftForPolicy",
366
+ "name": "getBundleInfo",
385
367
  "outputs": [
386
368
  {
387
- "internalType": "NftId",
388
- "name": "bundleNft",
389
- "type": "uint96"
369
+ "components": [
370
+ {
371
+ "internalType": "NftId",
372
+ "name": "poolNftId",
373
+ "type": "uint96"
374
+ },
375
+ {
376
+ "components": [
377
+ {
378
+ "internalType": "UFixed",
379
+ "name": "fractionalFee",
380
+ "type": "uint256"
381
+ },
382
+ {
383
+ "internalType": "uint256",
384
+ "name": "fixedFee",
385
+ "type": "uint256"
386
+ }
387
+ ],
388
+ "internalType": "struct Fee",
389
+ "name": "fee",
390
+ "type": "tuple"
391
+ },
392
+ {
393
+ "internalType": "bytes",
394
+ "name": "filter",
395
+ "type": "bytes"
396
+ },
397
+ {
398
+ "internalType": "uint256",
399
+ "name": "capitalAmount",
400
+ "type": "uint256"
401
+ },
402
+ {
403
+ "internalType": "uint256",
404
+ "name": "lockedAmount",
405
+ "type": "uint256"
406
+ },
407
+ {
408
+ "internalType": "uint256",
409
+ "name": "balanceAmount",
410
+ "type": "uint256"
411
+ },
412
+ {
413
+ "internalType": "Timestamp",
414
+ "name": "expiredAt",
415
+ "type": "uint40"
416
+ },
417
+ {
418
+ "internalType": "Timestamp",
419
+ "name": "closedAt",
420
+ "type": "uint40"
421
+ }
422
+ ],
423
+ "internalType": "struct IBundle.BundleInfo",
424
+ "name": "bundleInfo",
425
+ "type": "tuple"
390
426
  }
391
427
  ],
392
428
  "stateMutability": "view",
@@ -395,22 +431,40 @@
395
431
  {
396
432
  "inputs": [
397
433
  {
398
- "internalType": "address",
399
- "name": "componentAddress",
400
- "type": "address"
434
+ "internalType": "NftId",
435
+ "name": "poolNftId",
436
+ "type": "uint96"
437
+ },
438
+ {
439
+ "internalType": "uint256",
440
+ "name": "index",
441
+ "type": "uint256"
401
442
  }
402
443
  ],
403
- "name": "getComponentId",
444
+ "name": "getBundleNftId",
404
445
  "outputs": [
405
446
  {
406
447
  "internalType": "NftId",
407
- "name": "nftId",
448
+ "name": "bundleNftId",
408
449
  "type": "uint96"
409
450
  }
410
451
  ],
411
452
  "stateMutability": "view",
412
453
  "type": "function"
413
454
  },
455
+ {
456
+ "inputs": [],
457
+ "name": "getComponentCount",
458
+ "outputs": [
459
+ {
460
+ "internalType": "uint256",
461
+ "name": "numberOfCompnents",
462
+ "type": "uint256"
463
+ }
464
+ ],
465
+ "stateMutability": "view",
466
+ "type": "function"
467
+ },
414
468
  {
415
469
  "inputs": [
416
470
  {
@@ -430,6 +484,19 @@
430
484
  "stateMutability": "view",
431
485
  "type": "function"
432
486
  },
487
+ {
488
+ "inputs": [],
489
+ "name": "getComponentOwnerService",
490
+ "outputs": [
491
+ {
492
+ "internalType": "contract IComponentOwnerService",
493
+ "name": "",
494
+ "type": "address"
495
+ }
496
+ ],
497
+ "stateMutability": "view",
498
+ "type": "function"
499
+ },
433
500
  {
434
501
  "inputs": [
435
502
  {
@@ -438,41 +505,30 @@
438
505
  "type": "uint96"
439
506
  }
440
507
  ],
441
- "name": "getComponentInfo",
508
+ "name": "getComponentToken",
442
509
  "outputs": [
443
510
  {
444
- "components": [
445
- {
446
- "internalType": "NftId",
447
- "name": "nftId",
448
- "type": "uint96"
449
- },
450
- {
451
- "internalType": "StateId",
452
- "name": "state",
453
- "type": "uint8"
454
- },
455
- {
456
- "internalType": "contract IERC20Metadata",
457
- "name": "token",
458
- "type": "address"
459
- }
460
- ],
461
- "internalType": "struct IComponent.ComponentInfo",
462
- "name": "info",
463
- "type": "tuple"
511
+ "internalType": "contract IERC20Metadata",
512
+ "name": "token",
513
+ "type": "address"
464
514
  }
465
515
  ],
466
516
  "stateMutability": "view",
467
517
  "type": "function"
468
518
  },
469
519
  {
470
- "inputs": [],
471
- "name": "getComponentOwnerService",
520
+ "inputs": [
521
+ {
522
+ "internalType": "NftId",
523
+ "name": "nftId",
524
+ "type": "uint96"
525
+ }
526
+ ],
527
+ "name": "getComponentWallet",
472
528
  "outputs": [
473
529
  {
474
- "internalType": "contract IComponentOwnerService",
475
- "name": "",
530
+ "internalType": "address",
531
+ "name": "wallet",
476
532
  "type": "address"
477
533
  }
478
534
  ],
@@ -494,11 +550,11 @@
494
550
  },
495
551
  {
496
552
  "inputs": [],
497
- "name": "getInitialOwner",
553
+ "name": "getDistributionService",
498
554
  "outputs": [
499
555
  {
500
- "internalType": "address",
501
- "name": "initialOwner",
556
+ "internalType": "contract IDistributionService",
557
+ "name": "",
502
558
  "type": "address"
503
559
  }
504
560
  ],
@@ -508,17 +564,47 @@
508
564
  {
509
565
  "inputs": [
510
566
  {
511
- "internalType": "ObjectType",
512
- "name": "objectType",
513
- "type": "uint8"
567
+ "internalType": "UFixed",
568
+ "name": "fractionalFee",
569
+ "type": "uint256"
570
+ },
571
+ {
572
+ "internalType": "uint256",
573
+ "name": "fixedFee",
574
+ "type": "uint256"
514
575
  }
515
576
  ],
516
- "name": "getInitialState",
577
+ "name": "getFee",
517
578
  "outputs": [
518
579
  {
519
- "internalType": "StateId",
520
- "name": "",
521
- "type": "uint8"
580
+ "components": [
581
+ {
582
+ "internalType": "UFixed",
583
+ "name": "fractionalFee",
584
+ "type": "uint256"
585
+ },
586
+ {
587
+ "internalType": "uint256",
588
+ "name": "fixedFee",
589
+ "type": "uint256"
590
+ }
591
+ ],
592
+ "internalType": "struct Fee",
593
+ "name": "fee",
594
+ "type": "tuple"
595
+ }
596
+ ],
597
+ "stateMutability": "pure",
598
+ "type": "function"
599
+ },
600
+ {
601
+ "inputs": [],
602
+ "name": "getKeyValueStore",
603
+ "outputs": [
604
+ {
605
+ "internalType": "contract IKeyValueStore",
606
+ "name": "keyValueStore",
607
+ "type": "address"
522
608
  }
523
609
  ],
524
610
  "stateMutability": "view",
@@ -556,7 +642,7 @@
556
642
  "outputs": [
557
643
  {
558
644
  "internalType": "NftId",
559
- "name": "parentNftId",
645
+ "name": "nftId",
560
646
  "type": "uint96"
561
647
  }
562
648
  ],
@@ -577,13 +663,28 @@
577
663
  "components": [
578
664
  {
579
665
  "internalType": "NftId",
580
- "name": "nftId",
666
+ "name": "productNftId",
667
+ "type": "uint96"
668
+ },
669
+ {
670
+ "internalType": "NftId",
671
+ "name": "bundleNftId",
581
672
  "type": "uint96"
582
673
  },
583
674
  {
584
- "internalType": "StateId",
585
- "name": "state",
586
- "type": "uint8"
675
+ "internalType": "ReferralId",
676
+ "name": "referralId",
677
+ "type": "bytes8"
678
+ },
679
+ {
680
+ "internalType": "address",
681
+ "name": "beneficiary",
682
+ "type": "address"
683
+ },
684
+ {
685
+ "internalType": "RiskId",
686
+ "name": "riskId",
687
+ "type": "bytes8"
587
688
  },
588
689
  {
589
690
  "internalType": "uint256",
@@ -606,29 +707,29 @@
606
707
  "type": "uint256"
607
708
  },
608
709
  {
609
- "internalType": "uint256",
610
- "name": "createdAt",
611
- "type": "uint256"
710
+ "internalType": "bytes",
711
+ "name": "applicationData",
712
+ "type": "bytes"
612
713
  },
613
714
  {
614
- "internalType": "uint256",
615
- "name": "updatedAt",
616
- "type": "uint256"
715
+ "internalType": "bytes",
716
+ "name": "policyData",
717
+ "type": "bytes"
617
718
  },
618
719
  {
619
- "internalType": "uint256",
720
+ "internalType": "Timestamp",
620
721
  "name": "activatedAt",
621
- "type": "uint256"
722
+ "type": "uint40"
622
723
  },
623
724
  {
624
- "internalType": "uint256",
725
+ "internalType": "Timestamp",
625
726
  "name": "expiredAt",
626
- "type": "uint256"
727
+ "type": "uint40"
627
728
  },
628
729
  {
629
- "internalType": "uint256",
730
+ "internalType": "Timestamp",
630
731
  "name": "closedAt",
631
- "type": "uint256"
732
+ "type": "uint40"
632
733
  }
633
734
  ],
634
735
  "internalType": "struct IPolicy.PolicyInfo",
@@ -652,18 +753,13 @@
652
753
  {
653
754
  "components": [
654
755
  {
655
- "internalType": "NftId",
656
- "name": "nftId",
657
- "type": "uint96"
658
- },
659
- {
660
- "internalType": "uint256",
661
- "name": "capital",
662
- "type": "uint256"
756
+ "internalType": "bool",
757
+ "name": "isVerifying",
758
+ "type": "bool"
663
759
  },
664
760
  {
665
- "internalType": "uint256",
666
- "name": "lockedCapital",
761
+ "internalType": "UFixed",
762
+ "name": "collateralizationLevel",
667
763
  "type": "uint256"
668
764
  }
669
765
  ],
@@ -675,66 +771,33 @@
675
771
  "stateMutability": "view",
676
772
  "type": "function"
677
773
  },
774
+ {
775
+ "inputs": [],
776
+ "name": "getPoolService",
777
+ "outputs": [
778
+ {
779
+ "internalType": "contract IPoolService",
780
+ "name": "",
781
+ "type": "address"
782
+ }
783
+ ],
784
+ "stateMutability": "view",
785
+ "type": "function"
786
+ },
678
787
  {
679
788
  "inputs": [
680
789
  {
681
790
  "internalType": "NftId",
682
- "name": "poolNftId",
791
+ "name": "componentNftId",
683
792
  "type": "uint96"
684
793
  }
685
794
  ],
686
- "name": "getPoolSetup",
795
+ "name": "getProductNftId",
687
796
  "outputs": [
688
797
  {
689
- "components": [
690
- {
691
- "internalType": "NftId",
692
- "name": "poolNftId",
693
- "type": "uint96"
694
- },
695
- {
696
- "internalType": "address",
697
- "name": "wallet",
698
- "type": "address"
699
- },
700
- {
701
- "components": [
702
- {
703
- "internalType": "UFixed",
704
- "name": "fractionalFee",
705
- "type": "uint256"
706
- },
707
- {
708
- "internalType": "uint256",
709
- "name": "fixedFee",
710
- "type": "uint256"
711
- }
712
- ],
713
- "internalType": "struct Fee",
714
- "name": "stakingFee",
715
- "type": "tuple"
716
- },
717
- {
718
- "components": [
719
- {
720
- "internalType": "UFixed",
721
- "name": "fractionalFee",
722
- "type": "uint256"
723
- },
724
- {
725
- "internalType": "uint256",
726
- "name": "fixedFee",
727
- "type": "uint256"
728
- }
729
- ],
730
- "internalType": "struct Fee",
731
- "name": "performanceFee",
732
- "type": "tuple"
733
- }
734
- ],
735
- "internalType": "struct ITreasuryModule.PoolSetup",
736
- "name": "setup",
737
- "type": "tuple"
798
+ "internalType": "NftId",
799
+ "name": "productNftId",
800
+ "type": "uint96"
738
801
  }
739
802
  ],
740
803
  "stateMutability": "view",
@@ -754,14 +817,27 @@
754
817
  "type": "function"
755
818
  },
756
819
  {
757
- "inputs": [
820
+ "inputs": [],
821
+ "name": "getRegistry",
822
+ "outputs": [
758
823
  {
759
- "internalType": "NftId",
760
- "name": "productNftId",
761
- "type": "uint96"
824
+ "internalType": "contract IRegistry",
825
+ "name": "registry",
826
+ "type": "address"
827
+ }
828
+ ],
829
+ "stateMutability": "view",
830
+ "type": "function"
831
+ },
832
+ {
833
+ "inputs": [
834
+ {
835
+ "internalType": "RiskId",
836
+ "name": "riskId",
837
+ "type": "bytes8"
762
838
  }
763
839
  ],
764
- "name": "getProductSetup",
840
+ "name": "getRiskInfo",
765
841
  "outputs": [
766
842
  {
767
843
  "components": [
@@ -771,86 +847,19 @@
771
847
  "type": "uint96"
772
848
  },
773
849
  {
774
- "internalType": "NftId",
775
- "name": "distributorNftId",
776
- "type": "uint96"
777
- },
778
- {
779
- "internalType": "NftId",
780
- "name": "poolNftId",
781
- "type": "uint96"
782
- },
783
- {
784
- "internalType": "contract IERC20",
785
- "name": "token",
786
- "type": "address"
787
- },
788
- {
789
- "internalType": "contract TokenHandler",
790
- "name": "tokenHandler",
791
- "type": "address"
792
- },
793
- {
794
- "internalType": "address",
795
- "name": "wallet",
796
- "type": "address"
797
- },
798
- {
799
- "components": [
800
- {
801
- "internalType": "UFixed",
802
- "name": "fractionalFee",
803
- "type": "uint256"
804
- },
805
- {
806
- "internalType": "uint256",
807
- "name": "fixedFee",
808
- "type": "uint256"
809
- }
810
- ],
811
- "internalType": "struct Fee",
812
- "name": "policyFee",
813
- "type": "tuple"
814
- },
815
- {
816
- "components": [
817
- {
818
- "internalType": "UFixed",
819
- "name": "fractionalFee",
820
- "type": "uint256"
821
- },
822
- {
823
- "internalType": "uint256",
824
- "name": "fixedFee",
825
- "type": "uint256"
826
- }
827
- ],
828
- "internalType": "struct Fee",
829
- "name": "processingFee",
830
- "type": "tuple"
850
+ "internalType": "bytes",
851
+ "name": "data",
852
+ "type": "bytes"
831
853
  }
832
854
  ],
833
- "internalType": "struct ITreasuryModule.ProductSetup",
834
- "name": "setup",
855
+ "internalType": "struct IRisk.RiskInfo",
856
+ "name": "info",
835
857
  "type": "tuple"
836
858
  }
837
859
  ],
838
860
  "stateMutability": "view",
839
861
  "type": "function"
840
862
  },
841
- {
842
- "inputs": [],
843
- "name": "getRegistry",
844
- "outputs": [
845
- {
846
- "internalType": "contract IRegistry",
847
- "name": "registry",
848
- "type": "address"
849
- }
850
- ],
851
- "stateMutability": "view",
852
- "type": "function"
853
- },
854
863
  {
855
864
  "inputs": [
856
865
  {
@@ -862,9 +871,9 @@
862
871
  "name": "getRole",
863
872
  "outputs": [
864
873
  {
865
- "internalType": "bytes32",
874
+ "internalType": "RoleId",
866
875
  "name": "role",
867
- "type": "bytes32"
876
+ "type": "bytes8"
868
877
  }
869
878
  ],
870
879
  "stateMutability": "view",
@@ -891,12 +900,12 @@
891
900
  "type": "string"
892
901
  }
893
902
  ],
894
- "name": "getRoleForName",
903
+ "name": "getRoleId",
895
904
  "outputs": [
896
905
  {
897
- "internalType": "bytes32",
906
+ "internalType": "RoleId",
898
907
  "name": "role",
899
- "type": "bytes32"
908
+ "type": "bytes8"
900
909
  }
901
910
  ],
902
911
  "stateMutability": "pure",
@@ -905,9 +914,9 @@
905
914
  {
906
915
  "inputs": [
907
916
  {
908
- "internalType": "bytes32",
917
+ "internalType": "RoleId",
909
918
  "name": "role",
910
- "type": "bytes32"
919
+ "type": "bytes8"
911
920
  }
912
921
  ],
913
922
  "name": "getRoleInfo",
@@ -915,9 +924,9 @@
915
924
  {
916
925
  "components": [
917
926
  {
918
- "internalType": "bytes32",
927
+ "internalType": "RoleId",
919
928
  "name": "id",
920
- "type": "bytes32"
929
+ "type": "bytes8"
921
930
  },
922
931
  {
923
932
  "internalType": "string",
@@ -941,9 +950,9 @@
941
950
  {
942
951
  "inputs": [
943
952
  {
944
- "internalType": "bytes32",
953
+ "internalType": "RoleId",
945
954
  "name": "role",
946
- "type": "bytes32"
955
+ "type": "bytes8"
947
956
  },
948
957
  {
949
958
  "internalType": "uint256",
@@ -955,7 +964,7 @@
955
964
  "outputs": [
956
965
  {
957
966
  "internalType": "address",
958
- "name": "roleMembers",
967
+ "name": "roleMember",
959
968
  "type": "address"
960
969
  }
961
970
  ],
@@ -965,9 +974,9 @@
965
974
  {
966
975
  "inputs": [
967
976
  {
968
- "internalType": "bytes32",
977
+ "internalType": "RoleId",
969
978
  "name": "role",
970
- "type": "bytes32"
979
+ "type": "bytes8"
971
980
  }
972
981
  ],
973
982
  "name": "getRoleMemberCount",
@@ -981,11 +990,30 @@
981
990
  "stateMutability": "view",
982
991
  "type": "function"
983
992
  },
993
+ {
994
+ "inputs": [
995
+ {
996
+ "internalType": "Key32",
997
+ "name": "key",
998
+ "type": "bytes32"
999
+ }
1000
+ ],
1001
+ "name": "getState",
1002
+ "outputs": [
1003
+ {
1004
+ "internalType": "StateId",
1005
+ "name": "state",
1006
+ "type": "uint8"
1007
+ }
1008
+ ],
1009
+ "stateMutability": "view",
1010
+ "type": "function"
1011
+ },
984
1012
  {
985
1013
  "inputs": [
986
1014
  {
987
1015
  "internalType": "NftId",
988
- "name": "productNftId",
1016
+ "name": "componentNftId",
989
1017
  "type": "uint96"
990
1018
  }
991
1019
  ],
@@ -1000,6 +1028,144 @@
1000
1028
  "stateMutability": "view",
1001
1029
  "type": "function"
1002
1030
  },
1031
+ {
1032
+ "inputs": [
1033
+ {
1034
+ "internalType": "NftId",
1035
+ "name": "productNftId",
1036
+ "type": "uint96"
1037
+ }
1038
+ ],
1039
+ "name": "getTreasuryInfo",
1040
+ "outputs": [
1041
+ {
1042
+ "components": [
1043
+ {
1044
+ "internalType": "NftId",
1045
+ "name": "poolNftId",
1046
+ "type": "uint96"
1047
+ },
1048
+ {
1049
+ "internalType": "NftId",
1050
+ "name": "distributionNftId",
1051
+ "type": "uint96"
1052
+ },
1053
+ {
1054
+ "internalType": "contract IERC20Metadata",
1055
+ "name": "token",
1056
+ "type": "address"
1057
+ },
1058
+ {
1059
+ "components": [
1060
+ {
1061
+ "internalType": "UFixed",
1062
+ "name": "fractionalFee",
1063
+ "type": "uint256"
1064
+ },
1065
+ {
1066
+ "internalType": "uint256",
1067
+ "name": "fixedFee",
1068
+ "type": "uint256"
1069
+ }
1070
+ ],
1071
+ "internalType": "struct Fee",
1072
+ "name": "productFee",
1073
+ "type": "tuple"
1074
+ },
1075
+ {
1076
+ "components": [
1077
+ {
1078
+ "internalType": "UFixed",
1079
+ "name": "fractionalFee",
1080
+ "type": "uint256"
1081
+ },
1082
+ {
1083
+ "internalType": "uint256",
1084
+ "name": "fixedFee",
1085
+ "type": "uint256"
1086
+ }
1087
+ ],
1088
+ "internalType": "struct Fee",
1089
+ "name": "processingFee",
1090
+ "type": "tuple"
1091
+ },
1092
+ {
1093
+ "components": [
1094
+ {
1095
+ "internalType": "UFixed",
1096
+ "name": "fractionalFee",
1097
+ "type": "uint256"
1098
+ },
1099
+ {
1100
+ "internalType": "uint256",
1101
+ "name": "fixedFee",
1102
+ "type": "uint256"
1103
+ }
1104
+ ],
1105
+ "internalType": "struct Fee",
1106
+ "name": "poolFee",
1107
+ "type": "tuple"
1108
+ },
1109
+ {
1110
+ "components": [
1111
+ {
1112
+ "internalType": "UFixed",
1113
+ "name": "fractionalFee",
1114
+ "type": "uint256"
1115
+ },
1116
+ {
1117
+ "internalType": "uint256",
1118
+ "name": "fixedFee",
1119
+ "type": "uint256"
1120
+ }
1121
+ ],
1122
+ "internalType": "struct Fee",
1123
+ "name": "stakingFee",
1124
+ "type": "tuple"
1125
+ },
1126
+ {
1127
+ "components": [
1128
+ {
1129
+ "internalType": "UFixed",
1130
+ "name": "fractionalFee",
1131
+ "type": "uint256"
1132
+ },
1133
+ {
1134
+ "internalType": "uint256",
1135
+ "name": "fixedFee",
1136
+ "type": "uint256"
1137
+ }
1138
+ ],
1139
+ "internalType": "struct Fee",
1140
+ "name": "performanceFee",
1141
+ "type": "tuple"
1142
+ },
1143
+ {
1144
+ "components": [
1145
+ {
1146
+ "internalType": "UFixed",
1147
+ "name": "fractionalFee",
1148
+ "type": "uint256"
1149
+ },
1150
+ {
1151
+ "internalType": "uint256",
1152
+ "name": "fixedFee",
1153
+ "type": "uint256"
1154
+ }
1155
+ ],
1156
+ "internalType": "struct Fee",
1157
+ "name": "distributionFee",
1158
+ "type": "tuple"
1159
+ }
1160
+ ],
1161
+ "internalType": "struct ITreasury.TreasuryInfo",
1162
+ "name": "info",
1163
+ "type": "tuple"
1164
+ }
1165
+ ],
1166
+ "stateMutability": "view",
1167
+ "type": "function"
1168
+ },
1003
1169
  {
1004
1170
  "inputs": [],
1005
1171
  "name": "getType",
@@ -1010,72 +1176,92 @@
1010
1176
  "type": "uint8"
1011
1177
  }
1012
1178
  ],
1013
- "stateMutability": "view",
1179
+ "stateMutability": "pure",
1014
1180
  "type": "function"
1015
1181
  },
1016
1182
  {
1017
1183
  "inputs": [
1018
1184
  {
1019
- "internalType": "bytes32",
1020
- "name": "role",
1021
- "type": "bytes32"
1185
+ "internalType": "uint256",
1186
+ "name": "a",
1187
+ "type": "uint256"
1022
1188
  },
1023
1189
  {
1024
- "internalType": "address",
1025
- "name": "member",
1026
- "type": "address"
1190
+ "internalType": "int8",
1191
+ "name": "exp",
1192
+ "type": "int8"
1027
1193
  }
1028
1194
  ],
1029
- "name": "grantRole",
1030
- "outputs": [],
1031
- "stateMutability": "nonpayable",
1195
+ "name": "getUFixed",
1196
+ "outputs": [
1197
+ {
1198
+ "internalType": "UFixed",
1199
+ "name": "",
1200
+ "type": "uint256"
1201
+ }
1202
+ ],
1203
+ "stateMutability": "pure",
1032
1204
  "type": "function"
1033
1205
  },
1034
1206
  {
1035
1207
  "inputs": [
1036
1208
  {
1037
- "internalType": "bytes32",
1038
- "name": "role",
1039
- "type": "bytes32"
1040
- },
1041
- {
1042
- "internalType": "address",
1043
- "name": "member",
1044
- "type": "address"
1209
+ "internalType": "uint256",
1210
+ "name": "a",
1211
+ "type": "uint256"
1045
1212
  }
1046
1213
  ],
1047
- "name": "hasRole",
1214
+ "name": "getUFixed",
1048
1215
  "outputs": [
1049
1216
  {
1050
- "internalType": "bool",
1217
+ "internalType": "UFixed",
1051
1218
  "name": "",
1052
- "type": "bool"
1219
+ "type": "uint256"
1053
1220
  }
1054
1221
  ],
1055
- "stateMutability": "view",
1222
+ "stateMutability": "pure",
1056
1223
  "type": "function"
1057
1224
  },
1058
1225
  {
1059
1226
  "inputs": [],
1060
- "name": "isRegisterable",
1227
+ "name": "getVersion",
1061
1228
  "outputs": [
1062
1229
  {
1063
- "internalType": "bool",
1230
+ "internalType": "Version",
1064
1231
  "name": "",
1065
- "type": "bool"
1232
+ "type": "uint24"
1066
1233
  }
1067
1234
  ],
1068
1235
  "stateMutability": "pure",
1069
1236
  "type": "function"
1070
1237
  },
1238
+ {
1239
+ "inputs": [
1240
+ {
1241
+ "internalType": "uint256",
1242
+ "name": "index",
1243
+ "type": "uint256"
1244
+ }
1245
+ ],
1246
+ "name": "getVersion",
1247
+ "outputs": [
1248
+ {
1249
+ "internalType": "Version",
1250
+ "name": "version",
1251
+ "type": "uint24"
1252
+ }
1253
+ ],
1254
+ "stateMutability": "view",
1255
+ "type": "function"
1256
+ },
1071
1257
  {
1072
1258
  "inputs": [],
1073
- "name": "isRegistered",
1259
+ "name": "getVersionCount",
1074
1260
  "outputs": [
1075
1261
  {
1076
- "internalType": "bool",
1077
- "name": "",
1078
- "type": "bool"
1262
+ "internalType": "uint256",
1263
+ "name": "numberOfVersions",
1264
+ "type": "uint256"
1079
1265
  }
1080
1266
  ],
1081
1267
  "stateMutability": "view",
@@ -1084,27 +1270,69 @@
1084
1270
  {
1085
1271
  "inputs": [
1086
1272
  {
1087
- "internalType": "ObjectType",
1088
- "name": "objectType",
1089
- "type": "uint8"
1090
- },
1091
- {
1092
- "internalType": "StateId",
1093
- "name": "fromId",
1094
- "type": "uint8"
1095
- },
1273
+ "internalType": "Version",
1274
+ "name": "version",
1275
+ "type": "uint24"
1276
+ }
1277
+ ],
1278
+ "name": "getVersionInfo",
1279
+ "outputs": [
1096
1280
  {
1097
- "internalType": "StateId",
1098
- "name": "toId",
1099
- "type": "uint8"
1281
+ "components": [
1282
+ {
1283
+ "internalType": "Version",
1284
+ "name": "version",
1285
+ "type": "uint24"
1286
+ },
1287
+ {
1288
+ "internalType": "address",
1289
+ "name": "implementation",
1290
+ "type": "address"
1291
+ },
1292
+ {
1293
+ "internalType": "address",
1294
+ "name": "activatedBy",
1295
+ "type": "address"
1296
+ },
1297
+ {
1298
+ "internalType": "Timestamp",
1299
+ "name": "activatedAt",
1300
+ "type": "uint40"
1301
+ },
1302
+ {
1303
+ "internalType": "Blocknumber",
1304
+ "name": "activatedIn",
1305
+ "type": "uint32"
1306
+ }
1307
+ ],
1308
+ "internalType": "struct IVersionable.VersionInfo",
1309
+ "name": "versionInfo",
1310
+ "type": "tuple"
1100
1311
  }
1101
1312
  ],
1102
- "name": "isValidTransition",
1313
+ "stateMutability": "view",
1314
+ "type": "function"
1315
+ },
1316
+ {
1317
+ "inputs": [],
1318
+ "name": "getZeroFee",
1103
1319
  "outputs": [
1104
1320
  {
1105
- "internalType": "bool",
1106
- "name": "",
1107
- "type": "bool"
1321
+ "components": [
1322
+ {
1323
+ "internalType": "UFixed",
1324
+ "name": "fractionalFee",
1325
+ "type": "uint256"
1326
+ },
1327
+ {
1328
+ "internalType": "uint256",
1329
+ "name": "fixedFee",
1330
+ "type": "uint256"
1331
+ }
1332
+ ],
1333
+ "internalType": "struct Fee",
1334
+ "name": "fee",
1335
+ "type": "tuple"
1108
1336
  }
1109
1337
  ],
1110
1338
  "stateMutability": "view",
@@ -1113,12 +1341,17 @@
1113
1341
  {
1114
1342
  "inputs": [
1115
1343
  {
1116
- "internalType": "NftId",
1117
- "name": "nftId",
1118
- "type": "uint96"
1344
+ "internalType": "RoleId",
1345
+ "name": "role",
1346
+ "type": "bytes8"
1347
+ },
1348
+ {
1349
+ "internalType": "address",
1350
+ "name": "member",
1351
+ "type": "address"
1119
1352
  }
1120
1353
  ],
1121
- "name": "processPremium",
1354
+ "name": "grantRole",
1122
1355
  "outputs": [],
1123
1356
  "stateMutability": "nonpayable",
1124
1357
  "type": "function"
@@ -1126,63 +1359,75 @@
1126
1359
  {
1127
1360
  "inputs": [
1128
1361
  {
1129
- "internalType": "NftId",
1130
- "name": "policyNftId",
1131
- "type": "uint96"
1362
+ "internalType": "RoleId",
1363
+ "name": "role",
1364
+ "type": "bytes8"
1132
1365
  },
1133
1366
  {
1134
- "internalType": "NftId",
1135
- "name": "productNftId",
1136
- "type": "uint96"
1367
+ "internalType": "address",
1368
+ "name": "member",
1369
+ "type": "address"
1137
1370
  }
1138
1371
  ],
1139
- "name": "processPremium",
1140
- "outputs": [],
1141
- "stateMutability": "nonpayable",
1372
+ "name": "hasRole",
1373
+ "outputs": [
1374
+ {
1375
+ "internalType": "bool",
1376
+ "name": "",
1377
+ "type": "bool"
1378
+ }
1379
+ ],
1380
+ "stateMutability": "view",
1142
1381
  "type": "function"
1143
1382
  },
1144
1383
  {
1145
- "inputs": [],
1146
- "name": "register",
1147
- "outputs": [
1384
+ "inputs": [
1148
1385
  {
1149
1386
  "internalType": "NftId",
1150
- "name": "nftId",
1387
+ "name": "productNftId",
1151
1388
  "type": "uint96"
1152
1389
  }
1153
1390
  ],
1154
- "stateMutability": "nonpayable",
1391
+ "name": "hasTreasuryInfo",
1392
+ "outputs": [
1393
+ {
1394
+ "internalType": "bool",
1395
+ "name": "hasInfo",
1396
+ "type": "bool"
1397
+ }
1398
+ ],
1399
+ "stateMutability": "view",
1155
1400
  "type": "function"
1156
1401
  },
1157
1402
  {
1158
1403
  "inputs": [
1159
1404
  {
1160
- "internalType": "contract IComponentContract",
1161
- "name": "component",
1162
- "type": "address"
1405
+ "internalType": "Version",
1406
+ "name": "version",
1407
+ "type": "uint24"
1163
1408
  }
1164
1409
  ],
1165
- "name": "registerComponent",
1410
+ "name": "isActivated",
1166
1411
  "outputs": [
1167
1412
  {
1168
- "internalType": "NftId",
1169
- "name": "nftId",
1170
- "type": "uint96"
1413
+ "internalType": "bool",
1414
+ "name": "",
1415
+ "type": "bool"
1171
1416
  }
1172
1417
  ],
1173
- "stateMutability": "nonpayable",
1418
+ "stateMutability": "view",
1174
1419
  "type": "function"
1175
1420
  },
1176
1421
  {
1177
- "inputs": [
1422
+ "inputs": [],
1423
+ "name": "register",
1424
+ "outputs": [
1178
1425
  {
1179
1426
  "internalType": "NftId",
1180
1427
  "name": "nftId",
1181
1428
  "type": "uint96"
1182
1429
  }
1183
1430
  ],
1184
- "name": "registerPool",
1185
- "outputs": [],
1186
1431
  "stateMutability": "nonpayable",
1187
1432
  "type": "function"
1188
1433
  },
@@ -1190,117 +1435,44 @@
1190
1435
  "inputs": [
1191
1436
  {
1192
1437
  "internalType": "NftId",
1193
- "name": "poolNftId",
1438
+ "name": "nftId",
1194
1439
  "type": "uint96"
1195
1440
  },
1196
1441
  {
1197
- "internalType": "address",
1198
- "name": "wallet",
1442
+ "internalType": "contract IERC20Metadata",
1443
+ "name": "token",
1199
1444
  "type": "address"
1200
1445
  },
1201
1446
  {
1202
- "components": [
1203
- {
1204
- "internalType": "UFixed",
1205
- "name": "fractionalFee",
1206
- "type": "uint256"
1207
- },
1208
- {
1209
- "internalType": "uint256",
1210
- "name": "fixedFee",
1211
- "type": "uint256"
1212
- }
1213
- ],
1214
- "internalType": "struct Fee",
1215
- "name": "stakingFee",
1216
- "type": "tuple"
1217
- },
1218
- {
1219
- "components": [
1220
- {
1221
- "internalType": "UFixed",
1222
- "name": "fractionalFee",
1223
- "type": "uint256"
1224
- },
1225
- {
1226
- "internalType": "uint256",
1227
- "name": "fixedFee",
1228
- "type": "uint256"
1229
- }
1230
- ],
1231
- "internalType": "struct Fee",
1232
- "name": "performanceFee",
1233
- "type": "tuple"
1447
+ "internalType": "address",
1448
+ "name": "wallet",
1449
+ "type": "address"
1234
1450
  }
1235
1451
  ],
1236
- "name": "registerPool",
1452
+ "name": "registerComponent",
1237
1453
  "outputs": [],
1238
1454
  "stateMutability": "nonpayable",
1239
1455
  "type": "function"
1240
1456
  },
1241
1457
  {
1242
1458
  "inputs": [
1243
- {
1244
- "internalType": "NftId",
1245
- "name": "productNftId",
1246
- "type": "uint96"
1247
- },
1248
- {
1249
- "internalType": "NftId",
1250
- "name": "distributorNftId",
1251
- "type": "uint96"
1252
- },
1253
1459
  {
1254
1460
  "internalType": "NftId",
1255
1461
  "name": "poolNftId",
1256
1462
  "type": "uint96"
1257
1463
  },
1258
1464
  {
1259
- "internalType": "contract IERC20",
1260
- "name": "token",
1261
- "type": "address"
1262
- },
1263
- {
1264
- "internalType": "address",
1265
- "name": "wallet",
1266
- "type": "address"
1267
- },
1268
- {
1269
- "components": [
1270
- {
1271
- "internalType": "UFixed",
1272
- "name": "fractionalFee",
1273
- "type": "uint256"
1274
- },
1275
- {
1276
- "internalType": "uint256",
1277
- "name": "fixedFee",
1278
- "type": "uint256"
1279
- }
1280
- ],
1281
- "internalType": "struct Fee",
1282
- "name": "policyFee",
1283
- "type": "tuple"
1465
+ "internalType": "bool",
1466
+ "name": "isVerifying",
1467
+ "type": "bool"
1284
1468
  },
1285
1469
  {
1286
- "components": [
1287
- {
1288
- "internalType": "UFixed",
1289
- "name": "fractionalFee",
1290
- "type": "uint256"
1291
- },
1292
- {
1293
- "internalType": "uint256",
1294
- "name": "fixedFee",
1295
- "type": "uint256"
1296
- }
1297
- ],
1298
- "internalType": "struct Fee",
1299
- "name": "processingFee",
1300
- "type": "tuple"
1470
+ "internalType": "UFixed",
1471
+ "name": "collateralizationLevel",
1472
+ "type": "uint256"
1301
1473
  }
1302
1474
  ],
1303
- "name": "registerProduct",
1475
+ "name": "registerPool",
1304
1476
  "outputs": [],
1305
1477
  "stateMutability": "nonpayable",
1306
1478
  "type": "function"
@@ -1308,17 +1480,22 @@
1308
1480
  {
1309
1481
  "inputs": [
1310
1482
  {
1311
- "internalType": "bytes32",
1312
- "name": "role",
1313
- "type": "bytes32"
1483
+ "internalType": "contract IProductComponent",
1484
+ "name": "product",
1485
+ "type": "address"
1314
1486
  },
1315
1487
  {
1316
- "internalType": "address",
1317
- "name": "member",
1488
+ "internalType": "contract IPoolComponent",
1489
+ "name": "pool",
1490
+ "type": "address"
1491
+ },
1492
+ {
1493
+ "internalType": "contract IDistributionComponent",
1494
+ "name": "distribution",
1318
1495
  "type": "address"
1319
1496
  }
1320
1497
  ],
1321
- "name": "revokeRole",
1498
+ "name": "registerProductSetup",
1322
1499
  "outputs": [],
1323
1500
  "stateMutability": "nonpayable",
1324
1501
  "type": "function"
@@ -1326,82 +1503,222 @@
1326
1503
  {
1327
1504
  "inputs": [
1328
1505
  {
1329
- "components": [
1330
- {
1331
- "internalType": "NftId",
1332
- "name": "nftId",
1333
- "type": "uint96"
1334
- },
1335
- {
1336
- "internalType": "StateId",
1337
- "name": "state",
1338
- "type": "uint8"
1339
- },
1340
- {
1341
- "internalType": "contract IERC20Metadata",
1342
- "name": "token",
1343
- "type": "address"
1344
- }
1345
- ],
1346
- "internalType": "struct IComponent.ComponentInfo",
1347
- "name": "info",
1348
- "type": "tuple"
1506
+ "internalType": "NftId",
1507
+ "name": "bundleNftId",
1508
+ "type": "uint96"
1509
+ },
1510
+ {
1511
+ "internalType": "NftId",
1512
+ "name": "policyNftId",
1513
+ "type": "uint96"
1349
1514
  }
1350
1515
  ],
1351
- "name": "setComponentInfo",
1516
+ "name": "releasePolicy",
1352
1517
  "outputs": [
1353
1518
  {
1354
- "internalType": "NftId",
1355
- "name": "componentNftId",
1356
- "type": "uint96"
1519
+ "internalType": "uint256",
1520
+ "name": "collateralAmount",
1521
+ "type": "uint256"
1357
1522
  }
1358
1523
  ],
1359
1524
  "stateMutability": "nonpayable",
1360
1525
  "type": "function"
1361
1526
  },
1527
+ {
1528
+ "inputs": [
1529
+ {
1530
+ "internalType": "RoleId",
1531
+ "name": "role",
1532
+ "type": "bytes8"
1533
+ },
1534
+ {
1535
+ "internalType": "address",
1536
+ "name": "member",
1537
+ "type": "address"
1538
+ }
1539
+ ],
1540
+ "name": "revokeRole",
1541
+ "outputs": [],
1542
+ "stateMutability": "nonpayable",
1543
+ "type": "function"
1544
+ },
1545
+ {
1546
+ "inputs": [
1547
+ {
1548
+ "internalType": "RoleId",
1549
+ "name": "role",
1550
+ "type": "bytes8"
1551
+ }
1552
+ ],
1553
+ "name": "roleExists",
1554
+ "outputs": [
1555
+ {
1556
+ "internalType": "bool",
1557
+ "name": "",
1558
+ "type": "bool"
1559
+ }
1560
+ ],
1561
+ "stateMutability": "view",
1562
+ "type": "function"
1563
+ },
1362
1564
  {
1363
1565
  "inputs": [
1364
1566
  {
1365
1567
  "internalType": "NftId",
1366
- "name": "poolNftId",
1568
+ "name": "nftId",
1367
1569
  "type": "uint96"
1368
1570
  },
1369
1571
  {
1370
1572
  "components": [
1371
1573
  {
1372
- "internalType": "UFixed",
1373
- "name": "fractionalFee",
1574
+ "internalType": "NftId",
1575
+ "name": "poolNftId",
1576
+ "type": "uint96"
1577
+ },
1578
+ {
1579
+ "components": [
1580
+ {
1581
+ "internalType": "UFixed",
1582
+ "name": "fractionalFee",
1583
+ "type": "uint256"
1584
+ },
1585
+ {
1586
+ "internalType": "uint256",
1587
+ "name": "fixedFee",
1588
+ "type": "uint256"
1589
+ }
1590
+ ],
1591
+ "internalType": "struct Fee",
1592
+ "name": "fee",
1593
+ "type": "tuple"
1594
+ },
1595
+ {
1596
+ "internalType": "bytes",
1597
+ "name": "filter",
1598
+ "type": "bytes"
1599
+ },
1600
+ {
1601
+ "internalType": "uint256",
1602
+ "name": "capitalAmount",
1374
1603
  "type": "uint256"
1375
1604
  },
1376
1605
  {
1377
1606
  "internalType": "uint256",
1378
- "name": "fixedFee",
1607
+ "name": "lockedAmount",
1379
1608
  "type": "uint256"
1609
+ },
1610
+ {
1611
+ "internalType": "uint256",
1612
+ "name": "balanceAmount",
1613
+ "type": "uint256"
1614
+ },
1615
+ {
1616
+ "internalType": "Timestamp",
1617
+ "name": "expiredAt",
1618
+ "type": "uint40"
1619
+ },
1620
+ {
1621
+ "internalType": "Timestamp",
1622
+ "name": "closedAt",
1623
+ "type": "uint40"
1380
1624
  }
1381
1625
  ],
1382
- "internalType": "struct Fee",
1383
- "name": "stakingFee",
1626
+ "internalType": "struct IBundle.BundleInfo",
1627
+ "name": "bundleInfo",
1384
1628
  "type": "tuple"
1629
+ }
1630
+ ],
1631
+ "name": "setBundleInfo",
1632
+ "outputs": [],
1633
+ "stateMutability": "nonpayable",
1634
+ "type": "function"
1635
+ },
1636
+ {
1637
+ "inputs": [
1638
+ {
1639
+ "internalType": "NftId",
1640
+ "name": "policyNftId",
1641
+ "type": "uint96"
1385
1642
  },
1386
1643
  {
1387
1644
  "components": [
1388
1645
  {
1389
- "internalType": "UFixed",
1390
- "name": "fractionalFee",
1646
+ "internalType": "NftId",
1647
+ "name": "productNftId",
1648
+ "type": "uint96"
1649
+ },
1650
+ {
1651
+ "internalType": "NftId",
1652
+ "name": "bundleNftId",
1653
+ "type": "uint96"
1654
+ },
1655
+ {
1656
+ "internalType": "ReferralId",
1657
+ "name": "referralId",
1658
+ "type": "bytes8"
1659
+ },
1660
+ {
1661
+ "internalType": "address",
1662
+ "name": "beneficiary",
1663
+ "type": "address"
1664
+ },
1665
+ {
1666
+ "internalType": "RiskId",
1667
+ "name": "riskId",
1668
+ "type": "bytes8"
1669
+ },
1670
+ {
1671
+ "internalType": "uint256",
1672
+ "name": "sumInsuredAmount",
1391
1673
  "type": "uint256"
1392
1674
  },
1393
1675
  {
1394
1676
  "internalType": "uint256",
1395
- "name": "fixedFee",
1677
+ "name": "premiumAmount",
1396
1678
  "type": "uint256"
1679
+ },
1680
+ {
1681
+ "internalType": "uint256",
1682
+ "name": "premiumPaidAmount",
1683
+ "type": "uint256"
1684
+ },
1685
+ {
1686
+ "internalType": "uint256",
1687
+ "name": "lifetime",
1688
+ "type": "uint256"
1689
+ },
1690
+ {
1691
+ "internalType": "bytes",
1692
+ "name": "applicationData",
1693
+ "type": "bytes"
1694
+ },
1695
+ {
1696
+ "internalType": "bytes",
1697
+ "name": "policyData",
1698
+ "type": "bytes"
1699
+ },
1700
+ {
1701
+ "internalType": "Timestamp",
1702
+ "name": "activatedAt",
1703
+ "type": "uint40"
1704
+ },
1705
+ {
1706
+ "internalType": "Timestamp",
1707
+ "name": "expiredAt",
1708
+ "type": "uint40"
1709
+ },
1710
+ {
1711
+ "internalType": "Timestamp",
1712
+ "name": "closedAt",
1713
+ "type": "uint40"
1397
1714
  }
1398
1715
  ],
1399
- "internalType": "struct Fee",
1400
- "name": "performanceFee",
1716
+ "internalType": "struct IPolicy.PolicyInfo",
1717
+ "name": "info",
1401
1718
  "type": "tuple"
1402
1719
  }
1403
1720
  ],
1404
- "name": "setPoolFees",
1721
+ "name": "setPolicyInfo",
1405
1722
  "outputs": [],
1406
1723
  "stateMutability": "nonpayable",
1407
1724
  "type": "function"
@@ -1409,64 +1726,275 @@
1409
1726
  {
1410
1727
  "inputs": [
1411
1728
  {
1412
- "internalType": "NftId",
1413
- "name": "productNftId",
1414
- "type": "uint96"
1729
+ "internalType": "RiskId",
1730
+ "name": "riskId",
1731
+ "type": "bytes8"
1415
1732
  },
1416
1733
  {
1417
1734
  "components": [
1418
1735
  {
1419
- "internalType": "UFixed",
1420
- "name": "fractionalFee",
1421
- "type": "uint256"
1736
+ "internalType": "NftId",
1737
+ "name": "productNftId",
1738
+ "type": "uint96"
1422
1739
  },
1423
1740
  {
1424
- "internalType": "uint256",
1425
- "name": "fixedFee",
1426
- "type": "uint256"
1741
+ "internalType": "bytes",
1742
+ "name": "data",
1743
+ "type": "bytes"
1427
1744
  }
1428
1745
  ],
1429
- "internalType": "struct Fee",
1430
- "name": "policyFee",
1746
+ "internalType": "struct IRisk.RiskInfo",
1747
+ "name": "info",
1431
1748
  "type": "tuple"
1749
+ }
1750
+ ],
1751
+ "name": "setRiskInfo",
1752
+ "outputs": [],
1753
+ "stateMutability": "nonpayable",
1754
+ "type": "function"
1755
+ },
1756
+ {
1757
+ "inputs": [
1758
+ {
1759
+ "internalType": "RoleId",
1760
+ "name": "role",
1761
+ "type": "bytes8"
1762
+ },
1763
+ {
1764
+ "internalType": "bool",
1765
+ "name": "active",
1766
+ "type": "bool"
1767
+ }
1768
+ ],
1769
+ "name": "setRoleState",
1770
+ "outputs": [],
1771
+ "stateMutability": "nonpayable",
1772
+ "type": "function"
1773
+ },
1774
+ {
1775
+ "inputs": [
1776
+ {
1777
+ "internalType": "NftId",
1778
+ "name": "productNftId",
1779
+ "type": "uint96"
1432
1780
  },
1433
1781
  {
1434
1782
  "components": [
1435
1783
  {
1436
- "internalType": "UFixed",
1437
- "name": "fractionalFee",
1438
- "type": "uint256"
1784
+ "internalType": "NftId",
1785
+ "name": "poolNftId",
1786
+ "type": "uint96"
1439
1787
  },
1440
1788
  {
1441
- "internalType": "uint256",
1442
- "name": "fixedFee",
1443
- "type": "uint256"
1789
+ "internalType": "NftId",
1790
+ "name": "distributionNftId",
1791
+ "type": "uint96"
1792
+ },
1793
+ {
1794
+ "internalType": "contract IERC20Metadata",
1795
+ "name": "token",
1796
+ "type": "address"
1797
+ },
1798
+ {
1799
+ "components": [
1800
+ {
1801
+ "internalType": "UFixed",
1802
+ "name": "fractionalFee",
1803
+ "type": "uint256"
1804
+ },
1805
+ {
1806
+ "internalType": "uint256",
1807
+ "name": "fixedFee",
1808
+ "type": "uint256"
1809
+ }
1810
+ ],
1811
+ "internalType": "struct Fee",
1812
+ "name": "productFee",
1813
+ "type": "tuple"
1814
+ },
1815
+ {
1816
+ "components": [
1817
+ {
1818
+ "internalType": "UFixed",
1819
+ "name": "fractionalFee",
1820
+ "type": "uint256"
1821
+ },
1822
+ {
1823
+ "internalType": "uint256",
1824
+ "name": "fixedFee",
1825
+ "type": "uint256"
1826
+ }
1827
+ ],
1828
+ "internalType": "struct Fee",
1829
+ "name": "processingFee",
1830
+ "type": "tuple"
1831
+ },
1832
+ {
1833
+ "components": [
1834
+ {
1835
+ "internalType": "UFixed",
1836
+ "name": "fractionalFee",
1837
+ "type": "uint256"
1838
+ },
1839
+ {
1840
+ "internalType": "uint256",
1841
+ "name": "fixedFee",
1842
+ "type": "uint256"
1843
+ }
1844
+ ],
1845
+ "internalType": "struct Fee",
1846
+ "name": "poolFee",
1847
+ "type": "tuple"
1848
+ },
1849
+ {
1850
+ "components": [
1851
+ {
1852
+ "internalType": "UFixed",
1853
+ "name": "fractionalFee",
1854
+ "type": "uint256"
1855
+ },
1856
+ {
1857
+ "internalType": "uint256",
1858
+ "name": "fixedFee",
1859
+ "type": "uint256"
1860
+ }
1861
+ ],
1862
+ "internalType": "struct Fee",
1863
+ "name": "stakingFee",
1864
+ "type": "tuple"
1865
+ },
1866
+ {
1867
+ "components": [
1868
+ {
1869
+ "internalType": "UFixed",
1870
+ "name": "fractionalFee",
1871
+ "type": "uint256"
1872
+ },
1873
+ {
1874
+ "internalType": "uint256",
1875
+ "name": "fixedFee",
1876
+ "type": "uint256"
1877
+ }
1878
+ ],
1879
+ "internalType": "struct Fee",
1880
+ "name": "performanceFee",
1881
+ "type": "tuple"
1882
+ },
1883
+ {
1884
+ "components": [
1885
+ {
1886
+ "internalType": "UFixed",
1887
+ "name": "fractionalFee",
1888
+ "type": "uint256"
1889
+ },
1890
+ {
1891
+ "internalType": "uint256",
1892
+ "name": "fixedFee",
1893
+ "type": "uint256"
1894
+ }
1895
+ ],
1896
+ "internalType": "struct Fee",
1897
+ "name": "distributionFee",
1898
+ "type": "tuple"
1444
1899
  }
1445
1900
  ],
1446
- "internalType": "struct Fee",
1447
- "name": "processingFee",
1901
+ "internalType": "struct ITreasury.TreasuryInfo",
1902
+ "name": "info",
1448
1903
  "type": "tuple"
1449
1904
  }
1450
1905
  ],
1451
- "name": "setProductFees",
1906
+ "name": "setTreasuryInfo",
1452
1907
  "outputs": [],
1453
1908
  "stateMutability": "nonpayable",
1454
1909
  "type": "function"
1455
1910
  },
1911
+ {
1912
+ "inputs": [
1913
+ {
1914
+ "internalType": "bytes4",
1915
+ "name": "interfaceId",
1916
+ "type": "bytes4"
1917
+ }
1918
+ ],
1919
+ "name": "supportsInterface",
1920
+ "outputs": [
1921
+ {
1922
+ "internalType": "bool",
1923
+ "name": "",
1924
+ "type": "bool"
1925
+ }
1926
+ ],
1927
+ "stateMutability": "view",
1928
+ "type": "function"
1929
+ },
1456
1930
  {
1457
1931
  "inputs": [
1458
1932
  {
1459
1933
  "internalType": "NftId",
1460
- "name": "policyNftId",
1934
+ "name": "nftId",
1461
1935
  "type": "uint96"
1462
1936
  },
1937
+ {
1938
+ "internalType": "StateId",
1939
+ "name": "state",
1940
+ "type": "uint8"
1941
+ }
1942
+ ],
1943
+ "name": "updateBundleState",
1944
+ "outputs": [],
1945
+ "stateMutability": "nonpayable",
1946
+ "type": "function"
1947
+ },
1948
+ {
1949
+ "inputs": [
1463
1950
  {
1464
1951
  "internalType": "NftId",
1465
- "name": "productNftId",
1952
+ "name": "nftId",
1466
1953
  "type": "uint96"
1954
+ },
1955
+ {
1956
+ "internalType": "StateId",
1957
+ "name": "state",
1958
+ "type": "uint8"
1959
+ }
1960
+ ],
1961
+ "name": "updatePolicyState",
1962
+ "outputs": [],
1963
+ "stateMutability": "nonpayable",
1964
+ "type": "function"
1965
+ },
1966
+ {
1967
+ "inputs": [
1968
+ {
1969
+ "internalType": "RiskId",
1970
+ "name": "riskId",
1971
+ "type": "bytes8"
1972
+ },
1973
+ {
1974
+ "internalType": "StateId",
1975
+ "name": "state",
1976
+ "type": "uint8"
1977
+ }
1978
+ ],
1979
+ "name": "updateRiskState",
1980
+ "outputs": [],
1981
+ "stateMutability": "nonpayable",
1982
+ "type": "function"
1983
+ },
1984
+ {
1985
+ "inputs": [
1986
+ {
1987
+ "internalType": "Key32",
1988
+ "name": "key",
1989
+ "type": "bytes32"
1990
+ },
1991
+ {
1992
+ "internalType": "StateId",
1993
+ "name": "state",
1994
+ "type": "uint8"
1467
1995
  }
1468
1996
  ],
1469
- "name": "underwrite",
1997
+ "name": "updateState",
1470
1998
  "outputs": [],
1471
1999
  "stateMutability": "nonpayable",
1472
2000
  "type": "function"