@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.
- package/dist/cjs/accounts/mixin.d.ts +4 -4
- package/dist/cjs/accounts/mixin.d.ts.map +1 -1
- package/dist/cjs/accounts/mixin.js +8 -8
- package/dist/cjs/accounts/mixin.js.map +1 -1
- package/dist/cjs/accounts/subgraph.d.ts +1 -1
- package/dist/cjs/accounts/subgraph.d.ts.map +1 -1
- package/dist/cjs/accounts/subgraph.js +7 -7
- package/dist/cjs/accounts/subgraph.js.map +1 -1
- package/dist/cjs/accounts/types.d.ts +1 -1
- package/dist/cjs/accounts/types.d.ts.map +1 -1
- package/dist/cjs/core-sdk.d.ts +1 -0
- package/dist/cjs/core-sdk.d.ts.map +1 -1
- package/dist/cjs/core-sdk.js +3 -0
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/erc1155/mixin.d.ts +1 -1
- package/dist/cjs/erc1155/mixin.d.ts.map +1 -1
- package/dist/cjs/erc1155/mixin.js +2 -2
- package/dist/cjs/erc1155/mixin.js.map +1 -1
- package/dist/cjs/erc20/mixin.d.ts +7 -7
- package/dist/cjs/erc20/mixin.d.ts.map +1 -1
- package/dist/cjs/erc20/mixin.js +14 -14
- package/dist/cjs/erc20/mixin.js.map +1 -1
- package/dist/cjs/erc721/mixin.d.ts +3 -3
- package/dist/cjs/erc721/mixin.d.ts.map +1 -1
- package/dist/cjs/erc721/mixin.js +6 -6
- package/dist/cjs/erc721/mixin.js.map +1 -1
- package/dist/cjs/exchanges/handler.js +12 -12
- package/dist/cjs/exchanges/handler.js.map +1 -1
- package/dist/cjs/exchanges/mixin.d.ts +3 -3
- package/dist/cjs/exchanges/mixin.js +3 -3
- package/dist/cjs/forwarder/handler.d.ts +1 -1
- package/dist/cjs/forwarder/handler.d.ts.map +1 -1
- package/dist/cjs/forwarder/handler.js +2 -4
- package/dist/cjs/forwarder/handler.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/meta-tx/biconomy.d.ts +17 -3
- package/dist/cjs/meta-tx/biconomy.d.ts.map +1 -1
- package/dist/cjs/meta-tx/biconomy.js +19 -0
- package/dist/cjs/meta-tx/biconomy.js.map +1 -1
- package/dist/cjs/meta-tx/handler.d.ts +38 -4
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +92 -23
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +25 -3
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +51 -22
- package/dist/cjs/meta-tx/mixin.js.map +1 -1
- package/dist/cjs/offers/handler.d.ts +15 -0
- package/dist/cjs/offers/handler.d.ts.map +1 -1
- package/dist/cjs/offers/handler.js +28 -4
- package/dist/cjs/offers/handler.js.map +1 -1
- package/dist/cjs/offers/interface.d.ts +1 -1
- package/dist/cjs/offers/interface.d.ts.map +1 -1
- package/dist/cjs/offers/interface.js +3 -2
- package/dist/cjs/offers/interface.js.map +1 -1
- package/dist/cjs/offers/mixin.d.ts +26 -3
- package/dist/cjs/offers/mixin.d.ts.map +1 -1
- package/dist/cjs/offers/mixin.js +46 -3
- package/dist/cjs/offers/mixin.js.map +1 -1
- package/dist/cjs/offers/renderContractualAgreement.d.ts.map +1 -1
- package/dist/cjs/offers/renderContractualAgreement.js +5 -4
- package/dist/cjs/offers/renderContractualAgreement.js.map +1 -1
- package/dist/cjs/seaport/abi.d.ts +41 -0
- package/dist/cjs/seaport/abi.d.ts.map +1 -0
- package/dist/cjs/seaport/abi.js +153 -0
- package/dist/cjs/seaport/abi.js.map +1 -0
- package/dist/cjs/seaport/handler.d.ts +46 -0
- package/dist/cjs/seaport/handler.d.ts.map +1 -0
- package/dist/cjs/seaport/handler.js +28 -0
- package/dist/cjs/seaport/handler.js.map +1 -0
- package/dist/cjs/seaport/index.d.ts +2 -0
- package/dist/cjs/seaport/index.d.ts.map +1 -0
- package/dist/cjs/seaport/index.js +28 -0
- package/dist/cjs/seaport/index.js.map +1 -0
- package/dist/cjs/subgraph.d.ts +1451 -212
- package/dist/cjs/subgraph.d.ts.map +1 -1
- package/dist/cjs/subgraph.js +67 -11
- package/dist/cjs/subgraph.js.map +1 -1
- package/dist/cjs/voucher/handler.d.ts +31 -0
- package/dist/cjs/voucher/handler.d.ts.map +1 -1
- package/dist/cjs/voucher/handler.js +57 -1
- package/dist/cjs/voucher/handler.js.map +1 -1
- package/dist/cjs/voucher/interface.d.ts +8 -0
- package/dist/cjs/voucher/interface.d.ts.map +1 -1
- package/dist/cjs/voucher/interface.js +81 -1
- package/dist/cjs/voucher/interface.js.map +1 -1
- package/dist/cjs/voucher/mixin.d.ts +11 -0
- package/dist/cjs/voucher/mixin.d.ts.map +1 -1
- package/dist/cjs/voucher/mixin.js +47 -0
- package/dist/cjs/voucher/mixin.js.map +1 -1
- package/dist/esm/accounts/mixin.d.ts +4 -4
- package/dist/esm/accounts/mixin.d.ts.map +1 -1
- package/dist/esm/accounts/mixin.js +8 -8
- package/dist/esm/accounts/mixin.js.map +1 -1
- package/dist/esm/accounts/subgraph.d.ts +1 -1
- package/dist/esm/accounts/subgraph.d.ts.map +1 -1
- package/dist/esm/accounts/subgraph.js +5 -5
- package/dist/esm/accounts/subgraph.js.map +1 -1
- package/dist/esm/accounts/types.d.ts +1 -1
- package/dist/esm/accounts/types.d.ts.map +1 -1
- package/dist/esm/core-sdk.d.ts +1 -0
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +3 -0
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/erc1155/mixin.d.ts +1 -1
- package/dist/esm/erc1155/mixin.d.ts.map +1 -1
- package/dist/esm/erc1155/mixin.js +2 -2
- package/dist/esm/erc1155/mixin.js.map +1 -1
- package/dist/esm/erc20/mixin.d.ts +7 -7
- package/dist/esm/erc20/mixin.d.ts.map +1 -1
- package/dist/esm/erc20/mixin.js +14 -14
- package/dist/esm/erc20/mixin.js.map +1 -1
- package/dist/esm/erc721/mixin.d.ts +3 -3
- package/dist/esm/erc721/mixin.d.ts.map +1 -1
- package/dist/esm/erc721/mixin.js +6 -6
- package/dist/esm/erc721/mixin.js.map +1 -1
- package/dist/esm/exchanges/handler.js +12 -12
- package/dist/esm/exchanges/handler.js.map +1 -1
- package/dist/esm/exchanges/mixin.d.ts +3 -3
- package/dist/esm/exchanges/mixin.js +3 -3
- package/dist/esm/forwarder/handler.d.ts +1 -1
- package/dist/esm/forwarder/handler.d.ts.map +1 -1
- package/dist/esm/forwarder/handler.js +2 -4
- package/dist/esm/forwarder/handler.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-tx/biconomy.d.ts +17 -3
- package/dist/esm/meta-tx/biconomy.d.ts.map +1 -1
- package/dist/esm/meta-tx/biconomy.js +17 -0
- package/dist/esm/meta-tx/biconomy.js.map +1 -1
- package/dist/esm/meta-tx/handler.d.ts +38 -4
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +118 -21
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +25 -3
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +67 -17
- package/dist/esm/meta-tx/mixin.js.map +1 -1
- package/dist/esm/offers/handler.d.ts +15 -0
- package/dist/esm/offers/handler.d.ts.map +1 -1
- package/dist/esm/offers/handler.js +21 -3
- package/dist/esm/offers/handler.js.map +1 -1
- package/dist/esm/offers/interface.d.ts +1 -1
- package/dist/esm/offers/interface.d.ts.map +1 -1
- package/dist/esm/offers/interface.js +3 -2
- package/dist/esm/offers/interface.js.map +1 -1
- package/dist/esm/offers/mixin.d.ts +26 -3
- package/dist/esm/offers/mixin.d.ts.map +1 -1
- package/dist/esm/offers/mixin.js +42 -3
- package/dist/esm/offers/mixin.js.map +1 -1
- package/dist/esm/offers/renderContractualAgreement.d.ts.map +1 -1
- package/dist/esm/offers/renderContractualAgreement.js +5 -4
- package/dist/esm/offers/renderContractualAgreement.js.map +1 -1
- package/dist/esm/seaport/abi.d.ts +41 -0
- package/dist/esm/seaport/abi.d.ts.map +1 -0
- package/dist/esm/seaport/abi.js +150 -0
- package/dist/esm/seaport/abi.js.map +1 -0
- package/dist/esm/seaport/handler.d.ts +46 -0
- package/dist/esm/seaport/handler.d.ts.map +1 -0
- package/dist/esm/seaport/handler.js +24 -0
- package/dist/esm/seaport/handler.js.map +1 -0
- package/dist/esm/seaport/index.d.ts +2 -0
- package/dist/esm/seaport/index.d.ts.map +1 -0
- package/dist/esm/seaport/index.js +2 -0
- package/dist/esm/seaport/index.js.map +1 -0
- package/dist/esm/subgraph.d.ts +1451 -212
- package/dist/esm/subgraph.d.ts.map +1 -1
- package/dist/esm/subgraph.js +64 -8
- package/dist/esm/subgraph.js.map +1 -1
- package/dist/esm/voucher/handler.d.ts +31 -0
- package/dist/esm/voucher/handler.d.ts.map +1 -1
- package/dist/esm/voucher/handler.js +39 -1
- package/dist/esm/voucher/handler.js.map +1 -1
- package/dist/esm/voucher/interface.d.ts +8 -0
- package/dist/esm/voucher/interface.d.ts.map +1 -1
- package/dist/esm/voucher/interface.js +72 -0
- package/dist/esm/voucher/interface.js.map +1 -1
- package/dist/esm/voucher/mixin.d.ts +11 -0
- package/dist/esm/voucher/mixin.d.ts.map +1 -1
- package/dist/esm/voucher/mixin.js +41 -0
- package/dist/esm/voucher/mixin.js.map +1 -1
- package/package.json +3 -3
- package/src/accounts/interface.ts +1 -1
- package/src/accounts/mixin.ts +15 -14
- package/src/accounts/queries.graphql +4 -4
- package/src/accounts/subgraph.ts +6 -6
- package/src/accounts/types.ts +1 -1
- package/src/core-sdk.ts +4 -0
- package/src/erc1155/mixin.ts +2 -2
- package/src/erc20/mixin.ts +14 -14
- package/src/erc721/mixin.ts +6 -6
- package/src/exchanges/handler.ts +13 -13
- package/src/exchanges/mixin.ts +3 -3
- package/src/forwarder/handler.ts +3 -5
- package/src/index.ts +1 -0
- package/src/meta-tx/biconomy.ts +35 -2
- package/src/meta-tx/handler.ts +202 -31
- package/src/meta-tx/mixin.ts +135 -21
- package/src/metadata/base.graphql +3 -0
- package/src/metadata/product-v1.graphql +12 -0
- package/src/offers/handler.ts +36 -3
- package/src/offers/interface.ts +4 -2
- package/src/offers/mixin.ts +57 -2
- package/src/offers/queries.graphql +13 -0
- package/src/offers/renderContractualAgreement.ts +6 -9
- package/src/seaport/abi.ts +149 -0
- package/src/seaport/handler.ts +57 -0
- package/src/seaport/index.ts +1 -0
- package/src/subgraph.ts +1501 -216
- package/src/voucher/handler.ts +78 -1
- package/src/voucher/interface.ts +88 -0
- package/src/voucher/mixin.ts +76 -0
package/src/offers/handler.ts
CHANGED
|
@@ -73,6 +73,7 @@ export async function reserveRange(args: {
|
|
|
73
73
|
subgraphUrl: string;
|
|
74
74
|
offerId: BigNumberish;
|
|
75
75
|
length: BigNumberish;
|
|
76
|
+
to: string;
|
|
76
77
|
web3Lib: Web3LibAdapter;
|
|
77
78
|
}): Promise<TransactionResponse> {
|
|
78
79
|
const offerFromSubgraph = await getOfferById(args.subgraphUrl, args.offerId);
|
|
@@ -87,7 +88,7 @@ export async function reserveRange(args: {
|
|
|
87
88
|
|
|
88
89
|
return args.web3Lib.sendTransaction({
|
|
89
90
|
to: args.contractAddress,
|
|
90
|
-
data: encodeReserveRange(args.offerId, args.length)
|
|
91
|
+
data: encodeReserveRange(args.offerId, args.length, args.to)
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
|
|
@@ -145,6 +146,38 @@ export async function voidOfferBatch(args: {
|
|
|
145
146
|
});
|
|
146
147
|
}
|
|
147
148
|
|
|
149
|
+
export async function extendOffer(args: {
|
|
150
|
+
contractAddress: string;
|
|
151
|
+
subgraphUrl: string;
|
|
152
|
+
offerId: BigNumberish;
|
|
153
|
+
validUntil: BigNumberish;
|
|
154
|
+
web3Lib: Web3LibAdapter;
|
|
155
|
+
}): Promise<TransactionResponse> {
|
|
156
|
+
return args.web3Lib.sendTransaction({
|
|
157
|
+
to: args.contractAddress,
|
|
158
|
+
data: bosonOfferHandlerIface.encodeFunctionData("extendOffer", [
|
|
159
|
+
args.offerId,
|
|
160
|
+
args.validUntil
|
|
161
|
+
])
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export async function extendOfferBatch(args: {
|
|
166
|
+
contractAddress: string;
|
|
167
|
+
subgraphUrl: string;
|
|
168
|
+
offerIds: BigNumberish[];
|
|
169
|
+
validUntil: BigNumberish;
|
|
170
|
+
web3Lib: Web3LibAdapter;
|
|
171
|
+
}): Promise<TransactionResponse> {
|
|
172
|
+
return args.web3Lib.sendTransaction({
|
|
173
|
+
to: args.contractAddress,
|
|
174
|
+
data: bosonOfferHandlerIface.encodeFunctionData("extendOfferBatch", [
|
|
175
|
+
args.offerIds,
|
|
176
|
+
args.validUntil
|
|
177
|
+
])
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
148
181
|
function checkIfOfferVoidable(
|
|
149
182
|
offerId: BigNumberish,
|
|
150
183
|
signerAddress: string,
|
|
@@ -159,11 +192,11 @@ function checkIfOfferVoidable(
|
|
|
159
192
|
}
|
|
160
193
|
|
|
161
194
|
if (
|
|
162
|
-
offerFromSubgraph.seller.
|
|
195
|
+
offerFromSubgraph.seller.assistant.toLowerCase() !==
|
|
163
196
|
signerAddress.toLowerCase()
|
|
164
197
|
) {
|
|
165
198
|
throw new Error(
|
|
166
|
-
`Signer with address "${signerAddress}" is not the
|
|
199
|
+
`Signer with address "${signerAddress}" is not the assistant "${offerFromSubgraph.seller.assistant}" of offer with id "${offerId}"`
|
|
167
200
|
);
|
|
168
201
|
}
|
|
169
202
|
}
|
package/src/offers/interface.ts
CHANGED
|
@@ -132,10 +132,12 @@ export function argsToOfferDurationsStruct(
|
|
|
132
132
|
|
|
133
133
|
export function encodeReserveRange(
|
|
134
134
|
offerId: BigNumberish,
|
|
135
|
-
length: BigNumberish
|
|
135
|
+
length: BigNumberish,
|
|
136
|
+
to: string
|
|
136
137
|
) {
|
|
137
138
|
return bosonOfferHandlerIface.encodeFunctionData("reserveRange", [
|
|
138
139
|
offerId,
|
|
139
|
-
length
|
|
140
|
+
length,
|
|
141
|
+
to
|
|
140
142
|
]);
|
|
141
143
|
}
|
package/src/offers/mixin.ts
CHANGED
|
@@ -146,7 +146,7 @@ export class OfferMixin extends BaseCoreSDK {
|
|
|
146
146
|
|
|
147
147
|
/**
|
|
148
148
|
* Voids an existing offer by calling the `OfferHandlerFacet` contract.
|
|
149
|
-
* This transaction only succeeds if the connected signer is the `
|
|
149
|
+
* This transaction only succeeds if the connected signer is the `assistant`.
|
|
150
150
|
* @param offerId - ID of offer to void.
|
|
151
151
|
* @param overrides - Optional overrides.
|
|
152
152
|
* @returns Transaction response.
|
|
@@ -167,7 +167,7 @@ export class OfferMixin extends BaseCoreSDK {
|
|
|
167
167
|
|
|
168
168
|
/**
|
|
169
169
|
* Voids a batch of existing offers by calling the `OfferHandlerFacet` contract.
|
|
170
|
-
* This transaction only succeeds if the connected signer is the `
|
|
170
|
+
* This transaction only succeeds if the connected signer is the `assistant` of all
|
|
171
171
|
* provided offers.
|
|
172
172
|
* @param offerIds - IDs of offers to void.
|
|
173
173
|
* @param overrides - Optional overrides.
|
|
@@ -187,6 +187,55 @@ export class OfferMixin extends BaseCoreSDK {
|
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
/**
|
|
191
|
+
* Extends an existing offer by calling the `OfferHandlerFacet` contract.
|
|
192
|
+
* This transaction only succeeds if the connected signer is the `assistant`.
|
|
193
|
+
* @param offerId - ID of offer to void.
|
|
194
|
+
* @param validUntil - new validity date.
|
|
195
|
+
* @param overrides - Optional overrides.
|
|
196
|
+
* @returns Transaction response.
|
|
197
|
+
*/
|
|
198
|
+
public async extendOffer(
|
|
199
|
+
offerId: BigNumberish,
|
|
200
|
+
validUntil: BigNumberish,
|
|
201
|
+
overrides: Partial<{
|
|
202
|
+
contractAddress: string;
|
|
203
|
+
}> = {}
|
|
204
|
+
): Promise<TransactionResponse> {
|
|
205
|
+
return offers.handler.extendOffer({
|
|
206
|
+
offerId,
|
|
207
|
+
validUntil,
|
|
208
|
+
web3Lib: this._web3Lib,
|
|
209
|
+
subgraphUrl: this._subgraphUrl,
|
|
210
|
+
contractAddress: overrides.contractAddress || this._protocolDiamond
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Extends a batch of existing offers by calling the `OfferHandlerFacet` contract.
|
|
216
|
+
* This transaction only succeeds if the connected signer is the `assistant` of all
|
|
217
|
+
* provided offers.
|
|
218
|
+
* @param offerIds - IDs of offers to void.
|
|
219
|
+
* @param validUntil - new validity date.
|
|
220
|
+
* @param overrides - Optional overrides.
|
|
221
|
+
* @returns Transaction response.
|
|
222
|
+
*/
|
|
223
|
+
public async extendOfferBatch(
|
|
224
|
+
offerIds: BigNumberish[],
|
|
225
|
+
validUntil: BigNumberish,
|
|
226
|
+
overrides: Partial<{
|
|
227
|
+
contractAddress: string;
|
|
228
|
+
}> = {}
|
|
229
|
+
): Promise<TransactionResponse> {
|
|
230
|
+
return offers.handler.extendOfferBatch({
|
|
231
|
+
offerIds,
|
|
232
|
+
validUntil,
|
|
233
|
+
web3Lib: this._web3Lib,
|
|
234
|
+
subgraphUrl: this._subgraphUrl,
|
|
235
|
+
contractAddress: overrides.contractAddress || this._protocolDiamond
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
190
239
|
/**
|
|
191
240
|
* Returns offer from subgraph.
|
|
192
241
|
* @param offerId - ID of offer.
|
|
@@ -255,13 +304,19 @@ export class OfferMixin extends BaseCoreSDK {
|
|
|
255
304
|
public async reserveRange(
|
|
256
305
|
offerId: BigNumberish,
|
|
257
306
|
length: BigNumberish,
|
|
307
|
+
to: "seller" | "contract",
|
|
258
308
|
overrides: Partial<{
|
|
259
309
|
contractAddress: string;
|
|
260
310
|
}> = {}
|
|
261
311
|
): Promise<TransactionResponse> {
|
|
312
|
+
const offer = await this.getOfferById(offerId);
|
|
262
313
|
return offers.handler.reserveRange({
|
|
263
314
|
offerId,
|
|
264
315
|
length,
|
|
316
|
+
to:
|
|
317
|
+
to === "contract"
|
|
318
|
+
? offer.seller.voucherCloneAddress
|
|
319
|
+
: offer.seller.assistant,
|
|
265
320
|
subgraphUrl: this._subgraphUrl,
|
|
266
321
|
contractAddress: overrides.contractAddress || this._protocolDiamond,
|
|
267
322
|
web3Lib: this._web3Lib
|
|
@@ -94,6 +94,9 @@ fragment BaseOfferFields on Offer {
|
|
|
94
94
|
description
|
|
95
95
|
externalUrl
|
|
96
96
|
animationUrl
|
|
97
|
+
animationMetadata {
|
|
98
|
+
...BaseAnimationMetadataFields
|
|
99
|
+
}
|
|
97
100
|
licenseUrl
|
|
98
101
|
condition
|
|
99
102
|
schemaUrl
|
|
@@ -128,4 +131,14 @@ fragment BaseOfferFields on Offer {
|
|
|
128
131
|
}
|
|
129
132
|
}
|
|
130
133
|
}
|
|
134
|
+
range {
|
|
135
|
+
...BaseRangeFields
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
fragment BaseRangeFields on RangeEntity {
|
|
140
|
+
id
|
|
141
|
+
start
|
|
142
|
+
end
|
|
143
|
+
owner
|
|
131
144
|
}
|
|
@@ -292,21 +292,18 @@ export async function renderContractualAgreementForOffer(
|
|
|
292
292
|
`Invalid Offer Metadata: Type is not supported: '${existingOfferData.metadata.type}'`
|
|
293
293
|
);
|
|
294
294
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
) {
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
296
|
+
if (!(existingOfferData.metadata as any).exchangePolicy) {
|
|
298
297
|
throw new Error(`Invalid Offer Metadata: exchangePolicy is not defined`);
|
|
299
298
|
}
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
.template
|
|
303
|
-
) {
|
|
299
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
300
|
+
if (!(existingOfferData.metadata as any).exchangePolicy.template) {
|
|
304
301
|
throw new Error(
|
|
305
302
|
`Invalid Offer Metadata: exchangePolicy.template is not defined`
|
|
306
303
|
);
|
|
307
304
|
}
|
|
308
|
-
|
|
309
|
-
|
|
305
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
306
|
+
const template = (existingOfferData.metadata as any).exchangePolicy.template;
|
|
310
307
|
const convertedOfferArgs = convertExistingOfferData(existingOfferData);
|
|
311
308
|
return renderContractualAgreement(
|
|
312
309
|
template,
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
export const seaportAbi = [
|
|
2
|
+
{
|
|
3
|
+
inputs: [
|
|
4
|
+
{
|
|
5
|
+
components: [
|
|
6
|
+
{
|
|
7
|
+
components: [
|
|
8
|
+
{
|
|
9
|
+
internalType: "address",
|
|
10
|
+
name: "offerer",
|
|
11
|
+
type: "address"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
internalType: "address",
|
|
15
|
+
name: "zone",
|
|
16
|
+
type: "address"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
components: [
|
|
20
|
+
{
|
|
21
|
+
internalType: "enum ItemType",
|
|
22
|
+
name: "itemType",
|
|
23
|
+
type: "uint8"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
internalType: "address",
|
|
27
|
+
name: "token",
|
|
28
|
+
type: "address"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
internalType: "uint256",
|
|
32
|
+
name: "identifierOrCriteria",
|
|
33
|
+
type: "uint256"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
internalType: "uint256",
|
|
37
|
+
name: "startAmount",
|
|
38
|
+
type: "uint256"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
internalType: "uint256",
|
|
42
|
+
name: "endAmount",
|
|
43
|
+
type: "uint256"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
internalType: "struct OfferItem[]",
|
|
47
|
+
name: "offer",
|
|
48
|
+
type: "tuple[]"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
components: [
|
|
52
|
+
{
|
|
53
|
+
internalType: "enum ItemType",
|
|
54
|
+
name: "itemType",
|
|
55
|
+
type: "uint8"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
internalType: "address",
|
|
59
|
+
name: "token",
|
|
60
|
+
type: "address"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
internalType: "uint256",
|
|
64
|
+
name: "identifierOrCriteria",
|
|
65
|
+
type: "uint256"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
internalType: "uint256",
|
|
69
|
+
name: "startAmount",
|
|
70
|
+
type: "uint256"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
internalType: "uint256",
|
|
74
|
+
name: "endAmount",
|
|
75
|
+
type: "uint256"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
internalType: "address payable",
|
|
79
|
+
name: "recipient",
|
|
80
|
+
type: "address"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
internalType: "struct ConsiderationItem[]",
|
|
84
|
+
name: "consideration",
|
|
85
|
+
type: "tuple[]"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
internalType: "enum OrderType",
|
|
89
|
+
name: "orderType",
|
|
90
|
+
type: "uint8"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
internalType: "uint256",
|
|
94
|
+
name: "startTime",
|
|
95
|
+
type: "uint256"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
internalType: "uint256",
|
|
99
|
+
name: "endTime",
|
|
100
|
+
type: "uint256"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
internalType: "bytes32",
|
|
104
|
+
name: "zoneHash",
|
|
105
|
+
type: "bytes32"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
internalType: "uint256",
|
|
109
|
+
name: "salt",
|
|
110
|
+
type: "uint256"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
internalType: "bytes32",
|
|
114
|
+
name: "conduitKey",
|
|
115
|
+
type: "bytes32"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
internalType: "uint256",
|
|
119
|
+
name: "totalOriginalConsiderationItems",
|
|
120
|
+
type: "uint256"
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
internalType: "struct OrderParameters",
|
|
124
|
+
name: "parameters",
|
|
125
|
+
type: "tuple"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
internalType: "bytes",
|
|
129
|
+
name: "signature",
|
|
130
|
+
type: "bytes"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
internalType: "struct Order[]",
|
|
134
|
+
name: "",
|
|
135
|
+
type: "tuple[]"
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
name: "validate",
|
|
139
|
+
outputs: [
|
|
140
|
+
{
|
|
141
|
+
internalType: "bool",
|
|
142
|
+
name: "",
|
|
143
|
+
type: "bool"
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
stateMutability: "nonpayable",
|
|
147
|
+
type: "function"
|
|
148
|
+
}
|
|
149
|
+
];
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
2
|
+
import { Interface } from "@ethersproject/abi";
|
|
3
|
+
import { seaportAbi } from "./abi";
|
|
4
|
+
|
|
5
|
+
const seaportIface = new Interface(seaportAbi);
|
|
6
|
+
|
|
7
|
+
export enum eOrderType {
|
|
8
|
+
FULL_OPEN = 0,
|
|
9
|
+
PARTIAL_OPEN = 1,
|
|
10
|
+
FULL_RESTRICTED = 2,
|
|
11
|
+
PARTIAL_RESTRICTED = 3,
|
|
12
|
+
CONTRACT = 4
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum eItemType {
|
|
16
|
+
NATIVE = 0,
|
|
17
|
+
ERC20 = 1,
|
|
18
|
+
ERC721 = 2,
|
|
19
|
+
ERC1155 = 3,
|
|
20
|
+
ERC721_WITH_CRITERIA = 4,
|
|
21
|
+
ERC1155_WITH_CRITERIA = 5
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type OfferItem = {
|
|
25
|
+
itemType: eItemType;
|
|
26
|
+
token: string;
|
|
27
|
+
identifierOrCriteria: BigNumberish;
|
|
28
|
+
startAmount: BigNumberish;
|
|
29
|
+
endAmount: BigNumberish;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
type ConsiderationItem = OfferItem & {
|
|
33
|
+
recipient: string;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
type OrderParameters = {
|
|
37
|
+
offerer: string;
|
|
38
|
+
zone: string;
|
|
39
|
+
offer: OfferItem[];
|
|
40
|
+
consideration: ConsiderationItem[];
|
|
41
|
+
orderType: eOrderType;
|
|
42
|
+
startTime: BigNumberish;
|
|
43
|
+
endTime: BigNumberish;
|
|
44
|
+
zoneHash: string;
|
|
45
|
+
salt: BigNumberish;
|
|
46
|
+
conduitKey: string;
|
|
47
|
+
totalOriginalConsiderationItems: BigNumberish;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type Order = {
|
|
51
|
+
parameters: OrderParameters;
|
|
52
|
+
signature: string;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export function encodeValidate(orders: Order[]) {
|
|
56
|
+
return seaportIface.encodeFunctionData("validate", [orders]);
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * as handler from "./handler";
|