@opensea/seaport-js 1.3.0 → 2.0.0

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