@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.
- 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/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/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/handler.d.ts +17 -0
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +30 -2
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +11 -1
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +44 -1
- package/dist/cjs/meta-tx/mixin.js.map +1 -1
- package/dist/cjs/offers/handler.d.ts +1 -0
- package/dist/cjs/offers/handler.d.ts.map +1 -1
- package/dist/cjs/offers/handler.js +3 -3
- 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 +5 -5
- package/dist/cjs/offers/mixin.d.ts.map +1 -1
- package/dist/cjs/offers/mixin.js +9 -5
- package/dist/cjs/offers/mixin.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 +211 -211
- package/dist/cjs/subgraph.d.ts.map +1 -1
- package/dist/cjs/subgraph.js +8 -8
- package/dist/cjs/subgraph.js.map +1 -1
- package/dist/cjs/voucher/handler.d.ts +17 -0
- package/dist/cjs/voucher/handler.d.ts.map +1 -1
- package/dist/cjs/voucher/handler.js +28 -1
- package/dist/cjs/voucher/handler.js.map +1 -1
- package/dist/cjs/voucher/interface.d.ts +3 -0
- package/dist/cjs/voucher/interface.d.ts.map +1 -1
- package/dist/cjs/voucher/interface.js +21 -1
- package/dist/cjs/voucher/interface.js.map +1 -1
- package/dist/cjs/voucher/mixin.d.ts +8 -0
- package/dist/cjs/voucher/mixin.d.ts.map +1 -1
- package/dist/cjs/voucher/mixin.js +36 -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/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/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/handler.d.ts +17 -0
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +37 -3
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +11 -1
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +55 -1
- package/dist/esm/meta-tx/mixin.js.map +1 -1
- package/dist/esm/offers/handler.d.ts +1 -0
- package/dist/esm/offers/handler.d.ts.map +1 -1
- package/dist/esm/offers/handler.js +3 -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 +5 -5
- package/dist/esm/offers/mixin.d.ts.map +1 -1
- package/dist/esm/offers/mixin.js +9 -5
- package/dist/esm/offers/mixin.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 +211 -211
- package/dist/esm/subgraph.d.ts.map +1 -1
- package/dist/esm/subgraph.js +8 -8
- package/dist/esm/subgraph.js.map +1 -1
- package/dist/esm/voucher/handler.d.ts +17 -0
- package/dist/esm/voucher/handler.d.ts.map +1 -1
- package/dist/esm/voucher/handler.js +19 -1
- package/dist/esm/voucher/handler.js.map +1 -1
- package/dist/esm/voucher/interface.d.ts +3 -0
- package/dist/esm/voucher/interface.d.ts.map +1 -1
- package/dist/esm/voucher/interface.js +17 -0
- package/dist/esm/voucher/interface.js.map +1 -1
- package/dist/esm/voucher/mixin.d.ts +8 -0
- package/dist/esm/voucher/mixin.d.ts.map +1 -1
- package/dist/esm/voucher/mixin.js +32 -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/exchanges/handler.ts +13 -13
- package/src/exchanges/mixin.ts +3 -3
- package/src/index.ts +1 -0
- package/src/meta-tx/handler.ts +76 -3
- package/src/meta-tx/mixin.ts +105 -3
- package/src/offers/handler.ts +4 -3
- package/src/offers/interface.ts +4 -2
- package/src/offers/mixin.ts +10 -4
- 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 +215 -215
- package/src/voucher/handler.ts +39 -1
- package/src/voucher/interface.ts +23 -0
- package/src/voucher/mixin.ts +58 -0
package/src/voucher/handler.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
+
}
|
package/src/voucher/interface.ts
CHANGED
|
@@ -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
|
+
}
|
package/src/voucher/mixin.ts
CHANGED
|
@@ -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
|
}
|