@opensea/seaport-js 1.0.1-beta.0 → 1.0.3
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/LICENSE +7 -0
- package/README.md +141 -5
- package/lib/abi/ERC1155.d.ts +29 -29
- package/lib/abi/ERC1155.js +319 -0
- package/lib/abi/ERC1155.js.map +1 -0
- package/lib/abi/ERC20.d.ts +29 -29
- package/lib/abi/ERC20.js +317 -0
- package/lib/abi/ERC20.js.map +1 -0
- package/lib/abi/ERC721.d.ts +29 -29
- package/lib/abi/ERC721.js +337 -0
- package/lib/abi/ERC721.js.map +1 -0
- package/lib/abi/Seaport.d.ts +112 -112
- package/lib/abi/Seaport.js +2585 -0
- package/lib/abi/Seaport.js.map +1 -0
- package/lib/constants.d.ts +53 -49
- package/lib/constants.js +78 -0
- package/lib/constants.js.map +1 -0
- package/lib/index.d.ts +2 -2
- package/lib/index.js +6 -2
- package/lib/index.js.map +1 -1
- package/lib/seaport.d.ts +184 -181
- package/lib/seaport.js +732 -0
- package/lib/seaport.js.map +1 -0
- package/lib/typechain/ERC1155.d.ts +189 -0
- package/lib/typechain/ERC1155.js +3 -0
- package/lib/typechain/ERC1155.js.map +1 -0
- package/lib/typechain/ERC20.d.ts +209 -0
- package/lib/typechain/ERC20.js +3 -0
- package/lib/typechain/ERC20.js.map +1 -0
- package/lib/typechain/ERC721.d.ts +220 -0
- package/lib/typechain/ERC721.js +3 -0
- package/lib/typechain/ERC721.js.map +1 -0
- package/lib/typechain/Seaport.d.ts +686 -0
- package/lib/typechain/Seaport.js +3 -0
- package/lib/typechain/Seaport.js.map +1 -0
- package/lib/typechain/common.d.ts +21 -0
- package/lib/typechain/common.js +3 -0
- package/lib/typechain/common.js.map +1 -0
- package/lib/types.d.ts +221 -207
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/approval.d.ts +9 -9
- package/lib/utils/approval.js +108 -0
- package/lib/utils/approval.js.map +1 -0
- package/lib/utils/balance.d.ts +4 -4
- package/lib/utils/balance.js +86 -0
- package/lib/utils/balance.js.map +1 -0
- package/lib/utils/balanceAndApprovalCheck.d.ts +108 -108
- package/lib/utils/balanceAndApprovalCheck.js +322 -0
- package/lib/utils/balanceAndApprovalCheck.js.map +1 -0
- package/lib/utils/criteria.d.ts +14 -13
- package/lib/utils/criteria.js +91 -0
- package/lib/utils/criteria.js.map +1 -0
- package/lib/utils/fulfill.d.ts +84 -84
- package/lib/utils/fulfill.js +573 -0
- package/lib/utils/fulfill.js.map +1 -0
- package/lib/utils/gcd.d.ts +3 -3
- package/lib/utils/gcd.js +25 -0
- package/lib/utils/gcd.js.map +1 -0
- package/lib/utils/item.d.ts +29 -30
- package/lib/utils/item.js +136 -0
- package/lib/utils/item.js.map +1 -0
- package/lib/utils/match.d.ts +49 -49
- package/lib/utils/match.js +56 -0
- package/lib/utils/match.js.map +1 -0
- package/lib/utils/merkletree.d.ts +11 -11
- package/lib/utils/merkletree.js +32 -0
- package/lib/utils/merkletree.js.map +1 -0
- package/lib/utils/order.d.ts +37 -37
- package/lib/utils/order.js +224 -0
- package/lib/utils/order.js.map +1 -0
- package/lib/utils/usecase.d.ts +4 -4
- package/lib/utils/usecase.js +158 -0
- package/lib/utils/usecase.js.map +1 -0
- package/package.json +43 -43
- package/lib/index.esm.mjs +0 -2
- package/lib/index.esm.mjs.map +0 -1
- package/lib/index.modern.mjs +0 -2
- package/lib/index.modern.mjs.map +0 -1
- package/lib/index.umd.js +0 -2
- package/lib/index.umd.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanceAndApprovalCheck.js","sourceRoot":"","sources":["../../src/utils/balanceAndApprovalCheck.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/criteria.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { Side } from "../constants";
|
|
2
|
-
import { InputCriteria, Order } from "../types";
|
|
3
|
-
export declare const generateCriteriaResolvers: ({ orders, offerCriterias, considerationCriterias, }: {
|
|
4
|
-
orders: Order[];
|
|
5
|
-
offerCriterias?: InputCriteria[][] | undefined;
|
|
6
|
-
considerationCriterias?: InputCriteria[][] | undefined;
|
|
7
|
-
}) => {
|
|
8
|
-
orderIndex: number;
|
|
9
|
-
index: number;
|
|
10
|
-
side: Side;
|
|
11
|
-
identifier: string;
|
|
12
|
-
criteriaProof: string[];
|
|
13
|
-
}[];
|
|
1
|
+
import { Side } from "../constants";
|
|
2
|
+
import { InputCriteria, Item, Order } from "../types";
|
|
3
|
+
export declare const generateCriteriaResolvers: ({ orders, offerCriterias, considerationCriterias, }: {
|
|
4
|
+
orders: Order[];
|
|
5
|
+
offerCriterias?: InputCriteria[][] | undefined;
|
|
6
|
+
considerationCriterias?: InputCriteria[][] | undefined;
|
|
7
|
+
}) => {
|
|
8
|
+
orderIndex: number;
|
|
9
|
+
index: number;
|
|
10
|
+
side: Side;
|
|
11
|
+
identifier: string;
|
|
12
|
+
criteriaProof: string[];
|
|
13
|
+
}[];
|
|
14
|
+
export declare const getItemToCriteriaMap: (items: Item[], criterias: InputCriteria[]) => Map<Item, InputCriteria>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.getItemToCriteriaMap = exports.generateCriteriaResolvers = void 0;
|
|
29
|
+
var constants_1 = require("../constants");
|
|
30
|
+
var item_1 = require("./item");
|
|
31
|
+
var generateCriteriaResolvers = function (_a) {
|
|
32
|
+
var orders = _a.orders, _b = _a.offerCriterias, offerCriterias = _b === void 0 ? [[]] : _b, _c = _a.considerationCriterias, considerationCriterias = _c === void 0 ? [[]] : _c;
|
|
33
|
+
var offerCriteriaItems = orders.flatMap(function (order, orderIndex) {
|
|
34
|
+
return order.parameters.offer
|
|
35
|
+
.map(function (item, index) {
|
|
36
|
+
return ({
|
|
37
|
+
orderIndex: orderIndex,
|
|
38
|
+
item: item,
|
|
39
|
+
index: index,
|
|
40
|
+
side: constants_1.Side.OFFER,
|
|
41
|
+
});
|
|
42
|
+
})
|
|
43
|
+
.filter(function (_a) {
|
|
44
|
+
var item = _a.item;
|
|
45
|
+
return (0, item_1.isCriteriaItem)(item.itemType);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
var considerationCriteriaItems = orders.flatMap(function (order, orderIndex) {
|
|
49
|
+
return order.parameters.consideration
|
|
50
|
+
.map(function (item, index) {
|
|
51
|
+
return ({
|
|
52
|
+
orderIndex: orderIndex,
|
|
53
|
+
item: item,
|
|
54
|
+
index: index,
|
|
55
|
+
side: constants_1.Side.CONSIDERATION,
|
|
56
|
+
});
|
|
57
|
+
})
|
|
58
|
+
.filter(function (_a) {
|
|
59
|
+
var item = _a.item;
|
|
60
|
+
return (0, item_1.isCriteriaItem)(item.itemType);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
var mapCriteriaItemsToResolver = function (criteriaItems, criterias) {
|
|
64
|
+
return criteriaItems.map(function (_a, i) {
|
|
65
|
+
var orderIndex = _a.orderIndex, item = _a.item, index = _a.index, side = _a.side;
|
|
66
|
+
var merkleRoot = item.identifierOrCriteria || "0";
|
|
67
|
+
var inputCriteria = criterias[orderIndex][i];
|
|
68
|
+
return {
|
|
69
|
+
orderIndex: orderIndex,
|
|
70
|
+
index: index,
|
|
71
|
+
side: side,
|
|
72
|
+
identifier: inputCriteria.identifier,
|
|
73
|
+
criteriaProof: merkleRoot === "0" ? [] : inputCriteria.proof,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
var criteriaResolvers = __spreadArray(__spreadArray([], __read(mapCriteriaItemsToResolver(offerCriteriaItems, offerCriterias)), false), __read(mapCriteriaItemsToResolver(considerationCriteriaItems, considerationCriterias)), false);
|
|
78
|
+
return criteriaResolvers;
|
|
79
|
+
};
|
|
80
|
+
exports.generateCriteriaResolvers = generateCriteriaResolvers;
|
|
81
|
+
var getItemToCriteriaMap = function (items, criterias) {
|
|
82
|
+
var criteriasCopy = __spreadArray([], __read(criterias), false);
|
|
83
|
+
return items.reduce(function (map, item) {
|
|
84
|
+
if ((0, item_1.isCriteriaItem)(item.itemType)) {
|
|
85
|
+
map.set(item, criteriasCopy.shift());
|
|
86
|
+
}
|
|
87
|
+
return map;
|
|
88
|
+
}, new Map());
|
|
89
|
+
};
|
|
90
|
+
exports.getItemToCriteriaMap = getItemToCriteriaMap;
|
|
91
|
+
//# sourceMappingURL=criteria.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoC;AAEpC,+BAAwC;AAEjC,IAAM,yBAAyB,GAAG,UAAC,EAQzC;QAPC,MAAM,YAAA,EACN,sBAAqB,EAArB,cAAc,mBAAG,CAAC,EAAE,CAAC,KAAA,EACrB,8BAA6B,EAA7B,sBAAsB,mBAAG,CAAC,EAAE,CAAC,KAAA;IAM7B,IAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,UAAU;QAC1D,OAAA,KAAK,CAAC,UAAU,CAAC,KAAK;aACnB,GAAG,CACF,UAAC,IAAI,EAAE,KAAK;YACV,OAAA,CAAC;gBACC,UAAU,YAAA;gBACV,IAAI,MAAA;gBACJ,KAAK,OAAA;gBACL,IAAI,EAAE,gBAAI,CAAC,KAAK;aACP,CAAA;QALX,CAKW,CACd;aACA,MAAM,CAAC,UAAC,EAAQ;gBAAN,IAAI,UAAA;YAAO,OAAA,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC;QAA7B,CAA6B,CAAC;IAVtD,CAUsD,CACvD,CAAC;IAEF,IAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,UAAU;QAClE,OAAA,KAAK,CAAC,UAAU,CAAC,aAAa;aAC3B,GAAG,CACF,UAAC,IAAI,EAAE,KAAK;YACV,OAAA,CAAC;gBACC,UAAU,YAAA;gBACV,IAAI,MAAA;gBACJ,KAAK,OAAA;gBACL,IAAI,EAAE,gBAAI,CAAC,aAAa;aACf,CAAA;QALX,CAKW,CACd;aACA,MAAM,CAAC,UAAC,EAAQ;gBAAN,IAAI,UAAA;YAAO,OAAA,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC;QAA7B,CAA6B,CAAC;IAVtD,CAUsD,CACvD,CAAC;IAEF,IAAM,0BAA0B,GAAG,UACjC,aAEqC,EACrC,SAA4B;QAE5B,OAAA,aAAa,CAAC,GAAG,CAAC,UAAC,EAAiC,EAAE,CAAC;gBAAlC,UAAU,gBAAA,EAAE,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,IAAI,UAAA;YAChD,IAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC;YACpD,IAAM,aAAa,GAAkB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9D,OAAO;gBACL,UAAU,YAAA;gBACV,KAAK,OAAA;gBACL,IAAI,MAAA;gBACJ,UAAU,EAAE,aAAa,CAAC,UAAU;gBACpC,aAAa,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK;aAC7D,CAAC;QACJ,CAAC,CAAC;IAXF,CAWE,CAAC;IAEL,IAAM,iBAAiB,0CAClB,0BAA0B,CAAC,kBAAkB,EAAE,cAAc,CAAC,kBAC9D,0BAA0B,CAC3B,0BAA0B,EAC1B,sBAAsB,CACvB,SACF,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAjEW,QAAA,yBAAyB,6BAiEpC;AAEK,IAAM,oBAAoB,GAAG,UAClC,KAAa,EACb,SAA0B;IAE1B,IAAM,aAAa,4BAAO,SAAS,SAAC,CAAC;IAErC,OAAO,KAAK,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI;QAC5B,IAAI,IAAA,qBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACjC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAmB,CAAC,CAAC;SACvD;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAuB,CAAC,CAAC;AACrC,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B"}
|
package/lib/utils/fulfill.d.ts
CHANGED
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { BigNumber, BigNumberish,
|
|
2
|
-
import type { Seaport as SeaportContract, Seaport, FulfillmentComponentStruct } from "../typechain/Seaport";
|
|
3
|
-
import type { ConsiderationItem, ExchangeAction, InputCriteria, Order, OrderParameters, OrderStatus, OrderUseCase, ContractMethodReturnType } from "../types";
|
|
4
|
-
import { BalancesAndApprovals } from "./balanceAndApprovalCheck";
|
|
5
|
-
import { TimeBasedItemParams } from "./item";
|
|
6
|
-
/**
|
|
7
|
-
* We should use basic fulfill order if the order adheres to the following criteria:
|
|
8
|
-
* 1. The order should not be partially filled.
|
|
9
|
-
* 2. The order only contains a single offer item and contains at least one consideration item
|
|
10
|
-
* 3. The order does not offer an item with Ether (or other native tokens) as its item type.
|
|
11
|
-
* 4. The order only contains a single ERC721 or ERC1155 item and that item is not criteria-based
|
|
12
|
-
* 5. All other items have the same Native or ERC20 item type and token
|
|
13
|
-
* 6. All items have the same startAmount and endAmount
|
|
14
|
-
* 7. First consideration item must contain the offerer as the recipient
|
|
15
|
-
* 8. If the order has multiple consideration items and all consideration items other than the
|
|
16
|
-
* first consideration item have the same item type as the offered item, the offered item
|
|
17
|
-
* amount is not less than the sum of all consideration item amounts excluding the
|
|
18
|
-
* first consideration item amount
|
|
19
|
-
* 9. The token on native currency items needs to be set to the null address and the identifier on
|
|
20
|
-
* currencies needs to be zero, and the amounts on the 721 item need to be 1
|
|
21
|
-
*/
|
|
22
|
-
export declare const shouldUseBasicFulfill: ({ offer, consideration, offerer }: OrderParameters, totalFilled: OrderStatus["totalFilled"]) => boolean;
|
|
23
|
-
export declare function fulfillBasicOrder({ order, seaportContract, offererBalancesAndApprovals, fulfillerBalancesAndApprovals, timeBasedItemParams, offererOperator, fulfillerOperator, signer, tips, conduitKey, }: {
|
|
24
|
-
order: Order;
|
|
25
|
-
seaportContract: Seaport;
|
|
26
|
-
offererBalancesAndApprovals: BalancesAndApprovals;
|
|
27
|
-
fulfillerBalancesAndApprovals: BalancesAndApprovals;
|
|
28
|
-
timeBasedItemParams: TimeBasedItemParams;
|
|
29
|
-
offererOperator: string;
|
|
30
|
-
fulfillerOperator: string;
|
|
31
|
-
signer:
|
|
32
|
-
tips?: ConsiderationItem[];
|
|
33
|
-
conduitKey: string;
|
|
34
|
-
}): Promise<OrderUseCase<ExchangeAction<ContractMethodReturnType<SeaportContract, "fulfillBasicOrder">>>>;
|
|
35
|
-
export declare function fulfillStandardOrder({ order, unitsToFill, totalSize, totalFilled, offerCriteria, considerationCriteria, tips, extraData, seaportContract, offererBalancesAndApprovals, fulfillerBalancesAndApprovals, offererOperator, fulfillerOperator, timeBasedItemParams, conduitKey, recipientAddress, signer, }: {
|
|
36
|
-
order: Order;
|
|
37
|
-
unitsToFill?: BigNumberish;
|
|
38
|
-
totalFilled: BigNumber;
|
|
39
|
-
totalSize: BigNumber;
|
|
40
|
-
offerCriteria: InputCriteria[];
|
|
41
|
-
considerationCriteria: InputCriteria[];
|
|
42
|
-
tips?: ConsiderationItem[];
|
|
43
|
-
extraData?: string;
|
|
44
|
-
seaportContract: Seaport;
|
|
45
|
-
offererBalancesAndApprovals: BalancesAndApprovals;
|
|
46
|
-
fulfillerBalancesAndApprovals: BalancesAndApprovals;
|
|
47
|
-
offererOperator: string;
|
|
48
|
-
fulfillerOperator: string;
|
|
49
|
-
conduitKey: string;
|
|
50
|
-
recipientAddress: string;
|
|
51
|
-
timeBasedItemParams: TimeBasedItemParams;
|
|
52
|
-
signer:
|
|
53
|
-
}): Promise<OrderUseCase<ExchangeAction<ContractMethodReturnType<SeaportContract, "fulfillAdvancedOrder" | "fulfillOrder">>>>;
|
|
54
|
-
export declare function validateAndSanitizeFromOrderStatus(order: Order, orderStatus: OrderStatus): Order;
|
|
55
|
-
export declare type FulfillOrdersMetadata = {
|
|
56
|
-
order: Order;
|
|
57
|
-
unitsToFill?: BigNumberish;
|
|
58
|
-
orderStatus: OrderStatus;
|
|
59
|
-
offerCriteria: InputCriteria[];
|
|
60
|
-
considerationCriteria: InputCriteria[];
|
|
61
|
-
tips: ConsiderationItem[];
|
|
62
|
-
extraData: string;
|
|
63
|
-
offererBalancesAndApprovals: BalancesAndApprovals;
|
|
64
|
-
offererOperator: string;
|
|
65
|
-
}[];
|
|
66
|
-
export declare function fulfillAvailableOrders({ ordersMetadata, seaportContract, fulfillerBalancesAndApprovals, fulfillerOperator, currentBlockTimestamp, ascendingAmountTimestampBuffer, conduitKey, signer, recipientAddress, }: {
|
|
67
|
-
ordersMetadata: FulfillOrdersMetadata;
|
|
68
|
-
seaportContract: Seaport;
|
|
69
|
-
fulfillerBalancesAndApprovals: BalancesAndApprovals;
|
|
70
|
-
fulfillerOperator: string;
|
|
71
|
-
currentBlockTimestamp: number;
|
|
72
|
-
ascendingAmountTimestampBuffer: number;
|
|
73
|
-
conduitKey: string;
|
|
74
|
-
signer:
|
|
75
|
-
recipientAddress: string;
|
|
76
|
-
}): Promise<OrderUseCase<ExchangeAction<ContractMethodReturnType<SeaportContract, "fulfillAvailableAdvancedOrders">>>>;
|
|
77
|
-
export declare function generateFulfillOrdersFulfillments(ordersMetadata: FulfillOrdersMetadata): {
|
|
78
|
-
offerFulfillments: FulfillmentComponentStruct[];
|
|
79
|
-
considerationFulfillments: FulfillmentComponentStruct[];
|
|
80
|
-
};
|
|
81
|
-
export declare const getAdvancedOrderNumeratorDenominator: (order: Order, unitsToFill?: BigNumberish | undefined) => {
|
|
82
|
-
numerator: BigNumber;
|
|
83
|
-
denominator: BigNumber;
|
|
84
|
-
};
|
|
1
|
+
import { BigNumber, BigNumberish, Signer } from "ethers";
|
|
2
|
+
import type { Seaport as SeaportContract, Seaport, FulfillmentComponentStruct } from "../typechain/Seaport";
|
|
3
|
+
import type { ConsiderationItem, ExchangeAction, InputCriteria, Order, OrderParameters, OrderStatus, OrderUseCase, ContractMethodReturnType } from "../types";
|
|
4
|
+
import { BalancesAndApprovals } from "./balanceAndApprovalCheck";
|
|
5
|
+
import { TimeBasedItemParams } from "./item";
|
|
6
|
+
/**
|
|
7
|
+
* We should use basic fulfill order if the order adheres to the following criteria:
|
|
8
|
+
* 1. The order should not be partially filled.
|
|
9
|
+
* 2. The order only contains a single offer item and contains at least one consideration item
|
|
10
|
+
* 3. The order does not offer an item with Ether (or other native tokens) as its item type.
|
|
11
|
+
* 4. The order only contains a single ERC721 or ERC1155 item and that item is not criteria-based
|
|
12
|
+
* 5. All other items have the same Native or ERC20 item type and token
|
|
13
|
+
* 6. All items have the same startAmount and endAmount
|
|
14
|
+
* 7. First consideration item must contain the offerer as the recipient
|
|
15
|
+
* 8. If the order has multiple consideration items and all consideration items other than the
|
|
16
|
+
* first consideration item have the same item type as the offered item, the offered item
|
|
17
|
+
* amount is not less than the sum of all consideration item amounts excluding the
|
|
18
|
+
* first consideration item amount
|
|
19
|
+
* 9. The token on native currency items needs to be set to the null address and the identifier on
|
|
20
|
+
* currencies needs to be zero, and the amounts on the 721 item need to be 1
|
|
21
|
+
*/
|
|
22
|
+
export declare const shouldUseBasicFulfill: ({ offer, consideration, offerer }: OrderParameters, totalFilled: OrderStatus["totalFilled"]) => boolean;
|
|
23
|
+
export declare function fulfillBasicOrder({ order, seaportContract, offererBalancesAndApprovals, fulfillerBalancesAndApprovals, timeBasedItemParams, offererOperator, fulfillerOperator, signer, tips, conduitKey, }: {
|
|
24
|
+
order: Order;
|
|
25
|
+
seaportContract: Seaport;
|
|
26
|
+
offererBalancesAndApprovals: BalancesAndApprovals;
|
|
27
|
+
fulfillerBalancesAndApprovals: BalancesAndApprovals;
|
|
28
|
+
timeBasedItemParams: TimeBasedItemParams;
|
|
29
|
+
offererOperator: string;
|
|
30
|
+
fulfillerOperator: string;
|
|
31
|
+
signer: Signer;
|
|
32
|
+
tips?: ConsiderationItem[];
|
|
33
|
+
conduitKey: string;
|
|
34
|
+
}): Promise<OrderUseCase<ExchangeAction<ContractMethodReturnType<SeaportContract, "fulfillBasicOrder">>>>;
|
|
35
|
+
export declare function fulfillStandardOrder({ order, unitsToFill, totalSize, totalFilled, offerCriteria, considerationCriteria, tips, extraData, seaportContract, offererBalancesAndApprovals, fulfillerBalancesAndApprovals, offererOperator, fulfillerOperator, timeBasedItemParams, conduitKey, recipientAddress, signer, }: {
|
|
36
|
+
order: Order;
|
|
37
|
+
unitsToFill?: BigNumberish;
|
|
38
|
+
totalFilled: BigNumber;
|
|
39
|
+
totalSize: BigNumber;
|
|
40
|
+
offerCriteria: InputCriteria[];
|
|
41
|
+
considerationCriteria: InputCriteria[];
|
|
42
|
+
tips?: ConsiderationItem[];
|
|
43
|
+
extraData?: string;
|
|
44
|
+
seaportContract: Seaport;
|
|
45
|
+
offererBalancesAndApprovals: BalancesAndApprovals;
|
|
46
|
+
fulfillerBalancesAndApprovals: BalancesAndApprovals;
|
|
47
|
+
offererOperator: string;
|
|
48
|
+
fulfillerOperator: string;
|
|
49
|
+
conduitKey: string;
|
|
50
|
+
recipientAddress: string;
|
|
51
|
+
timeBasedItemParams: TimeBasedItemParams;
|
|
52
|
+
signer: Signer;
|
|
53
|
+
}): Promise<OrderUseCase<ExchangeAction<ContractMethodReturnType<SeaportContract, "fulfillAdvancedOrder" | "fulfillOrder">>>>;
|
|
54
|
+
export declare function validateAndSanitizeFromOrderStatus(order: Order, orderStatus: OrderStatus): Order;
|
|
55
|
+
export declare type FulfillOrdersMetadata = {
|
|
56
|
+
order: Order;
|
|
57
|
+
unitsToFill?: BigNumberish;
|
|
58
|
+
orderStatus: OrderStatus;
|
|
59
|
+
offerCriteria: InputCriteria[];
|
|
60
|
+
considerationCriteria: InputCriteria[];
|
|
61
|
+
tips: ConsiderationItem[];
|
|
62
|
+
extraData: string;
|
|
63
|
+
offererBalancesAndApprovals: BalancesAndApprovals;
|
|
64
|
+
offererOperator: string;
|
|
65
|
+
}[];
|
|
66
|
+
export declare function fulfillAvailableOrders({ ordersMetadata, seaportContract, fulfillerBalancesAndApprovals, fulfillerOperator, currentBlockTimestamp, ascendingAmountTimestampBuffer, conduitKey, signer, recipientAddress, }: {
|
|
67
|
+
ordersMetadata: FulfillOrdersMetadata;
|
|
68
|
+
seaportContract: Seaport;
|
|
69
|
+
fulfillerBalancesAndApprovals: BalancesAndApprovals;
|
|
70
|
+
fulfillerOperator: string;
|
|
71
|
+
currentBlockTimestamp: number;
|
|
72
|
+
ascendingAmountTimestampBuffer: number;
|
|
73
|
+
conduitKey: string;
|
|
74
|
+
signer: Signer;
|
|
75
|
+
recipientAddress: string;
|
|
76
|
+
}): Promise<OrderUseCase<ExchangeAction<ContractMethodReturnType<SeaportContract, "fulfillAvailableAdvancedOrders">>>>;
|
|
77
|
+
export declare function generateFulfillOrdersFulfillments(ordersMetadata: FulfillOrdersMetadata): {
|
|
78
|
+
offerFulfillments: FulfillmentComponentStruct[];
|
|
79
|
+
considerationFulfillments: FulfillmentComponentStruct[];
|
|
80
|
+
};
|
|
81
|
+
export declare const getAdvancedOrderNumeratorDenominator: (order: Order, unitsToFill?: BigNumberish | undefined) => {
|
|
82
|
+
numerator: BigNumber;
|
|
83
|
+
denominator: BigNumber;
|
|
84
|
+
};
|