@opensea/seaport-js 1.3.0 → 2.0.1

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 (1058) hide show
  1. package/README.md +1 -1
  2. package/lib/abi/DomainRegistry.js +1 -1
  3. package/lib/abi/DomainRegistry.js.map +1 -1
  4. package/lib/abi/ERC1155.js +1 -1
  5. package/lib/abi/ERC1155.js.map +1 -1
  6. package/lib/abi/ERC20.js +1 -1
  7. package/lib/abi/ERC20.js.map +1 -1
  8. package/lib/abi/ERC721.js +1 -1
  9. package/lib/abi/ERC721.js.map +1 -1
  10. package/lib/abi/Seaport_v1_4.js +1 -1
  11. package/lib/abi/Seaport_v1_4.js.map +1 -1
  12. package/lib/bundle.js +54208 -0
  13. package/lib/constants.js +4 -5
  14. package/lib/constants.js.map +1 -1
  15. package/lib/index.js +1 -1
  16. package/lib/index.js.map +1 -1
  17. package/lib/seaport.d.ts +1 -1
  18. package/lib/seaport.js +412 -676
  19. package/lib/seaport.js.map +1 -1
  20. package/lib/typechain-types/@rari-capital/index.d.ts +2 -0
  21. package/lib/typechain-types/@rari-capital/index.js +3 -0
  22. package/lib/typechain-types/@rari-capital/index.js.map +1 -0
  23. package/lib/typechain-types/@rari-capital/solmate/index.d.ts +2 -0
  24. package/lib/typechain-types/@rari-capital/solmate/index.js +3 -0
  25. package/lib/typechain-types/@rari-capital/solmate/index.js.map +1 -0
  26. package/lib/typechain-types/@rari-capital/solmate/src/index.d.ts +2 -0
  27. package/lib/typechain-types/@rari-capital/solmate/src/index.js +3 -0
  28. package/lib/typechain-types/@rari-capital/solmate/src/index.js.map +1 -0
  29. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.d.ts +189 -0
  30. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.js +3 -0
  31. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.js.map +1 -0
  32. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.d.ts +66 -0
  33. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.js +3 -0
  34. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.js.map +1 -0
  35. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.d.ts +2 -0
  36. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js +3 -0
  37. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js.map +1 -0
  38. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC20.d.ts +202 -0
  39. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC20.js +3 -0
  40. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC20.js.map +1 -0
  41. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.d.ts +227 -0
  42. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.js +3 -0
  43. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.js.map +1 -0
  44. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.d.ts +50 -0
  45. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.js +3 -0
  46. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.js.map +1 -0
  47. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.d.ts +2 -0
  48. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.js +3 -0
  49. package/lib/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.js.map +1 -0
  50. package/lib/typechain-types/@rari-capital/solmate/src/tokens/index.d.ts +5 -0
  51. package/lib/typechain-types/@rari-capital/solmate/src/tokens/index.js +3 -0
  52. package/lib/typechain-types/@rari-capital/solmate/src/tokens/index.js.map +1 -0
  53. package/lib/typechain-types/common.d.ts +21 -0
  54. package/lib/typechain-types/common.js +3 -0
  55. package/lib/typechain-types/common.js.map +1 -0
  56. package/lib/typechain-types/domain-registry/contracts/DomainRegistry.d.ts +97 -0
  57. package/lib/typechain-types/domain-registry/contracts/DomainRegistry.js +3 -0
  58. package/lib/typechain-types/domain-registry/contracts/DomainRegistry.js.map +1 -0
  59. package/lib/typechain-types/domain-registry/contracts/index.d.ts +3 -0
  60. package/lib/typechain-types/domain-registry/contracts/index.js +3 -0
  61. package/lib/typechain-types/domain-registry/contracts/index.js.map +1 -0
  62. package/lib/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.d.ts +97 -0
  63. package/lib/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.js +3 -0
  64. package/lib/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.js.map +1 -0
  65. package/lib/typechain-types/domain-registry/contracts/interfaces/index.d.ts +1 -0
  66. package/lib/typechain-types/domain-registry/contracts/interfaces/index.js +3 -0
  67. package/lib/typechain-types/domain-registry/contracts/interfaces/index.js.map +1 -0
  68. package/lib/typechain-types/domain-registry/index.d.ts +2 -0
  69. package/lib/typechain-types/domain-registry/index.js +3 -0
  70. package/lib/typechain-types/domain-registry/index.js.map +1 -0
  71. package/lib/typechain-types/factories/@rari-capital/index.d.ts +1 -0
  72. package/lib/typechain-types/factories/@rari-capital/index.js +8 -0
  73. package/lib/typechain-types/factories/@rari-capital/index.js.map +1 -0
  74. package/lib/typechain-types/factories/@rari-capital/solmate/index.d.ts +1 -0
  75. package/lib/typechain-types/factories/@rari-capital/solmate/index.js +8 -0
  76. package/lib/typechain-types/factories/@rari-capital/solmate/index.js.map +1 -0
  77. package/lib/typechain-types/factories/@rari-capital/solmate/src/index.d.ts +1 -0
  78. package/lib/typechain-types/factories/@rari-capital/solmate/src/index.js +8 -0
  79. package/lib/typechain-types/factories/@rari-capital/solmate/src/index.js.map +1 -0
  80. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.d.ts +68 -0
  81. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.js +98 -0
  82. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.js.map +1 -0
  83. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.d.ts +251 -0
  84. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.js +332 -0
  85. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.js.map +1 -0
  86. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.d.ts +2 -0
  87. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js +11 -0
  88. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.js.map +1 -0
  89. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.d.ts +236 -0
  90. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.js +317 -0
  91. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.js.map +1 -0
  92. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.d.ts +34 -0
  93. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.js +54 -0
  94. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.js.map +1 -0
  95. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.d.ts +262 -0
  96. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.js +350 -0
  97. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.js.map +1 -0
  98. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.d.ts +2 -0
  99. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.js +11 -0
  100. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.js.map +1 -0
  101. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/index.d.ts +3 -0
  102. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/index.js +11 -0
  103. package/lib/typechain-types/factories/@rari-capital/solmate/src/tokens/index.js.map +1 -0
  104. package/lib/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.d.ts +124 -0
  105. package/lib/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.js +181 -0
  106. package/lib/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.js.map +1 -0
  107. package/lib/typechain-types/factories/domain-registry/contracts/index.d.ts +2 -0
  108. package/lib/typechain-types/factories/domain-registry/contracts/index.js +10 -0
  109. package/lib/typechain-types/factories/domain-registry/contracts/index.js.map +1 -0
  110. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.d.ts +112 -0
  111. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.js +158 -0
  112. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.js.map +1 -0
  113. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/index.d.ts +1 -0
  114. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/index.js +9 -0
  115. package/lib/typechain-types/factories/domain-registry/contracts/interfaces/index.js.map +1 -0
  116. package/lib/typechain-types/factories/domain-registry/index.d.ts +1 -0
  117. package/lib/typechain-types/factories/domain-registry/index.js +8 -0
  118. package/lib/typechain-types/factories/domain-registry/index.js.map +1 -0
  119. package/lib/typechain-types/factories/index.d.ts +7 -0
  120. package/lib/typechain-types/factories/index.js +14 -0
  121. package/lib/typechain-types/factories/index.js.map +1 -0
  122. package/lib/typechain-types/factories/seaport-core/index.d.ts +1 -0
  123. package/lib/typechain-types/factories/seaport-core/index.js +8 -0
  124. package/lib/typechain-types/factories/seaport-core/index.js.map +1 -0
  125. package/lib/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.d.ts +349 -0
  126. package/lib/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.js +478 -0
  127. package/lib/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.js.map +1 -0
  128. package/lib/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.d.ts +315 -0
  129. package/lib/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.js +427 -0
  130. package/lib/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.js.map +1 -0
  131. package/lib/typechain-types/factories/seaport-core/src/conduit/index.d.ts +2 -0
  132. package/lib/typechain-types/factories/seaport-core/src/conduit/index.js +11 -0
  133. package/lib/typechain-types/factories/seaport-core/src/conduit/index.js.map +1 -0
  134. package/lib/typechain-types/factories/seaport-core/src/index.d.ts +2 -0
  135. package/lib/typechain-types/factories/seaport-core/src/index.js +9 -0
  136. package/lib/typechain-types/factories/seaport-core/src/index.js.map +1 -0
  137. package/lib/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.d.ts +24 -0
  138. package/lib/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.js +48 -0
  139. package/lib/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.js.map +1 -0
  140. package/lib/typechain-types/factories/seaport-core/src/lib/Assertions__factory.d.ts +480 -0
  141. package/lib/typechain-types/factories/seaport-core/src/lib/Assertions__factory.js +637 -0
  142. package/lib/typechain-types/factories/seaport-core/src/lib/Assertions__factory.js.map +1 -0
  143. package/lib/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.d.ts +516 -0
  144. package/lib/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.js +685 -0
  145. package/lib/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.js.map +1 -0
  146. package/lib/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.d.ts +380 -0
  147. package/lib/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.js +507 -0
  148. package/lib/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.js.map +1 -0
  149. package/lib/typechain-types/factories/seaport-core/src/lib/Consideration__factory.d.ts +2292 -0
  150. package/lib/typechain-types/factories/seaport-core/src/lib/Consideration__factory.js +2977 -0
  151. package/lib/typechain-types/factories/seaport-core/src/lib/Consideration__factory.js.map +1 -0
  152. package/lib/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.d.ts +376 -0
  153. package/lib/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.js +501 -0
  154. package/lib/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.js.map +1 -0
  155. package/lib/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.d.ts +68 -0
  156. package/lib/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.js +106 -0
  157. package/lib/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.js.map +1 -0
  158. package/lib/typechain-types/factories/seaport-core/src/lib/Executor__factory.d.ts +500 -0
  159. package/lib/typechain-types/factories/seaport-core/src/lib/Executor__factory.js +663 -0
  160. package/lib/typechain-types/factories/seaport-core/src/lib/Executor__factory.js.map +1 -0
  161. package/lib/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.d.ts +44 -0
  162. package/lib/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.js +75 -0
  163. package/lib/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.js.map +1 -0
  164. package/lib/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.d.ts +380 -0
  165. package/lib/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.js +507 -0
  166. package/lib/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.js.map +1 -0
  167. package/lib/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.d.ts +592 -0
  168. package/lib/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.js +785 -0
  169. package/lib/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.js.map +1 -0
  170. package/lib/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.d.ts +568 -0
  171. package/lib/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.js +753 -0
  172. package/lib/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.js.map +1 -0
  173. package/lib/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.d.ts +516 -0
  174. package/lib/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.js +685 -0
  175. package/lib/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.js.map +1 -0
  176. package/lib/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.d.ts +28 -0
  177. package/lib/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.js +53 -0
  178. package/lib/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.js.map +1 -0
  179. package/lib/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.d.ts +40 -0
  180. package/lib/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.js +69 -0
  181. package/lib/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.js.map +1 -0
  182. package/lib/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.d.ts +116 -0
  183. package/lib/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.js +168 -0
  184. package/lib/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.js.map +1 -0
  185. package/lib/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.d.ts +500 -0
  186. package/lib/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.js +663 -0
  187. package/lib/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.js.map +1 -0
  188. package/lib/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.d.ts +36 -0
  189. package/lib/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.js +65 -0
  190. package/lib/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.js.map +1 -0
  191. package/lib/typechain-types/factories/seaport-core/src/lib/index.d.ts +18 -0
  192. package/lib/typechain-types/factories/seaport-core/src/lib/index.js +43 -0
  193. package/lib/typechain-types/factories/seaport-core/src/lib/index.js.map +1 -0
  194. package/lib/typechain-types/factories/seaport-types/index.d.ts +1 -0
  195. package/lib/typechain-types/factories/seaport-types/index.js +8 -0
  196. package/lib/typechain-types/factories/seaport-types/index.js.map +1 -0
  197. package/lib/typechain-types/factories/seaport-types/src/index.d.ts +1 -0
  198. package/lib/typechain-types/factories/seaport-types/src/index.js +8 -0
  199. package/lib/typechain-types/factories/seaport-types/src/index.js.map +1 -0
  200. package/lib/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.d.ts +12 -0
  201. package/lib/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.js +25 -0
  202. package/lib/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.js.map +1 -0
  203. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.d.ts +333 -0
  204. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.js +450 -0
  205. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.js.map +1 -0
  206. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.d.ts +203 -0
  207. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.js +274 -0
  208. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.js.map +1 -0
  209. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.d.ts +360 -0
  210. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.js +473 -0
  211. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.js.map +1 -0
  212. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.d.ts +1705 -0
  213. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.js +2208 -0
  214. package/lib/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.js.map +1 -0
  215. package/lib/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.d.ts +56 -0
  216. package/lib/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.js +83 -0
  217. package/lib/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.js.map +1 -0
  218. package/lib/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.d.ts +32 -0
  219. package/lib/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.js +52 -0
  220. package/lib/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.js.map +1 -0
  221. package/lib/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.d.ts +12 -0
  222. package/lib/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.js +25 -0
  223. package/lib/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.js.map +1 -0
  224. package/lib/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.d.ts +28 -0
  225. package/lib/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.js +46 -0
  226. package/lib/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.js.map +1 -0
  227. package/lib/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.d.ts +104 -0
  228. package/lib/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.js +145 -0
  229. package/lib/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.js.map +1 -0
  230. package/lib/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.d.ts +24 -0
  231. package/lib/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.js +42 -0
  232. package/lib/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.js.map +1 -0
  233. package/lib/typechain-types/factories/seaport-types/src/interfaces/index.d.ts +11 -0
  234. package/lib/typechain-types/factories/seaport-types/src/interfaces/index.js +29 -0
  235. package/lib/typechain-types/factories/seaport-types/src/interfaces/index.js.map +1 -0
  236. package/lib/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.d.ts +2292 -0
  237. package/lib/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.js +2977 -0
  238. package/lib/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.js.map +1 -0
  239. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.d.ts +311 -0
  240. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.js +422 -0
  241. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.js.map +1 -0
  242. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.d.ts +1 -0
  243. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.js +9 -0
  244. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.js.map +1 -0
  245. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.d.ts +345 -0
  246. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.js +473 -0
  247. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.js.map +1 -0
  248. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.d.ts +1 -0
  249. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js +9 -0
  250. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js.map +1 -0
  251. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/index.d.ts +2 -0
  252. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/index.js +9 -0
  253. package/lib/typechain-types/factories/seaport_v1_4/contracts/conduit/index.js.map +1 -0
  254. package/lib/typechain-types/factories/seaport_v1_4/contracts/index.d.ts +2 -0
  255. package/lib/typechain-types/factories/seaport_v1_4/contracts/index.js +10 -0
  256. package/lib/typechain-types/factories/seaport_v1_4/contracts/index.js.map +1 -0
  257. package/lib/typechain-types/factories/seaport_v1_4/index.d.ts +1 -0
  258. package/lib/typechain-types/factories/seaport_v1_4/index.js +8 -0
  259. package/lib/typechain-types/factories/seaport_v1_4/index.js.map +1 -0
  260. package/lib/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.d.ts +2292 -0
  261. package/lib/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.js +2977 -0
  262. package/lib/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.js.map +1 -0
  263. package/lib/typechain-types/factories/seaport_v1_5/contracts/index.d.ts +2 -0
  264. package/lib/typechain-types/factories/seaport_v1_5/contracts/index.js +10 -0
  265. package/lib/typechain-types/factories/seaport_v1_5/contracts/index.js.map +1 -0
  266. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.d.ts +12 -0
  267. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.js +27 -0
  268. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.js.map +1 -0
  269. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.d.ts +333 -0
  270. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.js +452 -0
  271. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.js.map +1 -0
  272. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.d.ts +203 -0
  273. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.js +276 -0
  274. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.js.map +1 -0
  275. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.d.ts +360 -0
  276. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.js +475 -0
  277. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.js.map +1 -0
  278. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.d.ts +1705 -0
  279. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.js +2210 -0
  280. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.js.map +1 -0
  281. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.d.ts +56 -0
  282. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.js +85 -0
  283. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.js.map +1 -0
  284. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.d.ts +32 -0
  285. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.js +54 -0
  286. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.js.map +1 -0
  287. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.d.ts +12 -0
  288. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.js +27 -0
  289. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.js.map +1 -0
  290. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.d.ts +28 -0
  291. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.js +48 -0
  292. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.js.map +1 -0
  293. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.d.ts +104 -0
  294. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.js +147 -0
  295. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.js.map +1 -0
  296. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.d.ts +24 -0
  297. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.js +42 -0
  298. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.js.map +1 -0
  299. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.d.ts +1 -0
  300. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.js +9 -0
  301. package/lib/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.js.map +1 -0
  302. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.d.ts +24 -0
  303. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.js +95 -0
  304. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.js.map +1 -0
  305. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.d.ts +480 -0
  306. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.js +684 -0
  307. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.js.map +1 -0
  308. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.d.ts +516 -0
  309. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.js +732 -0
  310. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.js.map +1 -0
  311. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.d.ts +380 -0
  312. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.js +554 -0
  313. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.js.map +1 -0
  314. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.d.ts +2292 -0
  315. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.js +3024 -0
  316. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.js.map +1 -0
  317. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.d.ts +376 -0
  318. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.js +548 -0
  319. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.js.map +1 -0
  320. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.d.ts +68 -0
  321. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.js +153 -0
  322. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.js.map +1 -0
  323. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.d.ts +500 -0
  324. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.js +710 -0
  325. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.js.map +1 -0
  326. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.d.ts +44 -0
  327. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.js +122 -0
  328. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.js.map +1 -0
  329. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.d.ts +380 -0
  330. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.js +554 -0
  331. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.js.map +1 -0
  332. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.d.ts +592 -0
  333. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.js +832 -0
  334. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.js.map +1 -0
  335. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.d.ts +568 -0
  336. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.js +800 -0
  337. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.js.map +1 -0
  338. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.d.ts +516 -0
  339. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.js +732 -0
  340. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.js.map +1 -0
  341. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.d.ts +28 -0
  342. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.js +100 -0
  343. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.js.map +1 -0
  344. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.d.ts +40 -0
  345. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.js +116 -0
  346. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.js.map +1 -0
  347. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.d.ts +116 -0
  348. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.js +215 -0
  349. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.js.map +1 -0
  350. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.d.ts +500 -0
  351. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.js +710 -0
  352. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.js.map +1 -0
  353. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.d.ts +36 -0
  354. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.js +112 -0
  355. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.js.map +1 -0
  356. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/index.d.ts +18 -0
  357. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/index.js +43 -0
  358. package/lib/typechain-types/factories/seaport_v1_5/contracts/lib/index.js.map +1 -0
  359. package/lib/typechain-types/factories/seaport_v1_5/index.d.ts +1 -0
  360. package/lib/typechain-types/factories/seaport_v1_5/index.js +8 -0
  361. package/lib/typechain-types/factories/seaport_v1_5/index.js.map +1 -0
  362. package/lib/typechain-types/factories/src/contracts/index.d.ts +1 -0
  363. package/lib/typechain-types/factories/src/contracts/index.js +8 -0
  364. package/lib/typechain-types/factories/src/contracts/index.js.map +1 -0
  365. package/lib/typechain-types/factories/src/contracts/test/TestERC1155__factory.d.ts +285 -0
  366. package/lib/typechain-types/factories/src/contracts/test/TestERC1155__factory.js +384 -0
  367. package/lib/typechain-types/factories/src/contracts/test/TestERC1155__factory.js.map +1 -0
  368. package/lib/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.d.ts +290 -0
  369. package/lib/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.js +395 -0
  370. package/lib/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.js.map +1 -0
  371. package/lib/typechain-types/factories/src/contracts/test/TestERC20__factory.d.ts +290 -0
  372. package/lib/typechain-types/factories/src/contracts/test/TestERC20__factory.js +395 -0
  373. package/lib/typechain-types/factories/src/contracts/test/TestERC20__factory.js.map +1 -0
  374. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.d.ts +292 -0
  375. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.js +444 -0
  376. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.js.map +1 -0
  377. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.d.ts +1 -0
  378. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.js +9 -0
  379. package/lib/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.js.map +1 -0
  380. package/lib/typechain-types/factories/src/contracts/test/TestERC721__factory.d.ts +292 -0
  381. package/lib/typechain-types/factories/src/contracts/test/TestERC721__factory.js +397 -0
  382. package/lib/typechain-types/factories/src/contracts/test/TestERC721__factory.js.map +1 -0
  383. package/lib/typechain-types/factories/src/contracts/test/index.d.ts +4 -0
  384. package/lib/typechain-types/factories/src/contracts/test/index.js +15 -0
  385. package/lib/typechain-types/factories/src/contracts/test/index.js.map +1 -0
  386. package/lib/typechain-types/factories/src/index.d.ts +1 -0
  387. package/lib/typechain-types/factories/src/index.js +8 -0
  388. package/lib/typechain-types/factories/src/index.js.map +1 -0
  389. package/lib/typechain-types/index.d.ts +105 -0
  390. package/lib/typechain-types/index.js +95 -0
  391. package/lib/typechain-types/index.js.map +1 -0
  392. package/lib/typechain-types/seaport-core/index.d.ts +2 -0
  393. package/lib/typechain-types/seaport-core/index.js +3 -0
  394. package/lib/typechain-types/seaport-core/index.js.map +1 -0
  395. package/lib/typechain-types/seaport-core/src/conduit/Conduit.d.ts +156 -0
  396. package/lib/typechain-types/seaport-core/src/conduit/Conduit.js +3 -0
  397. package/lib/typechain-types/seaport-core/src/conduit/Conduit.js.map +1 -0
  398. package/lib/typechain-types/seaport-core/src/conduit/ConduitController.d.ts +268 -0
  399. package/lib/typechain-types/seaport-core/src/conduit/ConduitController.js +3 -0
  400. package/lib/typechain-types/seaport-core/src/conduit/ConduitController.js.map +1 -0
  401. package/lib/typechain-types/seaport-core/src/conduit/index.d.ts +2 -0
  402. package/lib/typechain-types/seaport-core/src/conduit/index.js +3 -0
  403. package/lib/typechain-types/seaport-core/src/conduit/index.js.map +1 -0
  404. package/lib/typechain-types/seaport-core/src/index.d.ts +4 -0
  405. package/lib/typechain-types/seaport-core/src/index.js +3 -0
  406. package/lib/typechain-types/seaport-core/src/index.js.map +1 -0
  407. package/lib/typechain-types/seaport-core/src/lib/AmountDeriver.d.ts +27 -0
  408. package/lib/typechain-types/seaport-core/src/lib/AmountDeriver.js +3 -0
  409. package/lib/typechain-types/seaport-core/src/lib/AmountDeriver.js.map +1 -0
  410. package/lib/typechain-types/seaport-core/src/lib/Assertions.d.ts +216 -0
  411. package/lib/typechain-types/seaport-core/src/lib/Assertions.js +3 -0
  412. package/lib/typechain-types/seaport-core/src/lib/Assertions.js.map +1 -0
  413. package/lib/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.d.ts +216 -0
  414. package/lib/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.js +3 -0
  415. package/lib/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.js.map +1 -0
  416. package/lib/typechain-types/seaport-core/src/lib/Consideration.d.ts +711 -0
  417. package/lib/typechain-types/seaport-core/src/lib/Consideration.js +3 -0
  418. package/lib/typechain-types/seaport-core/src/lib/Consideration.js.map +1 -0
  419. package/lib/typechain-types/seaport-core/src/lib/ConsiderationBase.d.ts +216 -0
  420. package/lib/typechain-types/seaport-core/src/lib/ConsiderationBase.js +3 -0
  421. package/lib/typechain-types/seaport-core/src/lib/ConsiderationBase.js.map +1 -0
  422. package/lib/typechain-types/seaport-core/src/lib/CounterManager.d.ts +216 -0
  423. package/lib/typechain-types/seaport-core/src/lib/CounterManager.js +3 -0
  424. package/lib/typechain-types/seaport-core/src/lib/CounterManager.js.map +1 -0
  425. package/lib/typechain-types/seaport-core/src/lib/CriteriaResolution.d.ts +27 -0
  426. package/lib/typechain-types/seaport-core/src/lib/CriteriaResolution.js +3 -0
  427. package/lib/typechain-types/seaport-core/src/lib/CriteriaResolution.js.map +1 -0
  428. package/lib/typechain-types/seaport-core/src/lib/Executor.d.ts +216 -0
  429. package/lib/typechain-types/seaport-core/src/lib/Executor.js +3 -0
  430. package/lib/typechain-types/seaport-core/src/lib/Executor.js.map +1 -0
  431. package/lib/typechain-types/seaport-core/src/lib/FulfillmentApplier.d.ts +27 -0
  432. package/lib/typechain-types/seaport-core/src/lib/FulfillmentApplier.js +3 -0
  433. package/lib/typechain-types/seaport-core/src/lib/FulfillmentApplier.js.map +1 -0
  434. package/lib/typechain-types/seaport-core/src/lib/GettersAndDerivers.d.ts +216 -0
  435. package/lib/typechain-types/seaport-core/src/lib/GettersAndDerivers.js +3 -0
  436. package/lib/typechain-types/seaport-core/src/lib/GettersAndDerivers.js.map +1 -0
  437. package/lib/typechain-types/seaport-core/src/lib/OrderCombiner.d.ts +216 -0
  438. package/lib/typechain-types/seaport-core/src/lib/OrderCombiner.js +3 -0
  439. package/lib/typechain-types/seaport-core/src/lib/OrderCombiner.js.map +1 -0
  440. package/lib/typechain-types/seaport-core/src/lib/OrderFulfiller.d.ts +216 -0
  441. package/lib/typechain-types/seaport-core/src/lib/OrderFulfiller.js +3 -0
  442. package/lib/typechain-types/seaport-core/src/lib/OrderFulfiller.js.map +1 -0
  443. package/lib/typechain-types/seaport-core/src/lib/OrderValidator.d.ts +216 -0
  444. package/lib/typechain-types/seaport-core/src/lib/OrderValidator.js +3 -0
  445. package/lib/typechain-types/seaport-core/src/lib/OrderValidator.js.map +1 -0
  446. package/lib/typechain-types/seaport-core/src/lib/ReentrancyGuard.d.ts +27 -0
  447. package/lib/typechain-types/seaport-core/src/lib/ReentrancyGuard.js +3 -0
  448. package/lib/typechain-types/seaport-core/src/lib/ReentrancyGuard.js.map +1 -0
  449. package/lib/typechain-types/seaport-core/src/lib/SignatureVerification.d.ts +27 -0
  450. package/lib/typechain-types/seaport-core/src/lib/SignatureVerification.js +3 -0
  451. package/lib/typechain-types/seaport-core/src/lib/SignatureVerification.js.map +1 -0
  452. package/lib/typechain-types/seaport-core/src/lib/TokenTransferrer.d.ts +27 -0
  453. package/lib/typechain-types/seaport-core/src/lib/TokenTransferrer.js +3 -0
  454. package/lib/typechain-types/seaport-core/src/lib/TokenTransferrer.js.map +1 -0
  455. package/lib/typechain-types/seaport-core/src/lib/Verifiers.d.ts +216 -0
  456. package/lib/typechain-types/seaport-core/src/lib/Verifiers.js +3 -0
  457. package/lib/typechain-types/seaport-core/src/lib/Verifiers.js.map +1 -0
  458. package/lib/typechain-types/seaport-core/src/lib/ZoneInteraction.d.ts +27 -0
  459. package/lib/typechain-types/seaport-core/src/lib/ZoneInteraction.js +3 -0
  460. package/lib/typechain-types/seaport-core/src/lib/ZoneInteraction.js.map +1 -0
  461. package/lib/typechain-types/seaport-core/src/lib/index.d.ts +18 -0
  462. package/lib/typechain-types/seaport-core/src/lib/index.js +3 -0
  463. package/lib/typechain-types/seaport-core/src/lib/index.js.map +1 -0
  464. package/lib/typechain-types/seaport-types/index.d.ts +2 -0
  465. package/lib/typechain-types/seaport-types/index.js +3 -0
  466. package/lib/typechain-types/seaport-types/index.js.map +1 -0
  467. package/lib/typechain-types/seaport-types/src/index.d.ts +2 -0
  468. package/lib/typechain-types/seaport-types/src/index.js +3 -0
  469. package/lib/typechain-types/seaport-types/src/index.js.map +1 -0
  470. package/lib/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.d.ts +27 -0
  471. package/lib/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.js +3 -0
  472. package/lib/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.js.map +1 -0
  473. package/lib/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.d.ts +268 -0
  474. package/lib/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.js +3 -0
  475. package/lib/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.js.map +1 -0
  476. package/lib/typechain-types/seaport-types/src/interfaces/ConduitInterface.d.ts +156 -0
  477. package/lib/typechain-types/seaport-types/src/interfaces/ConduitInterface.js +3 -0
  478. package/lib/typechain-types/seaport-types/src/interfaces/ConduitInterface.js.map +1 -0
  479. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.d.ts +216 -0
  480. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.js +3 -0
  481. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.js.map +1 -0
  482. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.d.ts +638 -0
  483. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.js +3 -0
  484. package/lib/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.js.map +1 -0
  485. package/lib/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.d.ts +27 -0
  486. package/lib/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.js +3 -0
  487. package/lib/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.js.map +1 -0
  488. package/lib/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.d.ts +27 -0
  489. package/lib/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.js +3 -0
  490. package/lib/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.js.map +1 -0
  491. package/lib/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.d.ts +27 -0
  492. package/lib/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.js +3 -0
  493. package/lib/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.js.map +1 -0
  494. package/lib/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.d.ts +27 -0
  495. package/lib/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.js +3 -0
  496. package/lib/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.js.map +1 -0
  497. package/lib/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.d.ts +27 -0
  498. package/lib/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.js +3 -0
  499. package/lib/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.js.map +1 -0
  500. package/lib/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.d.ts +27 -0
  501. package/lib/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.js +3 -0
  502. package/lib/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.js.map +1 -0
  503. package/lib/typechain-types/seaport-types/src/interfaces/index.d.ts +11 -0
  504. package/lib/typechain-types/seaport-types/src/interfaces/index.js +3 -0
  505. package/lib/typechain-types/seaport-types/src/interfaces/index.js.map +1 -0
  506. package/lib/typechain-types/seaport_v1_4/contracts/Seaport.d.ts +711 -0
  507. package/lib/typechain-types/seaport_v1_4/contracts/Seaport.js +3 -0
  508. package/lib/typechain-types/seaport_v1_4/contracts/Seaport.js.map +1 -0
  509. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.d.ts +156 -0
  510. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.js +3 -0
  511. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.js.map +1 -0
  512. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.d.ts +1 -0
  513. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.js +3 -0
  514. package/lib/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.js.map +1 -0
  515. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.d.ts +268 -0
  516. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.js +3 -0
  517. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.js.map +1 -0
  518. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.d.ts +1 -0
  519. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js +3 -0
  520. package/lib/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.js.map +1 -0
  521. package/lib/typechain-types/seaport_v1_4/contracts/conduit/index.d.ts +4 -0
  522. package/lib/typechain-types/seaport_v1_4/contracts/conduit/index.js +3 -0
  523. package/lib/typechain-types/seaport_v1_4/contracts/conduit/index.js.map +1 -0
  524. package/lib/typechain-types/seaport_v1_4/contracts/index.d.ts +3 -0
  525. package/lib/typechain-types/seaport_v1_4/contracts/index.js +3 -0
  526. package/lib/typechain-types/seaport_v1_4/contracts/index.js.map +1 -0
  527. package/lib/typechain-types/seaport_v1_4/index.d.ts +2 -0
  528. package/lib/typechain-types/seaport_v1_4/index.js +3 -0
  529. package/lib/typechain-types/seaport_v1_4/index.js.map +1 -0
  530. package/lib/typechain-types/seaport_v1_5/contracts/Seaport.d.ts +711 -0
  531. package/lib/typechain-types/seaport_v1_5/contracts/Seaport.js +3 -0
  532. package/lib/typechain-types/seaport_v1_5/contracts/Seaport.js.map +1 -0
  533. package/lib/typechain-types/seaport_v1_5/contracts/index.d.ts +3 -0
  534. package/lib/typechain-types/seaport_v1_5/contracts/index.js +3 -0
  535. package/lib/typechain-types/seaport_v1_5/contracts/index.js.map +1 -0
  536. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.d.ts +27 -0
  537. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.js +3 -0
  538. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.js.map +1 -0
  539. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.d.ts +268 -0
  540. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.js +3 -0
  541. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.js.map +1 -0
  542. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.d.ts +156 -0
  543. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.js +3 -0
  544. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.js.map +1 -0
  545. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.d.ts +216 -0
  546. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.js +3 -0
  547. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.js.map +1 -0
  548. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.d.ts +638 -0
  549. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.js +3 -0
  550. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.js.map +1 -0
  551. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.d.ts +27 -0
  552. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.js +3 -0
  553. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.js.map +1 -0
  554. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.d.ts +27 -0
  555. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.js +3 -0
  556. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.js.map +1 -0
  557. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.d.ts +27 -0
  558. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.js +3 -0
  559. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.js.map +1 -0
  560. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.d.ts +27 -0
  561. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.js +3 -0
  562. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.js.map +1 -0
  563. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.d.ts +27 -0
  564. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.js +3 -0
  565. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.js.map +1 -0
  566. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.d.ts +27 -0
  567. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.js +3 -0
  568. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.js.map +1 -0
  569. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/index.d.ts +1 -0
  570. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/index.js +3 -0
  571. package/lib/typechain-types/seaport_v1_5/contracts/interfaces/index.js.map +1 -0
  572. package/lib/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.d.ts +27 -0
  573. package/lib/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.js +3 -0
  574. package/lib/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.js.map +1 -0
  575. package/lib/typechain-types/seaport_v1_5/contracts/lib/Assertions.d.ts +216 -0
  576. package/lib/typechain-types/seaport_v1_5/contracts/lib/Assertions.js +3 -0
  577. package/lib/typechain-types/seaport_v1_5/contracts/lib/Assertions.js.map +1 -0
  578. package/lib/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.d.ts +216 -0
  579. package/lib/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.js +3 -0
  580. package/lib/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.js.map +1 -0
  581. package/lib/typechain-types/seaport_v1_5/contracts/lib/Consideration.d.ts +711 -0
  582. package/lib/typechain-types/seaport_v1_5/contracts/lib/Consideration.js +3 -0
  583. package/lib/typechain-types/seaport_v1_5/contracts/lib/Consideration.js.map +1 -0
  584. package/lib/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.d.ts +216 -0
  585. package/lib/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.js +3 -0
  586. package/lib/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.js.map +1 -0
  587. package/lib/typechain-types/seaport_v1_5/contracts/lib/CounterManager.d.ts +216 -0
  588. package/lib/typechain-types/seaport_v1_5/contracts/lib/CounterManager.js +3 -0
  589. package/lib/typechain-types/seaport_v1_5/contracts/lib/CounterManager.js.map +1 -0
  590. package/lib/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.d.ts +27 -0
  591. package/lib/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.js +3 -0
  592. package/lib/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.js.map +1 -0
  593. package/lib/typechain-types/seaport_v1_5/contracts/lib/Executor.d.ts +216 -0
  594. package/lib/typechain-types/seaport_v1_5/contracts/lib/Executor.js +3 -0
  595. package/lib/typechain-types/seaport_v1_5/contracts/lib/Executor.js.map +1 -0
  596. package/lib/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.d.ts +27 -0
  597. package/lib/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.js +3 -0
  598. package/lib/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.js.map +1 -0
  599. package/lib/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.d.ts +216 -0
  600. package/lib/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.js +3 -0
  601. package/lib/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.js.map +1 -0
  602. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.d.ts +216 -0
  603. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.js +3 -0
  604. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.js.map +1 -0
  605. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.d.ts +216 -0
  606. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.js +3 -0
  607. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.js.map +1 -0
  608. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.d.ts +216 -0
  609. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.js +3 -0
  610. package/lib/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.js.map +1 -0
  611. package/lib/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.d.ts +27 -0
  612. package/lib/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.js +3 -0
  613. package/lib/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.js.map +1 -0
  614. package/lib/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.d.ts +27 -0
  615. package/lib/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.js +3 -0
  616. package/lib/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.js.map +1 -0
  617. package/lib/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.d.ts +27 -0
  618. package/lib/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.js +3 -0
  619. package/lib/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.js.map +1 -0
  620. package/lib/typechain-types/seaport_v1_5/contracts/lib/Verifiers.d.ts +216 -0
  621. package/lib/typechain-types/seaport_v1_5/contracts/lib/Verifiers.js +3 -0
  622. package/lib/typechain-types/seaport_v1_5/contracts/lib/Verifiers.js.map +1 -0
  623. package/lib/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.d.ts +27 -0
  624. package/lib/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.js +3 -0
  625. package/lib/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.js.map +1 -0
  626. package/lib/typechain-types/seaport_v1_5/contracts/lib/index.d.ts +18 -0
  627. package/lib/typechain-types/seaport_v1_5/contracts/lib/index.js +3 -0
  628. package/lib/typechain-types/seaport_v1_5/contracts/lib/index.js.map +1 -0
  629. package/lib/typechain-types/seaport_v1_5/index.d.ts +2 -0
  630. package/lib/typechain-types/seaport_v1_5/index.js +3 -0
  631. package/lib/typechain-types/seaport_v1_5/index.js.map +1 -0
  632. package/lib/typechain-types/src/contracts/index.d.ts +2 -0
  633. package/lib/typechain-types/src/contracts/index.js +3 -0
  634. package/lib/typechain-types/src/contracts/index.js.map +1 -0
  635. package/lib/typechain-types/src/contracts/test/TestERC1155.d.ts +205 -0
  636. package/lib/typechain-types/src/contracts/test/TestERC1155.js +3 -0
  637. package/lib/typechain-types/src/contracts/test/TestERC1155.js.map +1 -0
  638. package/lib/typechain-types/src/contracts/test/TestERC20.d.ts +242 -0
  639. package/lib/typechain-types/src/contracts/test/TestERC20.js +3 -0
  640. package/lib/typechain-types/src/contracts/test/TestERC20.js.map +1 -0
  641. package/lib/typechain-types/src/contracts/test/TestERC20USDC.d.ts +242 -0
  642. package/lib/typechain-types/src/contracts/test/TestERC20USDC.js +3 -0
  643. package/lib/typechain-types/src/contracts/test/TestERC20USDC.js.map +1 -0
  644. package/lib/typechain-types/src/contracts/test/TestERC721.d.ts +243 -0
  645. package/lib/typechain-types/src/contracts/test/TestERC721.js +3 -0
  646. package/lib/typechain-types/src/contracts/test/TestERC721.js.map +1 -0
  647. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.d.ts +243 -0
  648. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.js +3 -0
  649. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.js.map +1 -0
  650. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/index.d.ts +1 -0
  651. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/index.js +3 -0
  652. package/lib/typechain-types/src/contracts/test/TestERC721.sol.sol/index.js.map +1 -0
  653. package/lib/typechain-types/src/contracts/test/index.d.ts +4 -0
  654. package/lib/typechain-types/src/contracts/test/index.js +3 -0
  655. package/lib/typechain-types/src/contracts/test/index.js.map +1 -0
  656. package/lib/typechain-types/src/index.d.ts +2 -0
  657. package/lib/typechain-types/src/index.js +3 -0
  658. package/lib/typechain-types/src/index.js.map +1 -0
  659. package/lib/types.d.ts +7 -9
  660. package/lib/utils/approval.d.ts +1 -1
  661. package/lib/utils/approval.js +53 -92
  662. package/lib/utils/approval.js.map +1 -1
  663. package/lib/utils/balance.js +37 -69
  664. package/lib/utils/balance.js.map +1 -1
  665. package/lib/utils/balanceAndApprovalCheck.js +91 -193
  666. package/lib/utils/balanceAndApprovalCheck.js.map +1 -1
  667. package/lib/utils/criteria.js +36 -76
  668. package/lib/utils/criteria.js.map +1 -1
  669. package/lib/utils/eip712/Eip712MerkleTree.js +64 -101
  670. package/lib/utils/eip712/Eip712MerkleTree.js.map +1 -1
  671. package/lib/utils/eip712/bulk-orders.js +21 -56
  672. package/lib/utils/eip712/bulk-orders.js.map +1 -1
  673. package/lib/utils/eip712/defaults.js +28 -61
  674. package/lib/utils/eip712/defaults.js.map +1 -1
  675. package/lib/utils/eip712/utils.js +17 -49
  676. package/lib/utils/eip712/utils.js.map +1 -1
  677. package/lib/utils/fulfill.d.ts +4 -4
  678. package/lib/utils/fulfill.js +305 -463
  679. package/lib/utils/fulfill.js.map +1 -1
  680. package/lib/utils/gcd.js +7 -7
  681. package/lib/utils/gcd.js.map +1 -1
  682. package/lib/utils/item.js +37 -92
  683. package/lib/utils/item.js.map +1 -1
  684. package/lib/utils/merkletree.js +11 -17
  685. package/lib/utils/merkletree.js.map +1 -1
  686. package/lib/utils/order.d.ts +1 -2
  687. package/lib/utils/order.js +50 -103
  688. package/lib/utils/order.js.map +1 -1
  689. package/lib/utils/usecase.d.ts +2 -2
  690. package/lib/utils/usecase.js +46 -146
  691. package/lib/utils/usecase.js.map +1 -1
  692. package/package.json +48 -66
  693. package/src/abi/DomainRegistry.ts +142 -0
  694. package/src/abi/ERC1155.ts +316 -0
  695. package/src/abi/ERC20.ts +314 -0
  696. package/src/abi/ERC721.ts +334 -0
  697. package/src/abi/Seaport_v1_4.ts +2815 -0
  698. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.dbg.json +4 -0
  699. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.json +323 -0
  700. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.dbg.json +4 -0
  701. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.json +89 -0
  702. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC20.sol/ERC20.dbg.json +4 -0
  703. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC20.sol/ERC20.json +308 -0
  704. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.dbg.json +4 -0
  705. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.json +341 -0
  706. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.dbg.json +4 -0
  707. package/src/artifacts/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.json +45 -0
  708. package/src/artifacts/build-info/8ec2a72c7ffed75938dc5db96ad993ab.json +1 -0
  709. package/src/artifacts/build-info/adb0dc5cdbe2af0ab1658ae96afea5af.json +1 -0
  710. package/src/artifacts/build-info/c314db703fc0cbcdaeb2d52354fe2c12.json +1 -0
  711. package/src/artifacts/domain-registry/contracts/DomainRegistry.sol/DomainRegistry.dbg.json +4 -0
  712. package/src/artifacts/domain-registry/contracts/DomainRegistry.sol/DomainRegistry.json +149 -0
  713. package/src/artifacts/domain-registry/contracts/interfaces/DomainRegistryInterface.sol/DomainRegistryInterface.dbg.json +4 -0
  714. package/src/artifacts/domain-registry/contracts/interfaces/DomainRegistryInterface.sol/DomainRegistryInterface.json +149 -0
  715. package/src/artifacts/seaport-core/src/conduit/Conduit.sol/Conduit.dbg.json +4 -0
  716. package/src/artifacts/seaport-core/src/conduit/Conduit.sol/Conduit.json +395 -0
  717. package/src/artifacts/seaport-core/src/conduit/ConduitController.sol/ConduitController.dbg.json +4 -0
  718. package/src/artifacts/seaport-core/src/conduit/ConduitController.sol/ConduitController.json +446 -0
  719. package/src/artifacts/seaport-core/src/lib/AmountDeriver.sol/AmountDeriver.dbg.json +4 -0
  720. package/src/artifacts/seaport-core/src/lib/AmountDeriver.sol/AmountDeriver.json +16 -0
  721. package/src/artifacts/seaport-core/src/lib/Assertions.sol/Assertions.dbg.json +4 -0
  722. package/src/artifacts/seaport-core/src/lib/Assertions.sol/Assertions.json +605 -0
  723. package/src/artifacts/seaport-core/src/lib/BasicOrderFulfiller.sol/BasicOrderFulfiller.dbg.json +4 -0
  724. package/src/artifacts/seaport-core/src/lib/BasicOrderFulfiller.sol/BasicOrderFulfiller.json +653 -0
  725. package/src/artifacts/seaport-core/src/lib/Consideration.sol/Consideration.dbg.json +4 -0
  726. package/src/artifacts/seaport-core/src/lib/Consideration.sol/Consideration.json +2945 -0
  727. package/src/artifacts/seaport-core/src/lib/ConsiderationBase.sol/ConsiderationBase.dbg.json +4 -0
  728. package/src/artifacts/seaport-core/src/lib/ConsiderationBase.sol/ConsiderationBase.json +475 -0
  729. package/src/artifacts/seaport-core/src/lib/ConsiderationDecoder.sol/ConsiderationDecoder.dbg.json +4 -0
  730. package/src/artifacts/seaport-core/src/lib/ConsiderationDecoder.sol/ConsiderationDecoder.json +10 -0
  731. package/src/artifacts/seaport-core/src/lib/ConsiderationEncoder.sol/ConsiderationEncoder.dbg.json +4 -0
  732. package/src/artifacts/seaport-core/src/lib/ConsiderationEncoder.sol/ConsiderationEncoder.json +10 -0
  733. package/src/artifacts/seaport-core/src/lib/CounterManager.sol/CounterManager.dbg.json +4 -0
  734. package/src/artifacts/seaport-core/src/lib/CounterManager.sol/CounterManager.json +469 -0
  735. package/src/artifacts/seaport-core/src/lib/CriteriaResolution.sol/CriteriaResolution.dbg.json +4 -0
  736. package/src/artifacts/seaport-core/src/lib/CriteriaResolution.sol/CriteriaResolution.json +74 -0
  737. package/src/artifacts/seaport-core/src/lib/Executor.sol/Executor.dbg.json +4 -0
  738. package/src/artifacts/seaport-core/src/lib/Executor.sol/Executor.json +631 -0
  739. package/src/artifacts/seaport-core/src/lib/FulfillmentApplier.sol/FulfillmentApplier.dbg.json +4 -0
  740. package/src/artifacts/seaport-core/src/lib/FulfillmentApplier.sol/FulfillmentApplier.json +43 -0
  741. package/src/artifacts/seaport-core/src/lib/GettersAndDerivers.sol/GettersAndDerivers.dbg.json +4 -0
  742. package/src/artifacts/seaport-core/src/lib/GettersAndDerivers.sol/GettersAndDerivers.json +475 -0
  743. package/src/artifacts/seaport-core/src/lib/LowLevelHelpers.sol/LowLevelHelpers.dbg.json +4 -0
  744. package/src/artifacts/seaport-core/src/lib/LowLevelHelpers.sol/LowLevelHelpers.json +10 -0
  745. package/src/artifacts/seaport-core/src/lib/OrderCombiner.sol/OrderCombiner.dbg.json +4 -0
  746. package/src/artifacts/seaport-core/src/lib/OrderCombiner.sol/OrderCombiner.json +753 -0
  747. package/src/artifacts/seaport-core/src/lib/OrderFulfiller.sol/OrderFulfiller.dbg.json +4 -0
  748. package/src/artifacts/seaport-core/src/lib/OrderFulfiller.sol/OrderFulfiller.json +721 -0
  749. package/src/artifacts/seaport-core/src/lib/OrderValidator.sol/OrderValidator.dbg.json +4 -0
  750. package/src/artifacts/seaport-core/src/lib/OrderValidator.sol/OrderValidator.json +653 -0
  751. package/src/artifacts/seaport-core/src/lib/ReentrancyGuard.sol/ReentrancyGuard.dbg.json +4 -0
  752. package/src/artifacts/seaport-core/src/lib/ReentrancyGuard.sol/ReentrancyGuard.json +21 -0
  753. package/src/artifacts/seaport-core/src/lib/SignatureVerification.sol/SignatureVerification.dbg.json +4 -0
  754. package/src/artifacts/seaport-core/src/lib/SignatureVerification.sol/SignatureVerification.json +37 -0
  755. package/src/artifacts/seaport-core/src/lib/TokenTransferrer.sol/TokenTransferrer.dbg.json +4 -0
  756. package/src/artifacts/seaport-core/src/lib/TokenTransferrer.sol/TokenTransferrer.json +136 -0
  757. package/src/artifacts/seaport-core/src/lib/Verifiers.sol/Verifiers.dbg.json +4 -0
  758. package/src/artifacts/seaport-core/src/lib/Verifiers.sol/Verifiers.json +631 -0
  759. package/src/artifacts/seaport-core/src/lib/ZoneInteraction.sol/ZoneInteraction.dbg.json +4 -0
  760. package/src/artifacts/seaport-core/src/lib/ZoneInteraction.sol/ZoneInteraction.json +33 -0
  761. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataPointerLib.dbg.json +4 -0
  762. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataPointerLib.json +10 -0
  763. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataReaders.dbg.json +4 -0
  764. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/CalldataReaders.json +10 -0
  765. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryPointerLib.dbg.json +4 -0
  766. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryPointerLib.json +10 -0
  767. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryReaders.dbg.json +4 -0
  768. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryReaders.json +10 -0
  769. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryWriters.dbg.json +4 -0
  770. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/MemoryWriters.json +10 -0
  771. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataPointerLib.dbg.json +4 -0
  772. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataPointerLib.json +10 -0
  773. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataReaders.dbg.json +4 -0
  774. package/src/artifacts/seaport-types/src/helpers/PointerLibraries.sol/ReturndataReaders.json +10 -0
  775. package/src/artifacts/seaport-types/src/interfaces/AmountDerivationErrors.sol/AmountDerivationErrors.dbg.json +4 -0
  776. package/src/artifacts/seaport-types/src/interfaces/AmountDerivationErrors.sol/AmountDerivationErrors.json +16 -0
  777. package/src/artifacts/seaport-types/src/interfaces/ConduitControllerInterface.sol/ConduitControllerInterface.dbg.json +4 -0
  778. package/src/artifacts/seaport-types/src/interfaces/ConduitControllerInterface.sol/ConduitControllerInterface.json +441 -0
  779. package/src/artifacts/seaport-types/src/interfaces/ConduitInterface.sol/ConduitInterface.dbg.json +4 -0
  780. package/src/artifacts/seaport-types/src/interfaces/ConduitInterface.sol/ConduitInterface.json +265 -0
  781. package/src/artifacts/seaport-types/src/interfaces/ConsiderationEventsAndErrors.sol/ConsiderationEventsAndErrors.dbg.json +4 -0
  782. package/src/artifacts/seaport-types/src/interfaces/ConsiderationEventsAndErrors.sol/ConsiderationEventsAndErrors.json +464 -0
  783. package/src/artifacts/seaport-types/src/interfaces/ConsiderationInterface.sol/ConsiderationInterface.dbg.json +4 -0
  784. package/src/artifacts/seaport-types/src/interfaces/ConsiderationInterface.sol/ConsiderationInterface.json +2199 -0
  785. package/src/artifacts/seaport-types/src/interfaces/CriteriaResolutionErrors.sol/CriteriaResolutionErrors.dbg.json +4 -0
  786. package/src/artifacts/seaport-types/src/interfaces/CriteriaResolutionErrors.sol/CriteriaResolutionErrors.json +74 -0
  787. package/src/artifacts/seaport-types/src/interfaces/FulfillmentApplicationErrors.sol/FulfillmentApplicationErrors.dbg.json +4 -0
  788. package/src/artifacts/seaport-types/src/interfaces/FulfillmentApplicationErrors.sol/FulfillmentApplicationErrors.json +43 -0
  789. package/src/artifacts/seaport-types/src/interfaces/ReentrancyErrors.sol/ReentrancyErrors.dbg.json +4 -0
  790. package/src/artifacts/seaport-types/src/interfaces/ReentrancyErrors.sol/ReentrancyErrors.json +16 -0
  791. package/src/artifacts/seaport-types/src/interfaces/SignatureVerificationErrors.sol/SignatureVerificationErrors.dbg.json +4 -0
  792. package/src/artifacts/seaport-types/src/interfaces/SignatureVerificationErrors.sol/SignatureVerificationErrors.json +37 -0
  793. package/src/artifacts/seaport-types/src/interfaces/TokenTransferrerErrors.sol/TokenTransferrerErrors.dbg.json +4 -0
  794. package/src/artifacts/seaport-types/src/interfaces/TokenTransferrerErrors.sol/TokenTransferrerErrors.json +136 -0
  795. package/src/artifacts/seaport-types/src/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.dbg.json +4 -0
  796. package/src/artifacts/seaport-types/src/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.json +33 -0
  797. package/src/artifacts/seaport-types/src/lib/ConsiderationStructs.sol/StructPointers.dbg.json +4 -0
  798. package/src/artifacts/seaport-types/src/lib/ConsiderationStructs.sol/StructPointers.json +10 -0
  799. package/src/artifacts/seaport_v1_4/contracts/Seaport.sol/Seaport.dbg.json +4 -0
  800. package/src/artifacts/seaport_v1_4/contracts/Seaport.sol/Seaport.json +2945 -0
  801. package/src/artifacts/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.dbg.json +4 -0
  802. package/src/artifacts/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.json +390 -0
  803. package/src/artifacts/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.dbg.json +4 -0
  804. package/src/artifacts/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.json +441 -0
  805. package/src/artifacts/seaport_v1_5/contracts/Seaport.sol/Seaport.dbg.json +4 -0
  806. package/src/artifacts/seaport_v1_5/contracts/Seaport.sol/Seaport.json +2945 -0
  807. package/src/artifacts/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.dbg.json +4 -0
  808. package/src/artifacts/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.sol/ZoneInteractionErrors.json +33 -0
  809. package/src/artifacts/src/contracts/test/TestERC1155.sol/TestERC1155.dbg.json +4 -0
  810. package/src/artifacts/src/contracts/test/TestERC1155.sol/TestERC1155.json +352 -0
  811. package/src/artifacts/src/contracts/test/TestERC20.sol/TestERC20.dbg.json +4 -0
  812. package/src/artifacts/src/contracts/test/TestERC20.sol/TestERC20.json +363 -0
  813. package/src/artifacts/src/contracts/test/TestERC20USDC.sol/TestERC20USDC.dbg.json +4 -0
  814. package/src/artifacts/src/contracts/test/TestERC20USDC.sol/TestERC20USDC.json +363 -0
  815. package/src/artifacts/src/contracts/test/TestERC721.sol/TestERC721.dbg.json +4 -0
  816. package/src/artifacts/src/contracts/test/TestERC721.sol/TestERC721.json +365 -0
  817. package/src/constants.ts +127 -0
  818. package/src/contracts/Conduit.sol +4 -0
  819. package/src/contracts/ConduitController.sol +4 -0
  820. package/src/contracts/DomainRegistry.sol +4 -0
  821. package/src/contracts/Seaport_v1_4.sol +4 -0
  822. package/src/contracts/Seaport_v1_5.sol +4 -0
  823. package/src/contracts/test/TestERC1155.sol +20 -0
  824. package/src/contracts/test/TestERC20.sol +36 -0
  825. package/src/contracts/test/TestERC20USDC.sol +36 -0
  826. package/src/contracts/test/TestERC721.sol +16 -0
  827. package/src/index.ts +3 -0
  828. package/src/seaport.ts +1150 -0
  829. package/src/typechain-types/@rari-capital/index.ts +5 -0
  830. package/src/typechain-types/@rari-capital/solmate/index.ts +5 -0
  831. package/src/typechain-types/@rari-capital/solmate/src/index.ts +5 -0
  832. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155.ts +501 -0
  833. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver.ts +181 -0
  834. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC1155.sol/index.ts +5 -0
  835. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC20.ts +471 -0
  836. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721.ts +563 -0
  837. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver.ts +120 -0
  838. package/src/typechain-types/@rari-capital/solmate/src/tokens/ERC721.sol/index.ts +5 -0
  839. package/src/typechain-types/@rari-capital/solmate/src/tokens/index.ts +8 -0
  840. package/src/typechain-types/common.ts +44 -0
  841. package/src/typechain-types/domain-registry/contracts/DomainRegistry.ts +226 -0
  842. package/src/typechain-types/domain-registry/contracts/index.ts +6 -0
  843. package/src/typechain-types/domain-registry/contracts/interfaces/DomainRegistryInterface.ts +226 -0
  844. package/src/typechain-types/domain-registry/contracts/interfaces/index.ts +4 -0
  845. package/src/typechain-types/domain-registry/index.ts +5 -0
  846. package/src/typechain-types/factories/@rari-capital/index.ts +4 -0
  847. package/src/typechain-types/factories/@rari-capital/solmate/index.ts +4 -0
  848. package/src/typechain-types/factories/@rari-capital/solmate/src/index.ts +4 -0
  849. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155TokenReceiver__factory.ts +108 -0
  850. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/ERC1155__factory.ts +338 -0
  851. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC1155.sol/index.ts +5 -0
  852. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC20__factory.ts +320 -0
  853. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721TokenReceiver__factory.ts +60 -0
  854. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/ERC721__factory.ts +353 -0
  855. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/ERC721.sol/index.ts +5 -0
  856. package/src/typechain-types/factories/@rari-capital/solmate/src/tokens/index.ts +6 -0
  857. package/src/typechain-types/factories/domain-registry/contracts/DomainRegistry__factory.ts +200 -0
  858. package/src/typechain-types/factories/domain-registry/contracts/index.ts +5 -0
  859. package/src/typechain-types/factories/domain-registry/contracts/interfaces/DomainRegistryInterface__factory.ts +168 -0
  860. package/src/typechain-types/factories/domain-registry/contracts/interfaces/index.ts +4 -0
  861. package/src/typechain-types/factories/domain-registry/index.ts +4 -0
  862. package/src/typechain-types/factories/index.ts +10 -0
  863. package/src/typechain-types/factories/seaport-core/index.ts +4 -0
  864. package/src/typechain-types/factories/seaport-core/src/conduit/ConduitController__factory.ts +497 -0
  865. package/src/typechain-types/factories/seaport-core/src/conduit/Conduit__factory.ts +444 -0
  866. package/src/typechain-types/factories/seaport-core/src/conduit/index.ts +5 -0
  867. package/src/typechain-types/factories/seaport-core/src/index.ts +5 -0
  868. package/src/typechain-types/factories/seaport-core/src/lib/AmountDeriver__factory.ts +67 -0
  869. package/src/typechain-types/factories/seaport-core/src/lib/Assertions__factory.ts +661 -0
  870. package/src/typechain-types/factories/seaport-core/src/lib/BasicOrderFulfiller__factory.ts +709 -0
  871. package/src/typechain-types/factories/seaport-core/src/lib/ConsiderationBase__factory.ts +531 -0
  872. package/src/typechain-types/factories/seaport-core/src/lib/Consideration__factory.ts +3001 -0
  873. package/src/typechain-types/factories/seaport-core/src/lib/CounterManager__factory.ts +520 -0
  874. package/src/typechain-types/factories/seaport-core/src/lib/CriteriaResolution__factory.ts +125 -0
  875. package/src/typechain-types/factories/seaport-core/src/lib/Executor__factory.ts +687 -0
  876. package/src/typechain-types/factories/seaport-core/src/lib/FulfillmentApplier__factory.ts +94 -0
  877. package/src/typechain-types/factories/seaport-core/src/lib/GettersAndDerivers__factory.ts +531 -0
  878. package/src/typechain-types/factories/seaport-core/src/lib/OrderCombiner__factory.ts +809 -0
  879. package/src/typechain-types/factories/seaport-core/src/lib/OrderFulfiller__factory.ts +777 -0
  880. package/src/typechain-types/factories/seaport-core/src/lib/OrderValidator__factory.ts +709 -0
  881. package/src/typechain-types/factories/seaport-core/src/lib/ReentrancyGuard__factory.ts +72 -0
  882. package/src/typechain-types/factories/seaport-core/src/lib/SignatureVerification__factory.ts +92 -0
  883. package/src/typechain-types/factories/seaport-core/src/lib/TokenTransferrer__factory.ts +187 -0
  884. package/src/typechain-types/factories/seaport-core/src/lib/Verifiers__factory.ts +687 -0
  885. package/src/typechain-types/factories/seaport-core/src/lib/ZoneInteraction__factory.ts +84 -0
  886. package/src/typechain-types/factories/seaport-core/src/lib/index.ts +21 -0
  887. package/src/typechain-types/factories/seaport-types/index.ts +4 -0
  888. package/src/typechain-types/factories/seaport-types/src/index.ts +4 -0
  889. package/src/typechain-types/factories/seaport-types/src/interfaces/AmountDerivationErrors__factory.ts +35 -0
  890. package/src/typechain-types/factories/seaport-types/src/interfaces/ConduitControllerInterface__factory.ts +460 -0
  891. package/src/typechain-types/factories/seaport-types/src/interfaces/ConduitInterface__factory.ts +280 -0
  892. package/src/typechain-types/factories/seaport-types/src/interfaces/ConsiderationEventsAndErrors__factory.ts +483 -0
  893. package/src/typechain-types/factories/seaport-types/src/interfaces/ConsiderationInterface__factory.ts +2218 -0
  894. package/src/typechain-types/factories/seaport-types/src/interfaces/CriteriaResolutionErrors__factory.ts +93 -0
  895. package/src/typechain-types/factories/seaport-types/src/interfaces/FulfillmentApplicationErrors__factory.ts +62 -0
  896. package/src/typechain-types/factories/seaport-types/src/interfaces/ReentrancyErrors__factory.ts +31 -0
  897. package/src/typechain-types/factories/seaport-types/src/interfaces/SignatureVerificationErrors__factory.ts +56 -0
  898. package/src/typechain-types/factories/seaport-types/src/interfaces/TokenTransferrerErrors__factory.ts +155 -0
  899. package/src/typechain-types/factories/seaport-types/src/interfaces/ZoneInteractionErrors__factory.ts +52 -0
  900. package/src/typechain-types/factories/seaport-types/src/interfaces/index.ts +14 -0
  901. package/src/typechain-types/factories/seaport_v1_4/contracts/Seaport__factory.ts +2998 -0
  902. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit__factory.ts +441 -0
  903. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/Conduit.sol/index.ts +4 -0
  904. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController__factory.ts +496 -0
  905. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/ConduitController.sol/index.ts +4 -0
  906. package/src/typechain-types/factories/seaport_v1_4/contracts/conduit/index.ts +5 -0
  907. package/src/typechain-types/factories/seaport_v1_4/contracts/index.ts +5 -0
  908. package/src/typechain-types/factories/seaport_v1_4/index.ts +4 -0
  909. package/src/typechain-types/factories/seaport_v1_5/contracts/Seaport__factory.ts +2998 -0
  910. package/src/typechain-types/factories/seaport_v1_5/contracts/index.ts +5 -0
  911. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/AmountDerivationErrors__factory.ts +35 -0
  912. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitControllerInterface__factory.ts +460 -0
  913. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConduitInterface__factory.ts +280 -0
  914. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors__factory.ts +483 -0
  915. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ConsiderationInterface__factory.ts +2218 -0
  916. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors__factory.ts +93 -0
  917. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors__factory.ts +62 -0
  918. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ReentrancyErrors__factory.ts +31 -0
  919. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors__factory.ts +56 -0
  920. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors__factory.ts +155 -0
  921. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors__factory.ts +52 -0
  922. package/src/typechain-types/factories/seaport_v1_5/contracts/interfaces/index.ts +4 -0
  923. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/AmountDeriver__factory.ts +67 -0
  924. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Assertions__factory.ts +661 -0
  925. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/BasicOrderFulfiller__factory.ts +709 -0
  926. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/ConsiderationBase__factory.ts +531 -0
  927. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Consideration__factory.ts +3001 -0
  928. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/CounterManager__factory.ts +520 -0
  929. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/CriteriaResolution__factory.ts +125 -0
  930. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Executor__factory.ts +687 -0
  931. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/FulfillmentApplier__factory.ts +94 -0
  932. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/GettersAndDerivers__factory.ts +531 -0
  933. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/OrderCombiner__factory.ts +809 -0
  934. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/OrderFulfiller__factory.ts +777 -0
  935. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/OrderValidator__factory.ts +709 -0
  936. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/ReentrancyGuard__factory.ts +72 -0
  937. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/SignatureVerification__factory.ts +92 -0
  938. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/TokenTransferrer__factory.ts +187 -0
  939. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/Verifiers__factory.ts +687 -0
  940. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/ZoneInteraction__factory.ts +84 -0
  941. package/src/typechain-types/factories/seaport_v1_5/contracts/lib/index.ts +21 -0
  942. package/src/typechain-types/factories/seaport_v1_5/index.ts +4 -0
  943. package/src/typechain-types/factories/src/contracts/index.ts +4 -0
  944. package/src/typechain-types/factories/src/contracts/test/TestERC1155__factory.ts +403 -0
  945. package/src/typechain-types/factories/src/contracts/test/TestERC20USDC__factory.ts +414 -0
  946. package/src/typechain-types/factories/src/contracts/test/TestERC20__factory.ts +414 -0
  947. package/src/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/TestERC721__factory.ts +416 -0
  948. package/src/typechain-types/factories/src/contracts/test/TestERC721.sol.sol/index.ts +4 -0
  949. package/src/typechain-types/factories/src/contracts/test/TestERC721__factory.ts +416 -0
  950. package/src/typechain-types/factories/src/contracts/test/index.ts +7 -0
  951. package/src/typechain-types/factories/src/index.ts +4 -0
  952. package/src/typechain-types/hardhat.d.ts +456 -0
  953. package/src/typechain-types/index.ts +108 -0
  954. package/src/typechain-types/seaport-core/index.ts +5 -0
  955. package/src/typechain-types/seaport-core/src/conduit/Conduit.ts +295 -0
  956. package/src/typechain-types/seaport-core/src/conduit/ConduitController.ts +612 -0
  957. package/src/typechain-types/seaport-core/src/conduit/index.ts +5 -0
  958. package/src/typechain-types/seaport-core/src/index.ts +7 -0
  959. package/src/typechain-types/seaport-core/src/lib/AmountDeriver.ts +55 -0
  960. package/src/typechain-types/seaport-core/src/lib/Assertions.ts +313 -0
  961. package/src/typechain-types/seaport-core/src/lib/BasicOrderFulfiller.ts +313 -0
  962. package/src/typechain-types/seaport-core/src/lib/Consideration.ts +1211 -0
  963. package/src/typechain-types/seaport-core/src/lib/ConsiderationBase.ts +313 -0
  964. package/src/typechain-types/seaport-core/src/lib/CounterManager.ts +313 -0
  965. package/src/typechain-types/seaport-core/src/lib/CriteriaResolution.ts +55 -0
  966. package/src/typechain-types/seaport-core/src/lib/Executor.ts +313 -0
  967. package/src/typechain-types/seaport-core/src/lib/FulfillmentApplier.ts +55 -0
  968. package/src/typechain-types/seaport-core/src/lib/GettersAndDerivers.ts +313 -0
  969. package/src/typechain-types/seaport-core/src/lib/OrderCombiner.ts +313 -0
  970. package/src/typechain-types/seaport-core/src/lib/OrderFulfiller.ts +313 -0
  971. package/src/typechain-types/seaport-core/src/lib/OrderValidator.ts +313 -0
  972. package/src/typechain-types/seaport-core/src/lib/ReentrancyGuard.ts +55 -0
  973. package/src/typechain-types/seaport-core/src/lib/SignatureVerification.ts +55 -0
  974. package/src/typechain-types/seaport-core/src/lib/TokenTransferrer.ts +55 -0
  975. package/src/typechain-types/seaport-core/src/lib/Verifiers.ts +313 -0
  976. package/src/typechain-types/seaport-core/src/lib/ZoneInteraction.ts +55 -0
  977. package/src/typechain-types/seaport-core/src/lib/index.ts +21 -0
  978. package/src/typechain-types/seaport-types/index.ts +5 -0
  979. package/src/typechain-types/seaport-types/src/index.ts +5 -0
  980. package/src/typechain-types/seaport-types/src/interfaces/AmountDerivationErrors.ts +55 -0
  981. package/src/typechain-types/seaport-types/src/interfaces/ConduitControllerInterface.ts +612 -0
  982. package/src/typechain-types/seaport-types/src/interfaces/ConduitInterface.ts +295 -0
  983. package/src/typechain-types/seaport-types/src/interfaces/ConsiderationEventsAndErrors.ts +313 -0
  984. package/src/typechain-types/seaport-types/src/interfaces/ConsiderationInterface.ts +1074 -0
  985. package/src/typechain-types/seaport-types/src/interfaces/CriteriaResolutionErrors.ts +55 -0
  986. package/src/typechain-types/seaport-types/src/interfaces/FulfillmentApplicationErrors.ts +55 -0
  987. package/src/typechain-types/seaport-types/src/interfaces/ReentrancyErrors.ts +55 -0
  988. package/src/typechain-types/seaport-types/src/interfaces/SignatureVerificationErrors.ts +55 -0
  989. package/src/typechain-types/seaport-types/src/interfaces/TokenTransferrerErrors.ts +55 -0
  990. package/src/typechain-types/seaport-types/src/interfaces/ZoneInteractionErrors.ts +55 -0
  991. package/src/typechain-types/seaport-types/src/interfaces/index.ts +14 -0
  992. package/src/typechain-types/seaport_v1_4/contracts/Seaport.ts +1205 -0
  993. package/src/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/LocalConduit.ts +295 -0
  994. package/src/typechain-types/seaport_v1_4/contracts/conduit/Conduit.sol/index.ts +4 -0
  995. package/src/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/LocalConduitController.ts +612 -0
  996. package/src/typechain-types/seaport_v1_4/contracts/conduit/ConduitController.sol/index.ts +4 -0
  997. package/src/typechain-types/seaport_v1_4/contracts/conduit/index.ts +7 -0
  998. package/src/typechain-types/seaport_v1_4/contracts/index.ts +6 -0
  999. package/src/typechain-types/seaport_v1_4/index.ts +5 -0
  1000. package/src/typechain-types/seaport_v1_5/contracts/Seaport.ts +1211 -0
  1001. package/src/typechain-types/seaport_v1_5/contracts/index.ts +6 -0
  1002. package/src/typechain-types/seaport_v1_5/contracts/interfaces/AmountDerivationErrors.ts +55 -0
  1003. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConduitControllerInterface.ts +612 -0
  1004. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConduitInterface.ts +295 -0
  1005. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationEventsAndErrors.ts +313 -0
  1006. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ConsiderationInterface.ts +1074 -0
  1007. package/src/typechain-types/seaport_v1_5/contracts/interfaces/CriteriaResolutionErrors.ts +55 -0
  1008. package/src/typechain-types/seaport_v1_5/contracts/interfaces/FulfillmentApplicationErrors.ts +55 -0
  1009. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ReentrancyErrors.ts +55 -0
  1010. package/src/typechain-types/seaport_v1_5/contracts/interfaces/SignatureVerificationErrors.ts +55 -0
  1011. package/src/typechain-types/seaport_v1_5/contracts/interfaces/TokenTransferrerErrors.ts +55 -0
  1012. package/src/typechain-types/seaport_v1_5/contracts/interfaces/ZoneInteractionErrors.ts +55 -0
  1013. package/src/typechain-types/seaport_v1_5/contracts/interfaces/index.ts +4 -0
  1014. package/src/typechain-types/seaport_v1_5/contracts/lib/AmountDeriver.ts +55 -0
  1015. package/src/typechain-types/seaport_v1_5/contracts/lib/Assertions.ts +313 -0
  1016. package/src/typechain-types/seaport_v1_5/contracts/lib/BasicOrderFulfiller.ts +313 -0
  1017. package/src/typechain-types/seaport_v1_5/contracts/lib/Consideration.ts +1211 -0
  1018. package/src/typechain-types/seaport_v1_5/contracts/lib/ConsiderationBase.ts +313 -0
  1019. package/src/typechain-types/seaport_v1_5/contracts/lib/CounterManager.ts +313 -0
  1020. package/src/typechain-types/seaport_v1_5/contracts/lib/CriteriaResolution.ts +55 -0
  1021. package/src/typechain-types/seaport_v1_5/contracts/lib/Executor.ts +313 -0
  1022. package/src/typechain-types/seaport_v1_5/contracts/lib/FulfillmentApplier.ts +55 -0
  1023. package/src/typechain-types/seaport_v1_5/contracts/lib/GettersAndDerivers.ts +313 -0
  1024. package/src/typechain-types/seaport_v1_5/contracts/lib/OrderCombiner.ts +313 -0
  1025. package/src/typechain-types/seaport_v1_5/contracts/lib/OrderFulfiller.ts +313 -0
  1026. package/src/typechain-types/seaport_v1_5/contracts/lib/OrderValidator.ts +313 -0
  1027. package/src/typechain-types/seaport_v1_5/contracts/lib/ReentrancyGuard.ts +55 -0
  1028. package/src/typechain-types/seaport_v1_5/contracts/lib/SignatureVerification.ts +55 -0
  1029. package/src/typechain-types/seaport_v1_5/contracts/lib/TokenTransferrer.ts +55 -0
  1030. package/src/typechain-types/seaport_v1_5/contracts/lib/Verifiers.ts +313 -0
  1031. package/src/typechain-types/seaport_v1_5/contracts/lib/ZoneInteraction.ts +55 -0
  1032. package/src/typechain-types/seaport_v1_5/contracts/lib/index.ts +21 -0
  1033. package/src/typechain-types/seaport_v1_5/index.ts +5 -0
  1034. package/src/typechain-types/src/contracts/index.ts +5 -0
  1035. package/src/typechain-types/src/contracts/test/TestERC1155.ts +543 -0
  1036. package/src/typechain-types/src/contracts/test/TestERC20.ts +554 -0
  1037. package/src/typechain-types/src/contracts/test/TestERC20USDC.ts +554 -0
  1038. package/src/typechain-types/src/contracts/test/TestERC721.sol.sol/TestERC721.ts +600 -0
  1039. package/src/typechain-types/src/contracts/test/TestERC721.sol.sol/index.ts +4 -0
  1040. package/src/typechain-types/src/contracts/test/TestERC721.ts +600 -0
  1041. package/src/typechain-types/src/contracts/test/index.ts +7 -0
  1042. package/src/typechain-types/src/index.ts +5 -0
  1043. package/src/types.ts +335 -0
  1044. package/src/utils/approval.ts +103 -0
  1045. package/src/utils/balance.ts +73 -0
  1046. package/src/utils/balanceAndApprovalCheck.ts +436 -0
  1047. package/src/utils/criteria.ts +83 -0
  1048. package/src/utils/eip712/Eip712MerkleTree.ts +128 -0
  1049. package/src/utils/eip712/bulk-orders.ts +62 -0
  1050. package/src/utils/eip712/defaults.ts +113 -0
  1051. package/src/utils/eip712/utils.ts +50 -0
  1052. package/src/utils/fulfill.ts +848 -0
  1053. package/src/utils/gcd.ts +26 -0
  1054. package/src/utils/item.ts +142 -0
  1055. package/src/utils/match.ts +55 -0
  1056. package/src/utils/merkletree.ts +33 -0
  1057. package/src/utils/order.ts +288 -0
  1058. package/src/utils/usecase.ts +124 -0
package/src/seaport.ts ADDED
@@ -0,0 +1,1150 @@
1
+ import { providers as multicallProviders } from "@0xsequence/multicall";
2
+ import {
3
+ BigNumber,
4
+ BigNumberish,
5
+ Contract,
6
+ ethers,
7
+ PayableOverrides,
8
+ providers,
9
+ } from "ethers";
10
+ import { _TypedDataEncoder } from "ethers/lib/utils";
11
+ import { DomainRegistryABI } from "./abi/DomainRegistry";
12
+ import { SeaportABIv14 } from "./abi/Seaport_v1_4";
13
+ import {
14
+ SEAPORT_CONTRACT_NAME,
15
+ SEAPORT_CONTRACT_VERSION_V1_4,
16
+ SEAPORT_CONTRACT_VERSION_V1_5,
17
+ EIP_712_ORDER_TYPE,
18
+ KNOWN_CONDUIT_KEYS_TO_CONDUIT,
19
+ MAX_INT,
20
+ NO_CONDUIT,
21
+ OPENSEA_CONDUIT_KEY,
22
+ OrderType,
23
+ DOMAIN_REGISTRY_ADDRESS,
24
+ CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,
25
+ CROSS_CHAIN_SEAPORT_V1_5_ADDRESS,
26
+ } from "./constants";
27
+ import type {
28
+ SeaportConfig,
29
+ CreateOrderAction,
30
+ CreateOrderInput,
31
+ DomainRegistryContract,
32
+ ExchangeAction,
33
+ InputCriteria,
34
+ Order,
35
+ OrderComponents,
36
+ OrderStatus,
37
+ OrderUseCase,
38
+ OrderWithCounter,
39
+ TipInputItem,
40
+ TransactionMethods,
41
+ ContractMethodReturnType,
42
+ MatchOrdersFulfillment,
43
+ SeaportContract,
44
+ Signer,
45
+ ApprovalAction,
46
+ CreateBulkOrdersAction,
47
+ } from "./types";
48
+ import { getApprovalActions } from "./utils/approval";
49
+ import {
50
+ getBalancesAndApprovals,
51
+ validateOfferBalancesAndApprovals,
52
+ } from "./utils/balanceAndApprovalCheck";
53
+ import { getBulkOrderTree } from "./utils/eip712/bulk-orders";
54
+ import {
55
+ fulfillAvailableOrders,
56
+ fulfillBasicOrder,
57
+ FulfillOrdersMetadata,
58
+ fulfillStandardOrder,
59
+ shouldUseBasicFulfill,
60
+ validateAndSanitizeFromOrderStatus,
61
+ } from "./utils/fulfill";
62
+ import { getMaximumSizeForOrder, isCurrencyItem } from "./utils/item";
63
+ import {
64
+ areAllCurrenciesSame,
65
+ deductFees,
66
+ feeToConsiderationItem,
67
+ generateRandomSalt,
68
+ mapInputItemToOfferItem,
69
+ totalItemsAmount,
70
+ } from "./utils/order";
71
+ import { executeAllActions, getTransactionMethods } from "./utils/usecase";
72
+
73
+ export class Seaport {
74
+ // Provides the raw interface to the contract for flexibility
75
+ public contract: SeaportContract;
76
+
77
+ public domainRegistry: DomainRegistryContract;
78
+
79
+ private provider: providers.Provider;
80
+
81
+ private signer?: Signer;
82
+
83
+ // Use the multicall provider for reads for batching and performance optimisations
84
+ // NOTE: Do NOT await between sequential requests if you're intending to batch
85
+ // instead, use Promise.all() and map to fetch data in parallel
86
+ // https://www.npmjs.com/package/@0xsequence/multicall
87
+ private multicallProvider: multicallProviders.MulticallProvider;
88
+
89
+ private config: Required<Omit<SeaportConfig, "overrides">>;
90
+
91
+ private defaultConduitKey: string;
92
+
93
+ readonly OPENSEA_CONDUIT_KEY: string = OPENSEA_CONDUIT_KEY;
94
+
95
+ /**
96
+ * @param providerOrSigner - The provider or signer to use for web3-related calls
97
+ * @param considerationConfig - A config to provide flexibility in the usage of Seaport
98
+ */
99
+ public constructor(
100
+ providerOrSigner: providers.JsonRpcProvider | Signer,
101
+ {
102
+ overrides,
103
+ // Five minute buffer
104
+ ascendingAmountFulfillmentBuffer = 300,
105
+ balanceAndApprovalChecksOnOrderCreation = true,
106
+ conduitKeyToConduit,
107
+ seaportVersion = "1.5",
108
+ }: SeaportConfig = {}
109
+ ) {
110
+ const provider =
111
+ providerOrSigner instanceof providers.Provider
112
+ ? providerOrSigner
113
+ : providerOrSigner.provider;
114
+ this.signer = (providerOrSigner as Signer)._isSigner
115
+ ? (providerOrSigner as Signer)
116
+ : undefined;
117
+
118
+ if (!provider) {
119
+ throw new Error(
120
+ "Either a provider or custom signer with provider must be provided"
121
+ );
122
+ }
123
+
124
+ this.provider = provider;
125
+
126
+ this.multicallProvider = new multicallProviders.MulticallProvider(
127
+ this.provider
128
+ );
129
+
130
+ this.contract = new Contract(
131
+ overrides?.contractAddress ??
132
+ (seaportVersion === "1.5"
133
+ ? CROSS_CHAIN_SEAPORT_V1_5_ADDRESS
134
+ : CROSS_CHAIN_SEAPORT_V1_4_ADDRESS),
135
+ SeaportABIv14,
136
+ this.multicallProvider
137
+ ) as SeaportContract;
138
+
139
+ this.domainRegistry = new Contract(
140
+ overrides?.domainRegistryAddress ?? DOMAIN_REGISTRY_ADDRESS,
141
+ DomainRegistryABI,
142
+ this.multicallProvider
143
+ ) as DomainRegistryContract;
144
+
145
+ this.config = {
146
+ ascendingAmountFulfillmentBuffer,
147
+ balanceAndApprovalChecksOnOrderCreation,
148
+ conduitKeyToConduit: {
149
+ ...KNOWN_CONDUIT_KEYS_TO_CONDUIT,
150
+ [NO_CONDUIT]: this.contract.address,
151
+ ...conduitKeyToConduit,
152
+ },
153
+ seaportVersion,
154
+ };
155
+
156
+ this.defaultConduitKey = overrides?.defaultConduitKey ?? NO_CONDUIT;
157
+ }
158
+
159
+ /**
160
+ * Returns a use case that will create an order.
161
+ * The use case will contain the list of actions necessary to finish creating an order.
162
+ * The list of actions will either be an approval if approvals are necessary
163
+ * or a signature request that will then be supplied into the final Order struct, ready to be fulfilled.
164
+ *
165
+ * @param input
166
+ * @param input.conduitKey The conduitKey key to derive where to source your approvals from. Defaults to 0 which refers to the Seaport contract.
167
+ * Another special value is address(1) will refer to the legacy proxy. All other must derive to the specified address.
168
+ * @param input.zone The zone of the order. Defaults to the zero address.
169
+ * @param input.startTime The start time of the order. Defaults to the current unix time.
170
+ * @param input.endTime The end time of the order. Defaults to "never end".
171
+ * It is HIGHLY recommended to pass in an explicit end time
172
+ * @param input.offer The items you are willing to offer. This is a condensed version of the Seaport struct OfferItem for convenience
173
+ * @param input.consideration The items that will go to their respective recipients upon receiving your offer.
174
+ * @param input.counter The counter from which to create the order with. Automatically fetched from the contract if not provided
175
+ * @param input.allowPartialFills Whether to allow the order to be partially filled
176
+ * @param input.restrictedByZone Whether the order should be restricted by zone
177
+ * @param input.fees Convenience array to apply fees onto the order. The fees will be deducted from the
178
+ * existing consideration items and then tacked on as new consideration items
179
+ * @param input.domain An optional domain to be hashed and included in the first four bytes of the random salt.
180
+ * @param input.salt Arbitrary salt. If not passed in, a random salt will be generated with the first four bytes being the domain hash or empty.
181
+ * @param input.offerer The order's creator address. Defaults to the first address on the provider.
182
+ * @param accountAddress Optional address for which to create the order with
183
+ * @param exactApproval optional boolean to indicate whether the approval should be exact or not
184
+ * @returns a use case containing the list of actions needed to be performed in order to create the order
185
+ */
186
+ public async createOrder(
187
+ input: CreateOrderInput,
188
+ accountAddress?: string,
189
+ exactApproval?: boolean
190
+ ): Promise<OrderUseCase<CreateOrderAction>> {
191
+ const signer = this._getSigner(accountAddress);
192
+ const offerer = await signer.getAddress();
193
+
194
+ const { orderComponents, approvalActions } = await this._formatOrder(
195
+ signer,
196
+ offerer,
197
+ Boolean(exactApproval),
198
+ input
199
+ );
200
+
201
+ const createOrderAction = {
202
+ type: "create",
203
+ getMessageToSign: () => {
204
+ return this._getMessageToSign(orderComponents);
205
+ },
206
+ createOrder: async () => {
207
+ const signature = await this.signOrder(orderComponents, offerer);
208
+
209
+ return {
210
+ parameters: orderComponents,
211
+ signature,
212
+ };
213
+ },
214
+ } as const;
215
+
216
+ const actions = [...approvalActions, createOrderAction] as const;
217
+
218
+ return {
219
+ actions,
220
+ executeAllActions: () =>
221
+ executeAllActions(actions) as Promise<OrderWithCounter>,
222
+ };
223
+ }
224
+
225
+ /**
226
+ * Returns a use case that will create bulk orders.
227
+ * The use case will contain the list of actions necessary to finish creating the orders.
228
+ * The list of actions will either be an approval if approvals are necessary
229
+ * or a signature request that will then be supplied into the final orders, ready to be fulfilled.
230
+ *
231
+ * @param input See {@link createOrder} for more details about the input parameters.
232
+ * @param exactApproval optional boolean to indicate whether the approval should be exact or not
233
+ * @returns a use case containing the list of actions needed to be performed in order to create the orders
234
+ */
235
+ public async createBulkOrders(
236
+ createOrderInput: CreateOrderInput[],
237
+ accountAddress?: string,
238
+ exactApproval?: boolean
239
+ ): Promise<OrderUseCase<CreateBulkOrdersAction>> {
240
+ const signer = this._getSigner(accountAddress);
241
+ const offerer = await signer.getAddress();
242
+ const offererCounter = await this.getCounter(offerer);
243
+
244
+ const allApprovalActions: ApprovalAction[] = [];
245
+ const allOrderComponents: OrderComponents[] = [];
246
+
247
+ for (const input of createOrderInput) {
248
+ input.counter ??= offererCounter;
249
+ const { orderComponents, approvalActions } = await this._formatOrder(
250
+ signer,
251
+ offerer,
252
+ Boolean(exactApproval),
253
+ input
254
+ );
255
+
256
+ allOrderComponents.push(orderComponents);
257
+
258
+ // Dedupe approvals by token address
259
+ for (const approval of approvalActions) {
260
+ if (
261
+ allApprovalActions.find((a) => a.token === approval.token) ===
262
+ undefined
263
+ ) {
264
+ allApprovalActions.push(approval);
265
+ }
266
+ }
267
+ }
268
+
269
+ const createBulkOrdersAction = {
270
+ type: "createBulk",
271
+ getMessageToSign: () => {
272
+ return this._getBulkMessageToSign(allOrderComponents);
273
+ },
274
+ createBulkOrders: async () => {
275
+ const orders = await this.signBulkOrder(allOrderComponents, offerer);
276
+ return orders;
277
+ },
278
+ } as const;
279
+
280
+ const actions = [...allApprovalActions, createBulkOrdersAction] as const;
281
+
282
+ return {
283
+ actions,
284
+ executeAllActions: () =>
285
+ executeAllActions(actions) as Promise<OrderWithCounter[]>,
286
+ };
287
+ }
288
+
289
+ /**
290
+ * Formats an order for creation.
291
+ */
292
+ private async _formatOrder(
293
+ signer: Signer,
294
+ offerer: string,
295
+ exactApproval: boolean,
296
+ {
297
+ conduitKey = this.defaultConduitKey,
298
+ zone = ethers.constants.AddressZero,
299
+ startTime = Math.floor(Date.now() / 1000).toString(),
300
+ endTime = MAX_INT.toString(),
301
+ offer,
302
+ consideration,
303
+ counter,
304
+ allowPartialFills,
305
+ restrictedByZone,
306
+ fees,
307
+ domain,
308
+ salt,
309
+ }: CreateOrderInput
310
+ ) {
311
+ const offerItems = offer.map(mapInputItemToOfferItem);
312
+ const considerationItems = [
313
+ ...consideration.map((consideration) => ({
314
+ ...mapInputItemToOfferItem(consideration),
315
+ recipient: consideration.recipient ?? offerer,
316
+ })),
317
+ ];
318
+
319
+ if (
320
+ fees?.length &&
321
+ !areAllCurrenciesSame({
322
+ offer: offerItems,
323
+ consideration: considerationItems,
324
+ })
325
+ ) {
326
+ throw new Error(
327
+ "All currency tokens in the order must be the same token when applying fees"
328
+ );
329
+ }
330
+
331
+ const currencies = [...offerItems, ...considerationItems].filter(
332
+ isCurrencyItem
333
+ );
334
+
335
+ const totalCurrencyAmount = totalItemsAmount(currencies);
336
+
337
+ const operator = this.config.conduitKeyToConduit[conduitKey];
338
+
339
+ const orderType = this._getOrderTypeFromOrderOptions({
340
+ allowPartialFills,
341
+ restrictedByZone,
342
+ });
343
+
344
+ const considerationItemsWithFees = [
345
+ ...deductFees(considerationItems, fees),
346
+ ...(currencies.length
347
+ ? fees?.map((fee) =>
348
+ feeToConsiderationItem({
349
+ fee,
350
+ token: currencies[0].token,
351
+ baseAmount: totalCurrencyAmount.startAmount,
352
+ baseEndAmount: totalCurrencyAmount.endAmount,
353
+ })
354
+ ) ?? []
355
+ : []),
356
+ ];
357
+
358
+ const saltFollowingConditional =
359
+ salt !== undefined
360
+ ? `0x${BigNumber.from(salt).toHexString().slice(2).padStart(64, "0")}`
361
+ : generateRandomSalt(domain);
362
+
363
+ const orderComponents: OrderComponents = {
364
+ offerer,
365
+ zone,
366
+ zoneHash: ethers.constants.HashZero,
367
+ startTime,
368
+ endTime,
369
+ orderType,
370
+ offer: offerItems,
371
+ consideration: considerationItemsWithFees,
372
+ totalOriginalConsiderationItems: considerationItemsWithFees.length,
373
+ salt: saltFollowingConditional,
374
+ conduitKey,
375
+ counter: (counter ?? (await this.getCounter(offerer))).toString(),
376
+ };
377
+
378
+ const approvalActions: ApprovalAction[] = [];
379
+
380
+ if (this.config.balanceAndApprovalChecksOnOrderCreation) {
381
+ const balancesAndApprovals = await getBalancesAndApprovals({
382
+ owner: offerer,
383
+ items: offerItems,
384
+ criterias: [],
385
+ multicallProvider: this.multicallProvider,
386
+ operator,
387
+ });
388
+
389
+ const insufficientApprovals = validateOfferBalancesAndApprovals({
390
+ offer: offerItems,
391
+ criterias: [],
392
+ balancesAndApprovals,
393
+ throwOnInsufficientBalances: true,
394
+ operator,
395
+ });
396
+
397
+ const approvals = getApprovalActions(
398
+ insufficientApprovals,
399
+ exactApproval,
400
+ signer
401
+ );
402
+ approvalActions.push(...approvals);
403
+ }
404
+
405
+ return { orderComponents, approvalActions };
406
+ }
407
+
408
+ private _getSigner(accountAddress?: string): Signer {
409
+ if (this.signer) {
410
+ return this.signer;
411
+ }
412
+
413
+ if (!(this.provider instanceof providers.JsonRpcProvider)) {
414
+ throw new Error("Either signer or a JsonRpcProvider must be provided");
415
+ }
416
+
417
+ return this.provider.getSigner(accountAddress);
418
+ }
419
+
420
+ /**
421
+ * Returns the corresponding order type based on whether it allows partial fills and is restricted by zone
422
+ *
423
+ * @param input
424
+ * @param input.allowPartialFills Whether or not the order can be partially filled
425
+ * @param input.restrictedByZone Whether or not the order can only be filled/cancelled by the zone
426
+ * @returns the order type
427
+ */
428
+ private _getOrderTypeFromOrderOptions({
429
+ allowPartialFills,
430
+ restrictedByZone,
431
+ }: Pick<CreateOrderInput, "allowPartialFills" | "restrictedByZone">) {
432
+ if (allowPartialFills) {
433
+ return restrictedByZone
434
+ ? OrderType.PARTIAL_RESTRICTED
435
+ : OrderType.PARTIAL_OPEN;
436
+ }
437
+
438
+ return restrictedByZone ? OrderType.FULL_RESTRICTED : OrderType.FULL_OPEN;
439
+ }
440
+
441
+ /**
442
+ * Returns the domain data used when signing typed data
443
+ * @returns domain data
444
+ */
445
+ private async _getDomainData() {
446
+ const { chainId } = await this.provider.getNetwork();
447
+
448
+ return {
449
+ name: SEAPORT_CONTRACT_NAME,
450
+ version:
451
+ this.config.seaportVersion === "1.5"
452
+ ? SEAPORT_CONTRACT_VERSION_V1_5
453
+ : SEAPORT_CONTRACT_VERSION_V1_4,
454
+ chainId,
455
+ verifyingContract: this.contract.address,
456
+ };
457
+ }
458
+
459
+ /**
460
+ * Returns a raw message to be signed using EIP-712
461
+ * @param orderParameters order parameter struct
462
+ * @returns JSON string of the message to be signed
463
+ */
464
+ private async _getMessageToSign(orderComponents: OrderComponents) {
465
+ const domainData = await this._getDomainData();
466
+
467
+ return JSON.stringify(
468
+ _TypedDataEncoder.getPayload(
469
+ domainData,
470
+ EIP_712_ORDER_TYPE,
471
+ orderComponents
472
+ )
473
+ );
474
+ }
475
+
476
+ /**
477
+ * Returns a raw bulk order message to be signed using EIP-712
478
+ * @param orderParameters order parameter struct
479
+ * @param counter counter of the order
480
+ * @returns JSON string of the message to be signed
481
+ */
482
+ private async _getBulkMessageToSign(orderComponents: OrderComponents[]) {
483
+ const domainData = await this._getDomainData();
484
+
485
+ const tree = getBulkOrderTree(orderComponents);
486
+ const bulkOrderType = tree.types;
487
+ const chunks = tree.getDataToSign();
488
+
489
+ return JSON.stringify(
490
+ _TypedDataEncoder.getPayload(domainData, bulkOrderType, { tree: chunks })
491
+ );
492
+ }
493
+
494
+ /**
495
+ * Submits a request to your provider to sign the order. Signed orders are used for off-chain order books.
496
+ * @param orderComponents standard order parameter struct
497
+ * @param accountAddress optional account address from which to sign the order with.
498
+ * @returns the order signature
499
+ */
500
+ public async signOrder(
501
+ orderComponents: OrderComponents,
502
+ accountAddress?: string
503
+ ): Promise<string> {
504
+ const signer = this._getSigner(accountAddress);
505
+
506
+ const domainData = await this._getDomainData();
507
+
508
+ const signature = await signer._signTypedData(
509
+ domainData,
510
+ EIP_712_ORDER_TYPE,
511
+ orderComponents
512
+ );
513
+
514
+ // Use EIP-2098 compact signatures to save gas.
515
+ return ethers.utils.splitSignature(signature).compact;
516
+ }
517
+
518
+ /**
519
+ * Submits a request to your provider to sign the bulk order. Signed orders are used for off-chain order books.
520
+ * @param orderComponents standard order components struct
521
+ * @param accountAddress optional account address from which to sign the order with.
522
+ * @returns the orders with their signatures
523
+ */
524
+ public async signBulkOrder(
525
+ orderComponents: OrderComponents[],
526
+ accountAddress?: string
527
+ ): Promise<OrderWithCounter[]> {
528
+ const signer = this._getSigner(accountAddress);
529
+
530
+ const domainData = await this._getDomainData();
531
+ const tree = getBulkOrderTree(orderComponents);
532
+ const bulkOrderType = tree.types;
533
+ const chunks = tree.getDataToSign();
534
+ const value = { tree: chunks };
535
+
536
+ let signature = await signer._signTypedData(
537
+ domainData,
538
+ bulkOrderType,
539
+ value
540
+ );
541
+
542
+ // Use EIP-2098 compact signatures to save gas.
543
+ signature = ethers.utils.splitSignature(signature).compact;
544
+
545
+ const orders: OrderWithCounter[] = orderComponents.map((parameters, i) => ({
546
+ parameters,
547
+ signature: tree.getEncodedProofAndSignature(i, signature),
548
+ }));
549
+
550
+ return orders;
551
+ }
552
+
553
+ /**
554
+ * Cancels a list of orders so that they are no longer fulfillable.
555
+ *
556
+ * @param orders list of order components
557
+ * @param accountAddress optional account address from which to cancel the orders from.
558
+ * @param domain optional domain to be hashed and appended to calldata
559
+ * @returns the set of transaction methods that can be used
560
+ */
561
+ public cancelOrders(
562
+ orders: OrderComponents[],
563
+ accountAddress?: string,
564
+ domain?: string
565
+ ): TransactionMethods<ContractMethodReturnType<SeaportContract, "cancel">> {
566
+ const signer = this._getSigner(accountAddress);
567
+
568
+ return getTransactionMethods(
569
+ this.contract.connect(signer),
570
+ "cancel",
571
+ [orders],
572
+ domain
573
+ );
574
+ }
575
+
576
+ /**
577
+ * Bulk cancels all existing orders for a given account
578
+ * @param offerer the account to bulk cancel orders on
579
+ * @param domain optional domain to be hashed and appended to calldata
580
+ * @returns the set of transaction methods that can be used
581
+ */
582
+ public bulkCancelOrders(
583
+ offerer?: string,
584
+ domain?: string
585
+ ): TransactionMethods<
586
+ ContractMethodReturnType<SeaportContract, "incrementCounter">
587
+ > {
588
+ const signer = this._getSigner(offerer);
589
+
590
+ return getTransactionMethods(
591
+ this.contract.connect(signer),
592
+ "incrementCounter",
593
+ [],
594
+ domain
595
+ );
596
+ }
597
+
598
+ /**
599
+ * Approves a list of orders on-chain. This allows accounts to fulfill the order without requiring
600
+ * a signature. Can also check if an order is valid using `callStatic`
601
+ * @param orders list of order structs
602
+ * @param accountAddress optional account address to approve orders.
603
+ * @param domain optional domain to be hashed and appended to calldata
604
+ * @returns the set of transaction methods that can be used
605
+ */
606
+ public validate(
607
+ orders: Order[],
608
+ accountAddress?: string,
609
+ domain?: string
610
+ ): TransactionMethods<ContractMethodReturnType<SeaportContract, "validate">> {
611
+ const signer = this._getSigner(accountAddress);
612
+
613
+ return getTransactionMethods(
614
+ this.contract.connect(signer),
615
+ "validate",
616
+ [orders],
617
+ domain
618
+ );
619
+ }
620
+
621
+ /**
622
+ * Returns the order status given an order hash
623
+ * @param orderHash the hash of the order
624
+ * @returns an order status struct
625
+ */
626
+ public getOrderStatus(orderHash: string): Promise<OrderStatus> {
627
+ return this.contract.getOrderStatus(orderHash);
628
+ }
629
+
630
+ /**
631
+ * Gets the counter of a given offerer
632
+ * @param offerer the offerer to get the counter of
633
+ * @returns counter as a number
634
+ */
635
+ public getCounter(offerer: string): Promise<BigNumber> {
636
+ return this.contract.getCounter(offerer);
637
+ }
638
+
639
+ /**
640
+ * Calculates the order hash of order components so we can forgo executing a request to the contract
641
+ * This saves us RPC calls and latency.
642
+ */
643
+ public getOrderHash = (orderComponents: OrderComponents): string => {
644
+ const offerItemTypeString =
645
+ "OfferItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount)";
646
+ const considerationItemTypeString =
647
+ "ConsiderationItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount,address recipient)";
648
+ const orderComponentsPartialTypeString =
649
+ "OrderComponents(address offerer,address zone,OfferItem[] offer,ConsiderationItem[] consideration,uint8 orderType,uint256 startTime,uint256 endTime,bytes32 zoneHash,uint256 salt,bytes32 conduitKey,uint256 counter)";
650
+ const orderTypeString = `${orderComponentsPartialTypeString}${considerationItemTypeString}${offerItemTypeString}`;
651
+
652
+ const offerItemTypeHash = ethers.utils.keccak256(
653
+ ethers.utils.toUtf8Bytes(offerItemTypeString)
654
+ );
655
+ const considerationItemTypeHash = ethers.utils.keccak256(
656
+ ethers.utils.toUtf8Bytes(considerationItemTypeString)
657
+ );
658
+ const orderTypeHash = ethers.utils.keccak256(
659
+ ethers.utils.toUtf8Bytes(orderTypeString)
660
+ );
661
+
662
+ const offerHash = ethers.utils.keccak256(
663
+ "0x" +
664
+ orderComponents.offer
665
+ .map((offerItem) => {
666
+ return ethers.utils
667
+ .keccak256(
668
+ "0x" +
669
+ [
670
+ offerItemTypeHash.slice(2),
671
+ offerItem.itemType.toString().padStart(64, "0"),
672
+ offerItem.token.slice(2).padStart(64, "0"),
673
+ ethers.BigNumber.from(offerItem.identifierOrCriteria)
674
+ .toHexString()
675
+ .slice(2)
676
+ .padStart(64, "0"),
677
+ ethers.BigNumber.from(offerItem.startAmount)
678
+ .toHexString()
679
+ .slice(2)
680
+ .padStart(64, "0"),
681
+ ethers.BigNumber.from(offerItem.endAmount)
682
+ .toHexString()
683
+ .slice(2)
684
+ .padStart(64, "0"),
685
+ ].join("")
686
+ )
687
+ .slice(2);
688
+ })
689
+ .join("")
690
+ );
691
+
692
+ const considerationHash = ethers.utils.keccak256(
693
+ "0x" +
694
+ orderComponents.consideration
695
+ .map((considerationItem) => {
696
+ return ethers.utils
697
+ .keccak256(
698
+ "0x" +
699
+ [
700
+ considerationItemTypeHash.slice(2),
701
+ considerationItem.itemType.toString().padStart(64, "0"),
702
+ considerationItem.token.slice(2).padStart(64, "0"),
703
+ ethers.BigNumber.from(
704
+ considerationItem.identifierOrCriteria
705
+ )
706
+ .toHexString()
707
+ .slice(2)
708
+ .padStart(64, "0"),
709
+ ethers.BigNumber.from(considerationItem.startAmount)
710
+ .toHexString()
711
+ .slice(2)
712
+ .padStart(64, "0"),
713
+ ethers.BigNumber.from(considerationItem.endAmount)
714
+ .toHexString()
715
+ .slice(2)
716
+ .padStart(64, "0"),
717
+ considerationItem.recipient.slice(2).padStart(64, "0"),
718
+ ].join("")
719
+ )
720
+ .slice(2);
721
+ })
722
+ .join("")
723
+ );
724
+
725
+ const derivedOrderHash = ethers.utils.keccak256(
726
+ "0x" +
727
+ [
728
+ orderTypeHash.slice(2),
729
+ orderComponents.offerer.slice(2).padStart(64, "0"),
730
+ orderComponents.zone.slice(2).padStart(64, "0"),
731
+ offerHash.slice(2),
732
+ considerationHash.slice(2),
733
+ orderComponents.orderType.toString().padStart(64, "0"),
734
+ ethers.BigNumber.from(orderComponents.startTime)
735
+ .toHexString()
736
+ .slice(2)
737
+ .padStart(64, "0"),
738
+ ethers.BigNumber.from(orderComponents.endTime)
739
+ .toHexString()
740
+ .slice(2)
741
+ .padStart(64, "0"),
742
+ orderComponents.zoneHash.slice(2),
743
+ BigNumber.from(orderComponents.salt)
744
+ .toHexString()
745
+ .slice(2)
746
+ .padStart(64, "0"),
747
+ orderComponents.conduitKey.slice(2).padStart(64, "0"),
748
+ ethers.BigNumber.from(orderComponents.counter)
749
+ .toHexString()
750
+ .slice(2)
751
+ .padStart(64, "0"),
752
+ ].join("")
753
+ );
754
+
755
+ return derivedOrderHash;
756
+ };
757
+
758
+ /**
759
+ * Fulfills an order through either the basic method or the standard method
760
+ * Units to fill are denominated by the max possible size of the order, which is the greatest common denominator (GCD).
761
+ * We expose a helper to get this: getMaximumSizeForOrder
762
+ * i.e. If the maximum size of an order is 4, supplying 2 as the units to fulfill will fill half of the order: ;
763
+ * @param input
764
+ * @param input.order The standard order struct
765
+ * @param input.unitsToFill the number of units to fill for the given order. Only used if you wish to partially fill an order
766
+ * @param input.offerCriteria an array of criteria with length equal to the number of offer criteria items
767
+ * @param input.considerationCriteria an array of criteria with length equal to the number of consideration criteria items
768
+ * @param input.tips an array of optional condensed consideration items to be added onto a fulfillment
769
+ * @param input.extraData extra data supplied to the order
770
+ * @param input.accountAddress optional address from which to fulfill the order from
771
+ * @param input.conduitKey the conduitKey to source approvals from
772
+ * @param input.recipientAddress optional recipient to forward the offer to as opposed to the fulfiller.
773
+ * Defaults to the zero address which means the offer goes to the fulfiller
774
+ * @param input.domain optional domain to be hashed and appended to calldata
775
+ * @param input.exactApproval optional boolean to indicate whether the approval should be exact or not
776
+ * @returns a use case containing the set of approval actions and fulfillment action
777
+ */
778
+ public async fulfillOrder({
779
+ order,
780
+ unitsToFill,
781
+ offerCriteria = [],
782
+ considerationCriteria = [],
783
+ tips = [],
784
+ extraData = "0x",
785
+ accountAddress,
786
+ conduitKey = this.defaultConduitKey,
787
+ recipientAddress = ethers.constants.AddressZero,
788
+ domain,
789
+ exactApproval = false,
790
+ }: {
791
+ order: OrderWithCounter;
792
+ unitsToFill?: BigNumberish;
793
+ offerCriteria?: InputCriteria[];
794
+ considerationCriteria?: InputCriteria[];
795
+ tips?: TipInputItem[];
796
+ extraData?: string;
797
+ accountAddress?: string;
798
+ conduitKey?: string;
799
+ recipientAddress?: string;
800
+ domain?: string;
801
+ exactApproval?: boolean;
802
+ }): Promise<
803
+ OrderUseCase<
804
+ ExchangeAction<
805
+ ContractMethodReturnType<
806
+ SeaportContract,
807
+ "fulfillBasicOrder" | "fulfillOrder" | "fulfillAdvancedOrder"
808
+ >
809
+ >
810
+ >
811
+ > {
812
+ if (!order.signature) {
813
+ throw new Error("Order is missing signature");
814
+ }
815
+
816
+ const { parameters: orderParameters } = order;
817
+ const { offerer, offer, consideration } = orderParameters;
818
+
819
+ const fulfiller = this._getSigner(accountAddress);
820
+
821
+ const fulfillerAddress = await fulfiller.getAddress();
822
+
823
+ const offererOperator =
824
+ this.config.conduitKeyToConduit[orderParameters.conduitKey];
825
+
826
+ const fulfillerOperator = this.config.conduitKeyToConduit[conduitKey];
827
+
828
+ const [
829
+ offererBalancesAndApprovals,
830
+ fulfillerBalancesAndApprovals,
831
+ currentBlock,
832
+ orderStatus,
833
+ ] = await Promise.all([
834
+ getBalancesAndApprovals({
835
+ owner: offerer,
836
+ items: offer,
837
+ criterias: offerCriteria,
838
+ multicallProvider: this.multicallProvider,
839
+ operator: offererOperator,
840
+ }),
841
+ // Get fulfiller balances and approvals of all items in the set, as offer items
842
+ // may be received by the fulfiller for standard fulfills
843
+ getBalancesAndApprovals({
844
+ owner: fulfillerAddress,
845
+ items: [...offer, ...consideration],
846
+ criterias: [...offerCriteria, ...considerationCriteria],
847
+ multicallProvider: this.multicallProvider,
848
+ operator: fulfillerOperator,
849
+ }),
850
+ this.multicallProvider.getBlock("latest"),
851
+ this.getOrderStatus(this.getOrderHash(orderParameters)),
852
+ ]);
853
+
854
+ const currentBlockTimestamp = currentBlock.timestamp;
855
+
856
+ const { totalFilled, totalSize } = orderStatus;
857
+
858
+ const sanitizedOrder = validateAndSanitizeFromOrderStatus(
859
+ order,
860
+ orderStatus
861
+ );
862
+
863
+ const timeBasedItemParams = {
864
+ startTime: sanitizedOrder.parameters.startTime,
865
+ endTime: sanitizedOrder.parameters.endTime,
866
+ currentBlockTimestamp,
867
+ ascendingAmountTimestampBuffer:
868
+ this.config.ascendingAmountFulfillmentBuffer,
869
+ };
870
+
871
+ const tipConsiderationItems = tips.map((tip) => ({
872
+ ...mapInputItemToOfferItem(tip),
873
+ recipient: tip.recipient,
874
+ }));
875
+
876
+ const isRecipientSelf = recipientAddress === ethers.constants.AddressZero;
877
+
878
+ // We use basic fulfills as they are more optimal for simple and "hot" use cases
879
+ // We cannot use basic fulfill if user is trying to partially fill though.
880
+ if (
881
+ !unitsToFill &&
882
+ isRecipientSelf &&
883
+ shouldUseBasicFulfill(sanitizedOrder.parameters, totalFilled)
884
+ ) {
885
+ // TODO: Use fulfiller proxy if there are approvals needed directly, but none needed for proxy
886
+ return fulfillBasicOrder(
887
+ {
888
+ order: sanitizedOrder,
889
+ seaportContract: this.contract,
890
+ offererBalancesAndApprovals,
891
+ fulfillerBalancesAndApprovals,
892
+ timeBasedItemParams,
893
+ conduitKey,
894
+ offererOperator,
895
+ fulfillerOperator,
896
+ signer: fulfiller,
897
+ tips: tipConsiderationItems,
898
+ domain,
899
+ },
900
+ exactApproval
901
+ );
902
+ }
903
+
904
+ // Else, we fallback to the standard fulfill order
905
+ return fulfillStandardOrder(
906
+ {
907
+ order: sanitizedOrder,
908
+ unitsToFill,
909
+ totalFilled,
910
+ totalSize: totalSize.eq(0)
911
+ ? getMaximumSizeForOrder(sanitizedOrder)
912
+ : totalSize,
913
+ offerCriteria,
914
+ considerationCriteria,
915
+ tips: tipConsiderationItems,
916
+ extraData,
917
+ seaportContract: this.contract,
918
+ offererBalancesAndApprovals,
919
+ fulfillerBalancesAndApprovals,
920
+ timeBasedItemParams,
921
+ conduitKey,
922
+ signer: fulfiller,
923
+ offererOperator,
924
+ fulfillerOperator,
925
+ recipientAddress,
926
+ domain,
927
+ },
928
+ exactApproval
929
+ );
930
+ }
931
+
932
+ /**
933
+ * Fulfills an order through best-effort fashion. Orders that fail will not revert the whole transaction
934
+ * unless there's an issue with approvals or balance checks
935
+ * @param input
936
+ * @param input.fulfillOrderDetails list of helper order details
937
+ * @param input.accountAddress the account to fulfill orders on
938
+ * @param input.conduitKey the key from which to source approvals from
939
+ * @param input.recipientAddress optional recipient to forward the offer to as opposed to the fulfiller.
940
+ * Defaults to the zero address which means the offer goes to the fulfiller
941
+ * @param input.domain optional domain to be hashed and appended to calldata
942
+ * @param input.exactApproval optional boolean to indicate whether the approval should be exact or not
943
+ * @returns a use case containing the set of approval actions and fulfillment action
944
+ */
945
+ public async fulfillOrders({
946
+ fulfillOrderDetails,
947
+ accountAddress,
948
+ conduitKey = this.defaultConduitKey,
949
+ recipientAddress = ethers.constants.AddressZero,
950
+ domain,
951
+ exactApproval = false,
952
+ }: {
953
+ fulfillOrderDetails: {
954
+ order: OrderWithCounter;
955
+ unitsToFill?: BigNumberish;
956
+ offerCriteria?: InputCriteria[];
957
+ considerationCriteria?: InputCriteria[];
958
+ tips?: TipInputItem[];
959
+ extraData?: string;
960
+ }[];
961
+ accountAddress?: string;
962
+ conduitKey?: string;
963
+ recipientAddress?: string;
964
+ domain?: string;
965
+ exactApproval?: boolean;
966
+ }) {
967
+ if (
968
+ fulfillOrderDetails.some((orderDetails) => !orderDetails.order.signature)
969
+ ) {
970
+ throw new Error("All orders must include signatures");
971
+ }
972
+
973
+ const fulfiller = this._getSigner(accountAddress);
974
+
975
+ const fulfillerAddress = await fulfiller.getAddress();
976
+
977
+ const allOffererOperators = fulfillOrderDetails.map(
978
+ ({ order }) =>
979
+ this.config.conduitKeyToConduit[order.parameters.conduitKey]
980
+ );
981
+
982
+ const fulfillerOperator = this.config.conduitKeyToConduit[conduitKey];
983
+
984
+ const allOfferItems = fulfillOrderDetails.flatMap(
985
+ ({ order }) => order.parameters.offer
986
+ );
987
+
988
+ const allConsiderationItems = fulfillOrderDetails.flatMap(
989
+ ({ order }) => order.parameters.consideration
990
+ );
991
+ const allOfferCriteria = fulfillOrderDetails.flatMap(
992
+ ({ offerCriteria = [] }) => offerCriteria
993
+ );
994
+ const allConsiderationCriteria = fulfillOrderDetails.flatMap(
995
+ ({ considerationCriteria = [] }) => considerationCriteria
996
+ );
997
+
998
+ const [
999
+ offerersBalancesAndApprovals,
1000
+ fulfillerBalancesAndApprovals,
1001
+ currentBlock,
1002
+ orderStatuses,
1003
+ ] = await Promise.all([
1004
+ Promise.all(
1005
+ fulfillOrderDetails.map(({ order, offerCriteria = [] }, i) =>
1006
+ getBalancesAndApprovals({
1007
+ owner: order.parameters.offerer,
1008
+ items: order.parameters.offer,
1009
+ criterias: offerCriteria,
1010
+ operator: allOffererOperators[i],
1011
+ multicallProvider: this.multicallProvider,
1012
+ })
1013
+ )
1014
+ ),
1015
+ // Get fulfiller balances and approvals of all items in the set, as offer items
1016
+ // may be received by the fulfiller for standard fulfills
1017
+ getBalancesAndApprovals({
1018
+ owner: fulfillerAddress,
1019
+ items: [...allOfferItems, ...allConsiderationItems],
1020
+ criterias: [...allOfferCriteria, ...allConsiderationCriteria],
1021
+ operator: fulfillerOperator,
1022
+ multicallProvider: this.multicallProvider,
1023
+ }),
1024
+ this.multicallProvider.getBlock("latest"),
1025
+ Promise.all(
1026
+ fulfillOrderDetails.map(({ order }) =>
1027
+ this.getOrderStatus(this.getOrderHash(order.parameters))
1028
+ )
1029
+ ),
1030
+ ]);
1031
+
1032
+ const ordersMetadata: FulfillOrdersMetadata = fulfillOrderDetails.map(
1033
+ (orderDetails, index) => ({
1034
+ order: orderDetails.order,
1035
+ unitsToFill: orderDetails.unitsToFill,
1036
+ orderStatus: orderStatuses[index],
1037
+ offerCriteria: orderDetails.offerCriteria ?? [],
1038
+ considerationCriteria: orderDetails.considerationCriteria ?? [],
1039
+ tips:
1040
+ orderDetails.tips?.map((tip) => ({
1041
+ ...mapInputItemToOfferItem(tip),
1042
+ recipient: tip.recipient,
1043
+ })) ?? [],
1044
+ extraData: orderDetails.extraData ?? "0x",
1045
+ offererBalancesAndApprovals: offerersBalancesAndApprovals[index],
1046
+ offererOperator: allOffererOperators[index],
1047
+ })
1048
+ );
1049
+
1050
+ return fulfillAvailableOrders({
1051
+ ordersMetadata,
1052
+ seaportContract: this.contract,
1053
+ fulfillerBalancesAndApprovals,
1054
+ currentBlockTimestamp: currentBlock.timestamp,
1055
+ ascendingAmountTimestampBuffer:
1056
+ this.config.ascendingAmountFulfillmentBuffer,
1057
+ fulfillerOperator,
1058
+ signer: fulfiller,
1059
+ conduitKey,
1060
+ recipientAddress,
1061
+ domain,
1062
+ exactApproval,
1063
+ });
1064
+ }
1065
+
1066
+ /**
1067
+ * NOTE: Largely incomplete. Does NOT do any balance or approval checks.
1068
+ * Just exposes the bare bones matchOrders where clients will have to supply
1069
+ * their own overrides as needed.
1070
+ * @param input
1071
+ * @param input.orders the list of orders to match
1072
+ * @param input.fulfillments the list of fulfillments to match offer and considerations
1073
+ * @param input.overrides any overrides the client wants, will need to pass in value for matching orders with ETH.
1074
+ * @param input.accountAddress Optional address for which to match the order with
1075
+ * @param input.domain optional domain to be hashed and appended to calldata
1076
+ * @returns set of transaction methods for matching orders
1077
+ */
1078
+ public matchOrders({
1079
+ orders,
1080
+ fulfillments,
1081
+ overrides,
1082
+ accountAddress,
1083
+ domain,
1084
+ }: {
1085
+ orders: (OrderWithCounter | Order)[];
1086
+ fulfillments: MatchOrdersFulfillment[];
1087
+ overrides?: PayableOverrides;
1088
+ accountAddress?: string;
1089
+ domain?: string;
1090
+ }): TransactionMethods<
1091
+ ContractMethodReturnType<SeaportContract, "matchOrders">
1092
+ > {
1093
+ const signer = this._getSigner(accountAddress);
1094
+
1095
+ return getTransactionMethods(
1096
+ this.contract.connect(signer),
1097
+ "matchOrders",
1098
+ [orders, fulfillments, overrides],
1099
+ domain
1100
+ );
1101
+ }
1102
+
1103
+ public setDomain(
1104
+ domain: string,
1105
+ accountAddress?: string
1106
+ ): TransactionMethods<
1107
+ ContractMethodReturnType<DomainRegistryContract, "setDomain">
1108
+ > {
1109
+ const signer = this._getSigner(accountAddress);
1110
+
1111
+ return getTransactionMethods(
1112
+ this.domainRegistry.connect(signer),
1113
+ "setDomain",
1114
+ [domain]
1115
+ );
1116
+ }
1117
+
1118
+ public async getNumberOfDomains(tag: string): Promise<BigNumber> {
1119
+ return this.domainRegistry.getNumberOfDomains(tag);
1120
+ }
1121
+
1122
+ public getDomain(tag: string, index: number): Promise<string> {
1123
+ return this.domainRegistry.getDomain(tag, index);
1124
+ }
1125
+
1126
+ public async getDomains(
1127
+ tag: string,
1128
+ shouldThrow?: boolean
1129
+ ): Promise<string[]> {
1130
+ try {
1131
+ if (shouldThrow) {
1132
+ throw Error;
1133
+ }
1134
+
1135
+ return this.domainRegistry.getDomains(tag);
1136
+ } catch (error) {
1137
+ const totalDomains = (
1138
+ await this.domainRegistry.getNumberOfDomains(tag)
1139
+ ).toNumber();
1140
+
1141
+ const domainArray = Promise.all(
1142
+ [...Array(totalDomains).keys()].map((i) =>
1143
+ this.domainRegistry.getDomain(tag, i)
1144
+ )
1145
+ );
1146
+
1147
+ return domainArray;
1148
+ }
1149
+ }
1150
+ }