-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* docs: add max outputs documentation to combining UTXO docs * docs: add changeset * docs: updated spelling * docs: linting fixes * docs: add max inputs and outputs snippet * feat: add function for splitting UTXOs and docs on maxOutputs * docs: update changeset * build: update lockfile * build: update spellcheck * test: add environment to tests * fix: update return type from splitting utxos function * docs: add vitepress config for docs * test: cover fees * docs: update title Co-authored-by: Daniel Bate <[email protected]> * docs: update grammatical issues Co-authored-by: Daniel Bate <[email protected]> * docs: update grammar Co-authored-by: Daniel Bate <[email protected]> * docs: remove unnecessary fullstop Co-authored-by: Daniel Bate <[email protected]> * docs: update snippets comment Co-authored-by: Sérgio Torres <[email protected]> * docs: update snippet formatting Co-authored-by: Sérgio Torres <[email protected]> * fix: adjust tests and documentation errors * docs: update JS docs * docs: adjust grammatical issue in max inputs/outputs * docs: add full stop Co-authored-by: Dhaiwat <[email protected]> * docs: update docs * docs: update changeset * mend --------- Co-authored-by: Daniel Bate <[email protected]> Co-authored-by: Sérgio Torres <[email protected]> Co-authored-by: Dhaiwat <[email protected]>
- Loading branch information
1 parent
896bf5b
commit a8af330
Showing
8 changed files
with
99 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
--- | ||
--- | ||
|
||
docs: add docs for splitting UTXOs, `maxOutputs` and `maxInputs` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// #region max-outputs | ||
import { Provider } from 'fuels'; | ||
|
||
import { LOCAL_NETWORK_URL } from '../../../env'; | ||
|
||
const provider = await Provider.create(LOCAL_NETWORK_URL); | ||
|
||
const { maxInputs, maxOutputs } = | ||
provider.getChain().consensusParameters.txParameters; | ||
|
||
// #endregion max-outputs | ||
console.log('Max Inputs', maxInputs); | ||
console.log('Max Outputs', maxOutputs); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
// #region splitting-utxos | ||
import { Provider, Wallet } from 'fuels'; | ||
|
||
import { LOCAL_NETWORK_URL, WALLET_PVT_KEY } from '../../../env'; | ||
|
||
const provider = await Provider.create(LOCAL_NETWORK_URL); | ||
// This is the wallet that will fund the sending wallet | ||
const fundingWallet = Wallet.fromPrivateKey(WALLET_PVT_KEY, provider); | ||
|
||
// This is the wallet that will send the funds | ||
const wallet = Wallet.generate({ provider }); | ||
// This is the wallet that will receive the funds | ||
const destinationWallet = Wallet.generate({ provider }); | ||
|
||
// Let's fund the sending wallet with 1000 of the base asset | ||
const fundingTx = await fundingWallet.transfer( | ||
wallet.address, | ||
1000, | ||
provider.getBaseAssetId() | ||
); | ||
await fundingTx.waitForResult(); | ||
|
||
// We can fetch the coins to see how many UTXOs we have and confirm it is 1 | ||
const { coins: initialCoins } = await wallet.getCoins( | ||
provider.getBaseAssetId() | ||
); | ||
console.log('Initial Coins Length', initialCoins.length); | ||
// 1 | ||
|
||
// Now we can split the large 1000 UTXO into 5 UTXOs of 200 each, | ||
// Including the address to send the funds to and the assetId we want to send | ||
const splitTxns = new Array(5).fill({ | ||
amount: 200, | ||
assetId: provider.getBaseAssetId(), | ||
destination: destinationWallet.address, | ||
}); | ||
|
||
// We will also need add some funds to the wallet to cover the fee | ||
// We could have also spent less than 200 for each UTXO, but this is just an example | ||
const fundTx = await fundingWallet.transfer( | ||
wallet.address, | ||
500, | ||
provider.getBaseAssetId() | ||
); | ||
await fundTx.waitForResult(); | ||
|
||
console.log('Split UTXOs', splitTxns); | ||
// [ | ||
// { amount: 200, assetId: '0x0', destination : '0x...' }, | ||
// { amount: 200, assetId: '0x0', destination: '0x...' }, | ||
// { amount: 200, assetId: '0x0', destination: '0x...' }, | ||
// { amount: 200, assetId: '0x0', destination: '0x...' }, | ||
// { amount: 200, assetId: '0x0', destination: '0x...' } | ||
// ] | ||
|
||
// Then we can send the transactions using the batchTransfer function | ||
const batchTx = await wallet.batchTransfer(splitTxns); | ||
await batchTx.waitForResult(); | ||
// #endregion splitting-utxos |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Splitting UTXOs | ||
|
||
There may be times when you want to split one large UTXO into multiple smaller UTXOs. This can be useful if you want to send multiple concurrent transactions without having to wait for them to be processed sequentially. | ||
|
||
> **Note:** Depending on how many smaller UTXOs you want to create, you may need to fund the wallet with additional funds to cover the fees. As we see in the example below, we fund the sending wallet with 500 to cover the fees for the batch transfer. | ||
<<< @./snippets/splitting-utxos.ts#splitting-utxos{ts:line-numbers} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.