@etherisc/gif-next 0.0.2-fca9315-260 → 0.0.2-fd4931b-974

Sign up to get free protection for your applications and to get access to all the features.
Files changed (535) hide show
  1. package/README.md +8 -13
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components/Pool.sol/Pool.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +366 -367
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +267 -1594
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +285 -211
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +412 -2526
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +480 -166
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +610 -421
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +438 -399
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +348 -106
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +58 -75
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  42. package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
  52. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +257 -288
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  55. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +565 -186
  56. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
  58. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  59. package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  65. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +211 -212
  74. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  76. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  77. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +237 -302
  78. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +530 -0
  80. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  81. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +351 -311
  82. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  83. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +112 -172
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  85. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
  92. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  93. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +857 -214
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +158 -13
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +337 -225
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  106. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.json +277 -30
  108. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  109. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +74 -61
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +465 -267
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +334 -93
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +634 -69
  116. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +448 -50
  120. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  122. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  123. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +321 -280
  124. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  125. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
  126. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
  128. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +215 -226
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  131. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  132. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +205 -228
  134. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  135. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
  136. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  137. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +203 -160
  138. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
  140. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  142. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  143. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
  144. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  146. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -29
  148. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  149. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  150. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  151. package/artifacts/contracts/shared/IService.sol/IService.json +71 -160
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  154. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  155. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
  156. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  157. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
  158. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  159. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  160. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  161. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +314 -0
  162. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +102 -35
  164. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  165. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  166. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -74
  168. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +125 -60
  170. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  171. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  172. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Service.sol/Service.json +172 -160
  174. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  175. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  176. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  177. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  178. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  180. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  181. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1770 -0
  182. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  183. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → staking/IStakingService.sol/IStakingService.json} +261 -238
  184. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  185. package/artifacts/contracts/staking/Staking.sol/Staking.json +2500 -0
  186. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  187. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +844 -0
  188. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  189. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -0
  190. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  191. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +960 -0
  192. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  193. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +694 -0
  194. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  195. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +308 -0
  196. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  197. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  198. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  199. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  200. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  201. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +16 -3
  202. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  203. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  204. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  205. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  206. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  207. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  208. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  209. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  210. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  211. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
  212. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  214. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  215. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  216. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  217. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  218. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  219. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  220. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  221. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  222. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  223. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  224. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +148 -0
  226. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  227. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  228. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  230. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  231. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  232. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  233. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  234. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  235. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  236. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  238. package/contracts/distribution/Distribution.sol +263 -0
  239. package/contracts/distribution/DistributionService.sol +298 -0
  240. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +15 -12
  241. package/contracts/distribution/IDistributionComponent.sol +66 -0
  242. package/contracts/distribution/IDistributionService.sol +81 -0
  243. package/contracts/instance/BundleManager.sol +15 -14
  244. package/contracts/instance/IInstance.sol +49 -44
  245. package/contracts/instance/IInstanceService.sol +57 -15
  246. package/contracts/instance/Instance.sol +138 -179
  247. package/contracts/instance/InstanceAccessManager.sol +406 -161
  248. package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
  249. package/contracts/instance/InstanceReader.sol +135 -62
  250. package/contracts/instance/InstanceService.sol +240 -305
  251. package/contracts/instance/InstanceServiceManager.sol +12 -22
  252. package/contracts/instance/InstanceStore.sol +260 -0
  253. package/contracts/instance/base/BalanceStore.sol +118 -0
  254. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  255. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
  256. package/contracts/instance/module/IAccess.sol +24 -18
  257. package/contracts/instance/module/IBundle.sol +8 -8
  258. package/contracts/instance/module/IComponents.sol +52 -0
  259. package/contracts/instance/module/IDistribution.sol +7 -4
  260. package/contracts/instance/module/IPolicy.sol +56 -17
  261. package/contracts/instance/module/IRisk.sol +1 -1
  262. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  263. package/contracts/pool/BundleService.sol +296 -0
  264. package/contracts/pool/BundleServiceManager.sol +42 -0
  265. package/contracts/pool/IBundleService.sol +106 -0
  266. package/contracts/pool/IPoolComponent.sol +112 -0
  267. package/contracts/pool/IPoolService.sol +147 -0
  268. package/contracts/pool/Pool.sol +299 -0
  269. package/contracts/pool/PoolService.sol +424 -0
  270. package/contracts/pool/PoolServiceManager.sol +42 -0
  271. package/contracts/product/ApplicationService.sol +254 -0
  272. package/contracts/product/ApplicationServiceManager.sol +38 -0
  273. package/contracts/product/ClaimService.sol +437 -0
  274. package/contracts/product/ClaimServiceManager.sol +38 -0
  275. package/contracts/product/IApplicationService.sol +62 -0
  276. package/contracts/product/IClaimService.sol +93 -0
  277. package/contracts/product/IPolicyService.sol +78 -0
  278. package/contracts/product/IPricingService.sol +39 -0
  279. package/contracts/product/IProductComponent.sol +42 -0
  280. package/contracts/product/IProductService.sol +33 -0
  281. package/contracts/product/PolicyService.sol +473 -0
  282. package/contracts/product/PolicyServiceManager.sol +42 -0
  283. package/contracts/product/PricingService.sol +301 -0
  284. package/contracts/product/PricingServiceManager.sol +42 -0
  285. package/contracts/product/Product.sol +377 -0
  286. package/contracts/product/ProductService.sol +124 -0
  287. package/contracts/product/ProductServiceManager.sol +42 -0
  288. package/contracts/registry/ChainNft.sol +15 -1
  289. package/contracts/registry/IRegistry.sol +38 -18
  290. package/contracts/registry/IRegistryService.sol +41 -38
  291. package/contracts/registry/ITransferInterceptor.sol +1 -0
  292. package/contracts/registry/Registry.sol +193 -82
  293. package/contracts/registry/RegistryAccessManager.sol +72 -121
  294. package/contracts/registry/RegistryService.sol +164 -98
  295. package/contracts/registry/RegistryServiceManager.sol +28 -18
  296. package/contracts/registry/ReleaseManager.sol +390 -192
  297. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  298. package/contracts/registry/TokenRegistry.sol +263 -56
  299. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  300. package/contracts/shared/Component.sol +286 -0
  301. package/contracts/shared/ComponentService.sol +595 -0
  302. package/contracts/shared/ComponentServiceManager.sol +35 -0
  303. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  304. package/contracts/shared/ERC165.sol +14 -12
  305. package/contracts/shared/IComponent.sol +74 -0
  306. package/contracts/shared/IComponentService.sol +91 -0
  307. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  308. package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
  309. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  310. package/contracts/shared/INftOwnable.sol +12 -11
  311. package/contracts/shared/IPolicyHolder.sol +45 -0
  312. package/contracts/shared/IRegisterable.sol +3 -3
  313. package/contracts/shared/IRegistryLinked.sol +11 -0
  314. package/contracts/shared/IService.sol +6 -4
  315. package/contracts/shared/IVersionable.sol +5 -48
  316. package/contracts/shared/InstanceLinkedComponent.sol +145 -0
  317. package/contracts/shared/KeyValueStore.sol +130 -0
  318. package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
  319. package/contracts/shared/NftIdSetManager.sol +69 -0
  320. package/contracts/shared/NftOwnable.sol +64 -85
  321. package/contracts/shared/PolicyHolder.sol +101 -0
  322. package/contracts/shared/ProxyManager.sol +126 -25
  323. package/contracts/shared/Registerable.sol +19 -30
  324. package/contracts/shared/RegistryLinked.sol +43 -0
  325. package/contracts/shared/Service.sol +37 -20
  326. package/contracts/shared/TokenHandler.sol +37 -6
  327. package/contracts/shared/Versionable.sol +4 -92
  328. package/contracts/staking/IStaking.sol +113 -0
  329. package/contracts/staking/IStakingService.sol +122 -0
  330. package/contracts/staking/Staking.sol +348 -0
  331. package/contracts/staking/StakingManager.sol +52 -0
  332. package/contracts/staking/StakingReader.sol +92 -0
  333. package/contracts/staking/StakingService.sol +294 -0
  334. package/contracts/staking/StakingServiceManager.sol +44 -0
  335. package/contracts/staking/TargetManagerLib.sol +141 -0
  336. package/contracts/type/Amount.sol +114 -0
  337. package/contracts/{types → type}/Blocknumber.sol +7 -1
  338. package/contracts/type/ClaimId.sol +75 -0
  339. package/contracts/{types → type}/DistributorType.sol +2 -2
  340. package/contracts/{types → type}/Fee.sol +32 -22
  341. package/contracts/{types → type}/NftId.sol +17 -11
  342. package/contracts/{types → type}/NftIdSet.sol +1 -1
  343. package/contracts/{types → type}/ObjectType.sol +26 -9
  344. package/contracts/type/PayoutId.sol +82 -0
  345. package/contracts/{types → type}/Referral.sol +4 -0
  346. package/contracts/type/RoleId.sol +143 -0
  347. package/contracts/type/Seconds.sol +63 -0
  348. package/contracts/{types → type}/StateId.sol +24 -6
  349. package/contracts/{types → type}/Timestamp.sol +18 -13
  350. package/contracts/{types → type}/UFixed.sol +1 -0
  351. package/contracts/{types → type}/Version.sol +1 -0
  352. package/package.json +3 -3
  353. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  354. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  355. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  356. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
  357. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  358. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  359. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  360. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  361. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  362. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  364. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  366. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  367. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  368. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  369. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  370. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  372. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  373. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  374. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  375. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  376. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  377. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  378. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  379. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  380. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  381. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  382. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  383. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  384. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  385. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  386. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  387. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  388. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  389. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  390. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  391. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  392. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  393. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  394. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  395. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  396. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  397. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  398. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  399. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  400. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  401. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  402. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  403. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  404. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  405. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  406. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  407. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  408. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  409. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  410. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  411. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  412. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  413. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  414. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  415. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  416. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  417. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  418. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  419. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  420. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  421. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  422. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  423. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  424. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  426. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  428. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  429. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  430. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  431. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  432. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  433. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  434. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  435. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  436. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  437. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  438. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  439. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  440. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  441. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  442. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  443. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  444. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  445. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  446. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  447. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  448. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  449. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  450. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  451. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  452. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  453. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  454. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  455. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  456. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  457. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  458. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  459. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  460. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  461. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  462. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  463. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  464. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  465. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  467. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  468. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  469. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  470. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  472. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  473. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  474. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  478. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  479. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  480. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  481. package/contracts/components/Component.sol +0 -216
  482. package/contracts/components/Distribution.sol +0 -150
  483. package/contracts/components/IComponent.sol +0 -43
  484. package/contracts/components/IDistributionComponent.sol +0 -47
  485. package/contracts/components/IPoolComponent.sol +0 -60
  486. package/contracts/components/IProductComponent.sol +0 -39
  487. package/contracts/components/Pool.sol +0 -227
  488. package/contracts/components/Product.sol +0 -265
  489. package/contracts/experiment/cloning/Cloner.sol +0 -47
  490. package/contracts/experiment/errors/Require.sol +0 -38
  491. package/contracts/experiment/errors/Revert.sol +0 -44
  492. package/contracts/experiment/inheritance/A.sol +0 -53
  493. package/contracts/experiment/inheritance/B.sol +0 -28
  494. package/contracts/experiment/inheritance/C.sol +0 -34
  495. package/contracts/experiment/inheritance/IA.sol +0 -13
  496. package/contracts/experiment/inheritance/IB.sol +0 -10
  497. package/contracts/experiment/inheritance/IC.sol +0 -12
  498. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  499. package/contracts/experiment/statemachine/ISM.sol +0 -25
  500. package/contracts/experiment/statemachine/SM.sol +0 -57
  501. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  502. package/contracts/experiment/types/TypeA.sol +0 -47
  503. package/contracts/experiment/types/TypeB.sol +0 -29
  504. package/contracts/instance/base/ComponentService.sol +0 -134
  505. package/contracts/instance/base/KeyValueStore.sol +0 -172
  506. package/contracts/instance/module/ISetup.sol +0 -46
  507. package/contracts/instance/module/ITreasury.sol +0 -23
  508. package/contracts/instance/service/BundleService.sol +0 -293
  509. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  510. package/contracts/instance/service/DistributionService.sol +0 -106
  511. package/contracts/instance/service/IBundleService.sol +0 -44
  512. package/contracts/instance/service/IDistributionService.sol +0 -12
  513. package/contracts/instance/service/IPolicyService.sol +0 -94
  514. package/contracts/instance/service/IPoolService.sol +0 -20
  515. package/contracts/instance/service/IProductService.sol +0 -40
  516. package/contracts/instance/service/PolicyService.sol +0 -538
  517. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  518. package/contracts/instance/service/PoolService.sol +0 -110
  519. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  520. package/contracts/instance/service/ProductService.sol +0 -234
  521. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  522. package/contracts/shared/ContractDeployerLib.sol +0 -72
  523. package/contracts/test/TestFee.sol +0 -25
  524. package/contracts/test/TestRegisterable.sol +0 -18
  525. package/contracts/test/TestRoleId.sol +0 -14
  526. package/contracts/test/TestService.sol +0 -25
  527. package/contracts/test/TestVersion.sol +0 -44
  528. package/contracts/test/TestVersionable.sol +0 -17
  529. package/contracts/test/Usdc.sol +0 -26
  530. package/contracts/types/ChainId.sol +0 -38
  531. package/contracts/types/NumberId.sol +0 -52
  532. package/contracts/types/RoleId.sol +0 -90
  533. /package/contracts/{types → type}/AddressSet.sol +0 -0
  534. /package/contracts/{types → type}/Key32.sol +0 -0
  535. /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -0,0 +1,960 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "StakingService",
4
+ "sourceName": "contracts/staking/StakingService.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "NftId",
48
+ "name": "nftId",
49
+ "type": "uint96"
50
+ }
51
+ ],
52
+ "name": "ErrorNftOwnableAlreadyLinked",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "contractAddress",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ErrorNftOwnableContractNotRegistered",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ErrorNftOwnableInitialOwnerZero",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "account",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ErrorNftOwnableNotOwner",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "registryAddress",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "name": "ErrorNotRegistry",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "ErrorServiceNotImplemented",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [
100
+ {
101
+ "internalType": "NftId",
102
+ "name": "targetNftId",
103
+ "type": "uint96"
104
+ }
105
+ ],
106
+ "name": "ErrorStakingServiceNotActiveTargetNftId",
107
+ "type": "error"
108
+ },
109
+ {
110
+ "inputs": [
111
+ {
112
+ "internalType": "address",
113
+ "name": "stakingAddress",
114
+ "type": "address"
115
+ }
116
+ ],
117
+ "name": "ErrorStakingServiceNotStaking",
118
+ "type": "error"
119
+ },
120
+ {
121
+ "inputs": [
122
+ {
123
+ "internalType": "address",
124
+ "name": "stakingAddress",
125
+ "type": "address"
126
+ }
127
+ ],
128
+ "name": "ErrorStakingServiceNotSupportingIStaking",
129
+ "type": "error"
130
+ },
131
+ {
132
+ "inputs": [
133
+ {
134
+ "internalType": "NftId",
135
+ "name": "targetNftId",
136
+ "type": "uint96"
137
+ }
138
+ ],
139
+ "name": "ErrorStakingServiceNotTargetNftId",
140
+ "type": "error"
141
+ },
142
+ {
143
+ "inputs": [],
144
+ "name": "ErrorStakingServiceZeroTargetNftId",
145
+ "type": "error"
146
+ },
147
+ {
148
+ "inputs": [],
149
+ "name": "InvalidInitialization",
150
+ "type": "error"
151
+ },
152
+ {
153
+ "inputs": [],
154
+ "name": "NotInitializing",
155
+ "type": "error"
156
+ },
157
+ {
158
+ "anonymous": false,
159
+ "inputs": [
160
+ {
161
+ "indexed": false,
162
+ "internalType": "address",
163
+ "name": "authority",
164
+ "type": "address"
165
+ }
166
+ ],
167
+ "name": "AuthorityUpdated",
168
+ "type": "event"
169
+ },
170
+ {
171
+ "anonymous": false,
172
+ "inputs": [
173
+ {
174
+ "indexed": false,
175
+ "internalType": "uint64",
176
+ "name": "version",
177
+ "type": "uint64"
178
+ }
179
+ ],
180
+ "name": "Initialized",
181
+ "type": "event"
182
+ },
183
+ {
184
+ "anonymous": false,
185
+ "inputs": [
186
+ {
187
+ "indexed": false,
188
+ "internalType": "uint256",
189
+ "name": "id",
190
+ "type": "uint256"
191
+ },
192
+ {
193
+ "indexed": false,
194
+ "internalType": "string",
195
+ "name": "message",
196
+ "type": "string"
197
+ }
198
+ ],
199
+ "name": "LogDebug",
200
+ "type": "event"
201
+ },
202
+ {
203
+ "anonymous": false,
204
+ "inputs": [
205
+ {
206
+ "indexed": false,
207
+ "internalType": "NftId",
208
+ "name": "stakeNftId",
209
+ "type": "uint96"
210
+ },
211
+ {
212
+ "indexed": false,
213
+ "internalType": "address",
214
+ "name": "stakeOwner",
215
+ "type": "address"
216
+ },
217
+ {
218
+ "indexed": false,
219
+ "internalType": "NftId",
220
+ "name": "targetNftId",
221
+ "type": "uint96"
222
+ },
223
+ {
224
+ "indexed": false,
225
+ "internalType": "Amount",
226
+ "name": "dipAmount",
227
+ "type": "uint96"
228
+ }
229
+ ],
230
+ "name": "LogStakingServiceNewStakeCreated",
231
+ "type": "event"
232
+ },
233
+ {
234
+ "inputs": [],
235
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
236
+ "outputs": [
237
+ {
238
+ "internalType": "bytes32",
239
+ "name": "",
240
+ "type": "bytes32"
241
+ }
242
+ ],
243
+ "stateMutability": "view",
244
+ "type": "function"
245
+ },
246
+ {
247
+ "inputs": [],
248
+ "name": "REGISTERABLE_LOCATION_V1",
249
+ "outputs": [
250
+ {
251
+ "internalType": "bytes32",
252
+ "name": "",
253
+ "type": "bytes32"
254
+ }
255
+ ],
256
+ "stateMutability": "view",
257
+ "type": "function"
258
+ },
259
+ {
260
+ "inputs": [],
261
+ "name": "STAKING_SERVICE_LOCATION_V1",
262
+ "outputs": [
263
+ {
264
+ "internalType": "bytes32",
265
+ "name": "",
266
+ "type": "bytes32"
267
+ }
268
+ ],
269
+ "stateMutability": "view",
270
+ "type": "function"
271
+ },
272
+ {
273
+ "inputs": [],
274
+ "name": "authority",
275
+ "outputs": [
276
+ {
277
+ "internalType": "address",
278
+ "name": "",
279
+ "type": "address"
280
+ }
281
+ ],
282
+ "stateMutability": "view",
283
+ "type": "function"
284
+ },
285
+ {
286
+ "inputs": [
287
+ {
288
+ "internalType": "NftId",
289
+ "name": "stakeNftId",
290
+ "type": "uint96"
291
+ }
292
+ ],
293
+ "name": "close",
294
+ "outputs": [],
295
+ "stateMutability": "nonpayable",
296
+ "type": "function"
297
+ },
298
+ {
299
+ "inputs": [
300
+ {
301
+ "internalType": "NftId",
302
+ "name": "targetNftId",
303
+ "type": "uint96"
304
+ },
305
+ {
306
+ "internalType": "Amount",
307
+ "name": "dipAmount",
308
+ "type": "uint96"
309
+ }
310
+ ],
311
+ "name": "create",
312
+ "outputs": [
313
+ {
314
+ "internalType": "NftId",
315
+ "name": "stakeNftId",
316
+ "type": "uint96"
317
+ }
318
+ ],
319
+ "stateMutability": "nonpayable",
320
+ "type": "function"
321
+ },
322
+ {
323
+ "inputs": [
324
+ {
325
+ "internalType": "NftId",
326
+ "name": "targetNftId",
327
+ "type": "uint96"
328
+ },
329
+ {
330
+ "internalType": "Seconds",
331
+ "name": "initialLockingPeriod",
332
+ "type": "uint40"
333
+ },
334
+ {
335
+ "internalType": "UFixed",
336
+ "name": "initialRewardRate",
337
+ "type": "uint256"
338
+ }
339
+ ],
340
+ "name": "createInstanceTarget",
341
+ "outputs": [],
342
+ "stateMutability": "nonpayable",
343
+ "type": "function"
344
+ },
345
+ {
346
+ "inputs": [
347
+ {
348
+ "internalType": "NftId",
349
+ "name": "targetNftId",
350
+ "type": "uint96"
351
+ },
352
+ {
353
+ "internalType": "address",
354
+ "name": "token",
355
+ "type": "address"
356
+ },
357
+ {
358
+ "internalType": "Amount",
359
+ "name": "amount",
360
+ "type": "uint96"
361
+ }
362
+ ],
363
+ "name": "decreaseTotalValueLocked",
364
+ "outputs": [
365
+ {
366
+ "internalType": "Amount",
367
+ "name": "totalValueLocked",
368
+ "type": "uint96"
369
+ }
370
+ ],
371
+ "stateMutability": "nonpayable",
372
+ "type": "function"
373
+ },
374
+ {
375
+ "inputs": [],
376
+ "name": "getDomain",
377
+ "outputs": [
378
+ {
379
+ "internalType": "ObjectType",
380
+ "name": "",
381
+ "type": "uint8"
382
+ }
383
+ ],
384
+ "stateMutability": "pure",
385
+ "type": "function"
386
+ },
387
+ {
388
+ "inputs": [],
389
+ "name": "getInitialInfo",
390
+ "outputs": [
391
+ {
392
+ "components": [
393
+ {
394
+ "internalType": "NftId",
395
+ "name": "nftId",
396
+ "type": "uint96"
397
+ },
398
+ {
399
+ "internalType": "NftId",
400
+ "name": "parentNftId",
401
+ "type": "uint96"
402
+ },
403
+ {
404
+ "internalType": "ObjectType",
405
+ "name": "objectType",
406
+ "type": "uint8"
407
+ },
408
+ {
409
+ "internalType": "bool",
410
+ "name": "isInterceptor",
411
+ "type": "bool"
412
+ },
413
+ {
414
+ "internalType": "address",
415
+ "name": "objectAddress",
416
+ "type": "address"
417
+ },
418
+ {
419
+ "internalType": "address",
420
+ "name": "initialOwner",
421
+ "type": "address"
422
+ },
423
+ {
424
+ "internalType": "bytes",
425
+ "name": "data",
426
+ "type": "bytes"
427
+ }
428
+ ],
429
+ "internalType": "struct IRegistry.ObjectInfo",
430
+ "name": "info",
431
+ "type": "tuple"
432
+ }
433
+ ],
434
+ "stateMutability": "view",
435
+ "type": "function"
436
+ },
437
+ {
438
+ "inputs": [],
439
+ "name": "getNftId",
440
+ "outputs": [
441
+ {
442
+ "internalType": "NftId",
443
+ "name": "",
444
+ "type": "uint96"
445
+ }
446
+ ],
447
+ "stateMutability": "view",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [],
452
+ "name": "getOwner",
453
+ "outputs": [
454
+ {
455
+ "internalType": "address",
456
+ "name": "",
457
+ "type": "address"
458
+ }
459
+ ],
460
+ "stateMutability": "view",
461
+ "type": "function"
462
+ },
463
+ {
464
+ "inputs": [],
465
+ "name": "getRegistry",
466
+ "outputs": [
467
+ {
468
+ "internalType": "contract IRegistry",
469
+ "name": "",
470
+ "type": "address"
471
+ }
472
+ ],
473
+ "stateMutability": "view",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [],
478
+ "name": "getStaking",
479
+ "outputs": [
480
+ {
481
+ "internalType": "contract IStaking",
482
+ "name": "staking",
483
+ "type": "address"
484
+ }
485
+ ],
486
+ "stateMutability": "nonpayable",
487
+ "type": "function"
488
+ },
489
+ {
490
+ "inputs": [],
491
+ "name": "getVersion",
492
+ "outputs": [
493
+ {
494
+ "internalType": "Version",
495
+ "name": "",
496
+ "type": "uint24"
497
+ }
498
+ ],
499
+ "stateMutability": "pure",
500
+ "type": "function"
501
+ },
502
+ {
503
+ "inputs": [
504
+ {
505
+ "internalType": "NftId",
506
+ "name": "targetNftId",
507
+ "type": "uint96"
508
+ },
509
+ {
510
+ "internalType": "address",
511
+ "name": "token",
512
+ "type": "address"
513
+ },
514
+ {
515
+ "internalType": "Amount",
516
+ "name": "amount",
517
+ "type": "uint96"
518
+ }
519
+ ],
520
+ "name": "increaseTotalValueLocked",
521
+ "outputs": [
522
+ {
523
+ "internalType": "Amount",
524
+ "name": "totalValueLocked",
525
+ "type": "uint96"
526
+ }
527
+ ],
528
+ "stateMutability": "nonpayable",
529
+ "type": "function"
530
+ },
531
+ {
532
+ "inputs": [],
533
+ "name": "initializeERC165",
534
+ "outputs": [],
535
+ "stateMutability": "nonpayable",
536
+ "type": "function"
537
+ },
538
+ {
539
+ "inputs": [
540
+ {
541
+ "internalType": "address",
542
+ "name": "initialOwner",
543
+ "type": "address"
544
+ },
545
+ {
546
+ "internalType": "address",
547
+ "name": "registryAddress",
548
+ "type": "address"
549
+ }
550
+ ],
551
+ "name": "initializeNftOwnable",
552
+ "outputs": [],
553
+ "stateMutability": "nonpayable",
554
+ "type": "function"
555
+ },
556
+ {
557
+ "inputs": [
558
+ {
559
+ "internalType": "address",
560
+ "name": "registryAddress",
561
+ "type": "address"
562
+ },
563
+ {
564
+ "internalType": "NftId",
565
+ "name": "parentNftId",
566
+ "type": "uint96"
567
+ },
568
+ {
569
+ "internalType": "ObjectType",
570
+ "name": "objectType",
571
+ "type": "uint8"
572
+ },
573
+ {
574
+ "internalType": "bool",
575
+ "name": "isInterceptor",
576
+ "type": "bool"
577
+ },
578
+ {
579
+ "internalType": "address",
580
+ "name": "initialOwner",
581
+ "type": "address"
582
+ },
583
+ {
584
+ "internalType": "bytes",
585
+ "name": "registryData",
586
+ "type": "bytes"
587
+ }
588
+ ],
589
+ "name": "initializeRegisterable",
590
+ "outputs": [],
591
+ "stateMutability": "nonpayable",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [
596
+ {
597
+ "internalType": "address",
598
+ "name": "registryAddress",
599
+ "type": "address"
600
+ }
601
+ ],
602
+ "name": "initializeRegistryLinked",
603
+ "outputs": [],
604
+ "stateMutability": "nonpayable",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [
609
+ {
610
+ "internalType": "address",
611
+ "name": "registry",
612
+ "type": "address"
613
+ },
614
+ {
615
+ "internalType": "address",
616
+ "name": "authority",
617
+ "type": "address"
618
+ },
619
+ {
620
+ "internalType": "address",
621
+ "name": "initialOwner",
622
+ "type": "address"
623
+ }
624
+ ],
625
+ "name": "initializeService",
626
+ "outputs": [],
627
+ "stateMutability": "nonpayable",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [
632
+ {
633
+ "internalType": "address",
634
+ "name": "activatedBy",
635
+ "type": "address"
636
+ },
637
+ {
638
+ "internalType": "bytes",
639
+ "name": "data",
640
+ "type": "bytes"
641
+ }
642
+ ],
643
+ "name": "initializeVersionable",
644
+ "outputs": [],
645
+ "stateMutability": "nonpayable",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [],
650
+ "name": "isConsumingScheduledOp",
651
+ "outputs": [
652
+ {
653
+ "internalType": "bytes4",
654
+ "name": "",
655
+ "type": "bytes4"
656
+ }
657
+ ],
658
+ "stateMutability": "view",
659
+ "type": "function"
660
+ },
661
+ {
662
+ "inputs": [],
663
+ "name": "linkToRegisteredNftId",
664
+ "outputs": [],
665
+ "stateMutability": "nonpayable",
666
+ "type": "function"
667
+ },
668
+ {
669
+ "inputs": [
670
+ {
671
+ "internalType": "NftId",
672
+ "name": "stakeNftId",
673
+ "type": "uint96"
674
+ },
675
+ {
676
+ "internalType": "NftId",
677
+ "name": "newTargetNftId",
678
+ "type": "uint96"
679
+ }
680
+ ],
681
+ "name": "reStake",
682
+ "outputs": [
683
+ {
684
+ "internalType": "NftId",
685
+ "name": "newStakeNftId",
686
+ "type": "uint96"
687
+ },
688
+ {
689
+ "internalType": "Timestamp",
690
+ "name": "unlockedAt",
691
+ "type": "uint40"
692
+ }
693
+ ],
694
+ "stateMutability": "nonpayable",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [
699
+ {
700
+ "internalType": "bytes4",
701
+ "name": "interfaceId",
702
+ "type": "bytes4"
703
+ }
704
+ ],
705
+ "name": "registerInterface",
706
+ "outputs": [],
707
+ "stateMutability": "nonpayable",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [],
712
+ "name": "registerProtocolTarget",
713
+ "outputs": [],
714
+ "stateMutability": "nonpayable",
715
+ "type": "function"
716
+ },
717
+ {
718
+ "inputs": [
719
+ {
720
+ "internalType": "address",
721
+ "name": "newAuthority",
722
+ "type": "address"
723
+ }
724
+ ],
725
+ "name": "setAuthority",
726
+ "outputs": [],
727
+ "stateMutability": "nonpayable",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "NftId",
734
+ "name": "targetNftId",
735
+ "type": "uint96"
736
+ },
737
+ {
738
+ "internalType": "address",
739
+ "name": "token",
740
+ "type": "address"
741
+ },
742
+ {
743
+ "internalType": "Amount",
744
+ "name": "amount",
745
+ "type": "uint96"
746
+ }
747
+ ],
748
+ "name": "setTotalValueLocked",
749
+ "outputs": [],
750
+ "stateMutability": "nonpayable",
751
+ "type": "function"
752
+ },
753
+ {
754
+ "inputs": [
755
+ {
756
+ "internalType": "NftId",
757
+ "name": "stakeNftId",
758
+ "type": "uint96"
759
+ },
760
+ {
761
+ "internalType": "Amount",
762
+ "name": "amount",
763
+ "type": "uint96"
764
+ }
765
+ ],
766
+ "name": "stake",
767
+ "outputs": [],
768
+ "stateMutability": "nonpayable",
769
+ "type": "function"
770
+ },
771
+ {
772
+ "inputs": [
773
+ {
774
+ "internalType": "bytes4",
775
+ "name": "interfaceId",
776
+ "type": "bytes4"
777
+ }
778
+ ],
779
+ "name": "supportsInterface",
780
+ "outputs": [
781
+ {
782
+ "internalType": "bool",
783
+ "name": "",
784
+ "type": "bool"
785
+ }
786
+ ],
787
+ "stateMutability": "view",
788
+ "type": "function"
789
+ },
790
+ {
791
+ "inputs": [
792
+ {
793
+ "internalType": "NftId",
794
+ "name": "stakeNftId",
795
+ "type": "uint96"
796
+ },
797
+ {
798
+ "internalType": "Amount",
799
+ "name": "amount",
800
+ "type": "uint96"
801
+ }
802
+ ],
803
+ "name": "unstake",
804
+ "outputs": [],
805
+ "stateMutability": "nonpayable",
806
+ "type": "function"
807
+ },
808
+ {
809
+ "inputs": [
810
+ {
811
+ "internalType": "bytes",
812
+ "name": "data",
813
+ "type": "bytes"
814
+ }
815
+ ],
816
+ "name": "upgradeVersionable",
817
+ "outputs": [],
818
+ "stateMutability": "nonpayable",
819
+ "type": "function"
820
+ }
821
+ ],
822
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612a0a80620000e66000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80636c1e9dff1161011a5780638fb36037116100ad578063bf7e214f1161007c578063bf7e214f1461047a578063d1c0d10d14610498578063d44f8a4b146104d4578063ea48ce9b146104d4578063f7c34ee0146104eb57600080fd5b80638fb3603714610422578063943bd19714610443578063ada9652e14610456578063b68d18091461046b57600080fd5b806381d9b45f116100e957806381d9b45f146103df578063893d20e8146103f25780638cf81e46146103fa5780638e32e9791461040f57600080fd5b80636c1e9dff146102d6578063756b30de1461039b5780637a9e5e4b146103ae5780637b1391a6146103c157600080fd5b806327bb7a331161019257806349bb9e4b1161016157806349bb9e4b1461031e5780635ab1bd5314610331578063644c45e014610356578063675393bf1461038857600080fd5b806327bb7a33146102e8578063329d6e74146102fb57806336fc697e1461030e578063385b213a1461031657600080fd5b8063138461e0116101ce578063138461e0146102865780631eff4b221461028e578063214cdb80146102c357806326889b09146102d657600080fd5b806301ffc9a7146102005780630aaba8e8146102425780630d8e6e2c146102555780630fec111c14610271575b600080fd5b61022d61020e3660046120ad565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102536102503660046120f3565b50565b005b61025d6104fe565b60405162ffffff9091168152602001610239565b610279610588565b6040516102399190612160565b61025361074c565b6102b57f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610239565b6102536102d13660046120ad565b610953565b6102536102e43660046121eb565b5050565b6102536102f6366004612341565b610980565b6102536103093660046123d9565b610a25565b610253610b72565b610253610bb8565b61025361032c36600461240d565b610e88565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610239565b600080516020612935833981519152546001600160601b03165b6040516001600160601b039091168152602001610239565b61025361039636600461245c565b610f87565b6103706103a93660046121eb565b611090565b6102536103bc36600461245c565b611525565b600080516020612975833981519152546001600160a01b031661033e565b6102536103ed36600461248c565b6115bf565b61033e6116ba565b6102b560008051602061299583398151915281565b61025361041d3660046124cd565b6117f1565b61042a611a25565b6040516001600160e01b03199091168152602001610239565b610253610451366004612518565b505050565b6102b560008051602061293583398151915281565b604051602d8152602001610239565b600080516020612955833981519152546001600160a01b031661033e565b6104af6104a63660046121eb565b50600091829150565b604080516001600160601b03909316835264ffffffffff909116602083015201610239565b6103706104e2366004612518565b60009392505050565b6102536104f9366004612558565b611a5d565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af415801561055f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105839190612586565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561063c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066091906125bb565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106a86116ba565b6001600160a01b031681526020018260010180546106c5906125d8565b80601f01602080910402602001604051908101604052809291908181526020018280546106f1906125d8565b801561073e5780601f106107135761010080835404028352916020019161073e565b820191906000526020600020905b81548152906001019060200180831161072157829003601f168201915b505050505081525091505090565b600060008051602061293583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df919061261d565b156108105780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b306108236001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa15801561086b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088f919061261d565b6108b75760405163b9304b0d60e01b81526001600160a01b0382166004820152602401610807565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa15801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f91906125bb565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b61095b611ad4565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b610988611ad4565b6109928287611a5d565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301610a1b8382612680565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610a476104fe565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab919061273f565b6000805160206129b58339815191528054600160401b900460ff1680610ade575080546001600160401b03808416911610155b15610afc5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610b2683611b0d565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610b7a611ad4565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6000610bcc6001546001600160a01b031690565b6001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d9190612773565b6001600160a01b031663598e28926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190612790565b60405163efac97cf60e01b81526004810182905290915060009073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af4158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0891906125bb565b600080516020612975833981519152549091506001600160a01b031663562119ee82600a600173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63c6edc3dd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906127a9565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63f87bf3736040518163ffffffff1660e01b8152600401602060405180830381865af4158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e089190612790565b6040516001600160e01b031960e088901b1681526001600160601b03909516600486015260ff9093166024850152604484019190915264ffffffffff166064830152608482015260a401600060405180830381600087803b158015610e6c57600080fd5b505af1158015610e80573d6000803e3d6000fd5b505050505050565b6000805160206129b58339815191528054600160401b810460ff1615906001600160401b0316600081158015610ebb5750825b90506000826001600160401b03166001148015610ed75750303b155b905081158015610ee5575080155b15610f035760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f2d57845460ff60401b1916600160401b1785555b610f378787611b15565b8315610f7e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b610f8f611ad4565b806001600160a01b03163b600003610fc55760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610807565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152633135064760e11b60048201526301ffc9a790602401602060405180830381865afa92505050801561103f575060408051601f3d908101601f1916820190925261103c9181019061261d565b60015b6110675760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610807565b806102e45760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610807565b6000805160206129758339815191525460408051633148a11d60e11b815290516000926000805160206129958339815191529284926001600160a01b0390921691636291423a916004808201926020929091908290030181865afa1580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111209190612773565b604051630a4d29dd60e31b81526001600160601b0387166004820152909150339073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801561117d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a1919061261d565b156111bf57604051632eaaadf760e21b815260040160405180910390fd5b60405163134fc55b60e11b81526001600160601b03871660048201526001600160a01b0383169063269f8ab690602401602060405180830381865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611230919061261d565b6112585760405163b1b75e0960e01b81526001600160601b0387166004820152602401610807565b60405163777d185760e01b81526001600160601b03871660048201526001600160a01b0383169063777d185790602401602060405180830381865afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c9919061261d565b6112f1576040516319bcf3ff60e21b81526001600160601b0387166004820152602401610807565b82546040805160e0810180835263bc1b392d60e01b905290516001600160a01b0390921691638105cc7f9190819073__$94a2c899be079b00d952d0d84fffaa5c34$__9063bc1b392d9060e4808501916020918187030181865af415801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906125bb565b6001600160601b03168152602001896001600160601b031681526020016113a6605090565b60ff16815260200160001515815260200160006001600160a01b03168152602001846001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b81526004016114059190612160565b6020604051808303816000875af1158015611424573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144891906125bb565b6001840154604051632c853e7760e11b81526001600160601b038084166004830152808a166024830152881660448201529195506001600160a01b03169063590a7cee90606401600060405180830381600087803b1580156114a957600080fd5b505af11580156114bd573d6000803e3d6000fd5b5050604080516001600160601b0388811682526001600160a01b03861660208301528a8116828401528916606082015290517f19dfce67a86eb1479ae5389b3590cec913de99c5d7af5e1e23f3c04c38caded89350908190036080019150a150505092915050565b33611545600080516020612955833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146115805760405162d1953b60e31b81526001600160a01b0382166004820152602401610807565b816001600160a01b03163b6000036115b6576040516361798f2f60e11b81526001600160a01b0383166004820152602401610807565b6102e482611c95565b7fa83d5ef0ab2645db0d9f8a93568fbe03d2be09dad1ac2863ce44f72e2a2bc38d6001604051611617918152604060208201819052600e908201526d1899599bdc994818da185a5b9a5960921b606082015260800190565b60405180910390a16000805160206129758339815191525446906001600160a01b031663562119ee8560466040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044810184905264ffffffffff861660648201526084810185905260a401600060405180830381600087803b1580156116a657600080fd5b505af1158015610a1b573d6000803e3d6000fd5b60008060008051602061293583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561172a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174e919061261d565b156117db576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156117b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d59190612773565b91505090565b54600160601b90046001600160a01b0316919050565b6117f9611ad4565b61187983846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561183b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185f91906125bb565b603c60008560405180602001604052806000815250610980565b6001600160a01b038216156118965761189182611cf6565b611a05565b60006118aa6001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af415801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192e91906127d1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190612773565b9050611a03816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fe9190612773565b611cf6565b505b611a15634a531f3360e01b610953565b61045163b68d180960e01b610953565b600080516020612955833981519152805460009190600160a01b900460ff16611a4f5760006117d5565b638fb3603760e01b91505090565b611a65611ad4565b611a6e81610f87565b611a76610b72565b6001600160a01b038216611a9d5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061293583398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6000805160206129b583398151915254600160401b900460ff16611b0b57604051631afcd79f60e31b815260040160405180910390fd5b565b6101fb611ad4565b6000805160206129b58339815191528054600160401b810460ff1615906001600160401b0316600081158015611b485750825b90506000826001600160401b03166001148015611b645750303b155b905081158015611b72575080155b15611b905760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611bba57845460ff60401b1916600160401b1785555b60008087806020019051810190611bd191906127ee565b91509150611be18260008b6117f1565b600080516020612995833981519152611bfa6028611d07565b81546001600160a01b0319166001600160a01b0391909116178155611c1e82611e1a565b6001820180546001600160a01b0319166001600160a01b0392909216919091179055611c5063b460ff7360e01b610953565b5050508315610f7e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610f75565b60008051602061295583398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611cfe611ad4565b6102508161209c565b6000611d1b6001546001600160a01b031690565b6001600160a01b031663d39e604383611d326104fe565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab91906127d1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e149190612773565b92915050565b600080611e2f6001546001600160a01b031690565b6040516308b09a5f60e41b81526001600160a01b0385811660048301529190911690638b09a5f090602401600060405180830381865afa158015611e77573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9f9190810190612862565b80516040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f21919061261d565b15611f7257611f428160400151611f36602d90565b60ff9081169116141590565b15611f6b57604051637dbf3cff60e11b81526001600160a01b0384166004820152602401610807565b5090919050565b6040516301ffc9a760e01b815263363bbad960e21b60048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe1919061261d565b61200957604051632bf4d8e560e21b81526001600160a01b0384166004820152602401610807565b336000805160206129958339815191525460405163c4c79d8b60e01b81526001600160a01b03868116600483015283811660248301529091169063c4c79d8b906044016000604051808303816000875af115801561206b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120939190810190612862565b50929392505050565b6120a4611ad4565b61025081611c95565b6000602082840312156120bf57600080fd5b81356001600160e01b0319811681146120d757600080fd5b9392505050565b6001600160601b038116811461025057600080fd5b60006020828403121561210557600080fd5b81356120d7816120de565b60005b8381101561212b578181015183820152602001612113565b50506000910152565b6000815180845261214c816020860160208601612110565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516121c960c08401826001600160a01b03169052565b5060c083015160e0808401526121e3610100840182612134565b949350505050565b600080604083850312156121fe57600080fd5b8235612209816120de565b91506020830135612219816120de565b809150509250929050565b6001600160a01b038116811461025057600080fd5b60ff8116811461025057600080fd5b801515811461025057600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561228e5761228e612256565b60405290565b604051601f8201601f191681016001600160401b03811182821017156122bc576122bc612256565b604052919050565b60006001600160401b038211156122dd576122dd612256565b50601f01601f191660200190565b600082601f8301126122fc57600080fd5b813561230f61230a826122c4565b612294565b81815284602083860101111561232457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561235a57600080fd5b863561236581612224565b95506020870135612375816120de565b9450604087013561238581612239565b9350606087013561239581612248565b925060808701356123a581612224565b915060a08701356001600160401b038111156123c057600080fd5b6123cc89828a016122eb565b9150509295509295509295565b6000602082840312156123eb57600080fd5b81356001600160401b0381111561240157600080fd5b6121e3848285016122eb565b6000806040838503121561242057600080fd5b823561242b81612224565b915060208301356001600160401b0381111561244657600080fd5b612452858286016122eb565b9150509250929050565b60006020828403121561246e57600080fd5b81356120d781612224565b64ffffffffff8116811461025057600080fd5b6000806000606084860312156124a157600080fd5b83356124ac816120de565b925060208401356124bc81612479565b929592945050506040919091013590565b6000806000606084860312156124e257600080fd5b83356124ed81612224565b925060208401356124fd81612224565b9150604084013561250d81612224565b809150509250925092565b60008060006060848603121561252d57600080fd5b8335612538816120de565b9250602084013561254881612224565b9150604084013561250d816120de565b6000806040838503121561256b57600080fd5b823561257681612224565b9150602083013561221981612224565b60006020828403121561259857600080fd5b815162ffffff811681146120d757600080fd5b80516125b6816120de565b919050565b6000602082840312156125cd57600080fd5b81516120d7816120de565b600181811c908216806125ec57607f821691505b60208210810361260c57634e487b7160e01b600052602260045260246000fd5b50919050565b80516125b681612248565b60006020828403121561262f57600080fd5b81516120d781612248565b601f82111561045157600081815260208120601f850160051c810160208610156126615750805b601f850160051c820191505b81811015610e805782815560010161266d565b81516001600160401b0381111561269957612699612256565b6126ad816126a784546125d8565b8461263a565b602080601f8311600181146126e257600084156126ca5750858301515b600019600386901b1c1916600185901b178555610e80565b600085815260208120601f198616915b82811015612711578886015182559484019460019091019084016126f2565b508582101561272f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561275157600080fd5b81516001600160401b03811681146120d757600080fd5b80516125b681612224565b60006020828403121561278557600080fd5b81516120d781612224565b6000602082840312156127a257600080fd5b5051919050565b6000602082840312156127bb57600080fd5b81516120d781612479565b80516125b681612239565b6000602082840312156127e357600080fd5b81516120d781612239565b6000806040838503121561280157600080fd5b825161280c81612224565b602084015190925061221981612224565b600082601f83011261282e57600080fd5b815161283c61230a826122c4565b81815284602083860101111561285157600080fd5b6121e3826020830160208701612110565b60006020828403121561287457600080fd5b81516001600160401b038082111561288b57600080fd5b9083019060e0828603121561289f57600080fd5b6128a761226c565b6128b0836125ab565b81526128be602084016125ab565b60208201526128cf604084016127c6565b60408201526128e060608401612612565b60608201526128f160808401612768565b608082015261290260a08401612768565b60a082015260c08301518281111561291957600080fd5b6129258782860161281d565b60c0830152509594505050505056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a006548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa3016548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220cf08949f5e3ba49e1070472206920c2a6bf183119dd6359991b85036b992b0f864736f6c63430008140033",
823
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80636c1e9dff1161011a5780638fb36037116100ad578063bf7e214f1161007c578063bf7e214f1461047a578063d1c0d10d14610498578063d44f8a4b146104d4578063ea48ce9b146104d4578063f7c34ee0146104eb57600080fd5b80638fb3603714610422578063943bd19714610443578063ada9652e14610456578063b68d18091461046b57600080fd5b806381d9b45f116100e957806381d9b45f146103df578063893d20e8146103f25780638cf81e46146103fa5780638e32e9791461040f57600080fd5b80636c1e9dff146102d6578063756b30de1461039b5780637a9e5e4b146103ae5780637b1391a6146103c157600080fd5b806327bb7a331161019257806349bb9e4b1161016157806349bb9e4b1461031e5780635ab1bd5314610331578063644c45e014610356578063675393bf1461038857600080fd5b806327bb7a33146102e8578063329d6e74146102fb57806336fc697e1461030e578063385b213a1461031657600080fd5b8063138461e0116101ce578063138461e0146102865780631eff4b221461028e578063214cdb80146102c357806326889b09146102d657600080fd5b806301ffc9a7146102005780630aaba8e8146102425780630d8e6e2c146102555780630fec111c14610271575b600080fd5b61022d61020e3660046120ad565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102536102503660046120f3565b50565b005b61025d6104fe565b60405162ffffff9091168152602001610239565b610279610588565b6040516102399190612160565b61025361074c565b6102b57f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610239565b6102536102d13660046120ad565b610953565b6102536102e43660046121eb565b5050565b6102536102f6366004612341565b610980565b6102536103093660046123d9565b610a25565b610253610b72565b610253610bb8565b61025361032c36600461240d565b610e88565b6001546001600160a01b03165b6040516001600160a01b039091168152602001610239565b600080516020612935833981519152546001600160601b03165b6040516001600160601b039091168152602001610239565b61025361039636600461245c565b610f87565b6103706103a93660046121eb565b611090565b6102536103bc36600461245c565b611525565b600080516020612975833981519152546001600160a01b031661033e565b6102536103ed36600461248c565b6115bf565b61033e6116ba565b6102b560008051602061299583398151915281565b61025361041d3660046124cd565b6117f1565b61042a611a25565b6040516001600160e01b03199091168152602001610239565b610253610451366004612518565b505050565b6102b560008051602061293583398151915281565b604051602d8152602001610239565b600080516020612955833981519152546001600160a01b031661033e565b6104af6104a63660046121eb565b50600091829150565b604080516001600160601b03909316835264ffffffffff909116602083015201610239565b6103706104e2366004612518565b60009392505050565b6102536104f9366004612558565b611a5d565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af415801561055f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105839190612586565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561063c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066091906125bb565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106a86116ba565b6001600160a01b031681526020018260010180546106c5906125d8565b80601f01602080910402602001604051908101604052809291908181526020018280546106f1906125d8565b801561073e5780601f106107135761010080835404028352916020019161073e565b820191906000526020600020905b81548152906001019060200180831161072157829003601f168201915b505050505081525091505090565b600060008051602061293583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156107bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107df919061261d565b156108105780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b306108236001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa15801561086b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088f919061261d565b6108b75760405163b9304b0d60e01b81526001600160a01b0382166004820152602401610807565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa15801561090b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092f91906125bb565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b61095b611ad4565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b610988611ad4565b6109928287611a5d565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301610a1b8382612680565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610a476104fe565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab919061273f565b6000805160206129b58339815191528054600160401b900460ff1680610ade575080546001600160401b03808416911610155b15610afc5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610b2683611b0d565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610b7a611ad4565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6000610bcc6001546001600160a01b031690565b6001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2d9190612773565b6001600160a01b031663598e28926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190612790565b60405163efac97cf60e01b81526004810182905290915060009073__$94a2c899be079b00d952d0d84fffaa5c34$__9063efac97cf90602401602060405180830381865af4158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0891906125bb565b600080516020612975833981519152549091506001600160a01b031663562119ee82600a600173__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63c6edc3dd6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9b91906127a9565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__63f87bf3736040518163ffffffff1660e01b8152600401602060405180830381865af4158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e089190612790565b6040516001600160e01b031960e088901b1681526001600160601b03909516600486015260ff9093166024850152604484019190915264ffffffffff166064830152608482015260a401600060405180830381600087803b158015610e6c57600080fd5b505af1158015610e80573d6000803e3d6000fd5b505050505050565b6000805160206129b58339815191528054600160401b810460ff1615906001600160401b0316600081158015610ebb5750825b90506000826001600160401b03166001148015610ed75750303b155b905081158015610ee5575080155b15610f035760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f2d57845460ff60401b1916600160401b1785555b610f378787611b15565b8315610f7e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b610f8f611ad4565b806001600160a01b03163b600003610fc55760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610807565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152633135064760e11b60048201526301ffc9a790602401602060405180830381865afa92505050801561103f575060408051601f3d908101601f1916820190925261103c9181019061261d565b60015b6110675760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610807565b806102e45760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610807565b6000805160206129758339815191525460408051633148a11d60e11b815290516000926000805160206129958339815191529284926001600160a01b0390921691636291423a916004808201926020929091908290030181865afa1580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111209190612773565b604051630a4d29dd60e31b81526001600160601b0387166004820152909150339073__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801561117d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a1919061261d565b156111bf57604051632eaaadf760e21b815260040160405180910390fd5b60405163134fc55b60e11b81526001600160601b03871660048201526001600160a01b0383169063269f8ab690602401602060405180830381865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611230919061261d565b6112585760405163b1b75e0960e01b81526001600160601b0387166004820152602401610807565b60405163777d185760e01b81526001600160601b03871660048201526001600160a01b0383169063777d185790602401602060405180830381865afa1580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c9919061261d565b6112f1576040516319bcf3ff60e21b81526001600160601b0387166004820152602401610807565b82546040805160e0810180835263bc1b392d60e01b905290516001600160a01b0390921691638105cc7f9190819073__$94a2c899be079b00d952d0d84fffaa5c34$__9063bc1b392d9060e4808501916020918187030181865af415801561135d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138191906125bb565b6001600160601b03168152602001896001600160601b031681526020016113a6605090565b60ff16815260200160001515815260200160006001600160a01b03168152602001846001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b81526004016114059190612160565b6020604051808303816000875af1158015611424573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144891906125bb565b6001840154604051632c853e7760e11b81526001600160601b038084166004830152808a166024830152881660448201529195506001600160a01b03169063590a7cee90606401600060405180830381600087803b1580156114a957600080fd5b505af11580156114bd573d6000803e3d6000fd5b5050604080516001600160601b0388811682526001600160a01b03861660208301528a8116828401528916606082015290517f19dfce67a86eb1479ae5389b3590cec913de99c5d7af5e1e23f3c04c38caded89350908190036080019150a150505092915050565b33611545600080516020612955833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b0316146115805760405162d1953b60e31b81526001600160a01b0382166004820152602401610807565b816001600160a01b03163b6000036115b6576040516361798f2f60e11b81526001600160a01b0383166004820152602401610807565b6102e482611c95565b7fa83d5ef0ab2645db0d9f8a93568fbe03d2be09dad1ac2863ce44f72e2a2bc38d6001604051611617918152604060208201819052600e908201526d1899599bdc994818da185a5b9a5960921b606082015260800190565b60405180910390a16000805160206129758339815191525446906001600160a01b031663562119ee8560466040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044810184905264ffffffffff861660648201526084810185905260a401600060405180830381600087803b1580156116a657600080fd5b505af1158015610a1b573d6000803e3d6000fd5b60008060008051602061293583398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561172a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174e919061261d565b156117db576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156117b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d59190612773565b91505090565b54600160601b90046001600160a01b0316919050565b6117f9611ad4565b61187983846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561183b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185f91906125bb565b603c60008560405180602001604052806000815250610980565b6001600160a01b038216156118965761189182611cf6565b611a05565b60006118aa6001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af415801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192e91906127d1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190612773565b9050611a03816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fe9190612773565b611cf6565b505b611a15634a531f3360e01b610953565b61045163b68d180960e01b610953565b600080516020612955833981519152805460009190600160a01b900460ff16611a4f5760006117d5565b638fb3603760e01b91505090565b611a65611ad4565b611a6e81610f87565b611a76610b72565b6001600160a01b038216611a9d5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061293583398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b6000805160206129b583398151915254600160401b900460ff16611b0b57604051631afcd79f60e31b815260040160405180910390fd5b565b6101fb611ad4565b6000805160206129b58339815191528054600160401b810460ff1615906001600160401b0316600081158015611b485750825b90506000826001600160401b03166001148015611b645750303b155b905081158015611b72575080155b15611b905760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611bba57845460ff60401b1916600160401b1785555b60008087806020019051810190611bd191906127ee565b91509150611be18260008b6117f1565b600080516020612995833981519152611bfa6028611d07565b81546001600160a01b0319166001600160a01b0391909116178155611c1e82611e1a565b6001820180546001600160a01b0319166001600160a01b0392909216919091179055611c5063b460ff7360e01b610953565b5050508315610f7e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610f75565b60008051602061295583398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611cfe611ad4565b6102508161209c565b6000611d1b6001546001600160a01b031690565b6001600160a01b031663d39e604383611d326104fe565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab91906127d1565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611df0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e149190612773565b92915050565b600080611e2f6001546001600160a01b031690565b6040516308b09a5f60e41b81526001600160a01b0385811660048301529190911690638b09a5f090602401600060405180830381865afa158015611e77573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9f9190810190612862565b80516040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f21919061261d565b15611f7257611f428160400151611f36602d90565b60ff9081169116141590565b15611f6b57604051637dbf3cff60e11b81526001600160a01b0384166004820152602401610807565b5090919050565b6040516301ffc9a760e01b815263363bbad960e21b60048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe1919061261d565b61200957604051632bf4d8e560e21b81526001600160a01b0384166004820152602401610807565b336000805160206129958339815191525460405163c4c79d8b60e01b81526001600160a01b03868116600483015283811660248301529091169063c4c79d8b906044016000604051808303816000875af115801561206b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120939190810190612862565b50929392505050565b6120a4611ad4565b61025081611c95565b6000602082840312156120bf57600080fd5b81356001600160e01b0319811681146120d757600080fd5b9392505050565b6001600160601b038116811461025057600080fd5b60006020828403121561210557600080fd5b81356120d7816120de565b60005b8381101561212b578181015183820152602001612113565b50506000910152565b6000815180845261214c816020860160208601612110565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a08301516121c960c08401826001600160a01b03169052565b5060c083015160e0808401526121e3610100840182612134565b949350505050565b600080604083850312156121fe57600080fd5b8235612209816120de565b91506020830135612219816120de565b809150509250929050565b6001600160a01b038116811461025057600080fd5b60ff8116811461025057600080fd5b801515811461025057600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561228e5761228e612256565b60405290565b604051601f8201601f191681016001600160401b03811182821017156122bc576122bc612256565b604052919050565b60006001600160401b038211156122dd576122dd612256565b50601f01601f191660200190565b600082601f8301126122fc57600080fd5b813561230f61230a826122c4565b612294565b81815284602083860101111561232457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561235a57600080fd5b863561236581612224565b95506020870135612375816120de565b9450604087013561238581612239565b9350606087013561239581612248565b925060808701356123a581612224565b915060a08701356001600160401b038111156123c057600080fd5b6123cc89828a016122eb565b9150509295509295509295565b6000602082840312156123eb57600080fd5b81356001600160401b0381111561240157600080fd5b6121e3848285016122eb565b6000806040838503121561242057600080fd5b823561242b81612224565b915060208301356001600160401b0381111561244657600080fd5b612452858286016122eb565b9150509250929050565b60006020828403121561246e57600080fd5b81356120d781612224565b64ffffffffff8116811461025057600080fd5b6000806000606084860312156124a157600080fd5b83356124ac816120de565b925060208401356124bc81612479565b929592945050506040919091013590565b6000806000606084860312156124e257600080fd5b83356124ed81612224565b925060208401356124fd81612224565b9150604084013561250d81612224565b809150509250925092565b60008060006060848603121561252d57600080fd5b8335612538816120de565b9250602084013561254881612224565b9150604084013561250d816120de565b6000806040838503121561256b57600080fd5b823561257681612224565b9150602083013561221981612224565b60006020828403121561259857600080fd5b815162ffffff811681146120d757600080fd5b80516125b6816120de565b919050565b6000602082840312156125cd57600080fd5b81516120d7816120de565b600181811c908216806125ec57607f821691505b60208210810361260c57634e487b7160e01b600052602260045260246000fd5b50919050565b80516125b681612248565b60006020828403121561262f57600080fd5b81516120d781612248565b601f82111561045157600081815260208120601f850160051c810160208610156126615750805b601f850160051c820191505b81811015610e805782815560010161266d565b81516001600160401b0381111561269957612699612256565b6126ad816126a784546125d8565b8461263a565b602080601f8311600181146126e257600084156126ca5750858301515b600019600386901b1c1916600185901b178555610e80565b600085815260208120601f198616915b82811015612711578886015182559484019460019091019084016126f2565b508582101561272f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561275157600080fd5b81516001600160401b03811681146120d757600080fd5b80516125b681612224565b60006020828403121561278557600080fd5b81516120d781612224565b6000602082840312156127a257600080fd5b5051919050565b6000602082840312156127bb57600080fd5b81516120d781612479565b80516125b681612239565b6000602082840312156127e357600080fd5b81516120d781612239565b6000806040838503121561280157600080fd5b825161280c81612224565b602084015190925061221981612224565b600082601f83011261282e57600080fd5b815161283c61230a826122c4565b81815284602083860101111561285157600080fd5b6121e3826020830160208701612110565b60006020828403121561287457600080fd5b81516001600160401b038082111561288b57600080fd5b9083019060e0828603121561289f57600080fd5b6128a761226c565b6128b0836125ab565b81526128be602084016125ab565b60208201526128cf604084016127c6565b60408201526128e060608401612612565b60608201526128f160808401612768565b608082015261290260a08401612768565b60a082015260c08301518281111561291957600080fd5b6129258782860161281d565b60c0830152509594505050505056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a006548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa3016548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220cf08949f5e3ba49e1070472206920c2a6bf183119dd6359991b85036b992b0f864736f6c63430008140033",
824
+ "linkReferences": {
825
+ "contracts/staking/TargetManagerLib.sol": {
826
+ "TargetManagerLib": [
827
+ {
828
+ "length": 20,
829
+ "start": 3606
830
+ },
831
+ {
832
+ "length": 20,
833
+ "start": 3715
834
+ }
835
+ ]
836
+ },
837
+ "contracts/type/NftId.sol": {
838
+ "NftIdLib": [
839
+ {
840
+ "length": 20,
841
+ "start": 1755
842
+ },
843
+ {
844
+ "length": 20,
845
+ "start": 2151
846
+ },
847
+ {
848
+ "length": 20,
849
+ "start": 3472
850
+ },
851
+ {
852
+ "length": 20,
853
+ "start": 4649
854
+ },
855
+ {
856
+ "length": 20,
857
+ "start": 5127
858
+ },
859
+ {
860
+ "length": 20,
861
+ "start": 6102
862
+ },
863
+ {
864
+ "length": 20,
865
+ "start": 8105
866
+ }
867
+ ]
868
+ },
869
+ "contracts/type/Version.sol": {
870
+ "VersionLib": [
871
+ {
872
+ "length": 20,
873
+ "start": 1547
874
+ },
875
+ {
876
+ "length": 20,
877
+ "start": 2829
878
+ },
879
+ {
880
+ "length": 20,
881
+ "start": 7731
882
+ }
883
+ ],
884
+ "VersionPartLib": [
885
+ {
886
+ "length": 20,
887
+ "start": 6582
888
+ }
889
+ ]
890
+ }
891
+ },
892
+ "deployedLinkReferences": {
893
+ "contracts/staking/TargetManagerLib.sol": {
894
+ "TargetManagerLib": [
895
+ {
896
+ "length": 20,
897
+ "start": 3376
898
+ },
899
+ {
900
+ "length": 20,
901
+ "start": 3485
902
+ }
903
+ ]
904
+ },
905
+ "contracts/type/NftId.sol": {
906
+ "NftIdLib": [
907
+ {
908
+ "length": 20,
909
+ "start": 1525
910
+ },
911
+ {
912
+ "length": 20,
913
+ "start": 1921
914
+ },
915
+ {
916
+ "length": 20,
917
+ "start": 3242
918
+ },
919
+ {
920
+ "length": 20,
921
+ "start": 4419
922
+ },
923
+ {
924
+ "length": 20,
925
+ "start": 4897
926
+ },
927
+ {
928
+ "length": 20,
929
+ "start": 5872
930
+ },
931
+ {
932
+ "length": 20,
933
+ "start": 7875
934
+ }
935
+ ]
936
+ },
937
+ "contracts/type/Version.sol": {
938
+ "VersionLib": [
939
+ {
940
+ "length": 20,
941
+ "start": 1317
942
+ },
943
+ {
944
+ "length": 20,
945
+ "start": 2599
946
+ },
947
+ {
948
+ "length": 20,
949
+ "start": 7501
950
+ }
951
+ ],
952
+ "VersionPartLib": [
953
+ {
954
+ "length": 20,
955
+ "start": 6352
956
+ }
957
+ ]
958
+ }
959
+ }
960
+ }