@bosonprotocol/core-sdk 1.43.3 → 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 +81 -1
  93. package/dist/cjs/offers/handler.d.ts.map +1 -1
  94. package/dist/cjs/offers/handler.js +81 -20
  95. package/dist/cjs/offers/handler.js.map +1 -1
  96. package/dist/cjs/offers/mixin.d.ts +54 -2
  97. package/dist/cjs/offers/mixin.d.ts.map +1 -1
  98. package/dist/cjs/offers/mixin.js +102 -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 +81 -1
  225. package/dist/esm/offers/handler.d.ts.map +1 -1
  226. package/dist/esm/offers/handler.js +83 -18
  227. package/dist/esm/offers/handler.js.map +1 -1
  228. package/dist/esm/offers/mixin.d.ts +54 -2
  229. package/dist/esm/offers/mixin.d.ts.map +1 -1
  230. package/dist/esm/offers/mixin.js +162 -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 +280 -28
  293. package/src/offers/mixin.ts +401 -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,5 +1,6 @@
1
1
  import {
2
2
  Web3LibAdapter,
3
+ TransactionRequest,
3
4
  TransactionResponse,
4
5
  MetadataStorage,
5
6
  utils,
@@ -24,6 +25,7 @@ import { findCollectionSalt } from "../accounts/handler";
24
25
  import { PremintParametersStruct } from "@bosonprotocol/common/src";
25
26
  import { storeMetadataItems } from "../metadata/storeMetadataItems";
26
27
 
28
+ // createOfferAndSeller overloads
27
29
  export async function createOfferAndSeller(args: {
28
30
  offerToCreate: CreateOfferArgs;
29
31
  sellerToCreate: CreateSellerArgs;
@@ -31,7 +33,28 @@ export async function createOfferAndSeller(args: {
31
33
  web3Lib: Web3LibAdapter;
32
34
  metadataStorage?: MetadataStorage;
33
35
  theGraphStorage?: MetadataStorage;
34
- }): Promise<TransactionResponse> {
36
+ returnTxInfo: true;
37
+ }): Promise<TransactionRequest>;
38
+
39
+ export async function createOfferAndSeller(args: {
40
+ offerToCreate: CreateOfferArgs;
41
+ sellerToCreate: CreateSellerArgs;
42
+ contractAddress: string;
43
+ web3Lib: Web3LibAdapter;
44
+ metadataStorage?: MetadataStorage;
45
+ theGraphStorage?: MetadataStorage;
46
+ returnTxInfo?: false | undefined;
47
+ }): Promise<TransactionResponse>;
48
+
49
+ export async function createOfferAndSeller(args: {
50
+ offerToCreate: CreateOfferArgs;
51
+ sellerToCreate: CreateSellerArgs;
52
+ contractAddress: string;
53
+ web3Lib: Web3LibAdapter;
54
+ metadataStorage?: MetadataStorage;
55
+ theGraphStorage?: MetadataStorage;
56
+ returnTxInfo?: boolean;
57
+ }): Promise<TransactionRequest | TransactionResponse> {
35
58
  utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
36
59
  abortEarly: false
37
60
  });
@@ -60,16 +83,23 @@ export async function createOfferAndSeller(args: {
60
83
  });
61
84
 
62
85
  const collectionSalt = await findCollectionSalt(args);
63
- return args.web3Lib.sendTransaction({
86
+ const transactionRequest = {
64
87
  to: args.contractAddress,
65
88
  data: encodeCreateSellerAndOffer(
66
89
  args.sellerToCreate,
67
90
  collectionSalt,
68
91
  args.offerToCreate
69
92
  )
70
- });
93
+ } satisfies TransactionRequest;
94
+
95
+ if (args.returnTxInfo) {
96
+ return transactionRequest;
97
+ } else {
98
+ return args.web3Lib.sendTransaction(transactionRequest);
99
+ }
71
100
  }
72
101
 
102
+ // createOfferWithCondition overloads
73
103
  export async function createOfferWithCondition(args: {
74
104
  offerToCreate: CreateOfferArgs;
75
105
  contractAddress: string;
@@ -77,7 +107,28 @@ export async function createOfferWithCondition(args: {
77
107
  metadataStorage?: MetadataStorage;
78
108
  theGraphStorage?: MetadataStorage;
79
109
  condition: ConditionStruct;
80
- }): Promise<TransactionResponse> {
110
+ returnTxInfo: true;
111
+ }): Promise<TransactionRequest>;
112
+
113
+ export async function createOfferWithCondition(args: {
114
+ offerToCreate: CreateOfferArgs;
115
+ contractAddress: string;
116
+ web3Lib: Web3LibAdapter;
117
+ metadataStorage?: MetadataStorage;
118
+ theGraphStorage?: MetadataStorage;
119
+ condition: ConditionStruct;
120
+ returnTxInfo?: false | undefined;
121
+ }): Promise<TransactionResponse>;
122
+
123
+ export async function createOfferWithCondition(args: {
124
+ offerToCreate: CreateOfferArgs;
125
+ contractAddress: string;
126
+ web3Lib: Web3LibAdapter;
127
+ metadataStorage?: MetadataStorage;
128
+ theGraphStorage?: MetadataStorage;
129
+ condition: ConditionStruct;
130
+ returnTxInfo?: boolean;
131
+ }): Promise<TransactionRequest | TransactionResponse> {
81
132
  utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
82
133
  abortEarly: false
83
134
  });
@@ -93,12 +144,19 @@ export async function createOfferWithCondition(args: {
93
144
  createOffersArgs: [args.offerToCreate]
94
145
  });
95
146
 
96
- return args.web3Lib.sendTransaction({
147
+ const transactionRequest = {
97
148
  to: args.contractAddress,
98
149
  data: encodeCreateOfferWithCondition(args.offerToCreate, args.condition)
99
- });
150
+ } satisfies TransactionRequest;
151
+
152
+ if (args.returnTxInfo) {
153
+ return transactionRequest;
154
+ } else {
155
+ return args.web3Lib.sendTransaction(transactionRequest);
156
+ }
100
157
  }
101
158
 
159
+ // createSellerAndOfferWithCondition overloads
102
160
  export async function createSellerAndOfferWithCondition(args: {
103
161
  sellerToCreate: CreateSellerArgs;
104
162
  offerToCreate: CreateOfferArgs;
@@ -107,7 +165,30 @@ export async function createSellerAndOfferWithCondition(args: {
107
165
  metadataStorage?: MetadataStorage;
108
166
  theGraphStorage?: MetadataStorage;
109
167
  condition: ConditionStruct;
110
- }): Promise<TransactionResponse> {
168
+ returnTxInfo: true;
169
+ }): Promise<TransactionRequest>;
170
+
171
+ export async function createSellerAndOfferWithCondition(args: {
172
+ sellerToCreate: CreateSellerArgs;
173
+ offerToCreate: CreateOfferArgs;
174
+ contractAddress: string;
175
+ web3Lib: Web3LibAdapter;
176
+ metadataStorage?: MetadataStorage;
177
+ theGraphStorage?: MetadataStorage;
178
+ condition: ConditionStruct;
179
+ returnTxInfo?: false | undefined;
180
+ }): Promise<TransactionResponse>;
181
+
182
+ export async function createSellerAndOfferWithCondition(args: {
183
+ sellerToCreate: CreateSellerArgs;
184
+ offerToCreate: CreateOfferArgs;
185
+ contractAddress: string;
186
+ web3Lib: Web3LibAdapter;
187
+ metadataStorage?: MetadataStorage;
188
+ theGraphStorage?: MetadataStorage;
189
+ condition: ConditionStruct;
190
+ returnTxInfo?: boolean;
191
+ }): Promise<TransactionRequest | TransactionResponse> {
111
192
  utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
112
193
  abortEarly: false
113
194
  });
@@ -132,7 +213,7 @@ export async function createSellerAndOfferWithCondition(args: {
132
213
  });
133
214
 
134
215
  const collectionSalt = await findCollectionSalt(args);
135
- return args.web3Lib.sendTransaction({
216
+ const transactionRequest = {
136
217
  to: args.contractAddress,
137
218
  data: encodeCreateSellerAndOfferWithCondition(
138
219
  args.sellerToCreate,
@@ -140,9 +221,27 @@ export async function createSellerAndOfferWithCondition(args: {
140
221
  args.offerToCreate,
141
222
  args.condition
142
223
  )
143
- });
224
+ } satisfies TransactionRequest;
225
+
226
+ if (args.returnTxInfo) {
227
+ return transactionRequest;
228
+ } else {
229
+ return args.web3Lib.sendTransaction(transactionRequest);
230
+ }
144
231
  }
145
232
 
233
+ // createPremintedOfferAddToGroup overloads
234
+ export async function createPremintedOfferAddToGroup(args: {
235
+ offerToCreate: CreateOfferArgs;
236
+ premintParameters: PremintParametersStruct;
237
+ groupId: BigNumberish;
238
+ contractAddress: string;
239
+ web3Lib: Web3LibAdapter;
240
+ metadataStorage?: MetadataStorage;
241
+ theGraphStorage?: MetadataStorage;
242
+ returnTxInfo: true;
243
+ }): Promise<TransactionRequest>;
244
+
146
245
  export async function createPremintedOfferAddToGroup(args: {
147
246
  offerToCreate: CreateOfferArgs;
148
247
  premintParameters: PremintParametersStruct;
@@ -151,7 +250,19 @@ export async function createPremintedOfferAddToGroup(args: {
151
250
  web3Lib: Web3LibAdapter;
152
251
  metadataStorage?: MetadataStorage;
153
252
  theGraphStorage?: MetadataStorage;
154
- }): Promise<TransactionResponse> {
253
+ returnTxInfo?: false | undefined;
254
+ }): Promise<TransactionResponse>;
255
+
256
+ export async function createPremintedOfferAddToGroup(args: {
257
+ offerToCreate: CreateOfferArgs;
258
+ premintParameters: PremintParametersStruct;
259
+ groupId: BigNumberish;
260
+ contractAddress: string;
261
+ web3Lib: Web3LibAdapter;
262
+ metadataStorage?: MetadataStorage;
263
+ theGraphStorage?: MetadataStorage;
264
+ returnTxInfo?: boolean;
265
+ }): Promise<TransactionRequest | TransactionResponse> {
155
266
  utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
156
267
  abortEarly: false
157
268
  });
@@ -167,16 +278,45 @@ export async function createPremintedOfferAddToGroup(args: {
167
278
  createOffersArgs: [args.offerToCreate]
168
279
  });
169
280
 
170
- return args.web3Lib.sendTransaction({
281
+ const transactionRequest = {
171
282
  to: args.contractAddress,
172
283
  data: encodeCreatePremintedOfferAddToGroup(
173
284
  args.offerToCreate,
174
285
  args.premintParameters,
175
286
  args.groupId
176
287
  )
177
- });
288
+ } satisfies TransactionRequest;
289
+
290
+ if (args.returnTxInfo) {
291
+ return transactionRequest;
292
+ } else {
293
+ return args.web3Lib.sendTransaction(transactionRequest);
294
+ }
178
295
  }
179
296
 
297
+ // createPremintedOfferWithCondition overloads
298
+ export async function createPremintedOfferWithCondition(args: {
299
+ offerToCreate: CreateOfferArgs;
300
+ premintParameters: PremintParametersStruct;
301
+ contractAddress: string;
302
+ web3Lib: Web3LibAdapter;
303
+ metadataStorage?: MetadataStorage;
304
+ theGraphStorage?: MetadataStorage;
305
+ condition: ConditionStruct;
306
+ returnTxInfo: true;
307
+ }): Promise<TransactionRequest>;
308
+
309
+ export async function createPremintedOfferWithCondition(args: {
310
+ offerToCreate: CreateOfferArgs;
311
+ premintParameters: PremintParametersStruct;
312
+ contractAddress: string;
313
+ web3Lib: Web3LibAdapter;
314
+ metadataStorage?: MetadataStorage;
315
+ theGraphStorage?: MetadataStorage;
316
+ condition: ConditionStruct;
317
+ returnTxInfo?: false | undefined;
318
+ }): Promise<TransactionResponse>;
319
+
180
320
  export async function createPremintedOfferWithCondition(args: {
181
321
  offerToCreate: CreateOfferArgs;
182
322
  premintParameters: PremintParametersStruct;
@@ -185,7 +325,8 @@ export async function createPremintedOfferWithCondition(args: {
185
325
  metadataStorage?: MetadataStorage;
186
326
  theGraphStorage?: MetadataStorage;
187
327
  condition: ConditionStruct;
188
- }): Promise<TransactionResponse> {
328
+ returnTxInfo?: boolean;
329
+ }): Promise<TransactionRequest | TransactionResponse> {
189
330
  utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
190
331
  abortEarly: false
191
332
  });
@@ -201,16 +342,23 @@ export async function createPremintedOfferWithCondition(args: {
201
342
  createOffersArgs: [args.offerToCreate]
202
343
  });
203
344
 
204
- return args.web3Lib.sendTransaction({
345
+ const transactionRequest = {
205
346
  to: args.contractAddress,
206
347
  data: encodeCreatePremintedOfferWithCondition(
207
348
  args.offerToCreate,
208
349
  args.premintParameters,
209
350
  args.condition
210
351
  )
211
- });
352
+ } satisfies TransactionRequest;
353
+
354
+ if (args.returnTxInfo) {
355
+ return transactionRequest;
356
+ } else {
357
+ return args.web3Lib.sendTransaction(transactionRequest);
358
+ }
212
359
  }
213
360
 
361
+ // createSellerAndPremintedOffer overloads
214
362
  export async function createSellerAndPremintedOffer(args: {
215
363
  sellerToCreate: CreateSellerArgs;
216
364
  offerToCreate: CreateOfferArgs;
@@ -219,7 +367,30 @@ export async function createSellerAndPremintedOffer(args: {
219
367
  web3Lib: Web3LibAdapter;
220
368
  metadataStorage?: MetadataStorage;
221
369
  theGraphStorage?: MetadataStorage;
222
- }): Promise<TransactionResponse> {
370
+ returnTxInfo: true;
371
+ }): Promise<TransactionRequest>;
372
+
373
+ export async function createSellerAndPremintedOffer(args: {
374
+ sellerToCreate: CreateSellerArgs;
375
+ offerToCreate: CreateOfferArgs;
376
+ premintParameters: PremintParametersStruct;
377
+ contractAddress: string;
378
+ web3Lib: Web3LibAdapter;
379
+ metadataStorage?: MetadataStorage;
380
+ theGraphStorage?: MetadataStorage;
381
+ returnTxInfo?: false | undefined;
382
+ }): Promise<TransactionResponse>;
383
+
384
+ export async function createSellerAndPremintedOffer(args: {
385
+ sellerToCreate: CreateSellerArgs;
386
+ offerToCreate: CreateOfferArgs;
387
+ premintParameters: PremintParametersStruct;
388
+ contractAddress: string;
389
+ web3Lib: Web3LibAdapter;
390
+ metadataStorage?: MetadataStorage;
391
+ theGraphStorage?: MetadataStorage;
392
+ returnTxInfo?: boolean;
393
+ }): Promise<TransactionRequest | TransactionResponse> {
223
394
  utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
224
395
  abortEarly: false
225
396
  });
@@ -244,7 +415,7 @@ export async function createSellerAndPremintedOffer(args: {
244
415
  });
245
416
 
246
417
  const collectionSalt = await findCollectionSalt(args);
247
- return args.web3Lib.sendTransaction({
418
+ const transactionRequest = {
248
419
  to: args.contractAddress,
249
420
  data: encodeCreateSellerAndPremintedOffer(
250
421
  args.sellerToCreate,
@@ -252,9 +423,16 @@ export async function createSellerAndPremintedOffer(args: {
252
423
  args.offerToCreate,
253
424
  args.premintParameters
254
425
  )
255
- });
426
+ } satisfies TransactionRequest;
427
+
428
+ if (args.returnTxInfo) {
429
+ return transactionRequest;
430
+ } else {
431
+ return args.web3Lib.sendTransaction(transactionRequest);
432
+ }
256
433
  }
257
434
 
435
+ // createSellerAndPremintedOfferWithCondition overloads
258
436
  export async function createSellerAndPremintedOfferWithCondition(args: {
259
437
  sellerToCreate: CreateSellerArgs;
260
438
  offerToCreate: CreateOfferArgs;
@@ -264,7 +442,32 @@ export async function createSellerAndPremintedOfferWithCondition(args: {
264
442
  metadataStorage?: MetadataStorage;
265
443
  theGraphStorage?: MetadataStorage;
266
444
  condition: ConditionStruct;
267
- }): Promise<TransactionResponse> {
445
+ returnTxInfo: true;
446
+ }): Promise<TransactionRequest>;
447
+
448
+ export async function createSellerAndPremintedOfferWithCondition(args: {
449
+ sellerToCreate: CreateSellerArgs;
450
+ offerToCreate: CreateOfferArgs;
451
+ premintParameters: PremintParametersStruct;
452
+ contractAddress: string;
453
+ web3Lib: Web3LibAdapter;
454
+ metadataStorage?: MetadataStorage;
455
+ theGraphStorage?: MetadataStorage;
456
+ condition: ConditionStruct;
457
+ returnTxInfo?: false | undefined;
458
+ }): Promise<TransactionResponse>;
459
+
460
+ export async function createSellerAndPremintedOfferWithCondition(args: {
461
+ sellerToCreate: CreateSellerArgs;
462
+ offerToCreate: CreateOfferArgs;
463
+ premintParameters: PremintParametersStruct;
464
+ contractAddress: string;
465
+ web3Lib: Web3LibAdapter;
466
+ metadataStorage?: MetadataStorage;
467
+ theGraphStorage?: MetadataStorage;
468
+ condition: ConditionStruct;
469
+ returnTxInfo?: boolean;
470
+ }): Promise<TransactionRequest | TransactionResponse> {
268
471
  utils.validation.createOfferArgsSchema.validateSync(args.offerToCreate, {
269
472
  abortEarly: false
270
473
  });
@@ -289,7 +492,7 @@ export async function createSellerAndPremintedOfferWithCondition(args: {
289
492
  });
290
493
 
291
494
  const collectionSalt = await findCollectionSalt(args);
292
- return args.web3Lib.sendTransaction({
495
+ const transactionRequest = {
293
496
  to: args.contractAddress,
294
497
  data: encodeCreateSellerAndPremintedOfferWithCondition(
295
498
  args.sellerToCreate,
@@ -298,18 +501,50 @@ export async function createSellerAndPremintedOfferWithCondition(args: {
298
501
  args.premintParameters,
299
502
  args.condition
300
503
  )
301
- });
504
+ } satisfies TransactionRequest;
505
+
506
+ if (args.returnTxInfo) {
507
+ return transactionRequest;
508
+ } else {
509
+ return args.web3Lib.sendTransaction(transactionRequest);
510
+ }
302
511
  }
303
512
 
513
+ // raiseAndEscalateDispute overloads
514
+ export async function raiseAndEscalateDispute(args: {
515
+ exchangeId: BigNumberish;
516
+ contractAddress: string;
517
+ web3Lib: Web3LibAdapter;
518
+ metadataStorage?: MetadataStorage;
519
+ theGraphStorage?: MetadataStorage;
520
+ returnTxInfo: true;
521
+ }): Promise<TransactionRequest>;
522
+
304
523
  export async function raiseAndEscalateDispute(args: {
305
524
  exchangeId: BigNumberish;
306
525
  contractAddress: string;
307
526
  web3Lib: Web3LibAdapter;
308
527
  metadataStorage?: MetadataStorage;
309
528
  theGraphStorage?: MetadataStorage;
310
- }): Promise<TransactionResponse> {
311
- return args.web3Lib.sendTransaction({
529
+ returnTxInfo?: false | undefined;
530
+ }): Promise<TransactionResponse>;
531
+
532
+ export async function raiseAndEscalateDispute(args: {
533
+ exchangeId: BigNumberish;
534
+ contractAddress: string;
535
+ web3Lib: Web3LibAdapter;
536
+ metadataStorage?: MetadataStorage;
537
+ theGraphStorage?: MetadataStorage;
538
+ returnTxInfo?: boolean;
539
+ }): Promise<TransactionRequest | TransactionResponse> {
540
+ const transactionRequest = {
312
541
  to: args.contractAddress,
313
542
  data: encodeRaiseAndEscalateDispute(args.exchangeId)
314
- });
543
+ } satisfies TransactionRequest;
544
+
545
+ if (args.returnTxInfo) {
546
+ return transactionRequest;
547
+ } else {
548
+ return args.web3Lib.sendTransaction(transactionRequest);
549
+ }
315
550
  }
@@ -1,11 +1,17 @@
1
- import { ConditionStruct, TransactionResponse } from "@bosonprotocol/common";
1
+ import {
2
+ ConditionStruct,
3
+ TransactionResponse,
4
+ Web3LibAdapter
5
+ } from "@bosonprotocol/common";
2
6
  import { BigNumberish } from "@ethersproject/bignumber";
3
7
  import { handler } from ".";
4
8
  import { offers, accounts } from "..";
5
9
  import { BaseCoreSDK } from "./../mixins/base-core-sdk";
6
10
  import { PremintParametersStruct } from "@bosonprotocol/common/src";
7
11
 
8
- export class OrchestrationMixin extends BaseCoreSDK {
12
+ export class OrchestrationMixin<
13
+ T extends Web3LibAdapter
14
+ > extends BaseCoreSDK<T> {
9
15
  /**
10
16
  * Creates an offer with a specific conditions
11
17
  * @param offerToCreate - Offer arguments.
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  Web3LibAdapter,
3
3
  PriceDiscoveryStruct,
4
- TransactionResponse
4
+ TransactionResponse,
5
+ TransactionRequest
5
6
  } from "@bosonprotocol/common";
6
7
  import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
7
8
  import * as exchanges from "../exchanges/handler";
@@ -9,6 +10,7 @@ import { getOfferById } from "../offers/subgraph";
9
10
  import { AddressZero } from "@ethersproject/constants";
10
11
  import { encodeCommitToPriceDiscoveryOffer } from "./interface";
11
12
 
13
+ // Overload: returnTxInfo is true → returns TransactionRequest
12
14
  export async function commitToPriceDiscoveryOffer(args: {
13
15
  contractAddress: string;
14
16
  subgraphUrl: string;
@@ -16,7 +18,30 @@ export async function commitToPriceDiscoveryOffer(args: {
16
18
  buyer: string;
17
19
  tokenIdOrOfferId: BigNumberish;
18
20
  priceDiscovery: PriceDiscoveryStruct;
19
- }): Promise<TransactionResponse> {
21
+ returnTxInfo: true;
22
+ }): Promise<TransactionRequest>;
23
+
24
+ // Overload: returnTxInfo is false or undefined → returns TransactionResponse
25
+ export async function commitToPriceDiscoveryOffer(args: {
26
+ contractAddress: string;
27
+ subgraphUrl: string;
28
+ web3Lib: Web3LibAdapter;
29
+ buyer: string;
30
+ tokenIdOrOfferId: BigNumberish;
31
+ priceDiscovery: PriceDiscoveryStruct;
32
+ returnTxInfo?: false | undefined;
33
+ }): Promise<TransactionResponse>;
34
+
35
+ // Implementation
36
+ export async function commitToPriceDiscoveryOffer(args: {
37
+ contractAddress: string;
38
+ subgraphUrl: string;
39
+ web3Lib: Web3LibAdapter;
40
+ buyer: string;
41
+ tokenIdOrOfferId: BigNumberish;
42
+ priceDiscovery: PriceDiscoveryStruct;
43
+ returnTxInfo?: boolean;
44
+ }): Promise<TransactionRequest | TransactionResponse> {
20
45
  let { offerId } = exchanges.parseTokenId(args.tokenIdOrOfferId);
21
46
  if (offerId.eq(0)) {
22
47
  offerId = BigNumber.from(args.tokenIdOrOfferId);
@@ -25,7 +50,7 @@ export async function commitToPriceDiscoveryOffer(args: {
25
50
 
26
51
  // TODO: do we need to check allowance?
27
52
 
28
- return args.web3Lib.sendTransaction({
53
+ const transactionRequest = {
29
54
  to: args.contractAddress,
30
55
  data: encodeCommitToPriceDiscoveryOffer(
31
56
  args.buyer,
@@ -33,5 +58,11 @@ export async function commitToPriceDiscoveryOffer(args: {
33
58
  args.priceDiscovery
34
59
  ),
35
60
  value: offer.exchangeToken.address === AddressZero ? offer.price : "0"
36
- });
61
+ } satisfies TransactionRequest;
62
+
63
+ if (args.returnTxInfo) {
64
+ return transactionRequest;
65
+ } else {
66
+ return args.web3Lib.sendTransaction(transactionRequest);
67
+ }
37
68
  }
@@ -1,30 +1,81 @@
1
1
  import {
2
2
  TransactionResponse,
3
- PriceDiscoveryStruct
3
+ TransactionRequest,
4
+ PriceDiscoveryStruct,
5
+ Web3LibAdapter
4
6
  } from "@bosonprotocol/common";
5
7
  import { BaseCoreSDK } from "./../mixins/base-core-sdk";
6
8
  import { commitToPriceDiscoveryOffer } from "./handler";
7
9
  import { BigNumberish } from "@ethersproject/bignumber";
8
10
 
9
- export class PriceDiscoveryMixin extends BaseCoreSDK {
11
+ export class PriceDiscoveryMixin<
12
+ T extends Web3LibAdapter
13
+ > extends BaseCoreSDK<T> {
10
14
  /**
11
15
  * Commits to a price discovery offer (first step of an exchange)
12
- * @param groupToCreate - group with the contract condition
16
+ * This transaction only succeeds if there is an existing buyer account for connected signer.
17
+ * @param buyer - Buyer address.
18
+ * @param tokenIdOrOfferId - Token ID or Offer ID.
19
+ * @param priceDiscovery - Price discovery struct.
13
20
  * @param overrides - Optional overrides.
14
21
  * @returns Transaction response.
15
22
  */
23
+ // Overload: returnTxInfo is true → returns TransactionRequest
16
24
  public async commitToPriceDiscoveryOffer(
17
25
  buyer: string,
18
26
  tokenIdOrOfferId: BigNumberish,
19
- priceDiscovery: PriceDiscoveryStruct
20
- ): Promise<TransactionResponse> {
21
- return commitToPriceDiscoveryOffer({
27
+ priceDiscovery: PriceDiscoveryStruct,
28
+ overrides: Partial<{
29
+ contractAddress: string;
30
+ txRequest: TransactionRequest;
31
+ returnTxInfo: true;
32
+ }>
33
+ ): Promise<TransactionRequest>;
34
+
35
+ // Overload: returnTxInfo is false or undefined → returns TransactionResponse
36
+ public async commitToPriceDiscoveryOffer(
37
+ buyer: string,
38
+ tokenIdOrOfferId: BigNumberish,
39
+ priceDiscovery: PriceDiscoveryStruct,
40
+ overrides?: Partial<{
41
+ contractAddress: string;
42
+ txRequest: TransactionRequest;
43
+ returnTxInfo?: false | undefined;
44
+ }>
45
+ ): Promise<TransactionResponse>;
46
+
47
+ // Implementation
48
+ public async commitToPriceDiscoveryOffer(
49
+ buyer: string,
50
+ tokenIdOrOfferId: BigNumberish,
51
+ priceDiscovery: PriceDiscoveryStruct,
52
+ overrides: Partial<{
53
+ contractAddress: string;
54
+ txRequest: TransactionRequest;
55
+ returnTxInfo?: boolean;
56
+ }> = {}
57
+ ): Promise<TransactionResponse | TransactionRequest> {
58
+ const { returnTxInfo } = overrides;
59
+
60
+ const commitArgs = {
22
61
  buyer,
23
62
  tokenIdOrOfferId,
24
63
  priceDiscovery,
25
64
  web3Lib: this._web3Lib,
26
- subgraphUrl: this._subgraphUrl,
27
- contractAddress: this._protocolDiamond
28
- });
65
+ contractAddress: overrides.contractAddress || this._protocolDiamond,
66
+ subgraphUrl: this._subgraphUrl
67
+ } as const satisfies Parameters<typeof commitToPriceDiscoveryOffer>[0];
68
+
69
+ if (returnTxInfo === true) {
70
+ return commitToPriceDiscoveryOffer({
71
+ ...commitArgs,
72
+ returnTxInfo: true
73
+ });
74
+ } else {
75
+ return commitToPriceDiscoveryOffer({
76
+ ...commitArgs,
77
+ returnTxInfo: false
78
+ });
79
+ }
29
80
  }
30
81
  }
@@ -4,13 +4,35 @@ import {
4
4
  decodeGetMaxRoyaltyPercentage
5
5
  } from "./interface";
6
6
 
7
+ // Overload: returnTxInfo is true → returns call request
7
8
  export async function getMaxRoyaltyPercentage(args: {
8
9
  contractAddress: string;
9
10
  web3Lib: Web3LibAdapter;
10
- }): Promise<number> {
11
- const result = await args.web3Lib.call({
11
+ returnTxInfo: true;
12
+ }): Promise<{ to: string; data: string }>;
13
+
14
+ // Overload: returnTxInfo is false or undefined → returns number
15
+ export async function getMaxRoyaltyPercentage(args: {
16
+ contractAddress: string;
17
+ web3Lib: Web3LibAdapter;
18
+ returnTxInfo?: false | undefined;
19
+ }): Promise<number>;
20
+
21
+ // Implementation
22
+ export async function getMaxRoyaltyPercentage(args: {
23
+ contractAddress: string;
24
+ web3Lib: Web3LibAdapter;
25
+ returnTxInfo?: boolean;
26
+ }): Promise<number | { to: string; data: string }> {
27
+ const callRequest = {
12
28
  to: args.contractAddress,
13
29
  data: encodeGetMaxRoyaltyPercentage()
14
- });
15
- return decodeGetMaxRoyaltyPercentage(result);
30
+ };
31
+
32
+ if (args.returnTxInfo) {
33
+ return callRequest;
34
+ } else {
35
+ const result = await args.web3Lib.call(callRequest);
36
+ return decodeGetMaxRoyaltyPercentage(result);
37
+ }
16
38
  }
@@ -1,7 +1,10 @@
1
1
  import { BaseCoreSDK } from "../mixins/base-core-sdk";
2
2
  import { handler } from ".";
3
+ import { Web3LibAdapter } from "@bosonprotocol/common";
3
4
 
4
- export class ProtocolConfigMixin extends BaseCoreSDK {
5
+ export class ProtocolConfigMixin<
6
+ T extends Web3LibAdapter
7
+ > extends BaseCoreSDK<T> {
5
8
  public async getMaxRoyaltyPercentage(
6
9
  overrides: Partial<{
7
10
  contractAddress: string;