@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.
Files changed (81) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +141 -5
  3. package/lib/abi/ERC1155.d.ts +29 -29
  4. package/lib/abi/ERC1155.js +319 -0
  5. package/lib/abi/ERC1155.js.map +1 -0
  6. package/lib/abi/ERC20.d.ts +29 -29
  7. package/lib/abi/ERC20.js +317 -0
  8. package/lib/abi/ERC20.js.map +1 -0
  9. package/lib/abi/ERC721.d.ts +29 -29
  10. package/lib/abi/ERC721.js +337 -0
  11. package/lib/abi/ERC721.js.map +1 -0
  12. package/lib/abi/Seaport.d.ts +112 -112
  13. package/lib/abi/Seaport.js +2585 -0
  14. package/lib/abi/Seaport.js.map +1 -0
  15. package/lib/constants.d.ts +53 -49
  16. package/lib/constants.js +78 -0
  17. package/lib/constants.js.map +1 -0
  18. package/lib/index.d.ts +2 -2
  19. package/lib/index.js +6 -2
  20. package/lib/index.js.map +1 -1
  21. package/lib/seaport.d.ts +184 -181
  22. package/lib/seaport.js +732 -0
  23. package/lib/seaport.js.map +1 -0
  24. package/lib/typechain/ERC1155.d.ts +189 -0
  25. package/lib/typechain/ERC1155.js +3 -0
  26. package/lib/typechain/ERC1155.js.map +1 -0
  27. package/lib/typechain/ERC20.d.ts +209 -0
  28. package/lib/typechain/ERC20.js +3 -0
  29. package/lib/typechain/ERC20.js.map +1 -0
  30. package/lib/typechain/ERC721.d.ts +220 -0
  31. package/lib/typechain/ERC721.js +3 -0
  32. package/lib/typechain/ERC721.js.map +1 -0
  33. package/lib/typechain/Seaport.d.ts +686 -0
  34. package/lib/typechain/Seaport.js +3 -0
  35. package/lib/typechain/Seaport.js.map +1 -0
  36. package/lib/typechain/common.d.ts +21 -0
  37. package/lib/typechain/common.js +3 -0
  38. package/lib/typechain/common.js.map +1 -0
  39. package/lib/types.d.ts +221 -207
  40. package/lib/types.js +3 -0
  41. package/lib/types.js.map +1 -0
  42. package/lib/utils/approval.d.ts +9 -9
  43. package/lib/utils/approval.js +108 -0
  44. package/lib/utils/approval.js.map +1 -0
  45. package/lib/utils/balance.d.ts +4 -4
  46. package/lib/utils/balance.js +86 -0
  47. package/lib/utils/balance.js.map +1 -0
  48. package/lib/utils/balanceAndApprovalCheck.d.ts +108 -108
  49. package/lib/utils/balanceAndApprovalCheck.js +322 -0
  50. package/lib/utils/balanceAndApprovalCheck.js.map +1 -0
  51. package/lib/utils/criteria.d.ts +14 -13
  52. package/lib/utils/criteria.js +91 -0
  53. package/lib/utils/criteria.js.map +1 -0
  54. package/lib/utils/fulfill.d.ts +84 -84
  55. package/lib/utils/fulfill.js +573 -0
  56. package/lib/utils/fulfill.js.map +1 -0
  57. package/lib/utils/gcd.d.ts +3 -3
  58. package/lib/utils/gcd.js +25 -0
  59. package/lib/utils/gcd.js.map +1 -0
  60. package/lib/utils/item.d.ts +29 -30
  61. package/lib/utils/item.js +136 -0
  62. package/lib/utils/item.js.map +1 -0
  63. package/lib/utils/match.d.ts +49 -49
  64. package/lib/utils/match.js +56 -0
  65. package/lib/utils/match.js.map +1 -0
  66. package/lib/utils/merkletree.d.ts +11 -11
  67. package/lib/utils/merkletree.js +32 -0
  68. package/lib/utils/merkletree.js.map +1 -0
  69. package/lib/utils/order.d.ts +37 -37
  70. package/lib/utils/order.js +224 -0
  71. package/lib/utils/order.js.map +1 -0
  72. package/lib/utils/usecase.d.ts +4 -4
  73. package/lib/utils/usecase.js +158 -0
  74. package/lib/utils/usecase.js.map +1 -0
  75. package/package.json +43 -43
  76. package/lib/index.esm.mjs +0 -2
  77. package/lib/index.esm.mjs.map +0 -1
  78. package/lib/index.modern.mjs +0 -2
  79. package/lib/index.modern.mjs.map +0 -1
  80. package/lib/index.umd.js +0 -2
  81. 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iCAAmC;AACnC,0CAAiD;AAEjD,uCAAgD;AAChD,qCAAsC;AACtC,uCAAkD;AAClD,+BAMgB;AA2BhB,IAAM,sBAAsB,GAAG,UAC7B,oBAA0C,EAC1C,KAAa,EACb,oBAA4B;IAE5B,IAAM,kBAAkB,GAAG,oBAAoB,CAAC,IAAI,CAClD,UAAC,EAGA;YAFQ,YAAY,WAAA,EACG,2BAA2B,0BAAA;QAEjD,OAAA,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE;YAClD,2BAA2B,CAAC,WAAW,EAAE;gBACvC,oBAAoB,CAAC,WAAW,EAAE;IAFpC,CAEoC,CACvC,CAAC;IAEF,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;KACH;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEK,IAAM,uBAAuB,GAAG,UAAO,EAY7C;QAXC,KAAK,WAAA,EACL,KAAK,WAAA,EACL,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,iBAAiB,uBAAA;;;;YAQX,cAAc,GAAG,IAAA,+BAAoB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAE9D,sBAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,UAAO,IAAI;;;;;;;gCACf,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gCAE/D,IAAI,IAAA,mBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAA,oBAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oCAC/D,qBAAqB,GAAG,IAAA,6BAAkB,EACxC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,iBAAiB,CAClB,CAAC;iCACH;qCAAM,IAAI,IAAA,kBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oCACrC,qBAAqB,GAAG,IAAA,6BAAkB,EACxC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,iBAAiB,CAClB,CAAC;iCACH;gCACD,wDAAwD;qCACnD;oCACH,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAO,CAAC,CAAC;iCAClD;;oCAGC,KAAK,EAAE,IAAI,CAAC,KAAK;oCACjB,oBAAoB,EAClB,MAAA,MAAA,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAE,UAAU,mCAAI,IAAI,CAAC,oBAAoB;;gCAC1D,qBAAM,IAAA,mBAAS,EACtB,KAAK,EACL,IAAI,EACJ,iBAAiB,EACjB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CACzB,EAAA;;gCALD,UAAO,GAAE,SAKR;gCACe,qBAAM,qBAAqB,EAAA;oCAV7C,uBAUE,iBAAc,GAAE,SAA2B;oCAC3C,WAAQ,GAAE,IAAI,CAAC,QAAQ;yCACvB;;;qBACH,CAAC,CACH,EAAC;;;CACH,CAAC;AAtDW,QAAA,uBAAuB,2BAsDlC;AAEK,IAAM,wCAAwC,GAAG,UAAC,EAUxD;QATC,oBAAoB,0BAAA,EACpB,yBAAyB,+BAAA,EACzB,QAAQ,cAAA;IAWR,IAAM,iCAAiC,GAAG,yBACrC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAC9C,UAAC,EAA2B;YAA3B,KAAA,aAA2B,EAA1B,KAAK,QAAA,EAAE,kBAAkB,QAAA;QACzB,OAAA,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CACpC,UAAC,EAAoC;gBAApC,KAAA,aAAoC,EAAnC,oBAAoB,QAAA,EAAE,YAAY,QAAA;YAClC,OAAA,CAAC,KAAK,EAAE,oBAAoB,EAAE,YAAY,CAAU;QAApD,CAAoD,CACvD;IAHD,CAGC,CACJ,UACD,IAAI,EAAE,CAAC;IAET,IAAM,yBAAyB,GAAG,UAChC,SAAuC;QAEvC,OAAA,iCAAiC;aAC9B,MAAM,CAAC,UAAC,EAA2C;gBAA3C,KAAA,aAA2C,EAA1C,KAAK,QAAA,EAAE,oBAAoB,QAAA,EAAE,YAAY,QAAA;YACjD,OAAA,sBAAsB,CACpB,oBAAoB,EACpB,KAAK,EACL,oBAAoB,CACrB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;QAJ7B,CAI6B,CAC9B;aACA,GAAG,CAAC,UAAC,EAAqC;gBAArC,KAAA,aAAqC,EAApC,KAAK,QAAA,EAAE,oBAAoB,QAAA,EAAE,MAAM,QAAA;YACxC,IAAM,kBAAkB,GAAG,sBAAsB,CAC/C,oBAAoB,EACpB,KAAK,EACL,oBAAoB,CACrB,CAAC;YAEF,OAAO;gBACL,KAAK,OAAA;gBACL,oBAAoB,sBAAA;gBACpB,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,kBAAkB,CAAC,SAAS,CAAC;gBACzC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACtC,CAAC;QACJ,CAAC,CAAC;IAtBJ,CAsBI,CAAC;IAEP,IAAM,aAAa,GAAG,UACpB,mBAAiD,IACf,OAAA,CAAC;QACnC,KAAK,EAAE,mBAAmB,CAAC,KAAK;QAChC,oBAAoB,EAAE,mBAAmB,CAAC,oBAAoB;QAC9D,cAAc,EAAE,mBAAmB,CAAC,UAAU;QAC9C,sBAAsB,EAAE,mBAAmB,CAAC,cAAc;QAC1D,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;QACtC,QAAQ,UAAA;KACT,CAAC,EAPkC,CAOlC,CAAC;IAEG,IAAA,KAAA,OAAgD;QACpD,yBAAyB,CAAC,SAAS,CAAC;QACpC,yBAAyB,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;KAC/D,IAAA,EAHM,oBAAoB,QAAA,EAAE,qBAAqB,QAGjD,CAAC;IAEF,OAAO;QACL,oBAAoB,sBAAA;QACpB,qBAAqB,uBAAA;KACtB,CAAC;AACJ,CAAC,CAAC;AAvEW,QAAA,wCAAwC,4CAuEnD;AAEF;;;;;;GAMG;AACI,IAAM,iCAAiC,GAAG,UAAC,EAgB/C;QAfD,KAAK,WAAA,EACL,SAAS,eAAA,EACT,oBAAoB,0BAAA,EACpB,mBAAmB,yBAAA,EACnB,mCAAkC,EAAlC,2BAA2B,mBAAG,IAAI,KAAA,EAClC,4BAA4B,kCAAA,EAC5B,QAAQ,cAAA;IAUF,IAAA,KACJ,IAAA,gDAAwC,EAAC;QACvC,oBAAoB,sBAAA;QACpB,yBAAyB,EAAE,IAAA,yCAAkC,EAAC;YAC5D,KAAK,EAAE,KAAK;YACZ,SAAS,WAAA;YACT,mBAAmB,EAAE,mBAAmB;gBACtC,CAAC,uBAAM,mBAAmB,KAAE,mBAAmB,EAAE,KAAK,IACtD,CAAC,CAAC,SAAS;SACd,CAAC;QACF,QAAQ,UAAA;KACT,CAAC,EAXI,oBAAoB,0BAAA,EAAE,qBAAqB,2BAW/C,CAAC;IAEL,IAAI,2BAA2B,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;QAClE,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;KACH;IAED,IAAI,4BAA4B,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;QACpE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;KACxE;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC;AAzCW,QAAA,iCAAiC,qCAyC5C;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACI,IAAM,wCAAwC,GAAG,UAAC,EAcL;QAblD,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,2BAA2B,iCAAA,EAC3B,6BAA6B,mCAAA,EAC7B,mBAAmB,yBAAA,EACnB,eAAe,qBAAA,EACf,iBAAiB,uBAAA;IAQjB,IAAA,yCAAiC,EAAC;QAChC,KAAK,OAAA;QACL,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,2BAA2B;QACjD,mBAAmB,qBAAA;QACnB,4BAA4B,EAAE,IAAI;QAClC,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,IAAM,iCAAiC,GAAG,aAAa,CAAC,MAAM,CAC5D,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAnC,CAAmC,CAC9C,CAAC;IAEI,IAAA,KACJ,IAAA,gDAAwC,EAAC;QACvC,oBAAoB,EAAE,6BAA6B;QACnD,yBAAyB,EAAE,IAAA,yCAAkC,EAAC;YAC5D,KAAK,EAAE,iCAAiC;YACxC,SAAS,EAAE,EAAE;YACb,mBAAmB,wBACd,mBAAmB,KACtB,mBAAmB,EAAE,IAAI,GAC1B;SACF,CAAC;QACF,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,EAZI,oBAAoB,0BAAA,EAAE,qBAAqB,2BAY/C,CAAC;IAEL,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;KACH;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC;AAjDW,QAAA,wCAAwC,4CAiDnD;AAEF;;;;;;;;;;;;;;;GAeG;AACI,IAAM,2CAA2C,GAAG,UAAC,EAkB3D;QAjBC,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,aAAa,mBAAA,EACb,qBAAqB,2BAAA,EACrB,2BAA2B,iCAAA,EAC3B,6BAA6B,mCAAA,EAC7B,mBAAmB,yBAAA,EACnB,eAAe,qBAAA,EACf,iBAAiB,uBAAA;IAUjB,IAAA,yCAAiC,EAAC;QAChC,KAAK,OAAA;QACL,SAAS,EAAE,aAAa;QACxB,oBAAoB,EAAE,2BAA2B;QACjD,mBAAmB,qBAAA;QACnB,4BAA4B,EAAE,IAAI;QAClC,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,IAAM,uDAAuD,GAC3D,qBAAqB,CAAC;QACpB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,aAAa;QACxB,oBAAoB,EAAE,6BAA6B;QACnD,mBAAmB,qBAAA;KACpB,CAAC,CAAC;IAEC,IAAA,KACJ,IAAA,gDAAwC,EAAC;QACvC,oBAAoB,EAClB,uDAAuD;QACzD,yBAAyB,EAAE,IAAA,yCAAkC,EAAC;YAC5D,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,qBAAqB;YAChC,mBAAmB,wBACd,mBAAmB,KACtB,mBAAmB,EAAE,IAAI,GAC1B;SACF,CAAC;QACF,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,EAbI,oBAAoB,0BAAA,EAAE,qBAAqB,2BAa/C,CAAC;IAEL,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;KACH;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC;AA1DW,QAAA,2CAA2C,+CA0DtD;AAEF,IAAM,qBAAqB,GAAG,UAAC,EAU9B;QATC,KAAK,WAAA,EACL,SAAS,eAAA,EACT,mBAAmB,yBAAA,EACnB,oBAAoB,0BAAA;IAOpB,IAAM,iBAAiB,GAAG,IAAA,yCAAkC,EAAC;QAC3D,KAAK,OAAA;QACL,SAAS,WAAA;QACT,mBAAmB,wBAAO,mBAAmB,KAAE,mBAAmB,EAAE,KAAK,GAAE;KAC5E,CAAC,CAAC;IAEH,+BAA+B;IAC/B,IAAM,uCAAuC,GAAG,oBAAoB,CAAC,GAAG,CACtE,UAAC,IAAI,IAAK,OAAA,cAAM,IAAI,EAAG,EAAb,CAAa,CACxB,CAAC;IAEF,iHAAiH;IACjH,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CACvC,UAAC,EAAqC;YAArC,KAAA,aAAqC,EAApC,KAAK,QAAA,EAAE,4BAA4B,QAAA;QACnC,OAAA,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAClD,UAAC,EAA8B;gBAA9B,KAAA,aAA8B,EAA7B,oBAAoB,QAAA,EAAE,MAAM,QAAA;YAC5B,IAAM,kBAAkB,GAAG,sBAAsB,CAC/C,uCAAuC,EACvC,KAAK,EACL,oBAAoB,CACrB,CAAC;YAEF,IAAM,uBAAuB,GAC3B,uCAAuC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAEtE,uCAAuC,CACrC,uBAAuB,CACxB,CAAC,OAAO;gBACP,uCAAuC,CACrC,uBAAuB,CACxB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CACF;IAlBD,CAkBC,CACJ,CAAC;IAEF,OAAO,uCAAuC,CAAC;AACjD,CAAC,CAAC"}
@@ -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"}
@@ -1,84 +1,84 @@
1
- import { BigNumber, BigNumberish, providers } 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: providers.JsonRpcSigner;
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: providers.JsonRpcSigner;
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: providers.JsonRpcSigner;
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
+ };