@bosonprotocol/core-sdk 1.44.0-alpha.0 → 1.44.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/dist/cjs/accounts/handler.d.ts +115 -1
  2. package/dist/cjs/accounts/handler.d.ts.map +1 -1
  3. package/dist/cjs/accounts/handler.js +126 -28
  4. package/dist/cjs/accounts/handler.js.map +1 -1
  5. package/dist/cjs/accounts/mixin.d.ts +105 -8
  6. package/dist/cjs/accounts/mixin.d.ts.map +1 -1
  7. package/dist/cjs/accounts/mixin.js +162 -122
  8. package/dist/cjs/accounts/mixin.js.map +1 -1
  9. package/dist/cjs/core-sdk.d.ts +6 -6
  10. package/dist/cjs/core-sdk.d.ts.map +1 -1
  11. package/dist/cjs/core-sdk.js.map +1 -1
  12. package/dist/cjs/disputes/handler.d.ts +77 -1
  13. package/dist/cjs/disputes/handler.d.ts.map +1 -1
  14. package/dist/cjs/disputes/handler.js +90 -20
  15. package/dist/cjs/disputes/handler.js.map +1 -1
  16. package/dist/cjs/disputes/mixin.d.ts +29 -11
  17. package/dist/cjs/disputes/mixin.d.ts.map +1 -1
  18. package/dist/cjs/disputes/mixin.js +97 -88
  19. package/dist/cjs/disputes/mixin.js.map +1 -1
  20. package/dist/cjs/erc1155/mixin.d.ts +2 -1
  21. package/dist/cjs/erc1155/mixin.d.ts.map +1 -1
  22. package/dist/cjs/erc1155/mixin.js.map +1 -1
  23. package/dist/cjs/erc165/mixin.d.ts +2 -1
  24. package/dist/cjs/erc165/mixin.d.ts.map +1 -1
  25. package/dist/cjs/erc165/mixin.js.map +1 -1
  26. package/dist/cjs/erc20/handler.d.ts +11 -2
  27. package/dist/cjs/erc20/handler.d.ts.map +1 -1
  28. package/dist/cjs/erc20/handler.js +8 -1
  29. package/dist/cjs/erc20/handler.js.map +1 -1
  30. package/dist/cjs/erc20/mixin.d.ts +20 -3
  31. package/dist/cjs/erc20/mixin.d.ts.map +1 -1
  32. package/dist/cjs/erc20/mixin.js +15 -10
  33. package/dist/cjs/erc20/mixin.js.map +1 -1
  34. package/dist/cjs/erc721/handler.d.ts +11 -2
  35. package/dist/cjs/erc721/handler.d.ts.map +1 -1
  36. package/dist/cjs/erc721/handler.js +8 -2
  37. package/dist/cjs/erc721/handler.js.map +1 -1
  38. package/dist/cjs/erc721/mixin.d.ts +2 -1
  39. package/dist/cjs/erc721/mixin.d.ts.map +1 -1
  40. package/dist/cjs/erc721/mixin.js.map +1 -1
  41. package/dist/cjs/errors/mixin.d.ts +2 -1
  42. package/dist/cjs/errors/mixin.d.ts.map +1 -1
  43. package/dist/cjs/errors/mixin.js.map +1 -1
  44. package/dist/cjs/event-logs/mixin.d.ts +2 -1
  45. package/dist/cjs/event-logs/mixin.d.ts.map +1 -1
  46. package/dist/cjs/event-logs/mixin.js.map +1 -1
  47. package/dist/cjs/exchanges/handler.d.ts +44 -1
  48. package/dist/cjs/exchanges/handler.d.ts.map +1 -1
  49. package/dist/cjs/exchanges/handler.js +76 -17
  50. package/dist/cjs/exchanges/handler.js.map +1 -1
  51. package/dist/cjs/exchanges/mixin.d.ts +24 -8
  52. package/dist/cjs/exchanges/mixin.d.ts.map +1 -1
  53. package/dist/cjs/exchanges/mixin.js +72 -72
  54. package/dist/cjs/exchanges/mixin.js.map +1 -1
  55. package/dist/cjs/funds/handler.d.ts +27 -1
  56. package/dist/cjs/funds/handler.d.ts.map +1 -1
  57. package/dist/cjs/funds/handler.js +28 -7
  58. package/dist/cjs/funds/handler.js.map +1 -1
  59. package/dist/cjs/funds/mixin.d.ts +50 -17
  60. package/dist/cjs/funds/mixin.d.ts.map +1 -1
  61. package/dist/cjs/funds/mixin.js +48 -46
  62. package/dist/cjs/funds/mixin.js.map +1 -1
  63. package/dist/cjs/groups/handler.d.ts +8 -1
  64. package/dist/cjs/groups/handler.d.ts.map +1 -1
  65. package/dist/cjs/groups/handler.js +9 -2
  66. package/dist/cjs/groups/handler.js.map +1 -1
  67. package/dist/cjs/groups/mixin.d.ts +12 -4
  68. package/dist/cjs/groups/mixin.d.ts.map +1 -1
  69. package/dist/cjs/groups/mixin.js +10 -8
  70. package/dist/cjs/groups/mixin.js.map +1 -1
  71. package/dist/cjs/marketplaces/mixin.d.ts +2 -1
  72. package/dist/cjs/marketplaces/mixin.d.ts.map +1 -1
  73. package/dist/cjs/marketplaces/mixin.js.map +1 -1
  74. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  75. package/dist/cjs/meta-tx/handler.js +4 -2
  76. package/dist/cjs/meta-tx/handler.js.map +1 -1
  77. package/dist/cjs/meta-tx/mixin.d.ts +2 -2
  78. package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
  79. package/dist/cjs/meta-tx/mixin.js.map +1 -1
  80. package/dist/cjs/metadata/mixin.d.ts +2 -1
  81. package/dist/cjs/metadata/mixin.d.ts.map +1 -1
  82. package/dist/cjs/metadata/mixin.js.map +1 -1
  83. package/dist/cjs/mixins/base-core-sdk.d.ts +4 -4
  84. package/dist/cjs/mixins/base-core-sdk.d.ts.map +1 -1
  85. package/dist/cjs/mixins/base-core-sdk.js.map +1 -1
  86. package/dist/cjs/native-meta-tx/handler.d.ts.map +1 -1
  87. package/dist/cjs/native-meta-tx/handler.js +2 -1
  88. package/dist/cjs/native-meta-tx/handler.js.map +1 -1
  89. package/dist/cjs/native-meta-tx/mixin.d.ts +2 -2
  90. package/dist/cjs/native-meta-tx/mixin.d.ts.map +1 -1
  91. package/dist/cjs/native-meta-tx/mixin.js.map +1 -1
  92. package/dist/cjs/offers/handler.d.ts +79 -0
  93. package/dist/cjs/offers/handler.d.ts.map +1 -1
  94. package/dist/cjs/offers/handler.js +81 -17
  95. package/dist/cjs/offers/handler.js.map +1 -1
  96. package/dist/cjs/offers/mixin.d.ts +53 -2
  97. package/dist/cjs/offers/mixin.d.ts.map +1 -1
  98. package/dist/cjs/offers/mixin.js +101 -97
  99. package/dist/cjs/offers/mixin.js.map +1 -1
  100. package/dist/cjs/orchestration/handler.d.ts +86 -1
  101. package/dist/cjs/orchestration/handler.d.ts.map +1 -1
  102. package/dist/cjs/orchestration/handler.js +64 -16
  103. package/dist/cjs/orchestration/handler.js.map +1 -1
  104. package/dist/cjs/orchestration/mixin.d.ts +2 -2
  105. package/dist/cjs/orchestration/mixin.d.ts.map +1 -1
  106. package/dist/cjs/orchestration/mixin.js.map +1 -1
  107. package/dist/cjs/price-discovery/handler.d.ts +11 -1
  108. package/dist/cjs/price-discovery/handler.d.ts.map +1 -1
  109. package/dist/cjs/price-discovery/handler.js +9 -2
  110. package/dist/cjs/price-discovery/handler.js.map +1 -1
  111. package/dist/cjs/price-discovery/mixin.d.ts +16 -4
  112. package/dist/cjs/price-discovery/mixin.d.ts.map +1 -1
  113. package/dist/cjs/price-discovery/mixin.js +14 -12
  114. package/dist/cjs/price-discovery/mixin.js.map +1 -1
  115. package/dist/cjs/protocol-config/handler.d.ts +9 -0
  116. package/dist/cjs/protocol-config/handler.d.ts.map +1 -1
  117. package/dist/cjs/protocol-config/handler.js +10 -3
  118. package/dist/cjs/protocol-config/handler.js.map +1 -1
  119. package/dist/cjs/protocol-config/mixin.d.ts +2 -1
  120. package/dist/cjs/protocol-config/mixin.d.ts.map +1 -1
  121. package/dist/cjs/protocol-config/mixin.js.map +1 -1
  122. package/dist/cjs/subgraph/mixin.d.ts +2 -2
  123. package/dist/cjs/subgraph/mixin.d.ts.map +1 -1
  124. package/dist/cjs/subgraph/mixin.js.map +1 -1
  125. package/dist/cjs/voucher/handler.d.ts +56 -1
  126. package/dist/cjs/voucher/handler.d.ts.map +1 -1
  127. package/dist/cjs/voucher/handler.js +56 -14
  128. package/dist/cjs/voucher/handler.js.map +1 -1
  129. package/dist/cjs/voucher/mixin.d.ts +66 -22
  130. package/dist/cjs/voucher/mixin.d.ts.map +1 -1
  131. package/dist/cjs/voucher/mixin.js +75 -61
  132. package/dist/cjs/voucher/mixin.js.map +1 -1
  133. package/dist/esm/accounts/handler.d.ts +115 -1
  134. package/dist/esm/accounts/handler.d.ts.map +1 -1
  135. package/dist/esm/accounts/handler.js +126 -28
  136. package/dist/esm/accounts/handler.js.map +1 -1
  137. package/dist/esm/accounts/mixin.d.ts +105 -8
  138. package/dist/esm/accounts/mixin.d.ts.map +1 -1
  139. package/dist/esm/accounts/mixin.js +249 -116
  140. package/dist/esm/accounts/mixin.js.map +1 -1
  141. package/dist/esm/core-sdk.d.ts +6 -6
  142. package/dist/esm/core-sdk.d.ts.map +1 -1
  143. package/dist/esm/core-sdk.js.map +1 -1
  144. package/dist/esm/disputes/handler.d.ts +77 -1
  145. package/dist/esm/disputes/handler.d.ts.map +1 -1
  146. package/dist/esm/disputes/handler.js +90 -20
  147. package/dist/esm/disputes/handler.js.map +1 -1
  148. package/dist/esm/disputes/mixin.d.ts +29 -11
  149. package/dist/esm/disputes/mixin.d.ts.map +1 -1
  150. package/dist/esm/disputes/mixin.js +155 -90
  151. package/dist/esm/disputes/mixin.js.map +1 -1
  152. package/dist/esm/erc1155/mixin.d.ts +2 -1
  153. package/dist/esm/erc1155/mixin.d.ts.map +1 -1
  154. package/dist/esm/erc1155/mixin.js.map +1 -1
  155. package/dist/esm/erc165/mixin.d.ts +2 -1
  156. package/dist/esm/erc165/mixin.d.ts.map +1 -1
  157. package/dist/esm/erc165/mixin.js.map +1 -1
  158. package/dist/esm/erc20/handler.d.ts +11 -2
  159. package/dist/esm/erc20/handler.d.ts.map +1 -1
  160. package/dist/esm/erc20/handler.js +9 -2
  161. package/dist/esm/erc20/handler.js.map +1 -1
  162. package/dist/esm/erc20/mixin.d.ts +20 -3
  163. package/dist/esm/erc20/mixin.d.ts.map +1 -1
  164. package/dist/esm/erc20/mixin.js +24 -8
  165. package/dist/esm/erc20/mixin.js.map +1 -1
  166. package/dist/esm/erc721/handler.d.ts +11 -2
  167. package/dist/esm/erc721/handler.d.ts.map +1 -1
  168. package/dist/esm/erc721/handler.js +8 -2
  169. package/dist/esm/erc721/handler.js.map +1 -1
  170. package/dist/esm/erc721/mixin.d.ts +2 -1
  171. package/dist/esm/erc721/mixin.d.ts.map +1 -1
  172. package/dist/esm/erc721/mixin.js.map +1 -1
  173. package/dist/esm/errors/mixin.d.ts +2 -1
  174. package/dist/esm/errors/mixin.d.ts.map +1 -1
  175. package/dist/esm/errors/mixin.js.map +1 -1
  176. package/dist/esm/event-logs/mixin.d.ts +2 -1
  177. package/dist/esm/event-logs/mixin.d.ts.map +1 -1
  178. package/dist/esm/event-logs/mixin.js.map +1 -1
  179. package/dist/esm/exchanges/handler.d.ts +44 -1
  180. package/dist/esm/exchanges/handler.d.ts.map +1 -1
  181. package/dist/esm/exchanges/handler.js +80 -16
  182. package/dist/esm/exchanges/handler.js.map +1 -1
  183. package/dist/esm/exchanges/mixin.d.ts +24 -8
  184. package/dist/esm/exchanges/mixin.d.ts.map +1 -1
  185. package/dist/esm/exchanges/mixin.js +120 -72
  186. package/dist/esm/exchanges/mixin.js.map +1 -1
  187. package/dist/esm/funds/handler.d.ts +27 -1
  188. package/dist/esm/funds/handler.d.ts.map +1 -1
  189. package/dist/esm/funds/handler.js +28 -7
  190. package/dist/esm/funds/handler.js.map +1 -1
  191. package/dist/esm/funds/mixin.d.ts +50 -17
  192. package/dist/esm/funds/mixin.d.ts.map +1 -1
  193. package/dist/esm/funds/mixin.js +62 -42
  194. package/dist/esm/funds/mixin.js.map +1 -1
  195. package/dist/esm/groups/handler.d.ts +8 -1
  196. package/dist/esm/groups/handler.d.ts.map +1 -1
  197. package/dist/esm/groups/handler.js +9 -2
  198. package/dist/esm/groups/handler.js.map +1 -1
  199. package/dist/esm/groups/mixin.d.ts +12 -4
  200. package/dist/esm/groups/mixin.d.ts.map +1 -1
  201. package/dist/esm/groups/mixin.js +16 -8
  202. package/dist/esm/groups/mixin.js.map +1 -1
  203. package/dist/esm/marketplaces/mixin.d.ts +2 -1
  204. package/dist/esm/marketplaces/mixin.d.ts.map +1 -1
  205. package/dist/esm/marketplaces/mixin.js.map +1 -1
  206. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  207. package/dist/esm/meta-tx/handler.js +4 -2
  208. package/dist/esm/meta-tx/handler.js.map +1 -1
  209. package/dist/esm/meta-tx/mixin.d.ts +2 -2
  210. package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
  211. package/dist/esm/meta-tx/mixin.js.map +1 -1
  212. package/dist/esm/metadata/mixin.d.ts +2 -1
  213. package/dist/esm/metadata/mixin.d.ts.map +1 -1
  214. package/dist/esm/metadata/mixin.js.map +1 -1
  215. package/dist/esm/mixins/base-core-sdk.d.ts +4 -4
  216. package/dist/esm/mixins/base-core-sdk.d.ts.map +1 -1
  217. package/dist/esm/mixins/base-core-sdk.js.map +1 -1
  218. package/dist/esm/native-meta-tx/handler.d.ts.map +1 -1
  219. package/dist/esm/native-meta-tx/handler.js +2 -1
  220. package/dist/esm/native-meta-tx/handler.js.map +1 -1
  221. package/dist/esm/native-meta-tx/mixin.d.ts +2 -2
  222. package/dist/esm/native-meta-tx/mixin.d.ts.map +1 -1
  223. package/dist/esm/native-meta-tx/mixin.js.map +1 -1
  224. package/dist/esm/offers/handler.d.ts +79 -0
  225. package/dist/esm/offers/handler.d.ts.map +1 -1
  226. package/dist/esm/offers/handler.js +82 -18
  227. package/dist/esm/offers/handler.js.map +1 -1
  228. package/dist/esm/offers/mixin.d.ts +53 -2
  229. package/dist/esm/offers/mixin.d.ts.map +1 -1
  230. package/dist/esm/offers/mixin.js +161 -97
  231. package/dist/esm/offers/mixin.js.map +1 -1
  232. package/dist/esm/orchestration/handler.d.ts +86 -1
  233. package/dist/esm/orchestration/handler.d.ts.map +1 -1
  234. package/dist/esm/orchestration/handler.js +64 -16
  235. package/dist/esm/orchestration/handler.js.map +1 -1
  236. package/dist/esm/orchestration/mixin.d.ts +2 -2
  237. package/dist/esm/orchestration/mixin.d.ts.map +1 -1
  238. package/dist/esm/orchestration/mixin.js.map +1 -1
  239. package/dist/esm/price-discovery/handler.d.ts +11 -1
  240. package/dist/esm/price-discovery/handler.d.ts.map +1 -1
  241. package/dist/esm/price-discovery/handler.js +9 -2
  242. package/dist/esm/price-discovery/handler.js.map +1 -1
  243. package/dist/esm/price-discovery/mixin.d.ts +16 -4
  244. package/dist/esm/price-discovery/mixin.d.ts.map +1 -1
  245. package/dist/esm/price-discovery/mixin.js +19 -11
  246. package/dist/esm/price-discovery/mixin.js.map +1 -1
  247. package/dist/esm/protocol-config/handler.d.ts +9 -0
  248. package/dist/esm/protocol-config/handler.d.ts.map +1 -1
  249. package/dist/esm/protocol-config/handler.js +10 -3
  250. package/dist/esm/protocol-config/handler.js.map +1 -1
  251. package/dist/esm/protocol-config/mixin.d.ts +2 -1
  252. package/dist/esm/protocol-config/mixin.d.ts.map +1 -1
  253. package/dist/esm/protocol-config/mixin.js.map +1 -1
  254. package/dist/esm/subgraph/mixin.d.ts +2 -2
  255. package/dist/esm/subgraph/mixin.d.ts.map +1 -1
  256. package/dist/esm/subgraph/mixin.js.map +1 -1
  257. package/dist/esm/voucher/handler.d.ts +56 -1
  258. package/dist/esm/voucher/handler.d.ts.map +1 -1
  259. package/dist/esm/voucher/handler.js +56 -14
  260. package/dist/esm/voucher/handler.js.map +1 -1
  261. package/dist/esm/voucher/mixin.d.ts +66 -22
  262. package/dist/esm/voucher/mixin.d.ts.map +1 -1
  263. package/dist/esm/voucher/mixin.js +93 -55
  264. package/dist/esm/voucher/mixin.js.map +1 -1
  265. package/package.json +3 -3
  266. package/src/accounts/handler.ts +369 -42
  267. package/src/accounts/mixin.ts +644 -57
  268. package/src/core-sdk.ts +26 -26
  269. package/src/disputes/handler.ts +257 -31
  270. package/src/disputes/mixin.ts +273 -42
  271. package/src/erc1155/mixin.ts +2 -1
  272. package/src/erc165/mixin.ts +2 -1
  273. package/src/erc20/handler.ts +36 -4
  274. package/src/erc20/mixin.ts +77 -10
  275. package/src/erc721/handler.ts +34 -4
  276. package/src/erc721/mixin.ts +2 -1
  277. package/src/errors/mixin.ts +2 -2
  278. package/src/event-logs/mixin.ts +2 -1
  279. package/src/exchanges/handler.ts +235 -25
  280. package/src/exchanges/mixin.ts +223 -32
  281. package/src/funds/handler.ts +99 -13
  282. package/src/funds/mixin.ts +177 -39
  283. package/src/groups/handler.ts +28 -3
  284. package/src/groups/mixin.ts +50 -7
  285. package/src/marketplaces/mixin.ts +2 -1
  286. package/src/meta-tx/handler.ts +4 -2
  287. package/src/meta-tx/mixin.ts +3 -2
  288. package/src/metadata/mixin.ts +2 -1
  289. package/src/mixins/base-core-sdk.ts +5 -5
  290. package/src/native-meta-tx/handler.ts +2 -1
  291. package/src/native-meta-tx/mixin.ts +8 -2
  292. package/src/offers/handler.ts +276 -27
  293. package/src/offers/mixin.ts +398 -35
  294. package/src/orchestration/handler.ts +259 -24
  295. package/src/orchestration/mixin.ts +8 -2
  296. package/src/price-discovery/handler.ts +35 -4
  297. package/src/price-discovery/mixin.ts +60 -9
  298. package/src/protocol-config/handler.ts +26 -4
  299. package/src/protocol-config/mixin.ts +4 -1
  300. package/src/subgraph/mixin.ts +6 -2
  301. package/src/voucher/handler.ts +192 -22
  302. package/src/voucher/mixin.ts +244 -66
@@ -1,6 +1,11 @@
1
1
  import { BaseCoreSDK } from "./../mixins/base-core-sdk";
2
2
  import * as subgraph from "../subgraph";
3
- import { TransactionResponse, Log } from "@bosonprotocol/common";
3
+ import {
4
+ TransactionResponse,
5
+ TransactionRequest,
6
+ Log,
7
+ Web3LibAdapter
8
+ } from "@bosonprotocol/common";
4
9
  import { BigNumberish, BigNumber } from "@ethersproject/bignumber";
5
10
  import { getValueFromLogs } from "../utils/logs";
6
11
  import {
@@ -18,7 +23,7 @@ import {
18
23
  import { getExchangeById, getExchanges } from "./subgraph";
19
24
  import { bosonExchangeHandlerIface } from "./interface";
20
25
 
21
- export class ExchangesMixin extends BaseCoreSDK {
26
+ export class ExchangesMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
22
27
  /* -------------------------------------------------------------------------- */
23
28
  /* Exchange related methods */
24
29
  /* -------------------------------------------------------------------------- */
@@ -58,16 +63,45 @@ export class ExchangesMixin extends BaseCoreSDK {
58
63
  offerId: BigNumberish,
59
64
  overrides: Partial<{
60
65
  buyer: string;
66
+ returnTxInfo: true;
67
+ }>
68
+ ): Promise<TransactionRequest>;
69
+ public async commitToOffer(
70
+ offerId: BigNumberish,
71
+ overrides?: Partial<{
72
+ buyer: string;
73
+ returnTxInfo?: false | undefined;
74
+ }>
75
+ ): Promise<TransactionResponse>;
76
+ public async commitToOffer(
77
+ offerId: BigNumberish,
78
+ overrides: Partial<{
79
+ buyer: string;
80
+ returnTxInfo?: boolean;
61
81
  }> = {}
62
- ): Promise<TransactionResponse> {
82
+ ): Promise<TransactionResponse | TransactionRequest> {
83
+ const { returnTxInfo } = overrides;
63
84
  const buyer = overrides.buyer || (await this._web3Lib.getSignerAddress());
64
- return commitToOffer({
85
+
86
+ const commitArgs = {
65
87
  buyer,
66
88
  offerId,
67
89
  web3Lib: this._web3Lib,
68
90
  subgraphUrl: this._subgraphUrl,
69
91
  contractAddress: this._protocolDiamond
70
- });
92
+ } as const satisfies Parameters<typeof commitToOffer>[0];
93
+
94
+ if (returnTxInfo === true) {
95
+ return commitToOffer({
96
+ ...commitArgs,
97
+ returnTxInfo: true
98
+ });
99
+ } else {
100
+ return commitToOffer({
101
+ ...commitArgs,
102
+ returnTxInfo: false
103
+ });
104
+ }
71
105
  }
72
106
 
73
107
  /**
@@ -83,17 +117,48 @@ export class ExchangesMixin extends BaseCoreSDK {
83
117
  tokenId: BigNumberish,
84
118
  overrides: Partial<{
85
119
  buyer: string;
120
+ returnTxInfo: true;
121
+ }>
122
+ ): Promise<TransactionRequest>;
123
+ public async commitToConditionalOffer(
124
+ offerId: BigNumberish,
125
+ tokenId: BigNumberish,
126
+ overrides?: Partial<{
127
+ buyer: string;
128
+ returnTxInfo?: false | undefined;
129
+ }>
130
+ ): Promise<TransactionResponse>;
131
+ public async commitToConditionalOffer(
132
+ offerId: BigNumberish,
133
+ tokenId: BigNumberish,
134
+ overrides: Partial<{
135
+ buyer: string;
136
+ returnTxInfo?: boolean;
86
137
  }> = {}
87
- ): Promise<TransactionResponse> {
138
+ ): Promise<TransactionResponse | TransactionRequest> {
139
+ const { returnTxInfo } = overrides;
88
140
  const buyer = overrides.buyer || (await this._web3Lib.getSignerAddress());
89
- return commitToConditionalOffer({
141
+
142
+ const commitArgs = {
90
143
  buyer,
91
144
  offerId,
92
145
  tokenId,
93
146
  web3Lib: this._web3Lib,
94
147
  subgraphUrl: this._subgraphUrl,
95
148
  contractAddress: this._protocolDiamond
96
- });
149
+ } as const satisfies Parameters<typeof commitToConditionalOffer>[0];
150
+
151
+ if (returnTxInfo === true) {
152
+ return commitToConditionalOffer({
153
+ ...commitArgs,
154
+ returnTxInfo: true
155
+ });
156
+ } else {
157
+ return commitToConditionalOffer({
158
+ ...commitArgs,
159
+ returnTxInfo: false
160
+ });
161
+ }
97
162
  }
98
163
 
99
164
  /**
@@ -117,14 +182,35 @@ export class ExchangesMixin extends BaseCoreSDK {
117
182
  * @returns Transaction response.
118
183
  */
119
184
  public async revokeVoucher(
120
- exchangeId: BigNumberish
121
- ): Promise<TransactionResponse> {
122
- return revokeVoucher({
185
+ exchangeId: BigNumberish,
186
+ returnTxInfo: true
187
+ ): Promise<TransactionRequest>;
188
+ public async revokeVoucher(
189
+ exchangeId: BigNumberish,
190
+ returnTxInfo?: false | undefined
191
+ ): Promise<TransactionResponse>;
192
+ public async revokeVoucher(
193
+ exchangeId: BigNumberish,
194
+ returnTxInfo?: boolean
195
+ ): Promise<TransactionResponse | TransactionRequest> {
196
+ const revokeArgs = {
123
197
  web3Lib: this._web3Lib,
124
198
  contractAddress: this._protocolDiamond,
125
199
  exchangeId,
126
200
  subgraphUrl: this._subgraphUrl
127
- });
201
+ } as const satisfies Parameters<typeof revokeVoucher>[0];
202
+
203
+ if (returnTxInfo === true) {
204
+ return revokeVoucher({
205
+ ...revokeArgs,
206
+ returnTxInfo: true
207
+ });
208
+ } else {
209
+ return revokeVoucher({
210
+ ...revokeArgs,
211
+ returnTxInfo: false
212
+ });
213
+ }
128
214
  }
129
215
 
130
216
  /**
@@ -134,14 +220,35 @@ export class ExchangesMixin extends BaseCoreSDK {
134
220
  * @returns Transaction response.
135
221
  */
136
222
  public async cancelVoucher(
137
- exchangeId: BigNumberish
138
- ): Promise<TransactionResponse> {
139
- return cancelVoucher({
223
+ exchangeId: BigNumberish,
224
+ returnTxInfo: true
225
+ ): Promise<TransactionRequest>;
226
+ public async cancelVoucher(
227
+ exchangeId: BigNumberish,
228
+ returnTxInfo?: false | undefined
229
+ ): Promise<TransactionResponse>;
230
+ public async cancelVoucher(
231
+ exchangeId: BigNumberish,
232
+ returnTxInfo?: boolean
233
+ ): Promise<TransactionResponse | TransactionRequest> {
234
+ const cancelArgs = {
140
235
  web3Lib: this._web3Lib,
141
236
  contractAddress: this._protocolDiamond,
142
237
  exchangeId,
143
238
  subgraphUrl: this._subgraphUrl
144
- });
239
+ } as const satisfies Parameters<typeof cancelVoucher>[0];
240
+
241
+ if (returnTxInfo === true) {
242
+ return cancelVoucher({
243
+ ...cancelArgs,
244
+ returnTxInfo: true
245
+ });
246
+ } else {
247
+ return cancelVoucher({
248
+ ...cancelArgs,
249
+ returnTxInfo: false
250
+ });
251
+ }
145
252
  }
146
253
 
147
254
  /**
@@ -151,14 +258,35 @@ export class ExchangesMixin extends BaseCoreSDK {
151
258
  * @returns Transaction response.
152
259
  */
153
260
  public async redeemVoucher(
154
- exchangeId: BigNumberish
155
- ): Promise<TransactionResponse> {
156
- return redeemVoucher({
261
+ exchangeId: BigNumberish,
262
+ returnTxInfo: true
263
+ ): Promise<TransactionRequest>;
264
+ public async redeemVoucher(
265
+ exchangeId: BigNumberish,
266
+ returnTxInfo?: false | undefined
267
+ ): Promise<TransactionResponse>;
268
+ public async redeemVoucher(
269
+ exchangeId: BigNumberish,
270
+ returnTxInfo?: boolean
271
+ ): Promise<TransactionResponse | TransactionRequest> {
272
+ const redeemArgs = {
157
273
  web3Lib: this._web3Lib,
158
274
  contractAddress: this._protocolDiamond,
159
275
  exchangeId,
160
276
  subgraphUrl: this._subgraphUrl
161
- });
277
+ } as const satisfies Parameters<typeof redeemVoucher>[0];
278
+
279
+ if (returnTxInfo === true) {
280
+ return redeemVoucher({
281
+ ...redeemArgs,
282
+ returnTxInfo: true
283
+ });
284
+ } else {
285
+ return redeemVoucher({
286
+ ...redeemArgs,
287
+ returnTxInfo: false
288
+ });
289
+ }
162
290
  }
163
291
 
164
292
  /**
@@ -168,14 +296,35 @@ export class ExchangesMixin extends BaseCoreSDK {
168
296
  * @returns Transaction response.
169
297
  */
170
298
  public async completeExchange(
171
- exchangeId: BigNumberish
172
- ): Promise<TransactionResponse> {
173
- return completeExchange({
299
+ exchangeId: BigNumberish,
300
+ returnTxInfo: true
301
+ ): Promise<TransactionRequest>;
302
+ public async completeExchange(
303
+ exchangeId: BigNumberish,
304
+ returnTxInfo?: false | undefined
305
+ ): Promise<TransactionResponse>;
306
+ public async completeExchange(
307
+ exchangeId: BigNumberish,
308
+ returnTxInfo?: boolean
309
+ ): Promise<TransactionResponse | TransactionRequest> {
310
+ const completeArgs = {
174
311
  web3Lib: this._web3Lib,
175
312
  contractAddress: this._protocolDiamond,
176
313
  exchangeId,
177
314
  subgraphUrl: this._subgraphUrl
178
- });
315
+ } as const satisfies Parameters<typeof completeExchange>[0];
316
+
317
+ if (returnTxInfo === true) {
318
+ return completeExchange({
319
+ ...completeArgs,
320
+ returnTxInfo: true
321
+ });
322
+ } else {
323
+ return completeExchange({
324
+ ...completeArgs,
325
+ returnTxInfo: false
326
+ });
327
+ }
179
328
  }
180
329
 
181
330
  /**
@@ -185,14 +334,35 @@ export class ExchangesMixin extends BaseCoreSDK {
185
334
  * @returns Transaction response.
186
335
  */
187
336
  public async completeExchangeBatch(
188
- exchangeIds: BigNumberish[]
189
- ): Promise<TransactionResponse> {
190
- return completeExchangeBatch({
337
+ exchangeIds: BigNumberish[],
338
+ returnTxInfo: true
339
+ ): Promise<TransactionRequest>;
340
+ public async completeExchangeBatch(
341
+ exchangeIds: BigNumberish[],
342
+ returnTxInfo?: false | undefined
343
+ ): Promise<TransactionResponse>;
344
+ public async completeExchangeBatch(
345
+ exchangeIds: BigNumberish[],
346
+ returnTxInfo?: boolean
347
+ ): Promise<TransactionResponse | TransactionRequest> {
348
+ const batchArgs = {
191
349
  web3Lib: this._web3Lib,
192
350
  contractAddress: this._protocolDiamond,
193
351
  exchangeIds,
194
352
  subgraphUrl: this._subgraphUrl
195
- });
353
+ } as const satisfies Parameters<typeof completeExchangeBatch>[0];
354
+
355
+ if (returnTxInfo === true) {
356
+ return completeExchangeBatch({
357
+ ...batchArgs,
358
+ returnTxInfo: true
359
+ });
360
+ } else {
361
+ return completeExchangeBatch({
362
+ ...batchArgs,
363
+ returnTxInfo: false
364
+ });
365
+ }
196
366
  }
197
367
 
198
368
  /**
@@ -201,14 +371,35 @@ export class ExchangesMixin extends BaseCoreSDK {
201
371
  * @returns Transaction response.
202
372
  */
203
373
  public async expireVoucher(
204
- exchangeId: BigNumberish
205
- ): Promise<TransactionResponse> {
206
- return expireVoucher({
374
+ exchangeId: BigNumberish,
375
+ returnTxInfo: true
376
+ ): Promise<TransactionRequest>;
377
+ public async expireVoucher(
378
+ exchangeId: BigNumberish,
379
+ returnTxInfo?: false | undefined
380
+ ): Promise<TransactionResponse>;
381
+ public async expireVoucher(
382
+ exchangeId: BigNumberish,
383
+ returnTxInfo?: boolean
384
+ ): Promise<TransactionResponse | TransactionRequest> {
385
+ const expireArgs = {
207
386
  web3Lib: this._web3Lib,
208
387
  contractAddress: this._protocolDiamond,
209
388
  exchangeId,
210
389
  subgraphUrl: this._subgraphUrl
211
- });
390
+ } as const satisfies Parameters<typeof expireVoucher>[0];
391
+
392
+ if (returnTxInfo === true) {
393
+ return expireVoucher({
394
+ ...expireArgs,
395
+ returnTxInfo: true
396
+ });
397
+ } else {
398
+ return expireVoucher({
399
+ ...expireArgs,
400
+ returnTxInfo: false
401
+ });
402
+ }
212
403
  }
213
404
 
214
405
  public getExchangeTokenId(
@@ -1,17 +1,43 @@
1
1
  import { BigNumberish } from "@ethersproject/bignumber";
2
2
  import { isAddress } from "@ethersproject/address";
3
3
  import { AddressZero } from "@ethersproject/constants";
4
- import { Web3LibAdapter, TransactionResponse } from "@bosonprotocol/common";
4
+ import {
5
+ Web3LibAdapter,
6
+ TransactionRequest,
7
+ TransactionResponse
8
+ } from "@bosonprotocol/common";
5
9
  import { encodeDepositFunds, encodeWithdrawFunds } from "./interface";
6
10
  import { getFunds } from "./subgraph";
7
11
 
12
+ // Overload: returnTxInfo is true -> returns TransactionRequest
8
13
  export async function depositFunds(args: {
9
14
  sellerId: BigNumberish;
10
15
  fundsTokenAddress?: string;
11
16
  fundsAmount: BigNumberish;
12
17
  contractAddress: string;
13
18
  web3Lib: Web3LibAdapter;
14
- }): Promise<TransactionResponse> {
19
+ returnTxInfo: true;
20
+ }): Promise<TransactionRequest>;
21
+
22
+ // Overload: returnTxInfo is false or undefined -> returns TransactionResponse
23
+ export async function depositFunds(args: {
24
+ sellerId: BigNumberish;
25
+ fundsTokenAddress?: string;
26
+ fundsAmount: BigNumberish;
27
+ contractAddress: string;
28
+ web3Lib: Web3LibAdapter;
29
+ returnTxInfo?: false | undefined;
30
+ }): Promise<TransactionResponse>;
31
+
32
+ // Implementation
33
+ export async function depositFunds(args: {
34
+ sellerId: BigNumberish;
35
+ fundsTokenAddress?: string;
36
+ fundsAmount: BigNumberish;
37
+ contractAddress: string;
38
+ web3Lib: Web3LibAdapter;
39
+ returnTxInfo?: boolean;
40
+ }): Promise<TransactionRequest | TransactionResponse> {
15
41
  const { fundsTokenAddress = AddressZero } = args;
16
42
 
17
43
  if (!isAddress(fundsTokenAddress)) {
@@ -20,40 +46,94 @@ export async function depositFunds(args: {
20
46
 
21
47
  const isNativeCoin = fundsTokenAddress === AddressZero;
22
48
 
23
- return args.web3Lib.sendTransaction({
49
+ const transactionRequest: TransactionRequest = {
24
50
  to: args.contractAddress,
25
51
  data: encodeDepositFunds(
26
52
  args.sellerId,
27
- args.fundsTokenAddress,
53
+ fundsTokenAddress,
28
54
  args.fundsAmount
29
55
  ),
30
56
  value: isNativeCoin ? args.fundsAmount : "0"
31
- });
57
+ };
58
+
59
+ if (args.returnTxInfo) {
60
+ return transactionRequest;
61
+ } else {
62
+ return args.web3Lib.sendTransaction(transactionRequest);
63
+ }
32
64
  }
33
65
 
66
+ // Overload: returnTxInfo is true -> returns TransactionRequest
67
+ export async function withdrawFunds(args: {
68
+ entityId: BigNumberish;
69
+ tokensToWithdraw: Array<string>;
70
+ amountsToWithdraw: Array<BigNumberish>;
71
+ contractAddress: string;
72
+ web3Lib: Web3LibAdapter;
73
+ returnTxInfo: true;
74
+ }): Promise<TransactionRequest>;
75
+
76
+ // Overload: returnTxInfo is false or undefined -> returns TransactionResponse
34
77
  export async function withdrawFunds(args: {
35
78
  entityId: BigNumberish;
36
79
  tokensToWithdraw: Array<string>;
37
80
  amountsToWithdraw: Array<BigNumberish>;
38
81
  contractAddress: string;
39
82
  web3Lib: Web3LibAdapter;
40
- }): Promise<TransactionResponse> {
41
- return args.web3Lib.sendTransaction({
83
+ returnTxInfo?: false | undefined;
84
+ }): Promise<TransactionResponse>;
85
+
86
+ // Implementation
87
+ export async function withdrawFunds(args: {
88
+ entityId: BigNumberish;
89
+ tokensToWithdraw: Array<string>;
90
+ amountsToWithdraw: Array<BigNumberish>;
91
+ contractAddress: string;
92
+ web3Lib: Web3LibAdapter;
93
+ returnTxInfo?: boolean;
94
+ }): Promise<TransactionRequest | TransactionResponse> {
95
+ const transactionRequest: TransactionRequest = {
42
96
  to: args.contractAddress,
43
97
  data: encodeWithdrawFunds(
44
98
  args.entityId,
45
99
  args.tokensToWithdraw,
46
100
  args.amountsToWithdraw
47
101
  )
48
- });
102
+ };
103
+
104
+ if (args.returnTxInfo) {
105
+ return transactionRequest;
106
+ } else {
107
+ return args.web3Lib.sendTransaction(transactionRequest);
108
+ }
49
109
  }
50
110
 
111
+ // Overload: returnTxInfo is true -> returns TransactionRequest
112
+ export async function withdrawAllAvailableFunds(args: {
113
+ entityId: BigNumberish;
114
+ subgraphUrl: string;
115
+ contractAddress: string;
116
+ web3Lib: Web3LibAdapter;
117
+ returnTxInfo: true;
118
+ }): Promise<TransactionRequest>;
119
+
120
+ // Overload: returnTxInfo is false or undefined -> returns TransactionResponse
121
+ export async function withdrawAllAvailableFunds(args: {
122
+ entityId: BigNumberish;
123
+ subgraphUrl: string;
124
+ contractAddress: string;
125
+ web3Lib: Web3LibAdapter;
126
+ returnTxInfo?: false | undefined;
127
+ }): Promise<TransactionResponse>;
128
+
129
+ // Implementation
51
130
  export async function withdrawAllAvailableFunds(args: {
52
131
  entityId: BigNumberish;
53
132
  subgraphUrl: string;
54
133
  contractAddress: string;
55
134
  web3Lib: Web3LibAdapter;
56
- }): Promise<TransactionResponse> {
135
+ returnTxInfo?: boolean;
136
+ }): Promise<TransactionRequest | TransactionResponse> {
57
137
  const funds = await getFunds(args.subgraphUrl, {
58
138
  fundsFilter: {
59
139
  accountId: args.entityId.toString()
@@ -69,17 +149,23 @@ export async function withdrawAllAvailableFunds(args: {
69
149
  return acc;
70
150
  },
71
151
  {
72
- tokensToWithdraw: [],
73
- amountsToWithdraw: []
152
+ tokensToWithdraw: [] as string[],
153
+ amountsToWithdraw: [] as BigNumberish[]
74
154
  }
75
155
  );
76
156
 
77
- return args.web3Lib.sendTransaction({
157
+ const transactionRequest: TransactionRequest = {
78
158
  to: args.contractAddress,
79
159
  data: encodeWithdrawFunds(
80
160
  args.entityId,
81
161
  tokensToWithdraw,
82
162
  amountsToWithdraw
83
163
  )
84
- });
164
+ };
165
+
166
+ if (args.returnTxInfo) {
167
+ return transactionRequest;
168
+ } else {
169
+ return args.web3Lib.sendTransaction(transactionRequest);
170
+ }
85
171
  }