@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.
- package/LICENSE +23 -0
- package/README.md +172 -2
- package/dist/2PVXPTJR.js +57 -0
- package/dist/2PVXPTJR.js.map +1 -0
- package/dist/4DKNPMZP.js +82 -0
- package/dist/4DKNPMZP.js.map +1 -0
- package/dist/5YQUATNE.js +1292 -0
- package/dist/5YQUATNE.js.map +1 -0
- package/dist/A3B5LALR.js +67 -0
- package/dist/A3B5LALR.js.map +1 -0
- package/dist/AQUMEEKG.js +108 -0
- package/dist/AQUMEEKG.js.map +1 -0
- package/dist/DUMP7ZFT.js +200 -0
- package/dist/DUMP7ZFT.js.map +1 -0
- package/dist/F5PNGH74.js +212 -0
- package/dist/F5PNGH74.js.map +1 -0
- package/dist/GLVZWDOK.js +49 -0
- package/dist/GLVZWDOK.js.map +1 -0
- package/dist/HD4WZG6B.js +38 -0
- package/dist/HD4WZG6B.js.map +1 -0
- package/dist/I5Z2GNDD.js +9 -0
- package/dist/I5Z2GNDD.js.map +1 -0
- package/dist/JUS4ARN3.js +78 -0
- package/dist/JUS4ARN3.js.map +1 -0
- package/dist/TF6IBJWJ.js +3 -0
- package/dist/TF6IBJWJ.js.map +1 -0
- package/dist/TL7X5YWY.js +39 -0
- package/dist/TL7X5YWY.js.map +1 -0
- package/dist/U4WYCHEV.js +54 -0
- package/dist/U4WYCHEV.js.map +1 -0
- package/dist/UIOGD65B.js +35 -0
- package/dist/UIOGD65B.js.map +1 -0
- package/dist/VUOMXK5T.js +6 -0
- package/dist/VUOMXK5T.js.map +1 -0
- package/dist/XCARM3YF.js +219 -0
- package/dist/XCARM3YF.js.map +1 -0
- package/dist/bcs/oft.d.ts +23 -0
- package/dist/bcs/oft.d.ts.map +1 -0
- package/dist/bcs/oft.js +4 -0
- package/dist/bcs/oft.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/oft-composer-manager.d.ts +55 -0
- package/dist/modules/oft-composer-manager.d.ts.map +1 -0
- package/dist/modules/oft-composer-manager.js +16 -0
- package/dist/modules/oft-composer-manager.js.map +1 -0
- package/dist/modules/oft.d.ts +502 -0
- package/dist/modules/oft.d.ts.map +1 -0
- package/dist/modules/oft.js +17 -0
- package/dist/modules/oft.js.map +1 -0
- package/dist/protocol/args.d.ts +22 -0
- package/dist/protocol/args.d.ts.map +1 -0
- package/dist/protocol/args.js +4 -0
- package/dist/protocol/args.js.map +1 -0
- package/dist/protocol/deployments.d.ts +25 -0
- package/dist/protocol/deployments.d.ts.map +1 -0
- package/dist/protocol/deployments.js +4 -0
- package/dist/protocol/deployments.js.map +1 -0
- package/dist/protocol/endpoint.d.ts +40 -0
- package/dist/protocol/endpoint.d.ts.map +1 -0
- package/dist/protocol/endpoint.js +8 -0
- package/dist/protocol/endpoint.js.map +1 -0
- package/dist/protocol/index.d.ts +12 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +15 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/oapp.d.ts +14 -0
- package/dist/protocol/oapp.d.ts.map +1 -0
- package/dist/protocol/oapp.js +6 -0
- package/dist/protocol/oapp.js.map +1 -0
- package/dist/protocol/ptb-builder.d.ts +17 -0
- package/dist/protocol/ptb-builder.d.ts.map +1 -0
- package/dist/protocol/ptb-builder.js +7 -0
- package/dist/protocol/ptb-builder.js.map +1 -0
- package/dist/protocol/sdk.d.ts +27 -0
- package/dist/protocol/sdk.d.ts.map +1 -0
- package/dist/protocol/sdk.js +14 -0
- package/dist/protocol/sdk.js.map +1 -0
- package/dist/protocol/simulate.d.ts +10 -0
- package/dist/protocol/simulate.d.ts.map +1 -0
- package/dist/protocol/simulate.js +5 -0
- package/dist/protocol/simulate.js.map +1 -0
- package/dist/protocol/types.d.ts +63 -0
- package/dist/protocol/types.d.ts.map +1 -0
- package/dist/protocol/types.js +4 -0
- package/dist/protocol/types.js.map +1 -0
- package/dist/protocol/utils.d.ts +11 -0
- package/dist/protocol/utils.d.ts.map +1 -0
- package/dist/protocol/utils.js +5 -0
- package/dist/protocol/utils.js.map +1 -0
- package/dist/protocol/validators.d.ts +44 -0
- package/dist/protocol/validators.d.ts.map +1 -0
- package/dist/protocol/validators.js +7 -0
- package/dist/protocol/validators.js.map +1 -0
- package/dist/protocol/zro.d.ts +13 -0
- package/dist/protocol/zro.d.ts.map +1 -0
- package/dist/protocol/zro.js +4 -0
- package/dist/protocol/zro.js.map +1 -0
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- 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"]}
|
package/dist/UIOGD65B.js
ADDED
|
@@ -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":"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","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"]}
|
package/dist/VUOMXK5T.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"VUOMXK5T.js"}
|
package/dist/XCARM3YF.js
ADDED
|
@@ -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"}
|
package/dist/bcs/oft.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"oft.js"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|