@etherisc/gif-next 0.0.2-90f8ffc-398 → 0.0.2-9105e58-225

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