@etherisc/gif-next 0.0.2-743affe-003 → 0.0.2-76249b0-812

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (663) hide show
  1. package/README.md +179 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +297 -1797
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +437 -2044
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -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/base/Cloneable.sol/Cloneable.json +190 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  43. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  44. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  50. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  52. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  53. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  54. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
  56. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  58. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  60. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  62. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  64. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  66. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  68. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  70. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  71. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +330 -314
  72. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  74. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  76. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  77. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  78. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  79. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  80. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  82. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  84. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  86. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  88. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  90. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +292 -182
  92. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  94. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  96. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +313 -261
  98. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  99. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  100. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → product/IProductService.sol/IProductService.json} +168 -161
  102. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  104. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  106. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  108. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  110. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  111. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  112. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  114. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  118. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +396 -61
  120. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +610 -168
  122. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  123. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  124. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  125. package/artifacts/contracts/registry/Registry.sol/Registry.json +630 -235
  126. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  127. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +871 -317
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  138. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  140. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  148. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  149. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  150. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  152. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  154. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +290 -157
  156. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  158. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  160. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  162. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  164. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  166. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  168. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  170. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  172. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  174. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  176. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +65 -8
  178. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  179. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  180. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +143 -154
  182. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  184. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  185. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  186. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  188. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  190. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  192. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  193. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  194. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  195. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  196. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  197. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  198. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  199. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +369 -62
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +205 -12
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  204. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +233 -195
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  208. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  209. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  210. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  212. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  214. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  215. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  216. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  218. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  219. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  232. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  233. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  238. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  240. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  244. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  248. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  252. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  258. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  264. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  266. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  268. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  270. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  272. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  274. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  276. package/contracts/distribution/Distribution.sol +261 -0
  277. package/contracts/distribution/DistributionService.sol +298 -0
  278. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  279. package/contracts/distribution/IDistributionComponent.sol +66 -0
  280. package/contracts/distribution/IDistributionService.sol +81 -0
  281. package/contracts/instance/BundleManager.sol +126 -0
  282. package/contracts/instance/IInstance.sol +74 -46
  283. package/contracts/instance/IInstanceService.sol +81 -0
  284. package/contracts/instance/Instance.sol +220 -69
  285. package/contracts/instance/InstanceAdmin.sol +331 -0
  286. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  287. package/contracts/instance/InstanceReader.sol +390 -0
  288. package/contracts/instance/InstanceService.sol +362 -0
  289. package/contracts/instance/InstanceServiceManager.sol +44 -0
  290. package/contracts/instance/InstanceStore.sol +281 -0
  291. package/contracts/instance/base/BalanceStore.sol +118 -0
  292. package/contracts/instance/base/Cloneable.sol +51 -0
  293. package/contracts/instance/base/ObjectCounter.sol +21 -0
  294. package/contracts/instance/base/ObjectManager.sol +82 -0
  295. package/contracts/instance/module/IAccess.sol +46 -0
  296. package/contracts/instance/module/IBundle.sol +20 -0
  297. package/contracts/instance/module/IComponents.sol +52 -0
  298. package/contracts/instance/module/IDistribution.sol +42 -0
  299. package/contracts/instance/module/IPolicy.sol +84 -0
  300. package/contracts/instance/module/IRisk.sol +11 -0
  301. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  302. package/contracts/oracle/IOracle.sol +20 -0
  303. package/contracts/oracle/IOracleComponent.sol +32 -0
  304. package/contracts/oracle/IOracleService.sol +65 -0
  305. package/contracts/oracle/Oracle.sol +145 -0
  306. package/contracts/oracle/OracleService.sol +277 -0
  307. package/contracts/oracle/OracleServiceManager.sol +42 -0
  308. package/contracts/pool/BundleService.sol +296 -0
  309. package/contracts/pool/BundleServiceManager.sol +42 -0
  310. package/contracts/pool/IBundleService.sol +106 -0
  311. package/contracts/pool/IPoolComponent.sol +112 -0
  312. package/contracts/pool/IPoolService.sol +150 -0
  313. package/contracts/pool/Pool.sol +299 -0
  314. package/contracts/pool/PoolService.sol +453 -0
  315. package/contracts/pool/PoolServiceManager.sol +42 -0
  316. package/contracts/product/ApplicationService.sol +254 -0
  317. package/contracts/product/ApplicationServiceManager.sol +38 -0
  318. package/contracts/product/ClaimService.sol +442 -0
  319. package/contracts/product/ClaimServiceManager.sol +38 -0
  320. package/contracts/product/IApplicationService.sol +62 -0
  321. package/contracts/product/IClaimService.sol +99 -0
  322. package/contracts/product/IPolicyService.sol +78 -0
  323. package/contracts/product/IPricingService.sol +39 -0
  324. package/contracts/product/IProductComponent.sol +42 -0
  325. package/contracts/product/IProductService.sol +33 -0
  326. package/contracts/product/PolicyService.sol +475 -0
  327. package/contracts/product/PolicyServiceManager.sol +42 -0
  328. package/contracts/product/PricingService.sol +301 -0
  329. package/contracts/product/PricingServiceManager.sol +42 -0
  330. package/contracts/product/Product.sol +377 -0
  331. package/contracts/product/ProductService.sol +124 -0
  332. package/contracts/product/ProductServiceManager.sol +42 -0
  333. package/contracts/registry/ChainNft.sol +55 -25
  334. package/contracts/registry/IRegistry.sol +84 -35
  335. package/contracts/registry/IRegistryService.sol +56 -16
  336. package/contracts/registry/ITransferInterceptor.sol +1 -0
  337. package/contracts/registry/Registry.sol +405 -334
  338. package/contracts/registry/RegistryAdmin.sol +237 -0
  339. package/contracts/registry/RegistryService.sol +158 -275
  340. package/contracts/registry/RegistryServiceManager.sol +58 -0
  341. package/contracts/registry/ReleaseManager.sol +600 -0
  342. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  343. package/contracts/registry/TokenRegistry.sol +315 -0
  344. package/contracts/shared/AccessManagerCustom.sol +736 -0
  345. package/contracts/shared/AccessManagerExtended.sol +470 -0
  346. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  347. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  348. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  349. package/contracts/shared/Component.sol +281 -0
  350. package/contracts/shared/ComponentService.sol +618 -0
  351. package/contracts/shared/ComponentServiceManager.sol +35 -0
  352. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  353. package/contracts/shared/ERC165.sol +16 -10
  354. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  355. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  356. package/contracts/shared/IComponent.sol +70 -0
  357. package/contracts/shared/IComponentService.sol +102 -0
  358. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  359. package/contracts/shared/IKeyValueStore.sol +53 -0
  360. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  361. package/contracts/shared/INftOwnable.sol +23 -0
  362. package/contracts/shared/IPolicyHolder.sol +45 -0
  363. package/contracts/shared/IRegisterable.sol +5 -12
  364. package/contracts/shared/IRegistryLinked.sol +11 -0
  365. package/contracts/shared/IService.sol +18 -0
  366. package/contracts/shared/IVersionable.sol +5 -48
  367. package/contracts/shared/InitializableCustom.sol +177 -0
  368. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  369. package/contracts/shared/KeyValueStore.sol +127 -0
  370. package/contracts/{instance/base → shared}/Lifecycle.sol +38 -8
  371. package/contracts/shared/NftIdSetManager.sol +65 -0
  372. package/contracts/shared/NftOwnable.sol +107 -0
  373. package/contracts/shared/PolicyHolder.sol +102 -0
  374. package/contracts/shared/ProxyManager.sol +127 -43
  375. package/contracts/shared/Registerable.sol +33 -75
  376. package/contracts/shared/RegistryLinked.sol +43 -0
  377. package/contracts/shared/Service.sol +77 -0
  378. package/contracts/shared/TokenHandler.sol +58 -0
  379. package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
  380. package/contracts/shared/Versionable.sol +5 -93
  381. package/contracts/staking/IStaking.sol +168 -0
  382. package/contracts/staking/IStakingService.sol +149 -0
  383. package/contracts/staking/StakeManagerLib.sol +179 -0
  384. package/contracts/staking/Staking.sol +551 -0
  385. package/contracts/staking/StakingManager.sol +54 -0
  386. package/contracts/staking/StakingReader.sol +187 -0
  387. package/contracts/staking/StakingService.sol +406 -0
  388. package/contracts/staking/StakingServiceManager.sol +45 -0
  389. package/contracts/staking/StakingStore.sol +572 -0
  390. package/contracts/staking/TargetManagerLib.sol +207 -0
  391. package/contracts/{types → type}/AddressSet.sol +1 -1
  392. package/contracts/type/Amount.sol +128 -0
  393. package/contracts/{types → type}/Blocknumber.sol +21 -3
  394. package/contracts/type/ClaimId.sol +75 -0
  395. package/contracts/type/DistributorType.sol +55 -0
  396. package/contracts/type/Fee.sol +66 -0
  397. package/contracts/{types → type}/Key32.sol +8 -3
  398. package/contracts/{types → type}/NftId.sol +21 -15
  399. package/contracts/type/NftIdSet.sol +62 -0
  400. package/contracts/{types → type}/ObjectType.sol +57 -20
  401. package/contracts/type/PayoutId.sol +82 -0
  402. package/contracts/type/Referral.sol +89 -0
  403. package/contracts/type/RequestId.sol +75 -0
  404. package/contracts/{types → type}/RiskId.sol +1 -1
  405. package/contracts/type/RoleId.sol +146 -0
  406. package/contracts/type/Seconds.sol +81 -0
  407. package/contracts/{types → type}/StateId.sol +39 -5
  408. package/contracts/{types → type}/Timestamp.sol +27 -14
  409. package/contracts/{types → type}/UFixed.sol +129 -12
  410. package/contracts/{types → type}/Version.sol +6 -2
  411. package/package.json +8 -7
  412. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  413. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  414. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  415. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  416. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  417. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  418. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  419. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  420. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  421. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  422. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  423. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  424. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  425. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  426. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  427. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  428. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  430. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  432. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  434. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  436. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  438. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  442. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  444. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  446. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  448. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  452. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  454. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  456. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  458. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  460. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  462. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  463. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  464. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  467. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  473. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  475. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  477. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  479. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  480. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  481. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  482. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  483. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  484. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  486. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  487. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  488. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  489. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  491. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  492. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  493. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  494. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  497. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  499. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  500. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  501. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  502. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  503. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  504. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  505. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  506. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  507. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  508. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  509. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  511. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  513. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  515. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  516. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  517. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  519. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  521. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  523. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  525. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  528. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  532. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  534. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  535. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  536. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  537. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  538. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  539. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  540. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  541. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  543. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  544. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  545. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  546. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  547. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  548. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  549. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  550. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  551. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  552. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  553. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  554. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  555. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  556. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  557. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  558. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  559. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  560. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  561. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  562. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  563. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  564. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  566. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  569. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  570. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  571. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  573. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  574. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  575. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  577. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  579. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  582. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  585. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  589. package/contracts/components/BaseComponent.sol +0 -79
  590. package/contracts/components/Distribution.sol +0 -155
  591. package/contracts/components/IBaseComponent.sol +0 -19
  592. package/contracts/components/IDistributionComponent.sol +0 -47
  593. package/contracts/components/IPoolComponent.sol +0 -65
  594. package/contracts/components/IProductComponent.sol +0 -39
  595. package/contracts/components/Pool.sol +0 -246
  596. package/contracts/components/Product.sol +0 -299
  597. package/contracts/experiment/errors/Require.sol +0 -38
  598. package/contracts/experiment/errors/Revert.sol +0 -44
  599. package/contracts/experiment/inheritance/A.sol +0 -53
  600. package/contracts/experiment/inheritance/B.sol +0 -28
  601. package/contracts/experiment/inheritance/C.sol +0 -34
  602. package/contracts/experiment/inheritance/IA.sol +0 -13
  603. package/contracts/experiment/inheritance/IB.sol +0 -10
  604. package/contracts/experiment/inheritance/IC.sol +0 -12
  605. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  606. package/contracts/experiment/statemachine/ISM.sol +0 -25
  607. package/contracts/experiment/statemachine/SM.sol +0 -57
  608. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  609. package/contracts/experiment/types/TypeA.sol +0 -47
  610. package/contracts/experiment/types/TypeB.sol +0 -29
  611. package/contracts/instance/IInstanceLinked.sol +0 -8
  612. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  613. package/contracts/instance/base/IInstanceBase.sol +0 -23
  614. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  615. package/contracts/instance/base/IService.sol +0 -15
  616. package/contracts/instance/base/InstanceBase.sol +0 -89
  617. package/contracts/instance/base/KeyValueStore.sol +0 -161
  618. package/contracts/instance/base/ModuleBase.sol +0 -57
  619. package/contracts/instance/base/ServiceBase.sol +0 -43
  620. package/contracts/instance/module/access/Access.sol +0 -149
  621. package/contracts/instance/module/access/IAccess.sol +0 -53
  622. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  623. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  624. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  625. package/contracts/instance/module/component/IComponent.sol +0 -28
  626. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  627. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  628. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  629. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  630. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  631. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  632. package/contracts/instance/module/risk/IRisk.sol +0 -26
  633. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  634. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  635. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  636. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  637. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  638. package/contracts/instance/service/DistributionService.sol +0 -54
  639. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  640. package/contracts/instance/service/IDistributionService.sol +0 -12
  641. package/contracts/instance/service/IPoolService.sol +0 -37
  642. package/contracts/instance/service/IProductService.sol +0 -107
  643. package/contracts/instance/service/PoolService.sol +0 -149
  644. package/contracts/instance/service/ProductService.sol +0 -509
  645. package/contracts/registry/IChainNft.sol +0 -22
  646. package/contracts/registry/IRegistryLinked.sol +0 -8
  647. package/contracts/registry/RegistryInstaller.sol +0 -100
  648. package/contracts/shared/IOwnable.sol +0 -6
  649. package/contracts/test/TestDistribution.sol +0 -22
  650. package/contracts/test/TestFee.sol +0 -25
  651. package/contracts/test/TestPool.sol +0 -27
  652. package/contracts/test/TestProduct.sol +0 -74
  653. package/contracts/test/TestRegisterable.sol +0 -18
  654. package/contracts/test/TestRoleId.sol +0 -14
  655. package/contracts/test/TestService.sol +0 -26
  656. package/contracts/test/TestToken.sol +0 -26
  657. package/contracts/test/TestVersion.sol +0 -44
  658. package/contracts/test/TestVersionable.sol +0 -17
  659. package/contracts/types/ChainId.sol +0 -38
  660. package/contracts/types/Fee.sol +0 -56
  661. package/contracts/types/NftIdSet.sol +0 -60
  662. package/contracts/types/ReferralId.sol +0 -48
  663. package/contracts/types/RoleId.sol +0 -38
@@ -7,174 +7,868 @@
7
7
  "inputs": [
8
8
  {
9
9
  "internalType": "address",
10
- "name": "registerableAddress",
10
+ "name": "authority",
11
11
  "type": "address"
12
12
  }
13
13
  ],
14
- "name": "InvalidAddress",
14
+ "name": "AccessManagedInvalidAuthority",
15
15
  "type": "error"
16
16
  },
17
17
  {
18
18
  "inputs": [
19
19
  {
20
20
  "internalType": "address",
21
- "name": "initialOwner",
21
+ "name": "caller",
22
22
  "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
23
28
  }
24
29
  ],
25
- "name": "InvalidInitialOwner",
30
+ "name": "AccessManagedRequiredDelay",
26
31
  "type": "error"
27
32
  },
28
33
  {
29
- "inputs": [],
30
- "name": "InvalidInitialization",
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
31
42
  "type": "error"
32
43
  },
33
44
  {
34
45
  "inputs": [
35
46
  {
36
- "internalType": "ObjectType",
37
- "name": "objectType",
38
- "type": "uint8"
47
+ "internalType": "NftId",
48
+ "name": "nftId",
49
+ "type": "uint96"
39
50
  }
40
51
  ],
41
- "name": "InvalidType",
52
+ "name": "ErrorNftOwnableAlreadyLinked",
42
53
  "type": "error"
43
54
  },
44
55
  {
45
- "inputs": [],
46
- "name": "MissingAllowance",
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "contractAddress",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ErrorNftOwnableContractNotRegistered",
47
64
  "type": "error"
48
65
  },
49
66
  {
50
67
  "inputs": [],
51
- "name": "NotComponent",
68
+ "name": "ErrorNftOwnableInitialOwnerZero",
52
69
  "type": "error"
53
70
  },
54
71
  {
55
- "inputs": [],
56
- "name": "NotInitializing",
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "account",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ErrorNftOwnableNotOwner",
57
80
  "type": "error"
58
81
  },
59
82
  {
60
- "inputs": [],
61
- "name": "NotInstance",
83
+ "inputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "registryAddress",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "name": "ErrorNotRegistry",
62
91
  "type": "error"
63
92
  },
64
93
  {
65
- "inputs": [],
66
- "name": "NotRegistryOwner",
94
+ "inputs": [
95
+ {
96
+ "internalType": "address",
97
+ "name": "registerableAddress",
98
+ "type": "address"
99
+ }
100
+ ],
101
+ "name": "ErrorRegistryServiceInvalidAddress",
67
102
  "type": "error"
68
103
  },
69
104
  {
70
- "inputs": [],
71
- "name": "NotService",
105
+ "inputs": [
106
+ {
107
+ "internalType": "address",
108
+ "name": "initialOwner",
109
+ "type": "address"
110
+ }
111
+ ],
112
+ "name": "ErrorRegistryServiceInvalidInitialOwner",
72
113
  "type": "error"
73
114
  },
74
115
  {
75
- "inputs": [],
76
- "name": "NotToken",
116
+ "inputs": [
117
+ {
118
+ "internalType": "address",
119
+ "name": "notComponent",
120
+ "type": "address"
121
+ }
122
+ ],
123
+ "name": "ErrorRegistryServiceNotComponent",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "inputs": [
128
+ {
129
+ "internalType": "address",
130
+ "name": "notDistribution",
131
+ "type": "address"
132
+ }
133
+ ],
134
+ "name": "ErrorRegistryServiceNotDistribution",
135
+ "type": "error"
136
+ },
137
+ {
138
+ "inputs": [
139
+ {
140
+ "internalType": "address",
141
+ "name": "notInstance",
142
+ "type": "address"
143
+ }
144
+ ],
145
+ "name": "ErrorRegistryServiceNotInstance",
146
+ "type": "error"
147
+ },
148
+ {
149
+ "inputs": [
150
+ {
151
+ "internalType": "address",
152
+ "name": "notPool",
153
+ "type": "address"
154
+ }
155
+ ],
156
+ "name": "ErrorRegistryServiceNotPool",
157
+ "type": "error"
158
+ },
159
+ {
160
+ "inputs": [
161
+ {
162
+ "internalType": "address",
163
+ "name": "notProduct",
164
+ "type": "address"
165
+ }
166
+ ],
167
+ "name": "ErrorRegistryServiceNotProduct",
77
168
  "type": "error"
78
169
  },
79
170
  {
80
171
  "inputs": [],
81
- "name": "SelfRegistration",
172
+ "name": "ErrorRegistryServiceNotRegistryOwner",
82
173
  "type": "error"
83
174
  },
84
175
  {
85
- "anonymous": false,
86
176
  "inputs": [
87
177
  {
88
- "indexed": false,
89
- "internalType": "uint64",
90
- "name": "version",
91
- "type": "uint64"
178
+ "internalType": "address",
179
+ "name": "notService",
180
+ "type": "address"
92
181
  }
93
182
  ],
94
- "name": "Initialized",
95
- "type": "event"
183
+ "name": "ErrorRegistryServiceNotService",
184
+ "type": "error"
96
185
  },
97
186
  {
98
- "anonymous": false,
99
187
  "inputs": [
100
188
  {
101
- "indexed": false,
102
- "internalType": "Version",
103
- "name": "version",
104
- "type": "uint24"
189
+ "internalType": "ObjectType",
190
+ "name": "objectType",
191
+ "type": "uint8"
192
+ }
193
+ ],
194
+ "name": "ErrorRegistryServiceObjectAddressNotZero",
195
+ "type": "error"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "ObjectType",
201
+ "name": "objectType",
202
+ "type": "uint8"
105
203
  },
106
204
  {
107
- "indexed": false,
108
205
  "internalType": "address",
109
- "name": "implementation",
206
+ "name": "owner",
207
+ "type": "address"
208
+ }
209
+ ],
210
+ "name": "ErrorRegistryServiceObjectOwnerRegistered",
211
+ "type": "error"
212
+ },
213
+ {
214
+ "inputs": [
215
+ {
216
+ "internalType": "ObjectType",
217
+ "name": "objectType",
218
+ "type": "uint8"
219
+ }
220
+ ],
221
+ "name": "ErrorRegistryServiceObjectOwnerZero",
222
+ "type": "error"
223
+ },
224
+ {
225
+ "inputs": [
226
+ {
227
+ "internalType": "ObjectType",
228
+ "name": "expected",
229
+ "type": "uint8"
230
+ },
231
+ {
232
+ "internalType": "ObjectType",
233
+ "name": "found",
234
+ "type": "uint8"
235
+ }
236
+ ],
237
+ "name": "ErrorRegistryServiceObjectTypeInvalid",
238
+ "type": "error"
239
+ },
240
+ {
241
+ "inputs": [
242
+ {
243
+ "internalType": "contract IRegisterable",
244
+ "name": "registerable",
110
245
  "type": "address"
111
246
  },
112
247
  {
113
- "indexed": false,
114
248
  "internalType": "address",
115
- "name": "activatedBy",
249
+ "name": "found",
116
250
  "type": "address"
117
251
  }
118
252
  ],
119
- "name": "LogVersionableInitialized",
120
- "type": "event"
253
+ "name": "ErrorRegistryServiceRegisterableAddressInvalid",
254
+ "type": "error"
121
255
  },
122
256
  {
123
- "inputs": [],
124
- "name": "NAME",
125
- "outputs": [
257
+ "inputs": [
126
258
  {
127
- "internalType": "string",
128
- "name": "",
129
- "type": "string"
259
+ "internalType": "contract IRegisterable",
260
+ "name": "registerable",
261
+ "type": "address"
262
+ },
263
+ {
264
+ "internalType": "address",
265
+ "name": "expected",
266
+ "type": "address"
267
+ },
268
+ {
269
+ "internalType": "address",
270
+ "name": "found",
271
+ "type": "address"
130
272
  }
131
273
  ],
132
- "stateMutability": "view",
133
- "type": "function"
274
+ "name": "ErrorRegistryServiceRegisterableOwnerInvalid",
275
+ "type": "error"
134
276
  },
135
277
  {
136
- "inputs": [],
137
- "name": "NFT_LOCK_ADDRESS",
138
- "outputs": [
278
+ "inputs": [
279
+ {
280
+ "internalType": "contract IRegisterable",
281
+ "name": "registerable",
282
+ "type": "address"
283
+ },
139
284
  {
140
285
  "internalType": "address",
141
- "name": "",
286
+ "name": "owner",
142
287
  "type": "address"
143
288
  }
144
289
  ],
145
- "stateMutability": "view",
146
- "type": "function"
290
+ "name": "ErrorRegistryServiceRegisterableOwnerRegistered",
291
+ "type": "error"
147
292
  },
148
293
  {
149
- "inputs": [],
150
- "name": "REGISTERABLE_LOCATION_V1",
151
- "outputs": [
294
+ "inputs": [
152
295
  {
153
- "internalType": "bytes32",
154
- "name": "",
155
- "type": "bytes32"
296
+ "internalType": "contract IRegisterable",
297
+ "name": "registerable",
298
+ "type": "address"
156
299
  }
157
300
  ],
158
- "stateMutability": "view",
159
- "type": "function"
301
+ "name": "ErrorRegistryServiceRegisterableOwnerZero",
302
+ "type": "error"
160
303
  },
161
304
  {
162
- "inputs": [],
163
- "name": "REGISTRY_CREATIONCODE_HASH",
164
- "outputs": [
305
+ "inputs": [
165
306
  {
166
- "internalType": "bytes32",
167
- "name": "",
168
- "type": "bytes32"
307
+ "internalType": "contract IRegisterable",
308
+ "name": "registerable",
309
+ "type": "address"
169
310
  }
170
311
  ],
171
- "stateMutability": "view",
172
- "type": "function"
312
+ "name": "ErrorRegistryServiceRegisterableSelfRegistration",
313
+ "type": "error"
314
+ },
315
+ {
316
+ "inputs": [
317
+ {
318
+ "internalType": "contract IRegisterable",
319
+ "name": "registerable",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "internalType": "ObjectType",
324
+ "name": "expected",
325
+ "type": "uint8"
326
+ },
327
+ {
328
+ "internalType": "ObjectType",
329
+ "name": "found",
330
+ "type": "uint8"
331
+ }
332
+ ],
333
+ "name": "ErrorRegistryServiceRegisterableTypeInvalid",
334
+ "type": "error"
173
335
  },
174
336
  {
175
337
  "inputs": [],
176
- "name": "getInitialInfo",
177
- "outputs": [
338
+ "name": "ErrorServiceNotImplemented",
339
+ "type": "error"
340
+ },
341
+ {
342
+ "inputs": [],
343
+ "name": "InvalidInitialization",
344
+ "type": "error"
345
+ },
346
+ {
347
+ "inputs": [],
348
+ "name": "NotInitializing",
349
+ "type": "error"
350
+ },
351
+ {
352
+ "anonymous": false,
353
+ "inputs": [
354
+ {
355
+ "indexed": false,
356
+ "internalType": "address",
357
+ "name": "authority",
358
+ "type": "address"
359
+ }
360
+ ],
361
+ "name": "AuthorityUpdated",
362
+ "type": "event"
363
+ },
364
+ {
365
+ "anonymous": false,
366
+ "inputs": [
367
+ {
368
+ "indexed": false,
369
+ "internalType": "uint64",
370
+ "name": "version",
371
+ "type": "uint64"
372
+ }
373
+ ],
374
+ "name": "Initialized",
375
+ "type": "event"
376
+ },
377
+ {
378
+ "inputs": [],
379
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
380
+ "outputs": [
381
+ {
382
+ "internalType": "bytes32",
383
+ "name": "",
384
+ "type": "bytes32"
385
+ }
386
+ ],
387
+ "stateMutability": "view",
388
+ "type": "function"
389
+ },
390
+ {
391
+ "inputs": [],
392
+ "name": "REGISTERABLE_LOCATION_V1",
393
+ "outputs": [
394
+ {
395
+ "internalType": "bytes32",
396
+ "name": "",
397
+ "type": "bytes32"
398
+ }
399
+ ],
400
+ "stateMutability": "view",
401
+ "type": "function"
402
+ },
403
+ {
404
+ "inputs": [],
405
+ "name": "REGISTRY_CREATION_CODE_HASH",
406
+ "outputs": [
407
+ {
408
+ "internalType": "bytes32",
409
+ "name": "",
410
+ "type": "bytes32"
411
+ }
412
+ ],
413
+ "stateMutability": "view",
414
+ "type": "function"
415
+ },
416
+ {
417
+ "inputs": [],
418
+ "name": "authority",
419
+ "outputs": [
420
+ {
421
+ "internalType": "address",
422
+ "name": "",
423
+ "type": "address"
424
+ }
425
+ ],
426
+ "stateMutability": "view",
427
+ "type": "function"
428
+ },
429
+ {
430
+ "inputs": [],
431
+ "name": "getDomain",
432
+ "outputs": [
433
+ {
434
+ "internalType": "ObjectType",
435
+ "name": "serviceDomain",
436
+ "type": "uint8"
437
+ }
438
+ ],
439
+ "stateMutability": "pure",
440
+ "type": "function"
441
+ },
442
+ {
443
+ "inputs": [],
444
+ "name": "getInitialInfo",
445
+ "outputs": [
446
+ {
447
+ "components": [
448
+ {
449
+ "internalType": "NftId",
450
+ "name": "nftId",
451
+ "type": "uint96"
452
+ },
453
+ {
454
+ "internalType": "NftId",
455
+ "name": "parentNftId",
456
+ "type": "uint96"
457
+ },
458
+ {
459
+ "internalType": "ObjectType",
460
+ "name": "objectType",
461
+ "type": "uint8"
462
+ },
463
+ {
464
+ "internalType": "bool",
465
+ "name": "isInterceptor",
466
+ "type": "bool"
467
+ },
468
+ {
469
+ "internalType": "address",
470
+ "name": "objectAddress",
471
+ "type": "address"
472
+ },
473
+ {
474
+ "internalType": "address",
475
+ "name": "initialOwner",
476
+ "type": "address"
477
+ },
478
+ {
479
+ "internalType": "bytes",
480
+ "name": "data",
481
+ "type": "bytes"
482
+ }
483
+ ],
484
+ "internalType": "struct IRegistry.ObjectInfo",
485
+ "name": "info",
486
+ "type": "tuple"
487
+ }
488
+ ],
489
+ "stateMutability": "view",
490
+ "type": "function"
491
+ },
492
+ {
493
+ "inputs": [],
494
+ "name": "getNftId",
495
+ "outputs": [
496
+ {
497
+ "internalType": "NftId",
498
+ "name": "",
499
+ "type": "uint96"
500
+ }
501
+ ],
502
+ "stateMutability": "view",
503
+ "type": "function"
504
+ },
505
+ {
506
+ "inputs": [],
507
+ "name": "getOwner",
508
+ "outputs": [
509
+ {
510
+ "internalType": "address",
511
+ "name": "",
512
+ "type": "address"
513
+ }
514
+ ],
515
+ "stateMutability": "view",
516
+ "type": "function"
517
+ },
518
+ {
519
+ "inputs": [],
520
+ "name": "getRegistry",
521
+ "outputs": [
522
+ {
523
+ "internalType": "contract IRegistry",
524
+ "name": "",
525
+ "type": "address"
526
+ }
527
+ ],
528
+ "stateMutability": "view",
529
+ "type": "function"
530
+ },
531
+ {
532
+ "inputs": [],
533
+ "name": "getVersion",
534
+ "outputs": [
535
+ {
536
+ "internalType": "Version",
537
+ "name": "",
538
+ "type": "uint24"
539
+ }
540
+ ],
541
+ "stateMutability": "pure",
542
+ "type": "function"
543
+ },
544
+ {
545
+ "inputs": [],
546
+ "name": "initializeERC165",
547
+ "outputs": [],
548
+ "stateMutability": "nonpayable",
549
+ "type": "function"
550
+ },
551
+ {
552
+ "inputs": [
553
+ {
554
+ "internalType": "address",
555
+ "name": "initialOwner",
556
+ "type": "address"
557
+ },
558
+ {
559
+ "internalType": "address",
560
+ "name": "registryAddress",
561
+ "type": "address"
562
+ }
563
+ ],
564
+ "name": "initializeNftOwnable",
565
+ "outputs": [],
566
+ "stateMutability": "nonpayable",
567
+ "type": "function"
568
+ },
569
+ {
570
+ "inputs": [
571
+ {
572
+ "internalType": "address",
573
+ "name": "registryAddress",
574
+ "type": "address"
575
+ },
576
+ {
577
+ "internalType": "NftId",
578
+ "name": "parentNftId",
579
+ "type": "uint96"
580
+ },
581
+ {
582
+ "internalType": "ObjectType",
583
+ "name": "objectType",
584
+ "type": "uint8"
585
+ },
586
+ {
587
+ "internalType": "bool",
588
+ "name": "isInterceptor",
589
+ "type": "bool"
590
+ },
591
+ {
592
+ "internalType": "address",
593
+ "name": "initialOwner",
594
+ "type": "address"
595
+ },
596
+ {
597
+ "internalType": "bytes",
598
+ "name": "registryData",
599
+ "type": "bytes"
600
+ }
601
+ ],
602
+ "name": "initializeRegisterable",
603
+ "outputs": [],
604
+ "stateMutability": "nonpayable",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [
609
+ {
610
+ "internalType": "address",
611
+ "name": "registryAddress",
612
+ "type": "address"
613
+ }
614
+ ],
615
+ "name": "initializeRegistryLinked",
616
+ "outputs": [],
617
+ "stateMutability": "nonpayable",
618
+ "type": "function"
619
+ },
620
+ {
621
+ "inputs": [
622
+ {
623
+ "internalType": "address",
624
+ "name": "registry",
625
+ "type": "address"
626
+ },
627
+ {
628
+ "internalType": "address",
629
+ "name": "authority",
630
+ "type": "address"
631
+ },
632
+ {
633
+ "internalType": "address",
634
+ "name": "initialOwner",
635
+ "type": "address"
636
+ }
637
+ ],
638
+ "name": "initializeService",
639
+ "outputs": [],
640
+ "stateMutability": "nonpayable",
641
+ "type": "function"
642
+ },
643
+ {
644
+ "inputs": [
645
+ {
646
+ "internalType": "address",
647
+ "name": "activatedBy",
648
+ "type": "address"
649
+ },
650
+ {
651
+ "internalType": "bytes",
652
+ "name": "data",
653
+ "type": "bytes"
654
+ }
655
+ ],
656
+ "name": "initializeVersionable",
657
+ "outputs": [],
658
+ "stateMutability": "nonpayable",
659
+ "type": "function"
660
+ },
661
+ {
662
+ "inputs": [],
663
+ "name": "isConsumingScheduledOp",
664
+ "outputs": [
665
+ {
666
+ "internalType": "bytes4",
667
+ "name": "",
668
+ "type": "bytes4"
669
+ }
670
+ ],
671
+ "stateMutability": "view",
672
+ "type": "function"
673
+ },
674
+ {
675
+ "inputs": [],
676
+ "name": "linkToRegisteredNftId",
677
+ "outputs": [
678
+ {
679
+ "internalType": "NftId",
680
+ "name": "nftId",
681
+ "type": "uint96"
682
+ }
683
+ ],
684
+ "stateMutability": "nonpayable",
685
+ "type": "function"
686
+ },
687
+ {
688
+ "inputs": [
689
+ {
690
+ "components": [
691
+ {
692
+ "internalType": "NftId",
693
+ "name": "nftId",
694
+ "type": "uint96"
695
+ },
696
+ {
697
+ "internalType": "NftId",
698
+ "name": "parentNftId",
699
+ "type": "uint96"
700
+ },
701
+ {
702
+ "internalType": "ObjectType",
703
+ "name": "objectType",
704
+ "type": "uint8"
705
+ },
706
+ {
707
+ "internalType": "bool",
708
+ "name": "isInterceptor",
709
+ "type": "bool"
710
+ },
711
+ {
712
+ "internalType": "address",
713
+ "name": "objectAddress",
714
+ "type": "address"
715
+ },
716
+ {
717
+ "internalType": "address",
718
+ "name": "initialOwner",
719
+ "type": "address"
720
+ },
721
+ {
722
+ "internalType": "bytes",
723
+ "name": "data",
724
+ "type": "bytes"
725
+ }
726
+ ],
727
+ "internalType": "struct IRegistry.ObjectInfo",
728
+ "name": "info",
729
+ "type": "tuple"
730
+ }
731
+ ],
732
+ "name": "registerBundle",
733
+ "outputs": [
734
+ {
735
+ "internalType": "NftId",
736
+ "name": "nftId",
737
+ "type": "uint96"
738
+ }
739
+ ],
740
+ "stateMutability": "nonpayable",
741
+ "type": "function"
742
+ },
743
+ {
744
+ "inputs": [
745
+ {
746
+ "internalType": "contract IComponent",
747
+ "name": "component",
748
+ "type": "address"
749
+ },
750
+ {
751
+ "internalType": "ObjectType",
752
+ "name": "objectType",
753
+ "type": "uint8"
754
+ },
755
+ {
756
+ "internalType": "address",
757
+ "name": "initialOwner",
758
+ "type": "address"
759
+ }
760
+ ],
761
+ "name": "registerComponent",
762
+ "outputs": [
763
+ {
764
+ "components": [
765
+ {
766
+ "internalType": "NftId",
767
+ "name": "nftId",
768
+ "type": "uint96"
769
+ },
770
+ {
771
+ "internalType": "NftId",
772
+ "name": "parentNftId",
773
+ "type": "uint96"
774
+ },
775
+ {
776
+ "internalType": "ObjectType",
777
+ "name": "objectType",
778
+ "type": "uint8"
779
+ },
780
+ {
781
+ "internalType": "bool",
782
+ "name": "isInterceptor",
783
+ "type": "bool"
784
+ },
785
+ {
786
+ "internalType": "address",
787
+ "name": "objectAddress",
788
+ "type": "address"
789
+ },
790
+ {
791
+ "internalType": "address",
792
+ "name": "initialOwner",
793
+ "type": "address"
794
+ },
795
+ {
796
+ "internalType": "bytes",
797
+ "name": "data",
798
+ "type": "bytes"
799
+ }
800
+ ],
801
+ "internalType": "struct IRegistry.ObjectInfo",
802
+ "name": "info",
803
+ "type": "tuple"
804
+ }
805
+ ],
806
+ "stateMutability": "nonpayable",
807
+ "type": "function"
808
+ },
809
+ {
810
+ "inputs": [
811
+ {
812
+ "internalType": "contract IComponent",
813
+ "name": "distribution",
814
+ "type": "address"
815
+ },
816
+ {
817
+ "internalType": "address",
818
+ "name": "owner",
819
+ "type": "address"
820
+ }
821
+ ],
822
+ "name": "registerDistribution",
823
+ "outputs": [
824
+ {
825
+ "components": [
826
+ {
827
+ "internalType": "NftId",
828
+ "name": "nftId",
829
+ "type": "uint96"
830
+ },
831
+ {
832
+ "internalType": "NftId",
833
+ "name": "parentNftId",
834
+ "type": "uint96"
835
+ },
836
+ {
837
+ "internalType": "ObjectType",
838
+ "name": "objectType",
839
+ "type": "uint8"
840
+ },
841
+ {
842
+ "internalType": "bool",
843
+ "name": "isInterceptor",
844
+ "type": "bool"
845
+ },
846
+ {
847
+ "internalType": "address",
848
+ "name": "objectAddress",
849
+ "type": "address"
850
+ },
851
+ {
852
+ "internalType": "address",
853
+ "name": "initialOwner",
854
+ "type": "address"
855
+ },
856
+ {
857
+ "internalType": "bytes",
858
+ "name": "data",
859
+ "type": "bytes"
860
+ }
861
+ ],
862
+ "internalType": "struct IRegistry.ObjectInfo",
863
+ "name": "info",
864
+ "type": "tuple"
865
+ }
866
+ ],
867
+ "stateMutability": "nonpayable",
868
+ "type": "function"
869
+ },
870
+ {
871
+ "inputs": [
178
872
  {
179
873
  "components": [
180
874
  {
@@ -214,60 +908,11 @@
214
908
  }
215
909
  ],
216
910
  "internalType": "struct IRegistry.ObjectInfo",
217
- "name": "",
911
+ "name": "info",
218
912
  "type": "tuple"
219
- },
220
- {
221
- "internalType": "bytes",
222
- "name": "data",
223
- "type": "bytes"
224
- }
225
- ],
226
- "stateMutability": "view",
227
- "type": "function"
228
- },
229
- {
230
- "inputs": [],
231
- "name": "getInitializedVersion",
232
- "outputs": [
233
- {
234
- "internalType": "uint64",
235
- "name": "",
236
- "type": "uint64"
237
- }
238
- ],
239
- "stateMutability": "view",
240
- "type": "function"
241
- },
242
- {
243
- "inputs": [],
244
- "name": "getMajorVersion",
245
- "outputs": [
246
- {
247
- "internalType": "VersionPart",
248
- "name": "majorVersion",
249
- "type": "uint8"
250
- }
251
- ],
252
- "stateMutability": "view",
253
- "type": "function"
254
- },
255
- {
256
- "inputs": [],
257
- "name": "getName",
258
- "outputs": [
259
- {
260
- "internalType": "string",
261
- "name": "",
262
- "type": "string"
263
913
  }
264
914
  ],
265
- "stateMutability": "pure",
266
- "type": "function"
267
- },
268
- {
269
- "inputs": [],
270
- "name": "getNftId",
915
+ "name": "registerDistributor",
271
916
  "outputs": [
272
917
  {
273
918
  "internalType": "NftId",
@@ -275,168 +920,83 @@
275
920
  "type": "uint96"
276
921
  }
277
922
  ],
278
- "stateMutability": "view",
923
+ "stateMutability": "nonpayable",
279
924
  "type": "function"
280
925
  },
281
926
  {
282
- "inputs": [],
283
- "name": "getOwner",
284
- "outputs": [
927
+ "inputs": [
285
928
  {
286
- "internalType": "address",
287
- "name": "",
929
+ "internalType": "contract IRegisterable",
930
+ "name": "instance",
288
931
  "type": "address"
289
- }
290
- ],
291
- "stateMutability": "view",
292
- "type": "function"
293
- },
294
- {
295
- "inputs": [],
296
- "name": "getRegistry",
297
- "outputs": [
932
+ },
298
933
  {
299
- "internalType": "contract IRegistry",
300
- "name": "registry",
934
+ "internalType": "address",
935
+ "name": "owner",
301
936
  "type": "address"
302
937
  }
303
938
  ],
304
- "stateMutability": "view",
305
- "type": "function"
306
- },
307
- {
308
- "inputs": [],
309
- "name": "getVersion",
310
- "outputs": [
311
- {
312
- "internalType": "Version",
313
- "name": "",
314
- "type": "uint24"
315
- }
316
- ],
317
- "stateMutability": "pure",
318
- "type": "function"
319
- },
320
- {
321
- "inputs": [
322
- {
323
- "internalType": "uint256",
324
- "name": "idx",
325
- "type": "uint256"
326
- }
327
- ],
328
- "name": "getVersion",
329
- "outputs": [
330
- {
331
- "internalType": "Version",
332
- "name": "",
333
- "type": "uint24"
334
- }
335
- ],
336
- "stateMutability": "view",
337
- "type": "function"
338
- },
339
- {
340
- "inputs": [],
341
- "name": "getVersionCount",
342
- "outputs": [
343
- {
344
- "internalType": "uint256",
345
- "name": "",
346
- "type": "uint256"
347
- }
348
- ],
349
- "stateMutability": "view",
350
- "type": "function"
351
- },
352
- {
353
- "inputs": [
354
- {
355
- "internalType": "Version",
356
- "name": "_version",
357
- "type": "uint24"
358
- }
359
- ],
360
- "name": "getVersionInfo",
939
+ "name": "registerInstance",
361
940
  "outputs": [
362
941
  {
363
942
  "components": [
364
943
  {
365
- "internalType": "Version",
366
- "name": "version",
367
- "type": "uint24"
944
+ "internalType": "NftId",
945
+ "name": "nftId",
946
+ "type": "uint96"
368
947
  },
369
948
  {
370
- "internalType": "address",
371
- "name": "implementation",
372
- "type": "address"
949
+ "internalType": "NftId",
950
+ "name": "parentNftId",
951
+ "type": "uint96"
952
+ },
953
+ {
954
+ "internalType": "ObjectType",
955
+ "name": "objectType",
956
+ "type": "uint8"
957
+ },
958
+ {
959
+ "internalType": "bool",
960
+ "name": "isInterceptor",
961
+ "type": "bool"
373
962
  },
374
963
  {
375
964
  "internalType": "address",
376
- "name": "activatedBy",
965
+ "name": "objectAddress",
377
966
  "type": "address"
378
967
  },
379
968
  {
380
- "internalType": "Timestamp",
381
- "name": "activatedAt",
382
- "type": "uint40"
969
+ "internalType": "address",
970
+ "name": "initialOwner",
971
+ "type": "address"
383
972
  },
384
973
  {
385
- "internalType": "Blocknumber",
386
- "name": "activatedIn",
387
- "type": "uint32"
974
+ "internalType": "bytes",
975
+ "name": "data",
976
+ "type": "bytes"
388
977
  }
389
978
  ],
390
- "internalType": "struct IVersionable.VersionInfo",
391
- "name": "",
979
+ "internalType": "struct IRegistry.ObjectInfo",
980
+ "name": "info",
392
981
  "type": "tuple"
393
982
  }
394
983
  ],
395
- "stateMutability": "view",
984
+ "stateMutability": "nonpayable",
396
985
  "type": "function"
397
986
  },
398
987
  {
399
988
  "inputs": [
400
989
  {
401
- "internalType": "address",
402
- "name": "implementation",
403
- "type": "address"
404
- },
405
- {
406
- "internalType": "address",
407
- "name": "activatedBy",
408
- "type": "address"
409
- },
410
- {
411
- "internalType": "bytes",
412
- "name": "data",
413
- "type": "bytes"
990
+ "internalType": "bytes4",
991
+ "name": "interfaceId",
992
+ "type": "bytes4"
414
993
  }
415
994
  ],
416
- "name": "initialize",
995
+ "name": "registerInterface",
417
996
  "outputs": [],
418
997
  "stateMutability": "nonpayable",
419
998
  "type": "function"
420
999
  },
421
- {
422
- "inputs": [
423
- {
424
- "internalType": "Version",
425
- "name": "_version",
426
- "type": "uint24"
427
- }
428
- ],
429
- "name": "isInitialized",
430
- "outputs": [
431
- {
432
- "internalType": "bool",
433
- "name": "",
434
- "type": "bool"
435
- }
436
- ],
437
- "stateMutability": "view",
438
- "type": "function"
439
- },
440
1000
  {
441
1001
  "inputs": [
442
1002
  {
@@ -482,7 +1042,7 @@
482
1042
  "type": "tuple"
483
1043
  }
484
1044
  ],
485
- "name": "registerBundle",
1045
+ "name": "registerPolicy",
486
1046
  "outputs": [
487
1047
  {
488
1048
  "internalType": "NftId",
@@ -496,22 +1056,17 @@
496
1056
  {
497
1057
  "inputs": [
498
1058
  {
499
- "internalType": "contract IBaseComponent",
500
- "name": "component",
1059
+ "internalType": "contract IComponent",
1060
+ "name": "pool",
501
1061
  "type": "address"
502
1062
  },
503
- {
504
- "internalType": "ObjectType",
505
- "name": "componentType",
506
- "type": "uint8"
507
- },
508
1063
  {
509
1064
  "internalType": "address",
510
1065
  "name": "owner",
511
1066
  "type": "address"
512
1067
  }
513
1068
  ],
514
- "name": "registerComponent",
1069
+ "name": "registerPool",
515
1070
  "outputs": [
516
1071
  {
517
1072
  "components": [
@@ -554,11 +1109,6 @@
554
1109
  "internalType": "struct IRegistry.ObjectInfo",
555
1110
  "name": "info",
556
1111
  "type": "tuple"
557
- },
558
- {
559
- "internalType": "bytes",
560
- "name": "data",
561
- "type": "bytes"
562
1112
  }
563
1113
  ],
564
1114
  "stateMutability": "nonpayable",
@@ -567,12 +1117,17 @@
567
1117
  {
568
1118
  "inputs": [
569
1119
  {
570
- "internalType": "contract IRegisterable",
571
- "name": "instance",
1120
+ "internalType": "contract IComponent",
1121
+ "name": "product",
1122
+ "type": "address"
1123
+ },
1124
+ {
1125
+ "internalType": "address",
1126
+ "name": "owner",
572
1127
  "type": "address"
573
1128
  }
574
1129
  ],
575
- "name": "registerInstance",
1130
+ "name": "registerProduct",
576
1131
  "outputs": [
577
1132
  {
578
1133
  "components": [
@@ -615,11 +1170,6 @@
615
1170
  "internalType": "struct IRegistry.ObjectInfo",
616
1171
  "name": "info",
617
1172
  "type": "tuple"
618
- },
619
- {
620
- "internalType": "bytes",
621
- "name": "data",
622
- "type": "bytes"
623
1173
  }
624
1174
  ],
625
1175
  "stateMutability": "nonpayable",
@@ -670,7 +1220,7 @@
670
1220
  "type": "tuple"
671
1221
  }
672
1222
  ],
673
- "name": "registerPolicy",
1223
+ "name": "registerStake",
674
1224
  "outputs": [
675
1225
  {
676
1226
  "internalType": "NftId",
@@ -684,12 +1234,17 @@
684
1234
  {
685
1235
  "inputs": [
686
1236
  {
687
- "internalType": "contract IService",
688
- "name": "service",
1237
+ "internalType": "contract IRegisterable",
1238
+ "name": "staking",
1239
+ "type": "address"
1240
+ },
1241
+ {
1242
+ "internalType": "address",
1243
+ "name": "owner",
689
1244
  "type": "address"
690
1245
  }
691
1246
  ],
692
- "name": "registerService",
1247
+ "name": "registerStaking",
693
1248
  "outputs": [
694
1249
  {
695
1250
  "components": [
@@ -732,11 +1287,6 @@
732
1287
  "internalType": "struct IRegistry.ObjectInfo",
733
1288
  "name": "info",
734
1289
  "type": "tuple"
735
- },
736
- {
737
- "internalType": "bytes",
738
- "name": "data",
739
- "type": "bytes"
740
1290
  }
741
1291
  ],
742
1292
  "stateMutability": "nonpayable",
@@ -746,18 +1296,12 @@
746
1296
  "inputs": [
747
1297
  {
748
1298
  "internalType": "address",
749
- "name": "tokenAddress",
1299
+ "name": "newAuthority",
750
1300
  "type": "address"
751
1301
  }
752
1302
  ],
753
- "name": "registerToken",
754
- "outputs": [
755
- {
756
- "internalType": "NftId",
757
- "name": "nftId",
758
- "type": "uint96"
759
- }
760
- ],
1303
+ "name": "setAuthority",
1304
+ "outputs": [],
761
1305
  "stateMutability": "nonpayable",
762
1306
  "type": "function"
763
1307
  },
@@ -782,78 +1326,88 @@
782
1326
  },
783
1327
  {
784
1328
  "inputs": [
785
- {
786
- "internalType": "address",
787
- "name": "implementation",
788
- "type": "address"
789
- },
790
- {
791
- "internalType": "address",
792
- "name": "activatedBy",
793
- "type": "address"
794
- },
795
1329
  {
796
1330
  "internalType": "bytes",
797
1331
  "name": "data",
798
1332
  "type": "bytes"
799
1333
  }
800
1334
  ],
801
- "name": "upgrade",
1335
+ "name": "upgradeVersionable",
802
1336
  "outputs": [],
803
1337
  "stateMutability": "nonpayable",
804
1338
  "type": "function"
805
1339
  }
806
1340
  ],
807
- "bytecode": "0x60806040523480156200001157600080fd5b506301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055620000586200005e565b62000112565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000af5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146200010f5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6129e780620001226000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063893d20e8116100de578063c2bf08c811610097578063d943342d11610071578063d943342d146104cd578063e285c9c4146104e0578063e6ab65d9146104e8578063fdd9ec7d1461050f57600080fd5b8063c2bf08c81461048d578063cde749f4146104a0578063cf7a1d77146104ba57600080fd5b8063893d20e8146103e8578063946dfcfe146103f0578063a3f4df7e14610417578063a745e3df14610445578063b3c650151461045a578063b88da7591461047a57600080fd5b80634d459c90116101305780634d459c901461026e5780634f421333146103875780635ab1bd531461039a5780635c992fed146103ba578063644c45e0146103cd578063834af153146103d557600080fd5b806301ffc9a71461017857806309824a80146101ba5780630d8e6e2c146101e55780630fec111c1461020157806317d7de7c146102175780631eff4b221461024b575b600080fd5b6101a56101863660046120c0565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101cd6101c8366004612119565b610522565b6040516001600160601b0390911681526020016101b1565b6101ed6107b4565b60405162ffffff90911681526020016101b1565b61020961083e565b6040516101b19291906121f7565b60408051808201909152600f81526e52656769737472795365727669636560881b60208201525b6040516101b19190612225565b61026060008051602061295283398151915281565b6040519081526020016101b1565b61032a61027c366004612249565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061299283398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101b1565b6101a5610395366004612249565b610972565b6103a2610a25565b6040516001600160a01b0390911681526020016101b1565b6101cd6103c83660046123a4565b610a41565b6101cd610be2565b6102096103e3366004612119565b610c5d565b6103a2610d9f565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610260565b61023e6040518060400160405280600f81526020016e52656769737472795365727669636560881b81525081565b610458610453366004612476565b610e1a565b005b610462610f74565b6040516001600160401b0390911681526020016101b1565b6101ed6104883660046124d7565b610f95565b6101cd61049b3660046123a4565b610fe6565b6104a8611110565b60405160ff90911681526020016101b1565b6104586104c8366004612476565b611193565b6102096104db3660046124f0565b61129c565b6103a2600181565b6102607f7e569c7200a12c63728b648d78f84be7e32ef6804f9ee723e15363ce34d0125181565b61020961051d366004612119565b6114e9565b6040516301ffc9a760e01b8152600090829082906001600160a01b038316906301ffc9a79061055c90633111e9af60e01b9060040161253b565b602060405180830381865afa925050508015610595575060408051601f3d908101601f191682019092526105929181019061255b565b60015b6105a1575060006105a4565b90505b80156105c35760405163087cada760e21b815260040160405180910390fd5b60006105cd610a25565b604051630a57ebcf60e11b81526001600160a01b038216600482018190529192506314afd79e90602401602060405180830381865afa158015610614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106389190612583565b6001600160a01b0316336001600160a01b0316146106695760405163778d468d60e11b815260040160405180910390fd5b60006040518060e0016040528061067e600090565b6001600160601b03168152604051636939560f60e11b81526001600160a01b038516600482018190526020909201919063d272ac1e90602401602060405180830381865afa1580156106d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f891906125ab565b6001600160601b03168152602001601e60ff168152600060208083018290526001600160a01b03808b166040808601919091526001606086015280519283018152928252608090930152516352efcf2760e11b815291925083169063a5df9e4e906107679084906004016125c8565b6020604051808303816000875af1158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa91906125ab565b9695505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610815573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083991906125db565b905090565b610846612082565b6060600060008051602061295283398151915290506040518060e0016040528061086e600090565b6001600160601b0390811682528354600160a01b908190049091166020830152600184015490810460ff9081166040840152600160a81b820416151560608301523060808301526001600160a01b031660a082015260028301805460c0909201916108d8906125f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906125f8565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b60008060008051602061299283398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e9190612632565b1192915050565b600080516020612952833981519152546001600160a01b031690565b600080610a4c610a25565b604051636939560f60e11b81523360048201529091506000906001600160a01b0383169063d272ac1e90602401602060405180830381865afa158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba91906125ab565b90506001600160a01b038216635f1561518260d26040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865afa158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e919061255b565b1515600003610b6057604051632bb46a5f60e01b815260040160405180910390fd5b610b6b8460d2611673565b6040516352efcf2760e11b81526001600160a01b0383169063a5df9e4e90610b979087906004016125c8565b6020604051808303816000875af1158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906125ab565b949350505050565b600060008051602061295283398151915254604051636939560f60e11b81523060048201526001600160a01b039091169063d272ac1e90602401602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083991906125ab565b610c65612082565b6040516301ffc9a760e01b81526060906001600160a01b038416906301ffc9a790610c9b90630de7806f60e41b9060040161253b565b602060405180830381865afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc919061255b565b1515600003610cfe57604051636795c76360e01b815260040160405180910390fd5b610d0b8360325b336117aa565b90925090506000610d1a610a25565b6040516352efcf2760e11b81529091506001600160a01b0382169063a5df9e4e90610d499086906004016125c8565b6020604051808303816000875af1158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c91906125ab565b6001600160601b03168352509092909150565b600060008051602061295283398151915254604051630a57ebcf60e11b81523060048201526001600160a01b03909116906314afd79e90602401602060405180830381865afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108399190612583565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610e3c6107b4565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea0919061264b565b6000805160206129728339815191528054600160401b900460ff1680610ed3575080546001600160401b03808416911610155b15610ef15760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610f1c8585611982565b610f2583611bbd565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610839600080516020612972833981519152546001600160401b031690565b60006000805160206129928339815191526001018281548110610fba57610fba612674565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080610ff1610a25565b604051636939560f60e11b81523360048201529091506000906001600160a01b0383169063d272ac1e90602401602060405180830381865afa15801561103b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105f91906125ab565b90506001600160a01b038216635f1561518260dc6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e3919061255b565b151560000361110557604051632bb46a5f60e01b815260040160405180910390fd5b610b6b8460dc611673565b600061111a6107b4565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108399190612695565b6000805160206129728339815191528054600160401b810460ff1615906001600160401b03166000811580156111c65750825b90506000826001600160401b031660011480156111e25750303b155b9050811580156111f0575080155b1561120e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561123857845460ff60401b1916600160401b1785555b6112428888611982565b61124c8787611bc5565b831561129257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6112a4612082565b6040516301ffc9a760e01b81526060906001600160a01b038616906301ffc9a7906112da90631b1599eb60e21b9060040161253b565b602060405180830381865afa1580156112f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131b919061255b565b151560000361133d57604051634138dc2760e11b815260040160405180910390fd5b6113488585856117aa565b90925090506000611357610a25565b604051636939560f60e11b81523360048201529091506000906001600160a01b0383169063d272ac1e90602401602060405180830381865afa1580156113a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c591906125ab565b604051635f15615160e01b81526001600160601b038216600482015260ff881660248201529091506001600160a01b03831690635f15615190604401602060405180830381865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611442919061255b565b151560000361146457604051632bb46a5f60e01b815260040160405180910390fd5b6040516352efcf2760e11b81526001600160a01b0383169063a5df9e4e906114909087906004016125c8565b6020604051808303816000875af11580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d391906125ab565b6001600160601b0316845250505b935093915050565b6114f1612082565b6040516301ffc9a760e01b81526060906001600160a01b038416906301ffc9a79061152790631b4612f160e31b9060040161253b565b602060405180830381865afa158015611544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611568919061255b565b151560000361158a57604051635458064d60e11b815260040160405180910390fd5b611595836028610d05565b909250905060006115a4610a25565b604051630a57ebcf60e11b81526001600160a01b038216600482018190529192506314afd79e90602401602060405180830381865afa1580156115eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160f9190612583565b6001600160a01b0316336001600160a01b0316146116405760405163778d468d60e11b815260040160405180910390fd5b600160a08401526040516352efcf2760e11b81526001600160a01b0382169063a5df9e4e90610d499086906004016125c8565b60808201516001600160a01b0316156116b5576080820151604051634726455360e11b81526001600160a01b0390911660048201526024015b60405180910390fd5b6116bd610a25565b60a083015160405163c3c5a54760e01b81526001600160a01b03918216600482015291169063c3c5a54790602401602060405180830381865afa158015611708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172c919061255b565b80611742575060a08201516001600160a01b0316155b156117715760a082015160405163711c133360e01b81526001600160a01b0390911660048201526024016116ac565b604082015160ff8281169116146117a657604080830151905163f503452760e01b815260ff90911660048201526024016116ac565b5050565b6117b2612082565b6060846001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156117f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261181a91908101906126f7565b608082015191935091506001600160a01b03868116911614611860576080820151604051634726455360e11b81526001600160a01b0390911660048201526024016116ac565b611868610a25565b60405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa1580156118b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d4919061255b565b806118f55750826001600160a01b03168260a001516001600160a01b031614155b156119245760a082015160405163711c133360e01b81526001600160a01b0390911660048201526024016116ac565b6001600160a01b038516330361194d576040516317faf4db60e11b815260040160405180910390fd5b604082015160ff8581169116146114e157604080830151905163f503452760e01b815260ff90911660048201526024016116ac565b61198a611dbb565b60008051602061299283398151915260006119ba600080516020612972833981519152546001600160401b031690565b905060006119c66107b4565b9050816001600160401b03166001036119f35760028301805462ffffff191662ffffff8316179055611a41565b600283015462ffffff90811690821611611a415760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016116ac565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b03808916928401929092529086169082015260608101611ab54290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610f659083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b610173611dbb565b6000805160206129728339815191528054600160401b810460ff1615906001600160401b0316600081158015611bf85750825b90506000826001600160401b03166001148015611c145750303b155b905081158015611c22575080155b15611c405760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611c6a57845460ff60401b1916600160401b1785555b60008688611c76611110565b604080516001600160a01b03909316602084015260ff9091169082015260600160408051601f1981840301815290829052611cb492916020016127ef565b604051602081830303815290604052905060008151602083016000f09050803b611cdd57600080fd5b604051636939560f60e11b81526001600160a01b0382166004820181905282916000919063d272ac1e90602401602060405180830381865afa158015611d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4b91906125ab565b9050611d5883828d611df4565b611d6863183a225360e11b611e78565b505050508315611db257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60008051602061297283398151915254600160401b900460ff16611df257604051631afcd79f60e31b815260040160405180910390fd5b565b6000611e2260408051808201909152600f81526e52656769737472795365727669636560881b602082015290565b611e2a611110565b604051602001611e3b92919061281e565b6040516020818303038152906040529050611e628484611e59602890565b60008686611e9d565b611e72631b4612f160e31b611e78565b50505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6001600160a01b038616611ef35760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5247422d3031303a52454749535452595f5a45524f000000000060448201526064016116ac565b6040516301ffc9a760e01b815286906001600160a01b038216906301ffc9a790611f289063d053988160e01b9060040161253b565b602060405180830381865afa158015611f45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f69919061255b565b611fb55760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5247422d3031313a4e4f545f524547495354525900000000000060448201526064016116ac565b6001600160a01b03818116600160a01b6001600160601b0389168102919091176000805160206129528339815191529081557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30180546001600160a01b031961ffff60a01b1990911660ff8b1690940260ff60a81b191693909317600160a81b8915150217929092169286169290921790557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3026120718482612892565b5061129263a6d3826560e01b611e78565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b6000602082840312156120d257600080fd5b81356001600160e01b0319811681146120ea57600080fd5b9392505050565b6001600160a01b038116811461210657600080fd5b50565b8035612114816120f1565b919050565b60006020828403121561212b57600080fd5b81356120ea816120f1565b60005b83811015612151578181015183820152602001612139565b50506000910152565b60008151808452612172816020860160208601612136565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c0850152610bda60e085018261215a565b60408152600061220a6040830185612186565b828103602084015261221c818561215a565b95945050505050565b6020815260006120ea602083018461215a565b62ffffff8116811461210657600080fd5b60006020828403121561225b57600080fd5b81356120ea81612238565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561229e5761229e612266565b60405290565b604051601f8201601f191681016001600160401b03811182821017156122cc576122cc612266565b604052919050565b6001600160601b038116811461210657600080fd5b8035612114816122d4565b60ff8116811461210657600080fd5b8035612114816122f4565b801515811461210657600080fd5b80356121148161230e565b60006001600160401b0382111561234057612340612266565b50601f01601f191660200190565b600082601f83011261235f57600080fd5b813561237261236d82612327565b6122a4565b81815284602083860101111561238757600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156123b657600080fd5b81356001600160401b03808211156123cd57600080fd5b9083019060e082860312156123e157600080fd5b6123e961227c565b6123f2836122e9565b8152612400602084016122e9565b602082015261241160408401612303565b60408201526124226060840161231c565b606082015261243360808401612109565b608082015261244460a08401612109565b60a082015260c08301358281111561245b57600080fd5b6124678782860161234e565b60c08301525095945050505050565b60008060006060848603121561248b57600080fd5b8335612496816120f1565b925060208401356124a6816120f1565b915060408401356001600160401b038111156124c157600080fd5b6124cd8682870161234e565b9150509250925092565b6000602082840312156124e957600080fd5b5035919050565b60008060006060848603121561250557600080fd5b8335612510816120f1565b92506020840135612520816122f4565b91506040840135612530816120f1565b809150509250925092565b6001600160e01b031991909116815260200190565b80516121148161230e565b60006020828403121561256d57600080fd5b81516120ea8161230e565b8051612114816120f1565b60006020828403121561259557600080fd5b81516120ea816120f1565b8051612114816122d4565b6000602082840312156125bd57600080fd5b81516120ea816122d4565b6020815260006120ea6020830184612186565b6000602082840312156125ed57600080fd5b81516120ea81612238565b600181811c9082168061260c57607f821691505b60208210810361262c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561264457600080fd5b5051919050565b60006020828403121561265d57600080fd5b81516001600160401b03811681146120ea57600080fd5b634e487b7160e01b600052603260045260246000fd5b8051612114816122f4565b6000602082840312156126a757600080fd5b81516120ea816122f4565b600082601f8301126126c357600080fd5b81516126d161236d82612327565b8181528460208386010111156126e657600080fd5b610bda826020830160208701612136565b6000806040838503121561270a57600080fd5b82516001600160401b038082111561272157600080fd5b9084019060e0828703121561273557600080fd5b61273d61227c565b612746836125a0565b8152612754602084016125a0565b60208201526127656040840161268a565b604082015261277660608401612550565b606082015261278760808401612578565b608082015261279860a08401612578565b60a082015260c0830151828111156127af57600080fd5b6127bb888286016126b2565b60c08301525060208601519094509150808211156127d857600080fd5b506127e5858286016126b2565b9150509250929050565b60008351612801818460208801612136565b835190830190612815818360208801612136565b01949350505050565b604081526000612831604083018561215a565b905060ff831660208301529392505050565b601f82111561288d57600081815260208120601f850160051c8101602086101561286a5750805b601f850160051c820191505b8181101561288957828155600101612876565b5050505b505050565b81516001600160401b038111156128ab576128ab612266565b6128bf816128b984546125f8565b84612843565b602080601f8311600181146128f457600084156128dc5750858301515b600019600386901b1c1916600185901b178555612889565b600085815260208120601f198616915b8281101561292357888601518255948401946001909101908401612904565b50858210156129415787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212200fcc2899f20947795b41a94e5a28ec6b66ab90e107b932c8b8f2bdc72305021864736f6c63430008140033",
808
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c8063893d20e8116100de578063c2bf08c811610097578063d943342d11610071578063d943342d146104cd578063e285c9c4146104e0578063e6ab65d9146104e8578063fdd9ec7d1461050f57600080fd5b8063c2bf08c81461048d578063cde749f4146104a0578063cf7a1d77146104ba57600080fd5b8063893d20e8146103e8578063946dfcfe146103f0578063a3f4df7e14610417578063a745e3df14610445578063b3c650151461045a578063b88da7591461047a57600080fd5b80634d459c90116101305780634d459c901461026e5780634f421333146103875780635ab1bd531461039a5780635c992fed146103ba578063644c45e0146103cd578063834af153146103d557600080fd5b806301ffc9a71461017857806309824a80146101ba5780630d8e6e2c146101e55780630fec111c1461020157806317d7de7c146102175780631eff4b221461024b575b600080fd5b6101a56101863660046120c0565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6101cd6101c8366004612119565b610522565b6040516001600160601b0390911681526020016101b1565b6101ed6107b4565b60405162ffffff90911681526020016101b1565b61020961083e565b6040516101b19291906121f7565b60408051808201909152600f81526e52656769737472795365727669636560881b60208201525b6040516101b19190612225565b61026060008051602061295283398151915281565b6040519081526020016101b1565b61032a61027c366004612249565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061299283398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101b1565b6101a5610395366004612249565b610972565b6103a2610a25565b6040516001600160a01b0390911681526020016101b1565b6101cd6103c83660046123a4565b610a41565b6101cd610be2565b6102096103e3366004612119565b610c5d565b6103a2610d9f565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610260565b61023e6040518060400160405280600f81526020016e52656769737472795365727669636560881b81525081565b610458610453366004612476565b610e1a565b005b610462610f74565b6040516001600160401b0390911681526020016101b1565b6101ed6104883660046124d7565b610f95565b6101cd61049b3660046123a4565b610fe6565b6104a8611110565b60405160ff90911681526020016101b1565b6104586104c8366004612476565b611193565b6102096104db3660046124f0565b61129c565b6103a2600181565b6102607f7e569c7200a12c63728b648d78f84be7e32ef6804f9ee723e15363ce34d0125181565b61020961051d366004612119565b6114e9565b6040516301ffc9a760e01b8152600090829082906001600160a01b038316906301ffc9a79061055c90633111e9af60e01b9060040161253b565b602060405180830381865afa925050508015610595575060408051601f3d908101601f191682019092526105929181019061255b565b60015b6105a1575060006105a4565b90505b80156105c35760405163087cada760e21b815260040160405180910390fd5b60006105cd610a25565b604051630a57ebcf60e11b81526001600160a01b038216600482018190529192506314afd79e90602401602060405180830381865afa158015610614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106389190612583565b6001600160a01b0316336001600160a01b0316146106695760405163778d468d60e11b815260040160405180910390fd5b60006040518060e0016040528061067e600090565b6001600160601b03168152604051636939560f60e11b81526001600160a01b038516600482018190526020909201919063d272ac1e90602401602060405180830381865afa1580156106d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f891906125ab565b6001600160601b03168152602001601e60ff168152600060208083018290526001600160a01b03808b166040808601919091526001606086015280519283018152928252608090930152516352efcf2760e11b815291925083169063a5df9e4e906107679084906004016125c8565b6020604051808303816000875af1158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa91906125ab565b9695505050505050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610815573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083991906125db565b905090565b610846612082565b6060600060008051602061295283398151915290506040518060e0016040528061086e600090565b6001600160601b0390811682528354600160a01b908190049091166020830152600184015490810460ff9081166040840152600160a81b820416151560608301523060808301526001600160a01b031660a082015260028301805460c0909201916108d8906125f8565b80601f0160208091040260200160405190810160405280929190818152602001828054610904906125f8565b80156109515780601f1061092657610100808354040283529160200191610951565b820191906000526020600020905b81548152906001019060200180831161093457829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b60008060008051602061299283398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af41580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e9190612632565b1192915050565b600080516020612952833981519152546001600160a01b031690565b600080610a4c610a25565b604051636939560f60e11b81523360048201529091506000906001600160a01b0383169063d272ac1e90602401602060405180830381865afa158015610a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aba91906125ab565b90506001600160a01b038216635f1561518260d26040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865afa158015610b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3e919061255b565b1515600003610b6057604051632bb46a5f60e01b815260040160405180910390fd5b610b6b8460d2611673565b6040516352efcf2760e11b81526001600160a01b0383169063a5df9e4e90610b979087906004016125c8565b6020604051808303816000875af1158015610bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bda91906125ab565b949350505050565b600060008051602061295283398151915254604051636939560f60e11b81523060048201526001600160a01b039091169063d272ac1e90602401602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083991906125ab565b610c65612082565b6040516301ffc9a760e01b81526060906001600160a01b038416906301ffc9a790610c9b90630de7806f60e41b9060040161253b565b602060405180830381865afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc919061255b565b1515600003610cfe57604051636795c76360e01b815260040160405180910390fd5b610d0b8360325b336117aa565b90925090506000610d1a610a25565b6040516352efcf2760e11b81529091506001600160a01b0382169063a5df9e4e90610d499086906004016125c8565b6020604051808303816000875af1158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c91906125ab565b6001600160601b03168352509092909150565b600060008051602061295283398151915254604051630a57ebcf60e11b81523060048201526001600160a01b03909116906314afd79e90602401602060405180830381865afa158015610df6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108399190612583565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c610e3c6107b4565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea0919061264b565b6000805160206129728339815191528054600160401b900460ff1680610ed3575080546001600160401b03808416911610155b15610ef15760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610f1c8585611982565b610f2583611bbd565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610839600080516020612972833981519152546001600160401b031690565b60006000805160206129928339815191526001018281548110610fba57610fba612674565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080610ff1610a25565b604051636939560f60e11b81523360048201529091506000906001600160a01b0383169063d272ac1e90602401602060405180830381865afa15801561103b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105f91906125ab565b90506001600160a01b038216635f1561518260dc6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865afa1580156110bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e3919061255b565b151560000361110557604051632bb46a5f60e01b815260040160405180910390fd5b610b6b8460dc611673565b600061111a6107b4565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af415801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108399190612695565b6000805160206129728339815191528054600160401b810460ff1615906001600160401b03166000811580156111c65750825b90506000826001600160401b031660011480156111e25750303b155b9050811580156111f0575080155b1561120e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561123857845460ff60401b1916600160401b1785555b6112428888611982565b61124c8787611bc5565b831561129257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6112a4612082565b6040516301ffc9a760e01b81526060906001600160a01b038616906301ffc9a7906112da90631b1599eb60e21b9060040161253b565b602060405180830381865afa1580156112f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131b919061255b565b151560000361133d57604051634138dc2760e11b815260040160405180910390fd5b6113488585856117aa565b90925090506000611357610a25565b604051636939560f60e11b81523360048201529091506000906001600160a01b0383169063d272ac1e90602401602060405180830381865afa1580156113a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c591906125ab565b604051635f15615160e01b81526001600160601b038216600482015260ff881660248201529091506001600160a01b03831690635f15615190604401602060405180830381865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611442919061255b565b151560000361146457604051632bb46a5f60e01b815260040160405180910390fd5b6040516352efcf2760e11b81526001600160a01b0383169063a5df9e4e906114909087906004016125c8565b6020604051808303816000875af11580156114af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d391906125ab565b6001600160601b0316845250505b935093915050565b6114f1612082565b6040516301ffc9a760e01b81526060906001600160a01b038416906301ffc9a79061152790631b4612f160e31b9060040161253b565b602060405180830381865afa158015611544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611568919061255b565b151560000361158a57604051635458064d60e11b815260040160405180910390fd5b611595836028610d05565b909250905060006115a4610a25565b604051630a57ebcf60e11b81526001600160a01b038216600482018190529192506314afd79e90602401602060405180830381865afa1580156115eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160f9190612583565b6001600160a01b0316336001600160a01b0316146116405760405163778d468d60e11b815260040160405180910390fd5b600160a08401526040516352efcf2760e11b81526001600160a01b0382169063a5df9e4e90610d499086906004016125c8565b60808201516001600160a01b0316156116b5576080820151604051634726455360e11b81526001600160a01b0390911660048201526024015b60405180910390fd5b6116bd610a25565b60a083015160405163c3c5a54760e01b81526001600160a01b03918216600482015291169063c3c5a54790602401602060405180830381865afa158015611708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172c919061255b565b80611742575060a08201516001600160a01b0316155b156117715760a082015160405163711c133360e01b81526001600160a01b0390911660048201526024016116ac565b604082015160ff8281169116146117a657604080830151905163f503452760e01b815260ff90911660048201526024016116ac565b5050565b6117b2612082565b6060846001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156117f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261181a91908101906126f7565b608082015191935091506001600160a01b03868116911614611860576080820151604051634726455360e11b81526001600160a01b0390911660048201526024016116ac565b611868610a25565b60405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa1580156118b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d4919061255b565b806118f55750826001600160a01b03168260a001516001600160a01b031614155b156119245760a082015160405163711c133360e01b81526001600160a01b0390911660048201526024016116ac565b6001600160a01b038516330361194d576040516317faf4db60e11b815260040160405180910390fd5b604082015160ff8581169116146114e157604080830151905163f503452760e01b815260ff90911660048201526024016116ac565b61198a611dbb565b60008051602061299283398151915260006119ba600080516020612972833981519152546001600160401b031690565b905060006119c66107b4565b9050816001600160401b03166001036119f35760028301805462ffffff191662ffffff8316179055611a41565b600283015462ffffff90811690821611611a415760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016116ac565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b03808916928401929092529086169082015260608101611ab54290565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf6890610f659083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b610173611dbb565b6000805160206129728339815191528054600160401b810460ff1615906001600160401b0316600081158015611bf85750825b90506000826001600160401b03166001148015611c145750303b155b905081158015611c22575080155b15611c405760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611c6a57845460ff60401b1916600160401b1785555b60008688611c76611110565b604080516001600160a01b03909316602084015260ff9091169082015260600160408051601f1981840301815290829052611cb492916020016127ef565b604051602081830303815290604052905060008151602083016000f09050803b611cdd57600080fd5b604051636939560f60e11b81526001600160a01b0382166004820181905282916000919063d272ac1e90602401602060405180830381865afa158015611d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4b91906125ab565b9050611d5883828d611df4565b611d6863183a225360e11b611e78565b505050508315611db257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60008051602061297283398151915254600160401b900460ff16611df257604051631afcd79f60e31b815260040160405180910390fd5b565b6000611e2260408051808201909152600f81526e52656769737472795365727669636560881b602082015290565b611e2a611110565b604051602001611e3b92919061281e565b6040516020818303038152906040529050611e628484611e59602890565b60008686611e9d565b611e72631b4612f160e31b611e78565b50505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6001600160a01b038616611ef35760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5247422d3031303a52454749535452595f5a45524f000000000060448201526064016116ac565b6040516301ffc9a760e01b815286906001600160a01b038216906301ffc9a790611f289063d053988160e01b9060040161253b565b602060405180830381865afa158015611f45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f69919061255b565b611fb55760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5247422d3031313a4e4f545f524547495354525900000000000060448201526064016116ac565b6001600160a01b03818116600160a01b6001600160601b0389168102919091176000805160206129528339815191529081557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30180546001600160a01b031961ffff60a01b1990911660ff8b1690940260ff60a81b191693909317600160a81b8915150217929092169286169290921790557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa3026120718482612892565b5061129263a6d3826560e01b611e78565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b6000602082840312156120d257600080fd5b81356001600160e01b0319811681146120ea57600080fd5b9392505050565b6001600160a01b038116811461210657600080fd5b50565b8035612114816120f1565b919050565b60006020828403121561212b57600080fd5b81356120ea816120f1565b60005b83811015612151578181015183820152602001612139565b50506000910152565b60008151808452612172816020860160208601612136565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c0850152610bda60e085018261215a565b60408152600061220a6040830185612186565b828103602084015261221c818561215a565b95945050505050565b6020815260006120ea602083018461215a565b62ffffff8116811461210657600080fd5b60006020828403121561225b57600080fd5b81356120ea81612238565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b038111828210171561229e5761229e612266565b60405290565b604051601f8201601f191681016001600160401b03811182821017156122cc576122cc612266565b604052919050565b6001600160601b038116811461210657600080fd5b8035612114816122d4565b60ff8116811461210657600080fd5b8035612114816122f4565b801515811461210657600080fd5b80356121148161230e565b60006001600160401b0382111561234057612340612266565b50601f01601f191660200190565b600082601f83011261235f57600080fd5b813561237261236d82612327565b6122a4565b81815284602083860101111561238757600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156123b657600080fd5b81356001600160401b03808211156123cd57600080fd5b9083019060e082860312156123e157600080fd5b6123e961227c565b6123f2836122e9565b8152612400602084016122e9565b602082015261241160408401612303565b60408201526124226060840161231c565b606082015261243360808401612109565b608082015261244460a08401612109565b60a082015260c08301358281111561245b57600080fd5b6124678782860161234e565b60c08301525095945050505050565b60008060006060848603121561248b57600080fd5b8335612496816120f1565b925060208401356124a6816120f1565b915060408401356001600160401b038111156124c157600080fd5b6124cd8682870161234e565b9150509250925092565b6000602082840312156124e957600080fd5b5035919050565b60008060006060848603121561250557600080fd5b8335612510816120f1565b92506020840135612520816122f4565b91506040840135612530816120f1565b809150509250925092565b6001600160e01b031991909116815260200190565b80516121148161230e565b60006020828403121561256d57600080fd5b81516120ea8161230e565b8051612114816120f1565b60006020828403121561259557600080fd5b81516120ea816120f1565b8051612114816122d4565b6000602082840312156125bd57600080fd5b81516120ea816122d4565b6020815260006120ea6020830184612186565b6000602082840312156125ed57600080fd5b81516120ea81612238565b600181811c9082168061260c57607f821691505b60208210810361262c57634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561264457600080fd5b5051919050565b60006020828403121561265d57600080fd5b81516001600160401b03811681146120ea57600080fd5b634e487b7160e01b600052603260045260246000fd5b8051612114816122f4565b6000602082840312156126a757600080fd5b81516120ea816122f4565b600082601f8301126126c357600080fd5b81516126d161236d82612327565b8181528460208386010111156126e657600080fd5b610bda826020830160208701612136565b6000806040838503121561270a57600080fd5b82516001600160401b038082111561272157600080fd5b9084019060e0828703121561273557600080fd5b61273d61227c565b612746836125a0565b8152612754602084016125a0565b60208201526127656040840161268a565b604082015261277660608401612550565b606082015261278760808401612578565b608082015261279860a08401612578565b60a082015260c0830151828111156127af57600080fd5b6127bb888286016126b2565b60c08301525060208601519094509150808211156127d857600080fd5b506127e5858286016126b2565b9150509250929050565b60008351612801818460208801612136565b835190830190612815818360208801612136565b01949350505050565b604081526000612831604083018561215a565b905060ff831660208301529392505050565b601f82111561288d57600081815260208120601f850160051c8101602086101561286a5750805b601f850160051c820191505b8181101561288957828155600101612876565b5050505b505050565b81516001600160401b038111156128ab576128ab612266565b6128bf816128b984546125f8565b84612843565b602080601f8311600181146128f457600084156128dc5750858301515b600019600386901b1c1916600185901b178555612889565b600085815260208120601f198616915b8281101561292357888601518255948401946001909101908401612904565b50858210156129415787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a26469706673582212200fcc2899f20947795b41a94e5a28ec6b66ab90e107b932c8b8f2bdc72305021864736f6c63430008140033",
1341
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612af180620000e66000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063675393bf1161010f578063ada9652e116100a2578063c4c79d8b11610071578063c4c79d8b14610470578063d943342d14610483578063ed841d0c14610496578063f7c34ee01461049e57600080fd5b8063ada9652e14610431578063b68d180914610446578063bf7e214f14610455578063c2bf08c81461045d57600080fd5b8063893d20e8116100de578063893d20e8146103ee5780638e32e979146103f65780638fb36037146104095780638fbc2d811461041e57600080fd5b8063675393bf146103a25780637286e5e5146103b55780637a9e5e4b146103c85780638105cc7f146103db57600080fd5b8063329d6e74116101875780635ab1bd53116101565780635ab1bd53146103395780635c992fed1461035e5780635d96628914610371578063644c45e01461038457600080fd5b8063329d6e74146102f857806336fc697e1461030b57806349bb9e4b1461031357806357a8fba71461032657600080fd5b8063138461e0116101c3578063138461e01461027b5780631eff4b221461029b578063214cdb80146102d057806327bb7a33146102e557600080fd5b806301ffc9a7146101f5578063026bc43b146102375780630d8e6e2c146102575780630fec111c14610273575b600080fd5b6102226102033660046120c7565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61024a61024536600461211d565b6104b1565b60405161022e91906121a6565b61025f610672565b60405162ffffff909116815260200161022e565b61024a6106fc565b61028361088d565b6040516001600160601b03909116815260200161022e565b6102c27f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161022e565b6102e36102de3660046120c7565b610898565b005b6102e36102f336600461236f565b6108c5565b6102e3610306366004612407565b61096a565b6102e3610ab7565b6102e361032136600461243b565b610afd565b61028361033436600461248a565b610bfc565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161022e565b61028361036c36600461248a565b610c8b565b61024a61037f36600461211d565b610ca1565b600080516020612a5c833981519152546001600160601b0316610283565b6102e36103b036600461255c565b610dec565b61024a6103c336600461211d565b610eff565b6102e36103d636600461255c565b610fb7565b6102836103e936600461248a565b61103a565b610346611050565b6102e3610404366004612579565b611187565b6104116113c0565b60405161022e91906125c4565b61024a61042c36600461211d565b6113f8565b6102c2600080516020612a5c83398151915281565b6040516028815260200161022e565b6103466114b0565b61028361046b36600461248a565b6114cc565b61024a61047e36600461211d565b6114e2565b61024a6104913660046125d9565b6114fe565b6102c2600081565b6102e36104ac36600461211d565b61164a565b6104b9612089565b6104c6335b6000366116c1565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a7906104f990637344136d60e01b906004016125c4565b602060405180830381865afa158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a9190612614565b61056757604051631c8275e960e21b81526001600160a01b03841660048201526024015b60405180910390fd5b6105748360465b846117c7565b90506105886001546001600160a01b031690565b6001600160a01b031663a5df9e4e826040518263ffffffff1660e01b81526004016105b391906121a6565b6020604051808303816000875af11580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f6919061263c565b6001600160601b0316815260408051629c230f60e51b815290516001600160a01b0385169163138461e091600480830192602092919082900301816000875af1158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b919061263c565b5092915050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156106d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f79190612659565b905090565b610704612089565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a1919061263c565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016107e9611050565b6001600160a01b031681526020018260010180546108069061267e565b80601f01602080910402602001604051908101604052809291908181526020018280546108329061267e565b801561087f5780601f106108545761010080835404028352916020019161087f565b820191906000526020600020905b81548152906001019060200180831161086257829003601f168201915b505050505081525091505090565b60006106f730611a3e565b6108a0611c3f565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6108cd611c3f565b6108d7828761164a565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161096083826126fe565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c61098c610672565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f091906127bd565b600080516020612a9c8339815191528054600160401b900460ff1680610a23575080546001600160401b03808416911610155b15610a415760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a6b83611c78565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610abf611c3f565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600080516020612a9c8339815191528054600160401b810460ff1615906001600160401b0316600081158015610b305750825b90506000826001600160401b03166001148015610b4c5750303b155b905081158015610b5a575080155b15610b785760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ba257845460ff60401b1916600160401b1785555b610bac8787611c80565b8315610bf357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b6000610c07336104be565b610c1282607a611d9f565b6001546040516352efcf2760e11b81526001600160a01b039091169063a5df9e4e90610c429085906004016121a6565b6020604051808303816000875af1158015610c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c85919061263c565b92915050565b6000610c96336104be565b610c128260d3611d9f565b610ca9612089565b610cb2336104be565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a790610ce59063153c0ad960e01b906004016125c4565b602060405180830381865afa158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d269190612614565b610d4e5760405163704b6c6d60e11b81526001600160a01b038416600482015260240161055e565b610d5983606e61056e565b9050610d6d6001546001600160a01b031690565b6001600160a01b031663a5df9e4e826040518263ffffffff1660e01b8152600401610d9891906121a6565b6020604051808303816000875af1158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb919061263c565b6001600160601b0316815292915050565b610df4611c3f565b806001600160a01b03163b600003610e2a5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161055e565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526301ffc9a790610e709063e607072160e01b906004016125c4565b602060405180830381865afa925050508015610ea9575060408051601f3d908101601f19168201909252610ea691810190612614565b60015b610ed15760405163fdeac91f60e01b81526001600160a01b038216600482015260240161055e565b80610efa5760405163fdeac91f60e01b81526001600160a01b038316600482015260240161055e565b505b50565b610f07612089565b610f10336104be565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a790610f4390632363b9ed60e21b906004016125c4565b602060405180830381865afa158015610f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f849190612614565b610fac576040516304c983f360e41b81526001600160a01b038416600482015260240161055e565b610d5983608c61056e565b33610fc06114b0565b6001600160a01b0316816001600160a01b031614610ffb5760405162d1953b60e31b81526001600160a01b038216600482015260240161055e565b816001600160a01b03163b600003611031576040516361798f2f60e11b81526001600160a01b038316600482015260240161055e565b610efa82611efa565b6000611045336104be565b610c12826050611d9f565b600080600080516020612a5c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e49190612614565b15611171576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b91906127f1565b91505090565b54600160601b90046001600160a01b0316919050565b61118f611c3f565b61120f83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f5919061263c565b603c600085604051806020016040528060008152506108c5565b6001600160a01b0382161561122c5761122782611f5b565b61139b565b60006112406001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c49190612819565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132d91906127f1565b9050611399816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139491906127f1565b611f5b565b505b6113ab634a531f3360e01b610898565b6113bb63b68d180960e01b610898565b505050565b600080516020612a7c833981519152805460009190600160a01b900460ff166113ea57600061116b565b638fb3603760e01b91505090565b611400612089565b611409336104be565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a79061143c906363541cc160e11b906004016125c4565b602060405180830381865afa158015611459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147d9190612614565b6114a5576040516367237f5b60e11b81526001600160a01b038416600482015260240161055e565b610d5983607861056e565b600080516020612a7c833981519152546001600160a01b031690565b60006114d7336104be565b610c128260dc611d9f565b6114ea612089565b6114f3336104be565b610d5983602d61056e565b611506612089565b61150f336104be565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061154290632986755f60e11b906004016125c4565b602060405180830381865afa15801561155f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115839190612614565b6115ab57604051632624ae7760e01b81526001600160a01b038516600482015260240161055e565b6115b68484846117c7565b90506115ca6001546001600160a01b031690565b6001600160a01b031663a5df9e4e826040518263ffffffff1660e01b81526004016115f591906121a6565b6020604051808303816000875af1158015611614573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611638919061263c565b6001600160601b031681529392505050565b611652611c3f565b61165b81610dec565b611663610ab7565b6001600160a01b03821661168a5760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020612a5c83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080516020612a7c8339815191526000806116fc6116de6114b0565b87306116ee600460008a8c612836565b6116f791612860565b611f6c565b91509150816117bf5763ffffffff81161561179c57825460ff60a01b1916600160a01b17835561172a6114b0565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161175993929190612890565b600060405180830381600087803b15801561177357600080fd5b505af1158015611787573d6000803e3d6000fd5b5050845460ff60a01b19168555506117bf9050565b60405162d1953b60e31b81526001600160a01b038716600482015260240161055e565b505050505050565b6117cf612089565b836001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561180d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118359190810190612915565b9050836001600160a01b031681608001516001600160a01b0316146118865760808101516040516306704ad960e11b81526001600160a01b038087166004830152909116602482015260440161055e565b604081015160ff8481169116146118d257604080820151905163137f2ac560e31b81526001600160a01b038616600482015260ff8086166024830152909116604482015260640161055e565b60a08101516001600160a01b038082169084161461191e576040516335ce70c360e21b81526001600160a01b03808716600483015280851660248301528216604482015260640161055e565b846001600160a01b0316816001600160a01b03160361195b57604051638e80a3f960e01b81526001600160a01b038616600482015260240161055e565b6001600160a01b03811661198d576040516343e40cb560e01b81526001600160a01b038616600482015260240161055e565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190612614565b15611a36576040516309ad872b60e41b81526001600160a01b0380871660048301528216602482015260440161055e565b509392505050565b600080600080516020612a5c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190612614565b15611afe5780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161055e565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b769190612614565b611b9e5760405163b9304b0d60e01b81526001600160a01b038416600482015260240161055e565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c16919061263c565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b600080516020612a9c83398151915254600160401b900460ff16611c7657604051631afcd79f60e31b815260040160405180910390fd5b565b6101f0611c3f565b600080516020612a9c8339815191528054600160401b810460ff1615906001600160401b0316600081158015611cb35750825b90506000826001600160401b03166001148015611ccf5750303b155b905081158015611cdd575080155b15611cfb5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611d2557845460ff60401b1916600160401b1785555b60008087806020019051810190611d3c91906129d8565b91509150611d4b82828b611187565b611d5b631987a50360e11b610898565b50508315610bf357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610bea565b60808201516001600160a01b031615611dd65760408083015190516340fda83160e11b815260ff909116600482015260240161055e565b604082015160ff828116911614611e13576040808301519051632e5fbed960e21b815260ff8084166004830152909116602482015260440161055e565b60a08201516001600160a01b038116611e4a576040808401519051633312954f60e21b815260ff909116600482015260240161055e565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015611e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec29190612614565b156113bb57604080840151905163b4139d2560e01b815260ff90911660048201526001600160a01b038216602482015260440161055e565b600080516020612a7c83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611f63611c3f565b610efc81612078565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611fdb9190612a07565b600060405180830381855afa9150503d8060008114612016576040519150601f19603f3d011682016040523d82523d6000602084013e61201b565b606091505b5091509150811561206d57604081511061204d57808060200190518101906120439190612a23565b909450925061206d565b602081511061206d578080602001905181019061206a9190612614565b93505b505094509492505050565b612080611c3f565b610efc81611efa565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b6000602082840312156120d957600080fd5b81356001600160e01b0319811681146120f157600080fd5b9392505050565b6001600160a01b0381168114610efc57600080fd5b8035612118816120f8565b919050565b6000806040838503121561213057600080fd5b823561213b816120f8565b9150602083013561214b816120f8565b809150509250929050565b60005b83811015612171578181015183820152602001612159565b50506000910152565b60008151808452612192816020860160208601612156565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161220f60c08401826001600160a01b03169052565b5060c083015160e08084015261222961010084018261217a565b949350505050565b6001600160601b0381168114610efc57600080fd5b803561211881612231565b60ff81168114610efc57600080fd5b803561211881612251565b8015158114610efc57600080fd5b80356121188161226b565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156122bc576122bc612284565b60405290565b604051601f8201601f191681016001600160401b03811182821017156122ea576122ea612284565b604052919050565b60006001600160401b0382111561230b5761230b612284565b50601f01601f191660200190565b600082601f83011261232a57600080fd5b813561233d612338826122f2565b6122c2565b81815284602083860101111561235257600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561238857600080fd5b8635612393816120f8565b955060208701356123a381612231565b945060408701356123b381612251565b935060608701356123c38161226b565b925060808701356123d3816120f8565b915060a08701356001600160401b038111156123ee57600080fd5b6123fa89828a01612319565b9150509295509295509295565b60006020828403121561241957600080fd5b81356001600160401b0381111561242f57600080fd5b61222984828501612319565b6000806040838503121561244e57600080fd5b8235612459816120f8565b915060208301356001600160401b0381111561247457600080fd5b61248085828601612319565b9150509250929050565b60006020828403121561249c57600080fd5b81356001600160401b03808211156124b357600080fd5b9083019060e082860312156124c757600080fd5b6124cf61229a565b6124d883612246565b81526124e660208401612246565b60208201526124f760408401612260565b604082015261250860608401612279565b60608201526125196080840161210d565b608082015261252a60a0840161210d565b60a082015260c08301358281111561254157600080fd5b61254d87828601612319565b60c08301525095945050505050565b60006020828403121561256e57600080fd5b81356120f1816120f8565b60008060006060848603121561258e57600080fd5b8335612599816120f8565b925060208401356125a9816120f8565b915060408401356125b9816120f8565b809150509250925092565b6001600160e01b031991909116815260200190565b6000806000606084860312156125ee57600080fd5b83356125f9816120f8565b925060208401356125a981612251565b80516121188161226b565b60006020828403121561262657600080fd5b81516120f18161226b565b805161211881612231565b60006020828403121561264e57600080fd5b81516120f181612231565b60006020828403121561266b57600080fd5b815162ffffff811681146120f157600080fd5b600181811c9082168061269257607f821691505b6020821081036126b257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156113bb57600081815260208120601f850160051c810160208610156126df5750805b601f850160051c820191505b818110156117bf578281556001016126eb565b81516001600160401b0381111561271757612717612284565b61272b81612725845461267e565b846126b8565b602080601f83116001811461276057600084156127485750858301515b600019600386901b1c1916600185901b1785556117bf565b600085815260208120601f198616915b8281101561278f57888601518255948401946001909101908401612770565b50858210156127ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156127cf57600080fd5b81516001600160401b03811681146120f157600080fd5b8051612118816120f8565b60006020828403121561280357600080fd5b81516120f1816120f8565b805161211881612251565b60006020828403121561282b57600080fd5b81516120f181612251565b6000808585111561284657600080fd5b8386111561285357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156128885780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082601f8301126128e157600080fd5b81516128ef612338826122f2565b81815284602083860101111561290457600080fd5b612229826020830160208701612156565b60006020828403121561292757600080fd5b81516001600160401b038082111561293e57600080fd5b9083019060e0828603121561295257600080fd5b61295a61229a565b61296383612631565b815261297160208401612631565b60208201526129826040840161280e565b604082015261299360608401612609565b60608201526129a4608084016127e6565b60808201526129b560a084016127e6565b60a082015260c0830151828111156129cc57600080fd5b61254d878286016128d0565b600080604083850312156129eb57600080fd5b82516129f6816120f8565b602084015190925061214b816120f8565b60008251612a19818460208701612156565b9190910192915050565b60008060408385031215612a3657600080fd5b8251612a418161226b565b602084015190925063ffffffff8116811461214b57600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206c52b123b6f6732a32af02ad53a85526621faf99f2b968eb35fe1ea085d1910364736f6c63430008140033",
1342
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063675393bf1161010f578063ada9652e116100a2578063c4c79d8b11610071578063c4c79d8b14610470578063d943342d14610483578063ed841d0c14610496578063f7c34ee01461049e57600080fd5b8063ada9652e14610431578063b68d180914610446578063bf7e214f14610455578063c2bf08c81461045d57600080fd5b8063893d20e8116100de578063893d20e8146103ee5780638e32e979146103f65780638fb36037146104095780638fbc2d811461041e57600080fd5b8063675393bf146103a25780637286e5e5146103b55780637a9e5e4b146103c85780638105cc7f146103db57600080fd5b8063329d6e74116101875780635ab1bd53116101565780635ab1bd53146103395780635c992fed1461035e5780635d96628914610371578063644c45e01461038457600080fd5b8063329d6e74146102f857806336fc697e1461030b57806349bb9e4b1461031357806357a8fba71461032657600080fd5b8063138461e0116101c3578063138461e01461027b5780631eff4b221461029b578063214cdb80146102d057806327bb7a33146102e557600080fd5b806301ffc9a7146101f5578063026bc43b146102375780630d8e6e2c146102575780630fec111c14610273575b600080fd5b6102226102033660046120c7565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61024a61024536600461211d565b6104b1565b60405161022e91906121a6565b61025f610672565b60405162ffffff909116815260200161022e565b61024a6106fc565b61028361088d565b6040516001600160601b03909116815260200161022e565b6102c27f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161022e565b6102e36102de3660046120c7565b610898565b005b6102e36102f336600461236f565b6108c5565b6102e3610306366004612407565b61096a565b6102e3610ab7565b6102e361032136600461243b565b610afd565b61028361033436600461248a565b610bfc565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161022e565b61028361036c36600461248a565b610c8b565b61024a61037f36600461211d565b610ca1565b600080516020612a5c833981519152546001600160601b0316610283565b6102e36103b036600461255c565b610dec565b61024a6103c336600461211d565b610eff565b6102e36103d636600461255c565b610fb7565b6102836103e936600461248a565b61103a565b610346611050565b6102e3610404366004612579565b611187565b6104116113c0565b60405161022e91906125c4565b61024a61042c36600461211d565b6113f8565b6102c2600080516020612a5c83398151915281565b6040516028815260200161022e565b6103466114b0565b61028361046b36600461248a565b6114cc565b61024a61047e36600461211d565b6114e2565b61024a6104913660046125d9565b6114fe565b6102c2600081565b6102e36104ac36600461211d565b61164a565b6104b9612089565b6104c6335b6000366116c1565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a7906104f990637344136d60e01b906004016125c4565b602060405180830381865afa158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a9190612614565b61056757604051631c8275e960e21b81526001600160a01b03841660048201526024015b60405180910390fd5b6105748360465b846117c7565b90506105886001546001600160a01b031690565b6001600160a01b031663a5df9e4e826040518263ffffffff1660e01b81526004016105b391906121a6565b6020604051808303816000875af11580156105d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f6919061263c565b6001600160601b0316815260408051629c230f60e51b815290516001600160a01b0385169163138461e091600480830192602092919082900301816000875af1158015610647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066b919061263c565b5092915050565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af41580156106d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f79190612659565b905090565b610704612089565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a1919061263c565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016107e9611050565b6001600160a01b031681526020018260010180546108069061267e565b80601f01602080910402602001604051908101604052809291908181526020018280546108329061267e565b801561087f5780601f106108545761010080835404028352916020019161087f565b820191906000526020600020905b81548152906001019060200180831161086257829003601f168201915b505050505081525091505090565b60006106f730611a3e565b6108a0611c3f565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6108cd611c3f565b6108d7828761164a565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161096083826126fe565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c61098c610672565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156109cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f091906127bd565b600080516020612a9c8339815191528054600160401b900460ff1680610a23575080546001600160401b03808416911610155b15610a415760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610a6b83611c78565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610abf611c3f565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600080516020612a9c8339815191528054600160401b810460ff1615906001600160401b0316600081158015610b305750825b90506000826001600160401b03166001148015610b4c5750303b155b905081158015610b5a575080155b15610b785760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ba257845460ff60401b1916600160401b1785555b610bac8787611c80565b8315610bf357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b6000610c07336104be565b610c1282607a611d9f565b6001546040516352efcf2760e11b81526001600160a01b039091169063a5df9e4e90610c429085906004016121a6565b6020604051808303816000875af1158015610c61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c85919061263c565b92915050565b6000610c96336104be565b610c128260d3611d9f565b610ca9612089565b610cb2336104be565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a790610ce59063153c0ad960e01b906004016125c4565b602060405180830381865afa158015610d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d269190612614565b610d4e5760405163704b6c6d60e11b81526001600160a01b038416600482015260240161055e565b610d5983606e61056e565b9050610d6d6001546001600160a01b031690565b6001600160a01b031663a5df9e4e826040518263ffffffff1660e01b8152600401610d9891906121a6565b6020604051808303816000875af1158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb919061263c565b6001600160601b0316815292915050565b610df4611c3f565b806001600160a01b03163b600003610e2a5760405163fdeac91f60e01b81526001600160a01b038216600482015260240161055e565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526301ffc9a790610e709063e607072160e01b906004016125c4565b602060405180830381865afa925050508015610ea9575060408051601f3d908101601f19168201909252610ea691810190612614565b60015b610ed15760405163fdeac91f60e01b81526001600160a01b038216600482015260240161055e565b80610efa5760405163fdeac91f60e01b81526001600160a01b038316600482015260240161055e565b505b50565b610f07612089565b610f10336104be565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a790610f4390632363b9ed60e21b906004016125c4565b602060405180830381865afa158015610f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f849190612614565b610fac576040516304c983f360e41b81526001600160a01b038416600482015260240161055e565b610d5983608c61056e565b33610fc06114b0565b6001600160a01b0316816001600160a01b031614610ffb5760405162d1953b60e31b81526001600160a01b038216600482015260240161055e565b816001600160a01b03163b600003611031576040516361798f2f60e11b81526001600160a01b038316600482015260240161055e565b610efa82611efa565b6000611045336104be565b610c12826050611d9f565b600080600080516020612a5c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e49190612614565b15611171576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b91906127f1565b91505090565b54600160601b90046001600160a01b0316919050565b61118f611c3f565b61120f83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f5919061263c565b603c600085604051806020016040528060008152506108c5565b6001600160a01b0382161561122c5761122782611f5b565b61139b565b60006112406001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c49190612819565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611309573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132d91906127f1565b9050611399816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611370573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139491906127f1565b611f5b565b505b6113ab634a531f3360e01b610898565b6113bb63b68d180960e01b610898565b505050565b600080516020612a7c833981519152805460009190600160a01b900460ff166113ea57600061116b565b638fb3603760e01b91505090565b611400612089565b611409336104be565b6040516301ffc9a760e01b81526001600160a01b038416906301ffc9a79061143c906363541cc160e11b906004016125c4565b602060405180830381865afa158015611459573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147d9190612614565b6114a5576040516367237f5b60e11b81526001600160a01b038416600482015260240161055e565b610d5983607861056e565b600080516020612a7c833981519152546001600160a01b031690565b60006114d7336104be565b610c128260dc611d9f565b6114ea612089565b6114f3336104be565b610d5983602d61056e565b611506612089565b61150f336104be565b6040516301ffc9a760e01b81526001600160a01b038516906301ffc9a79061154290632986755f60e11b906004016125c4565b602060405180830381865afa15801561155f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115839190612614565b6115ab57604051632624ae7760e01b81526001600160a01b038516600482015260240161055e565b6115b68484846117c7565b90506115ca6001546001600160a01b031690565b6001600160a01b031663a5df9e4e826040518263ffffffff1660e01b81526004016115f591906121a6565b6020604051808303816000875af1158015611614573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611638919061263c565b6001600160601b031681529392505050565b611652611c3f565b61165b81610dec565b611663610ab7565b6001600160a01b03821661168a5760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020612a5c83398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080516020612a7c8339815191526000806116fc6116de6114b0565b87306116ee600460008a8c612836565b6116f791612860565b611f6c565b91509150816117bf5763ffffffff81161561179c57825460ff60a01b1916600160a01b17835561172a6114b0565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161175993929190612890565b600060405180830381600087803b15801561177357600080fd5b505af1158015611787573d6000803e3d6000fd5b5050845460ff60a01b19168555506117bf9050565b60405162d1953b60e31b81526001600160a01b038716600482015260240161055e565b505050505050565b6117cf612089565b836001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561180d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118359190810190612915565b9050836001600160a01b031681608001516001600160a01b0316146118865760808101516040516306704ad960e11b81526001600160a01b038087166004830152909116602482015260440161055e565b604081015160ff8481169116146118d257604080820151905163137f2ac560e31b81526001600160a01b038616600482015260ff8086166024830152909116604482015260640161055e565b60a08101516001600160a01b038082169084161461191e576040516335ce70c360e21b81526001600160a01b03808716600483015280851660248301528216604482015260640161055e565b846001600160a01b0316816001600160a01b03160361195b57604051638e80a3f960e01b81526001600160a01b038616600482015260240161055e565b6001600160a01b03811661198d576040516343e40cb560e01b81526001600160a01b038616600482015260240161055e565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190612614565b15611a36576040516309ad872b60e41b81526001600160a01b0380871660048301528216602482015260440161055e565b509392505050565b600080600080516020612a5c83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190612614565b15611afe5780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161055e565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b769190612614565b611b9e5760405163b9304b0d60e01b81526001600160a01b038416600482015260240161055e565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c16919061263c565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b600080516020612a9c83398151915254600160401b900460ff16611c7657604051631afcd79f60e31b815260040160405180910390fd5b565b6101f0611c3f565b600080516020612a9c8339815191528054600160401b810460ff1615906001600160401b0316600081158015611cb35750825b90506000826001600160401b03166001148015611ccf5750303b155b905081158015611cdd575080155b15611cfb5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611d2557845460ff60401b1916600160401b1785555b60008087806020019051810190611d3c91906129d8565b91509150611d4b82828b611187565b611d5b631987a50360e11b610898565b50508315610bf357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610bea565b60808201516001600160a01b031615611dd65760408083015190516340fda83160e11b815260ff909116600482015260240161055e565b604082015160ff828116911614611e13576040808301519051632e5fbed960e21b815260ff8084166004830152909116602482015260440161055e565b60a08201516001600160a01b038116611e4a576040808401519051633312954f60e21b815260ff909116600482015260240161055e565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa158015611e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec29190612614565b156113bb57604080840151905163b4139d2560e01b815260ff90911660048201526001600160a01b038216602482015260440161055e565b600080516020612a7c83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611f63611c3f565b610efc81612078565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611fdb9190612a07565b600060405180830381855afa9150503d8060008114612016576040519150601f19603f3d011682016040523d82523d6000602084013e61201b565b606091505b5091509150811561206d57604081511061204d57808060200190518101906120439190612a23565b909450925061206d565b602081511061206d578080602001905181019061206a9190612614565b93505b505094509492505050565b612080611c3f565b610efc81611efa565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b6000602082840312156120d957600080fd5b81356001600160e01b0319811681146120f157600080fd5b9392505050565b6001600160a01b0381168114610efc57600080fd5b8035612118816120f8565b919050565b6000806040838503121561213057600080fd5b823561213b816120f8565b9150602083013561214b816120f8565b809150509250929050565b60005b83811015612171578181015183820152602001612159565b50506000910152565b60008151808452612192816020860160208601612156565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161220f60c08401826001600160a01b03169052565b5060c083015160e08084015261222961010084018261217a565b949350505050565b6001600160601b0381168114610efc57600080fd5b803561211881612231565b60ff81168114610efc57600080fd5b803561211881612251565b8015158114610efc57600080fd5b80356121188161226b565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b03811182821017156122bc576122bc612284565b60405290565b604051601f8201601f191681016001600160401b03811182821017156122ea576122ea612284565b604052919050565b60006001600160401b0382111561230b5761230b612284565b50601f01601f191660200190565b600082601f83011261232a57600080fd5b813561233d612338826122f2565b6122c2565b81815284602083860101111561235257600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561238857600080fd5b8635612393816120f8565b955060208701356123a381612231565b945060408701356123b381612251565b935060608701356123c38161226b565b925060808701356123d3816120f8565b915060a08701356001600160401b038111156123ee57600080fd5b6123fa89828a01612319565b9150509295509295509295565b60006020828403121561241957600080fd5b81356001600160401b0381111561242f57600080fd5b61222984828501612319565b6000806040838503121561244e57600080fd5b8235612459816120f8565b915060208301356001600160401b0381111561247457600080fd5b61248085828601612319565b9150509250929050565b60006020828403121561249c57600080fd5b81356001600160401b03808211156124b357600080fd5b9083019060e082860312156124c757600080fd5b6124cf61229a565b6124d883612246565b81526124e660208401612246565b60208201526124f760408401612260565b604082015261250860608401612279565b60608201526125196080840161210d565b608082015261252a60a0840161210d565b60a082015260c08301358281111561254157600080fd5b61254d87828601612319565b60c08301525095945050505050565b60006020828403121561256e57600080fd5b81356120f1816120f8565b60008060006060848603121561258e57600080fd5b8335612599816120f8565b925060208401356125a9816120f8565b915060408401356125b9816120f8565b809150509250925092565b6001600160e01b031991909116815260200190565b6000806000606084860312156125ee57600080fd5b83356125f9816120f8565b925060208401356125a981612251565b80516121188161226b565b60006020828403121561262657600080fd5b81516120f18161226b565b805161211881612231565b60006020828403121561264e57600080fd5b81516120f181612231565b60006020828403121561266b57600080fd5b815162ffffff811681146120f157600080fd5b600181811c9082168061269257607f821691505b6020821081036126b257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156113bb57600081815260208120601f850160051c810160208610156126df5750805b601f850160051c820191505b818110156117bf578281556001016126eb565b81516001600160401b0381111561271757612717612284565b61272b81612725845461267e565b846126b8565b602080601f83116001811461276057600084156127485750858301515b600019600386901b1c1916600185901b1785556117bf565b600085815260208120601f198616915b8281101561278f57888601518255948401946001909101908401612770565b50858210156127ad5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156127cf57600080fd5b81516001600160401b03811681146120f157600080fd5b8051612118816120f8565b60006020828403121561280357600080fd5b81516120f1816120f8565b805161211881612251565b60006020828403121561282b57600080fd5b81516120f181612251565b6000808585111561284657600080fd5b8386111561285357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156128885780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b600082601f8301126128e157600080fd5b81516128ef612338826122f2565b81815284602083860101111561290457600080fd5b612229826020830160208701612156565b60006020828403121561292757600080fd5b81516001600160401b038082111561293e57600080fd5b9083019060e0828603121561295257600080fd5b61295a61229a565b61296383612631565b815261297160208401612631565b60208201526129826040840161280e565b604082015261299360608401612609565b60608201526129a4608084016127e6565b60808201526129b560a084016127e6565b60a082015260c0830151828111156129cc57600080fd5b61254d878286016128d0565b600080604083850312156129eb57600080fd5b82516129f6816120f8565b602084015190925061214b816120f8565b60008251612a19818460208701612156565b9190910192915050565b60008060408385031215612a3657600080fd5b8251612a418161226b565b602084015190925063ffffffff8116811461214b57600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206c52b123b6f6732a32af02ad53a85526621faf99f2b968eb35fe1ea085d1910364736f6c63430008140033",
809
1343
  "linkReferences": {
810
- "contracts/types/Blocknumber.sol": {
811
- "BlocknumberLib": [
1344
+ "contracts/type/NftId.sol": {
1345
+ "NftIdLib": [
1346
+ {
1347
+ "length": 20,
1348
+ "start": 2076
1349
+ },
1350
+ {
1351
+ "length": 20,
1352
+ "start": 4460
1353
+ },
812
1354
  {
813
1355
  "length": 20,
814
- "start": 2786
1356
+ "start": 7002
815
1357
  }
816
1358
  ]
817
1359
  },
818
- "contracts/types/Version.sol": {
1360
+ "contracts/type/Version.sol": {
819
1361
  "VersionLib": [
820
1362
  {
821
1363
  "length": 20,
822
- "start": 2301
1364
+ "start": 1919
823
1365
  },
824
1366
  {
825
1367
  "length": 20,
826
- "start": 3902
827
- },
1368
+ "start": 2642
1369
+ }
1370
+ ],
1371
+ "VersionPartLib": [
828
1372
  {
829
1373
  "length": 20,
830
- "start": 4695
1374
+ "start": 4940
831
1375
  }
832
1376
  ]
833
1377
  }
834
1378
  },
835
1379
  "deployedLinkReferences": {
836
- "contracts/types/Blocknumber.sol": {
837
- "BlocknumberLib": [
1380
+ "contracts/type/NftId.sol": {
1381
+ "NftIdLib": [
1382
+ {
1383
+ "length": 20,
1384
+ "start": 1846
1385
+ },
1386
+ {
1387
+ "length": 20,
1388
+ "start": 4230
1389
+ },
838
1390
  {
839
1391
  "length": 20,
840
- "start": 2496
1392
+ "start": 6772
841
1393
  }
842
1394
  ]
843
1395
  },
844
- "contracts/types/Version.sol": {
1396
+ "contracts/type/Version.sol": {
845
1397
  "VersionLib": [
846
1398
  {
847
1399
  "length": 20,
848
- "start": 2011
1400
+ "start": 1689
849
1401
  },
850
1402
  {
851
1403
  "length": 20,
852
- "start": 3612
853
- },
1404
+ "start": 2412
1405
+ }
1406
+ ],
1407
+ "VersionPartLib": [
854
1408
  {
855
1409
  "length": 20,
856
- "start": 4405
1410
+ "start": 4710
857
1411
  }
858
1412
  ]
859
1413
  }