@bosonprotocol/core-sdk 1.25.0-alpha.13 → 1.25.0-alpha.14

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 (153) hide show
  1. package/dist/cjs/accounts/mixin.d.ts +4 -4
  2. package/dist/cjs/accounts/mixin.d.ts.map +1 -1
  3. package/dist/cjs/accounts/mixin.js +8 -8
  4. package/dist/cjs/accounts/mixin.js.map +1 -1
  5. package/dist/cjs/accounts/subgraph.d.ts +1 -1
  6. package/dist/cjs/accounts/subgraph.d.ts.map +1 -1
  7. package/dist/cjs/accounts/subgraph.js +7 -7
  8. package/dist/cjs/accounts/subgraph.js.map +1 -1
  9. package/dist/cjs/accounts/types.d.ts +1 -1
  10. package/dist/cjs/accounts/types.d.ts.map +1 -1
  11. package/dist/cjs/exchanges/handler.js +12 -12
  12. package/dist/cjs/exchanges/handler.js.map +1 -1
  13. package/dist/cjs/exchanges/mixin.d.ts +3 -3
  14. package/dist/cjs/exchanges/mixin.js +3 -3
  15. package/dist/cjs/index.d.ts +1 -0
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +2 -1
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/meta-tx/handler.d.ts +17 -0
  20. package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
  21. package/dist/cjs/meta-tx/handler.js +30 -2
  22. package/dist/cjs/meta-tx/handler.js.map +1 -1
  23. package/dist/cjs/meta-tx/mixin.d.ts +11 -1
  24. package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
  25. package/dist/cjs/meta-tx/mixin.js +44 -1
  26. package/dist/cjs/meta-tx/mixin.js.map +1 -1
  27. package/dist/cjs/offers/handler.d.ts +1 -0
  28. package/dist/cjs/offers/handler.d.ts.map +1 -1
  29. package/dist/cjs/offers/handler.js +3 -3
  30. package/dist/cjs/offers/handler.js.map +1 -1
  31. package/dist/cjs/offers/interface.d.ts +1 -1
  32. package/dist/cjs/offers/interface.d.ts.map +1 -1
  33. package/dist/cjs/offers/interface.js +3 -2
  34. package/dist/cjs/offers/interface.js.map +1 -1
  35. package/dist/cjs/offers/mixin.d.ts +5 -5
  36. package/dist/cjs/offers/mixin.d.ts.map +1 -1
  37. package/dist/cjs/offers/mixin.js +9 -5
  38. package/dist/cjs/offers/mixin.js.map +1 -1
  39. package/dist/cjs/seaport/abi.d.ts +41 -0
  40. package/dist/cjs/seaport/abi.d.ts.map +1 -0
  41. package/dist/cjs/seaport/abi.js +153 -0
  42. package/dist/cjs/seaport/abi.js.map +1 -0
  43. package/dist/cjs/seaport/handler.d.ts +46 -0
  44. package/dist/cjs/seaport/handler.d.ts.map +1 -0
  45. package/dist/cjs/seaport/handler.js +28 -0
  46. package/dist/cjs/seaport/handler.js.map +1 -0
  47. package/dist/cjs/seaport/index.d.ts +2 -0
  48. package/dist/cjs/seaport/index.d.ts.map +1 -0
  49. package/dist/cjs/seaport/index.js +28 -0
  50. package/dist/cjs/seaport/index.js.map +1 -0
  51. package/dist/cjs/subgraph.d.ts +211 -211
  52. package/dist/cjs/subgraph.d.ts.map +1 -1
  53. package/dist/cjs/subgraph.js +8 -8
  54. package/dist/cjs/subgraph.js.map +1 -1
  55. package/dist/cjs/voucher/handler.d.ts +17 -0
  56. package/dist/cjs/voucher/handler.d.ts.map +1 -1
  57. package/dist/cjs/voucher/handler.js +28 -1
  58. package/dist/cjs/voucher/handler.js.map +1 -1
  59. package/dist/cjs/voucher/interface.d.ts +3 -0
  60. package/dist/cjs/voucher/interface.d.ts.map +1 -1
  61. package/dist/cjs/voucher/interface.js +21 -1
  62. package/dist/cjs/voucher/interface.js.map +1 -1
  63. package/dist/cjs/voucher/mixin.d.ts +8 -0
  64. package/dist/cjs/voucher/mixin.d.ts.map +1 -1
  65. package/dist/cjs/voucher/mixin.js +36 -0
  66. package/dist/cjs/voucher/mixin.js.map +1 -1
  67. package/dist/esm/accounts/mixin.d.ts +4 -4
  68. package/dist/esm/accounts/mixin.d.ts.map +1 -1
  69. package/dist/esm/accounts/mixin.js +8 -8
  70. package/dist/esm/accounts/mixin.js.map +1 -1
  71. package/dist/esm/accounts/subgraph.d.ts +1 -1
  72. package/dist/esm/accounts/subgraph.d.ts.map +1 -1
  73. package/dist/esm/accounts/subgraph.js +5 -5
  74. package/dist/esm/accounts/subgraph.js.map +1 -1
  75. package/dist/esm/accounts/types.d.ts +1 -1
  76. package/dist/esm/accounts/types.d.ts.map +1 -1
  77. package/dist/esm/exchanges/handler.js +12 -12
  78. package/dist/esm/exchanges/handler.js.map +1 -1
  79. package/dist/esm/exchanges/mixin.d.ts +3 -3
  80. package/dist/esm/exchanges/mixin.js +3 -3
  81. package/dist/esm/index.d.ts +1 -0
  82. package/dist/esm/index.d.ts.map +1 -1
  83. package/dist/esm/index.js +1 -0
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/meta-tx/handler.d.ts +17 -0
  86. package/dist/esm/meta-tx/handler.d.ts.map +1 -1
  87. package/dist/esm/meta-tx/handler.js +37 -3
  88. package/dist/esm/meta-tx/handler.js.map +1 -1
  89. package/dist/esm/meta-tx/mixin.d.ts +11 -1
  90. package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
  91. package/dist/esm/meta-tx/mixin.js +55 -1
  92. package/dist/esm/meta-tx/mixin.js.map +1 -1
  93. package/dist/esm/offers/handler.d.ts +1 -0
  94. package/dist/esm/offers/handler.d.ts.map +1 -1
  95. package/dist/esm/offers/handler.js +3 -3
  96. package/dist/esm/offers/handler.js.map +1 -1
  97. package/dist/esm/offers/interface.d.ts +1 -1
  98. package/dist/esm/offers/interface.d.ts.map +1 -1
  99. package/dist/esm/offers/interface.js +3 -2
  100. package/dist/esm/offers/interface.js.map +1 -1
  101. package/dist/esm/offers/mixin.d.ts +5 -5
  102. package/dist/esm/offers/mixin.d.ts.map +1 -1
  103. package/dist/esm/offers/mixin.js +9 -5
  104. package/dist/esm/offers/mixin.js.map +1 -1
  105. package/dist/esm/seaport/abi.d.ts +41 -0
  106. package/dist/esm/seaport/abi.d.ts.map +1 -0
  107. package/dist/esm/seaport/abi.js +150 -0
  108. package/dist/esm/seaport/abi.js.map +1 -0
  109. package/dist/esm/seaport/handler.d.ts +46 -0
  110. package/dist/esm/seaport/handler.d.ts.map +1 -0
  111. package/dist/esm/seaport/handler.js +24 -0
  112. package/dist/esm/seaport/handler.js.map +1 -0
  113. package/dist/esm/seaport/index.d.ts +2 -0
  114. package/dist/esm/seaport/index.d.ts.map +1 -0
  115. package/dist/esm/seaport/index.js +2 -0
  116. package/dist/esm/seaport/index.js.map +1 -0
  117. package/dist/esm/subgraph.d.ts +211 -211
  118. package/dist/esm/subgraph.d.ts.map +1 -1
  119. package/dist/esm/subgraph.js +8 -8
  120. package/dist/esm/subgraph.js.map +1 -1
  121. package/dist/esm/voucher/handler.d.ts +17 -0
  122. package/dist/esm/voucher/handler.d.ts.map +1 -1
  123. package/dist/esm/voucher/handler.js +19 -1
  124. package/dist/esm/voucher/handler.js.map +1 -1
  125. package/dist/esm/voucher/interface.d.ts +3 -0
  126. package/dist/esm/voucher/interface.d.ts.map +1 -1
  127. package/dist/esm/voucher/interface.js +17 -0
  128. package/dist/esm/voucher/interface.js.map +1 -1
  129. package/dist/esm/voucher/mixin.d.ts +8 -0
  130. package/dist/esm/voucher/mixin.d.ts.map +1 -1
  131. package/dist/esm/voucher/mixin.js +32 -0
  132. package/dist/esm/voucher/mixin.js.map +1 -1
  133. package/package.json +3 -3
  134. package/src/accounts/interface.ts +1 -1
  135. package/src/accounts/mixin.ts +15 -14
  136. package/src/accounts/queries.graphql +4 -4
  137. package/src/accounts/subgraph.ts +6 -6
  138. package/src/accounts/types.ts +1 -1
  139. package/src/exchanges/handler.ts +13 -13
  140. package/src/exchanges/mixin.ts +3 -3
  141. package/src/index.ts +1 -0
  142. package/src/meta-tx/handler.ts +76 -3
  143. package/src/meta-tx/mixin.ts +105 -3
  144. package/src/offers/handler.ts +4 -3
  145. package/src/offers/interface.ts +4 -2
  146. package/src/offers/mixin.ts +10 -4
  147. package/src/seaport/abi.ts +149 -0
  148. package/src/seaport/handler.ts +57 -0
  149. package/src/seaport/index.ts +1 -0
  150. package/src/subgraph.ts +215 -215
  151. package/src/voucher/handler.ts +39 -1
  152. package/src/voucher/interface.ts +23 -0
  153. package/src/voucher/mixin.ts +58 -0
@@ -6,11 +6,14 @@ import {
6
6
  decodeGetRangeByOfferId,
7
7
  decodeIsApprovedForAll,
8
8
  encodeBurnPremintedVouchers,
9
+ encodeCallExternalContract,
9
10
  encodeGetAvailablePreMints,
10
11
  encodeGetRangeByOfferId,
11
12
  encodeIsApprovedForAll,
12
13
  encodePreMint,
13
- encodeTransferFrom
14
+ encodeSetApprovalForAllToContract,
15
+ encodeTransferFrom,
16
+ encodeWithdrawToProtocol
14
17
  } from "./interface";
15
18
 
16
19
  export async function burnPremintedVouchers(args: {
@@ -93,3 +96,38 @@ export async function isApprovedForAll(args: {
93
96
  const [isApproved] = decodeIsApprovedForAll(result);
94
97
  return isApproved;
95
98
  }
99
+
100
+ export async function callExternalContract(args: {
101
+ to: string;
102
+ data: string;
103
+ contractAddress: string;
104
+ web3Lib: Web3LibAdapter;
105
+ }): Promise<TransactionResponse> {
106
+ return args.web3Lib.sendTransaction({
107
+ to: args.contractAddress,
108
+ data: encodeCallExternalContract(args.to, args.data)
109
+ });
110
+ }
111
+
112
+ export async function setApprovalForAllToContract(args: {
113
+ operator: string;
114
+ approved: boolean;
115
+ contractAddress: string;
116
+ web3Lib: Web3LibAdapter;
117
+ }): Promise<TransactionResponse> {
118
+ return args.web3Lib.sendTransaction({
119
+ to: args.contractAddress,
120
+ data: encodeSetApprovalForAllToContract(args.operator, args.approved)
121
+ });
122
+ }
123
+
124
+ export async function withdrawToProtocol(args: {
125
+ tokenList: string[];
126
+ contractAddress: string;
127
+ web3Lib: Web3LibAdapter;
128
+ }): Promise<TransactionResponse> {
129
+ return args.web3Lib.sendTransaction({
130
+ to: args.contractAddress,
131
+ data: encodeWithdrawToProtocol(args.tokenList)
132
+ });
133
+ }
@@ -61,3 +61,26 @@ export function encodeTransferFrom(
61
61
  tokenId
62
62
  ]);
63
63
  }
64
+
65
+ export function encodeCallExternalContract(to: string, data: string) {
66
+ return bosonVoucherIface.encodeFunctionData("callExternalContract", [
67
+ to,
68
+ data
69
+ ]);
70
+ }
71
+
72
+ export function encodeSetApprovalForAllToContract(
73
+ operator: string,
74
+ approved: boolean
75
+ ) {
76
+ return bosonVoucherIface.encodeFunctionData("setApprovalForAllToContract", [
77
+ operator,
78
+ approved
79
+ ]);
80
+ }
81
+
82
+ export function encodeWithdrawToProtocol(tokenList: string[]) {
83
+ return bosonVoucherIface.encodeFunctionData("withdrawToProtocol", [
84
+ tokenList
85
+ ]);
86
+ }
@@ -4,6 +4,7 @@ import { BigNumberish } from "@ethersproject/bignumber";
4
4
  import { handler } from ".";
5
5
  import { accounts } from "..";
6
6
  import { getOfferById } from "../offers/subgraph";
7
+ import { encodeValidate, Order as SeaportOrder } from "../seaport/handler";
7
8
  import { BaseCoreSDK } from "./../mixins/base-core-sdk";
8
9
 
9
10
  export class VoucherMixin extends BaseCoreSDK {
@@ -144,4 +145,61 @@ export class VoucherMixin extends BaseCoreSDK {
144
145
  web3Lib: this._web3Lib
145
146
  });
146
147
  }
148
+
149
+ public async setApprovalForAllToContract(
150
+ operator: string,
151
+ approved: boolean,
152
+ overrides: Partial<{
153
+ contractAddress: string;
154
+ }> = {}
155
+ ) {
156
+ const sellerAddress = await this._web3Lib.getSignerAddress();
157
+ const seller = await accounts.subgraph.getSellerByAddress(
158
+ this._subgraphUrl,
159
+ sellerAddress
160
+ );
161
+ return handler.setApprovalForAllToContract({
162
+ operator,
163
+ approved,
164
+ contractAddress: overrides.contractAddress || seller.voucherCloneAddress,
165
+ web3Lib: this._web3Lib
166
+ });
167
+ }
168
+
169
+ public async validateSeaportOrders(
170
+ openseaConduit: string,
171
+ seaportContract: string,
172
+ orders: SeaportOrder[],
173
+ overrides: Partial<{
174
+ contractAddress: string;
175
+ approveIfNeeded: boolean;
176
+ }> = { approveIfNeeded: true }
177
+ ) {
178
+ const sellerAddress = await this._web3Lib.getSignerAddress();
179
+ const seller = await accounts.subgraph.getSellerByAddress(
180
+ this._subgraphUrl,
181
+ sellerAddress
182
+ );
183
+ if (overrides.approveIfNeeded) {
184
+ // Check the openseaConduit is approved for preminted tokens
185
+ const isApprovedForAll = await this.isApprovedForAll(openseaConduit, {
186
+ owner: seller.voucherCloneAddress,
187
+ contractAddress: overrides.contractAddress || seller.voucherCloneAddress
188
+ });
189
+ if (!isApprovedForAll) {
190
+ const txApproval = await this.setApprovalForAllToContract(
191
+ openseaConduit,
192
+ true,
193
+ overrides
194
+ );
195
+ await txApproval.wait();
196
+ }
197
+ }
198
+ return handler.callExternalContract({
199
+ to: seaportContract,
200
+ data: encodeValidate(orders),
201
+ contractAddress: overrides.contractAddress || seller.voucherCloneAddress,
202
+ web3Lib: this._web3Lib
203
+ });
204
+ }
147
205
  }