@bosonprotocol/core-sdk 1.25.0-alpha.2 → 1.25.0-alpha.21

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