@etherisc/gif-next 0.0.2-8daf0fe-431 → 0.0.2-8e283ec-993

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 (451) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +38 -52
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +8 -8
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +0 -19
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  15. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +8 -8
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +23 -4
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -248
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +18 -18
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -222
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +228 -217
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +93 -101
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -37
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
  33. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  34. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  35. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1545 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1980 -0
  41. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  42. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  44. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -6
  45. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  46. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +5 -5
  47. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  48. package/artifacts/contracts/instance/Instance.sol/Instance.json +17 -106
  49. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  50. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +102 -100
  51. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  53. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +467 -127
  55. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  56. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -151
  57. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +61 -81
  59. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +255 -240
  61. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  63. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  66. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  68. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  70. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  76. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  77. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  78. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -235
  80. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +21 -21
  82. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -37
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -219
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +37 -144
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -80
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +79 -280
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +407 -174
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +137 -89
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -94
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +293 -104
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +69 -276
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +396 -253
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +90 -82
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +36 -162
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +57 -89
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +47 -248
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +212 -181
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +92 -100
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +120 -6
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +266 -119
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +47 -63
  134. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  135. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +358 -318
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +97 -101
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +118 -265
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +80 -120
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  145. package/artifacts/contracts/product/Product.sol/Product.json +47 -248
  146. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  147. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  148. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +276 -9
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  158. package/artifacts/contracts/registry/Registry.sol/Registry.json +495 -67
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +251 -134
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -313
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +52 -72
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -7
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  173. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  174. package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -161
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +105 -95
  179. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +5 -112
  181. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  182. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  183. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -37
  189. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  191. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  199. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  200. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  201. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  202. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  203. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -222
  204. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  205. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  206. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  208. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  210. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
  212. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  214. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
  216. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  218. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Service.sol/Service.json +5 -112
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  222. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  227. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  229. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  230. package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
  231. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  233. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +77 -88
  235. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  237. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -138
  239. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +56 -76
  241. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  243. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
  245. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +14 -14
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  279. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  281. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  291. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  296. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  298. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  303. package/contracts/authorization/AccessAdmin.sol +28 -24
  304. package/contracts/authorization/Authorization.sol +5 -2
  305. package/contracts/authorization/IAccessAdmin.sol +0 -1
  306. package/contracts/authorization/IServiceAuthorization.sol +3 -0
  307. package/contracts/authorization/ServiceAuthorization.sol +4 -0
  308. package/contracts/distribution/BasicDistribution.sol +4 -15
  309. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  310. package/contracts/distribution/Distribution.sol +23 -11
  311. package/contracts/distribution/DistributionService.sol +76 -42
  312. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  313. package/contracts/distribution/IDistributionComponent.sol +8 -4
  314. package/contracts/distribution/IDistributionService.sol +18 -2
  315. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  316. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  317. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  318. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  319. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  320. package/contracts/instance/IInstance.sol +11 -34
  321. package/contracts/instance/IInstanceService.sol +5 -5
  322. package/contracts/instance/Instance.sol +13 -38
  323. package/contracts/instance/InstanceAdmin.sol +31 -9
  324. package/contracts/instance/InstanceAuthorizationV3.sol +16 -14
  325. package/contracts/instance/InstanceReader.sol +125 -11
  326. package/contracts/instance/InstanceService.sol +71 -49
  327. package/contracts/instance/InstanceServiceManager.sol +8 -13
  328. package/contracts/instance/InstanceStore.sol +18 -4
  329. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  330. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  331. package/contracts/instance/module/IBundle.sol +1 -1
  332. package/contracts/instance/module/IComponents.sol +4 -8
  333. package/contracts/instance/module/IDistribution.sol +0 -1
  334. package/contracts/instance/module/IPolicy.sol +24 -24
  335. package/contracts/mock/Dip.sol +1 -1
  336. package/contracts/oracle/IOracleComponent.sol +2 -1
  337. package/contracts/oracle/Oracle.sol +17 -7
  338. package/contracts/oracle/OracleService.sol +11 -8
  339. package/contracts/oracle/OracleServiceManager.sol +8 -11
  340. package/contracts/pool/BasicPool.sol +7 -5
  341. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  342. package/contracts/pool/BundleService.sol +197 -55
  343. package/contracts/pool/BundleServiceManager.sol +8 -11
  344. package/contracts/pool/IBundleService.sol +33 -5
  345. package/contracts/pool/IPoolComponent.sol +24 -8
  346. package/contracts/pool/IPoolService.sol +55 -34
  347. package/contracts/pool/Pool.sol +72 -30
  348. package/contracts/pool/PoolService.sol +223 -127
  349. package/contracts/pool/PoolServiceManager.sol +6 -9
  350. package/contracts/product/ApplicationService.sol +62 -65
  351. package/contracts/product/ApplicationServiceManager.sol +6 -6
  352. package/contracts/product/BasicProduct.sol +3 -32
  353. package/contracts/product/BasicProductAuthorization.sol +3 -0
  354. package/contracts/product/ClaimService.sol +243 -112
  355. package/contracts/product/ClaimServiceManager.sol +6 -6
  356. package/contracts/product/IApplicationService.sol +1 -0
  357. package/contracts/product/IClaimService.sol +29 -6
  358. package/contracts/product/IPolicyService.sol +31 -32
  359. package/contracts/product/IPricingService.sol +7 -7
  360. package/contracts/product/IProductComponent.sol +18 -4
  361. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  362. package/contracts/product/PolicyService.sol +361 -190
  363. package/contracts/product/PolicyServiceManager.sol +6 -9
  364. package/contracts/product/PricingService.sol +46 -46
  365. package/contracts/product/PricingServiceManager.sol +5 -8
  366. package/contracts/product/Product.sol +90 -50
  367. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  368. package/contracts/product/RiskServiceManager.sol +39 -0
  369. package/contracts/registry/ChainNft.sol +65 -32
  370. package/contracts/registry/IRegistry.sol +65 -16
  371. package/contracts/registry/IRegistryService.sol +0 -9
  372. package/contracts/registry/Registry.sol +340 -211
  373. package/contracts/registry/RegistryAdmin.sol +172 -71
  374. package/contracts/registry/RegistryService.sol +59 -66
  375. package/contracts/registry/RegistryServiceManager.sol +4 -4
  376. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  377. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +155 -182
  378. package/contracts/registry/ServiceAuthorizationV3.sol +7 -8
  379. package/contracts/registry/TokenRegistry.sol +2 -2
  380. package/contracts/shared/Component.sol +30 -43
  381. package/contracts/shared/ComponentService.sol +90 -28
  382. package/contracts/shared/ComponentServiceManager.sol +10 -7
  383. package/contracts/shared/ComponentVerifyingService.sol +2 -3
  384. package/contracts/shared/ContractLib.sol +38 -0
  385. package/contracts/shared/IComponent.sol +4 -4
  386. package/contracts/shared/IComponentService.sol +15 -9
  387. package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
  388. package/contracts/shared/IKeyValueStore.sol +1 -0
  389. package/contracts/shared/ILifecycle.sol +1 -2
  390. package/contracts/shared/IPolicyHolder.sol +12 -22
  391. package/contracts/shared/IService.sol +1 -1
  392. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  393. package/contracts/shared/InstanceLinkedComponent.sol +26 -6
  394. package/contracts/shared/KeyValueStore.sol +6 -2
  395. package/contracts/shared/Lifecycle.sol +16 -69
  396. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  397. package/contracts/shared/NftOwnable.sol +7 -7
  398. package/contracts/shared/PolicyHolder.sol +17 -57
  399. package/contracts/shared/Registerable.sol +4 -4
  400. package/contracts/shared/RegistryLinked.sol +3 -2
  401. package/contracts/shared/Service.sol +19 -15
  402. package/contracts/shared/TokenHandler.sol +100 -19
  403. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  404. package/contracts/staking/IStaking.sol +3 -3
  405. package/contracts/staking/IStakingService.sol +12 -5
  406. package/contracts/staking/StakeManagerLib.sol +18 -25
  407. package/contracts/staking/Staking.sol +27 -42
  408. package/contracts/staking/StakingLifecycle.sol +23 -0
  409. package/contracts/staking/StakingManager.sol +10 -12
  410. package/contracts/staking/StakingReader.sol +12 -16
  411. package/contracts/staking/StakingService.sol +10 -14
  412. package/contracts/staking/StakingServiceManager.sol +4 -4
  413. package/contracts/staking/StakingStore.sol +15 -23
  414. package/contracts/staking/TargetManagerLib.sol +7 -3
  415. package/contracts/type/Amount.sol +12 -5
  416. package/contracts/type/Blocknumber.sol +7 -1
  417. package/contracts/type/ObjectType.sol +18 -18
  418. package/contracts/type/PayoutId.sol +10 -10
  419. package/contracts/type/Referral.sol +1 -0
  420. package/contracts/type/Seconds.sol +21 -1
  421. package/contracts/type/StateId.sol +1 -0
  422. package/contracts/type/Timestamp.sol +11 -1
  423. package/contracts/type/UFixed.sol +33 -10
  424. package/contracts/type/Version.sol +3 -1
  425. package/contracts/{shared → upgradeability}/ProxyManager.sol +70 -38
  426. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  427. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  428. package/package.json +3 -3
  429. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  430. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  431. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  432. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  433. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  434. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  435. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  436. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  437. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  438. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  439. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1140
  440. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  441. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  442. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  443. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  444. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  445. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  446. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  447. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  448. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  449. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  450. package/contracts/product/ProductServiceManager.sol +0 -42
  451. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {DistributionService} from "./DistributionService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract DistributionServiceManager is ProxyManager {
12
9
 
@@ -15,15 +12,15 @@ contract DistributionServiceManager is ProxyManager {
15
12
  /// @dev initializes proxy manager with distribution service implementation and deploys instance
16
13
  constructor(
17
14
  address authority,
18
- address registryAddress,
15
+ address registry,
19
16
  bytes32 salt
20
17
  )
21
- ProxyManager(registryAddress)
22
18
  {
23
- DistributionService distSrv = new DistributionService{salt: salt}();
24
- bytes memory data = abi.encode(registryAddress, address(this), authority);
25
- IVersionable versionable = deployDetermenistic(
26
- address(distSrv),
19
+ DistributionService svc = new DistributionService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
27
24
  data,
28
25
  salt);
29
26
 
@@ -1,13 +1,11 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Fee} from "../type/Fee.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
5
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
- import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
6
  import {NftId} from "../type/NftId.sol";
8
- import {DistributorType} from "../type/DistributorType.sol";
7
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
9
8
  import {UFixed} from "../type/UFixed.sol";
10
- import {Timestamp} from "../type/Timestamp.sol";
11
9
 
12
10
  interface IDistributionComponent is IInstanceLinkedComponent {
13
11
 
@@ -45,4 +43,10 @@ interface IDistributionComponent is IInstanceLinkedComponent {
45
43
 
46
44
  /// @dev Returns true to ensure component is called when transferring distributor Nft Ids.
47
45
  function isVerifying() external view returns (bool verifying);
46
+
47
+ /// @dev Withdraw commission for the distributor
48
+ /// @param distributorNftId the distributor Nft Id
49
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
50
+ /// @return withdrawnAmount the effective withdrawn amount
51
+ function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
48
52
  }
@@ -3,7 +3,6 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
- import {Fee} from "../type/Fee.sol";
7
6
  import {IPolicy} from "../instance/module/IPolicy.sol";
8
7
  import {IService} from "../shared/IService.sol";
9
8
  import {UFixed} from "../type/UFixed.sol";
@@ -27,12 +26,16 @@ interface IDistributionService is IService {
27
26
  error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
28
27
  error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
29
28
 
29
+ error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
30
+
30
31
  error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
31
32
  error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
32
33
 
33
34
  error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
34
35
  error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
35
36
 
37
+ event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
38
+
36
39
  function createDistributorType(
37
40
  string memory name,
38
41
  UFixed minDiscountPercentage,
@@ -71,15 +74,28 @@ interface IDistributionService is IService {
71
74
  external
72
75
  returns (ReferralId referralId);
73
76
 
77
+ /// @dev callback from product service when a referral is used.
78
+ /// Calling this will increment the referral usage counter.
79
+ function processReferral(
80
+ NftId distributionNftId,
81
+ ReferralId referralId
82
+ ) external;
83
+
74
84
  /// @dev callback from product service when selling a policy for a specific referralId
75
85
  function processSale(
76
86
  NftId distributionNftId,
77
87
  ReferralId referralId,
78
- IPolicy.Premium memory premium
88
+ IPolicy.PremiumInfo memory premium
79
89
  ) external;
80
90
 
81
91
  function referralIsValid(
82
92
  NftId distributorNftId,
83
93
  ReferralId referralId
84
94
  ) external view returns (bool isValid);
95
+
96
+ /// @dev Withdraw commission for the distributor
97
+ /// @param distributorNftId the distributor Nft Id
98
+ /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
99
+ /// @return withdrawnAmount the effective withdrawn amount
100
+ function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
85
101
  }
@@ -0,0 +1,50 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
5
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+
8
+
9
+ contract SimpleDistribution is
10
+ BasicDistribution
11
+ {
12
+
13
+ constructor(
14
+ address registry,
15
+ NftId instanceNftId,
16
+ IAuthorization authorization,
17
+ address initialOwner,
18
+ address token
19
+ )
20
+ {
21
+ initialize(
22
+ registry,
23
+ instanceNftId,
24
+ authorization,
25
+ initialOwner,
26
+ "SimpleDistribution",
27
+ token);
28
+ }
29
+
30
+ function initialize(
31
+ address registry,
32
+ NftId instanceNftId,
33
+ IAuthorization authorization,
34
+ address initialOwner,
35
+ string memory name,
36
+ address token
37
+ )
38
+ public
39
+ virtual
40
+ initializer()
41
+ {
42
+ _initializeBasicDistribution(
43
+ registry,
44
+ instanceNftId,
45
+ authorization,
46
+ initialOwner,
47
+ name,
48
+ token);
49
+ }
50
+ }
@@ -0,0 +1,137 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {BasicOracle} from "../../oracle/BasicOracle.sol";
7
+ import {RequestId} from "../../type/RequestId.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
+
10
+ contract SimpleOracle is
11
+ BasicOracle
12
+ {
13
+
14
+ string public constant ANSWER_SYNC = "oracle constant sync answer";
15
+
16
+ struct SimpleRequest {
17
+ bool synchronous;
18
+ string text;
19
+ }
20
+
21
+ struct SimpleResponse {
22
+ bool revertInCall;
23
+ Timestamp revertUntil;
24
+ string text;
25
+ }
26
+
27
+ event LogSimpleOracleRequestReceived(RequestId requestId, NftId requesterId, bool synchronous, string requestText);
28
+ event LogSimpleOracleCancellingReceived(RequestId requestId);
29
+
30
+ event LogSimpleOracleAsyncResponseSent(RequestId requestId, string responseText);
31
+ event LogSimpleOracleSyncResponseSent(RequestId requestId, string responseText);
32
+
33
+ constructor(
34
+ address registry,
35
+ NftId instanceNftId,
36
+ IAuthorization authorization,
37
+ address initialOwner,
38
+ address token
39
+ )
40
+ {
41
+ initialize(
42
+ registry,
43
+ instanceNftId,
44
+ authorization,
45
+ initialOwner,
46
+ "SimpleOracle",
47
+ token
48
+ );
49
+ }
50
+
51
+ function initialize(
52
+ address registry,
53
+ NftId instanceNftId,
54
+ IAuthorization authorization,
55
+ address initialOwner,
56
+ string memory name,
57
+ address token
58
+ )
59
+ public
60
+ virtual
61
+ initializer()
62
+ {
63
+ _initializeBasicOracle(
64
+ registry,
65
+ instanceNftId,
66
+ authorization,
67
+ initialOwner,
68
+ name,
69
+ token);
70
+ }
71
+
72
+ /// @dev use case specific handling of oracle requests
73
+ /// for now only log is emitted to verify that request has been received by oracle component
74
+ function _request(
75
+ RequestId requestId,
76
+ NftId requesterId,
77
+ bytes calldata requestData,
78
+ Timestamp expiryAt
79
+ )
80
+ internal
81
+ virtual override
82
+ {
83
+ SimpleRequest memory request = abi.decode(requestData, (SimpleRequest));
84
+
85
+ if (request.synchronous) {
86
+ _respondSync(requestId);
87
+ }
88
+
89
+ emit LogSimpleOracleRequestReceived(requestId, requesterId, request.synchronous, request.text);
90
+ }
91
+
92
+
93
+ /// @dev use case specific handling of oracle requests
94
+ /// for now only log is emitted to verify that cancelling has been received by oracle component
95
+ function _cancel(
96
+ RequestId requestId
97
+ )
98
+ internal
99
+ virtual override
100
+ {
101
+ emit LogSimpleOracleCancellingReceived(requestId);
102
+ }
103
+
104
+
105
+ function respondAsync(
106
+ RequestId requestId,
107
+ string memory responseText,
108
+ bool revertInCall,
109
+ Timestamp revertUntil
110
+ )
111
+ external
112
+ // permissionless, no restricted() for now
113
+ {
114
+ bytes memory responseData = abi.encode(
115
+ SimpleResponse(
116
+ revertInCall,
117
+ revertUntil,
118
+ responseText));
119
+
120
+ _respond(requestId, responseData);
121
+
122
+ emit LogSimpleOracleAsyncResponseSent(requestId, responseText);
123
+ }
124
+
125
+
126
+ function _respondSync(
127
+ RequestId requestId
128
+ )
129
+ internal
130
+ {
131
+ bytes memory responseData = abi.encode(ANSWER_SYNC);
132
+ _respond(requestId, responseData);
133
+
134
+ emit LogSimpleOracleSyncResponseSent(requestId, ANSWER_SYNC);
135
+ }
136
+
137
+ }
@@ -0,0 +1,76 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "../../type/Amount.sol";
5
+ import {BasicPool} from "../../pool/BasicPool.sol";
6
+ import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {IAuthorization} from "../../authorization/IAuthorization.sol";
9
+ import {NftId} from "../../type/NftId.sol";
10
+ import {Seconds} from "../../type/Timestamp.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
12
+
13
+ contract SimplePool is
14
+ BasicPool
15
+ {
16
+
17
+ constructor(
18
+ address registry,
19
+ NftId instanceNftId,
20
+ address token,
21
+ IAuthorization authorization,
22
+ address initialOwner
23
+ )
24
+ {
25
+ initialize(
26
+ registry,
27
+ instanceNftId,
28
+ token,
29
+ authorization,
30
+ initialOwner
31
+ );
32
+ }
33
+
34
+ function initialize(
35
+ address registry,
36
+ NftId instanceNftId,
37
+ address token,
38
+ IAuthorization authorization,
39
+ address initialOwner
40
+ )
41
+ public
42
+ virtual
43
+ initializer()
44
+ {
45
+ _initializeBasicPool(
46
+ registry,
47
+ instanceNftId,
48
+ authorization,
49
+ token,
50
+ "SimplePool",
51
+ initialOwner);
52
+ }
53
+
54
+ function createBundle(
55
+ Fee memory fee,
56
+ uint256 initialAmount,
57
+ Seconds lifetime,
58
+ bytes calldata filter
59
+ )
60
+ external
61
+ virtual
62
+ returns(NftId bundleNftId, uint256 netStakedAmountInt)
63
+ {
64
+ address owner = msg.sender;
65
+ Amount netStakedAmount;
66
+ bundleNftId = _createBundle(
67
+ owner,
68
+ fee,
69
+ lifetime,
70
+ filter
71
+ );
72
+ netStakedAmount = _stake(bundleNftId, AmountLib.toAmount(initialAmount));
73
+ netStakedAmountInt = netStakedAmount.toInt();
74
+ }
75
+
76
+ }