@mysten/sui 1.28.1 → 1.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +5 -4
  3. package/dist/cjs/client/client.d.ts +2 -1
  4. package/dist/cjs/client/client.js +7 -0
  5. package/dist/cjs/client/client.js.map +2 -2
  6. package/dist/cjs/experimental/core.d.ts +2 -1
  7. package/dist/cjs/experimental/core.js +12 -1
  8. package/dist/cjs/experimental/core.js.map +2 -2
  9. package/dist/cjs/experimental/transports/graphql.d.ts +26 -0
  10. package/dist/cjs/experimental/transports/graphql.js +310 -0
  11. package/dist/cjs/experimental/transports/graphql.js.map +7 -0
  12. package/dist/cjs/experimental/transports/jsonRPC.d.ts +5 -3
  13. package/dist/cjs/experimental/transports/jsonRPC.js +53 -105
  14. package/dist/cjs/experimental/transports/jsonRPC.js.map +3 -3
  15. package/dist/cjs/experimental/transports/utils.d.ts +6 -0
  16. package/dist/cjs/experimental/transports/utils.js +102 -0
  17. package/dist/cjs/experimental/transports/utils.js.map +7 -0
  18. package/dist/cjs/experimental/types.d.ts +27 -6
  19. package/dist/cjs/experimental/types.js.map +1 -1
  20. package/dist/cjs/faucet/faucet.d.ts +1 -1
  21. package/dist/cjs/faucet/faucet.js.map +1 -1
  22. package/dist/cjs/graphql/client.d.ts +10 -3
  23. package/dist/cjs/graphql/client.js +12 -4
  24. package/dist/cjs/graphql/client.js.map +3 -3
  25. package/dist/cjs/graphql/generated/queries.d.ts +5653 -0
  26. package/dist/cjs/graphql/generated/queries.js +722 -0
  27. package/dist/cjs/graphql/generated/queries.js.map +7 -0
  28. package/dist/cjs/multisig/publickey.d.ts +3 -3
  29. package/dist/cjs/multisig/publickey.js.map +2 -2
  30. package/dist/cjs/transactions/Commands.d.ts +2 -2
  31. package/dist/cjs/transactions/Commands.js.map +2 -2
  32. package/dist/cjs/transactions/Transaction.d.ts +10 -2
  33. package/dist/cjs/transactions/Transaction.js +165 -21
  34. package/dist/cjs/transactions/Transaction.js.map +3 -3
  35. package/dist/cjs/transactions/TransactionData.d.ts +4 -2
  36. package/dist/cjs/transactions/TransactionData.js +72 -41
  37. package/dist/cjs/transactions/TransactionData.js.map +2 -2
  38. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -1
  39. package/dist/cjs/verify/verify.d.ts +5 -5
  40. package/dist/cjs/verify/verify.js.map +2 -2
  41. package/dist/cjs/version.d.ts +2 -2
  42. package/dist/cjs/version.js +2 -2
  43. package/dist/cjs/version.js.map +1 -1
  44. package/dist/cjs/zklogin/publickey.d.ts +9 -3
  45. package/dist/cjs/zklogin/publickey.js +8 -30
  46. package/dist/cjs/zklogin/publickey.js.map +2 -2
  47. package/dist/esm/client/client.d.ts +2 -1
  48. package/dist/esm/client/client.js +7 -0
  49. package/dist/esm/client/client.js.map +2 -2
  50. package/dist/esm/experimental/core.d.ts +2 -1
  51. package/dist/esm/experimental/core.js +12 -1
  52. package/dist/esm/experimental/core.js.map +2 -2
  53. package/dist/esm/experimental/transports/graphql.d.ts +26 -0
  54. package/dist/esm/experimental/transports/graphql.js +303 -0
  55. package/dist/esm/experimental/transports/graphql.js.map +7 -0
  56. package/dist/esm/experimental/transports/jsonRPC.d.ts +5 -3
  57. package/dist/esm/experimental/transports/jsonRPC.js +52 -104
  58. package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
  59. package/dist/esm/experimental/transports/utils.d.ts +6 -0
  60. package/dist/esm/experimental/transports/utils.js +82 -0
  61. package/dist/esm/experimental/transports/utils.js.map +7 -0
  62. package/dist/esm/experimental/types.d.ts +27 -6
  63. package/dist/esm/faucet/faucet.d.ts +1 -1
  64. package/dist/esm/faucet/faucet.js.map +1 -1
  65. package/dist/esm/graphql/client.d.ts +10 -3
  66. package/dist/esm/graphql/client.js +12 -4
  67. package/dist/esm/graphql/client.js.map +2 -2
  68. package/dist/esm/graphql/generated/queries.d.ts +5653 -0
  69. package/dist/esm/graphql/generated/queries.js +702 -0
  70. package/dist/esm/graphql/generated/queries.js.map +7 -0
  71. package/dist/esm/multisig/publickey.d.ts +3 -3
  72. package/dist/esm/multisig/publickey.js.map +2 -2
  73. package/dist/esm/transactions/Commands.d.ts +2 -2
  74. package/dist/esm/transactions/Commands.js.map +2 -2
  75. package/dist/esm/transactions/Transaction.d.ts +10 -2
  76. package/dist/esm/transactions/Transaction.js +165 -21
  77. package/dist/esm/transactions/Transaction.js.map +3 -3
  78. package/dist/esm/transactions/TransactionData.d.ts +4 -2
  79. package/dist/esm/transactions/TransactionData.js +72 -41
  80. package/dist/esm/transactions/TransactionData.js.map +2 -2
  81. package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -1
  82. package/dist/esm/verify/verify.d.ts +5 -5
  83. package/dist/esm/verify/verify.js.map +2 -2
  84. package/dist/esm/version.d.ts +2 -2
  85. package/dist/esm/version.js +2 -2
  86. package/dist/esm/version.js.map +1 -1
  87. package/dist/esm/zklogin/publickey.d.ts +9 -3
  88. package/dist/esm/zklogin/publickey.js +8 -30
  89. package/dist/esm/zklogin/publickey.js.map +2 -2
  90. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +4 -1
  93. package/src/client/client.ts +10 -0
  94. package/src/experimental/core.ts +17 -1
  95. package/src/experimental/transports/graphql.ts +421 -0
  96. package/src/experimental/transports/jsonRPC.ts +47 -132
  97. package/src/experimental/transports/utils.ts +117 -0
  98. package/src/experimental/types.ts +38 -7
  99. package/src/faucet/faucet.ts +1 -1
  100. package/src/graphql/client.ts +21 -3
  101. package/src/graphql/generated/queries.ts +6061 -0
  102. package/src/graphql/queries/getAllBalances.graphql +20 -0
  103. package/src/graphql/queries/getBalance.graphql +14 -0
  104. package/src/graphql/queries/getCoins.graphql +29 -0
  105. package/src/graphql/queries/getDynamicFields.graphql +36 -0
  106. package/src/graphql/queries/getReferenceGasPrice.graphql +8 -0
  107. package/src/graphql/queries/objects.graphql +89 -0
  108. package/src/graphql/queries/transactions.graphql +80 -0
  109. package/src/graphql/queries/verifyZkLoginSignature.graphql +16 -0
  110. package/src/multisig/publickey.ts +3 -3
  111. package/src/transactions/Commands.ts +3 -2
  112. package/src/transactions/Transaction.ts +215 -12
  113. package/src/transactions/TransactionData.ts +86 -46
  114. package/src/transactions/intents/CoinWithBalance.ts +1 -1
  115. package/src/verify/verify.ts +6 -6
  116. package/src/version.ts +2 -2
  117. package/src/zklogin/publickey.ts +23 -39
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/experimental/transports/jsonRPC.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\n\nimport { bcs } from '../../bcs/index.js';\nimport type {\n\tObjectOwner,\n\tSuiClient,\n\tSuiObjectChange,\n\tSuiObjectData,\n\tSuiTransactionBlockResponse,\n\tTransactionEffects,\n} from '../../client/index.js';\nimport { batch } from '../../transactions/plugins/utils.js';\nimport { Transaction } from '../../transactions/Transaction.js';\nimport { normalizeStructTag } from '../../utils/sui-types.js';\nimport { Experimental_CoreClient } from '../core.js';\nimport { ObjectError } from '../errors.js';\nimport type { Experimental_SuiClientTypes } from '../types.js';\n\nexport class JSONRpcTransport extends Experimental_CoreClient {\n\t#jsonRpcClient: SuiClient;\n\n\tconstructor(jsonRpcClient: SuiClient) {\n\t\tsuper({ network: jsonRpcClient.network });\n\t\tthis.#jsonRpcClient = jsonRpcClient;\n\t}\n\n\tasync getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions) {\n\t\tconst batches = batch(options.objectIds, 50);\n\t\tconst results: Experimental_SuiClientTypes.GetObjectsResponse['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst objects = await this.#jsonRpcClient.multiGetObjects({\n\t\t\t\tids: batch,\n\t\t\t\toptions: {\n\t\t\t\t\tshowOwner: true,\n\t\t\t\t\tshowType: true,\n\t\t\t\t\tshowBcs: true,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tfor (const [idx, object] of objects.entries()) {\n\t\t\t\tif (object.error) {\n\t\t\t\t\tresults.push(ObjectError.fromResponse(object.error, batch[idx]));\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(parseObject(object.data!));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync getOwnedObjects(options: Experimental_SuiClientTypes.GetOwnedObjectsOptions) {\n\t\tconst objects = await this.#jsonRpcClient.getOwnedObjects({\n\t\t\towner: options.address,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t\toptions: {\n\t\t\t\tshowOwner: true,\n\t\t\t\tshowType: true,\n\t\t\t\tshowBcs: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: objects.data.map((result) => {\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthrow ObjectError.fromResponse(result.error);\n\t\t\t\t}\n\n\t\t\t\treturn parseObject(result.data!);\n\t\t\t}),\n\t\t\thasNextPage: objects.hasNextPage,\n\t\t\tcursor: objects.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions) {\n\t\tconst coins = await this.#jsonRpcClient.getCoins({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: coins.data.map((coin) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\tversion: coin.version,\n\t\t\t\t\tdigest: coin.digest,\n\t\t\t\t\tbalance: coin.balance,\n\t\t\t\t\ttype: `0x2::coin::Coin<${coin.coinType}>`,\n\t\t\t\t\tcontent: Coin.serialize({\n\t\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\t\tbalance: {\n\t\t\t\t\t\t\tvalue: coin.balance,\n\t\t\t\t\t\t},\n\t\t\t\t\t}).toBytes(),\n\t\t\t\t\towner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: options.address,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: coins.hasNextPage,\n\t\t\tcursor: coins.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions) {\n\t\tconst balance = await this.#jsonRpcClient.getBalance({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: balance.totalBalance,\n\t\t\t},\n\t\t};\n\t}\n\tasync getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions) {\n\t\tconst balances = await this.#jsonRpcClient.getAllBalances({\n\t\t\towner: options.address,\n\t\t});\n\n\t\treturn {\n\t\t\tbalances: balances.map((balance) => ({\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: balance.totalBalance,\n\t\t\t})),\n\t\t\thasNextPage: false,\n\t\t\tcursor: null,\n\t\t};\n\t}\n\tasync getTransaction(options: Experimental_SuiClientTypes.GetTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.getTransactionBlock({\n\t\t\tdigest: options.digest,\n\t\t\toptions: {\n\t\t\t\tshowRawInput: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.executeTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t\tsignature: options.signatures,\n\t\t\toptions: {\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawInput: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions) {\n\t\tconst tx = Transaction.from(options.transaction);\n\t\tconst result = await this.#jsonRpcClient.dryRunTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: {\n\t\t\t\tdigest: await tx.getDigest(),\n\t\t\t\teffects: parseTransactionEffectsJson({\n\t\t\t\t\teffects: result.effects,\n\t\t\t\t\tobjectChanges: result.objectChanges,\n\t\t\t\t}),\n\t\t\t\tsignatures: [],\n\t\t\t\tbcs: options.transaction,\n\t\t\t},\n\t\t};\n\t}\n\tasync getReferenceGasPrice() {\n\t\tconst referenceGasPrice = await this.#jsonRpcClient.getReferenceGasPrice();\n\t\treturn {\n\t\t\treferenceGasPrice: String(referenceGasPrice),\n\t\t};\n\t}\n\n\tasync getDynamicFields(options: Experimental_SuiClientTypes.GetDynamicFieldsOptions) {\n\t\tconst dynamicFields = await this.#jsonRpcClient.getDynamicFields({\n\t\t\tparentId: options.parentId,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t});\n\n\t\treturn {\n\t\t\tdynamicFields: dynamicFields.data.map((dynamicField) => ({\n\t\t\t\tid: dynamicField.objectId,\n\t\t\t\tversion: dynamicField.version,\n\t\t\t\tdigest: dynamicField.digest,\n\t\t\t\ttype: dynamicField.objectType,\n\t\t\t\tname: {\n\t\t\t\t\ttype: dynamicField.name.type,\n\t\t\t\t\tbcs: fromBase64(dynamicField.bcsName),\n\t\t\t\t},\n\t\t\t})),\n\t\t\thasNextPage: dynamicFields.hasNextPage,\n\t\t\tcursor: dynamicFields.nextCursor,\n\t\t};\n\t}\n}\n\nfunction parseObject(object: SuiObjectData): Experimental_SuiClientTypes.ObjectResponse {\n\treturn {\n\t\tid: object.objectId,\n\t\tversion: object.version,\n\t\tdigest: object.digest,\n\t\ttype: object.type!,\n\t\tcontent:\n\t\t\tobject.bcs?.dataType === 'moveObject' ? fromBase64(object.bcs.bcsBytes) : new Uint8Array(),\n\t\towner: parseOwner(object.owner!),\n\t};\n}\n\nfunction parseOwner(owner: ObjectOwner): Experimental_SuiClientTypes.ObjectOwner {\n\tif (owner === 'Immutable') {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\n\tif ('ConsensusV2' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusV2',\n\t\t\tConsensusV2: {\n\t\t\t\tauthenticator: {\n\t\t\t\t\t$kind: 'SingleOwner',\n\t\t\t\t\tSingleOwner: owner.ConsensusV2.authenticator.SingleOwner,\n\t\t\t\t},\n\t\t\t\tstartVersion: owner.ConsensusV2.start_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('AddressOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'AddressOwner',\n\t\t\tAddressOwner: owner.AddressOwner,\n\t\t};\n\t}\n\n\tif ('ObjectOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.ObjectOwner,\n\t\t};\n\t}\n\n\tif ('Shared' in owner) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.Shared.initial_shared_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown owner type: ${JSON.stringify(owner)}`);\n}\n\nfunction parseTransaction(\n\ttransaction: SuiTransactionBlockResponse,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst parsedTx = bcs.SenderSignedData.parse(fromBase64(transaction.rawTransaction!))[0];\n\n\treturn {\n\t\tdigest: transaction.digest,\n\t\teffects: parseTransactionEffects({\n\t\t\teffects: new Uint8Array(transaction.rawEffects!),\n\t\t\tobjectChanges: transaction.objectChanges ?? null,\n\t\t}),\n\t\tbcs: bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),\n\t\tsignatures: parsedTx.txSignatures,\n\t};\n}\n\nfunction parseTransactionEffects({\n\teffects,\n\tepoch,\n\tobjectChanges,\n}: {\n\teffects: Uint8Array;\n\tobjectChanges: SuiObjectChange[] | null;\n\tepoch?: string | null;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst parsed = bcs.TransactionEffects.parse(effects);\n\tconst objectTypes: Record<string, string> = {};\n\n\tobjectChanges?.forEach((change) => {\n\t\tif (change.type !== 'published') {\n\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t}\n\t});\n\n\tswitch (parsed.$kind) {\n\t\tcase 'V1':\n\t\t\treturn parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1, epoch, objectTypes });\n\t\tcase 'V2':\n\t\t\treturn parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2, epoch, objectTypes });\n\t\tdefault:\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown transaction effects version: ${(parsed as { $kind: string }).$kind}`,\n\t\t\t);\n\t}\n}\n\nfunction parseTransactionEffectsV1(_: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V1']>;\n\tepoch?: string | null;\n\tobjectTypes: Record<string, string>;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tthrow new Error('V1 effects are not supported yet');\n}\n\nfunction parseTransactionEffectsV2({\n\tbytes,\n\teffects,\n\tepoch,\n\tobjectTypes,\n}: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V2']>;\n\tepoch?: string | null;\n\tobjectTypes: Record<string, string>;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst changedObjects = effects.changedObjects.map(\n\t\t([id, change]): Experimental_SuiClientTypes.ChangedObject => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tinputState: change.inputState.$kind === 'Exist' ? 'Exists' : 'DoesNotExist',\n\t\t\t\tinputVersion: change.inputState.Exist?.[0][0] ?? null,\n\t\t\t\tinputDigest: change.inputState.Exist?.[0][1] ?? null,\n\t\t\t\tinputOwner: change.inputState.Exist?.[1] ?? null,\n\t\t\t\toutputState:\n\t\t\t\t\tchange.outputState.$kind === 'NotExist' ? 'DoesNotExist' : change.outputState.$kind,\n\t\t\t\toutputVersion:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[0]\n\t\t\t\t\t\t: change.outputState.ObjectWrite\n\t\t\t\t\t\t\t? effects.lamportVersion\n\t\t\t\t\t\t\t: null,\n\t\t\t\toutputDigest:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[1]\n\t\t\t\t\t\t: (change.outputState.ObjectWrite?.[0] ?? null),\n\t\t\t\toutputOwner: change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : null,\n\t\t\t\tidOperation: change.idOperation.$kind,\n\t\t\t\tobjectType: objectTypes[id] ?? null,\n\t\t\t};\n\t\t},\n\t);\n\n\treturn {\n\t\tbcs: bytes,\n\t\tdigest: effects.transactionDigest,\n\t\tversion: 2,\n\t\tstatus:\n\t\t\teffects.status.$kind === 'Success'\n\t\t\t\t? {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t// TODO: add command\n\t\t\t\t\t\terror: effects.status.Failed.error.$kind,\n\t\t\t\t\t},\n\t\tepoch: epoch ?? null,\n\t\tgasUsed: effects.gasUsed,\n\t\ttransactionDigest: effects.transactionDigest,\n\t\tgasObject:\n\t\t\teffects.gasObjectIndex === null ? null : (changedObjects[effects.gasObjectIndex] ?? null),\n\t\teventsDigest: effects.eventsDigest,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion,\n\t\tchangedObjects,\n\t\tunchangedSharedObjects: effects.unchangedSharedObjects.map(\n\t\t\t([objectId, object]): Experimental_SuiClientTypes.UnchangedSharedObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: object.$kind,\n\t\t\t\t\tobjectId: objectId,\n\t\t\t\t\tversion:\n\t\t\t\t\t\tobject.$kind === 'ReadOnlyRoot'\n\t\t\t\t\t\t\t? object.ReadOnlyRoot[0]\n\t\t\t\t\t\t\t: (object[object.$kind] as string | null),\n\t\t\t\t\tdigest: object.$kind === 'ReadOnlyRoot' ? object.ReadOnlyRoot[1] : null,\n\t\t\t\t\tobjectType: objectTypes[objectId] ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxDataDigest,\n\t};\n}\n\nfunction parseTransactionEffectsJson({\n\tbytes,\n\teffects,\n\tepoch,\n\tobjectChanges,\n}: {\n\tbytes?: Uint8Array;\n\teffects: TransactionEffects;\n\tepoch?: string | null;\n\tobjectChanges: SuiObjectChange[] | null;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst changedObjects: Experimental_SuiClientTypes.ChangedObject[] = [];\n\tconst unchangedSharedObjects: Experimental_SuiClientTypes.UnchangedSharedObject[] = [];\n\n\tobjectChanges?.forEach((change) => {\n\t\tswitch (change.type) {\n\t\t\tcase 'published':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.packageId,\n\t\t\t\t\tinputState: 'DoesNotExist',\n\t\t\t\t\tinputVersion: null,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'PackageWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: null,\n\t\t\t\t\tidOperation: 'Created',\n\t\t\t\t\tobjectType: null,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'transferred':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: change.digest,\n\t\t\t\t\tinputOwner: {\n\t\t\t\t\t\t$kind: 'AddressOwner' as const,\n\t\t\t\t\t\tAddressOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.recipient),\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'mutated':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.previousVersion,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: parseOwner(change.owner),\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.owner),\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'deleted':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: effects.deleted?.find((d) => d.objectId === change.objectId)?.digest ?? null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'DoesNotExist',\n\t\t\t\t\toutputVersion: null,\n\t\t\t\t\toutputDigest: null,\n\t\t\t\t\toutputOwner: null,\n\t\t\t\t\tidOperation: 'Deleted',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'wrapped':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: {\n\t\t\t\t\t\t$kind: 'AddressOwner' as const,\n\t\t\t\t\t\tAddressOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest:\n\t\t\t\t\t\teffects.wrapped?.find((w) => w.objectId === change.objectId)?.digest ?? null,\n\t\t\t\t\toutputOwner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'created':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'DoesNotExist',\n\t\t\t\t\tinputVersion: null,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.owner),\n\t\t\t\t\tidOperation: 'Created',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\treturn {\n\t\tbcs: bytes ?? null,\n\t\tdigest: effects.transactionDigest,\n\t\tversion: 2,\n\t\tstatus:\n\t\t\teffects.status.status === 'success'\n\t\t\t\t? { success: true, error: null }\n\t\t\t\t: { success: false, error: effects.status.error! },\n\t\tepoch: epoch ?? null,\n\t\tgasUsed: effects.gasUsed,\n\t\ttransactionDigest: effects.transactionDigest,\n\t\tgasObject: {\n\t\t\tid: effects.gasObject?.reference.objectId,\n\t\t\tinputState: 'Exists',\n\t\t\tinputVersion: null,\n\t\t\tinputDigest: null,\n\t\t\tinputOwner: null,\n\t\t\toutputState: 'ObjectWrite',\n\t\t\toutputVersion: effects.gasObject.reference.version,\n\t\t\toutputDigest: effects.gasObject.reference.digest,\n\t\t\toutputOwner: parseOwner(effects.gasObject.owner),\n\t\t\tidOperation: 'None',\n\t\t\tobjectType: normalizeStructTag('0x2::coin::Coin<0x2::sui::SUI>'),\n\t\t},\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies ?? [],\n\t\tlamportVersion: effects.gasObject.reference.version,\n\t\tchangedObjects,\n\t\tunchangedSharedObjects,\n\t\tauxiliaryDataDigest: null,\n\t};\n}\n\nconst Balance = bcs.struct('Balance', {\n\tvalue: bcs.u64(),\n});\n\nconst Coin = bcs.struct('Coin', {\n\tid: bcs.Address,\n\tbalance: Balance,\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_bcs", "batch"]
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\n\nimport { bcs } from '../../bcs/index.js';\nimport type {\n\tObjectOwner,\n\tSuiClient,\n\tSuiObjectChange,\n\tSuiObjectData,\n\tSuiTransactionBlockResponse,\n\tTransactionEffects,\n} from '../../client/index.js';\nimport { batch } from '../../transactions/plugins/utils.js';\nimport { Transaction } from '../../transactions/Transaction.js';\nimport { normalizeStructTag } from '../../utils/sui-types.js';\nimport { Experimental_CoreClient } from '../core.js';\nimport { ObjectError } from '../errors.js';\nimport type { Experimental_SuiClientTypes } from '../types.js';\nimport { parseTransactionEffects } from './utils.js';\n\nexport class JSONRpcTransport extends Experimental_CoreClient {\n\t#jsonRpcClient: SuiClient;\n\n\tconstructor(jsonRpcClient: SuiClient) {\n\t\tsuper({ network: jsonRpcClient.network });\n\t\tthis.#jsonRpcClient = jsonRpcClient;\n\t}\n\n\tasync getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions) {\n\t\tconst batches = batch(options.objectIds, 50);\n\t\tconst results: Experimental_SuiClientTypes.GetObjectsResponse['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst objects = await this.#jsonRpcClient.multiGetObjects({\n\t\t\t\tids: batch,\n\t\t\t\toptions: {\n\t\t\t\t\tshowOwner: true,\n\t\t\t\t\tshowType: true,\n\t\t\t\t\tshowBcs: true,\n\t\t\t\t},\n\t\t\t\tsignal: options.signal,\n\t\t\t});\n\n\t\t\tfor (const [idx, object] of objects.entries()) {\n\t\t\t\tif (object.error) {\n\t\t\t\t\tresults.push(ObjectError.fromResponse(object.error, batch[idx]));\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(parseObject(object.data!));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync getOwnedObjects(options: Experimental_SuiClientTypes.GetOwnedObjectsOptions) {\n\t\tconst objects = await this.#jsonRpcClient.getOwnedObjects({\n\t\t\towner: options.address,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t\toptions: {\n\t\t\t\tshowOwner: true,\n\t\t\t\tshowType: true,\n\t\t\t\tshowBcs: true,\n\t\t\t},\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: objects.data.map((result) => {\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthrow ObjectError.fromResponse(result.error);\n\t\t\t\t}\n\n\t\t\t\treturn parseObject(result.data!);\n\t\t\t}),\n\t\t\thasNextPage: objects.hasNextPage,\n\t\t\tcursor: objects.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions) {\n\t\tconst coins = await this.#jsonRpcClient.getCoins({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: coins.data.map((coin) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\tversion: coin.version,\n\t\t\t\t\tdigest: coin.digest,\n\t\t\t\t\tbalance: coin.balance,\n\t\t\t\t\ttype: `0x2::coin::Coin<${coin.coinType}>`,\n\t\t\t\t\tcontent: Coin.serialize({\n\t\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\t\tbalance: {\n\t\t\t\t\t\t\tvalue: coin.balance,\n\t\t\t\t\t\t},\n\t\t\t\t\t}).toBytes(),\n\t\t\t\t\towner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: options.address,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: coins.hasNextPage,\n\t\t\tcursor: coins.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions) {\n\t\tconst balance = await this.#jsonRpcClient.getBalance({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: balance.totalBalance,\n\t\t\t},\n\t\t};\n\t}\n\tasync getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions) {\n\t\tconst balances = await this.#jsonRpcClient.getAllBalances({\n\t\t\towner: options.address,\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\treturn {\n\t\t\tbalances: balances.map((balance) => ({\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: balance.totalBalance,\n\t\t\t})),\n\t\t\thasNextPage: false,\n\t\t\tcursor: null,\n\t\t};\n\t}\n\tasync getTransaction(options: Experimental_SuiClientTypes.GetTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.getTransactionBlock({\n\t\t\tdigest: options.digest,\n\t\t\toptions: {\n\t\t\t\tshowRawInput: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t},\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.executeTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t\tsignature: options.signatures,\n\t\t\toptions: {\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawInput: true,\n\t\t\t},\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions) {\n\t\tconst tx = Transaction.from(options.transaction);\n\t\tconst result = await this.#jsonRpcClient.dryRunTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: {\n\t\t\t\tdigest: await tx.getDigest(),\n\t\t\t\teffects: parseTransactionEffectsJson({\n\t\t\t\t\teffects: result.effects,\n\t\t\t\t\tobjectChanges: result.objectChanges,\n\t\t\t\t}),\n\t\t\t\tsignatures: [],\n\t\t\t\tbcs: options.transaction,\n\t\t\t},\n\t\t};\n\t}\n\tasync getReferenceGasPrice(options?: Experimental_SuiClientTypes.GetReferenceGasPriceOptions) {\n\t\tconst referenceGasPrice = await this.#jsonRpcClient.getReferenceGasPrice({\n\t\t\tsignal: options?.signal,\n\t\t});\n\t\treturn {\n\t\t\treferenceGasPrice: String(referenceGasPrice),\n\t\t};\n\t}\n\n\tasync getDynamicFields(options: Experimental_SuiClientTypes.GetDynamicFieldsOptions) {\n\t\tconst dynamicFields = await this.#jsonRpcClient.getDynamicFields({\n\t\t\tparentId: options.parentId,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t});\n\n\t\treturn {\n\t\t\tdynamicFields: dynamicFields.data.map((dynamicField) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: dynamicField.objectId,\n\t\t\t\t\ttype: dynamicField.objectType,\n\t\t\t\t\tname: {\n\t\t\t\t\t\ttype: dynamicField.name.type,\n\t\t\t\t\t\tbcs: fromBase64(dynamicField.bcsName),\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: dynamicFields.hasNextPage,\n\t\t\tcursor: dynamicFields.nextCursor,\n\t\t};\n\t}\n\n\tasync verifyZkLoginSignature(options: Experimental_SuiClientTypes.VerifyZkLoginSignatureOptions) {\n\t\tconst result = await this.#jsonRpcClient.verifyZkLoginSignature({\n\t\t\tbytes: options.bytes,\n\t\t\tsignature: options.signature,\n\t\t\tintentScope: options.intentScope,\n\t\t\tauthor: options.author,\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: result.success,\n\t\t\terrors: result.errors,\n\t\t};\n\t}\n}\n\nfunction parseObject(object: SuiObjectData): Experimental_SuiClientTypes.ObjectResponse {\n\treturn {\n\t\tid: object.objectId,\n\t\tversion: object.version,\n\t\tdigest: object.digest,\n\t\ttype: object.type!,\n\t\tcontent:\n\t\t\tobject.bcs?.dataType === 'moveObject' ? fromBase64(object.bcs.bcsBytes) : new Uint8Array(),\n\t\towner: parseOwner(object.owner!),\n\t};\n}\n\nfunction parseOwner(owner: ObjectOwner): Experimental_SuiClientTypes.ObjectOwner {\n\tif (owner === 'Immutable') {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\n\tif ('ConsensusV2' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusV2',\n\t\t\tConsensusV2: {\n\t\t\t\tauthenticator: {\n\t\t\t\t\t$kind: 'SingleOwner',\n\t\t\t\t\tSingleOwner: owner.ConsensusV2.authenticator.SingleOwner,\n\t\t\t\t},\n\t\t\t\tstartVersion: owner.ConsensusV2.start_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('AddressOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'AddressOwner',\n\t\t\tAddressOwner: owner.AddressOwner,\n\t\t};\n\t}\n\n\tif ('ObjectOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.ObjectOwner,\n\t\t};\n\t}\n\n\tif ('Shared' in owner) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.Shared.initial_shared_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown owner type: ${JSON.stringify(owner)}`);\n}\n\nfunction parseTransaction(\n\ttransaction: SuiTransactionBlockResponse,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst parsedTx = bcs.SenderSignedData.parse(fromBase64(transaction.rawTransaction!))[0];\n\tconst objectTypes: Record<string, string> = {};\n\n\ttransaction.objectChanges?.forEach((change) => {\n\t\tif (change.type !== 'published') {\n\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t}\n\t});\n\n\treturn {\n\t\tdigest: transaction.digest,\n\t\teffects: parseTransactionEffects({\n\t\t\teffects: new Uint8Array(transaction.rawEffects!),\n\t\t\tobjectTypes,\n\t\t}),\n\t\tbcs: bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),\n\t\tsignatures: parsedTx.txSignatures,\n\t};\n}\n\nfunction parseTransactionEffectsJson({\n\tbytes,\n\teffects,\n\tepoch,\n\tobjectChanges,\n}: {\n\tbytes?: Uint8Array;\n\teffects: TransactionEffects;\n\tepoch?: string | null;\n\tobjectChanges: SuiObjectChange[] | null;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst changedObjects: Experimental_SuiClientTypes.ChangedObject[] = [];\n\tconst unchangedSharedObjects: Experimental_SuiClientTypes.UnchangedSharedObject[] = [];\n\n\tobjectChanges?.forEach((change) => {\n\t\tswitch (change.type) {\n\t\t\tcase 'published':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.packageId,\n\t\t\t\t\tinputState: 'DoesNotExist',\n\t\t\t\t\tinputVersion: null,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'PackageWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: null,\n\t\t\t\t\tidOperation: 'Created',\n\t\t\t\t\tobjectType: null,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'transferred':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: change.digest,\n\t\t\t\t\tinputOwner: {\n\t\t\t\t\t\t$kind: 'AddressOwner' as const,\n\t\t\t\t\t\tAddressOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.recipient),\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'mutated':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.previousVersion,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: parseOwner(change.owner),\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.owner),\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'deleted':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: effects.deleted?.find((d) => d.objectId === change.objectId)?.digest ?? null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'DoesNotExist',\n\t\t\t\t\toutputVersion: null,\n\t\t\t\t\toutputDigest: null,\n\t\t\t\t\toutputOwner: null,\n\t\t\t\t\tidOperation: 'Deleted',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'wrapped':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: {\n\t\t\t\t\t\t$kind: 'AddressOwner' as const,\n\t\t\t\t\t\tAddressOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest:\n\t\t\t\t\t\teffects.wrapped?.find((w) => w.objectId === change.objectId)?.digest ?? null,\n\t\t\t\t\toutputOwner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'created':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'DoesNotExist',\n\t\t\t\t\tinputVersion: null,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.owner),\n\t\t\t\t\tidOperation: 'Created',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\treturn {\n\t\tbcs: bytes ?? null,\n\t\tdigest: effects.transactionDigest,\n\t\tversion: 2,\n\t\tstatus:\n\t\t\teffects.status.status === 'success'\n\t\t\t\t? { success: true, error: null }\n\t\t\t\t: { success: false, error: effects.status.error! },\n\t\tepoch: epoch ?? null,\n\t\tgasUsed: effects.gasUsed,\n\t\ttransactionDigest: effects.transactionDigest,\n\t\tgasObject: {\n\t\t\tid: effects.gasObject?.reference.objectId,\n\t\t\tinputState: 'Exists',\n\t\t\tinputVersion: null,\n\t\t\tinputDigest: null,\n\t\t\tinputOwner: null,\n\t\t\toutputState: 'ObjectWrite',\n\t\t\toutputVersion: effects.gasObject.reference.version,\n\t\t\toutputDigest: effects.gasObject.reference.digest,\n\t\t\toutputOwner: parseOwner(effects.gasObject.owner),\n\t\t\tidOperation: 'None',\n\t\t\tobjectType: normalizeStructTag('0x2::coin::Coin<0x2::sui::SUI>'),\n\t\t},\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies ?? [],\n\t\tlamportVersion: effects.gasObject.reference.version,\n\t\tchangedObjects,\n\t\tunchangedSharedObjects,\n\t\tauxiliaryDataDigest: null,\n\t};\n}\n\nconst Balance = bcs.struct('Balance', {\n\tvalue: bcs.u64(),\n});\n\nconst Coin = bcs.struct('Coin', {\n\tid: bcs.Address,\n\tbalance: Balance,\n});\n"],
5
+ "mappings": "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",
6
+ "names": ["import_bcs", "import_utils", "batch"]
7
7
  }
@@ -0,0 +1,6 @@
1
+ import type { Experimental_SuiClientTypes } from '../types.js';
2
+ export declare function parseTransactionEffects({ effects, epoch, objectTypes, }: {
3
+ effects: Uint8Array;
4
+ objectTypes: Record<string, string>;
5
+ epoch?: string | null;
6
+ }): Experimental_SuiClientTypes.TransactionEffects;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var utils_exports = {};
20
+ __export(utils_exports, {
21
+ parseTransactionEffects: () => parseTransactionEffects
22
+ });
23
+ module.exports = __toCommonJS(utils_exports);
24
+ var import_bcs = require("../../bcs/index.js");
25
+ function parseTransactionEffects({
26
+ effects,
27
+ epoch,
28
+ objectTypes
29
+ }) {
30
+ const parsed = import_bcs.bcs.TransactionEffects.parse(effects);
31
+ switch (parsed.$kind) {
32
+ case "V1":
33
+ return parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1, epoch, objectTypes });
34
+ case "V2":
35
+ return parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2, epoch, objectTypes });
36
+ default:
37
+ throw new Error(
38
+ `Unknown transaction effects version: ${parsed.$kind}`
39
+ );
40
+ }
41
+ }
42
+ function parseTransactionEffectsV1(_) {
43
+ throw new Error("V1 effects are not supported yet");
44
+ }
45
+ function parseTransactionEffectsV2({
46
+ bytes,
47
+ effects,
48
+ epoch,
49
+ objectTypes
50
+ }) {
51
+ const changedObjects = effects.changedObjects.map(
52
+ ([id, change]) => {
53
+ return {
54
+ id,
55
+ inputState: change.inputState.$kind === "Exist" ? "Exists" : "DoesNotExist",
56
+ inputVersion: change.inputState.Exist?.[0][0] ?? null,
57
+ inputDigest: change.inputState.Exist?.[0][1] ?? null,
58
+ inputOwner: change.inputState.Exist?.[1] ?? null,
59
+ outputState: change.outputState.$kind === "NotExist" ? "DoesNotExist" : change.outputState.$kind,
60
+ outputVersion: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[0] : change.outputState.ObjectWrite ? effects.lamportVersion : null,
61
+ outputDigest: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[1] : change.outputState.ObjectWrite?.[0] ?? null,
62
+ outputOwner: change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : null,
63
+ idOperation: change.idOperation.$kind,
64
+ objectType: objectTypes[id] ?? null
65
+ };
66
+ }
67
+ );
68
+ return {
69
+ bcs: bytes,
70
+ digest: effects.transactionDigest,
71
+ version: 2,
72
+ status: effects.status.$kind === "Success" ? {
73
+ success: true,
74
+ error: null
75
+ } : {
76
+ success: false,
77
+ // TODO: add command
78
+ error: effects.status.Failed.error.$kind
79
+ },
80
+ epoch: epoch ?? null,
81
+ gasUsed: effects.gasUsed,
82
+ transactionDigest: effects.transactionDigest,
83
+ gasObject: effects.gasObjectIndex === null ? null : changedObjects[effects.gasObjectIndex] ?? null,
84
+ eventsDigest: effects.eventsDigest,
85
+ dependencies: effects.dependencies,
86
+ lamportVersion: effects.lamportVersion,
87
+ changedObjects,
88
+ unchangedSharedObjects: effects.unchangedSharedObjects.map(
89
+ ([objectId, object]) => {
90
+ return {
91
+ kind: object.$kind,
92
+ objectId,
93
+ version: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[0] : object[object.$kind],
94
+ digest: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[1] : null,
95
+ objectType: objectTypes[objectId] ?? null
96
+ };
97
+ }
98
+ ),
99
+ auxiliaryDataDigest: effects.auxDataDigest
100
+ };
101
+ }
102
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/experimental/transports/utils.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '../../bcs/index.js';\nimport type { Experimental_SuiClientTypes } from '../types.js';\n\nexport function parseTransactionEffects({\n\teffects,\n\tepoch,\n\tobjectTypes,\n}: {\n\teffects: Uint8Array;\n\tobjectTypes: Record<string, string>;\n\tepoch?: string | null;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst parsed = bcs.TransactionEffects.parse(effects);\n\n\tswitch (parsed.$kind) {\n\t\tcase 'V1':\n\t\t\treturn parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1, epoch, objectTypes });\n\t\tcase 'V2':\n\t\t\treturn parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2, epoch, objectTypes });\n\t\tdefault:\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown transaction effects version: ${(parsed as { $kind: string }).$kind}`,\n\t\t\t);\n\t}\n}\n\nfunction parseTransactionEffectsV1(_: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V1']>;\n\tepoch?: string | null;\n\tobjectTypes: Record<string, string>;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tthrow new Error('V1 effects are not supported yet');\n}\n\nfunction parseTransactionEffectsV2({\n\tbytes,\n\teffects,\n\tepoch,\n\tobjectTypes,\n}: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V2']>;\n\tepoch?: string | null;\n\tobjectTypes: Record<string, string>;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst changedObjects = effects.changedObjects.map(\n\t\t([id, change]): Experimental_SuiClientTypes.ChangedObject => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tinputState: change.inputState.$kind === 'Exist' ? 'Exists' : 'DoesNotExist',\n\t\t\t\tinputVersion: change.inputState.Exist?.[0][0] ?? null,\n\t\t\t\tinputDigest: change.inputState.Exist?.[0][1] ?? null,\n\t\t\t\tinputOwner: change.inputState.Exist?.[1] ?? null,\n\t\t\t\toutputState:\n\t\t\t\t\tchange.outputState.$kind === 'NotExist' ? 'DoesNotExist' : change.outputState.$kind,\n\t\t\t\toutputVersion:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[0]\n\t\t\t\t\t\t: change.outputState.ObjectWrite\n\t\t\t\t\t\t\t? effects.lamportVersion\n\t\t\t\t\t\t\t: null,\n\t\t\t\toutputDigest:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[1]\n\t\t\t\t\t\t: (change.outputState.ObjectWrite?.[0] ?? null),\n\t\t\t\toutputOwner: change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : null,\n\t\t\t\tidOperation: change.idOperation.$kind,\n\t\t\t\tobjectType: objectTypes[id] ?? null,\n\t\t\t};\n\t\t},\n\t);\n\n\treturn {\n\t\tbcs: bytes,\n\t\tdigest: effects.transactionDigest,\n\t\tversion: 2,\n\t\tstatus:\n\t\t\teffects.status.$kind === 'Success'\n\t\t\t\t? {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t// TODO: add command\n\t\t\t\t\t\terror: effects.status.Failed.error.$kind,\n\t\t\t\t\t},\n\t\tepoch: epoch ?? null,\n\t\tgasUsed: effects.gasUsed,\n\t\ttransactionDigest: effects.transactionDigest,\n\t\tgasObject:\n\t\t\teffects.gasObjectIndex === null ? null : (changedObjects[effects.gasObjectIndex] ?? null),\n\t\teventsDigest: effects.eventsDigest,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion,\n\t\tchangedObjects,\n\t\tunchangedSharedObjects: effects.unchangedSharedObjects.map(\n\t\t\t([objectId, object]): Experimental_SuiClientTypes.UnchangedSharedObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: object.$kind,\n\t\t\t\t\tobjectId: objectId,\n\t\t\t\t\tversion:\n\t\t\t\t\t\tobject.$kind === 'ReadOnlyRoot'\n\t\t\t\t\t\t\t? object.ReadOnlyRoot[0]\n\t\t\t\t\t\t\t: (object[object.$kind] as string | null),\n\t\t\t\t\tdigest: object.$kind === 'ReadOnlyRoot' ? object.ReadOnlyRoot[1] : null,\n\t\t\t\t\tobjectType: objectTypes[objectId] ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxDataDigest,\n\t};\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAoB;AAGb,SAAS,wBAAwB;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AACD,GAImD;AAClD,QAAM,SAAS,eAAI,mBAAmB,MAAM,OAAO;AAEnD,UAAQ,OAAO,OAAO;AAAA,IACrB,KAAK;AACJ,aAAO,0BAA0B,EAAE,OAAO,SAAS,SAAS,OAAO,IAAI,OAAO,YAAY,CAAC;AAAA,IAC5F,KAAK;AACJ,aAAO,0BAA0B,EAAE,OAAO,SAAS,SAAS,OAAO,IAAI,OAAO,YAAY,CAAC;AAAA,IAC5F;AACC,YAAM,IAAI;AAAA,QACT,wCAAyC,OAA6B,KAAK;AAAA,MAC5E;AAAA,EACF;AACD;AAEA,SAAS,0BAA0B,GAKgB;AAClD,QAAM,IAAI,MAAM,kCAAkC;AACnD;AAEA,SAAS,0BAA0B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAKmD;AAClD,QAAM,iBAAiB,QAAQ,eAAe;AAAA,IAC7C,CAAC,CAAC,IAAI,MAAM,MAAiD;AAC5D,aAAO;AAAA,QACN;AAAA,QACA,YAAY,OAAO,WAAW,UAAU,UAAU,WAAW;AAAA,QAC7D,cAAc,OAAO,WAAW,QAAQ,CAAC,EAAE,CAAC,KAAK;AAAA,QACjD,aAAa,OAAO,WAAW,QAAQ,CAAC,EAAE,CAAC,KAAK;AAAA,QAChD,YAAY,OAAO,WAAW,QAAQ,CAAC,KAAK;AAAA,QAC5C,aACC,OAAO,YAAY,UAAU,aAAa,iBAAiB,OAAO,YAAY;AAAA,QAC/E,eACC,OAAO,YAAY,UAAU,iBAC1B,OAAO,YAAY,eAAe,CAAC,IACnC,OAAO,YAAY,cAClB,QAAQ,iBACR;AAAA,QACL,cACC,OAAO,YAAY,UAAU,iBAC1B,OAAO,YAAY,eAAe,CAAC,IAClC,OAAO,YAAY,cAAc,CAAC,KAAK;AAAA,QAC5C,aAAa,OAAO,YAAY,cAAc,OAAO,YAAY,YAAY,CAAC,IAAI;AAAA,QAClF,aAAa,OAAO,YAAY;AAAA,QAChC,YAAY,YAAY,EAAE,KAAK;AAAA,MAChC;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN,KAAK;AAAA,IACL,QAAQ,QAAQ;AAAA,IAChB,SAAS;AAAA,IACT,QACC,QAAQ,OAAO,UAAU,YACtB;AAAA,MACA,SAAS;AAAA,MACT,OAAO;AAAA,IACR,IACC;AAAA,MACA,SAAS;AAAA;AAAA,MAET,OAAO,QAAQ,OAAO,OAAO,MAAM;AAAA,IACpC;AAAA,IACH,OAAO,SAAS;AAAA,IAChB,SAAS,QAAQ;AAAA,IACjB,mBAAmB,QAAQ;AAAA,IAC3B,WACC,QAAQ,mBAAmB,OAAO,OAAQ,eAAe,QAAQ,cAAc,KAAK;AAAA,IACrF,cAAc,QAAQ;AAAA,IACtB,cAAc,QAAQ;AAAA,IACtB,gBAAgB,QAAQ;AAAA,IACxB;AAAA,IACA,wBAAwB,QAAQ,uBAAuB;AAAA,MACtD,CAAC,CAAC,UAAU,MAAM,MAAyD;AAC1E,eAAO;AAAA,UACN,MAAM,OAAO;AAAA,UACb;AAAA,UACA,SACC,OAAO,UAAU,iBACd,OAAO,aAAa,CAAC,IACpB,OAAO,OAAO,KAAK;AAAA,UACxB,QAAQ,OAAO,UAAU,iBAAiB,OAAO,aAAa,CAAC,IAAI;AAAA,UACnE,YAAY,YAAY,QAAQ,KAAK;AAAA,QACtC;AAAA,MACD;AAAA,IACD;AAAA,IACA,qBAAqB,QAAQ;AAAA,EAC9B;AACD;",
6
+ "names": []
7
+ }
@@ -29,6 +29,9 @@ export declare namespace Experimental_SuiClientTypes {
29
29
  interface GetObjectsOptions extends CoreClientMethodOptions {
30
30
  objectIds: string[];
31
31
  }
32
+ interface GetObjectOptions extends CoreClientMethodOptions {
33
+ objectId: string;
34
+ }
32
35
  interface GetOwnedObjectsOptions extends CoreClientMethodOptions {
33
36
  address: string;
34
37
  limit?: number;
@@ -38,6 +41,8 @@ export declare namespace Experimental_SuiClientTypes {
38
41
  interface GetCoinsOptions extends CoreClientMethodOptions {
39
42
  address: string;
40
43
  coinType: string;
44
+ limit?: number;
45
+ cursor?: string | null;
41
46
  }
42
47
  interface GetDynamicFieldsOptions extends CoreClientMethodOptions {
43
48
  parentId: string;
@@ -51,6 +56,9 @@ export declare namespace Experimental_SuiClientTypes {
51
56
  interface GetObjectsResponse {
52
57
  objects: (ObjectResponse | Error)[];
53
58
  }
59
+ interface GetObjectResponse {
60
+ object: ObjectResponse;
61
+ }
54
62
  interface GetOwnedObjectsResponse {
55
63
  objects: ObjectResponse[];
56
64
  hasNextPage: boolean;
@@ -76,11 +84,9 @@ export declare namespace Experimental_SuiClientTypes {
76
84
  hasNextPage: boolean;
77
85
  cursor: string | null;
78
86
  dynamicFields: {
79
- name: DynamicFieldName;
80
87
  id: string;
81
- version: string;
82
- digest: string;
83
88
  type: string;
89
+ name: DynamicFieldName;
84
90
  }[];
85
91
  }
86
92
  interface GetDynamicFieldResponse {
@@ -136,9 +142,8 @@ export declare namespace Experimental_SuiClientTypes {
136
142
  interface TransactionResponse {
137
143
  digest: string;
138
144
  signatures: string[];
139
- bcs: Uint8Array;
140
145
  effects: TransactionEffects;
141
- events?: Uint8Array;
146
+ bcs: Uint8Array;
142
147
  }
143
148
  interface GetTransactionOptions extends CoreClientMethodOptions {
144
149
  digest: string;
@@ -159,12 +164,28 @@ export declare namespace Experimental_SuiClientTypes {
159
164
  interface ExecuteTransactionResponse {
160
165
  transaction: TransactionResponse;
161
166
  }
167
+ interface GetReferenceGasPriceOptions extends CoreClientMethodOptions {
168
+ }
162
169
  interface TransportMethods {
163
- getReferenceGasPrice?: () => Promise<GetReferenceGasPriceResponse>;
170
+ getReferenceGasPrice?: (options?: GetReferenceGasPriceOptions) => Promise<GetReferenceGasPriceResponse>;
164
171
  }
165
172
  interface GetReferenceGasPriceResponse {
166
173
  referenceGasPrice: string;
167
174
  }
175
+ /** ZkLogin methods */
176
+ interface VerifyZkLoginSignatureOptions extends CoreClientMethodOptions {
177
+ bytes: string;
178
+ signature: string;
179
+ intentScope: 'TransactionData' | 'PersonalMessage';
180
+ author: string;
181
+ }
182
+ interface ZkLoginVerifyResponse {
183
+ success: boolean;
184
+ errors: string[];
185
+ }
186
+ interface TransportMethods {
187
+ verifyZkLoginSignature?: (options: VerifyZkLoginSignatureOptions) => Promise<ZkLoginVerifyResponse>;
188
+ }
168
189
  /** ObjectOwner types */
169
190
  interface AddressOwner {
170
191
  $kind: 'AddressOwner';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/experimental/types.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport type { Experimental_BaseClient } from './client.js';\n\nexport type SuiClientRegistration<\n\tT extends Experimental_BaseClient = Experimental_BaseClient,\n\tName extends string = string,\n\tExtension = unknown,\n> =\n\t| {\n\t\t\treadonly name: Name;\n\t\t\treadonly register: (client: T) => Extension;\n\t }\n\t| SelfRegisteringClientExtension<T, Name, Extension>;\n\nexport interface SelfRegisteringClientExtension<\n\tT extends Experimental_BaseClient = Experimental_BaseClient,\n\tName extends string = string,\n\tExtension = unknown,\n> {\n\texperimental_asClientExtension: () => {\n\t\treadonly name: Name;\n\t\treadonly register: (client: T) => Extension;\n\t};\n}\n\nexport type ClientWithExtensions<\n\tT,\n\tBase extends Experimental_BaseClient = Experimental_BaseClient,\n> = Base & T;\n\nexport namespace Experimental_SuiClientTypes {\n\texport type Network = 'mainnet' | 'testnet' | 'devnet' | 'localnet' | (string & {});\n\n\texport interface SuiClientOptions {\n\t\tnetwork: Network;\n\t}\n\n\texport interface CoreClientMethodOptions {\n\t\tsignal?: AbortSignal;\n\t}\n\n\t/** Object methods */\n\texport interface TransportMethods {\n\t\tgetObjects: (options: GetObjectsOptions) => Promise<GetObjectsResponse>;\n\t\tgetOwnedObjects: (options: GetOwnedObjectsOptions) => Promise<GetOwnedObjectsResponse>;\n\t\tgetCoins: (options: GetCoinsOptions) => Promise<GetCoinsResponse>;\n\t\tgetDynamicFields: (options: GetDynamicFieldsOptions) => Promise<GetDynamicFieldsResponse>;\n\t\tgetDynamicField: (options: GetDynamicFieldOptions) => Promise<GetDynamicFieldResponse>;\n\t}\n\n\texport interface GetObjectsOptions extends CoreClientMethodOptions {\n\t\tobjectIds: string[];\n\t}\n\n\texport interface GetOwnedObjectsOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tlimit?: number;\n\t\tcursor?: string | null;\n\t\ttype?: string;\n\t}\n\n\texport interface GetCoinsOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tcoinType: string;\n\t}\n\n\texport interface GetDynamicFieldsOptions extends CoreClientMethodOptions {\n\t\tparentId: string;\n\t\tlimit?: number;\n\t\tcursor?: string | null;\n\t}\n\n\texport interface GetDynamicFieldOptions extends CoreClientMethodOptions {\n\t\tparentId: string;\n\t\tname: DynamicFieldName;\n\t}\n\n\texport interface GetObjectsResponse {\n\t\tobjects: (ObjectResponse | Error)[];\n\t}\n\n\texport interface GetOwnedObjectsResponse {\n\t\tobjects: ObjectResponse[];\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t}\n\n\texport interface GetCoinsResponse {\n\t\tobjects: CoinResponse[];\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t}\n\n\texport interface ObjectResponse {\n\t\tid: string;\n\t\tversion: string;\n\t\tdigest: string;\n\t\towner: ObjectOwner;\n\t\ttype: string;\n\t\tcontent: Uint8Array;\n\t}\n\n\texport interface CoinResponse extends ObjectResponse {\n\t\tbalance: string;\n\t}\n\n\texport interface GetDynamicFieldsResponse {\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t\tdynamicFields: {\n\t\t\tname: DynamicFieldName;\n\t\t\tid: string;\n\t\t\tversion: string;\n\t\t\tdigest: string;\n\t\t\ttype: string;\n\t\t}[];\n\t}\n\n\texport interface GetDynamicFieldResponse {\n\t\tdynamicField: {\n\t\t\tname: DynamicFieldName;\n\t\t\tvalue: DynamicFieldValue;\n\t\t\tid: string;\n\t\t\tversion: string;\n\t\t\tdigest: string;\n\t\t\ttype: string;\n\t\t};\n\t}\n\n\texport interface DynamicFieldName {\n\t\ttype: string;\n\t\tbcs: Uint8Array;\n\t}\n\n\texport interface DynamicFieldValue {\n\t\ttype: string;\n\t\tbcs: Uint8Array;\n\t}\n\n\t/** Balance methods */\n\texport interface TransportMethods {\n\t\tgetBalance: (options: GetBalanceOptions) => Promise<GetBalanceResponse>;\n\t\tgetAllBalances: (options: GetAllBalancesOptions) => Promise<GetAllBalancesResponse>;\n\t}\n\n\texport interface GetBalanceOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tcoinType: string;\n\t}\n\n\texport interface CoinBalance {\n\t\tcoinType: string;\n\t\tbalance: string;\n\t}\n\n\texport interface GetBalanceResponse {\n\t\tbalance: CoinBalance;\n\t}\n\n\texport interface GetAllBalancesOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tlimit?: number;\n\t\tcursor?: string | null;\n\t}\n\n\texport interface GetAllBalancesResponse {\n\t\tbalances: CoinBalance[];\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t}\n\n\t/** Transaction methods */\n\texport interface TransportMethods {\n\t\tgetTransaction: (options: GetTransactionOptions) => Promise<GetTransactionResponse>;\n\t\texecuteTransaction: (options: ExecuteTransactionOptions) => Promise<ExecuteTransactionResponse>;\n\t\tdryRunTransaction: (options: DryRunTransactionOptions) => Promise<DryRunTransactionResponse>;\n\t}\n\n\texport interface TransactionResponse {\n\t\tdigest: string;\n\t\tsignatures: string[];\n\t\t// TODO: Return parsed data:\n\t\t// We need structured representations of effects, events, and transaction data\n\t\tbcs: Uint8Array;\n\t\teffects: TransactionEffects;\n\t\tevents?: Uint8Array;\n\t}\n\n\texport interface GetTransactionOptions extends CoreClientMethodOptions {\n\t\tdigest: string;\n\t}\n\n\texport interface GetTransactionResponse {\n\t\ttransaction: TransactionResponse;\n\t}\n\n\texport interface ExecuteTransactionOptions extends CoreClientMethodOptions {\n\t\ttransaction: Uint8Array;\n\t\tsignatures: string[];\n\t}\n\n\texport interface DryRunTransactionOptions extends CoreClientMethodOptions {\n\t\ttransaction: Uint8Array;\n\t}\n\n\texport interface DryRunTransactionResponse {\n\t\ttransaction: TransactionResponse;\n\t}\n\n\texport interface ExecuteTransactionResponse {\n\t\ttransaction: TransactionResponse;\n\t}\n\n\texport interface TransportMethods {\n\t\tgetReferenceGasPrice?: () => Promise<GetReferenceGasPriceResponse>;\n\t}\n\n\texport interface GetReferenceGasPriceResponse {\n\t\treferenceGasPrice: string;\n\t}\n\n\t/** ObjectOwner types */\n\n\texport interface AddressOwner {\n\t\t$kind: 'AddressOwner';\n\t\tAddressOwner: string;\n\t}\n\n\texport interface ParentOwner {\n\t\t$kind: 'ObjectOwner';\n\t\tObjectOwner: string;\n\t}\n\n\texport interface SharedOwner {\n\t\t$kind: 'Shared';\n\t\tShared: {\n\t\t\tinitialSharedVersion: string;\n\t\t};\n\t}\n\n\texport interface ImmutableOwner {\n\t\t$kind: 'Immutable';\n\t\tImmutable: true;\n\t}\n\n\texport interface ConsensusV2 {\n\t\t$kind: 'ConsensusV2';\n\t\tConsensusV2: {\n\t\t\tauthenticator: ConsensusV2Authenticator;\n\t\t\tstartVersion: string;\n\t\t};\n\t}\n\n\texport interface SingleOwnerAuthenticator {\n\t\t$kind: 'SingleOwner';\n\t\tSingleOwner: string;\n\t}\n\n\texport type ConsensusV2Authenticator = SingleOwnerAuthenticator;\n\n\texport type ObjectOwner = AddressOwner | ParentOwner | SharedOwner | ImmutableOwner | ConsensusV2;\n\n\t/** Effects */\n\n\texport interface TransactionEffects {\n\t\tbcs: Uint8Array | null;\n\t\tdigest: string;\n\t\tversion: number;\n\t\tstatus: ExecutionStatus;\n\t\tepoch: string | null;\n\t\tgasUsed: GasCostSummary;\n\t\ttransactionDigest: string;\n\t\tgasObject: ChangedObject | null;\n\t\teventsDigest: string | null;\n\t\tdependencies: string[];\n\t\tlamportVersion: string | null;\n\t\tchangedObjects: ChangedObject[];\n\t\tunchangedSharedObjects: UnchangedSharedObject[];\n\t\tauxiliaryDataDigest: string | null;\n\t}\n\n\texport interface ChangedObject {\n\t\tid: string;\n\t\tinputState: 'Unknown' | 'DoesNotExist' | 'Exists';\n\t\tinputVersion: string | null;\n\t\tinputDigest: string | null;\n\t\tinputOwner: ObjectOwner | null;\n\t\toutputState: 'Unknown' | 'DoesNotExist' | 'ObjectWrite' | 'PackageWrite';\n\t\toutputVersion: string | null;\n\t\toutputDigest: string | null;\n\t\toutputOwner: ObjectOwner | null;\n\t\tidOperation: 'Unknown' | 'None' | 'Created' | 'Deleted';\n\t\tobjectType: string | null;\n\t}\n\n\texport interface GasCostSummary {\n\t\tcomputationCost: string;\n\t\tstorageCost: string;\n\t\tstorageRebate: string;\n\t\tnonRefundableStorageFee: string;\n\t}\n\n\texport type ExecutionStatus =\n\t\t| {\n\t\t\t\tsuccess: true;\n\t\t\t\terror: null;\n\t\t }\n\t\t| {\n\t\t\t\tsuccess: false;\n\t\t\t\t// TODO: this should probably be typed better: https://github.com/bmwill/sui/blob/646a2c819346dc140cc649eb9fea368fb14f96e5/crates/sui-rpc-api/proto/sui/rpc/v2beta/execution_status.proto#L22\n\t\t\t\terror: string;\n\t\t };\n\n\texport interface UnchangedSharedObject {\n\t\tkind:\n\t\t\t| 'Unknown'\n\t\t\t| 'ReadOnlyRoot'\n\t\t\t| 'MutateDeleted'\n\t\t\t| 'ReadDeleted'\n\t\t\t| 'Cancelled'\n\t\t\t| 'PerEpochConfig';\n\t\tobjectId: string;\n\t\tversion: string | null;\n\t\tdigest: string | null;\n\t\tobjectType: string | null;\n\t}\n}\n"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport type { Experimental_BaseClient } from './client.js';\n\nexport type SuiClientRegistration<\n\tT extends Experimental_BaseClient = Experimental_BaseClient,\n\tName extends string = string,\n\tExtension = unknown,\n> =\n\t| {\n\t\t\treadonly name: Name;\n\t\t\treadonly register: (client: T) => Extension;\n\t }\n\t| SelfRegisteringClientExtension<T, Name, Extension>;\n\nexport interface SelfRegisteringClientExtension<\n\tT extends Experimental_BaseClient = Experimental_BaseClient,\n\tName extends string = string,\n\tExtension = unknown,\n> {\n\texperimental_asClientExtension: () => {\n\t\treadonly name: Name;\n\t\treadonly register: (client: T) => Extension;\n\t};\n}\n\nexport type ClientWithExtensions<\n\tT,\n\tBase extends Experimental_BaseClient = Experimental_BaseClient,\n> = Base & T;\n\nexport namespace Experimental_SuiClientTypes {\n\texport type Network = 'mainnet' | 'testnet' | 'devnet' | 'localnet' | (string & {});\n\n\texport interface SuiClientOptions {\n\t\tnetwork: Network;\n\t}\n\n\texport interface CoreClientMethodOptions {\n\t\tsignal?: AbortSignal;\n\t}\n\n\t/** Object methods */\n\texport interface TransportMethods {\n\t\tgetObjects: (options: GetObjectsOptions) => Promise<GetObjectsResponse>;\n\t\tgetOwnedObjects: (options: GetOwnedObjectsOptions) => Promise<GetOwnedObjectsResponse>;\n\t\tgetCoins: (options: GetCoinsOptions) => Promise<GetCoinsResponse>;\n\t\tgetDynamicFields: (options: GetDynamicFieldsOptions) => Promise<GetDynamicFieldsResponse>;\n\t\tgetDynamicField: (options: GetDynamicFieldOptions) => Promise<GetDynamicFieldResponse>;\n\t}\n\n\texport interface GetObjectsOptions extends CoreClientMethodOptions {\n\t\tobjectIds: string[];\n\t}\n\n\texport interface GetObjectOptions extends CoreClientMethodOptions {\n\t\tobjectId: string;\n\t}\n\n\texport interface GetOwnedObjectsOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tlimit?: number;\n\t\tcursor?: string | null;\n\t\ttype?: string;\n\t}\n\n\texport interface GetCoinsOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tcoinType: string;\n\t\tlimit?: number;\n\t\tcursor?: string | null;\n\t}\n\n\texport interface GetDynamicFieldsOptions extends CoreClientMethodOptions {\n\t\tparentId: string;\n\t\tlimit?: number;\n\t\tcursor?: string | null;\n\t}\n\n\texport interface GetDynamicFieldOptions extends CoreClientMethodOptions {\n\t\tparentId: string;\n\t\tname: DynamicFieldName;\n\t}\n\n\texport interface GetObjectsResponse {\n\t\tobjects: (ObjectResponse | Error)[];\n\t}\n\n\texport interface GetObjectResponse {\n\t\tobject: ObjectResponse;\n\t}\n\n\texport interface GetOwnedObjectsResponse {\n\t\tobjects: ObjectResponse[];\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t}\n\n\texport interface GetCoinsResponse {\n\t\tobjects: CoinResponse[];\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t}\n\n\texport interface ObjectResponse {\n\t\tid: string;\n\t\tversion: string;\n\t\tdigest: string;\n\t\towner: ObjectOwner;\n\t\ttype: string;\n\t\tcontent: Uint8Array;\n\t}\n\n\texport interface CoinResponse extends ObjectResponse {\n\t\tbalance: string;\n\t}\n\n\texport interface GetDynamicFieldsResponse {\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t\tdynamicFields: {\n\t\t\tid: string;\n\t\t\ttype: string;\n\t\t\tname: DynamicFieldName;\n\t\t}[];\n\t}\n\n\texport interface GetDynamicFieldResponse {\n\t\tdynamicField: {\n\t\t\tname: DynamicFieldName;\n\t\t\tvalue: DynamicFieldValue;\n\t\t\tid: string;\n\t\t\tversion: string;\n\t\t\tdigest: string;\n\t\t\ttype: string;\n\t\t};\n\t}\n\n\texport interface DynamicFieldName {\n\t\ttype: string;\n\t\tbcs: Uint8Array;\n\t}\n\n\texport interface DynamicFieldValue {\n\t\ttype: string;\n\t\tbcs: Uint8Array;\n\t}\n\n\t/** Balance methods */\n\texport interface TransportMethods {\n\t\tgetBalance: (options: GetBalanceOptions) => Promise<GetBalanceResponse>;\n\t\tgetAllBalances: (options: GetAllBalancesOptions) => Promise<GetAllBalancesResponse>;\n\t}\n\n\texport interface GetBalanceOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tcoinType: string;\n\t}\n\n\texport interface CoinBalance {\n\t\tcoinType: string;\n\t\tbalance: string;\n\t}\n\n\texport interface GetBalanceResponse {\n\t\tbalance: CoinBalance;\n\t}\n\n\texport interface GetAllBalancesOptions extends CoreClientMethodOptions {\n\t\taddress: string;\n\t\tlimit?: number;\n\t\tcursor?: string | null;\n\t}\n\n\texport interface GetAllBalancesResponse {\n\t\tbalances: CoinBalance[];\n\t\thasNextPage: boolean;\n\t\tcursor: string | null;\n\t}\n\n\t/** Transaction methods */\n\texport interface TransportMethods {\n\t\tgetTransaction: (options: GetTransactionOptions) => Promise<GetTransactionResponse>;\n\t\texecuteTransaction: (options: ExecuteTransactionOptions) => Promise<ExecuteTransactionResponse>;\n\t\tdryRunTransaction: (options: DryRunTransactionOptions) => Promise<DryRunTransactionResponse>;\n\t}\n\n\texport interface TransactionResponse {\n\t\tdigest: string;\n\t\tsignatures: string[];\n\t\teffects: TransactionEffects;\n\t\t// TODO: Return parsed data:\n\t\t// We need structured representations events, and transaction data\n\t\tbcs: Uint8Array;\n\t\t// events?: Uint8Array;\n\t}\n\n\texport interface GetTransactionOptions extends CoreClientMethodOptions {\n\t\tdigest: string;\n\t}\n\n\texport interface GetTransactionResponse {\n\t\ttransaction: TransactionResponse;\n\t}\n\n\texport interface ExecuteTransactionOptions extends CoreClientMethodOptions {\n\t\ttransaction: Uint8Array;\n\t\tsignatures: string[];\n\t}\n\n\texport interface DryRunTransactionOptions extends CoreClientMethodOptions {\n\t\ttransaction: Uint8Array;\n\t}\n\n\texport interface DryRunTransactionResponse {\n\t\ttransaction: TransactionResponse;\n\t}\n\n\texport interface ExecuteTransactionResponse {\n\t\ttransaction: TransactionResponse;\n\t}\n\n\texport interface GetReferenceGasPriceOptions extends CoreClientMethodOptions {}\n\n\texport interface TransportMethods {\n\t\tgetReferenceGasPrice?: (\n\t\t\toptions?: GetReferenceGasPriceOptions,\n\t\t) => Promise<GetReferenceGasPriceResponse>;\n\t}\n\n\texport interface GetReferenceGasPriceResponse {\n\t\treferenceGasPrice: string;\n\t}\n\n\t/** ZkLogin methods */\n\texport interface VerifyZkLoginSignatureOptions extends CoreClientMethodOptions {\n\t\tbytes: string;\n\t\tsignature: string;\n\t\tintentScope: 'TransactionData' | 'PersonalMessage';\n\t\tauthor: string;\n\t}\n\n\texport interface ZkLoginVerifyResponse {\n\t\tsuccess: boolean;\n\t\terrors: string[];\n\t}\n\n\texport interface TransportMethods {\n\t\tverifyZkLoginSignature?: (\n\t\t\toptions: VerifyZkLoginSignatureOptions,\n\t\t) => Promise<ZkLoginVerifyResponse>;\n\t}\n\n\t/** ObjectOwner types */\n\n\texport interface AddressOwner {\n\t\t$kind: 'AddressOwner';\n\t\tAddressOwner: string;\n\t}\n\n\texport interface ParentOwner {\n\t\t$kind: 'ObjectOwner';\n\t\tObjectOwner: string;\n\t}\n\n\texport interface SharedOwner {\n\t\t$kind: 'Shared';\n\t\tShared: {\n\t\t\tinitialSharedVersion: string;\n\t\t};\n\t}\n\n\texport interface ImmutableOwner {\n\t\t$kind: 'Immutable';\n\t\tImmutable: true;\n\t}\n\n\texport interface ConsensusV2 {\n\t\t$kind: 'ConsensusV2';\n\t\tConsensusV2: {\n\t\t\tauthenticator: ConsensusV2Authenticator;\n\t\t\tstartVersion: string;\n\t\t};\n\t}\n\n\texport interface SingleOwnerAuthenticator {\n\t\t$kind: 'SingleOwner';\n\t\tSingleOwner: string;\n\t}\n\n\texport type ConsensusV2Authenticator = SingleOwnerAuthenticator;\n\n\texport type ObjectOwner = AddressOwner | ParentOwner | SharedOwner | ImmutableOwner | ConsensusV2;\n\n\t/** Effects */\n\n\texport interface TransactionEffects {\n\t\tbcs: Uint8Array | null;\n\t\tdigest: string;\n\t\tversion: number;\n\t\tstatus: ExecutionStatus;\n\t\tepoch: string | null;\n\t\tgasUsed: GasCostSummary;\n\t\ttransactionDigest: string;\n\t\tgasObject: ChangedObject | null;\n\t\teventsDigest: string | null;\n\t\tdependencies: string[];\n\t\tlamportVersion: string | null;\n\t\tchangedObjects: ChangedObject[];\n\t\tunchangedSharedObjects: UnchangedSharedObject[];\n\t\tauxiliaryDataDigest: string | null;\n\t}\n\n\texport interface ChangedObject {\n\t\tid: string;\n\t\tinputState: 'Unknown' | 'DoesNotExist' | 'Exists';\n\t\tinputVersion: string | null;\n\t\tinputDigest: string | null;\n\t\tinputOwner: ObjectOwner | null;\n\t\toutputState: 'Unknown' | 'DoesNotExist' | 'ObjectWrite' | 'PackageWrite';\n\t\toutputVersion: string | null;\n\t\toutputDigest: string | null;\n\t\toutputOwner: ObjectOwner | null;\n\t\tidOperation: 'Unknown' | 'None' | 'Created' | 'Deleted';\n\t\tobjectType: string | null;\n\t}\n\n\texport interface GasCostSummary {\n\t\tcomputationCost: string;\n\t\tstorageCost: string;\n\t\tstorageRebate: string;\n\t\tnonRefundableStorageFee: string;\n\t}\n\n\texport type ExecutionStatus =\n\t\t| {\n\t\t\t\tsuccess: true;\n\t\t\t\terror: null;\n\t\t }\n\t\t| {\n\t\t\t\tsuccess: false;\n\t\t\t\t// TODO: this should probably be typed better: https://github.com/bmwill/sui/blob/646a2c819346dc140cc649eb9fea368fb14f96e5/crates/sui-rpc-api/proto/sui/rpc/v2beta/execution_status.proto#L22\n\t\t\t\terror: string;\n\t\t };\n\n\texport interface UnchangedSharedObject {\n\t\tkind:\n\t\t\t| 'Unknown'\n\t\t\t| 'ReadOnlyRoot'\n\t\t\t| 'MutateDeleted'\n\t\t\t| 'ReadDeleted'\n\t\t\t| 'Cancelled'\n\t\t\t| 'PerEpochConfig';\n\t\tobjectId: string;\n\t\tversion: string | null;\n\t\tdigest: string | null;\n\t\tobjectType: string | null;\n\t}\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -25,7 +25,7 @@ type BatchStatusFaucetResponse = {
25
25
  };
26
26
  type FaucetResponseV2 = {
27
27
  status: 'Success' | FaucetFailure;
28
- coin_sent: FaucetCoinInfo | null;
28
+ coins_sent: FaucetCoinInfo[] | null;
29
29
  };
30
30
  type FaucetFailure = {
31
31
  Failure: {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/faucet/faucet.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport class FaucetRateLimitError extends Error {}\n\ntype FaucetCoinInfo = {\n\tamount: number;\n\tid: string;\n\ttransferTxDigest: string;\n};\n\ntype FaucetResponse = {\n\ttransferredGasObjects: FaucetCoinInfo[];\n\terror?: string | null;\n};\n\ntype BatchFaucetResponse = {\n\ttask?: string | null;\n\terror?: string | null;\n};\n\ntype BatchSendStatusType = {\n\tstatus: 'INPROGRESS' | 'SUCCEEDED' | 'DISCARDED';\n\ttransferred_gas_objects: { sent: FaucetCoinInfo[] };\n};\n\ntype BatchStatusFaucetResponse = {\n\tstatus: BatchSendStatusType;\n\terror?: string | null;\n};\n\ntype FaucetResponseV2 = {\n\tstatus: 'Success' | FaucetFailure;\n\tcoin_sent: FaucetCoinInfo | null;\n};\n\ntype FaucetFailure = {\n\tFailure: {\n\t\tinternal: string;\n\t};\n};\n\ntype FaucetRequest = {\n\thost: string;\n\tpath: string;\n\tbody?: Record<string, any>;\n\theaders?: HeadersInit;\n\tmethod: 'GET' | 'POST';\n};\n\nasync function faucetRequest<T>({ host, path, body, headers, method }: FaucetRequest): Promise<T> {\n\tconst endpoint = new URL(path, host).toString();\n\tconst res = await fetch(endpoint, {\n\t\tmethod,\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(headers || {}),\n\t\t},\n\t});\n\n\tif (res.status === 429) {\n\t\tthrow new FaucetRateLimitError(\n\t\t\t`Too many requests from this client have been sent to the faucet. Please retry later`,\n\t\t);\n\t}\n\n\ttry {\n\t\tconst parsed = await res.json();\n\t\treturn parsed as T;\n\t} catch (e) {\n\t\tthrow new Error(\n\t\t\t`Encountered error when parsing response from faucet, error: ${e}, status ${res.status}, response ${res}`,\n\t\t);\n\t}\n}\n\n/**\n * @deprecated(\"Use requestSuiFromFaucetV2 instead\")\n */\nexport async function requestSuiFromFaucetV0(input: {\n\thost: string;\n\trecipient: string;\n\theaders?: HeadersInit;\n}): Promise<FaucetResponse> {\n\tconst response = await faucetRequest<FaucetResponse>({\n\t\thost: input.host,\n\t\tpath: '/gas',\n\t\tbody: {\n\t\t\tFixedAmountRequest: {\n\t\t\t\trecipient: input.recipient,\n\t\t\t},\n\t\t},\n\t\theaders: input.headers,\n\t\tmethod: 'POST',\n\t});\n\n\tif (response.error) {\n\t\tthrow new Error(`Faucet request failed: ${response.error}`);\n\t}\n\n\treturn response;\n}\n\n/**\n * @deprecated(\"Use requestSuiFromFaucetV2 instead\")\n */\nexport async function requestSuiFromFaucetV1(input: {\n\thost: string;\n\trecipient: string;\n\theaders?: HeadersInit;\n}): Promise<BatchFaucetResponse> {\n\tconst response = await faucetRequest<BatchFaucetResponse>({\n\t\thost: input.host,\n\t\tpath: '/v1/gas',\n\t\tbody: {\n\t\t\tFixedAmountRequest: {\n\t\t\t\trecipient: input.recipient,\n\t\t\t},\n\t\t},\n\t\theaders: input.headers,\n\t\tmethod: 'POST',\n\t});\n\n\tif (response.error) {\n\t\tthrow new Error(`Faucet request failed: ${response.error}`);\n\t}\n\n\treturn response;\n}\n\nexport async function requestSuiFromFaucetV2(input: {\n\thost: string;\n\trecipient: string;\n\theaders?: HeadersInit;\n}) {\n\tconst response = await faucetRequest<FaucetResponseV2>({\n\t\thost: input.host,\n\t\tpath: '/v2/gas',\n\t\tbody: {\n\t\t\tFixedAmountRequest: {\n\t\t\t\trecipient: input.recipient,\n\t\t\t},\n\t\t},\n\t\theaders: input.headers,\n\t\tmethod: 'POST',\n\t});\n\n\tif (response.status !== 'Success') {\n\t\tthrow new Error(`Faucet request failed: ${response.status.Failure.internal}`);\n\t}\n\n\treturn response;\n}\n\n/**\n * @deprecated(\"Use requestSuiFromFaucetV2 which returns directly a success or failure status\")\n */\nexport async function getFaucetRequestStatus(input: {\n\thost: string;\n\ttaskId: string;\n\theaders?: HeadersInit;\n}) {\n\tconst response = await faucetRequest<BatchStatusFaucetResponse>({\n\t\thost: input.host,\n\t\tpath: `/v1/status/${input.taskId}`,\n\t\theaders: input.headers,\n\t\tmethod: 'GET',\n\t});\n\n\tif (response.error) {\n\t\tthrow new Error(`Faucet request failed: ${response.error}`);\n\t}\n\n\treturn response;\n}\n\nexport function getFaucetHost(network: 'testnet' | 'devnet' | 'localnet') {\n\tswitch (network) {\n\t\tcase 'testnet':\n\t\t\treturn 'https://faucet.testnet.sui.io';\n\t\tcase 'devnet':\n\t\t\treturn 'https://faucet.devnet.sui.io';\n\t\tcase 'localnet':\n\t\t\treturn 'http://127.0.0.1:9123';\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown network: ${network}`);\n\t}\n}\n"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport class FaucetRateLimitError extends Error {}\n\ntype FaucetCoinInfo = {\n\tamount: number;\n\tid: string;\n\ttransferTxDigest: string;\n};\n\ntype FaucetResponse = {\n\ttransferredGasObjects: FaucetCoinInfo[];\n\terror?: string | null;\n};\n\ntype BatchFaucetResponse = {\n\ttask?: string | null;\n\terror?: string | null;\n};\n\ntype BatchSendStatusType = {\n\tstatus: 'INPROGRESS' | 'SUCCEEDED' | 'DISCARDED';\n\ttransferred_gas_objects: { sent: FaucetCoinInfo[] };\n};\n\ntype BatchStatusFaucetResponse = {\n\tstatus: BatchSendStatusType;\n\terror?: string | null;\n};\n\ntype FaucetResponseV2 = {\n\tstatus: 'Success' | FaucetFailure;\n\tcoins_sent: FaucetCoinInfo[] | null;\n};\n\ntype FaucetFailure = {\n\tFailure: {\n\t\tinternal: string;\n\t};\n};\n\ntype FaucetRequest = {\n\thost: string;\n\tpath: string;\n\tbody?: Record<string, any>;\n\theaders?: HeadersInit;\n\tmethod: 'GET' | 'POST';\n};\n\nasync function faucetRequest<T>({ host, path, body, headers, method }: FaucetRequest): Promise<T> {\n\tconst endpoint = new URL(path, host).toString();\n\tconst res = await fetch(endpoint, {\n\t\tmethod,\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json',\n\t\t\t...(headers || {}),\n\t\t},\n\t});\n\n\tif (res.status === 429) {\n\t\tthrow new FaucetRateLimitError(\n\t\t\t`Too many requests from this client have been sent to the faucet. Please retry later`,\n\t\t);\n\t}\n\n\ttry {\n\t\tconst parsed = await res.json();\n\t\treturn parsed as T;\n\t} catch (e) {\n\t\tthrow new Error(\n\t\t\t`Encountered error when parsing response from faucet, error: ${e}, status ${res.status}, response ${res}`,\n\t\t);\n\t}\n}\n\n/**\n * @deprecated(\"Use requestSuiFromFaucetV2 instead\")\n */\nexport async function requestSuiFromFaucetV0(input: {\n\thost: string;\n\trecipient: string;\n\theaders?: HeadersInit;\n}): Promise<FaucetResponse> {\n\tconst response = await faucetRequest<FaucetResponse>({\n\t\thost: input.host,\n\t\tpath: '/gas',\n\t\tbody: {\n\t\t\tFixedAmountRequest: {\n\t\t\t\trecipient: input.recipient,\n\t\t\t},\n\t\t},\n\t\theaders: input.headers,\n\t\tmethod: 'POST',\n\t});\n\n\tif (response.error) {\n\t\tthrow new Error(`Faucet request failed: ${response.error}`);\n\t}\n\n\treturn response;\n}\n\n/**\n * @deprecated(\"Use requestSuiFromFaucetV2 instead\")\n */\nexport async function requestSuiFromFaucetV1(input: {\n\thost: string;\n\trecipient: string;\n\theaders?: HeadersInit;\n}): Promise<BatchFaucetResponse> {\n\tconst response = await faucetRequest<BatchFaucetResponse>({\n\t\thost: input.host,\n\t\tpath: '/v1/gas',\n\t\tbody: {\n\t\t\tFixedAmountRequest: {\n\t\t\t\trecipient: input.recipient,\n\t\t\t},\n\t\t},\n\t\theaders: input.headers,\n\t\tmethod: 'POST',\n\t});\n\n\tif (response.error) {\n\t\tthrow new Error(`Faucet request failed: ${response.error}`);\n\t}\n\n\treturn response;\n}\n\nexport async function requestSuiFromFaucetV2(input: {\n\thost: string;\n\trecipient: string;\n\theaders?: HeadersInit;\n}) {\n\tconst response = await faucetRequest<FaucetResponseV2>({\n\t\thost: input.host,\n\t\tpath: '/v2/gas',\n\t\tbody: {\n\t\t\tFixedAmountRequest: {\n\t\t\t\trecipient: input.recipient,\n\t\t\t},\n\t\t},\n\t\theaders: input.headers,\n\t\tmethod: 'POST',\n\t});\n\n\tif (response.status !== 'Success') {\n\t\tthrow new Error(`Faucet request failed: ${response.status.Failure.internal}`);\n\t}\n\n\treturn response;\n}\n\n/**\n * @deprecated(\"Use requestSuiFromFaucetV2 which returns directly a success or failure status\")\n */\nexport async function getFaucetRequestStatus(input: {\n\thost: string;\n\ttaskId: string;\n\theaders?: HeadersInit;\n}) {\n\tconst response = await faucetRequest<BatchStatusFaucetResponse>({\n\t\thost: input.host,\n\t\tpath: `/v1/status/${input.taskId}`,\n\t\theaders: input.headers,\n\t\tmethod: 'GET',\n\t});\n\n\tif (response.error) {\n\t\tthrow new Error(`Faucet request failed: ${response.error}`);\n\t}\n\n\treturn response;\n}\n\nexport function getFaucetHost(network: 'testnet' | 'devnet' | 'localnet') {\n\tswitch (network) {\n\t\tcase 'testnet':\n\t\t\treturn 'https://faucet.testnet.sui.io';\n\t\tcase 'devnet':\n\t\t\treturn 'https://faucet.devnet.sui.io';\n\t\tcase 'localnet':\n\t\t\treturn 'http://127.0.0.1:9123';\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown network: ${network}`);\n\t}\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,6BAA6B,MAAM;AAAC;AA+CjD,eAAe,cAAiB,EAAE,MAAM,MAAM,MAAM,SAAS,OAAO,GAA8B;AACjG,QAAM,WAAW,IAAI,IAAI,MAAM,IAAI,EAAE,SAAS;AAC9C,QAAM,MAAM,MAAM,MAAM,UAAU;AAAA,IACjC;AAAA,IACA,MAAM,OAAO,KAAK,UAAU,IAAI,IAAI;AAAA,IACpC,SAAS;AAAA,MACR,gBAAgB;AAAA,MAChB,GAAI,WAAW,CAAC;AAAA,IACjB;AAAA,EACD,CAAC;AAED,MAAI,IAAI,WAAW,KAAK;AACvB,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,MAAI;AACH,UAAM,SAAS,MAAM,IAAI,KAAK;AAC9B,WAAO;AAAA,EACR,SAAS,GAAG;AACX,UAAM,IAAI;AAAA,MACT,+DAA+D,CAAC,YAAY,IAAI,MAAM,cAAc,GAAG;AAAA,IACxG;AAAA,EACD;AACD;AAKA,eAAsB,uBAAuB,OAIjB;AAC3B,QAAM,WAAW,MAAM,cAA8B;AAAA,IACpD,MAAM,MAAM;AAAA,IACZ,MAAM;AAAA,IACN,MAAM;AAAA,MACL,oBAAoB;AAAA,QACnB,WAAW,MAAM;AAAA,MAClB;AAAA,IACD;AAAA,IACA,SAAS,MAAM;AAAA,IACf,QAAQ;AAAA,EACT,CAAC;AAED,MAAI,SAAS,OAAO;AACnB,UAAM,IAAI,MAAM,0BAA0B,SAAS,KAAK,EAAE;AAAA,EAC3D;AAEA,SAAO;AACR;AAKA,eAAsB,uBAAuB,OAIZ;AAChC,QAAM,WAAW,MAAM,cAAmC;AAAA,IACzD,MAAM,MAAM;AAAA,IACZ,MAAM;AAAA,IACN,MAAM;AAAA,MACL,oBAAoB;AAAA,QACnB,WAAW,MAAM;AAAA,MAClB;AAAA,IACD;AAAA,IACA,SAAS,MAAM;AAAA,IACf,QAAQ;AAAA,EACT,CAAC;AAED,MAAI,SAAS,OAAO;AACnB,UAAM,IAAI,MAAM,0BAA0B,SAAS,KAAK,EAAE;AAAA,EAC3D;AAEA,SAAO;AACR;AAEA,eAAsB,uBAAuB,OAI1C;AACF,QAAM,WAAW,MAAM,cAAgC;AAAA,IACtD,MAAM,MAAM;AAAA,IACZ,MAAM;AAAA,IACN,MAAM;AAAA,MACL,oBAAoB;AAAA,QACnB,WAAW,MAAM;AAAA,MAClB;AAAA,IACD;AAAA,IACA,SAAS,MAAM;AAAA,IACf,QAAQ;AAAA,EACT,CAAC;AAED,MAAI,SAAS,WAAW,WAAW;AAClC,UAAM,IAAI,MAAM,0BAA0B,SAAS,OAAO,QAAQ,QAAQ,EAAE;AAAA,EAC7E;AAEA,SAAO;AACR;AAKA,eAAsB,uBAAuB,OAI1C;AACF,QAAM,WAAW,MAAM,cAAyC;AAAA,IAC/D,MAAM,MAAM;AAAA,IACZ,MAAM,cAAc,MAAM,MAAM;AAAA,IAChC,SAAS,MAAM;AAAA,IACf,QAAQ;AAAA,EACT,CAAC;AAED,MAAI,SAAS,OAAO;AACnB,UAAM,IAAI,MAAM,0BAA0B,SAAS,KAAK,EAAE;AAAA,EAC3D;AAEA,SAAO;AACR;AAEO,SAAS,cAAc,SAA4C;AACzE,UAAQ,SAAS;AAAA,IAChB,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AACJ,aAAO;AAAA,IACR;AACC,YAAM,IAAI,MAAM,oBAAoB,OAAO,EAAE;AAAA,EAC/C;AACD;",
6
6
  "names": []
7
7
  }
@@ -1,11 +1,16 @@
1
1
  import type { TypedDocumentNode } from '@graphql-typed-document-node/core';
2
2
  import type { TadaDocumentNode } from 'gql.tada';
3
3
  import type { DocumentNode } from 'graphql';
4
- export type GraphQLDocument<Result = Record<string, unknown>, Variables = Record<string, unknown>> = string | DocumentNode | TypedDocumentNode<Result, Variables> | TadaDocumentNode<Result, Variables>;
4
+ import { Experimental_BaseClient } from '../experimental/index.js';
5
+ import type { Experimental_SuiClientTypes } from '../experimental/index.js';
6
+ import { GraphQLTransport } from '../experimental/transports/graphql.js';
7
+ import type { TypedDocumentString } from './generated/queries.js';
8
+ export type GraphQLDocument<Result = Record<string, unknown>, Variables = Record<string, unknown>> = string | DocumentNode | TypedDocumentString<Result, Variables> | TypedDocumentNode<Result, Variables> | TadaDocumentNode<Result, Variables>;
5
9
  export type GraphQLQueryOptions<Result = Record<string, unknown>, Variables = Record<string, unknown>> = {
6
10
  query: GraphQLDocument<Result, Variables>;
7
11
  operationName?: string;
8
12
  extensions?: Record<string, unknown>;
13
+ signal?: AbortSignal;
9
14
  } & (Variables extends {
10
15
  [key: string]: never;
11
16
  } ? {
@@ -31,12 +36,14 @@ export interface SuiGraphQLClientOptions<Queries extends Record<string, GraphQLD
31
36
  fetch?: typeof fetch;
32
37
  headers?: Record<string, string>;
33
38
  queries?: Queries;
39
+ network?: Experimental_SuiClientTypes.Network;
34
40
  }
35
41
  export declare class SuiGraphQLRequestError extends Error {
36
42
  }
37
- export declare class SuiGraphQLClient<Queries extends Record<string, GraphQLDocument> = {}> {
43
+ export declare class SuiGraphQLClient<Queries extends Record<string, GraphQLDocument> = {}> extends Experimental_BaseClient {
38
44
  #private;
39
- constructor({ url, fetch: fetchFn, headers, queries, }: SuiGraphQLClientOptions<Queries>);
45
+ core: GraphQLTransport;
46
+ constructor({ url, fetch: fetchFn, headers, queries, network, }: SuiGraphQLClientOptions<Queries>);
40
47
  query<Result = Record<string, unknown>, Variables = Record<string, unknown>>(options: GraphQLQueryOptions<Result, Variables>): Promise<GraphQLQueryResult<Result>>;
41
48
  execute<const Query extends Extract<keyof Queries, string>, Result = Queries[Query] extends GraphQLDocument<infer R, unknown> ? R : Record<string, unknown>, Variables = Queries[Query] extends GraphQLDocument<unknown, infer V> ? V : Record<string, unknown>>(query: Query, options: Omit<GraphQLQueryOptions<Result, Variables>, 'query'>): Promise<GraphQLQueryResult<Result>>;
42
49
  }
@@ -30,20 +30,27 @@ __export(client_exports, {
30
30
  });
31
31
  module.exports = __toCommonJS(client_exports);
32
32
  var import_graphql = require("graphql");
33
+ var import_experimental = require("../experimental/index.js");
34
+ var import_graphql2 = require("../experimental/transports/graphql.js");
33
35
  var _url, _queries, _headers, _fetch;
34
36
  class SuiGraphQLRequestError extends Error {
35
37
  }
36
- class SuiGraphQLClient {
38
+ class SuiGraphQLClient extends import_experimental.Experimental_BaseClient {
37
39
  constructor({
38
40
  url,
39
41
  fetch: fetchFn = fetch,
40
42
  headers = {},
41
- queries = {}
43
+ queries = {},
44
+ network = "unknown"
42
45
  }) {
46
+ super({
47
+ network
48
+ });
43
49
  __privateAdd(this, _url);
44
50
  __privateAdd(this, _queries);
45
51
  __privateAdd(this, _headers);
46
52
  __privateAdd(this, _fetch);
53
+ this.core = new import_graphql2.GraphQLTransport(this);
47
54
  __privateSet(this, _url, url);
48
55
  __privateSet(this, _queries, queries);
49
56
  __privateSet(this, _headers, headers);
@@ -57,11 +64,12 @@ class SuiGraphQLClient {
57
64
  ...__privateGet(this, _headers)
58
65
  },
59
66
  body: JSON.stringify({
60
- query: typeof options.query === "string" ? String(options.query) : (0, import_graphql.print)(options.query),
67
+ query: typeof options.query === "string" || options.query instanceof String ? String(options.query) : (0, import_graphql.print)(options.query),
61
68
  variables: options.variables,
62
69
  extensions: options.extensions,
63
70
  operationName: options.operationName
64
- })
71
+ }),
72
+ signal: options.signal
65
73
  });
66
74
  if (!res.ok) {
67
75
  throw new SuiGraphQLRequestError(`GraphQL request failed: ${res.statusText} (${res.status})`);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/graphql/client.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport type { TadaDocumentNode } from 'gql.tada';\nimport type { DocumentNode } from 'graphql';\nimport { print } from 'graphql';\n\nexport type GraphQLDocument<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> =\n\t| string\n\t| DocumentNode\n\t| TypedDocumentNode<Result, Variables>\n\t| TadaDocumentNode<Result, Variables>;\n\nexport type GraphQLQueryOptions<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> = {\n\tquery: GraphQLDocument<Result, Variables>;\n\toperationName?: string;\n\textensions?: Record<string, unknown>;\n} & (Variables extends { [key: string]: never }\n\t? { variables?: Variables }\n\t: {\n\t\t\tvariables: Variables;\n\t\t});\n\nexport type GraphQLQueryResult<Result = Record<string, unknown>> = {\n\tdata?: Result;\n\terrors?: GraphQLResponseErrors;\n\textensions?: Record<string, unknown>;\n};\n\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nexport interface SuiGraphQLClientOptions<Queries extends Record<string, GraphQLDocument>> {\n\turl: string;\n\tfetch?: typeof fetch;\n\theaders?: Record<string, string>;\n\tqueries?: Queries;\n}\n\nexport class SuiGraphQLRequestError extends Error {}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class SuiGraphQLClient<Queries extends Record<string, GraphQLDocument> = {}> {\n\t#url: string;\n\t#queries: Queries;\n\t#headers: Record<string, string>;\n\t#fetch: typeof fetch;\n\n\tconstructor({\n\t\turl,\n\t\tfetch: fetchFn = fetch,\n\t\theaders = {},\n\t\tqueries = {} as Queries,\n\t}: SuiGraphQLClientOptions<Queries>) {\n\t\tthis.#url = url;\n\t\tthis.#queries = queries;\n\t\tthis.#headers = headers;\n\t\tthis.#fetch = (...args) => fetchFn(...args);\n\t}\n\n\tasync query<Result = Record<string, unknown>, Variables = Record<string, unknown>>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\tconst res = await this.#fetch(this.#url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...this.#headers,\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tquery: typeof options.query === 'string' ? String(options.query) : print(options.query),\n\t\t\t\tvariables: options.variables,\n\t\t\t\textensions: options.extensions,\n\t\t\t\toperationName: options.operationName,\n\t\t\t}),\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tthrow new SuiGraphQLRequestError(`GraphQL request failed: ${res.statusText} (${res.status})`);\n\t\t}\n\n\t\treturn await res.json();\n\t}\n\n\tasync execute<\n\t\tconst Query extends Extract<keyof Queries, string>,\n\t\tResult = Queries[Query] extends GraphQLDocument<infer R, unknown> ? R : Record<string, unknown>,\n\t\tVariables = Queries[Query] extends GraphQLDocument<unknown, infer V>\n\t\t\t? V\n\t\t\t: Record<string, unknown>,\n\t>(\n\t\tquery: Query,\n\t\toptions: Omit<GraphQLQueryOptions<Result, Variables>, 'query'>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\treturn this.query({\n\t\t\t...(options as { variables: Record<string, unknown> }),\n\t\t\tquery: this.#queries[query]!,\n\t\t}) as Promise<GraphQLQueryResult<Result>>;\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAsB;AANtB;AAiDO,MAAM,+BAA+B,MAAM;AAAC;AAG5C,MAAM,iBAAuE;AAAA,EAMnF,YAAY;AAAA,IACX;AAAA,IACA,OAAO,UAAU;AAAA,IACjB,UAAU,CAAC;AAAA,IACX,UAAU,CAAC;AAAA,EACZ,GAAqC;AAVrC;AACA;AACA;AACA;AAQC,uBAAK,MAAO;AACZ,uBAAK,UAAW;AAChB,uBAAK,UAAW;AAChB,uBAAK,QAAS,IAAI,SAAS,QAAQ,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEA,MAAM,MACL,SACsC;AACtC,UAAM,MAAM,MAAM,mBAAK,QAAL,WAAY,mBAAK,OAAM;AAAA,MACxC,QAAQ;AAAA,MACR,SAAS;AAAA,QACR,gBAAgB;AAAA,QAChB,GAAG,mBAAK;AAAA,MACT;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACpB,OAAO,OAAO,QAAQ,UAAU,WAAW,OAAO,QAAQ,KAAK,QAAI,sBAAM,QAAQ,KAAK;AAAA,QACtF,WAAW,QAAQ;AAAA,QACnB,YAAY,QAAQ;AAAA,QACpB,eAAe,QAAQ;AAAA,MACxB,CAAC;AAAA,IACF;AAEA,QAAI,CAAC,IAAI,IAAI;AACZ,YAAM,IAAI,uBAAuB,2BAA2B,IAAI,UAAU,KAAK,IAAI,MAAM,GAAG;AAAA,IAC7F;AAEA,WAAO,MAAM,IAAI,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,QAOL,OACA,SACsC;AACtC,WAAO,KAAK,MAAM;AAAA,MACjB,GAAI;AAAA,MACJ,OAAO,mBAAK,UAAS,KAAK;AAAA,IAC3B,CAAC;AAAA,EACF;AACD;AAxDC;AACA;AACA;AACA;",
6
- "names": []
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport type { TadaDocumentNode } from 'gql.tada';\nimport type { DocumentNode } from 'graphql';\nimport { print } from 'graphql';\nimport { Experimental_BaseClient } from '../experimental/index.js';\nimport type { Experimental_SuiClientTypes } from '../experimental/index.js';\nimport { GraphQLTransport } from '../experimental/transports/graphql.js';\nimport type { TypedDocumentString } from './generated/queries.js';\n\nexport type GraphQLDocument<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> =\n\t| string\n\t| DocumentNode\n\t| TypedDocumentString<Result, Variables>\n\t| TypedDocumentNode<Result, Variables>\n\t| TadaDocumentNode<Result, Variables>;\n\nexport type GraphQLQueryOptions<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> = {\n\tquery: GraphQLDocument<Result, Variables>;\n\toperationName?: string;\n\textensions?: Record<string, unknown>;\n\tsignal?: AbortSignal;\n} & (Variables extends { [key: string]: never }\n\t? { variables?: Variables }\n\t: {\n\t\t\tvariables: Variables;\n\t\t});\n\nexport type GraphQLQueryResult<Result = Record<string, unknown>> = {\n\tdata?: Result;\n\terrors?: GraphQLResponseErrors;\n\textensions?: Record<string, unknown>;\n};\n\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nexport interface SuiGraphQLClientOptions<Queries extends Record<string, GraphQLDocument>> {\n\turl: string;\n\tfetch?: typeof fetch;\n\theaders?: Record<string, string>;\n\tqueries?: Queries;\n\tnetwork?: Experimental_SuiClientTypes.Network;\n}\n\nexport class SuiGraphQLRequestError extends Error {}\n\nexport class SuiGraphQLClient<\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tQueries extends Record<string, GraphQLDocument> = {},\n> extends Experimental_BaseClient {\n\t#url: string;\n\t#queries: Queries;\n\t#headers: Record<string, string>;\n\t#fetch: typeof fetch;\n\tcore: GraphQLTransport = new GraphQLTransport(this);\n\n\tconstructor({\n\t\turl,\n\t\tfetch: fetchFn = fetch,\n\t\theaders = {},\n\t\tqueries = {} as Queries,\n\t\tnetwork = 'unknown',\n\t}: SuiGraphQLClientOptions<Queries>) {\n\t\tsuper({\n\t\t\tnetwork,\n\t\t});\n\t\tthis.#url = url;\n\t\tthis.#queries = queries;\n\t\tthis.#headers = headers;\n\t\tthis.#fetch = (...args) => fetchFn(...args);\n\t}\n\n\tasync query<Result = Record<string, unknown>, Variables = Record<string, unknown>>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\tconst res = await this.#fetch(this.#url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...this.#headers,\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tquery:\n\t\t\t\t\ttypeof options.query === 'string' || options.query instanceof String\n\t\t\t\t\t\t? String(options.query)\n\t\t\t\t\t\t: print(options.query),\n\t\t\t\tvariables: options.variables,\n\t\t\t\textensions: options.extensions,\n\t\t\t\toperationName: options.operationName,\n\t\t\t}),\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tthrow new SuiGraphQLRequestError(`GraphQL request failed: ${res.statusText} (${res.status})`);\n\t\t}\n\n\t\treturn await res.json();\n\t}\n\n\tasync execute<\n\t\tconst Query extends Extract<keyof Queries, string>,\n\t\tResult = Queries[Query] extends GraphQLDocument<infer R, unknown> ? R : Record<string, unknown>,\n\t\tVariables = Queries[Query] extends GraphQLDocument<unknown, infer V>\n\t\t\t? V\n\t\t\t: Record<string, unknown>,\n\t>(\n\t\tquery: Query,\n\t\toptions: Omit<GraphQLQueryOptions<Result, Variables>, 'query'>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\treturn this.query({\n\t\t\t...(options as { variables: Record<string, unknown> }),\n\t\t\tquery: this.#queries[query]!,\n\t\t}) as Promise<GraphQLQueryResult<Result>>;\n\t}\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAsB;AACtB,0BAAwC;AAExC,IAAAA,kBAAiC;AATjC;AAwDO,MAAM,+BAA+B,MAAM;AAAC;AAE5C,MAAM,yBAGH,4CAAwB;AAAA,EAOjC,YAAY;AAAA,IACX;AAAA,IACA,OAAO,UAAU;AAAA,IACjB,UAAU,CAAC;AAAA,IACX,UAAU,CAAC;AAAA,IACX,UAAU;AAAA,EACX,GAAqC;AACpC,UAAM;AAAA,MACL;AAAA,IACD,CAAC;AAfF;AACA;AACA;AACA;AACA,gBAAyB,IAAI,iCAAiB,IAAI;AAYjD,uBAAK,MAAO;AACZ,uBAAK,UAAW;AAChB,uBAAK,UAAW;AAChB,uBAAK,QAAS,IAAI,SAAS,QAAQ,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEA,MAAM,MACL,SACsC;AACtC,UAAM,MAAM,MAAM,mBAAK,QAAL,WAAY,mBAAK,OAAM;AAAA,MACxC,QAAQ;AAAA,MACR,SAAS;AAAA,QACR,gBAAgB;AAAA,QAChB,GAAG,mBAAK;AAAA,MACT;AAAA,MACA,MAAM,KAAK,UAAU;AAAA,QACpB,OACC,OAAO,QAAQ,UAAU,YAAY,QAAQ,iBAAiB,SAC3D,OAAO,QAAQ,KAAK,QACpB,sBAAM,QAAQ,KAAK;AAAA,QACvB,WAAW,QAAQ;AAAA,QACnB,YAAY,QAAQ;AAAA,QACpB,eAAe,QAAQ;AAAA,MACxB,CAAC;AAAA,MACD,QAAQ,QAAQ;AAAA,IACjB;AAEA,QAAI,CAAC,IAAI,IAAI;AACZ,YAAM,IAAI,uBAAuB,2BAA2B,IAAI,UAAU,KAAK,IAAI,MAAM,GAAG;AAAA,IAC7F;AAEA,WAAO,MAAM,IAAI,KAAK;AAAA,EACvB;AAAA,EAEA,MAAM,QAOL,OACA,SACsC;AACtC,WAAO,KAAK,MAAM;AAAA,MACjB,GAAI;AAAA,MACJ,OAAO,mBAAK,UAAS,KAAK;AAAA,IAC3B,CAAC;AAAA,EACF;AACD;AAjEC;AACA;AACA;AACA;",
6
+ "names": ["import_graphql"]
7
7
  }