@layerzerolabs/common-suimove 0.2.67 → 0.2.69

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.
@@ -18,25 +18,26 @@ Generated an empty chunk: "QRJFMNTB".
18
18
  Generated an empty chunk: "DMFKLZKD".
19
19
  Generated an empty chunk: "Y5EOMP5J".
20
20
  CJS dist/error.cjs 454.00 B
21
- CJS dist/index.cjs 3.18 KB
21
+ CJS dist/index.cjs 3.19 KB
22
22
  CJS dist/multiSigTransaction.cjs 778.00 B
23
- CJS dist/provider.cjs 118.00 B
24
23
  CJS dist/R55BZY4H.cjs 1.22 KB
24
+ CJS dist/provider.cjs 118.00 B
25
25
  CJS dist/L6EI37IO.cjs 90.00 B
26
26
  CJS dist/transaction.cjs 124.00 B
27
27
  CJS dist/7LWJNWY6.cjs 90.00 B
28
28
  CJS dist/types.cjs 112.00 B
29
- CJS dist/utils.cjs 2.26 KB
30
29
  CJS dist/PKPG4OQE.cjs 90.00 B
30
+ CJS dist/utils.cjs 2.28 KB
31
+ CJS dist/3I7UTUWR.cjs 10.42 KB
31
32
  CJS dist/ZW4CIJT7.cjs 671.00 B
32
33
  CJS dist/verification.cjs 346.00 B
33
- CJS dist/BJANQBLL.cjs 10.42 KB
34
- CJS dist/K3HXCRDT.cjs 513.00 B
35
34
  CJS dist/YJF4D23A.cjs 245.00 B
35
+ CJS dist/K3HXCRDT.cjs 513.00 B
36
36
  CJS dist/error.cjs.map 70.00 B
37
37
  CJS dist/index.cjs.map 70.00 B
38
38
  CJS dist/multiSigTransaction.cjs.map 84.00 B
39
39
  CJS dist/provider.cjs.map 73.00 B
40
+ CJS dist/R55BZY4H.cjs.map 2.39 KB
40
41
  CJS dist/L6EI37IO.cjs.map 73.00 B
41
42
  CJS dist/transaction.cjs.map 76.00 B
42
43
  CJS dist/7LWJNWY6.cjs.map 73.00 B
@@ -45,41 +46,40 @@ Generated an empty chunk: "Y5EOMP5J".
45
46
  CJS dist/utils.cjs.map 70.00 B
46
47
  CJS dist/ZW4CIJT7.cjs.map 822.00 B
47
48
  CJS dist/verification.cjs.map 77.00 B
48
- CJS dist/R55BZY4H.cjs.map 2.39 KB
49
49
  CJS dist/YJF4D23A.cjs.map 73.00 B
50
50
  CJS dist/K3HXCRDT.cjs.map 828.00 B
51
- CJS dist/BJANQBLL.cjs.map 28.86 KB
52
- CJS ⚡️ Build success in 315ms
51
+ CJS dist/3I7UTUWR.cjs.map 28.83 KB
52
+ CJS ⚡️ Build success in 378ms
53
53
  ESM dist/error.js 168.00 B
54
- ESM dist/provider.js 97.00 B
55
- ESM dist/transaction.js 103.00 B
56
- ESM dist/multiSigTransaction.js 293.00 B
57
54
  ESM dist/index.js 811.00 B
55
+ ESM dist/multiSigTransaction.js 293.00 B
56
+ ESM dist/transaction.js 103.00 B
58
57
  ESM dist/DMFKLZKD.js 74.00 B
59
- ESM dist/utils.js 498.00 B
60
58
  ESM dist/types.js 91.00 B
61
- ESM dist/QRJFMNTB.js 74.00 B
62
59
  ESM dist/Y5EOMP5J.js 74.00 B
63
- ESM dist/WITSYWN5.js 9.73 KB
64
60
  ESM dist/VABOX5FT.js 570.00 B
65
61
  ESM dist/verification.js 172.00 B
66
- ESM dist/VUOMXK5T.js 222.00 B
62
+ ESM dist/QRJFMNTB.js 74.00 B
67
63
  ESM dist/2RWPJSYR.js 413.00 B
64
+ ESM dist/VUOMXK5T.js 222.00 B
65
+ ESM dist/utils.js 498.00 B
66
+ ESM dist/UWX3Y5ZB.js 9.73 KB
67
+ ESM dist/provider.js 97.00 B
68
68
  ESM dist/JZMKCXBO.js 1.07 KB
69
69
  ESM dist/error.js.map 69.00 B
70
- ESM dist/transaction.js.map 75.00 B
71
- ESM dist/multiSigTransaction.js.map 83.00 B
72
70
  ESM dist/index.js.map 69.00 B
73
- ESM dist/utils.js.map 69.00 B
71
+ ESM dist/multiSigTransaction.js.map 83.00 B
74
72
  ESM dist/DMFKLZKD.js.map 72.00 B
75
- ESM dist/provider.js.map 72.00 B
76
- ESM dist/Y5EOMP5J.js.map 72.00 B
77
- ESM dist/QRJFMNTB.js.map 72.00 B
78
73
  ESM dist/types.js.map 69.00 B
74
+ ESM dist/Y5EOMP5J.js.map 72.00 B
79
75
  ESM dist/VABOX5FT.js.map 819.00 B
80
- ESM dist/WITSYWN5.js.map 28.82 KB
76
+ ESM dist/verification.js.map 76.00 B
77
+ ESM dist/QRJFMNTB.js.map 72.00 B
81
78
  ESM dist/2RWPJSYR.js.map 813.00 B
82
- ESM dist/JZMKCXBO.js.map 2.39 KB
83
79
  ESM dist/VUOMXK5T.js.map 72.00 B
84
- ESM dist/verification.js.map 76.00 B
85
- ESM ⚡️ Build success in 317ms
80
+ ESM dist/utils.js.map 69.00 B
81
+ ESM dist/transaction.js.map 75.00 B
82
+ ESM dist/UWX3Y5ZB.js.map 28.78 KB
83
+ ESM dist/provider.js.map 72.00 B
84
+ ESM dist/JZMKCXBO.js.map 2.39 KB
85
+ ESM ⚡️ Build success in 379ms
@@ -2,7 +2,7 @@
2
2
  > @layerzerolabs/common-suimove@0.0.0 lint /home/runner/work/monorepo-internal/monorepo-internal/packages/vms/common-suimove
3
3
  > eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)
4
4
 
5
- (node:70686) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1775770562286 is not specified and it doesn't parse as CommonJS.
5
+ (node:71097) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1776091380215 is not specified and it doesn't parse as CommonJS.
6
6
  Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
7
7
  To eliminate this warning, add "type": "module" to /home/runner/work/monorepo-internal/monorepo-internal/package.json.
8
8
  (Use `node --trace-warnings ...` to show where the warning was created)
@@ -8,9 +8,9 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
8
8
   RUN  v3.2.4 /home/runner/work/monorepo-internal/monorepo-internal/packages/vms/common-suimove
9
9
 
10
10
  No test files found, exiting with code 0
11
+
11
12
  include: **/*.{test,spec}.?(c|m)[jt]s?(x)
12
13
  exclude: **/node_modules/**, **/dist/**, **/cypress/**, **/.{idea,git,cache,output,temp}/**, **/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*
13
-
14
14
  typecheck include: **/*.{test,spec}-d.?(c|m)[jt]s?(x)
15
15
  typecheck exclude: **/node_modules/**, **/dist/**, **/cypress/**, **/.{idea,git,cache,output,temp}/**, **/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*
16
16
 
@@ -284,5 +284,5 @@ exports.searchForCoinTypeInWallet = searchForCoinTypeInWallet;
284
284
  exports.suiMoveView = suiMoveView;
285
285
  exports.suiMoveViewMultiResult = suiMoveViewMultiResult;
286
286
  exports.suiMoveViewParsed = suiMoveViewParsed;
287
- //# sourceMappingURL=BJANQBLL.cjs.map
288
- //# sourceMappingURL=BJANQBLL.cjs.map
287
+ //# sourceMappingURL=3I7UTUWR.cjs.map
288
+ //# sourceMappingURL=3I7UTUWR.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts"],"names":["MOCK_SENDER","objectOptionKeys","blockResponseOptionsKeys","validateOptions","__name","data","fullOptionKeys","options","forEach","option","fieldName","slice","length","field","charAt","toLowerCase","Error","Object","fromEntries","entries","map","key","value","expectedField","objectId","checkInclusion","objectType","query","check","type","includes","startsWith","endsWith","RegExp","test","filterObjectChanges","objectChanges","result","capitalize","s","toUpperCase","objectChange","showPublished","packageId","push","show","convertToSuiMoveEvents","rawEvents","event","parsedJson","txHash","id","txDigest","handleError","e","majorStatusMatch","match","major_status","subStatusMatch","SuiMoveAbortError","Number","NEGATIVE_INFINITY","SuiMoveUnclassifiedError","suiMoveViewMultiResult","client","tx","resultIndex","results","error","devInspectSuiMoveTransactionBlock","transactionBlock","sender","undefined","selectedResults","idx","returnValues","fromBase64","Uint8Array","suiMoveView","suiClient","getData","commands","suiMoveViewParsed","parser","getDefiningPackageIdFromObjectType","chainName","address","parseStructTag","normalizeSuiMoveAddress","getSuiMoveObjectValidated","args","object","getSuiMoveObject","cause","getSuiMoveTransactionBlockValidated","txBlock","getSuiMoveTransactionBlock","errors","searchForCoinTypeInWallet","coinPackageId","walletAddress","cursor","hasNextPage","coinObjects","coins","getAllSuiMoveCoins","owner","limit","normalizedCoinPackageId","matchedCoins","filter","coin","coinType","definingPackageId","concat","nextCursor","sort","a","b","BigInt","balance","getSuiMoveOwnedObjectsByType","typeInclusions","typeInclusionsArray","objects","getSuiMoveOwnedObject","showType","validated","allowPartial","keys","difference","Set","k","delete","getSuiMovePackagePublishObjectChanges","queries","pkgObject","showPreviousTransaction","digest","previousTransaction","showObjectChanges","ChainName","IOTAL1","normalizeIotaAddress","normalizeSuiAddress"],"mappings":"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","file":"BJANQBLL.cjs","sourcesContent":["import { normalizeIotaAddress } from '@iota/iota-sdk/utils';\nimport type {\n CoinStruct,\n GetObjectParams,\n GetTransactionBlockParams,\n SuiObjectChange,\n SuiObjectDataOptions,\n SuiTransactionBlockResponseOptions,\n} from '@mysten/sui/client';\nimport { fromBase64, normalizeSuiAddress, parseStructTag } from '@mysten/sui/utils';\n\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport type {\n AllRequired,\n MaybePartial,\n Prettify,\n RemoveNever,\n} from '@layerzerolabs/typescript-utils';\n\nimport { SuiMoveAbortError, SuiMoveUnclassifiedError } from './error';\nimport type { SuiMoveProvider } from './provider';\nimport type { SuiMoveTransaction } from './transaction';\nimport type {\n SuiMoveEvent,\n SuiMoveExecutionResult,\n SuiMoveObjectResponse,\n SuiMoveTransactionBlockResponse,\n SuiMoveViewResult,\n} from './types';\n\nconst MOCK_SENDER = '0x1234567890123456789012345678901234567890123456789012345678901234';\n\nexport interface MatchQuery {\n type: string;\n check: 'includes' | 'startsWith' | 'endsWith' | 'equals' | 'regex';\n}\n\ntype FullObjectOptions = AllRequired<SuiObjectDataOptions>;\ntype FullBlockResponseOptions = AllRequired<SuiTransactionBlockResponseOptions>;\n\ntype ObjectChangeTypes = SuiObjectChange['type'];\ntype ObjectChangeTypesOptions = {\n [K in ObjectChangeTypes as `show${Capitalize<K>}`]?: boolean;\n};\n\ntype ObjectChangeTypeResults<Options extends ObjectChangeTypesOptions> = Prettify<\n RemoveNever<{\n [K in ObjectChangeTypes]: `show${Capitalize<K>}` extends keyof Options\n ? Options[`show${Capitalize<K>}`] extends true\n ? Extract<SuiObjectChange, { type: K }>[]\n : never\n : never;\n }>\n>;\n\nconst objectOptionKeys: (keyof FullObjectOptions)[] = [\n 'showBcs',\n 'showContent',\n 'showType',\n 'showDisplay',\n 'showOwner',\n 'showPreviousTransaction',\n 'showStorageRebate',\n] as const;\n\nconst blockResponseOptionsKeys: (keyof FullBlockResponseOptions)[] = [\n 'showBalanceChanges',\n 'showEffects',\n 'showEvents',\n 'showObjectChanges',\n 'showRawEffects',\n] as const;\n\ntype OptionsValidated<\n FullOptions extends Record<string, any>,\n CurrentOptions extends Record<string, any>,\n Data extends Record<string, any>,\n> = Prettify<\n RemoveNever<{\n [key in keyof AllRequired<Data>]: key extends string\n ? `show${Capitalize<key>}` extends keyof FullOptions\n ? CurrentOptions[`show${Capitalize<key>}`] extends true\n ? NonNullable<Data[key]>\n : never\n : Data[key]\n : never;\n }>\n>;\n\nconst validateOptions = <\n FullOptions extends Record<string, any>,\n Options extends Record<string, any>,\n Data extends Record<string, any>,\n>(\n data: Data,\n fullOptionKeys: string[],\n options?: Options,\n): OptionsValidated<FullOptions, Options, Data> => {\n // check inclusion of all options\n fullOptionKeys.forEach((option) => {\n // Remove 'show' prefix and convert first letter to lowercase for camelCase\n const fieldName = option.slice('show'.length);\n const field = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (options?.[option] && !data[field]) {\n throw new Error(`Missing required field ${field} on data object ${data}`);\n }\n });\n\n // check validity of inclusions:\n return Object.fromEntries(\n Object.entries(data).map(([key, value]) => {\n for (const option of fullOptionKeys) {\n // Convert option to expected field name\n const fieldName = option.slice('show'.length);\n const expectedField = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (expectedField === key && options?.[option] && !value) {\n throw new Error(\n `Failed fetching data for option ${option} on object ${data.objectId}`,\n );\n }\n }\n return [key, value];\n }),\n ) as OptionsValidated<FullObjectOptions, Options, Data>;\n};\n\nexport const checkInclusion = (objectType: string, query: MatchQuery) => {\n const check = query.check;\n const type = query.type;\n switch (check) {\n case 'includes':\n return objectType.includes(type);\n case 'startsWith':\n return objectType.startsWith(type);\n case 'endsWith':\n return objectType.endsWith(type);\n case 'equals':\n return objectType === type;\n case 'regex':\n return new RegExp(type).test(objectType);\n default:\n throw new Error(`Unknown check type: ${check}`);\n }\n};\n\nexport const filterObjectChanges = <Options extends ObjectChangeTypesOptions>(\n objectChanges: SuiObjectChange[],\n query: MatchQuery | 'all',\n options?: Options,\n): ObjectChangeTypeResults<Options> => {\n const result = {} as ObjectChangeTypeResults<Options>;\n type key = keyof ObjectChangeTypeResults<Options>;\n const capitalize = (s: string) => s.slice(0, 1).toUpperCase() + s.slice(1);\n\n for (const objectChange of objectChanges) {\n // Published has packageId\n if (objectChange.type === 'published') {\n if (\n options?.showPublished &&\n (query === 'all' || checkInclusion(objectChange.packageId, query))\n ) {\n // FIXME: maybe we can remove these as? not sure though\n result['published' as key] ??= [] as any;\n result['published' as key].push(objectChange as any);\n }\n } else {\n // Everyone else has objectType\n const show = `show${capitalize(objectChange.type)}` as keyof Options;\n if (\n options?.[show] &&\n (query === 'all' || checkInclusion(objectChange.objectType, query))\n ) {\n // FIXME: maybe we can remove these as? not sure though\n result[objectChange.type as key] ??= [] as any;\n result[objectChange.type as key].push(objectChange as any);\n }\n }\n }\n\n return result;\n};\n\n/**\n * Converts raw Sui move events to SuiMoveEvent format\n */\nexport const convertToSuiMoveEvents = (rawEvents: any[]): SuiMoveEvent[] => {\n return rawEvents.map((event) => ({\n type: event.type,\n data: event.parsedJson,\n txHash: event.id.txDigest,\n }));\n};\n\nexport function handleError(e: string): unknown {\n if (e.includes('ExecutionError')) {\n const majorStatusMatch = e.match(/major_status:\\s([A-Z_]+)/);\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1];\n if (major_status === 'ABORTED') {\n const subStatusMatch = e.match(/sub_status:\\sSome\\((\\d+)\\)/);\n if (subStatusMatch === null) {\n return new SuiMoveAbortError(Number.NEGATIVE_INFINITY, e);\n } else {\n return new SuiMoveAbortError(Number(subStatusMatch[1]), e);\n }\n }\n } else {\n return new SuiMoveUnclassifiedError(e);\n }\n }\n return new Error(e);\n}\n\nexport async function suiMoveViewMultiResult(\n client: SuiMoveProvider,\n tx: SuiMoveTransaction,\n resultIndex: number[],\n): Promise<SuiMoveViewResult[][]> {\n const { results, error } = await client.devInspectSuiMoveTransactionBlock({\n transactionBlock: tx,\n sender: MOCK_SENDER,\n });\n\n if (error != undefined && error != null) {\n throw handleError(error);\n }\n if (results === undefined || results === null) {\n throw new Error('No results found');\n }\n\n const selectedResults: SuiMoveExecutionResult[] = resultIndex.map((idx) => {\n return results[idx];\n });\n\n return selectedResults.map((result) => {\n if (result.returnValues === undefined) {\n throw new Error('No return values found');\n }\n return result.returnValues.map((result) => {\n return {\n value:\n typeof result[0] === 'string'\n ? fromBase64(result[0])\n : new Uint8Array(result[0]),\n type: result[1],\n };\n });\n });\n}\n\nexport async function suiMoveView(\n suiClient: SuiMoveProvider,\n tx: SuiMoveTransaction,\n): Promise<SuiMoveViewResult[]> {\n const results = await suiMoveViewMultiResult(suiClient, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return results[0];\n}\n\nexport async function suiMoveViewParsed<T>({\n client,\n tx,\n parser,\n}: {\n client: SuiMoveProvider;\n tx: SuiMoveTransaction;\n parser: (result: { value: Uint8Array }[]) => T;\n}): Promise<T> {\n const results = await suiMoveViewMultiResult(client, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return parser(results[0]);\n}\n\n/**\n * Returns the defining package ID for a given object type. This is the package\n * that defined the object's Move type at the time the object was created.\n *\n * @param objectType The object type, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7::my_coin::MY_COIN\n * @returns The defining package ID, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7\n */\nexport function getDefiningPackageIdFromObjectType(\n chainName: ChainName,\n objectType: string,\n): string {\n const address = parseStructTag(objectType).address;\n return normalizeSuiMoveAddress(address, chainName);\n}\n\nexport async function getSuiMoveObjectValidated<const Options extends SuiObjectDataOptions>(\n args: Omit<GetObjectParams, 'options'> & { options?: Options; client: SuiMoveProvider },\n): Promise<\n OptionsValidated<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>\n> {\n const object = await args.client.getSuiMoveObject(args);\n if (object.error) {\n throw new Error(`Failed to get object ${args.id}`, { cause: object.error });\n } else if (!object.data) {\n throw new Error(`Object not found: ${args.id}`);\n }\n\n return validateOptions<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>(\n object.data,\n objectOptionKeys,\n args.options,\n );\n}\n\nexport async function getSuiMoveTransactionBlockValidated<\n const Options extends SuiTransactionBlockResponseOptions,\n>(\n args: Omit<GetTransactionBlockParams, 'options'> & {\n options?: Options;\n client: SuiMoveProvider;\n },\n): Promise<OptionsValidated<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>> {\n const txBlock = await args.client.getSuiMoveTransactionBlock(args);\n if (txBlock.errors?.length) {\n throw new Error(`Couldn't fetch transaction block due to errors: ${txBlock.errors}`);\n }\n\n return validateOptions<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>(\n txBlock,\n blockResponseOptionsKeys,\n args.options,\n );\n}\n\n/**\n * Fetches all owned coins that have the specified package id\n * @param chainName chainName to denormalize the addresses\n * @param normalizedCoinPackageId Coin package id to search for\n * @param normalizedWalletAddress Wallet address to search for coins on\n * @returns Array of all found coin objects, sorted by balance\n */\nexport async function searchForCoinTypeInWallet(\n chainName: ChainName,\n coinPackageId: string,\n walletAddress: string,\n client: SuiMoveProvider,\n): Promise<CoinStruct[]> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n let coinObjects = [] as CoinStruct[];\n\n while (hasNextPage) {\n const coins = await client.getAllSuiMoveCoins({\n owner: walletAddress,\n limit: 50,\n cursor,\n });\n\n // Sui has its own normalization for addresses that we need to use to compare addresses\n const normalizedCoinPackageId = normalizeSuiMoveAddress(coinPackageId, chainName);\n\n const matchedCoins = coins.data.filter((coin) => {\n const coinType = coin.coinType;\n const definingPackageId = getDefiningPackageIdFromObjectType(chainName, coinType);\n return definingPackageId === normalizedCoinPackageId;\n });\n\n coinObjects = coinObjects.concat(matchedCoins);\n cursor = coins.nextCursor;\n hasNextPage = coins.hasNextPage;\n }\n return coinObjects.sort((a, b) => Number(BigInt(b.balance) - BigInt(a.balance)));\n}\n\nexport async function getSuiMoveOwnedObjectsByType<\n T extends Record<string, MatchQuery>,\n Options extends SuiObjectDataOptions,\n AllowPartial extends boolean = false,\n>({\n walletAddress,\n typeInclusions,\n options,\n client,\n}: {\n walletAddress: string;\n typeInclusions: T;\n options?: Omit<Options, 'showType'> & { allowPartial?: AllowPartial };\n client: SuiMoveProvider;\n}): Promise<\n Record<\n keyof T,\n MaybePartial<\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[],\n AllowPartial\n >\n >\n> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n const result = {} as Record<\n keyof T,\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[]\n >;\n const typeInclusionsArray = Object.entries(typeInclusions);\n\n while (hasNextPage) {\n const objects = await client.getSuiMoveOwnedObject({\n owner: walletAddress,\n options: {\n ...options,\n showType: true,\n },\n cursor,\n limit: 50,\n });\n for (const object of objects.data) {\n if (!object.data) continue;\n const objectType = object.data.type;\n if (!objectType) {\n continue;\n }\n for (const [key, query] of typeInclusionsArray) {\n if (checkInclusion(objectType, query)) {\n const validated = validateOptions<\n FullObjectOptions,\n Options,\n NonNullable<SuiMoveObjectResponse['data']>\n >(object.data, objectOptionKeys, options as Options | undefined);\n result[key as keyof T] ??= [];\n result[key as keyof T].push(validated);\n }\n }\n }\n cursor = objects.nextCursor;\n hasNextPage = objects.hasNextPage;\n }\n\n if (!options?.allowPartial && Object.keys(result).length !== typeInclusionsArray.length) {\n const difference = new Set(typeInclusionsArray.map(([k]) => k));\n Object.keys(result).forEach((key) => difference.delete(key));\n throw new Error(`Couldn't find all objects, missing: ${[...difference]}`);\n }\n\n return result;\n}\n\nexport async function getSuiMovePackagePublishObjectChanges<\n Queries extends Record<string, MatchQuery | 'all'>,\n ChangeOptions extends ObjectChangeTypesOptions,\n>({\n packageId,\n queries,\n options,\n client,\n}: {\n packageId: string;\n queries: Queries;\n client: SuiMoveProvider;\n options?: ChangeOptions;\n}): Promise<Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>> {\n const pkgObject = await getSuiMoveObjectValidated({\n id: packageId,\n client,\n options: { showPreviousTransaction: true },\n });\n\n const txBlock = await getSuiMoveTransactionBlockValidated({\n digest: pkgObject.previousTransaction,\n options: { showObjectChanges: true },\n client,\n });\n\n return Object.fromEntries(\n Object.entries(queries).map(([k, query]) => {\n return [k, filterObjectChanges(txBlock.objectChanges, query, options)];\n }),\n ) as Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>;\n}\n\nexport const normalizeSuiMoveAddress = (address: string, chainName: ChainName) => {\n if (chainName === ChainName.IOTAL1) {\n return normalizeIotaAddress(address);\n }\n return normalizeSuiAddress(address);\n};\n"]}
1
+ {"version":3,"sources":["../src/utils.ts"],"names":["MOCK_SENDER","objectOptionKeys","blockResponseOptionsKeys","validateOptions","__name","data","fullOptionKeys","options","forEach","option","fieldName","slice","length","field","charAt","toLowerCase","Error","Object","fromEntries","entries","map","key","value","expectedField","objectId","checkInclusion","objectType","query","check","type","includes","startsWith","endsWith","RegExp","test","filterObjectChanges","objectChanges","result","capitalize","s","toUpperCase","objectChange","showPublished","packageId","push","show","convertToSuiMoveEvents","rawEvents","event","parsedJson","txHash","id","txDigest","handleError","e","majorStatusMatch","match","major_status","subStatusMatch","SuiMoveAbortError","Number","NEGATIVE_INFINITY","SuiMoveUnclassifiedError","suiMoveViewMultiResult","client","tx","resultIndex","results","error","devInspectSuiMoveTransactionBlock","transactionBlock","sender","undefined","selectedResults","idx","returnValues","fromBase64","Uint8Array","suiMoveView","suiClient","getData","commands","suiMoveViewParsed","parser","getDefiningPackageIdFromObjectType","chainName","address","parseStructTag","normalizeSuiMoveAddress","getSuiMoveObjectValidated","args","object","getSuiMoveObject","cause","getSuiMoveTransactionBlockValidated","txBlock","getSuiMoveTransactionBlock","errors","searchForCoinTypeInWallet","coinPackageId","walletAddress","cursor","hasNextPage","coinObjects","coins","getAllSuiMoveCoins","owner","limit","normalizedCoinPackageId","matchedCoins","filter","coin","coinType","definingPackageId","concat","nextCursor","sort","a","b","BigInt","balance","getSuiMoveOwnedObjectsByType","typeInclusions","typeInclusionsArray","objects","getSuiMoveOwnedObject","showType","validated","allowPartial","keys","difference","Set","k","delete","getSuiMovePackagePublishObjectChanges","queries","pkgObject","showPreviousTransaction","digest","previousTransaction","showObjectChanges","ChainName","IOTAL1","normalizeIotaAddress","normalizeSuiAddress"],"mappings":"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","file":"3I7UTUWR.cjs","sourcesContent":["import { normalizeIotaAddress } from '@iota/iota-sdk/utils';\nimport type {\n CoinStruct,\n GetObjectParams,\n GetTransactionBlockParams,\n SuiObjectChange,\n SuiObjectDataOptions,\n SuiTransactionBlockResponseOptions,\n} from '@mysten/sui/client';\nimport { fromBase64, normalizeSuiAddress, parseStructTag } from '@mysten/sui/utils';\n\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport type {\n AllRequired,\n MaybePartial,\n Prettify,\n RemoveNever,\n} from '@layerzerolabs/typescript-utils';\n\nimport { SuiMoveAbortError, SuiMoveUnclassifiedError } from './error';\nimport type { SuiMoveProvider } from './provider';\nimport type { SuiMoveTransaction } from './transaction';\nimport type {\n SuiMoveEvent,\n SuiMoveExecutionResult,\n SuiMoveObjectResponse,\n SuiMoveTransactionBlockResponse,\n SuiMoveViewResult,\n} from './types';\n\nconst MOCK_SENDER = '0x1234567890123456789012345678901234567890123456789012345678901234';\n\nexport interface MatchQuery {\n type: string;\n check: 'includes' | 'startsWith' | 'endsWith' | 'equals' | 'regex';\n}\n\ntype FullObjectOptions = AllRequired<SuiObjectDataOptions>;\ntype FullBlockResponseOptions = AllRequired<SuiTransactionBlockResponseOptions>;\n\ntype ObjectChangeTypes = SuiObjectChange['type'];\ntype ObjectChangeTypesOptions = {\n [K in ObjectChangeTypes as `show${Capitalize<K>}`]?: boolean;\n};\n\ntype ObjectChangeTypeResults<Options extends ObjectChangeTypesOptions> = Prettify<\n RemoveNever<{\n [K in ObjectChangeTypes]: `show${Capitalize<K>}` extends keyof Options\n ? Options[`show${Capitalize<K>}`] extends true\n ? Extract<SuiObjectChange, { type: K }>[]\n : never\n : never;\n }>\n>;\n\nconst objectOptionKeys: (keyof FullObjectOptions)[] = [\n 'showBcs',\n 'showContent',\n 'showType',\n 'showDisplay',\n 'showOwner',\n 'showPreviousTransaction',\n 'showStorageRebate',\n] as const;\n\nconst blockResponseOptionsKeys: (keyof FullBlockResponseOptions)[] = [\n 'showBalanceChanges',\n 'showEffects',\n 'showEvents',\n 'showObjectChanges',\n 'showRawEffects',\n] as const;\n\ntype OptionsValidated<\n FullOptions extends Record<string, any>,\n CurrentOptions extends Record<string, any>,\n Data extends Record<string, any>,\n> = Prettify<\n RemoveNever<{\n [key in keyof AllRequired<Data>]: key extends string\n ? `show${Capitalize<key>}` extends keyof FullOptions\n ? CurrentOptions[`show${Capitalize<key>}`] extends true\n ? NonNullable<Data[key]>\n : never\n : Data[key]\n : never;\n }>\n>;\n\nconst validateOptions = <\n FullOptions extends Record<string, any>,\n Options extends Record<string, any>,\n Data extends Record<string, any>,\n>(\n data: Data,\n fullOptionKeys: string[],\n options?: Options,\n): OptionsValidated<FullOptions, Options, Data> => {\n // check inclusion of all options\n fullOptionKeys.forEach((option) => {\n // Remove 'show' prefix and convert first letter to lowercase for camelCase\n const fieldName = option.slice('show'.length);\n const field = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (options?.[option] && !data[field]) {\n throw new Error(`Missing required field ${field} on data object ${data}`);\n }\n });\n\n // check validity of inclusions:\n return Object.fromEntries(\n Object.entries(data).map(([key, value]) => {\n for (const option of fullOptionKeys) {\n // Convert option to expected field name\n const fieldName = option.slice('show'.length);\n const expectedField = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (expectedField === key && options?.[option] && !value) {\n throw new Error(\n `Failed fetching data for option ${option} on object ${data.objectId}`,\n );\n }\n }\n return [key, value];\n }),\n ) as OptionsValidated<FullObjectOptions, Options, Data>;\n};\n\nexport const checkInclusion = (objectType: string, query: MatchQuery) => {\n const check = query.check;\n const type = query.type;\n switch (check) {\n case 'includes':\n return objectType.includes(type);\n case 'startsWith':\n return objectType.startsWith(type);\n case 'endsWith':\n return objectType.endsWith(type);\n case 'equals':\n return objectType === type;\n case 'regex':\n return new RegExp(type).test(objectType);\n default:\n throw new Error(`Unknown check type: ${check}`);\n }\n};\n\nexport const filterObjectChanges = <Options extends ObjectChangeTypesOptions>(\n objectChanges: SuiObjectChange[],\n query: MatchQuery | 'all',\n options?: Options,\n): ObjectChangeTypeResults<Options> => {\n const result = {} as ObjectChangeTypeResults<Options>;\n type key = keyof ObjectChangeTypeResults<Options>;\n const capitalize = (s: string) => s.slice(0, 1).toUpperCase() + s.slice(1);\n\n for (const objectChange of objectChanges) {\n // Published has packageId\n if (objectChange.type === 'published') {\n if (\n options?.showPublished &&\n (query === 'all' || checkInclusion(objectChange.packageId, query))\n ) {\n // TODO: consider removing `as` casts\n result['published' as key] ??= [] as any;\n result['published' as key].push(objectChange as any);\n }\n } else {\n // Everyone else has objectType\n const show = `show${capitalize(objectChange.type)}` as keyof Options;\n if (\n options?.[show] &&\n (query === 'all' || checkInclusion(objectChange.objectType, query))\n ) {\n // TODO: consider removing `as` casts\n result[objectChange.type as key] ??= [] as any;\n result[objectChange.type as key].push(objectChange as any);\n }\n }\n }\n\n return result;\n};\n\n/**\n * Converts raw Sui move events to SuiMoveEvent format\n */\nexport const convertToSuiMoveEvents = (rawEvents: any[]): SuiMoveEvent[] => {\n return rawEvents.map((event) => ({\n type: event.type,\n data: event.parsedJson,\n txHash: event.id.txDigest,\n }));\n};\n\nexport function handleError(e: string): unknown {\n if (e.includes('ExecutionError')) {\n const majorStatusMatch = e.match(/major_status:\\s([A-Z_]+)/);\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1];\n if (major_status === 'ABORTED') {\n const subStatusMatch = e.match(/sub_status:\\sSome\\((\\d+)\\)/);\n if (subStatusMatch === null) {\n return new SuiMoveAbortError(Number.NEGATIVE_INFINITY, e);\n } else {\n return new SuiMoveAbortError(Number(subStatusMatch[1]), e);\n }\n }\n } else {\n return new SuiMoveUnclassifiedError(e);\n }\n }\n return new Error(e);\n}\n\nexport async function suiMoveViewMultiResult(\n client: SuiMoveProvider,\n tx: SuiMoveTransaction,\n resultIndex: number[],\n): Promise<SuiMoveViewResult[][]> {\n const { results, error } = await client.devInspectSuiMoveTransactionBlock({\n transactionBlock: tx,\n sender: MOCK_SENDER,\n });\n\n if (error != undefined && error != null) {\n throw handleError(error);\n }\n if (results === undefined || results === null) {\n throw new Error('No results found');\n }\n\n const selectedResults: SuiMoveExecutionResult[] = resultIndex.map((idx) => {\n return results[idx];\n });\n\n return selectedResults.map((result) => {\n if (result.returnValues === undefined) {\n throw new Error('No return values found');\n }\n return result.returnValues.map((result) => {\n return {\n value:\n typeof result[0] === 'string'\n ? fromBase64(result[0])\n : new Uint8Array(result[0]),\n type: result[1],\n };\n });\n });\n}\n\nexport async function suiMoveView(\n suiClient: SuiMoveProvider,\n tx: SuiMoveTransaction,\n): Promise<SuiMoveViewResult[]> {\n const results = await suiMoveViewMultiResult(suiClient, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return results[0];\n}\n\nexport async function suiMoveViewParsed<T>({\n client,\n tx,\n parser,\n}: {\n client: SuiMoveProvider;\n tx: SuiMoveTransaction;\n parser: (result: { value: Uint8Array }[]) => T;\n}): Promise<T> {\n const results = await suiMoveViewMultiResult(client, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return parser(results[0]);\n}\n\n/**\n * Returns the defining package ID for a given object type. This is the package\n * that defined the object's Move type at the time the object was created.\n *\n * @param objectType The object type, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7::my_coin::MY_COIN\n * @returns The defining package ID, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7\n */\nexport function getDefiningPackageIdFromObjectType(\n chainName: ChainName,\n objectType: string,\n): string {\n const address = parseStructTag(objectType).address;\n return normalizeSuiMoveAddress(address, chainName);\n}\n\nexport async function getSuiMoveObjectValidated<const Options extends SuiObjectDataOptions>(\n args: Omit<GetObjectParams, 'options'> & { options?: Options; client: SuiMoveProvider },\n): Promise<\n OptionsValidated<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>\n> {\n const object = await args.client.getSuiMoveObject(args);\n if (object.error) {\n throw new Error(`Failed to get object ${args.id}`, { cause: object.error });\n } else if (!object.data) {\n throw new Error(`Object not found: ${args.id}`);\n }\n\n return validateOptions<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>(\n object.data,\n objectOptionKeys,\n args.options,\n );\n}\n\nexport async function getSuiMoveTransactionBlockValidated<\n const Options extends SuiTransactionBlockResponseOptions,\n>(\n args: Omit<GetTransactionBlockParams, 'options'> & {\n options?: Options;\n client: SuiMoveProvider;\n },\n): Promise<OptionsValidated<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>> {\n const txBlock = await args.client.getSuiMoveTransactionBlock(args);\n if (txBlock.errors?.length) {\n throw new Error(`Couldn't fetch transaction block due to errors: ${txBlock.errors}`);\n }\n\n return validateOptions<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>(\n txBlock,\n blockResponseOptionsKeys,\n args.options,\n );\n}\n\n/**\n * Fetches all owned coins that have the specified package id\n * @param chainName chainName to denormalize the addresses\n * @param normalizedCoinPackageId Coin package id to search for\n * @param normalizedWalletAddress Wallet address to search for coins on\n * @returns Array of all found coin objects, sorted by balance\n */\nexport async function searchForCoinTypeInWallet(\n chainName: ChainName,\n coinPackageId: string,\n walletAddress: string,\n client: SuiMoveProvider,\n): Promise<CoinStruct[]> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n let coinObjects = [] as CoinStruct[];\n\n while (hasNextPage) {\n const coins = await client.getAllSuiMoveCoins({\n owner: walletAddress,\n limit: 50,\n cursor,\n });\n\n // Sui has its own normalization for addresses that we need to use to compare addresses\n const normalizedCoinPackageId = normalizeSuiMoveAddress(coinPackageId, chainName);\n\n const matchedCoins = coins.data.filter((coin) => {\n const coinType = coin.coinType;\n const definingPackageId = getDefiningPackageIdFromObjectType(chainName, coinType);\n return definingPackageId === normalizedCoinPackageId;\n });\n\n coinObjects = coinObjects.concat(matchedCoins);\n cursor = coins.nextCursor;\n hasNextPage = coins.hasNextPage;\n }\n return coinObjects.sort((a, b) => Number(BigInt(b.balance) - BigInt(a.balance)));\n}\n\nexport async function getSuiMoveOwnedObjectsByType<\n T extends Record<string, MatchQuery>,\n Options extends SuiObjectDataOptions,\n AllowPartial extends boolean = false,\n>({\n walletAddress,\n typeInclusions,\n options,\n client,\n}: {\n walletAddress: string;\n typeInclusions: T;\n options?: Omit<Options, 'showType'> & { allowPartial?: AllowPartial };\n client: SuiMoveProvider;\n}): Promise<\n Record<\n keyof T,\n MaybePartial<\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[],\n AllowPartial\n >\n >\n> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n const result = {} as Record<\n keyof T,\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[]\n >;\n const typeInclusionsArray = Object.entries(typeInclusions);\n\n while (hasNextPage) {\n const objects = await client.getSuiMoveOwnedObject({\n owner: walletAddress,\n options: {\n ...options,\n showType: true,\n },\n cursor,\n limit: 50,\n });\n for (const object of objects.data) {\n if (!object.data) continue;\n const objectType = object.data.type;\n if (!objectType) {\n continue;\n }\n for (const [key, query] of typeInclusionsArray) {\n if (checkInclusion(objectType, query)) {\n const validated = validateOptions<\n FullObjectOptions,\n Options,\n NonNullable<SuiMoveObjectResponse['data']>\n >(object.data, objectOptionKeys, options as Options | undefined);\n result[key as keyof T] ??= [];\n result[key as keyof T].push(validated);\n }\n }\n }\n cursor = objects.nextCursor;\n hasNextPage = objects.hasNextPage;\n }\n\n if (!options?.allowPartial && Object.keys(result).length !== typeInclusionsArray.length) {\n const difference = new Set(typeInclusionsArray.map(([k]) => k));\n Object.keys(result).forEach((key) => difference.delete(key));\n throw new Error(`Couldn't find all objects, missing: ${[...difference]}`);\n }\n\n return result;\n}\n\nexport async function getSuiMovePackagePublishObjectChanges<\n Queries extends Record<string, MatchQuery | 'all'>,\n ChangeOptions extends ObjectChangeTypesOptions,\n>({\n packageId,\n queries,\n options,\n client,\n}: {\n packageId: string;\n queries: Queries;\n client: SuiMoveProvider;\n options?: ChangeOptions;\n}): Promise<Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>> {\n const pkgObject = await getSuiMoveObjectValidated({\n id: packageId,\n client,\n options: { showPreviousTransaction: true },\n });\n\n const txBlock = await getSuiMoveTransactionBlockValidated({\n digest: pkgObject.previousTransaction,\n options: { showObjectChanges: true },\n client,\n });\n\n return Object.fromEntries(\n Object.entries(queries).map(([k, query]) => {\n return [k, filterObjectChanges(txBlock.objectChanges, query, options)];\n }),\n ) as Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>;\n}\n\nexport const normalizeSuiMoveAddress = (address: string, chainName: ChainName) => {\n if (chainName === ChainName.IOTAL1) {\n return normalizeIotaAddress(address);\n }\n return normalizeSuiAddress(address);\n};\n"]}
@@ -269,5 +269,5 @@ var normalizeSuiMoveAddress = /* @__PURE__ */ __name((address, chainName) => {
269
269
  }, "normalizeSuiMoveAddress");
270
270
 
271
271
  export { checkInclusion, convertToSuiMoveEvents, filterObjectChanges, getDefiningPackageIdFromObjectType, getSuiMoveObjectValidated, getSuiMoveOwnedObjectsByType, getSuiMovePackagePublishObjectChanges, getSuiMoveTransactionBlockValidated, handleError, normalizeSuiMoveAddress, searchForCoinTypeInWallet, suiMoveView, suiMoveViewMultiResult, suiMoveViewParsed };
272
- //# sourceMappingURL=WITSYWN5.js.map
273
- //# sourceMappingURL=WITSYWN5.js.map
272
+ //# sourceMappingURL=UWX3Y5ZB.js.map
273
+ //# sourceMappingURL=UWX3Y5ZB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts"],"names":["MOCK_SENDER","objectOptionKeys","blockResponseOptionsKeys","validateOptions","data","fullOptionKeys","options","forEach","option","fieldName","slice","length","field","charAt","toLowerCase","Error","Object","fromEntries","entries","map","key","value","expectedField","objectId","checkInclusion","objectType","query","check","type","includes","startsWith","endsWith","RegExp","test","filterObjectChanges","objectChanges","result","capitalize","s","toUpperCase","objectChange","showPublished","packageId","push","show","convertToSuiMoveEvents","rawEvents","event","parsedJson","txHash","id","txDigest","handleError","e","majorStatusMatch","match","major_status","subStatusMatch","SuiMoveAbortError","Number","NEGATIVE_INFINITY","SuiMoveUnclassifiedError","suiMoveViewMultiResult","client","tx","resultIndex","results","error","devInspectSuiMoveTransactionBlock","transactionBlock","sender","undefined","selectedResults","idx","returnValues","fromBase64","Uint8Array","suiMoveView","suiClient","getData","commands","suiMoveViewParsed","parser","getDefiningPackageIdFromObjectType","chainName","address","parseStructTag","normalizeSuiMoveAddress","getSuiMoveObjectValidated","args","object","getSuiMoveObject","cause","getSuiMoveTransactionBlockValidated","txBlock","getSuiMoveTransactionBlock","errors","searchForCoinTypeInWallet","coinPackageId","walletAddress","cursor","hasNextPage","coinObjects","coins","getAllSuiMoveCoins","owner","limit","normalizedCoinPackageId","matchedCoins","filter","coin","coinType","definingPackageId","concat","nextCursor","sort","a","b","BigInt","balance","getSuiMoveOwnedObjectsByType","typeInclusions","typeInclusionsArray","objects","getSuiMoveOwnedObject","showType","validated","allowPartial","keys","difference","Set","k","delete","getSuiMovePackagePublishObjectChanges","queries","pkgObject","showPreviousTransaction","digest","previousTransaction","showObjectChanges","ChainName","IOTAL1","normalizeIotaAddress","normalizeSuiAddress"],"mappings":";;;;;;AA8BA,IAAMA,WAAAA,GAAc,oEAAA;AAyBpB,IAAMC,gBAAAA,GAAgD;AAClD,EAAA,SAAA;AACA,EAAA,aAAA;AACA,EAAA,UAAA;AACA,EAAA,aAAA;AACA,EAAA,WAAA;AACA,EAAA,yBAAA;AACA,EAAA;;AAGJ,IAAMC,wBAAAA,GAA+D;AACjE,EAAA,oBAAA;AACA,EAAA,aAAA;AACA,EAAA,YAAA;AACA,EAAA,mBAAA;AACA,EAAA;;AAmBJ,IAAMC,eAAAA,mBAAkB,MAAA,CAAA,CAKpBC,IAAAA,EACAC,cAAAA,EACAC,OAAAA,KAAAA;AAGAD,EAAAA,cAAAA,CAAeE,OAAAA,CAAQ,CAACC,MAAAA,KAAAA;AAEpB,IAAA,MAAMC,SAAAA,GAAYD,MAAAA,CAAOE,KAAAA,CAAM,MAAA,CAAOC,MAAM,CAAA;AAC5C,IAAA,MAAMC,KAAAA,GAAQH,UAAUI,MAAAA,CAAO,CAAA,EAAGC,WAAAA,EAAW,GAAKL,SAAAA,CAAUC,KAAAA,CAAM,CAAA,CAAA;AAClE,IAAA,IAAIJ,UAAUE,MAAAA,CAAAA,IAAW,CAACJ,IAAAA,CAAKQ,KAAAA,CAAAA,EAAQ;AACnC,MAAA,MAAM,IAAIG,KAAAA,CAAM,CAAA,uBAAA,EAA0BH,KAAAA,CAAAA,gBAAAA,EAAwBR,IAAAA,CAAAA,CAAM,CAAA;AAC5E,IAAA;EACJ,CAAA,CAAA;AAGA,EAAA,OAAOY,MAAAA,CAAOC,WAAAA,CACVD,MAAAA,CAAOE,OAAAA,CAAQd,IAAAA,CAAAA,CAAMe,GAAAA,CAAI,CAAC,CAACC,GAAAA,EAAKC,KAAAA,CAAAA,KAAM;AAClC,IAAA,KAAA,MAAWb,UAAUH,cAAAA,EAAgB;AAEjC,MAAA,MAAMI,SAAAA,GAAYD,MAAAA,CAAOE,KAAAA,CAAM,MAAA,CAAOC,MAAM,CAAA;AAC5C,MAAA,MAAMW,aAAAA,GAAgBb,UAAUI,MAAAA,CAAO,CAAA,EAAGC,WAAAA,EAAW,GAAKL,SAAAA,CAAUC,KAAAA,CAAM,CAAA,CAAA;AAC1E,MAAA,IAAIY,kBAAkBF,GAAAA,IAAOd,OAAAA,GAAUE,MAAAA,CAAAA,IAAW,CAACa,KAAAA,EAAO;AACtD,QAAA,MAAM,IAAIN,KAAAA,CACN,CAAA,gCAAA,EAAmCP,MAAAA,CAAAA,WAAAA,EAAoBJ,IAAAA,CAAKmB,QAAQ,CAAA,CAAE,CAAA;AAE9E,MAAA;AACJ,IAAA;AACA,IAAA,OAAO;AAACH,MAAAA,GAAAA;AAAKC,MAAAA;;AACjB,EAAA,CAAA,CAAA,CAAA;AAER,CAAA,EAnCwB,iBAAA,CAAA;AAqCjB,IAAMG,cAAAA,mBAAiB,MAAA,CAAA,CAACC,UAAAA,EAAoBC,KAAAA,KAAAA;AAC/C,EAAA,MAAMC,QAAQD,KAAAA,CAAMC,KAAAA;AACpB,EAAA,MAAMC,OAAOF,KAAAA,CAAME,IAAAA;AACnB,EAAA,QAAQD,KAAAA;IACJ,KAAK,UAAA;AACD,MAAA,OAAOF,UAAAA,CAAWI,SAASD,IAAAA,CAAAA;IAC/B,KAAK,YAAA;AACD,MAAA,OAAOH,UAAAA,CAAWK,WAAWF,IAAAA,CAAAA;IACjC,KAAK,UAAA;AACD,MAAA,OAAOH,UAAAA,CAAWM,SAASH,IAAAA,CAAAA;IAC/B,KAAK,QAAA;AACD,MAAA,OAAOH,UAAAA,KAAeG,IAAAA;IAC1B,KAAK,OAAA;AACD,MAAA,OAAO,IAAII,MAAAA,CAAOJ,IAAAA,CAAAA,CAAMK,KAAKR,UAAAA,CAAAA;AACjC,IAAA;AACI,MAAA,MAAM,IAAIV,KAAAA,CAAM,CAAA,oBAAA,EAAuBY,KAAAA,CAAAA,CAAO,CAAA;AACtD;AACJ,CAAA,EAjB8B,gBAAA;AAmBvB,IAAMO,mBAAAA,mBAAsB,MAAA,CAAA,CAC/BC,aAAAA,EACAT,KAAAA,EACApB,OAAAA,KAAAA;AAEA,EAAA,MAAM8B,SAAS,EAAC;AAEhB,EAAA,MAAMC,UAAAA,mBAAa,MAAA,CAAA,CAACC,CAAAA,KAAcA,CAAAA,CAAE5B,KAAAA,CAAM,CAAA,EAAG,CAAA,CAAA,CAAG6B,WAAAA,EAAW,GAAKD,CAAAA,CAAE5B,KAAAA,CAAM,CAAA,CAAA,EAArD,YAAA,CAAA;AAEnB,EAAA,KAAA,MAAW8B,gBAAgBL,aAAAA,EAAe;AAEtC,IAAA,IAAIK,YAAAA,CAAaZ,SAAS,WAAA,EAAa;AACnC,MAAA,IACItB,OAAAA,EAASmC,kBACRf,KAAAA,KAAU,KAAA,IAASF,eAAegB,YAAAA,CAAaE,SAAAA,EAAWhB,KAAAA,CAAAA,CAAAA,EAC7D;AAEEU,QAAAA,MAAAA,CAAO,WAAA,MAAwB,EAAA;AAC/BA,QAAAA,MAAAA,CAAO,WAAA,CAAA,CAAoBO,IAAAA,CAAKH,YAAAA,CAAAA;AACpC,MAAA;IACJ,CAAA,MAAO;AAEH,MAAA,MAAMI,IAAAA,GAAO,CAAA,IAAA,EAAOP,UAAAA,CAAWG,YAAAA,CAAaZ,IAAI,CAAA,CAAA,CAAA;AAChD,MAAA,IACItB,OAAAA,GAAUsC,IAAAA,CAAAA,KACTlB,KAAAA,KAAU,SAASF,cAAAA,CAAegB,YAAAA,CAAaf,UAAAA,EAAYC,KAAAA,CAAAA,CAAAA,EAC9D;AAEEU,QAAAA,MAAAA,CAAOI,YAAAA,CAAaZ,IAAI,CAAA,KAAa,EAAA;AACrCQ,QAAAA,MAAAA,CAAOI,YAAAA,CAAaZ,IAAI,CAAA,CAASe,IAAAA,CAAKH,YAAAA,CAAAA;AAC1C,MAAA;AACJ,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOJ,MAAAA;AACX,CAAA,EAnCmC,qBAAA;AAwC5B,IAAMS,sBAAAA,2BAA0BC,SAAAA,KAAAA;AACnC,EAAA,OAAOA,SAAAA,CAAU3B,GAAAA,CAAI,CAAC4B,KAAAA,MAAW;AAC7BnB,IAAAA,IAAAA,EAAMmB,KAAAA,CAAMnB,IAAAA;AACZxB,IAAAA,IAAAA,EAAM2C,KAAAA,CAAMC,UAAAA;AACZC,IAAAA,MAAAA,EAAQF,MAAMG,EAAAA,CAAGC;GACrB,CAAA,CAAA;AACJ,CAAA,EANsC,wBAAA;AAQ/B,SAASC,YAAYC,CAAAA,EAAS;AACjC,EAAA,IAAIA,CAAAA,CAAExB,QAAAA,CAAS,gBAAA,CAAA,EAAmB;AAC9B,IAAA,MAAMyB,gBAAAA,GAAmBD,CAAAA,CAAEE,KAAAA,CAAM,0BAAA,CAAA;AACjC,IAAA,IAAID,qBAAqB,IAAA,EAAM;AAC3B,MAAA,MAAME,YAAAA,GAAeF,iBAAiB,CAAA,CAAA;AACtC,MAAA,IAAIE,iBAAiB,SAAA,EAAW;AAC5B,QAAA,MAAMC,cAAAA,GAAiBJ,CAAAA,CAAEE,KAAAA,CAAM,4BAAA,CAAA;AAC/B,QAAA,IAAIE,mBAAmB,IAAA,EAAM;AACzB,UAAA,OAAO,IAAIC,iBAAAA,CAAkBC,MAAAA,CAAOC,iBAAAA,EAAmBP,CAAAA,CAAAA;QAC3D,CAAA,MAAO;AACH,UAAA,OAAO,IAAIK,iBAAAA,CAAkBC,MAAAA,CAAOF,eAAe,CAAA,CAAE,GAAGJ,CAAAA,CAAAA;AAC5D,QAAA;AACJ,MAAA;IACJ,CAAA,MAAO;AACH,MAAA,OAAO,IAAIQ,yBAAyBR,CAAAA,CAAAA;AACxC,IAAA;AACJ,EAAA;AACA,EAAA,OAAO,IAAItC,MAAMsC,CAAAA,CAAAA;AACrB;AAlBgBD,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AAoBhB,eAAsBU,sBAAAA,CAClBC,MAAAA,EACAC,EAAAA,EACAC,WAAAA,EAAqB;AAErB,EAAA,MAAM,EAAEC,OAAAA,EAASC,KAAAA,EAAK,GAAK,MAAMJ,OAAOK,iCAAAA,CAAkC;IACtEC,gBAAAA,EAAkBL,EAAAA;IAClBM,MAAAA,EAAQtE;GACZ,CAAA;AAEA,EAAA,IAAImE,KAAAA,IAASI,MAAAA,IAAaJ,KAAAA,IAAS,IAAA,EAAM;AACrC,IAAA,MAAMf,YAAYe,KAAAA,CAAAA;AACtB,EAAA;AACA,EAAA,IAAID,OAAAA,KAAYK,MAAAA,IAAaL,OAAAA,KAAY,IAAA,EAAM;AAC3C,IAAA,MAAM,IAAInD,MAAM,kBAAA,CAAA;AACpB,EAAA;AAEA,EAAA,MAAMyD,eAAAA,GAA4CP,WAAAA,CAAY9C,GAAAA,CAAI,CAACsD,GAAAA,KAAAA;AAC/D,IAAA,OAAOP,QAAQO,GAAAA,CAAAA;EACnB,CAAA,CAAA;AAEA,EAAA,OAAOD,eAAAA,CAAgBrD,GAAAA,CAAI,CAACiB,MAAAA,KAAAA;AACxB,IAAA,IAAIA,MAAAA,CAAOsC,iBAAiBH,MAAAA,EAAW;AACnC,MAAA,MAAM,IAAIxD,MAAM,wBAAA,CAAA;AACpB,IAAA;AACA,IAAA,OAAOqB,MAAAA,CAAOsC,YAAAA,CAAavD,GAAAA,CAAI,CAACiB,OAAAA,KAAAA;AAC5B,MAAA,OAAO;AACHf,QAAAA,KAAAA,EACI,OAAOe,OAAAA,CAAO,CAAA,CAAA,KAAO,WACfuC,UAAAA,CAAWvC,OAAAA,CAAO,CAAA,CAAE,CAAA,GACpB,IAAIwC,UAAAA,CAAWxC,OAAAA,CAAO,CAAA,CAAE,CAAA;AAClCR,QAAAA,IAAAA,EAAMQ,QAAO,CAAA;AACjB,OAAA;IACJ,CAAA,CAAA;EACJ,CAAA,CAAA;AACJ;AAnCsB0B,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAqCtB,eAAsBe,WAAAA,CAClBC,WACAd,EAAAA,EAAsB;AAEtB,EAAA,MAAME,OAAAA,GAAU,MAAMJ,sBAAAA,CAAuBgB,SAAAA,EAAWd,EAAAA,EAAI;IACxDA,EAAAA,CAAGe,OAAAA,EAAO,CAAGC,QAAAA,CAASrE,MAAAA,GAAS;AAClC,GAAA,CAAA;AACD,EAAA,OAAOuD,QAAQ,CAAA,CAAA;AACnB;AARsBW,MAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AAUtB,eAAsBI,iBAAAA,CAAqB,EACvClB,MAAAA,EACAC,EAAAA,EACAkB,QAAM,EAKT;AACG,EAAA,MAAMhB,OAAAA,GAAU,MAAMJ,sBAAAA,CAAuBC,MAAAA,EAAQC,EAAAA,EAAI;IACrDA,EAAAA,CAAGe,OAAAA,EAAO,CAAGC,QAAAA,CAASrE,MAAAA,GAAS;AAClC,GAAA,CAAA;AACD,EAAA,OAAOuE,MAAAA,CAAOhB,OAAAA,CAAQ,CAAA,CAAE,CAAA;AAC5B;AAbsBe,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAsBf,SAASE,kCAAAA,CACZC,WACA3D,UAAAA,EAAkB;AAElB,EAAA,MAAM4D,OAAAA,GAAUC,cAAAA,CAAe7D,UAAAA,CAAAA,CAAY4D,OAAAA;AAC3C,EAAA,OAAOE,uBAAAA,CAAwBF,SAASD,SAAAA,CAAAA;AAC5C;AANgBD,MAAAA,CAAAA,kCAAAA,EAAAA,oCAAAA,CAAAA;AAQhB,eAAsBK,0BAClBC,IAAAA,EAAuF;AAIvF,EAAA,MAAMC,MAAAA,GAAS,MAAMD,IAAAA,CAAK1B,MAAAA,CAAO4B,iBAAiBF,IAAAA,CAAAA;AAClD,EAAA,IAAIC,OAAOvB,KAAAA,EAAO;AACd,IAAA,MAAM,IAAIpD,KAAAA,CAAM,CAAA,qBAAA,EAAwB0E,IAAAA,CAAKvC,EAAE,CAAA,CAAA,EAAI;AAAE0C,MAAAA,KAAAA,EAAOF,MAAAA,CAAOvB;KAAM,CAAA;EAC7E,CAAA,MAAA,IAAW,CAACuB,OAAOtF,IAAAA,EAAM;AACrB,IAAA,MAAM,IAAIW,KAAAA,CAAM,CAAA,kBAAA,EAAqB0E,IAAAA,CAAKvC,EAAE,CAAA,CAAE,CAAA;AAClD,EAAA;AAEA,EAAA,OAAO/C,eAAAA,CACHuF,MAAAA,CAAOtF,IAAAA,EACPH,gBAAAA,EACAwF,KAAKnF,OAAO,CAAA;AAEpB;AAjBsBkF,MAAAA,CAAAA,yBAAAA,EAAAA,2BAAAA,CAAAA;AAmBtB,eAAsBK,oCAGlBJ,IAAAA,EAGC;AAED,EAAA,MAAMK,OAAAA,GAAU,MAAML,IAAAA,CAAK1B,MAAAA,CAAOgC,2BAA2BN,IAAAA,CAAAA;AAC7D,EAAA,IAAIK,OAAAA,CAAQE,QAAQrF,MAAAA,EAAQ;AACxB,IAAA,MAAM,IAAII,KAAAA,CAAM,CAAA,gDAAA,EAAmD+E,OAAAA,CAAQE,MAAM,CAAA,CAAE,CAAA;AACvF,EAAA;AAEA,EAAA,OAAO7F,eAAAA,CACH2F,OAAAA,EACA5F,wBAAAA,EACAuF,IAAAA,CAAKnF,OAAO,CAAA;AAEpB;AAlBsBuF,MAAAA,CAAAA,mCAAAA,EAAAA,qCAAAA,CAAAA;AA2BtB,eAAsBI,yBAAAA,CAClBb,SAAAA,EACAc,aAAAA,EACAC,aAAAA,EACApC,MAAAA,EAAuB;AAEvB,EAAA,IAAIqC,MAAAA,GAAoC7B,MAAAA;AACxC,EAAA,IAAI8B,WAAAA,GAAc,IAAA;AAClB,EAAA,IAAIC,cAAc,EAAA;AAElB,EAAA,OAAOD,WAAAA,EAAa;AAChB,IAAA,MAAME,KAAAA,GAAQ,MAAMxC,MAAAA,CAAOyC,kBAAAA,CAAmB;MAC1CC,KAAAA,EAAON,aAAAA;MACPO,KAAAA,EAAO,EAAA;AACPN,MAAAA;KACJ,CAAA;AAGA,IAAA,MAAMO,uBAAAA,GAA0BpB,uBAAAA,CAAwBW,aAAAA,EAAed,SAAAA,CAAAA;AAEvE,IAAA,MAAMwB,YAAAA,GAAeL,KAAAA,CAAMnG,IAAAA,CAAKyG,MAAAA,CAAO,CAACC,IAAAA,KAAAA;AACpC,MAAA,MAAMC,WAAWD,IAAAA,CAAKC,QAAAA;AACtB,MAAA,MAAMC,iBAAAA,GAAoB7B,kCAAAA,CAAmCC,SAAAA,EAAW2B,QAAAA,CAAAA;AACxE,MAAA,OAAOC,iBAAAA,KAAsBL,uBAAAA;IACjC,CAAA,CAAA;AAEAL,IAAAA,WAAAA,GAAcA,WAAAA,CAAYW,OAAOL,YAAAA,CAAAA;AACjCR,IAAAA,MAAAA,GAASG,KAAAA,CAAMW,UAAAA;AACfb,IAAAA,WAAAA,GAAcE,KAAAA,CAAMF,WAAAA;AACxB,EAAA;AACA,EAAA,OAAOC,WAAAA,CAAYa,IAAAA,CAAK,CAACC,CAAAA,EAAGC,MAAM1D,MAAAA,CAAO2D,MAAAA,CAAOD,CAAAA,CAAEE,OAAO,CAAA,GAAID,MAAAA,CAAOF,CAAAA,CAAEG,OAAO,CAAA,CAAA,CAAA;AACjF;AA/BsBtB,MAAAA,CAAAA,yBAAAA,EAAAA,2BAAAA,CAAAA;AAiCtB,eAAsBuB,6BAIpB,EACErB,aAAAA,EACAsB,cAAAA,EACAnH,OAAAA,EACAyD,QAAM,EAMT;AAaG,EAAA,IAAIqC,MAAAA,GAAoC7B,MAAAA;AACxC,EAAA,IAAI8B,WAAAA,GAAc,IAAA;AAClB,EAAA,MAAMjE,SAAS,EAAC;AAQhB,EAAA,MAAMsF,mBAAAA,GAAsB1G,MAAAA,CAAOE,OAAAA,CAAQuG,cAAAA,CAAAA;AAE3C,EAAA,OAAOpB,WAAAA,EAAa;AAChB,IAAA,MAAMsB,OAAAA,GAAU,MAAM5D,MAAAA,CAAO6D,qBAAAA,CAAsB;MAC/CnB,KAAAA,EAAON,aAAAA;MACP7F,OAAAA,EAAS;QACL,GAAGA,OAAAA;QACHuH,QAAAA,EAAU;AACd,OAAA;AACAzB,MAAAA,MAAAA;MACAM,KAAAA,EAAO;KACX,CAAA;AACA,IAAA,KAAA,MAAWhB,MAAAA,IAAUiC,QAAQvH,IAAAA,EAAM;AAC/B,MAAA,IAAI,CAACsF,OAAOtF,IAAAA,EAAM;AAClB,MAAA,MAAMqB,UAAAA,GAAaiE,OAAOtF,IAAAA,CAAKwB,IAAAA;AAC/B,MAAA,IAAI,CAACH,UAAAA,EAAY;AACb,QAAA;AACJ,MAAA;AACA,MAAA,KAAA,MAAW,CAACL,GAAAA,EAAKM,KAAAA,CAAAA,IAAUgG,mBAAAA,EAAqB;AAC5C,QAAA,IAAIlG,cAAAA,CAAeC,UAAAA,EAAYC,KAAAA,CAAAA,EAAQ;AACnC,UAAA,MAAMoG,SAAAA,GAAY3H,eAAAA,CAIhBuF,MAAAA,CAAOtF,IAAAA,EAAMH,kBAAkBK,OAAAA,CAAAA;AACjC8B,UAAAA,MAAAA,CAAOhB,GAAAA,MAAoB,EAAA;AAC3BgB,UAAAA,MAAAA,CAAOhB,GAAAA,CAAAA,CAAgBuB,IAAAA,CAAKmF,SAAAA,CAAAA;AAChC,QAAA;AACJ,MAAA;AACJ,IAAA;AACA1B,IAAAA,MAAAA,GAASuB,OAAAA,CAAQT,UAAAA;AACjBb,IAAAA,WAAAA,GAAcsB,OAAAA,CAAQtB,WAAAA;AAC1B,EAAA;AAEA,EAAA,IAAI,CAAC/F,SAASyH,YAAAA,IAAgB/G,MAAAA,CAAOgH,KAAK5F,MAAAA,CAAAA,CAAQzB,MAAAA,KAAW+G,mBAAAA,CAAoB/G,MAAAA,EAAQ;AACrF,IAAA,MAAMsH,UAAAA,GAAa,IAAIC,GAAAA,CAAIR,mBAAAA,CAAoBvG,GAAAA,CAAI,CAAC,CAACgH,CAAAA,CAAAA,KAAOA,CAAAA,CAAAA,CAAAA;AAC5DnH,IAAAA,MAAAA,CAAOgH,IAAAA,CAAK5F,MAAAA,CAAAA,CAAQ7B,OAAAA,CAAQ,CAACa,GAAAA,KAAQ6G,UAAAA,CAAWG,MAAAA,CAAOhH,GAAAA,CAAAA,CAAAA;AACvD,IAAA,MAAM,IAAIL,MAAM,CAAA,oCAAA,EAAuC;AAAIkH,MAAAA,GAAAA;KAAW,CAAA,CAAE,CAAA;AAC5E,EAAA;AAEA,EAAA,OAAO7F,MAAAA;AACX;AA9EsBoF,MAAAA,CAAAA,4BAAAA,EAAAA,8BAAAA,CAAAA;AAgFtB,eAAsBa,sCAGpB,EACE3F,SAAAA,EACA4F,OAAAA,EACAhI,OAAAA,EACAyD,QAAM,EAMT;AACG,EAAA,MAAMwE,SAAAA,GAAY,MAAM/C,yBAAAA,CAA0B;IAC9CtC,EAAAA,EAAIR,SAAAA;AACJqB,IAAAA,MAAAA;IACAzD,OAAAA,EAAS;MAAEkI,uBAAAA,EAAyB;AAAK;GAC7C,CAAA;AAEA,EAAA,MAAM1C,OAAAA,GAAU,MAAMD,mCAAAA,CAAoC;AACtD4C,IAAAA,MAAAA,EAAQF,SAAAA,CAAUG,mBAAAA;IAClBpI,OAAAA,EAAS;MAAEqI,iBAAAA,EAAmB;AAAK,KAAA;AACnC5E,IAAAA;GACJ,CAAA;AAEA,EAAA,OAAO/C,MAAAA,CAAOC,WAAAA,CACVD,MAAAA,CAAOE,OAAAA,CAAQoH,OAAAA,CAAAA,CAASnH,GAAAA,CAAI,CAAC,CAACgH,CAAAA,EAAGzG,KAAAA,CAAAA,KAAM;AACnC,IAAA,OAAO;AAACyG,MAAAA,CAAAA;MAAGjG,mBAAAA,CAAoB4D,OAAAA,CAAQ3D,aAAAA,EAAeT,KAAAA,EAAOpB,OAAAA;;AACjE,EAAA,CAAA,CAAA,CAAA;AAER;AA/BsB+H,MAAAA,CAAAA,qCAAAA,EAAAA,uCAAAA,CAAAA;AAiCf,IAAM9C,uBAAAA,mBAA0B,MAAA,CAAA,CAACF,OAAAA,EAAiBD,SAAAA,KAAAA;AACrD,EAAA,IAAIA,SAAAA,KAAcwD,UAAUC,MAAAA,EAAQ;AAChC,IAAA,OAAOC,qBAAqBzD,OAAAA,CAAAA;AAChC,EAAA;AACA,EAAA,OAAO0D,oBAAoB1D,OAAAA,CAAAA;AAC/B,CAAA,EALuC,yBAAA","file":"WITSYWN5.js","sourcesContent":["import { normalizeIotaAddress } from '@iota/iota-sdk/utils';\nimport type {\n CoinStruct,\n GetObjectParams,\n GetTransactionBlockParams,\n SuiObjectChange,\n SuiObjectDataOptions,\n SuiTransactionBlockResponseOptions,\n} from '@mysten/sui/client';\nimport { fromBase64, normalizeSuiAddress, parseStructTag } from '@mysten/sui/utils';\n\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport type {\n AllRequired,\n MaybePartial,\n Prettify,\n RemoveNever,\n} from '@layerzerolabs/typescript-utils';\n\nimport { SuiMoveAbortError, SuiMoveUnclassifiedError } from './error';\nimport type { SuiMoveProvider } from './provider';\nimport type { SuiMoveTransaction } from './transaction';\nimport type {\n SuiMoveEvent,\n SuiMoveExecutionResult,\n SuiMoveObjectResponse,\n SuiMoveTransactionBlockResponse,\n SuiMoveViewResult,\n} from './types';\n\nconst MOCK_SENDER = '0x1234567890123456789012345678901234567890123456789012345678901234';\n\nexport interface MatchQuery {\n type: string;\n check: 'includes' | 'startsWith' | 'endsWith' | 'equals' | 'regex';\n}\n\ntype FullObjectOptions = AllRequired<SuiObjectDataOptions>;\ntype FullBlockResponseOptions = AllRequired<SuiTransactionBlockResponseOptions>;\n\ntype ObjectChangeTypes = SuiObjectChange['type'];\ntype ObjectChangeTypesOptions = {\n [K in ObjectChangeTypes as `show${Capitalize<K>}`]?: boolean;\n};\n\ntype ObjectChangeTypeResults<Options extends ObjectChangeTypesOptions> = Prettify<\n RemoveNever<{\n [K in ObjectChangeTypes]: `show${Capitalize<K>}` extends keyof Options\n ? Options[`show${Capitalize<K>}`] extends true\n ? Extract<SuiObjectChange, { type: K }>[]\n : never\n : never;\n }>\n>;\n\nconst objectOptionKeys: (keyof FullObjectOptions)[] = [\n 'showBcs',\n 'showContent',\n 'showType',\n 'showDisplay',\n 'showOwner',\n 'showPreviousTransaction',\n 'showStorageRebate',\n] as const;\n\nconst blockResponseOptionsKeys: (keyof FullBlockResponseOptions)[] = [\n 'showBalanceChanges',\n 'showEffects',\n 'showEvents',\n 'showObjectChanges',\n 'showRawEffects',\n] as const;\n\ntype OptionsValidated<\n FullOptions extends Record<string, any>,\n CurrentOptions extends Record<string, any>,\n Data extends Record<string, any>,\n> = Prettify<\n RemoveNever<{\n [key in keyof AllRequired<Data>]: key extends string\n ? `show${Capitalize<key>}` extends keyof FullOptions\n ? CurrentOptions[`show${Capitalize<key>}`] extends true\n ? NonNullable<Data[key]>\n : never\n : Data[key]\n : never;\n }>\n>;\n\nconst validateOptions = <\n FullOptions extends Record<string, any>,\n Options extends Record<string, any>,\n Data extends Record<string, any>,\n>(\n data: Data,\n fullOptionKeys: string[],\n options?: Options,\n): OptionsValidated<FullOptions, Options, Data> => {\n // check inclusion of all options\n fullOptionKeys.forEach((option) => {\n // Remove 'show' prefix and convert first letter to lowercase for camelCase\n const fieldName = option.slice('show'.length);\n const field = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (options?.[option] && !data[field]) {\n throw new Error(`Missing required field ${field} on data object ${data}`);\n }\n });\n\n // check validity of inclusions:\n return Object.fromEntries(\n Object.entries(data).map(([key, value]) => {\n for (const option of fullOptionKeys) {\n // Convert option to expected field name\n const fieldName = option.slice('show'.length);\n const expectedField = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (expectedField === key && options?.[option] && !value) {\n throw new Error(\n `Failed fetching data for option ${option} on object ${data.objectId}`,\n );\n }\n }\n return [key, value];\n }),\n ) as OptionsValidated<FullObjectOptions, Options, Data>;\n};\n\nexport const checkInclusion = (objectType: string, query: MatchQuery) => {\n const check = query.check;\n const type = query.type;\n switch (check) {\n case 'includes':\n return objectType.includes(type);\n case 'startsWith':\n return objectType.startsWith(type);\n case 'endsWith':\n return objectType.endsWith(type);\n case 'equals':\n return objectType === type;\n case 'regex':\n return new RegExp(type).test(objectType);\n default:\n throw new Error(`Unknown check type: ${check}`);\n }\n};\n\nexport const filterObjectChanges = <Options extends ObjectChangeTypesOptions>(\n objectChanges: SuiObjectChange[],\n query: MatchQuery | 'all',\n options?: Options,\n): ObjectChangeTypeResults<Options> => {\n const result = {} as ObjectChangeTypeResults<Options>;\n type key = keyof ObjectChangeTypeResults<Options>;\n const capitalize = (s: string) => s.slice(0, 1).toUpperCase() + s.slice(1);\n\n for (const objectChange of objectChanges) {\n // Published has packageId\n if (objectChange.type === 'published') {\n if (\n options?.showPublished &&\n (query === 'all' || checkInclusion(objectChange.packageId, query))\n ) {\n // FIXME: maybe we can remove these as? not sure though\n result['published' as key] ??= [] as any;\n result['published' as key].push(objectChange as any);\n }\n } else {\n // Everyone else has objectType\n const show = `show${capitalize(objectChange.type)}` as keyof Options;\n if (\n options?.[show] &&\n (query === 'all' || checkInclusion(objectChange.objectType, query))\n ) {\n // FIXME: maybe we can remove these as? not sure though\n result[objectChange.type as key] ??= [] as any;\n result[objectChange.type as key].push(objectChange as any);\n }\n }\n }\n\n return result;\n};\n\n/**\n * Converts raw Sui move events to SuiMoveEvent format\n */\nexport const convertToSuiMoveEvents = (rawEvents: any[]): SuiMoveEvent[] => {\n return rawEvents.map((event) => ({\n type: event.type,\n data: event.parsedJson,\n txHash: event.id.txDigest,\n }));\n};\n\nexport function handleError(e: string): unknown {\n if (e.includes('ExecutionError')) {\n const majorStatusMatch = e.match(/major_status:\\s([A-Z_]+)/);\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1];\n if (major_status === 'ABORTED') {\n const subStatusMatch = e.match(/sub_status:\\sSome\\((\\d+)\\)/);\n if (subStatusMatch === null) {\n return new SuiMoveAbortError(Number.NEGATIVE_INFINITY, e);\n } else {\n return new SuiMoveAbortError(Number(subStatusMatch[1]), e);\n }\n }\n } else {\n return new SuiMoveUnclassifiedError(e);\n }\n }\n return new Error(e);\n}\n\nexport async function suiMoveViewMultiResult(\n client: SuiMoveProvider,\n tx: SuiMoveTransaction,\n resultIndex: number[],\n): Promise<SuiMoveViewResult[][]> {\n const { results, error } = await client.devInspectSuiMoveTransactionBlock({\n transactionBlock: tx,\n sender: MOCK_SENDER,\n });\n\n if (error != undefined && error != null) {\n throw handleError(error);\n }\n if (results === undefined || results === null) {\n throw new Error('No results found');\n }\n\n const selectedResults: SuiMoveExecutionResult[] = resultIndex.map((idx) => {\n return results[idx];\n });\n\n return selectedResults.map((result) => {\n if (result.returnValues === undefined) {\n throw new Error('No return values found');\n }\n return result.returnValues.map((result) => {\n return {\n value:\n typeof result[0] === 'string'\n ? fromBase64(result[0])\n : new Uint8Array(result[0]),\n type: result[1],\n };\n });\n });\n}\n\nexport async function suiMoveView(\n suiClient: SuiMoveProvider,\n tx: SuiMoveTransaction,\n): Promise<SuiMoveViewResult[]> {\n const results = await suiMoveViewMultiResult(suiClient, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return results[0];\n}\n\nexport async function suiMoveViewParsed<T>({\n client,\n tx,\n parser,\n}: {\n client: SuiMoveProvider;\n tx: SuiMoveTransaction;\n parser: (result: { value: Uint8Array }[]) => T;\n}): Promise<T> {\n const results = await suiMoveViewMultiResult(client, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return parser(results[0]);\n}\n\n/**\n * Returns the defining package ID for a given object type. This is the package\n * that defined the object's Move type at the time the object was created.\n *\n * @param objectType The object type, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7::my_coin::MY_COIN\n * @returns The defining package ID, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7\n */\nexport function getDefiningPackageIdFromObjectType(\n chainName: ChainName,\n objectType: string,\n): string {\n const address = parseStructTag(objectType).address;\n return normalizeSuiMoveAddress(address, chainName);\n}\n\nexport async function getSuiMoveObjectValidated<const Options extends SuiObjectDataOptions>(\n args: Omit<GetObjectParams, 'options'> & { options?: Options; client: SuiMoveProvider },\n): Promise<\n OptionsValidated<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>\n> {\n const object = await args.client.getSuiMoveObject(args);\n if (object.error) {\n throw new Error(`Failed to get object ${args.id}`, { cause: object.error });\n } else if (!object.data) {\n throw new Error(`Object not found: ${args.id}`);\n }\n\n return validateOptions<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>(\n object.data,\n objectOptionKeys,\n args.options,\n );\n}\n\nexport async function getSuiMoveTransactionBlockValidated<\n const Options extends SuiTransactionBlockResponseOptions,\n>(\n args: Omit<GetTransactionBlockParams, 'options'> & {\n options?: Options;\n client: SuiMoveProvider;\n },\n): Promise<OptionsValidated<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>> {\n const txBlock = await args.client.getSuiMoveTransactionBlock(args);\n if (txBlock.errors?.length) {\n throw new Error(`Couldn't fetch transaction block due to errors: ${txBlock.errors}`);\n }\n\n return validateOptions<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>(\n txBlock,\n blockResponseOptionsKeys,\n args.options,\n );\n}\n\n/**\n * Fetches all owned coins that have the specified package id\n * @param chainName chainName to denormalize the addresses\n * @param normalizedCoinPackageId Coin package id to search for\n * @param normalizedWalletAddress Wallet address to search for coins on\n * @returns Array of all found coin objects, sorted by balance\n */\nexport async function searchForCoinTypeInWallet(\n chainName: ChainName,\n coinPackageId: string,\n walletAddress: string,\n client: SuiMoveProvider,\n): Promise<CoinStruct[]> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n let coinObjects = [] as CoinStruct[];\n\n while (hasNextPage) {\n const coins = await client.getAllSuiMoveCoins({\n owner: walletAddress,\n limit: 50,\n cursor,\n });\n\n // Sui has its own normalization for addresses that we need to use to compare addresses\n const normalizedCoinPackageId = normalizeSuiMoveAddress(coinPackageId, chainName);\n\n const matchedCoins = coins.data.filter((coin) => {\n const coinType = coin.coinType;\n const definingPackageId = getDefiningPackageIdFromObjectType(chainName, coinType);\n return definingPackageId === normalizedCoinPackageId;\n });\n\n coinObjects = coinObjects.concat(matchedCoins);\n cursor = coins.nextCursor;\n hasNextPage = coins.hasNextPage;\n }\n return coinObjects.sort((a, b) => Number(BigInt(b.balance) - BigInt(a.balance)));\n}\n\nexport async function getSuiMoveOwnedObjectsByType<\n T extends Record<string, MatchQuery>,\n Options extends SuiObjectDataOptions,\n AllowPartial extends boolean = false,\n>({\n walletAddress,\n typeInclusions,\n options,\n client,\n}: {\n walletAddress: string;\n typeInclusions: T;\n options?: Omit<Options, 'showType'> & { allowPartial?: AllowPartial };\n client: SuiMoveProvider;\n}): Promise<\n Record<\n keyof T,\n MaybePartial<\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[],\n AllowPartial\n >\n >\n> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n const result = {} as Record<\n keyof T,\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[]\n >;\n const typeInclusionsArray = Object.entries(typeInclusions);\n\n while (hasNextPage) {\n const objects = await client.getSuiMoveOwnedObject({\n owner: walletAddress,\n options: {\n ...options,\n showType: true,\n },\n cursor,\n limit: 50,\n });\n for (const object of objects.data) {\n if (!object.data) continue;\n const objectType = object.data.type;\n if (!objectType) {\n continue;\n }\n for (const [key, query] of typeInclusionsArray) {\n if (checkInclusion(objectType, query)) {\n const validated = validateOptions<\n FullObjectOptions,\n Options,\n NonNullable<SuiMoveObjectResponse['data']>\n >(object.data, objectOptionKeys, options as Options | undefined);\n result[key as keyof T] ??= [];\n result[key as keyof T].push(validated);\n }\n }\n }\n cursor = objects.nextCursor;\n hasNextPage = objects.hasNextPage;\n }\n\n if (!options?.allowPartial && Object.keys(result).length !== typeInclusionsArray.length) {\n const difference = new Set(typeInclusionsArray.map(([k]) => k));\n Object.keys(result).forEach((key) => difference.delete(key));\n throw new Error(`Couldn't find all objects, missing: ${[...difference]}`);\n }\n\n return result;\n}\n\nexport async function getSuiMovePackagePublishObjectChanges<\n Queries extends Record<string, MatchQuery | 'all'>,\n ChangeOptions extends ObjectChangeTypesOptions,\n>({\n packageId,\n queries,\n options,\n client,\n}: {\n packageId: string;\n queries: Queries;\n client: SuiMoveProvider;\n options?: ChangeOptions;\n}): Promise<Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>> {\n const pkgObject = await getSuiMoveObjectValidated({\n id: packageId,\n client,\n options: { showPreviousTransaction: true },\n });\n\n const txBlock = await getSuiMoveTransactionBlockValidated({\n digest: pkgObject.previousTransaction,\n options: { showObjectChanges: true },\n client,\n });\n\n return Object.fromEntries(\n Object.entries(queries).map(([k, query]) => {\n return [k, filterObjectChanges(txBlock.objectChanges, query, options)];\n }),\n ) as Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>;\n}\n\nexport const normalizeSuiMoveAddress = (address: string, chainName: ChainName) => {\n if (chainName === ChainName.IOTAL1) {\n return normalizeIotaAddress(address);\n }\n return normalizeSuiAddress(address);\n};\n"]}
1
+ {"version":3,"sources":["../src/utils.ts"],"names":["MOCK_SENDER","objectOptionKeys","blockResponseOptionsKeys","validateOptions","data","fullOptionKeys","options","forEach","option","fieldName","slice","length","field","charAt","toLowerCase","Error","Object","fromEntries","entries","map","key","value","expectedField","objectId","checkInclusion","objectType","query","check","type","includes","startsWith","endsWith","RegExp","test","filterObjectChanges","objectChanges","result","capitalize","s","toUpperCase","objectChange","showPublished","packageId","push","show","convertToSuiMoveEvents","rawEvents","event","parsedJson","txHash","id","txDigest","handleError","e","majorStatusMatch","match","major_status","subStatusMatch","SuiMoveAbortError","Number","NEGATIVE_INFINITY","SuiMoveUnclassifiedError","suiMoveViewMultiResult","client","tx","resultIndex","results","error","devInspectSuiMoveTransactionBlock","transactionBlock","sender","undefined","selectedResults","idx","returnValues","fromBase64","Uint8Array","suiMoveView","suiClient","getData","commands","suiMoveViewParsed","parser","getDefiningPackageIdFromObjectType","chainName","address","parseStructTag","normalizeSuiMoveAddress","getSuiMoveObjectValidated","args","object","getSuiMoveObject","cause","getSuiMoveTransactionBlockValidated","txBlock","getSuiMoveTransactionBlock","errors","searchForCoinTypeInWallet","coinPackageId","walletAddress","cursor","hasNextPage","coinObjects","coins","getAllSuiMoveCoins","owner","limit","normalizedCoinPackageId","matchedCoins","filter","coin","coinType","definingPackageId","concat","nextCursor","sort","a","b","BigInt","balance","getSuiMoveOwnedObjectsByType","typeInclusions","typeInclusionsArray","objects","getSuiMoveOwnedObject","showType","validated","allowPartial","keys","difference","Set","k","delete","getSuiMovePackagePublishObjectChanges","queries","pkgObject","showPreviousTransaction","digest","previousTransaction","showObjectChanges","ChainName","IOTAL1","normalizeIotaAddress","normalizeSuiAddress"],"mappings":"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","file":"UWX3Y5ZB.js","sourcesContent":["import { normalizeIotaAddress } from '@iota/iota-sdk/utils';\nimport type {\n CoinStruct,\n GetObjectParams,\n GetTransactionBlockParams,\n SuiObjectChange,\n SuiObjectDataOptions,\n SuiTransactionBlockResponseOptions,\n} from '@mysten/sui/client';\nimport { fromBase64, normalizeSuiAddress, parseStructTag } from '@mysten/sui/utils';\n\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport type {\n AllRequired,\n MaybePartial,\n Prettify,\n RemoveNever,\n} from '@layerzerolabs/typescript-utils';\n\nimport { SuiMoveAbortError, SuiMoveUnclassifiedError } from './error';\nimport type { SuiMoveProvider } from './provider';\nimport type { SuiMoveTransaction } from './transaction';\nimport type {\n SuiMoveEvent,\n SuiMoveExecutionResult,\n SuiMoveObjectResponse,\n SuiMoveTransactionBlockResponse,\n SuiMoveViewResult,\n} from './types';\n\nconst MOCK_SENDER = '0x1234567890123456789012345678901234567890123456789012345678901234';\n\nexport interface MatchQuery {\n type: string;\n check: 'includes' | 'startsWith' | 'endsWith' | 'equals' | 'regex';\n}\n\ntype FullObjectOptions = AllRequired<SuiObjectDataOptions>;\ntype FullBlockResponseOptions = AllRequired<SuiTransactionBlockResponseOptions>;\n\ntype ObjectChangeTypes = SuiObjectChange['type'];\ntype ObjectChangeTypesOptions = {\n [K in ObjectChangeTypes as `show${Capitalize<K>}`]?: boolean;\n};\n\ntype ObjectChangeTypeResults<Options extends ObjectChangeTypesOptions> = Prettify<\n RemoveNever<{\n [K in ObjectChangeTypes]: `show${Capitalize<K>}` extends keyof Options\n ? Options[`show${Capitalize<K>}`] extends true\n ? Extract<SuiObjectChange, { type: K }>[]\n : never\n : never;\n }>\n>;\n\nconst objectOptionKeys: (keyof FullObjectOptions)[] = [\n 'showBcs',\n 'showContent',\n 'showType',\n 'showDisplay',\n 'showOwner',\n 'showPreviousTransaction',\n 'showStorageRebate',\n] as const;\n\nconst blockResponseOptionsKeys: (keyof FullBlockResponseOptions)[] = [\n 'showBalanceChanges',\n 'showEffects',\n 'showEvents',\n 'showObjectChanges',\n 'showRawEffects',\n] as const;\n\ntype OptionsValidated<\n FullOptions extends Record<string, any>,\n CurrentOptions extends Record<string, any>,\n Data extends Record<string, any>,\n> = Prettify<\n RemoveNever<{\n [key in keyof AllRequired<Data>]: key extends string\n ? `show${Capitalize<key>}` extends keyof FullOptions\n ? CurrentOptions[`show${Capitalize<key>}`] extends true\n ? NonNullable<Data[key]>\n : never\n : Data[key]\n : never;\n }>\n>;\n\nconst validateOptions = <\n FullOptions extends Record<string, any>,\n Options extends Record<string, any>,\n Data extends Record<string, any>,\n>(\n data: Data,\n fullOptionKeys: string[],\n options?: Options,\n): OptionsValidated<FullOptions, Options, Data> => {\n // check inclusion of all options\n fullOptionKeys.forEach((option) => {\n // Remove 'show' prefix and convert first letter to lowercase for camelCase\n const fieldName = option.slice('show'.length);\n const field = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (options?.[option] && !data[field]) {\n throw new Error(`Missing required field ${field} on data object ${data}`);\n }\n });\n\n // check validity of inclusions:\n return Object.fromEntries(\n Object.entries(data).map(([key, value]) => {\n for (const option of fullOptionKeys) {\n // Convert option to expected field name\n const fieldName = option.slice('show'.length);\n const expectedField = fieldName.charAt(0).toLowerCase() + fieldName.slice(1);\n if (expectedField === key && options?.[option] && !value) {\n throw new Error(\n `Failed fetching data for option ${option} on object ${data.objectId}`,\n );\n }\n }\n return [key, value];\n }),\n ) as OptionsValidated<FullObjectOptions, Options, Data>;\n};\n\nexport const checkInclusion = (objectType: string, query: MatchQuery) => {\n const check = query.check;\n const type = query.type;\n switch (check) {\n case 'includes':\n return objectType.includes(type);\n case 'startsWith':\n return objectType.startsWith(type);\n case 'endsWith':\n return objectType.endsWith(type);\n case 'equals':\n return objectType === type;\n case 'regex':\n return new RegExp(type).test(objectType);\n default:\n throw new Error(`Unknown check type: ${check}`);\n }\n};\n\nexport const filterObjectChanges = <Options extends ObjectChangeTypesOptions>(\n objectChanges: SuiObjectChange[],\n query: MatchQuery | 'all',\n options?: Options,\n): ObjectChangeTypeResults<Options> => {\n const result = {} as ObjectChangeTypeResults<Options>;\n type key = keyof ObjectChangeTypeResults<Options>;\n const capitalize = (s: string) => s.slice(0, 1).toUpperCase() + s.slice(1);\n\n for (const objectChange of objectChanges) {\n // Published has packageId\n if (objectChange.type === 'published') {\n if (\n options?.showPublished &&\n (query === 'all' || checkInclusion(objectChange.packageId, query))\n ) {\n // TODO: consider removing `as` casts\n result['published' as key] ??= [] as any;\n result['published' as key].push(objectChange as any);\n }\n } else {\n // Everyone else has objectType\n const show = `show${capitalize(objectChange.type)}` as keyof Options;\n if (\n options?.[show] &&\n (query === 'all' || checkInclusion(objectChange.objectType, query))\n ) {\n // TODO: consider removing `as` casts\n result[objectChange.type as key] ??= [] as any;\n result[objectChange.type as key].push(objectChange as any);\n }\n }\n }\n\n return result;\n};\n\n/**\n * Converts raw Sui move events to SuiMoveEvent format\n */\nexport const convertToSuiMoveEvents = (rawEvents: any[]): SuiMoveEvent[] => {\n return rawEvents.map((event) => ({\n type: event.type,\n data: event.parsedJson,\n txHash: event.id.txDigest,\n }));\n};\n\nexport function handleError(e: string): unknown {\n if (e.includes('ExecutionError')) {\n const majorStatusMatch = e.match(/major_status:\\s([A-Z_]+)/);\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1];\n if (major_status === 'ABORTED') {\n const subStatusMatch = e.match(/sub_status:\\sSome\\((\\d+)\\)/);\n if (subStatusMatch === null) {\n return new SuiMoveAbortError(Number.NEGATIVE_INFINITY, e);\n } else {\n return new SuiMoveAbortError(Number(subStatusMatch[1]), e);\n }\n }\n } else {\n return new SuiMoveUnclassifiedError(e);\n }\n }\n return new Error(e);\n}\n\nexport async function suiMoveViewMultiResult(\n client: SuiMoveProvider,\n tx: SuiMoveTransaction,\n resultIndex: number[],\n): Promise<SuiMoveViewResult[][]> {\n const { results, error } = await client.devInspectSuiMoveTransactionBlock({\n transactionBlock: tx,\n sender: MOCK_SENDER,\n });\n\n if (error != undefined && error != null) {\n throw handleError(error);\n }\n if (results === undefined || results === null) {\n throw new Error('No results found');\n }\n\n const selectedResults: SuiMoveExecutionResult[] = resultIndex.map((idx) => {\n return results[idx];\n });\n\n return selectedResults.map((result) => {\n if (result.returnValues === undefined) {\n throw new Error('No return values found');\n }\n return result.returnValues.map((result) => {\n return {\n value:\n typeof result[0] === 'string'\n ? fromBase64(result[0])\n : new Uint8Array(result[0]),\n type: result[1],\n };\n });\n });\n}\n\nexport async function suiMoveView(\n suiClient: SuiMoveProvider,\n tx: SuiMoveTransaction,\n): Promise<SuiMoveViewResult[]> {\n const results = await suiMoveViewMultiResult(suiClient, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return results[0];\n}\n\nexport async function suiMoveViewParsed<T>({\n client,\n tx,\n parser,\n}: {\n client: SuiMoveProvider;\n tx: SuiMoveTransaction;\n parser: (result: { value: Uint8Array }[]) => T;\n}): Promise<T> {\n const results = await suiMoveViewMultiResult(client, tx, [\n tx.getData().commands.length - 1, // last command\n ]);\n return parser(results[0]);\n}\n\n/**\n * Returns the defining package ID for a given object type. This is the package\n * that defined the object's Move type at the time the object was created.\n *\n * @param objectType The object type, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7::my_coin::MY_COIN\n * @returns The defining package ID, e.g. 0xc6b8aab4e0124a27071228cb4c2b422344cb13574a9641ed0d9177c7111ed7\n */\nexport function getDefiningPackageIdFromObjectType(\n chainName: ChainName,\n objectType: string,\n): string {\n const address = parseStructTag(objectType).address;\n return normalizeSuiMoveAddress(address, chainName);\n}\n\nexport async function getSuiMoveObjectValidated<const Options extends SuiObjectDataOptions>(\n args: Omit<GetObjectParams, 'options'> & { options?: Options; client: SuiMoveProvider },\n): Promise<\n OptionsValidated<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>\n> {\n const object = await args.client.getSuiMoveObject(args);\n if (object.error) {\n throw new Error(`Failed to get object ${args.id}`, { cause: object.error });\n } else if (!object.data) {\n throw new Error(`Object not found: ${args.id}`);\n }\n\n return validateOptions<FullObjectOptions, Options, NonNullable<SuiMoveObjectResponse['data']>>(\n object.data,\n objectOptionKeys,\n args.options,\n );\n}\n\nexport async function getSuiMoveTransactionBlockValidated<\n const Options extends SuiTransactionBlockResponseOptions,\n>(\n args: Omit<GetTransactionBlockParams, 'options'> & {\n options?: Options;\n client: SuiMoveProvider;\n },\n): Promise<OptionsValidated<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>> {\n const txBlock = await args.client.getSuiMoveTransactionBlock(args);\n if (txBlock.errors?.length) {\n throw new Error(`Couldn't fetch transaction block due to errors: ${txBlock.errors}`);\n }\n\n return validateOptions<FullBlockResponseOptions, Options, SuiMoveTransactionBlockResponse>(\n txBlock,\n blockResponseOptionsKeys,\n args.options,\n );\n}\n\n/**\n * Fetches all owned coins that have the specified package id\n * @param chainName chainName to denormalize the addresses\n * @param normalizedCoinPackageId Coin package id to search for\n * @param normalizedWalletAddress Wallet address to search for coins on\n * @returns Array of all found coin objects, sorted by balance\n */\nexport async function searchForCoinTypeInWallet(\n chainName: ChainName,\n coinPackageId: string,\n walletAddress: string,\n client: SuiMoveProvider,\n): Promise<CoinStruct[]> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n let coinObjects = [] as CoinStruct[];\n\n while (hasNextPage) {\n const coins = await client.getAllSuiMoveCoins({\n owner: walletAddress,\n limit: 50,\n cursor,\n });\n\n // Sui has its own normalization for addresses that we need to use to compare addresses\n const normalizedCoinPackageId = normalizeSuiMoveAddress(coinPackageId, chainName);\n\n const matchedCoins = coins.data.filter((coin) => {\n const coinType = coin.coinType;\n const definingPackageId = getDefiningPackageIdFromObjectType(chainName, coinType);\n return definingPackageId === normalizedCoinPackageId;\n });\n\n coinObjects = coinObjects.concat(matchedCoins);\n cursor = coins.nextCursor;\n hasNextPage = coins.hasNextPage;\n }\n return coinObjects.sort((a, b) => Number(BigInt(b.balance) - BigInt(a.balance)));\n}\n\nexport async function getSuiMoveOwnedObjectsByType<\n T extends Record<string, MatchQuery>,\n Options extends SuiObjectDataOptions,\n AllowPartial extends boolean = false,\n>({\n walletAddress,\n typeInclusions,\n options,\n client,\n}: {\n walletAddress: string;\n typeInclusions: T;\n options?: Omit<Options, 'showType'> & { allowPartial?: AllowPartial };\n client: SuiMoveProvider;\n}): Promise<\n Record<\n keyof T,\n MaybePartial<\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[],\n AllowPartial\n >\n >\n> {\n let cursor: string | undefined | null = undefined;\n let hasNextPage = true;\n const result = {} as Record<\n keyof T,\n OptionsValidated<\n FullObjectOptions,\n Options & { showType: true },\n NonNullable<SuiMoveObjectResponse['data']>\n >[]\n >;\n const typeInclusionsArray = Object.entries(typeInclusions);\n\n while (hasNextPage) {\n const objects = await client.getSuiMoveOwnedObject({\n owner: walletAddress,\n options: {\n ...options,\n showType: true,\n },\n cursor,\n limit: 50,\n });\n for (const object of objects.data) {\n if (!object.data) continue;\n const objectType = object.data.type;\n if (!objectType) {\n continue;\n }\n for (const [key, query] of typeInclusionsArray) {\n if (checkInclusion(objectType, query)) {\n const validated = validateOptions<\n FullObjectOptions,\n Options,\n NonNullable<SuiMoveObjectResponse['data']>\n >(object.data, objectOptionKeys, options as Options | undefined);\n result[key as keyof T] ??= [];\n result[key as keyof T].push(validated);\n }\n }\n }\n cursor = objects.nextCursor;\n hasNextPage = objects.hasNextPage;\n }\n\n if (!options?.allowPartial && Object.keys(result).length !== typeInclusionsArray.length) {\n const difference = new Set(typeInclusionsArray.map(([k]) => k));\n Object.keys(result).forEach((key) => difference.delete(key));\n throw new Error(`Couldn't find all objects, missing: ${[...difference]}`);\n }\n\n return result;\n}\n\nexport async function getSuiMovePackagePublishObjectChanges<\n Queries extends Record<string, MatchQuery | 'all'>,\n ChangeOptions extends ObjectChangeTypesOptions,\n>({\n packageId,\n queries,\n options,\n client,\n}: {\n packageId: string;\n queries: Queries;\n client: SuiMoveProvider;\n options?: ChangeOptions;\n}): Promise<Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>> {\n const pkgObject = await getSuiMoveObjectValidated({\n id: packageId,\n client,\n options: { showPreviousTransaction: true },\n });\n\n const txBlock = await getSuiMoveTransactionBlockValidated({\n digest: pkgObject.previousTransaction,\n options: { showObjectChanges: true },\n client,\n });\n\n return Object.fromEntries(\n Object.entries(queries).map(([k, query]) => {\n return [k, filterObjectChanges(txBlock.objectChanges, query, options)];\n }),\n ) as Record<keyof Queries, ObjectChangeTypeResults<ChangeOptions>>;\n}\n\nexport const normalizeSuiMoveAddress = (address: string, chainName: ChainName) => {\n if (chainName === ChainName.IOTAL1) {\n return normalizeIotaAddress(address);\n }\n return normalizeSuiAddress(address);\n};\n"]}
package/dist/index.cjs CHANGED
@@ -4,7 +4,7 @@ var R55BZY4H_cjs = require('./R55BZY4H.cjs');
4
4
  require('./L6EI37IO.cjs');
5
5
  require('./7LWJNWY6.cjs');
6
6
  require('./PKPG4OQE.cjs');
7
- var BJANQBLL_cjs = require('./BJANQBLL.cjs');
7
+ var _3I7UTUWR_cjs = require('./3I7UTUWR.cjs');
8
8
  require('./ZW4CIJT7.cjs');
9
9
  var K3HXCRDT_cjs = require('./K3HXCRDT.cjs');
10
10
  require('./YJF4D23A.cjs');
@@ -25,59 +25,59 @@ Object.defineProperty(exports, "suiMoveMultiSigTransactionToProposeSchema", {
25
25
  });
26
26
  Object.defineProperty(exports, "checkInclusion", {
27
27
  enumerable: true,
28
- get: function () { return BJANQBLL_cjs.checkInclusion; }
28
+ get: function () { return _3I7UTUWR_cjs.checkInclusion; }
29
29
  });
30
30
  Object.defineProperty(exports, "convertToSuiMoveEvents", {
31
31
  enumerable: true,
32
- get: function () { return BJANQBLL_cjs.convertToSuiMoveEvents; }
32
+ get: function () { return _3I7UTUWR_cjs.convertToSuiMoveEvents; }
33
33
  });
34
34
  Object.defineProperty(exports, "filterObjectChanges", {
35
35
  enumerable: true,
36
- get: function () { return BJANQBLL_cjs.filterObjectChanges; }
36
+ get: function () { return _3I7UTUWR_cjs.filterObjectChanges; }
37
37
  });
38
38
  Object.defineProperty(exports, "getDefiningPackageIdFromObjectType", {
39
39
  enumerable: true,
40
- get: function () { return BJANQBLL_cjs.getDefiningPackageIdFromObjectType; }
40
+ get: function () { return _3I7UTUWR_cjs.getDefiningPackageIdFromObjectType; }
41
41
  });
42
42
  Object.defineProperty(exports, "getSuiMoveObjectValidated", {
43
43
  enumerable: true,
44
- get: function () { return BJANQBLL_cjs.getSuiMoveObjectValidated; }
44
+ get: function () { return _3I7UTUWR_cjs.getSuiMoveObjectValidated; }
45
45
  });
46
46
  Object.defineProperty(exports, "getSuiMoveOwnedObjectsByType", {
47
47
  enumerable: true,
48
- get: function () { return BJANQBLL_cjs.getSuiMoveOwnedObjectsByType; }
48
+ get: function () { return _3I7UTUWR_cjs.getSuiMoveOwnedObjectsByType; }
49
49
  });
50
50
  Object.defineProperty(exports, "getSuiMovePackagePublishObjectChanges", {
51
51
  enumerable: true,
52
- get: function () { return BJANQBLL_cjs.getSuiMovePackagePublishObjectChanges; }
52
+ get: function () { return _3I7UTUWR_cjs.getSuiMovePackagePublishObjectChanges; }
53
53
  });
54
54
  Object.defineProperty(exports, "getSuiMoveTransactionBlockValidated", {
55
55
  enumerable: true,
56
- get: function () { return BJANQBLL_cjs.getSuiMoveTransactionBlockValidated; }
56
+ get: function () { return _3I7UTUWR_cjs.getSuiMoveTransactionBlockValidated; }
57
57
  });
58
58
  Object.defineProperty(exports, "handleError", {
59
59
  enumerable: true,
60
- get: function () { return BJANQBLL_cjs.handleError; }
60
+ get: function () { return _3I7UTUWR_cjs.handleError; }
61
61
  });
62
62
  Object.defineProperty(exports, "normalizeSuiMoveAddress", {
63
63
  enumerable: true,
64
- get: function () { return BJANQBLL_cjs.normalizeSuiMoveAddress; }
64
+ get: function () { return _3I7UTUWR_cjs.normalizeSuiMoveAddress; }
65
65
  });
66
66
  Object.defineProperty(exports, "searchForCoinTypeInWallet", {
67
67
  enumerable: true,
68
- get: function () { return BJANQBLL_cjs.searchForCoinTypeInWallet; }
68
+ get: function () { return _3I7UTUWR_cjs.searchForCoinTypeInWallet; }
69
69
  });
70
70
  Object.defineProperty(exports, "suiMoveView", {
71
71
  enumerable: true,
72
- get: function () { return BJANQBLL_cjs.suiMoveView; }
72
+ get: function () { return _3I7UTUWR_cjs.suiMoveView; }
73
73
  });
74
74
  Object.defineProperty(exports, "suiMoveViewMultiResult", {
75
75
  enumerable: true,
76
- get: function () { return BJANQBLL_cjs.suiMoveViewMultiResult; }
76
+ get: function () { return _3I7UTUWR_cjs.suiMoveViewMultiResult; }
77
77
  });
78
78
  Object.defineProperty(exports, "suiMoveViewParsed", {
79
79
  enumerable: true,
80
- get: function () { return BJANQBLL_cjs.suiMoveViewParsed; }
80
+ get: function () { return _3I7UTUWR_cjs.suiMoveViewParsed; }
81
81
  });
82
82
  Object.defineProperty(exports, "deriveSuiMoveVerificationArtifact", {
83
83
  enumerable: true,
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ export { suiMoveMultiSigExecutedProposedTransactionSchema, suiMoveMultiSigSigned
2
2
  import './QRJFMNTB.js';
3
3
  import './DMFKLZKD.js';
4
4
  import './Y5EOMP5J.js';
5
- export { checkInclusion, convertToSuiMoveEvents, filterObjectChanges, getDefiningPackageIdFromObjectType, getSuiMoveObjectValidated, getSuiMoveOwnedObjectsByType, getSuiMovePackagePublishObjectChanges, getSuiMoveTransactionBlockValidated, handleError, normalizeSuiMoveAddress, searchForCoinTypeInWallet, suiMoveView, suiMoveViewMultiResult, suiMoveViewParsed } from './WITSYWN5.js';
5
+ export { checkInclusion, convertToSuiMoveEvents, filterObjectChanges, getDefiningPackageIdFromObjectType, getSuiMoveObjectValidated, getSuiMoveOwnedObjectsByType, getSuiMovePackagePublishObjectChanges, getSuiMoveTransactionBlockValidated, handleError, normalizeSuiMoveAddress, searchForCoinTypeInWallet, suiMoveView, suiMoveViewMultiResult, suiMoveViewParsed } from './UWX3Y5ZB.js';
6
6
  import './VABOX5FT.js';
7
7
  export { deriveSuiMoveVerificationArtifact } from './2RWPJSYR.js';
8
8
  import './VUOMXK5T.js';
package/dist/utils.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var BJANQBLL_cjs = require('./BJANQBLL.cjs');
3
+ var _3I7UTUWR_cjs = require('./3I7UTUWR.cjs');
4
4
  require('./ZW4CIJT7.cjs');
5
5
  require('./YJF4D23A.cjs');
6
6
 
@@ -8,59 +8,59 @@ require('./YJF4D23A.cjs');
8
8
 
9
9
  Object.defineProperty(exports, "checkInclusion", {
10
10
  enumerable: true,
11
- get: function () { return BJANQBLL_cjs.checkInclusion; }
11
+ get: function () { return _3I7UTUWR_cjs.checkInclusion; }
12
12
  });
13
13
  Object.defineProperty(exports, "convertToSuiMoveEvents", {
14
14
  enumerable: true,
15
- get: function () { return BJANQBLL_cjs.convertToSuiMoveEvents; }
15
+ get: function () { return _3I7UTUWR_cjs.convertToSuiMoveEvents; }
16
16
  });
17
17
  Object.defineProperty(exports, "filterObjectChanges", {
18
18
  enumerable: true,
19
- get: function () { return BJANQBLL_cjs.filterObjectChanges; }
19
+ get: function () { return _3I7UTUWR_cjs.filterObjectChanges; }
20
20
  });
21
21
  Object.defineProperty(exports, "getDefiningPackageIdFromObjectType", {
22
22
  enumerable: true,
23
- get: function () { return BJANQBLL_cjs.getDefiningPackageIdFromObjectType; }
23
+ get: function () { return _3I7UTUWR_cjs.getDefiningPackageIdFromObjectType; }
24
24
  });
25
25
  Object.defineProperty(exports, "getSuiMoveObjectValidated", {
26
26
  enumerable: true,
27
- get: function () { return BJANQBLL_cjs.getSuiMoveObjectValidated; }
27
+ get: function () { return _3I7UTUWR_cjs.getSuiMoveObjectValidated; }
28
28
  });
29
29
  Object.defineProperty(exports, "getSuiMoveOwnedObjectsByType", {
30
30
  enumerable: true,
31
- get: function () { return BJANQBLL_cjs.getSuiMoveOwnedObjectsByType; }
31
+ get: function () { return _3I7UTUWR_cjs.getSuiMoveOwnedObjectsByType; }
32
32
  });
33
33
  Object.defineProperty(exports, "getSuiMovePackagePublishObjectChanges", {
34
34
  enumerable: true,
35
- get: function () { return BJANQBLL_cjs.getSuiMovePackagePublishObjectChanges; }
35
+ get: function () { return _3I7UTUWR_cjs.getSuiMovePackagePublishObjectChanges; }
36
36
  });
37
37
  Object.defineProperty(exports, "getSuiMoveTransactionBlockValidated", {
38
38
  enumerable: true,
39
- get: function () { return BJANQBLL_cjs.getSuiMoveTransactionBlockValidated; }
39
+ get: function () { return _3I7UTUWR_cjs.getSuiMoveTransactionBlockValidated; }
40
40
  });
41
41
  Object.defineProperty(exports, "handleError", {
42
42
  enumerable: true,
43
- get: function () { return BJANQBLL_cjs.handleError; }
43
+ get: function () { return _3I7UTUWR_cjs.handleError; }
44
44
  });
45
45
  Object.defineProperty(exports, "normalizeSuiMoveAddress", {
46
46
  enumerable: true,
47
- get: function () { return BJANQBLL_cjs.normalizeSuiMoveAddress; }
47
+ get: function () { return _3I7UTUWR_cjs.normalizeSuiMoveAddress; }
48
48
  });
49
49
  Object.defineProperty(exports, "searchForCoinTypeInWallet", {
50
50
  enumerable: true,
51
- get: function () { return BJANQBLL_cjs.searchForCoinTypeInWallet; }
51
+ get: function () { return _3I7UTUWR_cjs.searchForCoinTypeInWallet; }
52
52
  });
53
53
  Object.defineProperty(exports, "suiMoveView", {
54
54
  enumerable: true,
55
- get: function () { return BJANQBLL_cjs.suiMoveView; }
55
+ get: function () { return _3I7UTUWR_cjs.suiMoveView; }
56
56
  });
57
57
  Object.defineProperty(exports, "suiMoveViewMultiResult", {
58
58
  enumerable: true,
59
- get: function () { return BJANQBLL_cjs.suiMoveViewMultiResult; }
59
+ get: function () { return _3I7UTUWR_cjs.suiMoveViewMultiResult; }
60
60
  });
61
61
  Object.defineProperty(exports, "suiMoveViewParsed", {
62
62
  enumerable: true,
63
- get: function () { return BJANQBLL_cjs.suiMoveViewParsed; }
63
+ get: function () { return _3I7UTUWR_cjs.suiMoveViewParsed; }
64
64
  });
65
65
  //# sourceMappingURL=utils.cjs.map
66
66
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- export { checkInclusion, convertToSuiMoveEvents, filterObjectChanges, getDefiningPackageIdFromObjectType, getSuiMoveObjectValidated, getSuiMoveOwnedObjectsByType, getSuiMovePackagePublishObjectChanges, getSuiMoveTransactionBlockValidated, handleError, normalizeSuiMoveAddress, searchForCoinTypeInWallet, suiMoveView, suiMoveViewMultiResult, suiMoveViewParsed } from './WITSYWN5.js';
1
+ export { checkInclusion, convertToSuiMoveEvents, filterObjectChanges, getDefiningPackageIdFromObjectType, getSuiMoveObjectValidated, getSuiMoveOwnedObjectsByType, getSuiMovePackagePublishObjectChanges, getSuiMoveTransactionBlockValidated, handleError, normalizeSuiMoveAddress, searchForCoinTypeInWallet, suiMoveView, suiMoveViewMultiResult, suiMoveViewParsed } from './UWX3Y5ZB.js';
2
2
  import './VABOX5FT.js';
3
3
  import './VUOMXK5T.js';
4
4
  //# sourceMappingURL=utils.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/common-suimove",
3
- "version": "0.2.67",
3
+ "version": "0.2.69",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,15 +17,15 @@
17
17
  "@iota/iota-sdk": "^1.6.1",
18
18
  "@mysten/sui": "^1.35.0",
19
19
  "zod": "4.3.5",
20
- "@layerzerolabs/common-chain-model": "0.2.67",
21
- "@layerzerolabs/typescript-utils": "0.2.67",
22
- "@layerzerolabs/layerzero-definitions": "0.2.67"
20
+ "@layerzerolabs/common-chain-model": "0.2.69",
21
+ "@layerzerolabs/layerzero-definitions": "0.2.69",
22
+ "@layerzerolabs/typescript-utils": "0.2.69"
23
23
  },
24
24
  "devDependencies": {
25
25
  "tsup": "^8.4.0",
26
26
  "vitest": "^3.2.3",
27
- "@layerzerolabs/tsup-configuration": "0.2.67",
28
- "@layerzerolabs/typescript-configuration": "0.2.67"
27
+ "@layerzerolabs/typescript-configuration": "0.2.69",
28
+ "@layerzerolabs/tsup-configuration": "0.2.69"
29
29
  },
30
30
  "publishConfig": {
31
31
  "access": "restricted",
package/src/utils.ts CHANGED
@@ -159,7 +159,7 @@ export const filterObjectChanges = <Options extends ObjectChangeTypesOptions>(
159
159
  options?.showPublished &&
160
160
  (query === 'all' || checkInclusion(objectChange.packageId, query))
161
161
  ) {
162
- // FIXME: maybe we can remove these as? not sure though
162
+ // TODO: consider removing `as` casts
163
163
  result['published' as key] ??= [] as any;
164
164
  result['published' as key].push(objectChange as any);
165
165
  }
@@ -170,7 +170,7 @@ export const filterObjectChanges = <Options extends ObjectChangeTypesOptions>(
170
170
  options?.[show] &&
171
171
  (query === 'all' || checkInclusion(objectChange.objectType, query))
172
172
  ) {
173
- // FIXME: maybe we can remove these as? not sure though
173
+ // TODO: consider removing `as` casts
174
174
  result[objectChange.type as key] ??= [] as any;
175
175
  result[objectChange.type as key].push(objectChange as any);
176
176
  }