@layerzerolabs/oft-sui-sdk-v2 0.0.0-stage → 1.2.104

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 (105) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +172 -2
  3. package/dist/2PVXPTJR.js +57 -0
  4. package/dist/2PVXPTJR.js.map +1 -0
  5. package/dist/4DKNPMZP.js +82 -0
  6. package/dist/4DKNPMZP.js.map +1 -0
  7. package/dist/5YQUATNE.js +1292 -0
  8. package/dist/5YQUATNE.js.map +1 -0
  9. package/dist/A3B5LALR.js +67 -0
  10. package/dist/A3B5LALR.js.map +1 -0
  11. package/dist/AQUMEEKG.js +108 -0
  12. package/dist/AQUMEEKG.js.map +1 -0
  13. package/dist/DUMP7ZFT.js +200 -0
  14. package/dist/DUMP7ZFT.js.map +1 -0
  15. package/dist/F5PNGH74.js +212 -0
  16. package/dist/F5PNGH74.js.map +1 -0
  17. package/dist/GLVZWDOK.js +49 -0
  18. package/dist/GLVZWDOK.js.map +1 -0
  19. package/dist/HD4WZG6B.js +38 -0
  20. package/dist/HD4WZG6B.js.map +1 -0
  21. package/dist/I5Z2GNDD.js +9 -0
  22. package/dist/I5Z2GNDD.js.map +1 -0
  23. package/dist/JUS4ARN3.js +78 -0
  24. package/dist/JUS4ARN3.js.map +1 -0
  25. package/dist/TF6IBJWJ.js +3 -0
  26. package/dist/TF6IBJWJ.js.map +1 -0
  27. package/dist/TL7X5YWY.js +39 -0
  28. package/dist/TL7X5YWY.js.map +1 -0
  29. package/dist/U4WYCHEV.js +54 -0
  30. package/dist/U4WYCHEV.js.map +1 -0
  31. package/dist/UIOGD65B.js +35 -0
  32. package/dist/UIOGD65B.js.map +1 -0
  33. package/dist/VUOMXK5T.js +6 -0
  34. package/dist/VUOMXK5T.js.map +1 -0
  35. package/dist/XCARM3YF.js +219 -0
  36. package/dist/XCARM3YF.js.map +1 -0
  37. package/dist/bcs/oft.d.ts +23 -0
  38. package/dist/bcs/oft.d.ts.map +1 -0
  39. package/dist/bcs/oft.js +4 -0
  40. package/dist/bcs/oft.js.map +1 -0
  41. package/dist/index.d.ts +6 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +19 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/modules/oft-composer-manager.d.ts +55 -0
  46. package/dist/modules/oft-composer-manager.d.ts.map +1 -0
  47. package/dist/modules/oft-composer-manager.js +16 -0
  48. package/dist/modules/oft-composer-manager.js.map +1 -0
  49. package/dist/modules/oft.d.ts +502 -0
  50. package/dist/modules/oft.d.ts.map +1 -0
  51. package/dist/modules/oft.js +17 -0
  52. package/dist/modules/oft.js.map +1 -0
  53. package/dist/protocol/args.d.ts +22 -0
  54. package/dist/protocol/args.d.ts.map +1 -0
  55. package/dist/protocol/args.js +4 -0
  56. package/dist/protocol/args.js.map +1 -0
  57. package/dist/protocol/deployments.d.ts +25 -0
  58. package/dist/protocol/deployments.d.ts.map +1 -0
  59. package/dist/protocol/deployments.js +4 -0
  60. package/dist/protocol/deployments.js.map +1 -0
  61. package/dist/protocol/endpoint.d.ts +40 -0
  62. package/dist/protocol/endpoint.d.ts.map +1 -0
  63. package/dist/protocol/endpoint.js +8 -0
  64. package/dist/protocol/endpoint.js.map +1 -0
  65. package/dist/protocol/index.d.ts +12 -0
  66. package/dist/protocol/index.d.ts.map +1 -0
  67. package/dist/protocol/index.js +15 -0
  68. package/dist/protocol/index.js.map +1 -0
  69. package/dist/protocol/oapp.d.ts +14 -0
  70. package/dist/protocol/oapp.d.ts.map +1 -0
  71. package/dist/protocol/oapp.js +6 -0
  72. package/dist/protocol/oapp.js.map +1 -0
  73. package/dist/protocol/ptb-builder.d.ts +17 -0
  74. package/dist/protocol/ptb-builder.d.ts.map +1 -0
  75. package/dist/protocol/ptb-builder.js +7 -0
  76. package/dist/protocol/ptb-builder.js.map +1 -0
  77. package/dist/protocol/sdk.d.ts +27 -0
  78. package/dist/protocol/sdk.d.ts.map +1 -0
  79. package/dist/protocol/sdk.js +14 -0
  80. package/dist/protocol/sdk.js.map +1 -0
  81. package/dist/protocol/simulate.d.ts +10 -0
  82. package/dist/protocol/simulate.d.ts.map +1 -0
  83. package/dist/protocol/simulate.js +5 -0
  84. package/dist/protocol/simulate.js.map +1 -0
  85. package/dist/protocol/types.d.ts +63 -0
  86. package/dist/protocol/types.d.ts.map +1 -0
  87. package/dist/protocol/types.js +4 -0
  88. package/dist/protocol/types.js.map +1 -0
  89. package/dist/protocol/utils.d.ts +11 -0
  90. package/dist/protocol/utils.d.ts.map +1 -0
  91. package/dist/protocol/utils.js +5 -0
  92. package/dist/protocol/utils.js.map +1 -0
  93. package/dist/protocol/validators.d.ts +44 -0
  94. package/dist/protocol/validators.d.ts.map +1 -0
  95. package/dist/protocol/validators.js +7 -0
  96. package/dist/protocol/validators.js.map +1 -0
  97. package/dist/protocol/zro.d.ts +13 -0
  98. package/dist/protocol/zro.d.ts.map +1 -0
  99. package/dist/protocol/zro.js +4 -0
  100. package/dist/protocol/zro.js.map +1 -0
  101. package/dist/types.d.ts +31 -0
  102. package/dist/types.d.ts.map +1 -0
  103. package/dist/types.js +4 -0
  104. package/dist/types.js.map +1 -0
  105. package/package.json +45 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/bcs/oft.ts"],"names":["OFTLimitBcs","bcs","struct","min_amount_ld","U64","max_amount_ld","OFTFeeDetailBcs","fee_amount_ld","is_reward","Bool","description","String","OFTReceiptBcs","amount_sent_ld","amount_received_ld","OFTInfoV1Bcs","oft_package","Address","oft_object","parseOFTLimit","data","parsed","parse","minAmountLd","BigInt","maxAmountLd","parseOFTFeeDetails","vectorBcs","vector","map","detail","feeAmountLd","isReward","parseOFTReceipt","amountSentLd","amountReceivedLd","parseOFTInfoV1","oftPackage","oftObject"],"mappings":";;;AAKO,IAAMA,WAAAA,GAAcC,GAAAA,CAAIC,MAAAA,CAAO,UAAA,EAAY;AAC9CC,EAAAA,aAAAA,EAAeF,GAAAA,CAAIG,GAAAA;AACnBC,EAAAA,aAAAA,EAAeJ,GAAAA,CAAIG;AACvB,CAAA;AAGO,IAAME,eAAAA,GAAkBL,GAAAA,CAAIC,MAAAA,CAAO,cAAA,EAAgB;AACtDK,EAAAA,aAAAA,EAAeN,GAAAA,CAAIG,GAAAA;AACnBI,EAAAA,SAAAA,EAAWP,GAAAA,CAAIQ,IAAAA;AACfC,EAAAA,WAAAA,EAAaT,GAAAA,CAAIU;AACrB,CAAA;AAGO,IAAMC,aAAAA,GAAgBX,GAAAA,CAAIC,MAAAA,CAAO,YAAA,EAAc;AAClDW,EAAAA,cAAAA,EAAgBZ,GAAAA,CAAIG,GAAAA;AACpBU,EAAAA,kBAAAA,EAAoBb,GAAAA,CAAIG;AAC5B,CAAA;AAGO,IAAMW,YAAAA,GAAed,GAAAA,CAAIC,MAAAA,CAAO,WAAA,EAAa;AAChDc,EAAAA,WAAAA,EAAaf,GAAAA,CAAIgB,OAAAA;AACjBC,EAAAA,UAAAA,EAAYjB,GAAAA,CAAIgB;AACpB,CAAA;AAGO,IAAME,aAAAA,2BAAiBC,IAAAA,KAAAA;AAC1B,EAAA,MAAMC,MAAAA,GAASrB,WAAAA,CAAYsB,KAAAA,CAAMF,IAAAA,CAAAA;AACjC,EAAA,OAAO;IACHG,WAAAA,EAAaC,MAAAA,CAAOH,OAAOlB,aAAa,CAAA;IACxCsB,WAAAA,EAAaD,MAAAA,CAAOH,OAAOhB,aAAa;AAC5C,GAAA;AACJ,CAAA,EAN6B,eAAA;AAStB,IAAMqB,kBAAAA,2BAAsBN,IAAAA,KAAAA;AAE/B,EAAA,MAAMO,SAAAA,GAAY1B,GAAAA,CAAI2B,MAAAA,CAAOtB,eAAAA,CAAAA;AAC7B,EAAA,MAAMe,MAAAA,GAASM,SAAAA,CAAUL,KAAAA,CAAMF,IAAAA,CAAAA;AAE/B,EAAA,OAAOC,MAAAA,CAAOQ,GAAAA,CACV,CAACC,MAAAA,MAIM;IACHC,WAAAA,EAAaP,MAAAA,CAAOM,OAAOvB,aAAa,CAAA;AACxCyB,IAAAA,QAAAA,EAAUF,MAAAA,CAAOtB,SAAAA;AACjBE,IAAAA,WAAAA,EAAaoB,MAAAA,CAAOpB;GACxB,CAAA,CAAA;AAER,CAAA,EAhBkC,oBAAA;AAmB3B,IAAMuB,eAAAA,2BAAmBb,IAAAA,KAAAA;AAC5B,EAAA,MAAMC,MAAAA,GAAST,aAAAA,CAAcU,KAAAA,CAAMF,IAAAA,CAAAA;AACnC,EAAA,OAAO;IACHc,YAAAA,EAAcV,MAAAA,CAAOH,OAAOR,cAAc,CAAA;IAC1CsB,gBAAAA,EAAkBX,MAAAA,CAAOH,OAAOP,kBAAkB;AACtD,GAAA;AACJ,CAAA,EAN+B,iBAAA;AASxB,IAAMsB,cAAAA,2BAAkBhB,IAAAA,KAAAA;AAC3B,EAAA,MAAMC,MAAAA,GAASN,YAAAA,CAAaO,KAAAA,CAAMF,IAAAA,CAAAA;AAClC,EAAA,OAAO;AACHiB,IAAAA,UAAAA,EAAYhB,MAAAA,CAAOL,WAAAA;AACnBsB,IAAAA,SAAAA,EAAWjB,MAAAA,CAAOH;AACtB,GAAA;AACJ,CAAA,EAN8B,gBAAA","file":"U4WYCHEV.js","sourcesContent":["import { bcs } from '@mysten/sui/bcs';\n\nimport type { OFTFeeDetail, OFTInfoV1, OFTLimit, OFTReceipt } from '../types';\n\n// OFTLimit struct BCS definition\nexport const OFTLimitBcs = bcs.struct('OFTLimit', {\n min_amount_ld: bcs.U64,\n max_amount_ld: bcs.U64,\n});\n\n// OFTFeeDetail struct BCS definition\nexport const OFTFeeDetailBcs = bcs.struct('OFTFeeDetail', {\n fee_amount_ld: bcs.U64,\n is_reward: bcs.Bool,\n description: bcs.String,\n});\n\n// OFTReceipt struct BCS definition\nexport const OFTReceiptBcs = bcs.struct('OFTReceipt', {\n amount_sent_ld: bcs.U64,\n amount_received_ld: bcs.U64,\n});\n\n// OFTInfoV1 struct BCS definition\nexport const OFTInfoV1Bcs = bcs.struct('OFTInfoV1', {\n oft_package: bcs.Address,\n oft_object: bcs.Address,\n});\n\n// Helper function to parse OFTLimit\nexport const parseOFTLimit = (data: Uint8Array): OFTLimit => {\n const parsed = OFTLimitBcs.parse(data);\n return {\n minAmountLd: BigInt(parsed.min_amount_ld),\n maxAmountLd: BigInt(parsed.max_amount_ld),\n };\n};\n\n// Helper function to parse OFTFeeDetail array\nexport const parseOFTFeeDetails = (data: Uint8Array): OFTFeeDetail[] => {\n // Parse as vector of OFTFeeDetail\n const vectorBcs = bcs.vector(OFTFeeDetailBcs);\n const parsed = vectorBcs.parse(data);\n\n return parsed.map(\n (detail: {\n fee_amount_ld: string | number | bigint;\n is_reward: boolean;\n description: string;\n }) => ({\n feeAmountLd: BigInt(detail.fee_amount_ld),\n isReward: detail.is_reward,\n description: detail.description,\n }),\n );\n};\n\n// Helper function to parse OFTReceipt\nexport const parseOFTReceipt = (data: Uint8Array): OFTReceipt => {\n const parsed = OFTReceiptBcs.parse(data);\n return {\n amountSentLd: BigInt(parsed.amount_sent_ld),\n amountReceivedLd: BigInt(parsed.amount_received_ld),\n };\n};\n\n// Helper function to parse OFTInfoV1\nexport const parseOFTInfoV1 = (data: Uint8Array): OFTInfoV1 => {\n const parsed = OFTInfoV1Bcs.parse(data);\n return {\n oftPackage: parsed.oft_package,\n oftObject: parsed.oft_object,\n };\n};\n"]}
@@ -0,0 +1,35 @@
1
+ import { __name } from './VUOMXK5T.js';
2
+ import { TypeTagSerializer, bcs } from '@mysten/sui/bcs';
3
+
4
+ var toTypeArgument = /* @__PURE__ */ __name((type) => TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr(type, true)), "toTypeArgument");
5
+ var isTransactionArgument = /* @__PURE__ */ __name((value) => {
6
+ if (typeof value === "function") {
7
+ return true;
8
+ }
9
+ if (value !== null && typeof value === "object" && "$kind" in value) {
10
+ const kind = value.$kind;
11
+ return kind === "GasCoin" || kind === "Input" || kind === "Result" || kind === "NestedResult";
12
+ }
13
+ return false;
14
+ }, "isTransactionArgument");
15
+ var asArg = /* @__PURE__ */ __name((value, converter) => isTransactionArgument(value) ? value : converter(value), "asArg");
16
+ var asArgWithTx = /* @__PURE__ */ __name((tx, value, converter) => isTransactionArgument(value) ? value : converter(tx, value), "asArgWithTx");
17
+ var asArgWithTxAsync = /* @__PURE__ */ __name(async (tx, value, converter) => isTransactionArgument(value) ? value : converter(tx, value), "asArgWithTxAsync");
18
+ var asObject = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.object(val)), "asObject");
19
+ var asAddress = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.address(val)), "asAddress");
20
+ var asU8 = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.u8(val)), "asU8");
21
+ var asU16 = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.u16(val)), "asU16");
22
+ var asU32 = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.u32(val)), "asU32");
23
+ var asU64 = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.u64(val)), "asU64");
24
+ var asU128 = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.u128(val)), "asU128");
25
+ var asU256 = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.u256(val)), "asU256");
26
+ var asBytes32 = /* @__PURE__ */ __name((tx, value, utils) => asArgWithTx(tx, value, (tx2, bytes) => utils.fromBytesMoveCall(tx2, bytes)), "asBytes32");
27
+ var asBytes = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure(bcs.vector(bcs.u8()).serialize(val))), "asBytes");
28
+ var asBytesVector = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure(bcs.vector(bcs.vector(bcs.u8())).serialize(val))), "asBytesVector");
29
+ var asString = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.string(val)), "asString");
30
+ var asAddressVector = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure(bcs.vector(bcs.Address).serialize(val))), "asAddressVector");
31
+ var asBool = /* @__PURE__ */ __name((tx, value) => asArg(value, (val) => tx.pure.bool(val)), "asBool");
32
+
33
+ export { asAddress, asAddressVector, asArg, asArgWithTx, asArgWithTxAsync, asBool, asBytes, asBytes32, asBytesVector, asObject, asString, asU128, asU16, asU256, asU32, asU64, asU8, isTransactionArgument, toTypeArgument };
34
+ //# sourceMappingURL=UIOGD65B.js.map
35
+ //# sourceMappingURL=UIOGD65B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/protocol/args.ts"],"names":["toTypeArgument","type","TypeTagSerializer","tagToString","parseFromStr","isTransactionArgument","value","kind","$kind","asArg","converter","asArgWithTx","tx","asArgWithTxAsync","asObject","val","object","asAddress","pure","address","asU8","u8","asU16","u16","asU32","u32","asU64","u64","asU128","u128","asU256","u256","asBytes32","utils","tx2","bytes","fromBytesMoveCall","asBytes","bcs","vector","serialize","asBytesVector","asString","string","asAddressVector","Address","asBool","bool"],"mappings":";;;AAKO,IAAMA,cAAAA,mBAAiB,MAAA,CAAA,CAACC,IAAAA,KAC3BC,iBAAAA,CAAkBC,WAAAA,CAAYD,kBAAkBE,YAAAA,CAAaH,IAAAA,EAAM,IAAA,CAAA,CAAA,EADzC,gBAAA;AAGvB,IAAMI,qBAAAA,2BAAyBC,KAAAA,KAAAA;AAClC,EAAA,IAAI,OAAOA,UAAU,UAAA,EAAY;AAC7B,IAAA,OAAO,IAAA;AACX,EAAA;AACA,EAAA,IAAIA,UAAU,IAAA,IAAQ,OAAOA,KAAAA,KAAU,QAAA,IAAY,WAAWA,KAAAA,EAAO;AACjE,IAAA,MAAMC,OAAQD,KAAAA,CAA6BE,KAAAA;AAC3C,IAAA,OACID,SAAS,SAAA,IAAaA,IAAAA,KAAS,OAAA,IAAWA,IAAAA,KAAS,YAAYA,IAAAA,KAAS,cAAA;AAEhF,EAAA;AACA,EAAA,OAAO,KAAA;AACX,CAAA,EAXqC,uBAAA;AAa9B,IAAME,KAAAA,mBAAQ,MAAA,CAAA,CACjBH,KAAAA,EACAI,SAAAA,KACuBL,qBAAAA,CAAsBC,KAAAA,CAAAA,GAASA,KAAAA,GAAQI,SAAAA,CAAUJ,KAAAA,CAAAA,EAHvD,OAAA;AAKd,IAAMK,WAAAA,mBAAc,MAAA,CAAA,CACvBC,EAAAA,EACAN,KAAAA,EACAI,SAAAA,KACuBL,qBAAAA,CAAsBC,KAAAA,CAAAA,GAASA,KAAAA,GAAQI,SAAAA,CAAUE,EAAAA,EAAIN,KAAAA,CAAAA,EAJrD,aAAA;AAMpB,IAAMO,gBAAAA,mBAAmB,MAAA,CAAA,OAC5BD,EAAAA,EACAN,KAAAA,EACAI,SAAAA,KACgCL,qBAAAA,CAAsBC,KAAAA,CAAAA,GAASA,KAAAA,GAAQI,SAAAA,CAAUE,EAAAA,EAAIN,KAAAA,CAAAA,EAJzD,kBAAA;AAMzB,IAAMQ,QAAAA,mBAAW,MAAA,CAAA,CACpBF,EAAAA,EACAN,KAAAA,KACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGI,MAAAA,CAAOD,GAAAA,CAAAA,CAAAA,EAHlC,UAAA;AAKjB,IAAME,SAAAA,mBAAY,MAAA,CAAA,CACrBL,EAAAA,EACAN,KAAAA,KACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKC,OAAAA,CAAQJ,GAAAA,CAAAA,CAAAA,EAHvC,WAAA;AAKlB,IAAMK,IAAAA,mBAAO,MAAA,CAAA,CAACR,EAAAA,EAAiBN,KAAAA,KAClCG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKG,EAAAA,CAAGN,GAAAA,CAAAA,CAAAA,EADjB,MAAA;AAGb,IAAMO,KAAAA,mBAAQ,MAAA,CAAA,CAACV,EAAAA,EAAiBN,KAAAA,KACnCG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKK,GAAAA,CAAIR,GAAAA,CAAAA,CAAAA,EADjB,OAAA;AAGd,IAAMS,KAAAA,mBAAQ,MAAA,CAAA,CAACZ,EAAAA,EAAiBN,KAAAA,KACnCG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKO,GAAAA,CAAIV,GAAAA,CAAAA,CAAAA,EADjB,OAAA;AAGd,IAAMW,KAAAA,mBAAQ,MAAA,CAAA,CACjBd,EAAAA,EACAN,KAAAA,KACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKS,GAAAA,CAAIZ,GAAAA,CAAAA,CAAAA,EAHvC,OAAA;AAKd,IAAMa,MAAAA,mBAAS,MAAA,CAAA,CAClBhB,EAAAA,EACAN,KAAAA,KACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKW,IAAAA,CAAKd,GAAAA,CAAAA,CAAAA,EAHvC,QAAA;AAKf,IAAMe,MAAAA,mBAAS,MAAA,CAAA,CAClBlB,EAAAA,EACAN,KAAAA,KACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKa,IAAAA,CAAKhB,GAAAA,CAAAA,CAAAA,EAHvC,QAAA;AAKf,IAAMiB,4BAAY,MAAA,CAAA,CACrBpB,EAAAA,EACAN,KAAAA,EACA2B,KAAAA,KAEAtB,YAAYC,EAAAA,EAAIN,KAAAA,EAAO,CAAC4B,GAAAA,EAAKC,UAAUF,KAAAA,CAAMG,iBAAAA,CAAkBF,GAAAA,EAAKC,KAAAA,CAAAA,CAAAA,EAL/C,WAAA;AAOlB,IAAME,OAAAA,2BACTzB,EAAAA,EACAN,KAAAA,KACsBG,MAAMH,KAAAA,EAAO,CAACS,QAAQH,EAAAA,CAAGM,IAAAA,CAAKoB,IAAIC,MAAAA,CAAOD,GAAAA,CAAIjB,IAAE,CAAA,CAAImB,UAAUzB,GAAAA,CAAAA,CAAAA,CAAAA,EAHhE,SAAA;AAKhB,IAAM0B,aAAAA,2BACT7B,EAAAA,EACAN,KAAAA,KAEAG,MAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKoB,GAAAA,CAAIC,OAAOD,GAAAA,CAAIC,MAAAA,CAAOD,GAAAA,CAAIjB,EAAAA,EAAE,CAAA,EAAKmB,SAAAA,CAAUzB,GAAAA,CAAAA,CAAAA,CAAAA,EAJhD,eAAA;AAMtB,IAAM2B,QAAAA,mBAAW,MAAA,CAAA,CACpB9B,EAAAA,EACAN,KAAAA,KACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAKyB,MAAAA,CAAO5B,GAAAA,CAAAA,CAAAA,EAHvC,UAAA;AAKjB,IAAM6B,kCAAkB,MAAA,CAAA,CAC3BhC,EAAAA,EACAN,UACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,KAAKoB,GAAAA,CAAIC,MAAAA,CAAOD,IAAIO,OAAO,CAAA,CAAEL,UAAUzB,GAAAA,CAAAA,CAAAA,CAAAA,EAH3D,iBAAA;AAKxB,IAAM+B,MAAAA,mBAAS,MAAA,CAAA,CAClBlC,EAAAA,EACAN,KAAAA,KACsBG,KAAAA,CAAMH,KAAAA,EAAO,CAACS,GAAAA,KAAQH,EAAAA,CAAGM,IAAAA,CAAK6B,IAAAA,CAAKhC,GAAAA,CAAAA,CAAAA,EAHvC,QAAA","file":"UIOGD65B.js","sourcesContent":["import { bcs, TypeTagSerializer } from '@mysten/sui/bcs';\nimport type { Transaction, TransactionArgument } from '@mysten/sui/transactions';\n\nimport type { Utils } from './utils';\n\nexport const toTypeArgument = (type: string): string =>\n TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr(type, true));\n\nexport const isTransactionArgument = (value: unknown): value is TransactionArgument => {\n if (typeof value === 'function') {\n return true;\n }\n if (value !== null && typeof value === 'object' && '$kind' in value) {\n const kind = (value as { $kind: unknown }).$kind;\n return (\n kind === 'GasCoin' || kind === 'Input' || kind === 'Result' || kind === 'NestedResult'\n );\n }\n return false;\n};\n\nexport const asArg = <T>(\n value: T | TransactionArgument,\n converter: (value: T) => TransactionArgument,\n): TransactionArgument => (isTransactionArgument(value) ? value : converter(value));\n\nexport const asArgWithTx = <T>(\n tx: Transaction,\n value: T | TransactionArgument,\n converter: (tx: Transaction, value: T) => TransactionArgument,\n): TransactionArgument => (isTransactionArgument(value) ? value : converter(tx, value));\n\nexport const asArgWithTxAsync = async <T>(\n tx: Transaction,\n value: T | TransactionArgument,\n converter: (tx: Transaction, value: T) => Promise<TransactionArgument>,\n): Promise<TransactionArgument> => (isTransactionArgument(value) ? value : converter(tx, value));\n\nexport const asObject = (\n tx: Transaction,\n value: string | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.object(val));\n\nexport const asAddress = (\n tx: Transaction,\n value: string | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure.address(val));\n\nexport const asU8 = (tx: Transaction, value: number | TransactionArgument): TransactionArgument =>\n asArg(value, (val) => tx.pure.u8(val));\n\nexport const asU16 = (tx: Transaction, value: number | TransactionArgument): TransactionArgument =>\n asArg(value, (val) => tx.pure.u16(val));\n\nexport const asU32 = (tx: Transaction, value: number | TransactionArgument): TransactionArgument =>\n asArg(value, (val) => tx.pure.u32(val));\n\nexport const asU64 = (\n tx: Transaction,\n value: bigint | number | string | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure.u64(val));\n\nexport const asU128 = (\n tx: Transaction,\n value: bigint | number | string | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure.u128(val));\n\nexport const asU256 = (\n tx: Transaction,\n value: bigint | number | string | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure.u256(val));\n\nexport const asBytes32 = (\n tx: Transaction,\n value: Uint8Array | TransactionArgument,\n utils: Utils,\n): TransactionArgument =>\n asArgWithTx(tx, value, (tx2, bytes) => utils.fromBytesMoveCall(tx2, bytes));\n\nexport const asBytes = (\n tx: Transaction,\n value: Uint8Array | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure(bcs.vector(bcs.u8()).serialize(val)));\n\nexport const asBytesVector = (\n tx: Transaction,\n value: Uint8Array[] | TransactionArgument,\n): TransactionArgument =>\n asArg(value, (val) => tx.pure(bcs.vector(bcs.vector(bcs.u8())).serialize(val)));\n\nexport const asString = (\n tx: Transaction,\n value: string | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure.string(val));\n\nexport const asAddressVector = (\n tx: Transaction,\n value: string[] | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure(bcs.vector(bcs.Address).serialize(val)));\n\nexport const asBool = (\n tx: Transaction,\n value: boolean | TransactionArgument,\n): TransactionArgument => asArg(value, (val) => tx.pure.bool(val));\n"]}
@@ -0,0 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ export { __name };
5
+ //# sourceMappingURL=VUOMXK5T.js.map
6
+ //# sourceMappingURL=VUOMXK5T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"VUOMXK5T.js"}
@@ -0,0 +1,219 @@
1
+ import { executeSimulate } from './A3B5LALR.js';
2
+ import { MAX_BATCH_SIZE } from './TL7X5YWY.js';
3
+ import { asAddress } from './UIOGD65B.js';
4
+ import { __name } from './VUOMXK5T.js';
5
+ import { bcs } from '@mysten/sui/bcs';
6
+
7
+ var foundObject = /* @__PURE__ */ __name((objectId, detail) => {
8
+ if (detail instanceof Error) {
9
+ throw new Error(`Object ${objectId} not found`);
10
+ }
11
+ return detail;
12
+ }, "foundObject");
13
+ var PackageWhitelistValidator = class {
14
+ static {
15
+ __name(this, "PackageWhitelistValidator");
16
+ }
17
+ packageId;
18
+ client;
19
+ whitelistObjectId;
20
+ constructor(packageId, client, whitelistObjectId) {
21
+ this.packageId = packageId;
22
+ this.client = client;
23
+ this.whitelistObjectId = whitelistObjectId;
24
+ }
25
+ isWhitelistedMoveCall(tx, packageAddress) {
26
+ return tx.moveCall({
27
+ target: this.#target("is_whitelisted"),
28
+ arguments: [
29
+ tx.object(this.whitelistObjectId),
30
+ asAddress(tx, packageAddress)
31
+ ]
32
+ });
33
+ }
34
+ validateMoveCall(tx, packageAddresses) {
35
+ return tx.moveCall({
36
+ target: this.#target("validate"),
37
+ arguments: [
38
+ tx.object(this.whitelistObjectId),
39
+ tx.pure(bcs.vector(bcs.Address).serialize(packageAddresses))
40
+ ]
41
+ });
42
+ }
43
+ async isWhitelisted(packageAddress) {
44
+ return executeSimulate(this.client, (tx) => {
45
+ this.isWhitelistedMoveCall(tx, packageAddress);
46
+ }, (result) => bcs.Bool.parse(result[0].value));
47
+ }
48
+ async validate(packageAddresses) {
49
+ return executeSimulate(this.client, (tx) => {
50
+ this.validateMoveCall(tx, packageAddresses);
51
+ }, (result) => bcs.Bool.parse(result[0].value));
52
+ }
53
+ #target(name) {
54
+ return `${this.packageId}::package_whitelist_validator::${name}`;
55
+ }
56
+ };
57
+ var PackageAllowlistValidator = class {
58
+ static {
59
+ __name(this, "PackageAllowlistValidator");
60
+ }
61
+ validator;
62
+ packageWhitelist;
63
+ constructor(packageWhitelist = [], validator) {
64
+ this.validator = validator;
65
+ if (packageWhitelist.length === 0 && validator === void 0) {
66
+ throw new Error("PackageAllowlistValidator requires either a packageWhitelist or a validator");
67
+ }
68
+ this.packageWhitelist = new Set(packageWhitelist);
69
+ }
70
+ async validate(moveCallsWithDetails) {
71
+ const allPackages = /* @__PURE__ */ new Set();
72
+ for (const { moveCall } of moveCallsWithDetails) {
73
+ const packageId = moveCall.function.package;
74
+ if (packageId === "") {
75
+ throw new Error("Move call package is missing");
76
+ }
77
+ allPackages.add(packageId);
78
+ }
79
+ for (const { objectDetails } of moveCallsWithDetails) {
80
+ for (const [objectId, detail] of objectDetails) {
81
+ const object = foundObject(objectId, detail);
82
+ const packageId = this.extractPackageIdFromType(object.type);
83
+ if (packageId === null) {
84
+ throw new Error(`Could not extract package ID from object ${objectId}`);
85
+ }
86
+ allPackages.add(packageId);
87
+ }
88
+ }
89
+ const isAllValid = await this.validatePackages(Array.from(allPackages));
90
+ if (!isAllValid) {
91
+ throw new Error(`One or more packages are not allowlisted. Packages: [${Array.from(allPackages).join(", ")}]`);
92
+ }
93
+ }
94
+ async validatePackages(packages) {
95
+ if (packages.length === 0) {
96
+ return true;
97
+ }
98
+ if (this.packageWhitelist.size > 0) {
99
+ return packages.every((packageId) => this.packageWhitelist.has(packageId));
100
+ }
101
+ try {
102
+ return await this.validator.validate(packages);
103
+ } catch (error) {
104
+ console.warn(`Failed to check whitelist:`, error);
105
+ return false;
106
+ }
107
+ }
108
+ extractPackageIdFromType(objectType) {
109
+ if (objectType === null || objectType === void 0) {
110
+ return null;
111
+ }
112
+ const parts = objectType.split("::");
113
+ if (parts.length < 2) {
114
+ return null;
115
+ }
116
+ const packageId = parts[0];
117
+ if (!packageId.startsWith("0x") || packageId.length < 3) {
118
+ return null;
119
+ }
120
+ return packageId;
121
+ }
122
+ getAvailablePackagesList() {
123
+ if (this.packageWhitelist.size > 0) {
124
+ return Array.from(this.packageWhitelist).join(", ");
125
+ }
126
+ return "contract whitelist";
127
+ }
128
+ };
129
+ var ShareObjectValidator = class {
130
+ static {
131
+ __name(this, "ShareObjectValidator");
132
+ }
133
+ validate(moveCallsWithDetails) {
134
+ for (const { objectDetails } of moveCallsWithDetails) {
135
+ for (const [objectId, detail] of objectDetails) {
136
+ if (detail instanceof Error) {
137
+ throw new Error(`Object ${objectId} does not have owner`);
138
+ }
139
+ if (!this.isSharedOrImmutable(detail.owner)) {
140
+ throw new Error(`Object ${objectId} is not Shared/Immutable`);
141
+ }
142
+ }
143
+ }
144
+ }
145
+ isSharedOrImmutable(owner) {
146
+ return owner.$kind === "Shared" || owner.$kind === "Immutable";
147
+ }
148
+ };
149
+ var MoveCallObjectFetcher = class {
150
+ static {
151
+ __name(this, "MoveCallObjectFetcher");
152
+ }
153
+ client;
154
+ batchSize;
155
+ constructor(client, batchSize = MAX_BATCH_SIZE) {
156
+ this.client = client;
157
+ this.batchSize = batchSize;
158
+ }
159
+ async fetchObjectDetails(moveCalls, options = {}) {
160
+ const objectIdSet = /* @__PURE__ */ new Set();
161
+ for (const moveCall of moveCalls) {
162
+ for (const arg of moveCall.arguments) {
163
+ if ("Object" in arg) {
164
+ objectIdSet.add(arg.Object);
165
+ }
166
+ }
167
+ }
168
+ const objectIds = Array.from(objectIdSet);
169
+ if (objectIds.length === 0) {
170
+ return moveCalls.map((moveCall) => ({
171
+ moveCall,
172
+ objectDetails: /* @__PURE__ */ new Map()
173
+ }));
174
+ }
175
+ if (this.batchSize > MAX_BATCH_SIZE || this.batchSize < 1) {
176
+ throw new Error(`batchSize must be between 1 and ${MAX_BATCH_SIZE}`);
177
+ }
178
+ const objectDetailsMap = /* @__PURE__ */ new Map();
179
+ for (let i = 0; i < objectIds.length; i += this.batchSize) {
180
+ const batch = objectIds.slice(i, i + this.batchSize);
181
+ const { objects } = await this.client.core.getObjects({
182
+ objectIds: batch,
183
+ include: options
184
+ });
185
+ objects.forEach((object, index) => {
186
+ objectDetailsMap.set(batch[index], object);
187
+ });
188
+ }
189
+ return moveCalls.map((moveCall) => {
190
+ const objectDetails = /* @__PURE__ */ new Map();
191
+ for (const arg of moveCall.arguments) {
192
+ if ("Object" in arg) {
193
+ const detail = objectDetailsMap.get(arg.Object);
194
+ if (detail !== void 0) {
195
+ objectDetails.set(arg.Object, detail);
196
+ }
197
+ }
198
+ }
199
+ return {
200
+ moveCall,
201
+ objectDetails
202
+ };
203
+ });
204
+ }
205
+ };
206
+ var validateWithDetails = /* @__PURE__ */ __name(async (client, moveCalls, validators, sender, userOptions = {}, batchSize = MAX_BATCH_SIZE) => {
207
+ if (validators.length === 0) {
208
+ return;
209
+ }
210
+ const objectFetcher = new MoveCallObjectFetcher(client, batchSize);
211
+ const moveCallsWithDetails = await objectFetcher.fetchObjectDetails(moveCalls, userOptions);
212
+ for (const validator of validators) {
213
+ await validator.validate(moveCallsWithDetails, sender);
214
+ }
215
+ }, "validateWithDetails");
216
+
217
+ export { MoveCallObjectFetcher, PackageAllowlistValidator, PackageWhitelistValidator, ShareObjectValidator, validateWithDetails };
218
+ //# sourceMappingURL=XCARM3YF.js.map
219
+ //# sourceMappingURL=XCARM3YF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/protocol/validators.ts"],"names":["foundObject","objectId","detail","Error","PackageWhitelistValidator","packageId","client","whitelistObjectId","isWhitelistedMoveCall","tx","packageAddress","moveCall","target","arguments","object","asAddress","validateMoveCall","packageAddresses","pure","bcs","vector","Address","serialize","isWhitelisted","executeSimulate","result","Bool","parse","value","validate","name","PackageAllowlistValidator","packageWhitelist","validator","length","undefined","Set","moveCallsWithDetails","allPackages","function","package","add","objectDetails","extractPackageIdFromType","type","isAllValid","validatePackages","Array","from","join","packages","size","every","has","error","console","warn","objectType","parts","split","startsWith","getAvailablePackagesList","ShareObjectValidator","isSharedOrImmutable","owner","$kind","MoveCallObjectFetcher","batchSize","MAX_BATCH_SIZE","fetchObjectDetails","moveCalls","options","objectIdSet","arg","Object","objectIds","map","Map","objectDetailsMap","i","batch","slice","objects","core","getObjects","include","forEach","index","set","get","validateWithDetails","validators","sender","userOptions","objectFetcher"],"mappings":"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","file":"XCARM3YF.js","sourcesContent":["import { bcs } from '@mysten/sui/bcs';\nimport type { ClientWithCoreApi, SuiClientTypes } from '@mysten/sui/client';\nimport type { Transaction, TransactionResult } from '@mysten/sui/transactions';\n\nimport { asAddress } from './args';\nimport { executeSimulate } from './simulate';\nimport { MAX_BATCH_SIZE, type MoveCall } from './types';\n\nexport type ObjectFetchOptions = SuiClientTypes.ObjectInclude;\n\nexport type ObjectDetail = SuiClientTypes.Object | Error;\n\nexport interface MoveCallWithObjectDetails {\n moveCall: MoveCall;\n objectDetails: Map<string, ObjectDetail>;\n}\n\nexport interface IPTBValidator {\n validate(\n moveCallsWithDetails: MoveCallWithObjectDetails[],\n sender?: string,\n ): void | Promise<void>;\n}\n\nconst foundObject = (objectId: string, detail: ObjectDetail): SuiClientTypes.Object => {\n if (detail instanceof Error) {\n throw new Error(`Object ${objectId} not found`);\n }\n return detail;\n};\n\nexport class PackageWhitelistValidator {\n constructor(\n public readonly packageId: string,\n public readonly client: ClientWithCoreApi,\n private readonly whitelistObjectId: string,\n ) {}\n\n isWhitelistedMoveCall(tx: Transaction, packageAddress: string): TransactionResult {\n return tx.moveCall({\n target: this.#target('is_whitelisted'),\n arguments: [tx.object(this.whitelistObjectId), asAddress(tx, packageAddress)],\n });\n }\n\n validateMoveCall(tx: Transaction, packageAddresses: string[]): TransactionResult {\n return tx.moveCall({\n target: this.#target('validate'),\n arguments: [\n tx.object(this.whitelistObjectId),\n tx.pure(bcs.vector(bcs.Address).serialize(packageAddresses)),\n ],\n });\n }\n\n async isWhitelisted(packageAddress: string): Promise<boolean> {\n return executeSimulate(\n this.client,\n (tx) => {\n this.isWhitelistedMoveCall(tx, packageAddress);\n },\n (result) => bcs.Bool.parse(result[0].value),\n );\n }\n\n async validate(packageAddresses: string[]): Promise<boolean> {\n return executeSimulate(\n this.client,\n (tx) => {\n this.validateMoveCall(tx, packageAddresses);\n },\n (result) => bcs.Bool.parse(result[0].value),\n );\n }\n\n #target(name: string): string {\n return `${this.packageId}::package_whitelist_validator::${name}`;\n }\n}\n\nexport class PackageAllowlistValidator implements IPTBValidator {\n private readonly packageWhitelist: Set<string>;\n\n constructor(\n packageWhitelist: string[] = [],\n private readonly validator?: PackageWhitelistValidator,\n ) {\n if (packageWhitelist.length === 0 && validator === undefined) {\n throw new Error(\n 'PackageAllowlistValidator requires either a packageWhitelist or a validator',\n );\n }\n this.packageWhitelist = new Set(packageWhitelist);\n }\n\n async validate(moveCallsWithDetails: MoveCallWithObjectDetails[]): Promise<void> {\n const allPackages = new Set<string>();\n for (const { moveCall } of moveCallsWithDetails) {\n const packageId = moveCall.function.package;\n if (packageId === '') {\n throw new Error('Move call package is missing');\n }\n allPackages.add(packageId);\n }\n for (const { objectDetails } of moveCallsWithDetails) {\n for (const [objectId, detail] of objectDetails) {\n const object = foundObject(objectId, detail);\n const packageId = this.extractPackageIdFromType(object.type);\n if (packageId === null) {\n throw new Error(`Could not extract package ID from object ${objectId}`);\n }\n allPackages.add(packageId);\n }\n }\n const isAllValid = await this.validatePackages(Array.from(allPackages));\n if (!isAllValid) {\n throw new Error(\n `One or more packages are not allowlisted. Packages: [${Array.from(allPackages).join(', ')}]`,\n );\n }\n }\n\n async validatePackages(packages: string[]): Promise<boolean> {\n if (packages.length === 0) {\n return true;\n }\n if (this.packageWhitelist.size > 0) {\n return packages.every((packageId) => this.packageWhitelist.has(packageId));\n }\n try {\n return await this.validator!.validate(packages);\n } catch (error) {\n console.warn(`Failed to check whitelist:`, error);\n return false;\n }\n }\n\n extractPackageIdFromType(objectType: string | null | undefined): string | null {\n if (objectType === null || objectType === undefined) {\n return null;\n }\n const parts = objectType.split('::');\n if (parts.length < 2) {\n return null;\n }\n const packageId = parts[0];\n if (!packageId.startsWith('0x') || packageId.length < 3) {\n return null;\n }\n return packageId;\n }\n\n getAvailablePackagesList(): string {\n if (this.packageWhitelist.size > 0) {\n return Array.from(this.packageWhitelist).join(', ');\n }\n return 'contract whitelist';\n }\n}\n\nexport class ShareObjectValidator implements IPTBValidator {\n validate(moveCallsWithDetails: MoveCallWithObjectDetails[]): void {\n for (const { objectDetails } of moveCallsWithDetails) {\n for (const [objectId, detail] of objectDetails) {\n if (detail instanceof Error) {\n throw new Error(`Object ${objectId} does not have owner`);\n }\n if (!this.isSharedOrImmutable(detail.owner)) {\n throw new Error(`Object ${objectId} is not Shared/Immutable`);\n }\n }\n }\n }\n\n isSharedOrImmutable(owner: SuiClientTypes.ObjectOwner): boolean {\n return owner.$kind === 'Shared' || owner.$kind === 'Immutable';\n }\n}\n\nexport class MoveCallObjectFetcher {\n constructor(\n private readonly client: ClientWithCoreApi,\n private readonly batchSize = MAX_BATCH_SIZE,\n ) {}\n\n async fetchObjectDetails(\n moveCalls: MoveCall[],\n options: ObjectFetchOptions = {},\n ): Promise<MoveCallWithObjectDetails[]> {\n const objectIdSet = new Set<string>();\n for (const moveCall of moveCalls) {\n for (const arg of moveCall.arguments) {\n if ('Object' in arg) {\n objectIdSet.add(arg.Object);\n }\n }\n }\n const objectIds = Array.from(objectIdSet);\n if (objectIds.length === 0) {\n return moveCalls.map((moveCall) => ({ moveCall, objectDetails: new Map() }));\n }\n if (this.batchSize > MAX_BATCH_SIZE || this.batchSize < 1) {\n throw new Error(`batchSize must be between 1 and ${MAX_BATCH_SIZE}`);\n }\n const objectDetailsMap = new Map<string, ObjectDetail>();\n for (let i = 0; i < objectIds.length; i += this.batchSize) {\n const batch = objectIds.slice(i, i + this.batchSize);\n const { objects } = await this.client.core.getObjects({\n objectIds: batch,\n include: options,\n });\n objects.forEach((object, index) => {\n objectDetailsMap.set(batch[index], object as ObjectDetail);\n });\n }\n return moveCalls.map((moveCall) => {\n const objectDetails = new Map<string, ObjectDetail>();\n for (const arg of moveCall.arguments) {\n if ('Object' in arg) {\n const detail = objectDetailsMap.get(arg.Object);\n if (detail !== undefined) {\n objectDetails.set(arg.Object, detail);\n }\n }\n }\n return { moveCall, objectDetails };\n });\n }\n}\n\nexport const validateWithDetails = async (\n client: ClientWithCoreApi,\n moveCalls: MoveCall[],\n validators: IPTBValidator[],\n sender?: string,\n userOptions: ObjectFetchOptions = {},\n batchSize = MAX_BATCH_SIZE,\n): Promise<void> => {\n if (validators.length === 0) {\n return;\n }\n const objectFetcher = new MoveCallObjectFetcher(client, batchSize);\n const moveCallsWithDetails = await objectFetcher.fetchObjectDetails(moveCalls, userOptions);\n for (const validator of validators) {\n await validator.validate(moveCallsWithDetails, sender);\n }\n};\n"]}
@@ -0,0 +1,23 @@
1
+ import type { OFTFeeDetail, OFTInfoV1, OFTLimit, OFTReceipt } from '../types';
2
+ export declare const OFTLimitBcs: import("@mysten/sui/bcs").BcsStruct<{
3
+ min_amount_ld: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
4
+ max_amount_ld: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
5
+ }, string>;
6
+ export declare const OFTFeeDetailBcs: import("@mysten/sui/bcs").BcsStruct<{
7
+ fee_amount_ld: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
8
+ is_reward: import("@mysten/sui/bcs").BcsType<boolean, boolean, "bool">;
9
+ description: import("@mysten/sui/bcs").BcsType<string, string, "string">;
10
+ }, string>;
11
+ export declare const OFTReceiptBcs: import("@mysten/sui/bcs").BcsStruct<{
12
+ amount_sent_ld: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
13
+ amount_received_ld: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
14
+ }, string>;
15
+ export declare const OFTInfoV1Bcs: import("@mysten/sui/bcs").BcsStruct<{
16
+ oft_package: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
17
+ oft_object: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
18
+ }, string>;
19
+ export declare const parseOFTLimit: (data: Uint8Array) => OFTLimit;
20
+ export declare const parseOFTFeeDetails: (data: Uint8Array) => OFTFeeDetail[];
21
+ export declare const parseOFTReceipt: (data: Uint8Array) => OFTReceipt;
22
+ export declare const parseOFTInfoV1: (data: Uint8Array) => OFTInfoV1;
23
+ //# sourceMappingURL=oft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oft.d.ts","sourceRoot":"","sources":["../../src/bcs/oft.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG9E,eAAO,MAAM,WAAW;;;UAGtB,CAAC;AAGH,eAAO,MAAM,eAAe;;;;UAI1B,CAAC;AAGH,eAAO,MAAM,aAAa;;;UAGxB,CAAC;AAGH,eAAO,MAAM,YAAY;;;UAGvB,CAAC;AAGH,eAAO,MAAM,aAAa,SAAU,UAAU,KAAG,QAMhD,CAAC;AAGF,eAAO,MAAM,kBAAkB,SAAU,UAAU,KAAG,YAAY,EAgBjE,CAAC;AAGF,eAAO,MAAM,eAAe,SAAU,UAAU,KAAG,UAMlD,CAAC;AAGF,eAAO,MAAM,cAAc,SAAU,UAAU,KAAG,SAMjD,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { OFTFeeDetailBcs, OFTInfoV1Bcs, OFTLimitBcs, OFTReceiptBcs, parseOFTFeeDetails, parseOFTInfoV1, parseOFTLimit, parseOFTReceipt } from '../U4WYCHEV.js';
2
+ import '../VUOMXK5T.js';
3
+ //# sourceMappingURL=oft.js.map
4
+ //# sourceMappingURL=oft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"oft.js"}
@@ -0,0 +1,6 @@
1
+ export * from './modules/oft';
2
+ export * from './modules/oft-composer-manager';
3
+ export * from './protocol';
4
+ export * from './bcs/oft';
5
+ export * from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAC9B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,YAAY,CAAC;AAG3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ export { OFTMsgType } from './I5Z2GNDD.js';
2
+ export { OFTComposerManager, OFTComposerManagerErrorCode } from './AQUMEEKG.js';
3
+ export { OFT, OFTErrorCode } from './5YQUATNE.js';
4
+ export { OFTFeeDetailBcs, OFTInfoV1Bcs, OFTLimitBcs, OFTReceiptBcs, parseOFTFeeDetails, parseOFTInfoV1, parseOFTLimit, parseOFTReceipt } from './U4WYCHEV.js';
5
+ import './TF6IBJWJ.js';
6
+ export { SuiProtocolSDK } from './2PVXPTJR.js';
7
+ export { OApp } from './HD4WZG6B.js';
8
+ export { PtbBuilder, PtbBuilderErrorCode } from './DUMP7ZFT.js';
9
+ export { Utils } from './4DKNPMZP.js';
10
+ export { Zro } from './GLVZWDOK.js';
11
+ export { OBJECT_ADDRESS_MAP, PACKAGE_ADDRESS_MAP, mergeDefaultObjectConfig, mergeDefaultPackageConfig } from './JUS4ARN3.js';
12
+ export { CallTypeName, Endpoint, LzTypeName, callId, getTypeName, normalizeSuiPackageId } from './F5PNGH74.js';
13
+ export { MoveCallObjectFetcher, PackageAllowlistValidator, PackageWhitelistValidator, ShareObjectValidator, validateWithDetails } from './XCARM3YF.js';
14
+ export { determineSenderAddress, executeSimulate, handleError, simulateAllResults, simulateTransaction, simulateTransactionMultiResult } from './A3B5LALR.js';
15
+ export { DEFAULT_SIMULATION_TIMES, FunctionBcs, MAX_BATCH_SIZE, MessagingFeeBcs, MoveAbortError, OAppInfoV1Bcs, UnclassifiedError } from './TL7X5YWY.js';
16
+ export { asAddress, asAddressVector, asArg, asArgWithTx, asArgWithTxAsync, asBool, asBytes, asBytes32, asBytesVector, asObject, asString, asU128, asU16, asU256, asU32, asU64, asU8, isTransactionArgument, toTypeArgument } from './UIOGD65B.js';
17
+ import './VUOMXK5T.js';
18
+ //# sourceMappingURL=index.js.map
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,55 @@
1
+ import type { ClientWithCoreApi } from '@mysten/sui/client';
2
+ import type { Transaction, TransactionArgument, TransactionResult } from '@mysten/sui/transactions';
3
+ import type { SuiProtocolSDK } from '../protocol';
4
+ export declare const OFTComposerManagerErrorCode: {
5
+ readonly EComposeTransferNotFound: 1;
6
+ readonly EDepositAddressNotFound: 2;
7
+ readonly EInvalidDepositAddress: 3;
8
+ };
9
+ /**
10
+ * OFT Composer Manager
11
+ *
12
+ * This class manages the registry for OFT Composer operations, including
13
+ * deposit addresses and compose transfer routing for cross-chain composition.
14
+ */
15
+ export declare class OFTComposerManager {
16
+ #private;
17
+ packageId: string;
18
+ readonly client: ClientWithCoreApi;
19
+ readonly registryObjectId: string;
20
+ private readonly protocolSDK;
21
+ constructor(protocolSDK: SuiProtocolSDK, packageId: string, registryObjectId: string);
22
+ /**
23
+ * Set deposit address for OFT composer
24
+ * @param tx - The transaction to add the move call to
25
+ * @param composerCallCap - The composer call capability transaction result
26
+ * @param depositAddress - The new deposit address
27
+ * @returns Transaction result containing the set operation
28
+ */
29
+ setDepositAddressMoveCall(tx: Transaction, composerCallCap: string | TransactionArgument, depositAddress: string | TransactionArgument): TransactionResult;
30
+ /**
31
+ * Get deposit address for a composer
32
+ * @param tx - The transaction to add the move call to
33
+ * @param composer - The composer address
34
+ * @returns Transaction result containing the deposit address
35
+ */
36
+ getDepositAddressMoveCall(tx: Transaction, composer: string | TransactionArgument): TransactionResult;
37
+ /**
38
+ * Get compose transfer object for composition operations
39
+ * @param tx - The transaction to add the move call to
40
+ * @param from - The sender address
41
+ * @param guid - The GUID transaction result
42
+ * @param composer - The composer address
43
+ * @returns Transaction result containing the compose transfer object
44
+ */
45
+ getComposeTransferMoveCall(tx: Transaction, from: string | TransactionArgument, guid: Uint8Array | TransactionArgument, composer: string | TransactionArgument): TransactionResult;
46
+ /**
47
+ * Get compose transfer object address
48
+ * @param from - The sender address
49
+ * @param guid - The GUID as number array
50
+ * @param composer - The composer address
51
+ * @returns Promise<string> - The compose transfer object address
52
+ */
53
+ getComposeTransfer(from: string, guid: Uint8Array, composer: string): Promise<string>;
54
+ }
55
+ //# sourceMappingURL=oft-composer-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oft-composer-manager.d.ts","sourceRoot":"","sources":["../../src/modules/oft-composer-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,eAAO,MAAM,2BAA2B;aAEpC,wBAAwB,EAAE,CAAC;aAC3B,uBAAuB,EAAE,CAAC;aAC1B,sBAAsB,EAAE,CAAC;CACnB,CAAC;AAEX;;;;;GAKG;AACH,qBAAa,kBAAkB;;IACpB,SAAS,EAAE,MAAM,CAAC;IACzB,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAC1C,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C,YAAY,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAKnF;IAID;;;;;;OAMG;IACH,yBAAyB,CACrB,EAAE,EAAE,WAAW,EACf,eAAe,EAAE,MAAM,GAAG,mBAAmB,EAC7C,cAAc,EAAE,MAAM,GAAG,mBAAmB,GAC7C,iBAAiB,CASnB;IAID;;;;;OAKG;IACH,yBAAyB,CACrB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GACvC,iBAAiB,CAKnB;IAED;;;;;;;OAOG;IACH,0BAA0B,CACtB,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAClC,IAAI,EAAE,UAAU,GAAG,mBAAmB,EACtC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,GACvC,iBAAiB,CAUnB;IAED;;;;;;OAMG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB1F;CAaJ"}
@@ -0,0 +1,16 @@
1
+ export { OFTComposerManager, OFTComposerManagerErrorCode } from '../AQUMEEKG.js';
2
+ import '../TF6IBJWJ.js';
3
+ import '../2PVXPTJR.js';
4
+ import '../HD4WZG6B.js';
5
+ import '../DUMP7ZFT.js';
6
+ import '../4DKNPMZP.js';
7
+ import '../GLVZWDOK.js';
8
+ import '../JUS4ARN3.js';
9
+ import '../F5PNGH74.js';
10
+ import '../XCARM3YF.js';
11
+ import '../A3B5LALR.js';
12
+ import '../TL7X5YWY.js';
13
+ import '../UIOGD65B.js';
14
+ import '../VUOMXK5T.js';
15
+ //# sourceMappingURL=oft-composer-manager.js.map
16
+ //# sourceMappingURL=oft-composer-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"oft-composer-manager.js"}