@bosonprotocol/core-sdk 1.24.0 → 1.24.1-alpha.0
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/handler.d.ts +0 -5
- package/dist/cjs/accounts/handler.d.ts.map +1 -1
- package/dist/cjs/accounts/handler.js +1 -10
- package/dist/cjs/accounts/handler.js.map +1 -1
- package/dist/cjs/accounts/interface.d.ts +0 -1
- package/dist/cjs/accounts/interface.d.ts.map +1 -1
- package/dist/cjs/accounts/interface.js +1 -5
- package/dist/cjs/accounts/interface.js.map +1 -1
- package/dist/cjs/accounts/mixin.d.ts +0 -7
- package/dist/cjs/accounts/mixin.d.ts.map +1 -1
- package/dist/cjs/accounts/mixin.js +0 -15
- package/dist/cjs/accounts/mixin.js.map +1 -1
- package/dist/cjs/core-sdk.d.ts +2 -1
- package/dist/cjs/core-sdk.d.ts.map +1 -1
- package/dist/cjs/core-sdk.js +3 -1
- package/dist/cjs/core-sdk.js.map +1 -1
- package/dist/cjs/erc721/handler.d.ts.map +1 -1
- package/dist/cjs/erc721/handler.js +2 -1
- package/dist/cjs/erc721/handler.js.map +1 -1
- package/dist/cjs/meta-tx/handler.d.ts +8 -0
- package/dist/cjs/meta-tx/handler.d.ts.map +1 -1
- package/dist/cjs/meta-tx/handler.js +14 -1
- package/dist/cjs/meta-tx/handler.js.map +1 -1
- package/dist/cjs/meta-tx/mixin.d.ts +2 -0
- package/dist/cjs/meta-tx/mixin.d.ts.map +1 -1
- package/dist/cjs/meta-tx/mixin.js +12 -0
- package/dist/cjs/meta-tx/mixin.js.map +1 -1
- package/dist/cjs/offers/handler.d.ts +7 -0
- package/dist/cjs/offers/handler.d.ts.map +1 -1
- package/dist/cjs/offers/handler.js +22 -1
- package/dist/cjs/offers/handler.js.map +1 -1
- package/dist/cjs/offers/interface.d.ts +1 -0
- package/dist/cjs/offers/interface.d.ts.map +1 -1
- package/dist/cjs/offers/interface.js +8 -1
- package/dist/cjs/offers/interface.js.map +1 -1
- package/dist/cjs/offers/mixin.d.ts +9 -0
- package/dist/cjs/offers/mixin.d.ts.map +1 -1
- package/dist/cjs/offers/mixin.js +17 -0
- package/dist/cjs/offers/mixin.js.map +1 -1
- package/dist/cjs/orchestration/handler.d.ts +45 -0
- package/dist/cjs/orchestration/handler.d.ts.map +1 -1
- package/dist/cjs/orchestration/handler.js +78 -1
- package/dist/cjs/orchestration/handler.js.map +1 -1
- package/dist/cjs/orchestration/interface.d.ts +6 -0
- package/dist/cjs/orchestration/interface.d.ts.map +1 -1
- package/dist/cjs/orchestration/interface.js +64 -1
- package/dist/cjs/orchestration/interface.js.map +1 -1
- package/dist/cjs/orchestration/mixin.d.ts +57 -0
- package/dist/cjs/orchestration/mixin.d.ts.map +1 -1
- package/dist/cjs/orchestration/mixin.js +105 -0
- package/dist/cjs/orchestration/mixin.js.map +1 -1
- package/dist/cjs/voucher/handler.d.ts +32 -0
- package/dist/cjs/voucher/handler.d.ts.map +1 -0
- package/dist/cjs/voucher/handler.js +69 -0
- package/dist/cjs/voucher/handler.js.map +1 -0
- package/dist/cjs/voucher/index.d.ts +3 -0
- package/dist/cjs/voucher/index.d.ts.map +1 -0
- package/dist/cjs/voucher/index.js +29 -0
- package/dist/cjs/voucher/index.js.map +1 -0
- package/dist/cjs/voucher/interface.d.ts +11 -0
- package/dist/cjs/voucher/interface.d.ts.map +1 -0
- package/dist/cjs/voucher/interface.js +43 -0
- package/dist/cjs/voucher/interface.js.map +1 -0
- package/dist/cjs/voucher/mixin.d.ts +53 -0
- package/dist/cjs/voucher/mixin.d.ts.map +1 -0
- package/dist/cjs/voucher/mixin.js +107 -0
- package/dist/cjs/voucher/mixin.js.map +1 -0
- package/dist/esm/accounts/handler.d.ts +0 -5
- package/dist/esm/accounts/handler.d.ts.map +1 -1
- package/dist/esm/accounts/handler.js +1 -7
- package/dist/esm/accounts/handler.js.map +1 -1
- package/dist/esm/accounts/interface.d.ts +0 -1
- package/dist/esm/accounts/interface.d.ts.map +1 -1
- package/dist/esm/accounts/interface.js +0 -3
- package/dist/esm/accounts/interface.js.map +1 -1
- package/dist/esm/accounts/mixin.d.ts +0 -7
- package/dist/esm/accounts/mixin.d.ts.map +1 -1
- package/dist/esm/accounts/mixin.js +0 -13
- package/dist/esm/accounts/mixin.js.map +1 -1
- package/dist/esm/core-sdk.d.ts +2 -1
- package/dist/esm/core-sdk.d.ts.map +1 -1
- package/dist/esm/core-sdk.js +3 -1
- package/dist/esm/core-sdk.js.map +1 -1
- package/dist/esm/erc721/handler.d.ts.map +1 -1
- package/dist/esm/erc721/handler.js +2 -1
- package/dist/esm/erc721/handler.js.map +1 -1
- package/dist/esm/meta-tx/handler.d.ts +8 -0
- package/dist/esm/meta-tx/handler.d.ts.map +1 -1
- package/dist/esm/meta-tx/handler.js +16 -1
- package/dist/esm/meta-tx/handler.js.map +1 -1
- package/dist/esm/meta-tx/mixin.d.ts +2 -0
- package/dist/esm/meta-tx/mixin.d.ts.map +1 -1
- package/dist/esm/meta-tx/mixin.js +18 -0
- package/dist/esm/meta-tx/mixin.js.map +1 -1
- package/dist/esm/offers/handler.d.ts +7 -0
- package/dist/esm/offers/handler.d.ts.map +1 -1
- package/dist/esm/offers/handler.js +19 -1
- package/dist/esm/offers/handler.js.map +1 -1
- package/dist/esm/offers/interface.d.ts +1 -0
- package/dist/esm/offers/interface.d.ts.map +1 -1
- package/dist/esm/offers/interface.js +6 -0
- package/dist/esm/offers/interface.js.map +1 -1
- package/dist/esm/offers/mixin.d.ts +9 -0
- package/dist/esm/offers/mixin.d.ts.map +1 -1
- package/dist/esm/offers/mixin.js +15 -0
- package/dist/esm/offers/mixin.js.map +1 -1
- package/dist/esm/orchestration/handler.d.ts +45 -0
- package/dist/esm/orchestration/handler.d.ts.map +1 -1
- package/dist/esm/orchestration/handler.js +63 -1
- package/dist/esm/orchestration/handler.js.map +1 -1
- package/dist/esm/orchestration/interface.d.ts +6 -0
- package/dist/esm/orchestration/interface.d.ts.map +1 -1
- package/dist/esm/orchestration/interface.js +58 -0
- package/dist/esm/orchestration/interface.js.map +1 -1
- package/dist/esm/orchestration/mixin.d.ts +57 -0
- package/dist/esm/orchestration/mixin.d.ts.map +1 -1
- package/dist/esm/orchestration/mixin.js +95 -0
- package/dist/esm/orchestration/mixin.js.map +1 -1
- package/dist/esm/voucher/handler.d.ts +32 -0
- package/dist/esm/voucher/handler.d.ts.map +1 -0
- package/dist/esm/voucher/handler.js +42 -0
- package/dist/esm/voucher/handler.js.map +1 -0
- package/dist/esm/voucher/index.d.ts +3 -0
- package/dist/esm/voucher/index.d.ts.map +1 -0
- package/dist/esm/voucher/index.js +3 -0
- package/dist/esm/voucher/index.js.map +1 -0
- package/dist/esm/voucher/interface.d.ts +11 -0
- package/dist/esm/voucher/interface.d.ts.map +1 -0
- package/dist/esm/voucher/interface.js +33 -0
- package/dist/esm/voucher/interface.js.map +1 -0
- package/dist/esm/voucher/mixin.d.ts +53 -0
- package/dist/esm/voucher/mixin.d.ts.map +1 -0
- package/dist/esm/voucher/mixin.js +84 -0
- package/dist/esm/voucher/mixin.js.map +1 -0
- package/package.json +3 -3
- package/src/accounts/handler.ts +0 -12
- package/src/accounts/interface.ts +0 -7
- package/src/accounts/mixin.ts +0 -16
- package/src/core-sdk.ts +5 -2
- package/src/erc721/handler.ts +3 -1
- package/src/meta-tx/handler.ts +29 -1
- package/src/meta-tx/mixin.ts +33 -0
- package/src/offers/handler.ts +42 -1
- package/src/offers/interface.ts +10 -0
- package/src/offers/mixin.ts +22 -0
- package/src/orchestration/handler.ts +138 -1
- package/src/orchestration/interface.ts +97 -0
- package/src/orchestration/mixin.ts +135 -0
- package/src/voucher/handler.ts +80 -0
- package/src/voucher/index.ts +2 -0
- package/src/voucher/interface.ts +45 -0
- package/src/voucher/mixin.ts +126 -0
|
@@ -5,6 +5,7 @@ import { createOfferArgsToStructs } from "../offers/interface";
|
|
|
5
5
|
|
|
6
6
|
import { CreateSellerArgs } from "../accounts/types";
|
|
7
7
|
import { CreateOfferArgs } from "../offers/types";
|
|
8
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
8
9
|
|
|
9
10
|
export const bosonOrchestrationHandlerIface = new Interface(
|
|
10
11
|
abis.IBosonOrchestrationHandlerABI
|
|
@@ -71,3 +72,99 @@ export function encodeCreateSellerAndOfferWithCondition(
|
|
|
71
72
|
]
|
|
72
73
|
);
|
|
73
74
|
}
|
|
75
|
+
|
|
76
|
+
export function encodeCreatePremintedOfferAddToGroup(
|
|
77
|
+
offer: CreateOfferArgs,
|
|
78
|
+
reservedRangeLength: BigNumberish,
|
|
79
|
+
groupId: BigNumberish
|
|
80
|
+
) {
|
|
81
|
+
const offerArgs = createOfferArgsToStructs(offer);
|
|
82
|
+
|
|
83
|
+
return bosonOrchestrationHandlerIface.encodeFunctionData(
|
|
84
|
+
"createPremintedOfferAddToGroup",
|
|
85
|
+
[
|
|
86
|
+
offerArgs[0], // offer
|
|
87
|
+
offerArgs[1], // offerDates
|
|
88
|
+
offerArgs[2], // offerDurations
|
|
89
|
+
offerArgs[3], // disputeResolverId
|
|
90
|
+
reservedRangeLength,
|
|
91
|
+
groupId,
|
|
92
|
+
offerArgs[4] // agentId
|
|
93
|
+
]
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function encodeCreatePremintedOfferWithCondition(
|
|
98
|
+
offer: CreateOfferArgs,
|
|
99
|
+
reservedRangeLength: BigNumberish,
|
|
100
|
+
condition: ConditionStruct
|
|
101
|
+
) {
|
|
102
|
+
const offerArgs = createOfferArgsToStructs(offer);
|
|
103
|
+
return bosonOrchestrationHandlerIface.encodeFunctionData(
|
|
104
|
+
"createPremintedOfferWithCondition",
|
|
105
|
+
[
|
|
106
|
+
offerArgs[0], // offer
|
|
107
|
+
offerArgs[1], // offerDates
|
|
108
|
+
offerArgs[2], // offerDurations
|
|
109
|
+
offerArgs[3], // disputeResolverId
|
|
110
|
+
reservedRangeLength,
|
|
111
|
+
condition,
|
|
112
|
+
offerArgs[4] // agentId
|
|
113
|
+
]
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function encodeCreateSellerAndPremintedOffer(
|
|
118
|
+
seller: CreateSellerArgs,
|
|
119
|
+
offer: CreateOfferArgs,
|
|
120
|
+
reservedRangeLength: BigNumberish
|
|
121
|
+
) {
|
|
122
|
+
const sellerArgs = createSellerArgsToStruct(seller);
|
|
123
|
+
const offerArgs = createOfferArgsToStructs(offer);
|
|
124
|
+
return bosonOrchestrationHandlerIface.encodeFunctionData(
|
|
125
|
+
"createSellerAndPremintedOffer",
|
|
126
|
+
[
|
|
127
|
+
sellerArgs.sellerStruct,
|
|
128
|
+
offerArgs[0], // offer
|
|
129
|
+
offerArgs[1], // offerDates
|
|
130
|
+
offerArgs[2], // offerDurations
|
|
131
|
+
offerArgs[3], // disputeResolverId
|
|
132
|
+
reservedRangeLength,
|
|
133
|
+
sellerArgs.authTokenStruct,
|
|
134
|
+
sellerArgs.voucherInitValues,
|
|
135
|
+
offerArgs[4] // agentId
|
|
136
|
+
]
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export function encodeCreateSellerAndPremintedOfferWithCondition(
|
|
141
|
+
seller: CreateSellerArgs,
|
|
142
|
+
offer: CreateOfferArgs,
|
|
143
|
+
reservedRangeLength: BigNumberish,
|
|
144
|
+
condition: ConditionStruct
|
|
145
|
+
) {
|
|
146
|
+
const sellerArgs = createSellerArgsToStruct(seller);
|
|
147
|
+
const offerArgs = createOfferArgsToStructs(offer);
|
|
148
|
+
return bosonOrchestrationHandlerIface.encodeFunctionData(
|
|
149
|
+
"createSellerAndPremintedOfferWithCondition",
|
|
150
|
+
[
|
|
151
|
+
sellerArgs.sellerStruct,
|
|
152
|
+
offerArgs[0], // offer
|
|
153
|
+
offerArgs[1], // offerDates
|
|
154
|
+
offerArgs[2], // offerDurations
|
|
155
|
+
offerArgs[3], // disputeResolverId
|
|
156
|
+
reservedRangeLength,
|
|
157
|
+
condition,
|
|
158
|
+
sellerArgs.authTokenStruct,
|
|
159
|
+
sellerArgs.voucherInitValues,
|
|
160
|
+
offerArgs[4] // agentId
|
|
161
|
+
]
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export function encodeRaiseAndEscalateDispute(exchangeId: BigNumberish) {
|
|
166
|
+
return bosonOrchestrationHandlerIface.encodeFunctionData(
|
|
167
|
+
"raiseAndEscalateDispute",
|
|
168
|
+
[exchangeId]
|
|
169
|
+
);
|
|
170
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ConditionStruct, TransactionResponse } from "@bosonprotocol/common";
|
|
2
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
2
3
|
import { handler } from ".";
|
|
3
4
|
import { offers, accounts } from "..";
|
|
4
5
|
import { BaseCoreSDK } from "./../mixins/base-core-sdk";
|
|
@@ -54,4 +55,138 @@ export class OrchestrationMixin extends BaseCoreSDK {
|
|
|
54
55
|
condition
|
|
55
56
|
});
|
|
56
57
|
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Creates a preminted offer and adds it to an existing group
|
|
61
|
+
* @param offerToCreate - Offer arguments.
|
|
62
|
+
* @param reservedRangeLength - Already reserved range length.
|
|
63
|
+
* @param groupId - Group ID the offer will be added to
|
|
64
|
+
* @param overrides - Optional overrides.
|
|
65
|
+
* @returns Transaction response.
|
|
66
|
+
*/
|
|
67
|
+
public async createPremintedOfferAddToGroup(
|
|
68
|
+
offerToCreate: offers.CreateOfferArgs,
|
|
69
|
+
reservedRangeLength: BigNumberish,
|
|
70
|
+
groupId: BigNumberish,
|
|
71
|
+
overrides: Partial<{
|
|
72
|
+
contractAddress: string;
|
|
73
|
+
}> = {}
|
|
74
|
+
): Promise<TransactionResponse> {
|
|
75
|
+
return handler.createPremintedOfferAddToGroup({
|
|
76
|
+
offerToCreate,
|
|
77
|
+
reservedRangeLength,
|
|
78
|
+
groupId,
|
|
79
|
+
contractAddress: overrides.contractAddress || this._protocolDiamond,
|
|
80
|
+
web3Lib: this._web3Lib,
|
|
81
|
+
metadataStorage: this._metadataStorage,
|
|
82
|
+
theGraphStorage: this._theGraphStorage
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Creates a seller account and preminted offer
|
|
88
|
+
* This transaction only succeeds if there is no existing seller account for the connected signer.
|
|
89
|
+
* @param sellerToCreate - Addresses to set in the seller account.
|
|
90
|
+
* @param offerToCreate - Offer arguments.
|
|
91
|
+
* @param condition - contract condition applied to the offer
|
|
92
|
+
* @param overrides - Optional overrides.
|
|
93
|
+
* @returns Transaction response.
|
|
94
|
+
*/
|
|
95
|
+
public async createSellerAndPremintedOffer(
|
|
96
|
+
sellerToCreate: accounts.CreateSellerArgs,
|
|
97
|
+
offerToCreate: offers.CreateOfferArgs,
|
|
98
|
+
reservedRangeLength: BigNumberish,
|
|
99
|
+
overrides: Partial<{
|
|
100
|
+
contractAddress: string;
|
|
101
|
+
}> = {}
|
|
102
|
+
): Promise<TransactionResponse> {
|
|
103
|
+
return handler.createSellerAndPremintedOffer({
|
|
104
|
+
sellerToCreate,
|
|
105
|
+
offerToCreate,
|
|
106
|
+
reservedRangeLength,
|
|
107
|
+
contractAddress: overrides.contractAddress || this._protocolDiamond,
|
|
108
|
+
web3Lib: this._web3Lib,
|
|
109
|
+
metadataStorage: this._metadataStorage,
|
|
110
|
+
theGraphStorage: this._theGraphStorage
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Creates a preminted offer and adds it to an existing group
|
|
116
|
+
* @param offerToCreate - Offer arguments.
|
|
117
|
+
* @param reservedRangeLength - Already reserved range length.
|
|
118
|
+
* @param groupId - Group ID the offer will be added to
|
|
119
|
+
* @param overrides - Optional overrides.
|
|
120
|
+
* @returns Transaction response.
|
|
121
|
+
*/
|
|
122
|
+
public async createPremintedOfferWithCondition(
|
|
123
|
+
offerToCreate: offers.CreateOfferArgs,
|
|
124
|
+
reservedRangeLength: BigNumberish,
|
|
125
|
+
condition: ConditionStruct,
|
|
126
|
+
overrides: Partial<{
|
|
127
|
+
contractAddress: string;
|
|
128
|
+
}> = {}
|
|
129
|
+
): Promise<TransactionResponse> {
|
|
130
|
+
return handler.createPremintedOfferWithCondition({
|
|
131
|
+
offerToCreate,
|
|
132
|
+
reservedRangeLength,
|
|
133
|
+
condition,
|
|
134
|
+
contractAddress: overrides.contractAddress || this._protocolDiamond,
|
|
135
|
+
web3Lib: this._web3Lib,
|
|
136
|
+
metadataStorage: this._metadataStorage,
|
|
137
|
+
theGraphStorage: this._theGraphStorage
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Creates a seller account and preminted offer with a specific conditions
|
|
143
|
+
* This transaction only succeeds if there is no existing seller account for the connected signer.
|
|
144
|
+
* @param sellerToCreate - Addresses to set in the seller account.
|
|
145
|
+
* @param offerToCreate - Offer arguments.
|
|
146
|
+
* @param reservedRangeLength - Already reserved range length.
|
|
147
|
+
* @param condition - contract condition applied to the offer
|
|
148
|
+
* @param overrides - Optional overrides.
|
|
149
|
+
* @returns Transaction response.
|
|
150
|
+
*/
|
|
151
|
+
public async createSellerAndPremintedOfferWithCondition(
|
|
152
|
+
sellerToCreate: accounts.CreateSellerArgs,
|
|
153
|
+
offerToCreate: offers.CreateOfferArgs,
|
|
154
|
+
reservedRangeLength: BigNumberish,
|
|
155
|
+
condition: ConditionStruct,
|
|
156
|
+
overrides: Partial<{
|
|
157
|
+
contractAddress: string;
|
|
158
|
+
}> = {}
|
|
159
|
+
): Promise<TransactionResponse> {
|
|
160
|
+
return handler.createSellerAndPremintedOfferWithCondition({
|
|
161
|
+
sellerToCreate,
|
|
162
|
+
offerToCreate,
|
|
163
|
+
reservedRangeLength,
|
|
164
|
+
contractAddress: overrides.contractAddress || this._protocolDiamond,
|
|
165
|
+
web3Lib: this._web3Lib,
|
|
166
|
+
metadataStorage: this._metadataStorage,
|
|
167
|
+
theGraphStorage: this._theGraphStorage,
|
|
168
|
+
condition
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Raises a dispute and immediately escalates it
|
|
174
|
+
* @param exchangeId - Exchange ID
|
|
175
|
+
* @param overrides - Optional overrides.
|
|
176
|
+
* @returns Transaction response.
|
|
177
|
+
*/
|
|
178
|
+
public async raiseAndEscalateDispute(
|
|
179
|
+
exchangeId: BigNumberish,
|
|
180
|
+
overrides: Partial<{
|
|
181
|
+
contractAddress: string;
|
|
182
|
+
}> = {}
|
|
183
|
+
): Promise<TransactionResponse> {
|
|
184
|
+
return handler.raiseAndEscalateDispute({
|
|
185
|
+
exchangeId,
|
|
186
|
+
contractAddress: overrides.contractAddress || this._protocolDiamond,
|
|
187
|
+
web3Lib: this._web3Lib,
|
|
188
|
+
metadataStorage: this._metadataStorage,
|
|
189
|
+
theGraphStorage: this._theGraphStorage
|
|
190
|
+
});
|
|
191
|
+
}
|
|
57
192
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { TransactionResponse, Web3LibAdapter } from "@bosonprotocol/common";
|
|
2
|
+
import { Range } from "@bosonprotocol/common/src/types";
|
|
3
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
4
|
+
import {
|
|
5
|
+
decodeGetAvailablePreMints,
|
|
6
|
+
decodeGetRangeByOfferId,
|
|
7
|
+
encodeBurnPremintedVouchers,
|
|
8
|
+
encodeGetAvailablePreMints,
|
|
9
|
+
encodeGetRangeByOfferId,
|
|
10
|
+
encodePreMint,
|
|
11
|
+
encodeTransferFrom
|
|
12
|
+
} from "./interface";
|
|
13
|
+
|
|
14
|
+
export async function burnPremintedVouchers(args: {
|
|
15
|
+
offerId: BigNumberish;
|
|
16
|
+
contractAddress: string;
|
|
17
|
+
web3Lib: Web3LibAdapter;
|
|
18
|
+
}): Promise<TransactionResponse> {
|
|
19
|
+
return args.web3Lib.sendTransaction({
|
|
20
|
+
to: args.contractAddress,
|
|
21
|
+
data: encodeBurnPremintedVouchers(args.offerId)
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export async function getAvailablePreMints(args: {
|
|
26
|
+
offerId: BigNumberish;
|
|
27
|
+
contractAddress: string;
|
|
28
|
+
web3Lib: Web3LibAdapter;
|
|
29
|
+
}): Promise<string> {
|
|
30
|
+
const result = await args.web3Lib.call({
|
|
31
|
+
to: args.contractAddress,
|
|
32
|
+
data: encodeGetAvailablePreMints(args.offerId)
|
|
33
|
+
});
|
|
34
|
+
const [count] = decodeGetAvailablePreMints(result);
|
|
35
|
+
return String(count);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function getRangeByOfferId(args: {
|
|
39
|
+
offerId: BigNumberish;
|
|
40
|
+
contractAddress: string;
|
|
41
|
+
web3Lib: Web3LibAdapter;
|
|
42
|
+
}): Promise<Range> {
|
|
43
|
+
const result = await args.web3Lib.call({
|
|
44
|
+
to: args.contractAddress,
|
|
45
|
+
data: encodeGetRangeByOfferId(args.offerId)
|
|
46
|
+
});
|
|
47
|
+
const [range] = decodeGetRangeByOfferId(result);
|
|
48
|
+
return {
|
|
49
|
+
offerId: range.offerId,
|
|
50
|
+
start: range.start,
|
|
51
|
+
length: range._length,
|
|
52
|
+
minted: range.minted,
|
|
53
|
+
lastBurnedTokenId: range.lastBurnedTokenId
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export async function preMint(args: {
|
|
58
|
+
offerId: BigNumberish;
|
|
59
|
+
amount: BigNumberish;
|
|
60
|
+
contractAddress: string;
|
|
61
|
+
web3Lib: Web3LibAdapter;
|
|
62
|
+
}): Promise<TransactionResponse> {
|
|
63
|
+
return args.web3Lib.sendTransaction({
|
|
64
|
+
to: args.contractAddress,
|
|
65
|
+
data: encodePreMint(args.offerId, args.amount)
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export async function transferFrom(args: {
|
|
70
|
+
from: BigNumberish;
|
|
71
|
+
to: BigNumberish;
|
|
72
|
+
tokenId: BigNumberish;
|
|
73
|
+
contractAddress: string;
|
|
74
|
+
web3Lib: Web3LibAdapter;
|
|
75
|
+
}): Promise<TransactionResponse> {
|
|
76
|
+
return args.web3Lib.sendTransaction({
|
|
77
|
+
to: args.contractAddress,
|
|
78
|
+
data: encodeTransferFrom(args.from, args.to, args.tokenId)
|
|
79
|
+
});
|
|
80
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { abis } from "@bosonprotocol/common";
|
|
2
|
+
import { Interface } from "@ethersproject/abi";
|
|
3
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
4
|
+
|
|
5
|
+
export const bosonVoucherIface = new Interface(abis.IBosonVoucherABI);
|
|
6
|
+
|
|
7
|
+
export function encodeBurnPremintedVouchers(offerId: BigNumberish) {
|
|
8
|
+
return bosonVoucherIface.encodeFunctionData("burnPremintedVouchers", [
|
|
9
|
+
offerId
|
|
10
|
+
]);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function encodeGetAvailablePreMints(offerId: BigNumberish) {
|
|
14
|
+
return bosonVoucherIface.encodeFunctionData("getAvailablePreMints", [
|
|
15
|
+
offerId
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function decodeGetAvailablePreMints(result: string) {
|
|
20
|
+
return bosonVoucherIface.decodeFunctionResult("getAvailablePreMints", result);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function encodeGetRangeByOfferId(offerId: BigNumberish) {
|
|
24
|
+
return bosonVoucherIface.encodeFunctionData("getRangeByOfferId", [offerId]);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function decodeGetRangeByOfferId(result: string) {
|
|
28
|
+
return bosonVoucherIface.decodeFunctionResult("getRangeByOfferId", result);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function encodePreMint(offerId: BigNumberish, amount: BigNumberish) {
|
|
32
|
+
return bosonVoucherIface.encodeFunctionData("preMint", [offerId, amount]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function encodeTransferFrom(
|
|
36
|
+
from: BigNumberish,
|
|
37
|
+
to: BigNumberish,
|
|
38
|
+
tokenId: BigNumberish
|
|
39
|
+
) {
|
|
40
|
+
return bosonVoucherIface.encodeFunctionData("transferFrom", [
|
|
41
|
+
from,
|
|
42
|
+
to,
|
|
43
|
+
tokenId
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { TransactionResponse } from "@bosonprotocol/common";
|
|
2
|
+
import { Range } from "@bosonprotocol/common/src/types";
|
|
3
|
+
import { BigNumberish } from "@ethersproject/bignumber";
|
|
4
|
+
import { handler } from ".";
|
|
5
|
+
import { getOfferById } from "../offers/subgraph";
|
|
6
|
+
import { BaseCoreSDK } from "./../mixins/base-core-sdk";
|
|
7
|
+
|
|
8
|
+
export class VoucherMixin extends BaseCoreSDK {
|
|
9
|
+
/**
|
|
10
|
+
* Burns preminted vouchers from an offer
|
|
11
|
+
* @param offerId - Offer ID
|
|
12
|
+
* @param overrides - Optional overrides.
|
|
13
|
+
* @returns Transaction response.
|
|
14
|
+
*/
|
|
15
|
+
public async burnPremintedVouchers(
|
|
16
|
+
offerId: BigNumberish,
|
|
17
|
+
overrides: Partial<{
|
|
18
|
+
contractAddress: string;
|
|
19
|
+
}> = {}
|
|
20
|
+
): Promise<TransactionResponse> {
|
|
21
|
+
const offerFromSubgraph = await getOfferById(this._subgraphUrl, offerId);
|
|
22
|
+
return handler.burnPremintedVouchers({
|
|
23
|
+
offerId,
|
|
24
|
+
contractAddress:
|
|
25
|
+
overrides.contractAddress ||
|
|
26
|
+
offerFromSubgraph.seller.voucherCloneAddress,
|
|
27
|
+
web3Lib: this._web3Lib
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Gets the number of vouchers available to be pre-minted for an offer.
|
|
33
|
+
* @param offerId - Offer ID
|
|
34
|
+
* @param overrides - Optional overrides.
|
|
35
|
+
* @returns Transaction response.
|
|
36
|
+
*/
|
|
37
|
+
public async getAvailablePreMints(
|
|
38
|
+
offerId: BigNumberish,
|
|
39
|
+
overrides: Partial<{
|
|
40
|
+
contractAddress: string;
|
|
41
|
+
}> = {}
|
|
42
|
+
): Promise<string> {
|
|
43
|
+
const offerFromSubgraph = await getOfferById(this._subgraphUrl, offerId);
|
|
44
|
+
return handler.getAvailablePreMints({
|
|
45
|
+
offerId,
|
|
46
|
+
contractAddress:
|
|
47
|
+
overrides.contractAddress ||
|
|
48
|
+
offerFromSubgraph.seller.voucherCloneAddress,
|
|
49
|
+
web3Lib: this._web3Lib
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Gets the range for an offer.
|
|
55
|
+
* @param offerId - Offer ID
|
|
56
|
+
* @param overrides - Optional overrides.
|
|
57
|
+
* @returns Transaction response.
|
|
58
|
+
*/
|
|
59
|
+
public async getRangeByOfferId(
|
|
60
|
+
offerId: BigNumberish,
|
|
61
|
+
overrides: Partial<{
|
|
62
|
+
contractAddress: string;
|
|
63
|
+
}> = {}
|
|
64
|
+
): Promise<Range> {
|
|
65
|
+
const offerFromSubgraph = await getOfferById(this._subgraphUrl, offerId);
|
|
66
|
+
return handler.getRangeByOfferId({
|
|
67
|
+
offerId,
|
|
68
|
+
contractAddress:
|
|
69
|
+
overrides.contractAddress ||
|
|
70
|
+
offerFromSubgraph.seller.voucherCloneAddress,
|
|
71
|
+
web3Lib: this._web3Lib
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Pre-mints all or part of an offer's reserved vouchers.
|
|
77
|
+
* @param offerId - Offer ID
|
|
78
|
+
* @param overrides - Optional overrides.
|
|
79
|
+
* @returns Transaction response.
|
|
80
|
+
*/
|
|
81
|
+
public async preMint(
|
|
82
|
+
offerId: BigNumberish,
|
|
83
|
+
amount: BigNumberish,
|
|
84
|
+
overrides: Partial<{
|
|
85
|
+
contractAddress: string;
|
|
86
|
+
}> = {}
|
|
87
|
+
): Promise<TransactionResponse> {
|
|
88
|
+
const offerFromSubgraph = await getOfferById(this._subgraphUrl, offerId);
|
|
89
|
+
return handler.preMint({
|
|
90
|
+
offerId,
|
|
91
|
+
amount,
|
|
92
|
+
contractAddress:
|
|
93
|
+
overrides.contractAddress ||
|
|
94
|
+
offerFromSubgraph.seller.voucherCloneAddress,
|
|
95
|
+
web3Lib: this._web3Lib
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Pre-mints all or part of an offer's reserved vouchers.
|
|
101
|
+
* @param offerId - Offer ID
|
|
102
|
+
* @param overrides - Optional overrides.
|
|
103
|
+
* @returns Transaction response.
|
|
104
|
+
*/
|
|
105
|
+
public async transferFrom(
|
|
106
|
+
offerId: BigNumberish,
|
|
107
|
+
to: BigNumberish,
|
|
108
|
+
tokenId: BigNumberish,
|
|
109
|
+
overrides: Partial<{
|
|
110
|
+
owner: BigNumberish;
|
|
111
|
+
contractAddress: string;
|
|
112
|
+
}> = {}
|
|
113
|
+
): Promise<TransactionResponse> {
|
|
114
|
+
const offerFromSubgraph = await getOfferById(this._subgraphUrl, offerId);
|
|
115
|
+
|
|
116
|
+
return handler.transferFrom({
|
|
117
|
+
from: overrides.owner || (await this._web3Lib.getSignerAddress()),
|
|
118
|
+
to,
|
|
119
|
+
tokenId,
|
|
120
|
+
contractAddress:
|
|
121
|
+
overrides.contractAddress ||
|
|
122
|
+
offerFromSubgraph.seller.voucherCloneAddress,
|
|
123
|
+
web3Lib: this._web3Lib
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|