Skip to Content
dApps

Transaktionen

Rufen Sie enable() auf, bevor Sie die dApp-API verwenden. Von der CIP-30-API zurückgegebene Adressen sind hexkodierte Bytes; Transaktions- und Wertparameter sind hexkodiertes CBOR. Browserbeispiele mit Buffer benötigen einen ausdrücklichen Import von buffer oder eine Hilfsfunktion zur Byte-Konvertierung.

Erfahren Sie, wie Sie Transaktionen auf Cardano signieren und einreichen.


Transaktion signieren

// transaction should be CBOR-encoded hex string const witnessSetCbor = await api.signTx(transactionCbor, partialSign) // partialSign: boolean // - false: reject if the wallet cannot provide every required signature // - true: return the signatures the wallet can provide console.log('Witness set:', witnessSetCbor)

Transaktion einreichen

// Submit signed transaction const txHash = await api.submitTx(signedTransactionCbor) console.log('Transaction hash:', txHash)

Erstellen, signieren und einreichen

signTx gibt ein Witness-Set zurück, keine vollständige signierte Transaktion. Erstellen Sie die unsignierte Transaktion mit einer Cardano-Transaktionsbibliothek, führen Sie die zurückgegebenen Witnesses mit dem bestehenden Witness-Set zusammen und reichen Sie die daraus entstandene vollständige Transaktion ein.

// `unsignedTransactionCbor` is a complete transaction built with current // protocol parameters, selected inputs, outputs, fees, and change. const witnessSetCbor = await api.signTx(unsignedTransactionCbor, false) // Merge witnessSetCbor into the original transaction using your Cardano SDK. // Preserve existing witnesses, scripts, datums, redeemers, and auxiliary data. // Submit the serialized complete transaction, never witnessSetCbor alone. const txHash = await api.submitTx(completeSignedTransactionCbor)

Verwenden Sie den folgenden Lucid- oder Mesh-Ablauf, wenn Ihre Anwendung die Transaktionserstellung und das Zusammenführen von Witnesses noch nicht implementiert. Diese SDK-Beispiele sind versionsspezifisch; beachten Sie die Dokumentation der installierten Version.


Mit Lucid verwenden

Lucid  bietet eine einfachere API:

npm install lucid-cardano
import { Lucid, Blockfrost } from 'lucid-cardano' // Initialize Lucid with OneKey const lucid = await Lucid.new( new Blockfrost('https://cardano-mainnet.blockfrost.io/api', 'your-api-key'), 'Mainnet' ) // Connect OneKey const api = await window.cardano.onekey.enable() lucid.selectWallet(api) // Send ADA const tx = await lucid .newTx() .payToAddress('addr1...', { lovelace: 5000000n }) .complete() const signedTx = await tx.sign().complete() const txHash = await signedTx.submit() console.log('TX Hash:', txHash)

Mit Mesh verwenden

Mesh  ist ein weiteres beliebtes Cardano-SDK:

npm install @meshsdk/core
import { BrowserWallet, Transaction } from '@meshsdk/core' // Connect to OneKey const wallet = await BrowserWallet.enable('onekey') // Get wallet info const balance = await wallet.getBalance() const addresses = await wallet.getUsedAddresses() // Build and send transaction const tx = new Transaction({ initiator: wallet }) .sendLovelace('addr1...', '5000000') const unsignedTx = await tx.build() const signedTx = await wallet.signTx(unsignedTx) const txHash = await wallet.submitTx(signedTx)
Zuletzt aktualisiert am