原始交易方法
signTransaction
通过扩展对交易请求进行签名。
请求
必填 - 该函数接受一个类型为 SignTransactionRequest
的输入参数。
transaction
: 需要签名的交易请求。
interface SignTransactionRequest {
transaction: Transaction;
}
Transaction
类型 定义在此 。
注意:
- 如果交易字段
Account
未设置,将使用用户钱包的账户。
响应
响应是一个 Promise,解析为一个包含 type
和 result
属性的对象。
type
:"response" | "reject"
result
:signature
: 签名后的交易。
type: "response";
result: {
signature: string;
}
或
type: "reject";
result: undefined;
错误处理
如果发生错误,将抛出错误。
示例
import { signTransaction } from "@xhbmygod/rootwallet-api";
const transaction = {
TransactionType: "Payment",
Destination: "rhikRdkFw28csKw9z7fVoBjWncz1HSoQij",
Amount: "100000",
Memos: [
{
Memo: {
MemoData: "54657374206D656D6F",
MemoType: "4465736372697074696F6E"
}
}
]
};
signTransaction({ transaction }).then((response) => {
console.log(response.result?.signature);
}).catch((error) => {
console.error("Transaction submission failed", error);
});
以下是一个 React 网页应用的示例:
import { signTransaction, isInstalled } from "@xhbmygod/rootwallet-api";
function App() {
const handleSignTransaction = () => {
isInstalled().then((response) => {
if (response.result.isInstalled) {
const transaction = {
TransactionType: "Payment",
Destination: "rhikRdkFw28csKw9z7fVoBjWncz1HSoQij",
Amount: "100000",
Memos: [
{
Memo: {
MemoData: "54657374206D656D6F",
MemoType: "4465736372697074696F6E"
}
}
]
};
signTransaction({ transaction }).then((response) => {
console.log("Transaction hash: ", response.result?.signature);
}).catch((error) => {
console.error("Transaction submission failed", error);
});
}
});
};
return (
<div className="App">
<button onClick={handleSignTransaction}>Sign Transaction</button>
</div>
);
}
export default App;
submitBulkTransactions
通过扩展批量提交一组交易请求。数组中的每个交易将自动填充、签名并提交。
请求
必填 - 该函数接受一个类型为 SubmitBulkTransactionsRequest
的输入参数。
transactions
: 要提交的交易请求数组(最多 50 个)。waitForHashes
:- 如果设置为
false
,函数将不会等待 XRPL 返回交易哈希。 - 如果设置为
false
,将返回每个交易的accepted
值,而不是hash
。 - 默认值:
true
。
- 如果设置为
onError
:- 如果设置为
continue
,即使其中一个交易失败,剩余交易仍将继续提交。 - 默认值:
abort
。
- 如果设置为
interface SubmitBulkTransactionsRequest {
transactions: TransactionWithID[];
waitForHashes?: boolean; // 默认值:true
onError?: 'abort' | 'continue'; // 默认值:abort
}
export type TransactionWithID = Transaction & {
// 可选 ID,用于在提交后识别响应中的交易。
// 此 ID 仅作为响应中的指示符,不用于排序交易。
ID?: string;
};
Transaction
类型 定义在此 。
注意:
- 如果任何交易中的
Account
字段未设置,将使用用户钱包的账户。
响应
响应是一个 Promise,解析为一个包含 type
和 result
属性的对象。
type
:"response" | "reject"
result
:transactions
: 数组中每个交易的状态。id
(可选): 交易的自定义 ID,如果在请求中设置了该 ID。accepted
(可选): 交易是否被 XRPL 网络接受(仅当waitForHashes = false
时)。hash
(可选): 交易的哈希(仅当waitForHashes = true
时)。error
(可选): 如果交易被拒绝,则为错误消息。
type: "response";
result: {
transactions: TransactionBulkResponse[];
}
export type TransactionBulkResponse = {
id?: string;
accepted?: boolean;
hash?: string;
error?: string;
};
或
type: "reject";
result: undefined;
错误处理
如果发生错误,将抛出错误。
示例
import { submitBulkTransactions } from "@xhbmygod/rootwallet-api";
const transactions = [
{
ID: '001', // 可选 ID,用于在提交后识别响应中的交易。
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '002',
TransactionType: 'TrustSet',
LimitAmount: {
currency: 'ETH',
issuer: 'rnm76Qgz4G9G4gZBJVuXVvkbt7gVD7szey',
value: '10000000'
},
Fee: '199'
},
{
ID: '003',
TransactionType: 'NFTokenMint',
URI: '516D6654463665756E47726A57597642666A72614B486D765572354444566D525351424373513252564D71764A72',
NFTokenTaxon: 0
},
{
ID: '004',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '005',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '006',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '007',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '008',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '009',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '010',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
}
];
submitBulkTransactions({
transactions,
onError: 'abort',
waitForHashes: true
}).then((response) => {
console.log('Received response: ', response);
}).catch((error) => {
console.error("Transactions submission failed", error);
});
以下是一个 React 网页应用的示例:
import { submitBulkTransactions, isInstalled } from "@xhbmygod/rootwallet-api";
function App() {
const handleTransactionsBulk = () => {
isInstalled().then((response) => {
if (response.result.isInstalled) {
const transactions = [
{
ID: '001', // 可选 ID,用于在提交后识别响应中的交易。
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '002',
TransactionType: 'TrustSet',
LimitAmount: {
currency: 'ETH',
issuer: 'rnm76Qgz4G9G4gZBJVuXVvkbt7gVD7szey',
value: '10000000'
},
Fee: '199'
},
{
ID: '003',
TransactionType: 'NFTokenMint',
URI: '516D6654463665756E47726A57597642666A72614B486D765572354444566D525351424373513252564D71764A72',
NFTokenTaxon: 0
},
{
ID: '004',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '005',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '006',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '007',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '008',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '009',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
},
{
ID: '010',
TransactionType: 'Payment',
Destination: 'rhikRdkFw28csKw9z7fVoBjWncz1HSoQij',
Amount: '100000',
}
];
submitBulkTransactions({ transactions }).then((response) => {
console.log('Received response: ', response);
}).catch((error) => {
console.error("Transactions submission failed", error);
});
}
});
};
return (
<div className="App">
<button onClick={handleTransactionsBulk}>Submit Transactions (Bulk)</button>
</div>
);
}
export default App;
submitTransaction
通过扩展提交一个交易请求。交易将自动填充、签名并提交。
请求
必填 - 该函数接受一个类型为 SubmitTransactionRequest
的输入参数。
transaction
: 要提交的交易请求。
interface SubmitTransactionRequest {
transaction: Transaction;
}
Transaction
类型 定义在此 。
注意:
- 如果交易字段
Account
未设置,将使用用户钱包的账户。
响应
响应是一个 Promise,解析为一个包含 type
和 result
属性的对象。
type
:"response" | "reject"
result
:hash
: 交易的哈希。
type: "response";
result: {
hash: string;
}
或
type: "reject";
result: undefined;
错误处理
如果发生错误,将抛出错误。
示例
import { submitTransaction } from "@xhbmygod/rootwallet-api";
const transaction = {
TransactionType: "Payment",
Destination: "rhikRdkFw28csKw9z7fVoBjWncz1HSoQij",
Amount: "100000",
Memos: [
{
Memo: {
MemoData: "54657374206D656D6F",
MemoType: "4465736372697074696F6E"
}
}
]
};
submitTransaction({ transaction }).then((response) => {
console.log(response.result?.hash);
}).catch((error) => {
console.error("Transaction submission failed", error);
});
以下是一个 React 网页应用的示例:
import { submitTransaction, isInstalled } from "@xhbmygod/rootwallet-api";
function App() {
const handleTransaction = () => {
isInstalled().then((response) => {
if (response.result.isInstalled) {
const transaction = {
TransactionType: "Payment",
Destination: "rhikRdkFw28csKw9z7fVoBjWncz1HSoQij",
Amount: "100000",
Memos: [
{
Memo: {
MemoData: "54657374206D656D6F",
MemoType: "4465736372697074696F6E"
}
}
]
};
submitTransaction({ transaction }).then((response) => {
console.log("Transaction hash: ", response.result?.hash);
}).catch((error) => {
console.error("Transaction submission failed", error);
});
}
});
};
return (
<div className="App">
<button onClick={handleTransaction}>Submit Transaction</button>
</div>
);
}
export default App;
最后更新于: